@classytic/labs 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +18 -0
  2. package/dist/biology/enzyme-rate/preset.mjs +5 -5
  3. package/dist/biology/genetic-cross/core.d.mts +7 -7
  4. package/dist/biology/genetic-cross/core.mjs +4 -4
  5. package/dist/biology/genetic-cross/grid.mjs +132 -123
  6. package/dist/biology/genetic-cross/preset.mjs +4 -4
  7. package/dist/biology/genetic-cross/sex-linked.mjs +7 -7
  8. package/dist/biology/photosynthesis-factors/preset.mjs +8 -8
  9. package/dist/biology/respiration/preset.mjs +4 -4
  10. package/dist/biology/sequence/central-dogma.mjs +5 -5
  11. package/dist/biology/sequence/core.d.mts +6 -6
  12. package/dist/biology/sequence/core.mjs +1 -1
  13. package/dist/biology/sequence/preset.mjs +6 -6
  14. package/dist/blocks/authoring.mjs +5 -5
  15. package/dist/blocks/biology.d.mts +2 -2
  16. package/dist/blocks/biology.mjs +5 -5
  17. package/dist/blocks/chem.d.mts +2 -2
  18. package/dist/blocks/chem.mjs +13 -13
  19. package/dist/blocks/circuits.d.mts +293 -4
  20. package/dist/blocks/circuits.mjs +874 -9
  21. package/dist/blocks/discrete.d.mts +30 -2
  22. package/dist/blocks/discrete.mjs +74 -4
  23. package/dist/blocks/economics.mjs +1 -1
  24. package/dist/blocks/geography.mjs +1 -1
  25. package/dist/blocks/geometry.mjs +3 -3
  26. package/dist/blocks/ict.d.mts +90 -1
  27. package/dist/blocks/ict.mjs +217 -7
  28. package/dist/blocks/index.d.mts +3064 -657
  29. package/dist/blocks/index.mjs +9 -9
  30. package/dist/blocks/lab-block.mjs +5 -5
  31. package/dist/blocks/lab-config.d.mts +1 -1
  32. package/dist/blocks/lab-config.mjs +4 -4
  33. package/dist/blocks/lab-gallery.d.mts +1 -1
  34. package/dist/blocks/lab-gallery.mjs +2 -2
  35. package/dist/blocks/language.d.mts +6 -6
  36. package/dist/blocks/language.mjs +12 -12
  37. package/dist/blocks/lesson.mjs +4 -4
  38. package/dist/blocks/math.d.mts +577 -11
  39. package/dist/blocks/math.mjs +1648 -14
  40. package/dist/blocks/ml.d.mts +45 -1
  41. package/dist/blocks/ml.mjs +80 -6
  42. package/dist/blocks/physics.d.mts +9 -4
  43. package/dist/blocks/physics.mjs +75 -28
  44. package/dist/blocks/statistics.mjs +1 -1
  45. package/dist/build/CircuitEditor.d.mts +14 -0
  46. package/dist/build/CircuitEditor.mjs +787 -0
  47. package/dist/build/CircuitPlayer.d.mts +19 -0
  48. package/dist/build/CircuitPlayer.mjs +53 -0
  49. package/dist/build/CircuitScene.d.mts +61 -0
  50. package/dist/build/CircuitScene.mjs +383 -0
  51. package/dist/build/contract.d.mts +116 -0
  52. package/dist/build/editor-ops.d.mts +65 -0
  53. package/dist/build/editor-ops.mjs +306 -0
  54. package/dist/build/editor-ui.mjs +121 -0
  55. package/dist/build/flow.d.mts +14 -0
  56. package/dist/build/flow.mjs +119 -0
  57. package/dist/build/index.d.mts +10 -0
  58. package/dist/build/index.mjs +10 -0
  59. package/dist/build/parts/ammeter.d.mts +1 -0
  60. package/dist/build/parts/ammeter.mjs +32 -0
  61. package/dist/build/parts/bulb.d.mts +1 -0
  62. package/dist/build/parts/bulb.mjs +50 -0
  63. package/dist/build/parts/capacitor.d.mts +1 -0
  64. package/dist/build/parts/capacitor.mjs +26 -0
  65. package/dist/build/parts/cell.d.mts +1 -0
  66. package/dist/build/parts/cell.mjs +40 -0
  67. package/dist/build/parts/diode.d.mts +1 -0
  68. package/dist/build/parts/diode.mjs +33 -0
  69. package/dist/build/parts/index.d.mts +5 -0
  70. package/dist/build/parts/index.mjs +43 -0
  71. package/dist/build/parts/mosfet.d.mts +1 -0
  72. package/dist/build/parts/mosfet.mjs +95 -0
  73. package/dist/build/parts/node.d.mts +1 -0
  74. package/dist/build/parts/node.mjs +32 -0
  75. package/dist/build/parts/resistor.d.mts +1 -0
  76. package/dist/build/parts/resistor.mjs +49 -0
  77. package/dist/build/parts/shared.mjs +42 -0
  78. package/dist/build/parts/switch.d.mts +1 -0
  79. package/dist/build/parts/switch.mjs +34 -0
  80. package/dist/build/parts.d.mts +1 -0
  81. package/dist/build/registry.d.mts +9 -0
  82. package/dist/build/registry.mjs +15 -0
  83. package/dist/build/solve.d.mts +8 -0
  84. package/dist/build/solve.mjs +0 -0
  85. package/dist/catalog/registry.d.mts +2 -2
  86. package/dist/catalog/templates.d.mts +1 -1
  87. package/dist/catalog/templates.mjs +6 -6
  88. package/dist/chem/battery.mjs +1 -1
  89. package/dist/chem/bohr-atom.mjs +4 -4
  90. package/dist/chem/diffusion/preset.mjs +4 -4
  91. package/dist/chem/electrochem/preset.mjs +5 -5
  92. package/dist/chem/equilibrium/preset.d.mts +1 -1
  93. package/dist/chem/equilibrium/preset.mjs +6 -6
  94. package/dist/chem/gas-box/preset.mjs +6 -6
  95. package/dist/chem/kinetics/preset.mjs +6 -6
  96. package/dist/chem/periodic-trends/preset.mjs +7 -7
  97. package/dist/chem/reaction-lab.mjs +3 -3
  98. package/dist/chem/reaction-profile.mjs +4 -4
  99. package/dist/chem/solution/dilution.mjs +6 -6
  100. package/dist/chem/solution/field.d.mts +2 -2
  101. package/dist/chem/solution/field.mjs +2 -2
  102. package/dist/chem/solution/solution-box.mjs +7 -7
  103. package/dist/chem/stoichiometry/preset.mjs +5 -5
  104. package/dist/chem/titration/preset.mjs +5 -5
  105. package/dist/circuits/ac-dc/asset.mjs +1 -1
  106. package/dist/circuits/ac-dc/preset.mjs +2 -2
  107. package/dist/circuits/brownout/index.d.mts +1 -0
  108. package/dist/circuits/brownout/preset.d.mts +22 -0
  109. package/dist/circuits/brownout/preset.mjs +399 -0
  110. package/dist/circuits/capacitor-leak/preset.mjs +13 -8
  111. package/dist/circuits/circuit/asset.mjs +71 -14
  112. package/dist/circuits/circuit/preset.mjs +23 -5
  113. package/dist/circuits/circuit-builder.mjs +60 -132
  114. package/dist/circuits/circuit-lab.mjs +60 -40
  115. package/dist/circuits/cmos-gate/index.d.mts +1 -0
  116. package/dist/circuits/cmos-gate/preset.d.mts +75 -0
  117. package/dist/circuits/cmos-gate/preset.mjs +1491 -0
  118. package/dist/circuits/diode/index.d.mts +1 -0
  119. package/dist/circuits/diode/preset.d.mts +25 -0
  120. package/dist/circuits/diode/preset.mjs +266 -0
  121. package/dist/circuits/index.d.mts +7 -1
  122. package/dist/circuits/index.mjs +7 -1
  123. package/dist/circuits/rc-charging/index.d.mts +1 -0
  124. package/dist/circuits/rc-charging/preset.d.mts +27 -0
  125. package/dist/circuits/rc-charging/preset.mjs +329 -0
  126. package/dist/circuits/semiconductor/index.d.mts +1 -0
  127. package/dist/circuits/semiconductor/preset.d.mts +102 -0
  128. package/dist/circuits/semiconductor/preset.mjs +1855 -0
  129. package/dist/circuits/transistor/index.d.mts +1 -0
  130. package/dist/circuits/transistor/preset.d.mts +27 -0
  131. package/dist/circuits/transistor/preset.mjs +329 -0
  132. package/dist/commerce/accounting/core.d.mts +1 -1
  133. package/dist/commerce/accounting/equation-balance.mjs +5 -5
  134. package/dist/commerce/accounting/journal-poster.mjs +8 -8
  135. package/dist/commerce/accounting/statement-sorter.mjs +4 -4
  136. package/dist/commerce/economics/core.d.mts +2 -2
  137. package/dist/commerce/economics/core.mjs +1 -1
  138. package/dist/commerce/economics/demand-shift-vs-move.mjs +6 -6
  139. package/dist/commerce/economics/elasticity-revenue.mjs +6 -6
  140. package/dist/commerce/economics/market-equilibrium.mjs +5 -5
  141. package/dist/core/easing.d.mts +3 -3
  142. package/dist/core/easing.mjs +2 -2
  143. package/dist/core/numeric.d.mts +3 -3
  144. package/dist/core/numeric.mjs +2 -2
  145. package/dist/core/reactive.d.mts +1 -1
  146. package/dist/core/reactive.mjs +1 -1
  147. package/dist/core/rng.d.mts +2 -2
  148. package/dist/core/rng.mjs +1 -1
  149. package/dist/core/tex.mjs +2 -2
  150. package/dist/core/timeline.d.mts +1 -1
  151. package/dist/core/timeline.mjs +1 -1
  152. package/dist/core/util.mjs +11 -1
  153. package/dist/discrete/arrangements/preset.mjs +6 -14
  154. package/dist/discrete/bayes/preset.mjs +43 -35
  155. package/dist/discrete/binomial/preset.mjs +2 -2
  156. package/dist/discrete/combination-studio/figure.d.mts +6 -0
  157. package/dist/discrete/combination-studio/figure.mjs +159 -0
  158. package/dist/discrete/combination-studio/index.d.mts +2 -0
  159. package/dist/discrete/combination-studio/preset.d.mts +44 -0
  160. package/dist/discrete/combination-studio/preset.mjs +440 -0
  161. package/dist/discrete/core/combinatorics.d.mts +23 -3
  162. package/dist/discrete/core/combinatorics.mjs +38 -3
  163. package/dist/discrete/core/pigeonhole.d.mts +1 -1
  164. package/dist/discrete/core/pigeonhole.mjs +1 -1
  165. package/dist/discrete/core/probability.d.mts +3 -3
  166. package/dist/discrete/core/probability.mjs +3 -3
  167. package/dist/discrete/core/sets.d.mts +1 -1
  168. package/dist/discrete/counting-slots/preset.mjs +8 -8
  169. package/dist/discrete/counting-tree/preset.mjs +65 -8
  170. package/dist/discrete/expected-value/preset.mjs +13 -13
  171. package/dist/discrete/hypergeometric/preset.mjs +48 -15
  172. package/dist/discrete/index.d.mts +4 -2
  173. package/dist/discrete/index.mjs +4 -2
  174. package/dist/discrete/karnaugh/preset.mjs +26 -20
  175. package/dist/discrete/lln/preset.mjs +44 -3
  176. package/dist/discrete/logic-circuit/preset.mjs +2 -2
  177. package/dist/discrete/monte-carlo/preset.d.mts +1 -1
  178. package/dist/discrete/monte-carlo/preset.mjs +14 -14
  179. package/dist/discrete/monty-hall/preset.mjs +6 -6
  180. package/dist/discrete/outcome-builder/preset.mjs +3 -3
  181. package/dist/discrete/pascal/preset.mjs +37 -7
  182. package/dist/discrete/rules.d.mts +20 -0
  183. package/dist/discrete/rules.mjs +264 -0
  184. package/dist/discrete/sample-space/preset.mjs +4 -4
  185. package/dist/discrete/selection/preset.mjs +7 -13
  186. package/dist/discrete/truth-table/preset.mjs +32 -9
  187. package/dist/discrete/venn/preset.mjs +71 -48
  188. package/dist/geography/cycle-lab/preset.mjs +17 -10
  189. package/dist/geography/cycles.d.mts +3 -3
  190. package/dist/geography/cycles.mjs +3 -3
  191. package/dist/geometry/board/preset.d.mts +2 -0
  192. package/dist/geometry/board/preset.mjs +11 -15
  193. package/dist/geometry/builder.mjs +3 -3
  194. package/dist/ict/number-systems/base-odometer.mjs +4 -4
  195. package/dist/ict/number-systems/bit-grouper.d.mts +1 -1
  196. package/dist/ict/number-systems/bit-grouper.mjs +4 -4
  197. package/dist/ict/number-systems/place-value-dial.d.mts +1 -1
  198. package/dist/ict/number-systems/place-value-dial.mjs +3 -3
  199. package/dist/ict/number-systems/wheel.d.mts +3 -3
  200. package/dist/ict/number-systems/wheel.mjs +4 -4
  201. package/dist/kit/annotate.mjs +3 -3
  202. package/dist/kit/answer-check.d.mts +2 -2
  203. package/dist/kit/answer-check.mjs +34 -6
  204. package/dist/kit/ask.d.mts +19 -0
  205. package/dist/kit/ask.mjs +46 -0
  206. package/dist/kit/bar-strip.mjs +53 -0
  207. package/dist/kit/calc.d.mts +33 -0
  208. package/dist/kit/calc.mjs +27 -0
  209. package/dist/kit/carrier-engine.mjs +147 -0
  210. package/dist/kit/clue-scene.d.mts +86 -0
  211. package/dist/kit/clue-scene.mjs +424 -0
  212. package/dist/kit/cluster.d.mts +30 -0
  213. package/dist/kit/cluster.mjs +81 -0
  214. package/dist/kit/controls.mjs +11 -5
  215. package/dist/kit/coords.d.mts +88 -0
  216. package/dist/kit/coords.mjs +192 -0
  217. package/dist/kit/data-scene.d.mts +27 -0
  218. package/dist/kit/data-scene.mjs +199 -0
  219. package/dist/kit/diagram.mjs +111 -50
  220. package/dist/kit/electronics.mjs +552 -60
  221. package/dist/kit/expr-analysis.d.mts +18 -6
  222. package/dist/kit/expr-analysis.mjs +82 -28
  223. package/dist/kit/frame.d.mts +3 -3
  224. package/dist/kit/frame.mjs +25 -6
  225. package/dist/kit/gameshow.mjs +2 -2
  226. package/dist/kit/index.d.mts +14 -2
  227. package/dist/kit/index.mjs +13 -1
  228. package/dist/kit/logic-gates.mjs +246 -47
  229. package/dist/kit/palette.mjs +26 -0
  230. package/dist/kit/pedagogy.d.mts +4 -4
  231. package/dist/kit/pedagogy.mjs +21 -17
  232. package/dist/kit/play.d.mts +1 -1
  233. package/dist/kit/play.mjs +3 -3
  234. package/dist/kit/predict.d.mts +55 -0
  235. package/dist/kit/predict.mjs +146 -0
  236. package/dist/kit/receipt.d.mts +29 -0
  237. package/dist/kit/receipt.mjs +94 -0
  238. package/dist/kit/rich.mjs +2 -2
  239. package/dist/kit/rule.d.mts +59 -0
  240. package/dist/kit/rule.mjs +215 -0
  241. package/dist/kit/scale.mjs +1 -1
  242. package/dist/kit/scene-library.d.mts +22 -0
  243. package/dist/kit/scene-library.mjs +311 -0
  244. package/dist/kit/scene-studio.d.mts +14 -0
  245. package/dist/kit/scene-studio.mjs +338 -0
  246. package/dist/kit/scenes.d.mts +31 -0
  247. package/dist/kit/scenes.mjs +569 -0
  248. package/dist/kit/slot-fill.d.mts +61 -0
  249. package/dist/kit/slot-fill.mjs +207 -0
  250. package/dist/kit/solve.d.mts +21 -0
  251. package/dist/kit/solve.mjs +75 -0
  252. package/dist/kit/space.mjs +5 -5
  253. package/dist/kit/steps.mjs +2 -2
  254. package/dist/kit/vessel.d.mts +69 -0
  255. package/dist/kit/vessel.mjs +191 -0
  256. package/dist/language/agreement/preset.mjs +2 -2
  257. package/dist/language/article-lens/preset.d.mts +1 -1
  258. package/dist/language/article-lens/preset.mjs +8 -8
  259. package/dist/language/deck.d.mts +3 -3
  260. package/dist/language/deck.mjs +1 -1
  261. package/dist/language/preposition-scene/preset.d.mts +2 -2
  262. package/dist/language/preposition-scene/preset.mjs +5 -5
  263. package/dist/language/sentence-builder/preset.mjs +5 -5
  264. package/dist/language/transform/preset.d.mts +2 -2
  265. package/dist/language/transform/preset.mjs +5 -5
  266. package/dist/language/ui.d.mts +3 -3
  267. package/dist/language/ui.mjs +4 -4
  268. package/dist/language/word-match/preset.mjs +3 -3
  269. package/dist/logic/LogicBuildLab.d.mts +22 -0
  270. package/dist/logic/LogicBuildLab.mjs +170 -0
  271. package/dist/logic/LogicEditScene.d.mts +31 -0
  272. package/dist/logic/LogicEditScene.mjs +276 -0
  273. package/dist/logic/LogicEditor.d.mts +14 -0
  274. package/dist/logic/LogicEditor.mjs +413 -0
  275. package/dist/logic/LogicScene.d.mts +32 -0
  276. package/dist/logic/LogicScene.mjs +277 -0
  277. package/dist/logic/contract.d.mts +72 -0
  278. package/dist/logic/display.d.mts +24 -0
  279. package/dist/logic/display.mjs +127 -0
  280. package/dist/logic/edit-ops.d.mts +44 -0
  281. package/dist/logic/edit-ops.mjs +177 -0
  282. package/dist/logic/evaluate.d.mts +11 -0
  283. package/dist/logic/evaluate.mjs +93 -0
  284. package/dist/logic/gates.d.mts +10 -0
  285. package/dist/logic/gates.mjs +73 -0
  286. package/dist/logic/index.d.mts +14 -0
  287. package/dist/logic/index.mjs +13 -0
  288. package/dist/logic/lab.d.mts +32 -0
  289. package/dist/logic/lab.mjs +160 -0
  290. package/dist/logic/presets.d.mts +12 -0
  291. package/dist/logic/presets.mjs +241 -0
  292. package/dist/logic/registry.d.mts +9 -0
  293. package/dist/logic/registry.mjs +15 -0
  294. package/dist/math/area-model/preset.mjs +70 -44
  295. package/dist/math/balance-algebra/preset.mjs +14 -5
  296. package/dist/math/broken-tree/index.d.mts +1 -0
  297. package/dist/math/broken-tree/preset.d.mts +26 -0
  298. package/dist/math/broken-tree/preset.mjs +435 -0
  299. package/dist/math/circle/index.d.mts +1 -0
  300. package/dist/math/circle/preset.d.mts +44 -0
  301. package/dist/math/circle/preset.mjs +198 -0
  302. package/dist/math/complex/core.d.mts +93 -0
  303. package/dist/math/complex/core.mjs +239 -0
  304. package/dist/math/complex/index.d.mts +3 -0
  305. package/dist/math/complex/preset.d.mts +31 -0
  306. package/dist/math/complex/preset.mjs +377 -0
  307. package/dist/math/complex/rules.d.mts +6 -0
  308. package/dist/math/complex/rules.mjs +121 -0
  309. package/dist/math/conic/index.d.mts +1 -0
  310. package/dist/math/conic/preset.d.mts +30 -0
  311. package/dist/math/conic/preset.mjs +334 -0
  312. package/dist/math/derivation.mjs +5 -5
  313. package/dist/math/derivative-explorer/preset.mjs +5 -5
  314. package/dist/math/domain-range/index.d.mts +1 -0
  315. package/dist/math/domain-range/preset.d.mts +33 -0
  316. package/dist/math/domain-range/preset.mjs +313 -0
  317. package/dist/math/fraction-bar/index.d.mts +1 -0
  318. package/dist/math/fraction-bar/preset.d.mts +27 -0
  319. package/dist/math/fraction-bar/preset.mjs +197 -0
  320. package/dist/math/function-machine/preset.mjs +2 -2
  321. package/dist/math/gradient-descent.mjs +6 -6
  322. package/dist/math/grapher/preset.d.mts +1 -1
  323. package/dist/math/grapher/preset.mjs +4 -4
  324. package/dist/math/harmonic-form/preset.mjs +6 -6
  325. package/dist/math/index.d.mts +27 -2
  326. package/dist/math/index.mjs +27 -2
  327. package/dist/math/integral-explorer/preset.mjs +2 -2
  328. package/dist/math/interactive/preset.mjs +3 -3
  329. package/dist/math/limit-explorer/preset.mjs +4 -4
  330. package/dist/math/linear-model/index.d.mts +1 -0
  331. package/dist/math/linear-model/preset.d.mts +53 -0
  332. package/dist/math/linear-model/preset.mjs +164 -0
  333. package/dist/math/linear-system/preset.mjs +4 -4
  334. package/dist/math/mystery-bucket/preset.mjs +6 -6
  335. package/dist/math/number-line/preset.mjs +3 -2
  336. package/dist/math/parabola/preset.mjs +4 -3
  337. package/dist/math/pattern/preset.mjs +7 -13
  338. package/dist/math/percent-bar/index.d.mts +1 -0
  339. package/dist/math/percent-bar/preset.d.mts +37 -0
  340. package/dist/math/percent-bar/preset.mjs +275 -0
  341. package/dist/math/poly/core.d.mts +50 -0
  342. package/dist/math/poly/core.mjs +268 -0
  343. package/dist/math/poly/index.d.mts +3 -0
  344. package/dist/math/poly/preset.d.mts +23 -0
  345. package/dist/math/poly/preset.mjs +141 -0
  346. package/dist/math/poly/steps.d.mts +10 -0
  347. package/dist/math/poly/steps.mjs +99 -0
  348. package/dist/math/rate-machine/index.d.mts +1 -0
  349. package/dist/math/rate-machine/preset.d.mts +35 -0
  350. package/dist/math/rate-machine/preset.mjs +281 -0
  351. package/dist/math/ratio-share/index.d.mts +1 -0
  352. package/dist/math/ratio-share/preset.d.mts +24 -0
  353. package/dist/math/ratio-share/preset.mjs +204 -0
  354. package/dist/math/receipt/index.d.mts +1 -0
  355. package/dist/math/receipt/preset.d.mts +22 -0
  356. package/dist/math/receipt/preset.mjs +137 -0
  357. package/dist/math/sequence-predict/index.d.mts +1 -0
  358. package/dist/math/sequence-predict/preset.d.mts +34 -0
  359. package/dist/math/sequence-predict/preset.mjs +130 -0
  360. package/dist/math/straight-line/index.d.mts +1 -0
  361. package/dist/math/straight-line/preset.d.mts +37 -0
  362. package/dist/math/straight-line/preset.mjs +374 -0
  363. package/dist/math/system-solve/index.d.mts +1 -0
  364. package/dist/math/system-solve/preset.d.mts +21 -0
  365. package/dist/math/system-solve/preset.mjs +227 -0
  366. package/dist/math/transform/index.d.mts +1 -0
  367. package/dist/math/transform/preset.d.mts +41 -0
  368. package/dist/math/transform/preset.mjs +343 -0
  369. package/dist/math/triangle-trig/preset.mjs +12 -9
  370. package/dist/math/trig/core.d.mts +37 -0
  371. package/dist/math/trig/core.mjs +150 -0
  372. package/dist/math/trig/diagrams.d.mts +1 -0
  373. package/dist/math/trig/diagrams.mjs +321 -0
  374. package/dist/math/trig/index.d.mts +3 -0
  375. package/dist/math/trig/preset.d.mts +25 -0
  376. package/dist/math/trig/preset.mjs +260 -0
  377. package/dist/math/trig/rules.d.mts +6 -0
  378. package/dist/math/trig/rules.mjs +159 -0
  379. package/dist/math/trig-explorer.mjs +4 -4
  380. package/dist/ml/boundary/preset.mjs +8 -3
  381. package/dist/ml/classifier/preset.mjs +31 -6
  382. package/dist/ml/kmeans/preset.mjs +4 -4
  383. package/dist/ml/knn/preset.mjs +47 -12
  384. package/dist/ml/regression/preset.mjs +36 -7
  385. package/dist/physics/atwood/preset.mjs +4 -4
  386. package/dist/physics/bullet-walls/preset.d.mts +1 -1
  387. package/dist/physics/bullet-walls/preset.mjs +7 -7
  388. package/dist/physics/carnot/preset.mjs +6 -6
  389. package/dist/physics/circular-motion/preset.mjs +36 -5
  390. package/dist/physics/collision-track/preset.mjs +35 -5
  391. package/dist/physics/efficiency/preset.d.mts +2 -2
  392. package/dist/physics/efficiency/preset.mjs +5 -5
  393. package/dist/physics/electric-field/preset.mjs +32 -23
  394. package/dist/physics/electric-flux/index.d.mts +1 -0
  395. package/dist/physics/electric-flux/preset.d.mts +29 -0
  396. package/dist/physics/electric-flux/preset.mjs +264 -0
  397. package/dist/physics/energy-skate/preset.mjs +5 -5
  398. package/dist/physics/entropy/preset.mjs +7 -7
  399. package/dist/physics/expansion/preset.mjs +13 -13
  400. package/dist/physics/exponential/asset.mjs +1 -1
  401. package/dist/physics/exponential/preset.mjs +4 -4
  402. package/dist/physics/gas-process/preset.mjs +3 -3
  403. package/dist/physics/gauss-law/index.d.mts +1 -0
  404. package/dist/physics/gauss-law/preset.d.mts +20 -0
  405. package/dist/physics/gauss-law/preset.mjs +286 -0
  406. package/dist/physics/gravitation/preset.mjs +7 -7
  407. package/dist/physics/gravity-drop.mjs +4 -4
  408. package/dist/physics/heat-transfer/preset.d.mts +1 -1
  409. package/dist/physics/heat-transfer/preset.mjs +10 -10
  410. package/dist/physics/impulse/preset.mjs +5 -5
  411. package/dist/physics/index.d.mts +4 -1
  412. package/dist/physics/index.mjs +4 -1
  413. package/dist/physics/kepler/preset.mjs +4 -4
  414. package/dist/physics/lever/preset.mjs +3 -3
  415. package/dist/physics/lorentz/preset.mjs +11 -11
  416. package/dist/physics/magnetism/preset.mjs +3 -3
  417. package/dist/physics/optics/preset.mjs +2 -2
  418. package/dist/physics/orbit-lab.mjs +5 -5
  419. package/dist/physics/projectile-lab.mjs +4 -4
  420. package/dist/physics/rain-relative/preset.mjs +5 -5
  421. package/dist/physics/ramp-forces/preset.mjs +5 -5
  422. package/dist/physics/river-boat.mjs +6 -6
  423. package/dist/physics/shm/preset.mjs +9 -9
  424. package/dist/physics/stopping-distance/preset.mjs +3 -3
  425. package/dist/physics/temperature-scales/preset.mjs +105 -116
  426. package/dist/physics/terminal-velocity/preset.mjs +5 -5
  427. package/dist/physics/thermal/preset.mjs +5 -5
  428. package/dist/physics/vector-board/preset.mjs +7 -6
  429. package/dist/physics/vector-scene.mjs +2 -2
  430. package/dist/physics/vector-types/preset.mjs +37 -3
  431. package/dist/physics/water-density/preset.mjs +12 -12
  432. package/dist/physics/waves/doppler.mjs +2 -2
  433. package/dist/physics/waves/preset.mjs +4 -4
  434. package/dist/physics/waves/ripple.mjs +6 -6
  435. package/dist/physics/waves/string.mjs +5 -5
  436. package/dist/physics/work-energy/preset.mjs +4 -4
  437. package/dist/physics/work-potential/index.d.mts +1 -0
  438. package/dist/physics/work-potential/preset.d.mts +20 -0
  439. package/dist/physics/work-potential/preset.mjs +276 -0
  440. package/dist/schemas/index.d.mts +6 -6
  441. package/dist/schemas/index.mjs +3 -3
  442. package/dist/statistics/center-spread/preset.mjs +3 -3
  443. package/dist/statistics/core/descriptive.d.mts +2 -2
  444. package/dist/statistics/core/descriptive.mjs +2 -2
  445. package/dist/statistics/core/normal.d.mts +3 -3
  446. package/dist/statistics/core/normal.mjs +3 -3
  447. package/dist/statistics/core/sequences.d.mts +1 -1
  448. package/dist/statistics/galton/preset.mjs +2 -2
  449. package/dist/statistics/histogram/preset.mjs +6 -6
  450. package/dist/statistics/normal/preset.mjs +2 -2
  451. package/dist/statistics/sampling/preset.mjs +4 -4
  452. package/dist/statistics/sequence/preset.mjs +58 -15
  453. package/dist/statistics/z-table/preset.mjs +17 -4
  454. package/package.json +11 -3
  455. package/styles.css +4 -1
@@ -32,7 +32,13 @@ import { BatteryBlock, BohrAtomBlock, DilutionBlock, ElectrochemBlock, GasBoxBlo
32
32
  import { CircuitLab } from "../circuits/circuit-lab.mjs";
33
33
  import { CircuitBuilder } from "../circuits/circuit-builder.mjs";
34
34
  import { CapacitorLeakLab } from "../circuits/capacitor-leak/preset.mjs";
35
- import { CapacitorLeakBlock, CircuitBlock, CircuitBuilderBlock, CircuitLabBlock, CircuitPuzzle, circuitsBlocks, circuitsComponents } from "./circuits.mjs";
35
+ import { RCChargingLab } from "../circuits/rc-charging/preset.mjs";
36
+ import { DiodeLab } from "../circuits/diode/preset.mjs";
37
+ import { TransistorLab } from "../circuits/transistor/preset.mjs";
38
+ import { CmosInverterLab, CmosNandLab, CmosNorLab, RNmosNotLab } from "../circuits/cmos-gate/preset.mjs";
39
+ import { BrownoutLab } from "../circuits/brownout/preset.mjs";
40
+ import { BjtInsideLab, ConductionLab, HallEffectLab, MosfetInsideLab, PnJunctionLab, SiliconLatticeLab } from "../circuits/semiconductor/preset.mjs";
41
+ import { BjtInsideBlock, BrownoutBlock, CapacitorLeakBlock, CircuitBlock, CircuitBuilderBlock, CircuitLabBlock, CircuitPuzzle, CircuitSceneBlock, CircuitSceneView, CmosInverterBlock, CmosNandBlock, CmosNorBlock, ConductionBlock, DiodeBlock, HallEffectBlock, MosfetInsideBlock, PnJunctionBlock, RCChargingBlock, RNmosNotBlock, SiliconLatticeBlock, TransistorBlock, circuitsBlocks, circuitsComponents } from "./circuits.mjs";
36
42
  import { TruthTableLab } from "../discrete/truth-table/preset.mjs";
37
43
  import { CountingTreeLab } from "../discrete/counting-tree/preset.mjs";
38
44
  import { VennSetBoardLab } from "../discrete/venn/preset.mjs";
@@ -42,6 +48,7 @@ import { KarnaughMapLab } from "../discrete/karnaugh/preset.mjs";
42
48
  import { MonteCarloLab } from "../discrete/monte-carlo/preset.mjs";
43
49
  import { MontyHallLab } from "../discrete/monty-hall/preset.mjs";
44
50
  import { OutcomeBuilderLab } from "../discrete/outcome-builder/preset.mjs";
51
+ import { CombinationStudioLab } from "../discrete/combination-studio/preset.mjs";
45
52
  import { BayesLab } from "../discrete/bayes/preset.mjs";
46
53
  import { LawOfLargeNumbersLab } from "../discrete/lln/preset.mjs";
47
54
  import { CountingSlotsLab } from "../discrete/counting-slots/preset.mjs";
@@ -51,7 +58,7 @@ import { PascalTriangleLab } from "../discrete/pascal/preset.mjs";
51
58
  import { BinomialDistributionLab } from "../discrete/binomial/preset.mjs";
52
59
  import { HypergeometricLab } from "../discrete/hypergeometric/preset.mjs";
53
60
  import { ExpectedValueLab } from "../discrete/expected-value/preset.mjs";
54
- import { ArrangementsBlock, BayesBlock, BinomialBlock, BooleanCircuitBlock, CountingSlotsBlock, CountingTreeBlock, ExpectedValueBlock, HypergeometricBlock, KarnaughBlock, LawOfLargeNumbersBlock, MonteCarloBlock, MontyHallBlock, OutcomeBuilderBlock, PascalBlock, SampleSpaceBlock, SelectionBlock, TruthTableBlock, VennBlock, discreteBlocks, discreteComponents } from "./discrete.mjs";
61
+ import { ArrangementsBlock, BayesBlock, BinomialBlock, BooleanCircuitBlock, CombinationStudioBlock, CountingSlotsBlock, CountingTreeBlock, ExpectedValueBlock, HypergeometricBlock, KarnaughBlock, LawOfLargeNumbersBlock, MonteCarloBlock, MontyHallBlock, OutcomeBuilderBlock, PascalBlock, RuleCardBlock, SampleSpaceBlock, SelectionBlock, TruthTableBlock, VennBlock, discreteBlocks, discreteComponents } from "./discrete.mjs";
55
62
  import { DemandShiftVsMoveBlock, ElasticityRevenueBlock, MarketEquilibriumBlock, economicsBlocks, economicsComponents } from "./economics.mjs";
56
63
  import { CycleLab } from "../geography/cycle-lab/preset.mjs";
57
64
  import { CycleBlock, geographyBlocks, geographyComponents } from "./geography.mjs";
@@ -61,7 +68,10 @@ import { GeometryBoardBlock, IntersectingCirclesBlock, geometryBlocks, geometryC
61
68
  import { PlaceValueDialLab } from "../ict/number-systems/place-value-dial.mjs";
62
69
  import { BitGrouperLab } from "../ict/number-systems/bit-grouper.mjs";
63
70
  import { BaseOdometerLab } from "../ict/number-systems/base-odometer.mjs";
64
- import { BaseOdometerBlock, BitGrouperBlock, PlaceValueDialBlock, ictBlocks, ictComponents } from "./ict.mjs";
71
+ import { LogicGateLab } from "../logic/lab.mjs";
72
+ import { BinaryDisplayLab } from "../logic/display.mjs";
73
+ import { LogicBuildLab } from "../logic/LogicBuildLab.mjs";
74
+ import { BaseOdometerBlock, BinaryDisplayBlock, BitGrouperBlock, LogicBuilderBlock, LogicGateBlock, PlaceValueDialBlock, ictBlocks, ictComponents } from "./ict.mjs";
65
75
  import { CenterSpreadLab } from "../statistics/center-spread/preset.mjs";
66
76
  import { SequenceLab as SequenceLab$1 } from "../statistics/sequence/preset.mjs";
67
77
  import { GaltonBoardLab } from "../statistics/galton/preset.mjs";
@@ -72,6 +82,8 @@ import { SamplingDistributionLab } from "../statistics/sampling/preset.mjs";
72
82
  import { RegressionLab } from "../ml/regression/preset.mjs";
73
83
  import { KMeansLab } from "../ml/kmeans/preset.mjs";
74
84
  import { ClassifierThresholdLab } from "../ml/classifier/preset.mjs";
85
+ import { DecisionBoundaryLab } from "../ml/boundary/preset.mjs";
86
+ import { KNNBoundaryLab } from "../ml/knn/preset.mjs";
75
87
  import { Grapher } from "../math/grapher/preset.mjs";
76
88
  import { DerivativeExplorer } from "../math/derivative-explorer/preset.mjs";
77
89
  import { IntegralExplorer } from "../math/integral-explorer/preset.mjs";
@@ -88,7 +100,23 @@ import { Derivation } from "../math/derivation.mjs";
88
100
  import { GradientDescent } from "../math/gradient-descent.mjs";
89
101
  import { InteractiveProblem } from "../math/interactive/preset.mjs";
90
102
  import { TriangleTrig } from "../math/triangle-trig/preset.mjs";
91
- import { AreaModelBlock, BalanceAlgebraBlock, DerivationBlock, DerivativeExplorerBlock, GradientDescentBlock, GraphBlock, GrowingPatternBlock, IntegralExplorerBlock, InteractiveProblemBlock, LimitExplorerBlock, LinearSystemBlock, LinearSystemView, MysteryBucketBlock, NumberLineBlock, TriangleTrigBlock, TrigExplorerBlock, VertexParabolaBlock, mathBlocks, mathComponents } from "./math.mjs";
103
+ import { StraightLineLab } from "../math/straight-line/preset.mjs";
104
+ import { CircleLab } from "../math/circle/preset.mjs";
105
+ import { ConicLab } from "../math/conic/preset.mjs";
106
+ import { DomainRangeLab } from "../math/domain-range/preset.mjs";
107
+ import { LinearModelLab } from "../math/linear-model/preset.mjs";
108
+ import { RateMachineLab } from "../math/rate-machine/preset.mjs";
109
+ import { SequencePredict } from "../math/sequence-predict/preset.mjs";
110
+ import { PercentBarLab } from "../math/percent-bar/preset.mjs";
111
+ import { ComplexPlaneLab } from "../math/complex/preset.mjs";
112
+ import { TrigSignsLab } from "../math/trig/preset.mjs";
113
+ import { FractionBarLab } from "../math/fraction-bar/preset.mjs";
114
+ import { RatioShareLab } from "../math/ratio-share/preset.mjs";
115
+ import { TransformLab } from "../math/transform/preset.mjs";
116
+ import { ReceiptLab } from "../math/receipt/preset.mjs";
117
+ import { SystemSolveLab } from "../math/system-solve/preset.mjs";
118
+ import { PolynomialSolverLab } from "../math/poly/preset.mjs";
119
+ import { 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 } from "./math.mjs";
92
120
  import { VectorBoardView } from "../physics/vector-board/view.mjs";
93
121
  import { OpticsLab } from "../physics/optics/preset.mjs";
94
122
  import { ProjectileLab } from "../physics/projectile-lab.mjs";
@@ -100,23 +128,23 @@ import { StoppingDistanceLab } from "../physics/stopping-distance/preset.mjs";
100
128
  import { RampForcesLab } from "../physics/ramp-forces/preset.mjs";
101
129
  import { CollisionTrackLab } from "../physics/collision-track/preset.mjs";
102
130
  import { OrbitLab } from "../physics/orbit-lab.mjs";
103
- import { AtwoodBlock, BulletWallsBlock, CarnotBlock, CircularMotionBlock, CollisionTrackBlock, DopplerBlock, EfficiencyBlock, EnergySkateBlock, EntropyBlock, GasProcessBlock, GravitationBlock, GravityDropBlock, HeatTransferBlock, HeatingCurveBlock, ImpulseBlock, KeplerBlock, LeverBlock, LeverPuzzle, LorentzBlock, MagnetismBlock, OpticsBlock, OrbitLabBlock, ProjectileLabBlock, RainRelativeBlock, RampForcesBlock, RippleTankBlock, RiverBoatBlock, SimpleHarmonicBlock, StoppingDistanceBlock, StringReflectionBlock, TemperatureScalesBlock, TerminalVelocityBlock, ThermalExpansionBlock, VectorBoardBlock, VectorTypesBlock, WaterDensityBlock, WaveBlock, physicsBlocks, physicsComponents } from "./physics.mjs";
131
+ import { AtwoodBlock, BulletWallsBlock, CarnotBlock, CircularMotionBlock, CollisionTrackBlock, DopplerBlock, EfficiencyBlock, ElectricFieldBlock, ElectricFluxBlock, EnergySkateBlock, EntropyBlock, GasProcessBlock, GaussLawBlock, GravitationBlock, GravityDropBlock, HeatTransferBlock, HeatingCurveBlock, ImpulseBlock, KeplerBlock, LeverBlock, LeverPuzzle, LorentzBlock, MagnetismBlock, OpticsBlock, OrbitLabBlock, ProjectileLabBlock, RainRelativeBlock, RampForcesBlock, RippleTankBlock, RiverBoatBlock, SimpleHarmonicBlock, StoppingDistanceBlock, StringReflectionBlock, TemperatureScalesBlock, TerminalVelocityBlock, ThermalExpansionBlock, VectorBoardBlock, VectorTypesBlock, WaterDensityBlock, WaveBlock, WorkEnergyBlock, WorkPotentialBlock, physicsBlocks, physicsComponents } from "./physics.mjs";
104
132
  import { SentenceBuilderLab } from "../language/sentence-builder/preset.mjs";
105
133
  import { WordMatchLab } from "../language/word-match/preset.mjs";
106
134
  import { ArticleLensLab } from "../language/article-lens/preset.mjs";
107
135
  import { AgreementLab } from "../language/agreement/preset.mjs";
108
- import { TransformLab } from "../language/transform/preset.mjs";
136
+ import { TransformLab as TransformLab$1 } from "../language/transform/preset.mjs";
109
137
  import { PrepositionSceneLab } from "../language/preposition-scene/preset.mjs";
110
138
  import { PredictBlock, PredictWidget, lessonBlocks, lessonComponents } from "./lesson.mjs";
111
139
  import { AgreementBlock, ArticleLensBlock, PrepositionBlock, SentenceBuilderBlock, TransformBlock, WordMatchBlock, languageBlocks, languageComponents } from "./language.mjs";
112
- import { ClassifierThresholdBlock, KMeansBlock, RegressionBlock, mlBlocks, mlComponents } from "./ml.mjs";
140
+ import { ClassifierThresholdBlock, DecisionBoundaryBlock, KMeansBlock, KnnBoundaryBlock, RegressionBlock, mlBlocks, mlComponents } from "./ml.mjs";
113
141
  import { CenterSpreadBlock, GaltonBlock, HistogramBlock, NormalBlock, SamplingBlock, SeriesBlock, ZTableBlock, statisticsBlocks, statisticsComponents } from "./statistics.mjs";
114
142
  import { LabConfig, LabConfigProps } from "./lab-config.mjs";
115
143
  import { coerceArray } from "./authoring.mjs";
116
144
  import { LabGallery, LabGalleryProps, LabPickItem } from "./lab-gallery.mjs";
117
145
 
118
146
  //#region src/blocks/index.d.ts
119
- /** Every lab block — pass to `<CmsBlockEditor blocks={labsBlocks}>` (slash menu). */
147
+ /** Every lab block, pass to `<CmsBlockEditor blocks={labsBlocks}>` (slash menu). */
120
148
  declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
121
149
  prompt: import("zod").ZodDefault<import("zod").ZodString>;
122
150
  choices: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
@@ -191,7 +219,7 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
191
219
  a: "a";
192
220
  an: "an";
193
221
  the: "the";
194
- "\u2014": "—";
222
+ ", ": ", ";
195
223
  }>;
196
224
  why: import("zod").ZodOptional<import("zod").ZodString>;
197
225
  }, import("zod/v4/core").$strip>>>;
@@ -251,16 +279,16 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
251
279
  options: import("zod").ZodArray<import("zod").ZodString>;
252
280
  scene: import("zod").ZodEnum<{
253
281
  in: "in";
254
- at: "at";
255
- between: "between";
256
282
  on: "on";
257
283
  over: "over";
258
284
  above: "above";
259
285
  under: "under";
260
286
  below: "below";
261
287
  beside: "beside";
288
+ between: "between";
262
289
  behind: "behind";
263
290
  infront: "infront";
291
+ at: "at";
264
292
  }>;
265
293
  figure: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
266
294
  kind: import("zod").ZodEnum<{
@@ -310,9 +338,9 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
310
338
  drag: import("zod").ZodOptional<import("zod").ZodBoolean>;
311
339
  }, import("zod/v4/core").$strip>>>;
312
340
  combine: import("zod").ZodDefault<import("zod").ZodEnum<{
313
- none: "none";
314
341
  sum: "sum";
315
342
  diff: "diff";
343
+ none: "none";
316
344
  }>>;
317
345
  goalX: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
318
346
  goalY: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
@@ -374,7 +402,7 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
374
402
  showCenterOfMass: import("zod").ZodDefault<import("zod").ZodBoolean>;
375
403
  title: import("zod").ZodOptional<import("zod").ZodString>;
376
404
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
377
- }, import("zod/v4/core").$strip>>, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
405
+ }, import("zod/v4/core").$strip>>, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
378
406
  functions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
379
407
  sin: "sin";
380
408
  cos: "cos";
@@ -398,7 +426,7 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
398
426
  log: "log";
399
427
  }>>;
400
428
  title: import("zod").ZodOptional<import("zod").ZodString>;
401
- }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
429
+ }, import("zod/v4/core").$strip>>, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
402
430
  equation: import("zod").ZodOptional<import("zod").ZodString>;
403
431
  xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
404
432
  startX: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -453,8 +481,8 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
453
481
  a: import("zod").ZodDefault<import("zod").ZodNumber>;
454
482
  b: import("zod").ZodDefault<import("zod").ZodNumber>;
455
483
  mode: import("zod").ZodDefault<import("zod").ZodEnum<{
456
- expand: "expand";
457
484
  factor: "factor";
485
+ expand: "expand";
458
486
  }>>;
459
487
  controlId: import("zod").ZodOptional<import("zod").ZodString>;
460
488
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
@@ -478,11 +506,11 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
478
506
  yRange: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>, import("zod").ZodLiteral<"auto">]>>;
479
507
  derive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
480
508
  kind: import("zod").ZodEnum<{
481
- intersections: "intersections";
509
+ area: "area";
482
510
  roots: "roots";
511
+ intersections: "intersections";
483
512
  tangent: "tangent";
484
513
  normal: "normal";
485
- area: "area";
486
514
  }>;
487
515
  of: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>]>>;
488
516
  at: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
@@ -525,8 +553,8 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
525
553
  angle: import("zod").ZodOptional<import("zod").ZodString>;
526
554
  }, import("zod/v4/core").$strip>>;
527
555
  drive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
528
- leg: "leg";
529
556
  angle: "angle";
557
+ leg: "leg";
530
558
  }>>>;
531
559
  ask: import("zod").ZodOptional<import("zod").ZodObject<{
532
560
  prompt: import("zod").ZodString;
@@ -543,11 +571,269 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
543
571
  title: import("zod").ZodOptional<import("zod").ZodString>;
544
572
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
545
573
  activity: import("zod").ZodOptional<import("zod").ZodString>;
574
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
575
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
576
+ "two-point": "two-point";
577
+ "gradient-intercept": "gradient-intercept";
578
+ "intercept-form": "intercept-form";
579
+ parallel: "parallel";
580
+ perpendicular: "perpendicular";
581
+ }>>;
582
+ pointA: import("zod").ZodOptional<import("zod").ZodObject<{
583
+ x: import("zod").ZodNumber;
584
+ y: import("zod").ZodNumber;
585
+ }, import("zod/v4/core").$strip>>;
586
+ pointB: import("zod").ZodOptional<import("zod").ZodObject<{
587
+ x: import("zod").ZodNumber;
588
+ y: import("zod").ZodNumber;
589
+ }, import("zod/v4/core").$strip>>;
590
+ given: import("zod").ZodOptional<import("zod").ZodObject<{
591
+ m: import("zod").ZodNumber;
592
+ c: import("zod").ZodNumber;
593
+ }, import("zod/v4/core").$strip>>;
594
+ through: import("zod").ZodOptional<import("zod").ZodObject<{
595
+ x: import("zod").ZodNumber;
596
+ y: import("zod").ZodNumber;
597
+ }, import("zod/v4/core").$strip>>;
598
+ showDistance: import("zod").ZodOptional<import("zod").ZodBoolean>;
599
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
600
+ title: import("zod").ZodOptional<import("zod").ZodString>;
601
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
602
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
603
+ prompt: import("zod").ZodString;
604
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
605
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
606
+ kind: import("zod").ZodLiteral<"number">;
607
+ value: import("zod").ZodNumber;
608
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
609
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
610
+ kind: import("zod").ZodLiteral<"expression">;
611
+ value: import("zod").ZodString;
612
+ }, import("zod/v4/core").$strip>]>>;
613
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
614
+ value: import("zod").ZodString;
615
+ label: import("zod").ZodString;
616
+ }, import("zod/v4/core").$strip>>>;
617
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
618
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
619
+ }, import("zod/v4/core").$strip>>;
620
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
621
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
622
+ center: import("zod").ZodOptional<import("zod").ZodObject<{
623
+ x: import("zod").ZodNumber;
624
+ y: import("zod").ZodNumber;
625
+ }, import("zod/v4/core").$strip>>;
626
+ radius: import("zod").ZodOptional<import("zod").ZodNumber>;
627
+ showTangent: import("zod").ZodOptional<import("zod").ZodBoolean>;
628
+ showExpanded: import("zod").ZodOptional<import("zod").ZodBoolean>;
629
+ tangentAngleDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
630
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
631
+ title: import("zod").ZodOptional<import("zod").ZodString>;
632
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
633
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
634
+ prompt: import("zod").ZodString;
635
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
636
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
637
+ kind: import("zod").ZodLiteral<"number">;
638
+ value: import("zod").ZodNumber;
639
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
640
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
641
+ kind: import("zod").ZodLiteral<"expression">;
642
+ value: import("zod").ZodString;
643
+ }, import("zod/v4/core").$strip>]>>;
644
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
645
+ value: import("zod").ZodString;
646
+ label: import("zod").ZodString;
647
+ }, import("zod/v4/core").$strip>>>;
648
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
649
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
650
+ }, import("zod/v4/core").$strip>>;
651
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
652
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
653
+ kind: import("zod").ZodOptional<import("zod").ZodEnum<{
654
+ parabola: "parabola";
655
+ ellipse: "ellipse";
656
+ hyperbola: "hyperbola";
657
+ rectangular: "rectangular";
658
+ }>>;
659
+ a: import("zod").ZodOptional<import("zod").ZodNumber>;
660
+ b: import("zod").ZodOptional<import("zod").ZodNumber>;
661
+ c: import("zod").ZodOptional<import("zod").ZodNumber>;
662
+ showFocusDirectrix: import("zod").ZodOptional<import("zod").ZodBoolean>;
663
+ showAsymptotes: import("zod").ZodOptional<import("zod").ZodBoolean>;
664
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
665
+ title: import("zod").ZodOptional<import("zod").ZodString>;
666
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
667
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
668
+ prompt: import("zod").ZodString;
669
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
670
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
671
+ kind: import("zod").ZodLiteral<"number">;
672
+ value: import("zod").ZodNumber;
673
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
674
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
675
+ kind: import("zod").ZodLiteral<"expression">;
676
+ value: import("zod").ZodString;
677
+ }, import("zod/v4/core").$strip>]>>;
678
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
679
+ value: import("zod").ZodString;
680
+ label: import("zod").ZodString;
681
+ }, import("zod/v4/core").$strip>>>;
682
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
683
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
684
+ }, import("zod/v4/core").$strip>>;
685
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
686
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
687
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
688
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
689
+ restrict: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
690
+ probe: import("zod").ZodOptional<import("zod").ZodNumber>;
691
+ title: import("zod").ZodOptional<import("zod").ZodString>;
692
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
693
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
694
+ prompt: import("zod").ZodString;
695
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
696
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
697
+ kind: import("zod").ZodLiteral<"number">;
698
+ value: import("zod").ZodNumber;
699
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
700
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
701
+ kind: import("zod").ZodLiteral<"expression">;
702
+ value: import("zod").ZodString;
703
+ }, import("zod/v4/core").$strip>]>>;
704
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
705
+ value: import("zod").ZodString;
706
+ label: import("zod").ZodString;
707
+ }, import("zod/v4/core").$strip>>>;
708
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
709
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
710
+ }, import("zod/v4/core").$strip>>;
711
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
712
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
713
+ slope: import("zod").ZodDefault<import("zod").ZodNumber>;
714
+ intercept: import("zod").ZodDefault<import("zod").ZodNumber>;
715
+ predictX: import("zod").ZodDefault<import("zod").ZodNumber>;
716
+ xMax: import("zod").ZodDefault<import("zod").ZodNumber>;
717
+ yMax: import("zod").ZodDefault<import("zod").ZodNumber>;
718
+ yStep: import("zod").ZodDefault<import("zod").ZodNumber>;
719
+ xLabel: import("zod").ZodDefault<import("zod").ZodString>;
720
+ yLabel: import("zod").ZodDefault<import("zod").ZodString>;
721
+ unit: import("zod").ZodDefault<import("zod").ZodString>;
722
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
723
+ vesselObjects: import("zod").ZodDefault<import("zod").ZodBoolean>;
724
+ vesselBinds: import("zod").ZodDefault<import("zod").ZodEnum<{
725
+ guess: "guess";
726
+ truth: "truth";
727
+ }>>;
728
+ objectLabel: import("zod").ZodOptional<import("zod").ZodString>;
729
+ title: import("zod").ZodOptional<import("zod").ZodString>;
730
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
731
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
732
+ prompt: import("zod").ZodString;
733
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
734
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
735
+ kind: import("zod").ZodLiteral<"number">;
736
+ value: import("zod").ZodNumber;
737
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
738
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
739
+ kind: import("zod").ZodLiteral<"expression">;
740
+ value: import("zod").ZodString;
741
+ }, import("zod/v4/core").$strip>]>>;
742
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
743
+ value: import("zod").ZodString;
744
+ label: import("zod").ZodString;
745
+ }, import("zod/v4/core").$strip>>>;
746
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
747
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
748
+ }, import("zod/v4/core").$strip>>;
749
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
750
+ }, import("zod/v4/core").$strip>>, LabBlock, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
751
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
752
+ rule: import("zod").ZodDefault<import("zod").ZodEnum<{
753
+ geometric: "geometric";
754
+ arithmetic: "arithmetic";
755
+ }>>;
756
+ factor: import("zod").ZodDefault<import("zod").ZodNumber>;
757
+ shown: import("zod").ZodDefault<import("zod").ZodNumber>;
758
+ predict: import("zod").ZodDefault<import("zod").ZodNumber>;
759
+ stepLabel: import("zod").ZodDefault<import("zod").ZodString>;
760
+ highlightNew: import("zod").ZodDefault<import("zod").ZodBoolean>;
761
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
762
+ title: import("zod").ZodOptional<import("zod").ZodString>;
763
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
764
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
765
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
766
+ kind: import("zod").ZodDefault<import("zod").ZodEnum<{
767
+ translate: "translate";
768
+ reflect: "reflect";
769
+ rotate: "rotate";
770
+ enlarge: "enlarge";
771
+ }>>;
772
+ byX: import("zod").ZodDefault<import("zod").ZodNumber>;
773
+ byY: import("zod").ZodDefault<import("zod").ZodNumber>;
774
+ axis: import("zod").ZodDefault<import("zod").ZodEnum<{
775
+ x: "x";
776
+ y: "y";
777
+ "y=x": "y=x";
778
+ "y=-x": "y=-x";
779
+ }>>;
780
+ deg: import("zod").ZodDefault<import("zod").ZodNumber>;
781
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
782
+ title: import("zod").ZodOptional<import("zod").ZodString>;
783
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
784
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
785
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
786
+ store: import("zod").ZodDefault<import("zod").ZodString>;
787
+ currency: import("zod").ZodDefault<import("zod").ZodString>;
788
+ items: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
789
+ qty: import("zod").ZodNumber;
790
+ name: import("zod").ZodString;
791
+ unit: import("zod").ZodNumber;
792
+ }, import("zod/v4/core").$strip>>>;
793
+ askItems: import("zod").ZodDefault<import("zod").ZodBoolean>;
794
+ askCost: import("zod").ZodDefault<import("zod").ZodBoolean>;
795
+ title: import("zod").ZodOptional<import("zod").ZodString>;
796
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
797
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
798
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
799
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
800
+ symA: import("zod").ZodDefault<import("zod").ZodString>;
801
+ labelA: import("zod").ZodDefault<import("zod").ZodString>;
802
+ answerA: import("zod").ZodDefault<import("zod").ZodNumber>;
803
+ symB: import("zod").ZodDefault<import("zod").ZodString>;
804
+ labelB: import("zod").ZodDefault<import("zod").ZodString>;
805
+ answerB: import("zod").ZodDefault<import("zod").ZodNumber>;
806
+ a0: import("zod").ZodDefault<import("zod").ZodNumber>;
807
+ b0: import("zod").ZodDefault<import("zod").ZodNumber>;
808
+ a1: import("zod").ZodDefault<import("zod").ZodNumber>;
809
+ b1: import("zod").ZodDefault<import("zod").ZodNumber>;
810
+ currency: import("zod").ZodOptional<import("zod").ZodString>;
811
+ unit: import("zod").ZodOptional<import("zod").ZodString>;
812
+ store: import("zod").ZodOptional<import("zod").ZodString>;
813
+ title: import("zod").ZodOptional<import("zod").ZodString>;
814
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
815
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
816
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
817
+ name: import("zod").ZodDefault<import("zod").ZodString>;
818
+ label: import("zod").ZodOptional<import("zod").ZodString>;
819
+ variant: import("zod").ZodDefault<import("zod").ZodEnum<{
820
+ count: "count";
821
+ icons: "icons";
822
+ shape: "shape";
823
+ }>>;
824
+ icon: import("zod").ZodDefault<import("zod").ZodString>;
825
+ slots: import("zod").ZodDefault<import("zod").ZodNumber>;
826
+ shape: import("zod").ZodDefault<import("zod").ZodEnum<{
827
+ box: "box";
828
+ cup: "cup";
829
+ circle: "circle";
830
+ }>>;
831
+ color: import("zod").ZodDefault<import("zod").ZodString>;
546
832
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
547
833
  holdConstant: import("zod").ZodDefault<import("zod").ZodEnum<{
548
- temperature: "temperature";
549
834
  none: "none";
550
835
  volume: "volume";
836
+ temperature: "temperature";
551
837
  pressure: "pressure";
552
838
  }>>;
553
839
  particleCount: import("zod").ZodDefault<import("zod").ZodNumber>;
@@ -588,19 +874,79 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
588
874
  r1: import("zod").ZodOptional<import("zod").ZodNumber>;
589
875
  r2: import("zod").ZodOptional<import("zod").ZodNumber>;
590
876
  mode: import("zod").ZodOptional<import("zod").ZodEnum<{
591
- series: "series";
592
877
  parallel: "parallel";
878
+ series: "series";
593
879
  }>>;
594
880
  title: import("zod").ZodOptional<import("zod").ZodString>;
595
881
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
596
882
  battery: import("zod").ZodOptional<import("zod").ZodNumber>;
597
883
  components: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
598
884
  title: import("zod").ZodOptional<import("zod").ZodString>;
885
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
886
+ doc: import("zod").ZodOptional<import("zod").ZodObject<{
887
+ parts: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
888
+ id: import("zod").ZodString;
889
+ kind: import("zod").ZodString;
890
+ at: import("zod").ZodObject<{
891
+ x: import("zod").ZodNumber;
892
+ y: import("zod").ZodNumber;
893
+ }, import("zod/v4/core").$strip>;
894
+ orient: import("zod").ZodOptional<import("zod").ZodEnum<{
895
+ h: "h";
896
+ v: "v";
897
+ }>>;
898
+ props: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString, import("zod").ZodBoolean]>>>;
899
+ pins: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
900
+ }, import("zod/v4/core").$strip>>>;
901
+ nodes: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
902
+ id: import("zod").ZodString;
903
+ at: import("zod").ZodObject<{
904
+ x: import("zod").ZodNumber;
905
+ y: import("zod").ZodNumber;
906
+ }, import("zod/v4/core").$strip>;
907
+ }, import("zod/v4/core").$strip>>>;
908
+ size: import("zod").ZodOptional<import("zod").ZodObject<{
909
+ w: import("zod").ZodNumber;
910
+ h: import("zod").ZodNumber;
911
+ }, import("zod/v4/core").$strip>>;
912
+ }, import("zod/v4/core").$strip>>;
913
+ title: import("zod").ZodOptional<import("zod").ZodString>;
599
914
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
600
915
  emf: import("zod").ZodDefault<import("zod").ZodNumber>;
601
916
  bulbOhms: import("zod").ZodDefault<import("zod").ZodNumber>;
602
917
  withSwitch: import("zod").ZodDefault<import("zod").ZodBoolean>;
603
918
  controlId: import("zod").ZodOptional<import("zod").ZodString>;
919
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
920
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
921
+ n: "n";
922
+ intrinsic: "intrinsic";
923
+ p: "p";
924
+ }>>;
925
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
926
+ lockDoping: import("zod").ZodDefault<import("zod").ZodBoolean>;
927
+ showTemperature: import("zod").ZodDefault<import("zod").ZodBoolean>;
928
+ title: import("zod").ZodOptional<import("zod").ZodString>;
929
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
930
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
931
+ title: import("zod").ZodOptional<import("zod").ZodString>;
932
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
933
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
934
+ title: import("zod").ZodOptional<import("zod").ZodString>;
935
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
936
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
937
+ title: import("zod").ZodOptional<import("zod").ZodString>;
938
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
939
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
940
+ pmos: import("zod").ZodDefault<import("zod").ZodBoolean>;
941
+ vth: import("zod").ZodDefault<import("zod").ZodNumber>;
942
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
943
+ title: import("zod").ZodOptional<import("zod").ZodString>;
944
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
945
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
946
+ pnp: import("zod").ZodDefault<import("zod").ZodBoolean>;
947
+ beta: import("zod").ZodDefault<import("zod").ZodNumber>;
948
+ title: import("zod").ZodOptional<import("zod").ZodString>;
949
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
604
950
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
605
951
  emf: import("zod").ZodDefault<import("zod").ZodNumber>;
606
952
  rK: import("zod").ZodDefault<import("zod").ZodNumber>;
@@ -609,6 +955,69 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
609
955
  startCharged: import("zod").ZodOptional<import("zod").ZodBoolean>;
610
956
  title: import("zod").ZodOptional<import("zod").ZodString>;
611
957
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
958
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
959
+ volts: import("zod").ZodOptional<import("zod").ZodNumber>;
960
+ resistanceK: import("zod").ZodOptional<import("zod").ZodNumber>;
961
+ capacitanceU: import("zod").ZodOptional<import("zod").ZodNumber>;
962
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
963
+ graph: "graph";
964
+ circuit: "circuit";
965
+ both: "both";
966
+ }>>;
967
+ title: import("zod").ZodOptional<import("zod").ZodString>;
968
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
969
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
970
+ volts: import("zod").ZodOptional<import("zod").ZodNumber>;
971
+ resistanceK: import("zod").ZodOptional<import("zod").ZodNumber>;
972
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
973
+ graph: "graph";
974
+ circuit: "circuit";
975
+ both: "both";
976
+ }>>;
977
+ title: import("zod").ZodOptional<import("zod").ZodString>;
978
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
979
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
980
+ supply: import("zod").ZodOptional<import("zod").ZodNumber>;
981
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
982
+ loadK: import("zod").ZodOptional<import("zod").ZodNumber>;
983
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
984
+ graph: "graph";
985
+ circuit: "circuit";
986
+ both: "both";
987
+ }>>;
988
+ title: import("zod").ZodOptional<import("zod").ZodString>;
989
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
990
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
991
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
992
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
993
+ rpull: import("zod").ZodOptional<import("zod").ZodNumber>;
994
+ title: import("zod").ZodOptional<import("zod").ZodString>;
995
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
996
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
997
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
998
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
999
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
1000
+ graph: "graph";
1001
+ circuit: "circuit";
1002
+ both: "both";
1003
+ }>>;
1004
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1005
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1006
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1007
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
1008
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
1009
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1010
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1011
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1012
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
1013
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
1014
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1015
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1016
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1017
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
1018
+ vmax: import("zod").ZodOptional<import("zod").ZodNumber>;
1019
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1020
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
612
1021
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
613
1022
  scene: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
614
1023
  title: import("zod").ZodOptional<import("zod").ZodString>;
@@ -640,6 +1049,46 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
640
1049
  target: import("zod").ZodOptional<import("zod").ZodNumber>;
641
1050
  title: import("zod").ZodOptional<import("zod").ZodString>;
642
1051
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
1052
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1053
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
1054
+ and: "and";
1055
+ or: "or";
1056
+ xor: "xor";
1057
+ "nand-not": "nand-not";
1058
+ "nand-and": "nand-and";
1059
+ "nand-or": "nand-or";
1060
+ "xor-nand": "xor-nand";
1061
+ "half-adder": "half-adder";
1062
+ "full-adder": "full-adder";
1063
+ }>>;
1064
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
1065
+ predict: "predict";
1066
+ explore: "explore";
1067
+ }>>;
1068
+ steps: import("zod").ZodDefault<import("zod").ZodBoolean>;
1069
+ showTable: import("zod").ZodDefault<import("zod").ZodBoolean>;
1070
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1071
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1072
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1073
+ bits: import("zod").ZodDefault<import("zod").ZodNumber>;
1074
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
1075
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
1076
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1077
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1078
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1079
+ goal: import("zod").ZodDefault<import("zod").ZodEnum<{
1080
+ and: "and";
1081
+ or: "or";
1082
+ xor: "xor";
1083
+ "nand-not": "nand-not";
1084
+ "nand-and": "nand-and";
1085
+ "nand-or": "nand-or";
1086
+ "half-adder": "half-adder";
1087
+ "full-adder": "full-adder";
1088
+ sandbox: "sandbox";
1089
+ }>>;
1090
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1091
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
643
1092
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
644
1093
  accounts: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
645
1094
  id: import("zod").ZodString;
@@ -783,9 +1232,9 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
783
1232
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
784
1233
  }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
785
1234
  kind: import("zod").ZodDefault<import("zod").ZodEnum<{
1235
+ translation: "translation";
786
1236
  replication: "replication";
787
1237
  transcription: "transcription";
788
- translation: "translation";
789
1238
  }>>;
790
1239
  template: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
791
1240
  title: import("zod").ZodOptional<import("zod").ZodString>;
@@ -859,8 +1308,27 @@ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBloc
859
1308
  span: import("zod").ZodDefault<import("zod").ZodNumber>;
860
1309
  title: import("zod").ZodOptional<import("zod").ZodString>;
861
1310
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
862
- }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>];
863
- /** MDX render map — merge into the host's `blockComponents` (tag → component).
1311
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1312
+ dataset: import("zod").ZodDefault<import("zod").ZodEnum<{
1313
+ xor: "xor";
1314
+ separable: "separable";
1315
+ overlap: "overlap";
1316
+ }>>;
1317
+ seed: import("zod").ZodDefault<import("zod").ZodNumber>;
1318
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1319
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1320
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
1321
+ dataset: import("zod").ZodDefault<import("zod").ZodEnum<{
1322
+ xor: "xor";
1323
+ blobs: "blobs";
1324
+ circles: "circles";
1325
+ }>>;
1326
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
1327
+ seed: import("zod").ZodDefault<import("zod").ZodNumber>;
1328
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1329
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1330
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>>];
1331
+ /** MDX render map, merge into the host's `blockComponents` (tag → component).
864
1332
  * Tags match each block's `tag` so editor + player render the same component.
865
1333
  * Tags are unique across domains, so spread order is irrelevant. */
866
1334
  declare const labsComponents: {
@@ -889,9 +1357,33 @@ declare const labsComponents: {
889
1357
  readonly Hypergeometric: typeof HypergeometricLab;
890
1358
  readonly ExpectedValue: typeof ExpectedValueLab;
891
1359
  readonly LawOfLargeNumbers: typeof LawOfLargeNumbersLab;
892
- readonly Regression: typeof RegressionLab;
893
- readonly KMeans: typeof KMeansLab;
894
- readonly ClassifierThreshold: typeof ClassifierThresholdLab;
1360
+ readonly CombinationStudio: typeof CombinationStudioLab;
1361
+ readonly RuleCard: (a: import("zod").infer<import("zod").ZodObject<{
1362
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
1363
+ none: "none";
1364
+ "rule-of-product": "rule-of-product";
1365
+ "rule-of-sum": "rule-of-sum";
1366
+ factorial: "factorial";
1367
+ permutation: "permutation";
1368
+ combination: "combination";
1369
+ "perm-with-rep": "perm-with-rep";
1370
+ }>>;
1371
+ name: import("zod").ZodDefault<import("zod").ZodString>;
1372
+ formula: import("zod").ZodDefault<import("zod").ZodString>;
1373
+ analogy: import("zod").ZodOptional<import("zod").ZodString>;
1374
+ tricks: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1375
+ derivation: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1376
+ tex: import("zod").ZodString;
1377
+ note: import("zod").ZodOptional<import("zod").ZodString>;
1378
+ }, import("zod/v4/core").$strip>>>;
1379
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1380
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1381
+ }, import("zod/v4/core").$strip>>) => import("react").ReactNode;
1382
+ readonly Regression: typeof RegressionLab;
1383
+ readonly KMeans: typeof KMeansLab;
1384
+ readonly ClassifierThreshold: typeof ClassifierThresholdLab;
1385
+ readonly DecisionBoundary: typeof DecisionBoundaryLab;
1386
+ readonly KnnBoundary: typeof KNNBoundaryLab;
895
1387
  readonly Cycle: typeof CycleLab;
896
1388
  readonly EnzymeRate: typeof EnzymeRateLab;
897
1389
  readonly PhotosynthesisFactors: typeof PhotosynthesisFactorsLab;
@@ -910,12 +1402,30 @@ declare const labsComponents: {
910
1402
  readonly PlaceValueDial: typeof PlaceValueDialLab;
911
1403
  readonly BitGrouper: typeof BitGrouperLab;
912
1404
  readonly BaseOdometer: typeof BaseOdometerLab;
1405
+ readonly LogicGate: typeof LogicGateLab;
1406
+ readonly BinaryDisplay: typeof BinaryDisplayLab;
1407
+ readonly LogicBuilder: typeof LogicBuildLab;
913
1408
  readonly GeometryBoard: typeof GeometryBoard;
914
1409
  readonly IntersectingCircles: typeof IntersectingCircles;
915
1410
  readonly CapacitorLeak: typeof CapacitorLeakLab;
916
1411
  readonly Circuit: typeof CircuitPuzzle;
917
1412
  readonly CircuitBuilder: typeof CircuitBuilder;
918
1413
  readonly CircuitLab: typeof CircuitLab;
1414
+ readonly CircuitScene: typeof CircuitSceneView;
1415
+ readonly MosfetInside: typeof MosfetInsideLab;
1416
+ readonly PnJunction: typeof PnJunctionLab;
1417
+ readonly BjtInside: typeof BjtInsideLab;
1418
+ readonly SiliconLattice: typeof SiliconLatticeLab;
1419
+ readonly Conduction: typeof ConductionLab;
1420
+ readonly HallEffect: typeof HallEffectLab;
1421
+ readonly RCCharging: typeof RCChargingLab;
1422
+ readonly Diode: typeof DiodeLab;
1423
+ readonly Transistor: typeof TransistorLab;
1424
+ readonly RNmosNot: typeof RNmosNotLab;
1425
+ readonly CmosInverter: typeof CmosInverterLab;
1426
+ readonly CmosNand: typeof CmosNandLab;
1427
+ readonly CmosNor: typeof CmosNorLab;
1428
+ readonly Brownout: typeof BrownoutLab;
919
1429
  readonly GasBox: typeof GasBoxLab;
920
1430
  readonly SolutionBox: typeof SolutionBoxLab;
921
1431
  readonly Dilution: typeof DilutionLab;
@@ -946,6 +1456,22 @@ declare const labsComponents: {
946
1456
  readonly TrigExplorer: typeof TrigExplorer;
947
1457
  readonly InteractiveProblem: typeof InteractiveProblem;
948
1458
  readonly TriangleTrig: typeof TriangleTrig;
1459
+ readonly StraightLine: typeof StraightLineLab;
1460
+ readonly CircleLab: typeof CircleLab;
1461
+ readonly ConicLab: typeof ConicLab;
1462
+ readonly DomainRange: typeof DomainRangeLab;
1463
+ readonly LinearModel: typeof LinearModelLab;
1464
+ readonly RateMachine: typeof RateMachineLab;
1465
+ readonly SequencePredict: typeof SequencePredict;
1466
+ readonly PercentBar: typeof PercentBarLab;
1467
+ readonly FractionBar: typeof FractionBarLab;
1468
+ readonly RatioShare: typeof RatioShareLab;
1469
+ readonly ComplexPlane: typeof ComplexPlaneLab;
1470
+ readonly TrigSigns: typeof TrigSignsLab;
1471
+ readonly PolynomialSolver: typeof PolynomialSolverLab;
1472
+ readonly GeoTransform: typeof TransformLab;
1473
+ readonly ReceiptTotals: typeof ReceiptLab;
1474
+ readonly SystemSolve: typeof SystemSolveLab;
949
1475
  readonly VectorBoard: typeof VectorBoardView;
950
1476
  readonly VectorTypes: typeof VectorTypesLab;
951
1477
  readonly RainRelative: typeof RainRelativeLab;
@@ -962,7 +1488,7 @@ declare const labsComponents: {
962
1488
  readonly WordMatch: typeof WordMatchLab;
963
1489
  readonly ArticleLens: typeof ArticleLensLab;
964
1490
  readonly Agreement: typeof AgreementLab;
965
- readonly Transform: typeof TransformLab;
1491
+ readonly Transform: typeof TransformLab$1;
966
1492
  readonly Preposition: typeof PrepositionSceneLab;
967
1493
  readonly Predict: typeof PredictWidget;
968
1494
  };
@@ -1455,15 +1981,15 @@ declare const labGalleryItems: ({
1455
1981
  a: import("zod").ZodDefault<import("zod").ZodNumber>;
1456
1982
  b: import("zod").ZodDefault<import("zod").ZodNumber>;
1457
1983
  mode: import("zod").ZodDefault<import("zod").ZodEnum<{
1458
- expand: "expand";
1459
1984
  factor: "factor";
1985
+ expand: "expand";
1460
1986
  }>>;
1461
1987
  controlId: import("zod").ZodOptional<import("zod").ZodString>;
1462
1988
  }, import("zod/v4/core").$strip>;
1463
1989
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1464
1990
  a: number;
1465
1991
  b: number;
1466
- mode: "expand" | "factor";
1992
+ mode: "factor" | "expand";
1467
1993
  controlId?: string | undefined;
1468
1994
  }>>;
1469
1995
  tag?: string;
@@ -1471,13 +1997,13 @@ declare const labGalleryItems: ({
1471
1997
  toAttrs?: ((props: {
1472
1998
  a: number;
1473
1999
  b: number;
1474
- mode: "expand" | "factor";
2000
+ mode: "factor" | "expand";
1475
2001
  controlId?: string | undefined;
1476
2002
  }) => Record<string, unknown>) | undefined;
1477
2003
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1478
2004
  a: number;
1479
2005
  b: number;
1480
- mode: "expand" | "factor";
2006
+ mode: "factor" | "expand";
1481
2007
  controlId?: string | undefined;
1482
2008
  }>) | undefined;
1483
2009
  } | {
@@ -1542,11 +2068,11 @@ declare const labGalleryItems: ({
1542
2068
  yRange: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>, import("zod").ZodLiteral<"auto">]>>;
1543
2069
  derive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1544
2070
  kind: import("zod").ZodEnum<{
1545
- intersections: "intersections";
2071
+ area: "area";
1546
2072
  roots: "roots";
2073
+ intersections: "intersections";
1547
2074
  tangent: "tangent";
1548
2075
  normal: "normal";
1549
- area: "area";
1550
2076
  }>;
1551
2077
  of: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>]>>;
1552
2078
  at: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
@@ -1586,7 +2112,7 @@ declare const labGalleryItems: ({
1586
2112
  xRange?: [number, number] | undefined;
1587
2113
  yRange?: [number, number] | "auto" | undefined;
1588
2114
  derive?: {
1589
- kind: "intersections" | "roots" | "tangent" | "normal" | "area";
2115
+ kind: "area" | "roots" | "intersections" | "tangent" | "normal";
1590
2116
  of?: number | [number, number] | undefined;
1591
2117
  at?: string | number | undefined;
1592
2118
  between?: [number, number] | undefined;
@@ -1627,7 +2153,7 @@ declare const labGalleryItems: ({
1627
2153
  xRange?: [number, number] | undefined;
1628
2154
  yRange?: [number, number] | "auto" | undefined;
1629
2155
  derive?: {
1630
- kind: "intersections" | "roots" | "tangent" | "normal" | "area";
2156
+ kind: "area" | "roots" | "intersections" | "tangent" | "normal";
1631
2157
  of?: number | [number, number] | undefined;
1632
2158
  at?: string | number | undefined;
1633
2159
  between?: [number, number] | undefined;
@@ -1666,7 +2192,7 @@ declare const labGalleryItems: ({
1666
2192
  xRange?: [number, number] | undefined;
1667
2193
  yRange?: [number, number] | "auto" | undefined;
1668
2194
  derive?: {
1669
- kind: "intersections" | "roots" | "tangent" | "normal" | "area";
2195
+ kind: "area" | "roots" | "intersections" | "tangent" | "normal";
1670
2196
  of?: number | [number, number] | undefined;
1671
2197
  at?: string | number | undefined;
1672
2198
  between?: [number, number] | undefined;
@@ -1719,8 +2245,8 @@ declare const labGalleryItems: ({
1719
2245
  angle: import("zod").ZodOptional<import("zod").ZodString>;
1720
2246
  }, import("zod/v4/core").$strip>>;
1721
2247
  drive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
1722
- leg: "leg";
1723
2248
  angle: "angle";
2249
+ leg: "leg";
1724
2250
  }>>>;
1725
2251
  ask: import("zod").ZodOptional<import("zod").ZodObject<{
1726
2252
  prompt: import("zod").ZodString;
@@ -1749,7 +2275,7 @@ declare const labGalleryItems: ({
1749
2275
  hypotenuse?: string | undefined;
1750
2276
  angle?: string | undefined;
1751
2277
  } | undefined;
1752
- drive?: ("leg" | "angle")[] | undefined;
2278
+ drive?: ("angle" | "leg")[] | undefined;
1753
2279
  ask?: {
1754
2280
  prompt: string;
1755
2281
  answer: {
@@ -1779,7 +2305,7 @@ declare const labGalleryItems: ({
1779
2305
  hypotenuse?: string | undefined;
1780
2306
  angle?: string | undefined;
1781
2307
  } | undefined;
1782
- drive?: ("leg" | "angle")[] | undefined;
2308
+ drive?: ("angle" | "leg")[] | undefined;
1783
2309
  ask?: {
1784
2310
  prompt: string;
1785
2311
  answer: {
@@ -1807,7 +2333,7 @@ declare const labGalleryItems: ({
1807
2333
  hypotenuse?: string | undefined;
1808
2334
  angle?: string | undefined;
1809
2335
  } | undefined;
1810
- drive?: ("leg" | "angle")[] | undefined;
2336
+ drive?: ("angle" | "leg")[] | undefined;
1811
2337
  ask?: {
1812
2338
  prompt: string;
1813
2339
  answer: {
@@ -1835,39 +2361,181 @@ declare const labGalleryItems: ({
1835
2361
  category?: import("@classytic/cms-ui/contract").BlockCategory;
1836
2362
  slash?: boolean;
1837
2363
  schema: import("zod").ZodObject<{
1838
- targetMeters: import("zod").ZodOptional<import("zod").ZodNumber>;
1839
- g: import("zod").ZodOptional<import("zod").ZodNumber>;
2364
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
2365
+ "two-point": "two-point";
2366
+ "gradient-intercept": "gradient-intercept";
2367
+ "intercept-form": "intercept-form";
2368
+ parallel: "parallel";
2369
+ perpendicular: "perpendicular";
2370
+ }>>;
2371
+ pointA: import("zod").ZodOptional<import("zod").ZodObject<{
2372
+ x: import("zod").ZodNumber;
2373
+ y: import("zod").ZodNumber;
2374
+ }, import("zod/v4/core").$strip>>;
2375
+ pointB: import("zod").ZodOptional<import("zod").ZodObject<{
2376
+ x: import("zod").ZodNumber;
2377
+ y: import("zod").ZodNumber;
2378
+ }, import("zod/v4/core").$strip>>;
2379
+ given: import("zod").ZodOptional<import("zod").ZodObject<{
2380
+ m: import("zod").ZodNumber;
2381
+ c: import("zod").ZodNumber;
2382
+ }, import("zod/v4/core").$strip>>;
2383
+ through: import("zod").ZodOptional<import("zod").ZodObject<{
2384
+ x: import("zod").ZodNumber;
2385
+ y: import("zod").ZodNumber;
2386
+ }, import("zod/v4/core").$strip>>;
2387
+ showDistance: import("zod").ZodOptional<import("zod").ZodBoolean>;
2388
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
2389
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2390
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2391
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
2392
+ prompt: import("zod").ZodString;
2393
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
2394
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
2395
+ kind: import("zod").ZodLiteral<"number">;
2396
+ value: import("zod").ZodNumber;
2397
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
2398
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
2399
+ kind: import("zod").ZodLiteral<"expression">;
2400
+ value: import("zod").ZodString;
2401
+ }, import("zod/v4/core").$strip>]>>;
2402
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2403
+ value: import("zod").ZodString;
2404
+ label: import("zod").ZodString;
2405
+ }, import("zod/v4/core").$strip>>>;
2406
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
2407
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
2408
+ }, import("zod/v4/core").$strip>>;
2409
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
1840
2410
  }, import("zod/v4/core").$strip>;
1841
2411
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1842
- targetMeters?: number | undefined;
1843
- g?: number | undefined;
2412
+ mode?: "two-point" | "gradient-intercept" | "intercept-form" | "parallel" | "perpendicular" | undefined;
2413
+ pointA?: {
2414
+ x: number;
2415
+ y: number;
2416
+ } | undefined;
2417
+ pointB?: {
2418
+ x: number;
2419
+ y: number;
2420
+ } | undefined;
2421
+ given?: {
2422
+ m: number;
2423
+ c: number;
2424
+ } | undefined;
2425
+ through?: {
2426
+ x: number;
2427
+ y: number;
2428
+ } | undefined;
2429
+ showDistance?: boolean | undefined;
2430
+ snap?: number | undefined;
2431
+ title?: string | undefined;
2432
+ prompt?: string | undefined;
2433
+ ask?: {
2434
+ prompt: string;
2435
+ placeholder?: string | undefined;
2436
+ answer?: {
2437
+ kind: "number";
2438
+ value: number;
2439
+ tol?: number | undefined;
2440
+ } | {
2441
+ kind: "expression";
2442
+ value: string;
2443
+ } | undefined;
2444
+ choices?: {
2445
+ value: string;
2446
+ label: string;
2447
+ }[] | undefined;
2448
+ correct?: string | undefined;
2449
+ explain?: string | undefined;
2450
+ } | undefined;
2451
+ activity?: string | undefined;
1844
2452
  }>>;
1845
2453
  tag?: string;
1846
2454
  void?: boolean;
1847
2455
  toAttrs?: ((props: {
1848
- targetMeters?: number | undefined;
1849
- g?: number | undefined;
2456
+ mode?: "two-point" | "gradient-intercept" | "intercept-form" | "parallel" | "perpendicular" | undefined;
2457
+ pointA?: {
2458
+ x: number;
2459
+ y: number;
2460
+ } | undefined;
2461
+ pointB?: {
2462
+ x: number;
2463
+ y: number;
2464
+ } | undefined;
2465
+ given?: {
2466
+ m: number;
2467
+ c: number;
2468
+ } | undefined;
2469
+ through?: {
2470
+ x: number;
2471
+ y: number;
2472
+ } | undefined;
2473
+ showDistance?: boolean | undefined;
2474
+ snap?: number | undefined;
2475
+ title?: string | undefined;
2476
+ prompt?: string | undefined;
2477
+ ask?: {
2478
+ prompt: string;
2479
+ placeholder?: string | undefined;
2480
+ answer?: {
2481
+ kind: "number";
2482
+ value: number;
2483
+ tol?: number | undefined;
2484
+ } | {
2485
+ kind: "expression";
2486
+ value: string;
2487
+ } | undefined;
2488
+ choices?: {
2489
+ value: string;
2490
+ label: string;
2491
+ }[] | undefined;
2492
+ correct?: string | undefined;
2493
+ explain?: string | undefined;
2494
+ } | undefined;
2495
+ activity?: string | undefined;
1850
2496
  }) => Record<string, unknown>) | undefined;
1851
2497
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1852
- targetMeters?: number | undefined;
1853
- g?: number | undefined;
2498
+ mode?: "two-point" | "gradient-intercept" | "intercept-form" | "parallel" | "perpendicular" | undefined;
2499
+ pointA?: {
2500
+ x: number;
2501
+ y: number;
2502
+ } | undefined;
2503
+ pointB?: {
2504
+ x: number;
2505
+ y: number;
2506
+ } | undefined;
2507
+ given?: {
2508
+ m: number;
2509
+ c: number;
2510
+ } | undefined;
2511
+ through?: {
2512
+ x: number;
2513
+ y: number;
2514
+ } | undefined;
2515
+ showDistance?: boolean | undefined;
2516
+ snap?: number | undefined;
2517
+ title?: string | undefined;
2518
+ prompt?: string | undefined;
2519
+ ask?: {
2520
+ prompt: string;
2521
+ placeholder?: string | undefined;
2522
+ answer?: {
2523
+ kind: "number";
2524
+ value: number;
2525
+ tol?: number | undefined;
2526
+ } | {
2527
+ kind: "expression";
2528
+ value: string;
2529
+ } | undefined;
2530
+ choices?: {
2531
+ value: string;
2532
+ label: string;
2533
+ }[] | undefined;
2534
+ correct?: string | undefined;
2535
+ explain?: string | undefined;
2536
+ } | undefined;
2537
+ activity?: string | undefined;
1854
2538
  }>) | undefined;
1855
- } | {
1856
- group: string;
1857
- key: string;
1858
- label: string;
1859
- icon?: import("react").ComponentType<{
1860
- className?: string;
1861
- }>;
1862
- description?: string;
1863
- category?: import("@classytic/cms-ui/contract").BlockCategory;
1864
- slash?: boolean;
1865
- schema: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
1866
- Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<Record<string, never>>>;
1867
- tag?: string;
1868
- void?: boolean;
1869
- toAttrs?: ((props: Record<string, never>) => Record<string, unknown>) | undefined;
1870
- fromAttrs?: ((raw: Record<string, unknown>) => Partial<Record<string, never>>) | undefined;
1871
2539
  } | {
1872
2540
  group: string;
1873
2541
  key: string;
@@ -1879,18 +2547,134 @@ declare const labGalleryItems: ({
1879
2547
  category?: import("@classytic/cms-ui/contract").BlockCategory;
1880
2548
  slash?: boolean;
1881
2549
  schema: import("zod").ZodObject<{
1882
- height: import("zod").ZodOptional<import("zod").ZodNumber>;
2550
+ center: import("zod").ZodOptional<import("zod").ZodObject<{
2551
+ x: import("zod").ZodNumber;
2552
+ y: import("zod").ZodNumber;
2553
+ }, import("zod/v4/core").$strip>>;
2554
+ radius: import("zod").ZodOptional<import("zod").ZodNumber>;
2555
+ showTangent: import("zod").ZodOptional<import("zod").ZodBoolean>;
2556
+ showExpanded: import("zod").ZodOptional<import("zod").ZodBoolean>;
2557
+ tangentAngleDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
2558
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
2559
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2560
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2561
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
2562
+ prompt: import("zod").ZodString;
2563
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
2564
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
2565
+ kind: import("zod").ZodLiteral<"number">;
2566
+ value: import("zod").ZodNumber;
2567
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
2568
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
2569
+ kind: import("zod").ZodLiteral<"expression">;
2570
+ value: import("zod").ZodString;
2571
+ }, import("zod/v4/core").$strip>]>>;
2572
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2573
+ value: import("zod").ZodString;
2574
+ label: import("zod").ZodString;
2575
+ }, import("zod/v4/core").$strip>>>;
2576
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
2577
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
2578
+ }, import("zod/v4/core").$strip>>;
2579
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
1883
2580
  }, import("zod/v4/core").$strip>;
1884
2581
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1885
- height?: number | undefined;
2582
+ center?: {
2583
+ x: number;
2584
+ y: number;
2585
+ } | undefined;
2586
+ radius?: number | undefined;
2587
+ showTangent?: boolean | undefined;
2588
+ showExpanded?: boolean | undefined;
2589
+ tangentAngleDeg?: number | undefined;
2590
+ snap?: number | undefined;
2591
+ title?: string | undefined;
2592
+ prompt?: string | undefined;
2593
+ ask?: {
2594
+ prompt: string;
2595
+ placeholder?: string | undefined;
2596
+ answer?: {
2597
+ kind: "number";
2598
+ value: number;
2599
+ tol?: number | undefined;
2600
+ } | {
2601
+ kind: "expression";
2602
+ value: string;
2603
+ } | undefined;
2604
+ choices?: {
2605
+ value: string;
2606
+ label: string;
2607
+ }[] | undefined;
2608
+ correct?: string | undefined;
2609
+ explain?: string | undefined;
2610
+ } | undefined;
2611
+ activity?: string | undefined;
1886
2612
  }>>;
1887
2613
  tag?: string;
1888
2614
  void?: boolean;
1889
2615
  toAttrs?: ((props: {
1890
- height?: number | undefined;
2616
+ center?: {
2617
+ x: number;
2618
+ y: number;
2619
+ } | undefined;
2620
+ radius?: number | undefined;
2621
+ showTangent?: boolean | undefined;
2622
+ showExpanded?: boolean | undefined;
2623
+ tangentAngleDeg?: number | undefined;
2624
+ snap?: number | undefined;
2625
+ title?: string | undefined;
2626
+ prompt?: string | undefined;
2627
+ ask?: {
2628
+ prompt: string;
2629
+ placeholder?: string | undefined;
2630
+ answer?: {
2631
+ kind: "number";
2632
+ value: number;
2633
+ tol?: number | undefined;
2634
+ } | {
2635
+ kind: "expression";
2636
+ value: string;
2637
+ } | undefined;
2638
+ choices?: {
2639
+ value: string;
2640
+ label: string;
2641
+ }[] | undefined;
2642
+ correct?: string | undefined;
2643
+ explain?: string | undefined;
2644
+ } | undefined;
2645
+ activity?: string | undefined;
1891
2646
  }) => Record<string, unknown>) | undefined;
1892
2647
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1893
- height?: number | undefined;
2648
+ center?: {
2649
+ x: number;
2650
+ y: number;
2651
+ } | undefined;
2652
+ radius?: number | undefined;
2653
+ showTangent?: boolean | undefined;
2654
+ showExpanded?: boolean | undefined;
2655
+ tangentAngleDeg?: number | undefined;
2656
+ snap?: number | undefined;
2657
+ title?: string | undefined;
2658
+ prompt?: string | undefined;
2659
+ ask?: {
2660
+ prompt: string;
2661
+ placeholder?: string | undefined;
2662
+ answer?: {
2663
+ kind: "number";
2664
+ value: number;
2665
+ tol?: number | undefined;
2666
+ } | {
2667
+ kind: "expression";
2668
+ value: string;
2669
+ } | undefined;
2670
+ choices?: {
2671
+ value: string;
2672
+ label: string;
2673
+ }[] | undefined;
2674
+ correct?: string | undefined;
2675
+ explain?: string | undefined;
2676
+ } | undefined;
2677
+ activity?: string | undefined;
1894
2678
  }>) | undefined;
1895
2679
  } | {
1896
2680
  group: string;
@@ -1903,30 +2687,1271 @@ declare const labGalleryItems: ({
1903
2687
  category?: import("@classytic/cms-ui/contract").BlockCategory;
1904
2688
  slash?: boolean;
1905
2689
  schema: import("zod").ZodObject<{
1906
- boatSpeed: import("zod").ZodOptional<import("zod").ZodNumber>;
1907
- current: import("zod").ZodOptional<import("zod").ZodNumber>;
1908
- riverWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
2690
+ kind: import("zod").ZodOptional<import("zod").ZodEnum<{
2691
+ parabola: "parabola";
2692
+ ellipse: "ellipse";
2693
+ hyperbola: "hyperbola";
2694
+ rectangular: "rectangular";
2695
+ }>>;
2696
+ a: import("zod").ZodOptional<import("zod").ZodNumber>;
2697
+ b: import("zod").ZodOptional<import("zod").ZodNumber>;
2698
+ c: import("zod").ZodOptional<import("zod").ZodNumber>;
2699
+ showFocusDirectrix: import("zod").ZodOptional<import("zod").ZodBoolean>;
2700
+ showAsymptotes: import("zod").ZodOptional<import("zod").ZodBoolean>;
2701
+ snap: import("zod").ZodOptional<import("zod").ZodNumber>;
1909
2702
  title: import("zod").ZodOptional<import("zod").ZodString>;
1910
- }, import("zod/v4/core").$strip>;
1911
- Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1912
- boatSpeed?: number | undefined;
1913
- current?: number | undefined;
1914
- riverWidth?: number | undefined;
1915
- title?: string | undefined;
1916
- }>>;
1917
- tag?: string;
1918
- void?: boolean;
1919
- toAttrs?: ((props: {
1920
- boatSpeed?: number | undefined;
2703
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2704
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
2705
+ prompt: import("zod").ZodString;
2706
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
2707
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
2708
+ kind: import("zod").ZodLiteral<"number">;
2709
+ value: import("zod").ZodNumber;
2710
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
2711
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
2712
+ kind: import("zod").ZodLiteral<"expression">;
2713
+ value: import("zod").ZodString;
2714
+ }, import("zod/v4/core").$strip>]>>;
2715
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2716
+ value: import("zod").ZodString;
2717
+ label: import("zod").ZodString;
2718
+ }, import("zod/v4/core").$strip>>>;
2719
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
2720
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
2721
+ }, import("zod/v4/core").$strip>>;
2722
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
2723
+ }, import("zod/v4/core").$strip>;
2724
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2725
+ kind?: "parabola" | "ellipse" | "hyperbola" | "rectangular" | undefined;
2726
+ a?: number | undefined;
2727
+ b?: number | undefined;
2728
+ c?: number | undefined;
2729
+ showFocusDirectrix?: boolean | undefined;
2730
+ showAsymptotes?: boolean | undefined;
2731
+ snap?: number | undefined;
2732
+ title?: string | undefined;
2733
+ prompt?: string | undefined;
2734
+ ask?: {
2735
+ prompt: string;
2736
+ placeholder?: string | undefined;
2737
+ answer?: {
2738
+ kind: "number";
2739
+ value: number;
2740
+ tol?: number | undefined;
2741
+ } | {
2742
+ kind: "expression";
2743
+ value: string;
2744
+ } | undefined;
2745
+ choices?: {
2746
+ value: string;
2747
+ label: string;
2748
+ }[] | undefined;
2749
+ correct?: string | undefined;
2750
+ explain?: string | undefined;
2751
+ } | undefined;
2752
+ activity?: string | undefined;
2753
+ }>>;
2754
+ tag?: string;
2755
+ void?: boolean;
2756
+ toAttrs?: ((props: {
2757
+ kind?: "parabola" | "ellipse" | "hyperbola" | "rectangular" | undefined;
2758
+ a?: number | undefined;
2759
+ b?: number | undefined;
2760
+ c?: number | undefined;
2761
+ showFocusDirectrix?: boolean | undefined;
2762
+ showAsymptotes?: boolean | undefined;
2763
+ snap?: number | undefined;
2764
+ title?: string | undefined;
2765
+ prompt?: string | undefined;
2766
+ ask?: {
2767
+ prompt: string;
2768
+ placeholder?: string | undefined;
2769
+ answer?: {
2770
+ kind: "number";
2771
+ value: number;
2772
+ tol?: number | undefined;
2773
+ } | {
2774
+ kind: "expression";
2775
+ value: string;
2776
+ } | undefined;
2777
+ choices?: {
2778
+ value: string;
2779
+ label: string;
2780
+ }[] | undefined;
2781
+ correct?: string | undefined;
2782
+ explain?: string | undefined;
2783
+ } | undefined;
2784
+ activity?: string | undefined;
2785
+ }) => Record<string, unknown>) | undefined;
2786
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2787
+ kind?: "parabola" | "ellipse" | "hyperbola" | "rectangular" | undefined;
2788
+ a?: number | undefined;
2789
+ b?: number | undefined;
2790
+ c?: number | undefined;
2791
+ showFocusDirectrix?: boolean | undefined;
2792
+ showAsymptotes?: boolean | undefined;
2793
+ snap?: number | undefined;
2794
+ title?: string | undefined;
2795
+ prompt?: string | undefined;
2796
+ ask?: {
2797
+ prompt: string;
2798
+ placeholder?: string | undefined;
2799
+ answer?: {
2800
+ kind: "number";
2801
+ value: number;
2802
+ tol?: number | undefined;
2803
+ } | {
2804
+ kind: "expression";
2805
+ value: string;
2806
+ } | undefined;
2807
+ choices?: {
2808
+ value: string;
2809
+ label: string;
2810
+ }[] | undefined;
2811
+ correct?: string | undefined;
2812
+ explain?: string | undefined;
2813
+ } | undefined;
2814
+ activity?: string | undefined;
2815
+ }>) | undefined;
2816
+ } | {
2817
+ group: string;
2818
+ key: string;
2819
+ label: string;
2820
+ icon?: import("react").ComponentType<{
2821
+ className?: string;
2822
+ }>;
2823
+ description?: string;
2824
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2825
+ slash?: boolean;
2826
+ schema: import("zod").ZodObject<{
2827
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
2828
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
2829
+ restrict: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
2830
+ probe: import("zod").ZodOptional<import("zod").ZodNumber>;
2831
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2832
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2833
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
2834
+ prompt: import("zod").ZodString;
2835
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
2836
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
2837
+ kind: import("zod").ZodLiteral<"number">;
2838
+ value: import("zod").ZodNumber;
2839
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
2840
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
2841
+ kind: import("zod").ZodLiteral<"expression">;
2842
+ value: import("zod").ZodString;
2843
+ }, import("zod/v4/core").$strip>]>>;
2844
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2845
+ value: import("zod").ZodString;
2846
+ label: import("zod").ZodString;
2847
+ }, import("zod/v4/core").$strip>>>;
2848
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
2849
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
2850
+ }, import("zod/v4/core").$strip>>;
2851
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
2852
+ }, import("zod/v4/core").$strip>;
2853
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2854
+ equation?: string | undefined;
2855
+ xRange?: [number, number] | undefined;
2856
+ restrict?: [number, number] | undefined;
2857
+ probe?: number | undefined;
2858
+ title?: string | undefined;
2859
+ prompt?: string | undefined;
2860
+ ask?: {
2861
+ prompt: string;
2862
+ placeholder?: string | undefined;
2863
+ answer?: {
2864
+ kind: "number";
2865
+ value: number;
2866
+ tol?: number | undefined;
2867
+ } | {
2868
+ kind: "expression";
2869
+ value: string;
2870
+ } | undefined;
2871
+ choices?: {
2872
+ value: string;
2873
+ label: string;
2874
+ }[] | undefined;
2875
+ correct?: string | undefined;
2876
+ explain?: string | undefined;
2877
+ } | undefined;
2878
+ activity?: string | undefined;
2879
+ }>>;
2880
+ tag?: string;
2881
+ void?: boolean;
2882
+ toAttrs?: ((props: {
2883
+ equation?: string | undefined;
2884
+ xRange?: [number, number] | undefined;
2885
+ restrict?: [number, number] | undefined;
2886
+ probe?: number | undefined;
2887
+ title?: string | undefined;
2888
+ prompt?: string | undefined;
2889
+ ask?: {
2890
+ prompt: string;
2891
+ placeholder?: string | undefined;
2892
+ answer?: {
2893
+ kind: "number";
2894
+ value: number;
2895
+ tol?: number | undefined;
2896
+ } | {
2897
+ kind: "expression";
2898
+ value: string;
2899
+ } | undefined;
2900
+ choices?: {
2901
+ value: string;
2902
+ label: string;
2903
+ }[] | undefined;
2904
+ correct?: string | undefined;
2905
+ explain?: string | undefined;
2906
+ } | undefined;
2907
+ activity?: string | undefined;
2908
+ }) => Record<string, unknown>) | undefined;
2909
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2910
+ equation?: string | undefined;
2911
+ xRange?: [number, number] | undefined;
2912
+ restrict?: [number, number] | undefined;
2913
+ probe?: number | undefined;
2914
+ title?: string | undefined;
2915
+ prompt?: string | undefined;
2916
+ ask?: {
2917
+ prompt: string;
2918
+ placeholder?: string | undefined;
2919
+ answer?: {
2920
+ kind: "number";
2921
+ value: number;
2922
+ tol?: number | undefined;
2923
+ } | {
2924
+ kind: "expression";
2925
+ value: string;
2926
+ } | undefined;
2927
+ choices?: {
2928
+ value: string;
2929
+ label: string;
2930
+ }[] | undefined;
2931
+ correct?: string | undefined;
2932
+ explain?: string | undefined;
2933
+ } | undefined;
2934
+ activity?: string | undefined;
2935
+ }>) | undefined;
2936
+ } | {
2937
+ group: string;
2938
+ key: string;
2939
+ label: string;
2940
+ icon?: import("react").ComponentType<{
2941
+ className?: string;
2942
+ }>;
2943
+ description?: string;
2944
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2945
+ slash?: boolean;
2946
+ schema: import("zod").ZodObject<{
2947
+ slope: import("zod").ZodDefault<import("zod").ZodNumber>;
2948
+ intercept: import("zod").ZodDefault<import("zod").ZodNumber>;
2949
+ predictX: import("zod").ZodDefault<import("zod").ZodNumber>;
2950
+ xMax: import("zod").ZodDefault<import("zod").ZodNumber>;
2951
+ yMax: import("zod").ZodDefault<import("zod").ZodNumber>;
2952
+ yStep: import("zod").ZodDefault<import("zod").ZodNumber>;
2953
+ xLabel: import("zod").ZodDefault<import("zod").ZodString>;
2954
+ yLabel: import("zod").ZodDefault<import("zod").ZodString>;
2955
+ unit: import("zod").ZodDefault<import("zod").ZodString>;
2956
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
2957
+ vesselObjects: import("zod").ZodDefault<import("zod").ZodBoolean>;
2958
+ vesselBinds: import("zod").ZodDefault<import("zod").ZodEnum<{
2959
+ guess: "guess";
2960
+ truth: "truth";
2961
+ }>>;
2962
+ objectLabel: import("zod").ZodOptional<import("zod").ZodString>;
2963
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2964
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2965
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
2966
+ prompt: import("zod").ZodString;
2967
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
2968
+ answer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
2969
+ kind: import("zod").ZodLiteral<"number">;
2970
+ value: import("zod").ZodNumber;
2971
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
2972
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
2973
+ kind: import("zod").ZodLiteral<"expression">;
2974
+ value: import("zod").ZodString;
2975
+ }, import("zod/v4/core").$strip>]>>;
2976
+ choices: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2977
+ value: import("zod").ZodString;
2978
+ label: import("zod").ZodString;
2979
+ }, import("zod/v4/core").$strip>>>;
2980
+ correct: import("zod").ZodOptional<import("zod").ZodString>;
2981
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
2982
+ }, import("zod/v4/core").$strip>>;
2983
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
2984
+ }, import("zod/v4/core").$strip>;
2985
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2986
+ slope: number;
2987
+ intercept: number;
2988
+ predictX: number;
2989
+ xMax: number;
2990
+ yMax: number;
2991
+ yStep: number;
2992
+ xLabel: string;
2993
+ yLabel: string;
2994
+ unit: string;
2995
+ scene: string;
2996
+ vesselObjects: boolean;
2997
+ vesselBinds: "guess" | "truth";
2998
+ objectLabel?: string | undefined;
2999
+ title?: string | undefined;
3000
+ prompt?: string | undefined;
3001
+ ask?: {
3002
+ prompt: string;
3003
+ placeholder?: string | undefined;
3004
+ answer?: {
3005
+ kind: "number";
3006
+ value: number;
3007
+ tol?: number | undefined;
3008
+ } | {
3009
+ kind: "expression";
3010
+ value: string;
3011
+ } | undefined;
3012
+ choices?: {
3013
+ value: string;
3014
+ label: string;
3015
+ }[] | undefined;
3016
+ correct?: string | undefined;
3017
+ explain?: string | undefined;
3018
+ } | undefined;
3019
+ activity?: string | undefined;
3020
+ }>>;
3021
+ tag?: string;
3022
+ void?: boolean;
3023
+ toAttrs?: ((props: {
3024
+ slope: number;
3025
+ intercept: number;
3026
+ predictX: number;
3027
+ xMax: number;
3028
+ yMax: number;
3029
+ yStep: number;
3030
+ xLabel: string;
3031
+ yLabel: string;
3032
+ unit: string;
3033
+ scene: string;
3034
+ vesselObjects: boolean;
3035
+ vesselBinds: "guess" | "truth";
3036
+ objectLabel?: string | undefined;
3037
+ title?: string | undefined;
3038
+ prompt?: string | undefined;
3039
+ ask?: {
3040
+ prompt: string;
3041
+ placeholder?: string | undefined;
3042
+ answer?: {
3043
+ kind: "number";
3044
+ value: number;
3045
+ tol?: number | undefined;
3046
+ } | {
3047
+ kind: "expression";
3048
+ value: string;
3049
+ } | undefined;
3050
+ choices?: {
3051
+ value: string;
3052
+ label: string;
3053
+ }[] | undefined;
3054
+ correct?: string | undefined;
3055
+ explain?: string | undefined;
3056
+ } | undefined;
3057
+ activity?: string | undefined;
3058
+ }) => Record<string, unknown>) | undefined;
3059
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3060
+ slope: number;
3061
+ intercept: number;
3062
+ predictX: number;
3063
+ xMax: number;
3064
+ yMax: number;
3065
+ yStep: number;
3066
+ xLabel: string;
3067
+ yLabel: string;
3068
+ unit: string;
3069
+ scene: string;
3070
+ vesselObjects: boolean;
3071
+ vesselBinds: "guess" | "truth";
3072
+ objectLabel?: string | undefined;
3073
+ title?: string | undefined;
3074
+ prompt?: string | undefined;
3075
+ ask?: {
3076
+ prompt: string;
3077
+ placeholder?: string | undefined;
3078
+ answer?: {
3079
+ kind: "number";
3080
+ value: number;
3081
+ tol?: number | undefined;
3082
+ } | {
3083
+ kind: "expression";
3084
+ value: string;
3085
+ } | undefined;
3086
+ choices?: {
3087
+ value: string;
3088
+ label: string;
3089
+ }[] | undefined;
3090
+ correct?: string | undefined;
3091
+ explain?: string | undefined;
3092
+ } | undefined;
3093
+ activity?: string | undefined;
3094
+ }>) | undefined;
3095
+ } | {
3096
+ group: string;
3097
+ key: string;
3098
+ label: string;
3099
+ icon?: import("react").ComponentType<{
3100
+ className?: string;
3101
+ }>;
3102
+ description?: string;
3103
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3104
+ slash?: boolean;
3105
+ schema: import("zod").ZodObject<{
3106
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
3107
+ rule: import("zod").ZodDefault<import("zod").ZodEnum<{
3108
+ geometric: "geometric";
3109
+ arithmetic: "arithmetic";
3110
+ }>>;
3111
+ factor: import("zod").ZodDefault<import("zod").ZodNumber>;
3112
+ shown: import("zod").ZodDefault<import("zod").ZodNumber>;
3113
+ predict: import("zod").ZodDefault<import("zod").ZodNumber>;
3114
+ stepLabel: import("zod").ZodDefault<import("zod").ZodString>;
3115
+ highlightNew: import("zod").ZodDefault<import("zod").ZodBoolean>;
3116
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
3117
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3118
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3119
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
3120
+ }, import("zod/v4/core").$strip>;
3121
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3122
+ start: number;
3123
+ rule: "geometric" | "arithmetic";
3124
+ factor: number;
3125
+ shown: number;
3126
+ predict: number;
3127
+ stepLabel: string;
3128
+ highlightNew: boolean;
3129
+ scene: string;
3130
+ title?: string | undefined;
3131
+ prompt?: string | undefined;
3132
+ activity?: string | undefined;
3133
+ }>>;
3134
+ tag?: string;
3135
+ void?: boolean;
3136
+ toAttrs?: ((props: {
3137
+ start: number;
3138
+ rule: "geometric" | "arithmetic";
3139
+ factor: number;
3140
+ shown: number;
3141
+ predict: number;
3142
+ stepLabel: string;
3143
+ highlightNew: boolean;
3144
+ scene: string;
3145
+ title?: string | undefined;
3146
+ prompt?: string | undefined;
3147
+ activity?: string | undefined;
3148
+ }) => Record<string, unknown>) | undefined;
3149
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3150
+ start: number;
3151
+ rule: "geometric" | "arithmetic";
3152
+ factor: number;
3153
+ shown: number;
3154
+ predict: number;
3155
+ stepLabel: string;
3156
+ highlightNew: boolean;
3157
+ scene: string;
3158
+ title?: string | undefined;
3159
+ prompt?: string | undefined;
3160
+ activity?: string | undefined;
3161
+ }>) | undefined;
3162
+ } | {
3163
+ group: string;
3164
+ key: string;
3165
+ label: string;
3166
+ icon?: import("react").ComponentType<{
3167
+ className?: string;
3168
+ }>;
3169
+ description?: string;
3170
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3171
+ slash?: boolean;
3172
+ schema: import("zod").ZodObject<{
3173
+ kind: import("zod").ZodDefault<import("zod").ZodEnum<{
3174
+ translate: "translate";
3175
+ reflect: "reflect";
3176
+ rotate: "rotate";
3177
+ enlarge: "enlarge";
3178
+ }>>;
3179
+ byX: import("zod").ZodDefault<import("zod").ZodNumber>;
3180
+ byY: import("zod").ZodDefault<import("zod").ZodNumber>;
3181
+ axis: import("zod").ZodDefault<import("zod").ZodEnum<{
3182
+ x: "x";
3183
+ y: "y";
3184
+ "y=x": "y=x";
3185
+ "y=-x": "y=-x";
3186
+ }>>;
3187
+ deg: import("zod").ZodDefault<import("zod").ZodNumber>;
3188
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
3189
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3190
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3191
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
3192
+ }, import("zod/v4/core").$strip>;
3193
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3194
+ kind: "translate" | "reflect" | "rotate" | "enlarge";
3195
+ byX: number;
3196
+ byY: number;
3197
+ axis: "x" | "y" | "y=x" | "y=-x";
3198
+ deg: number;
3199
+ k: number;
3200
+ title?: string | undefined;
3201
+ prompt?: string | undefined;
3202
+ activity?: string | undefined;
3203
+ }>>;
3204
+ tag?: string;
3205
+ void?: boolean;
3206
+ toAttrs?: ((props: {
3207
+ kind: "translate" | "reflect" | "rotate" | "enlarge";
3208
+ byX: number;
3209
+ byY: number;
3210
+ axis: "x" | "y" | "y=x" | "y=-x";
3211
+ deg: number;
3212
+ k: number;
3213
+ title?: string | undefined;
3214
+ prompt?: string | undefined;
3215
+ activity?: string | undefined;
3216
+ }) => Record<string, unknown>) | undefined;
3217
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3218
+ kind: "translate" | "reflect" | "rotate" | "enlarge";
3219
+ byX: number;
3220
+ byY: number;
3221
+ axis: "x" | "y" | "y=x" | "y=-x";
3222
+ deg: number;
3223
+ k: number;
3224
+ title?: string | undefined;
3225
+ prompt?: string | undefined;
3226
+ activity?: string | undefined;
3227
+ }>) | undefined;
3228
+ } | {
3229
+ group: string;
3230
+ key: string;
3231
+ label: string;
3232
+ icon?: import("react").ComponentType<{
3233
+ className?: string;
3234
+ }>;
3235
+ description?: string;
3236
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3237
+ slash?: boolean;
3238
+ schema: import("zod").ZodObject<{
3239
+ store: import("zod").ZodDefault<import("zod").ZodString>;
3240
+ currency: import("zod").ZodDefault<import("zod").ZodString>;
3241
+ items: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
3242
+ qty: import("zod").ZodNumber;
3243
+ name: import("zod").ZodString;
3244
+ unit: import("zod").ZodNumber;
3245
+ }, import("zod/v4/core").$strip>>>;
3246
+ askItems: import("zod").ZodDefault<import("zod").ZodBoolean>;
3247
+ askCost: import("zod").ZodDefault<import("zod").ZodBoolean>;
3248
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3249
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3250
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
3251
+ }, import("zod/v4/core").$strip>;
3252
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3253
+ store: string;
3254
+ currency: string;
3255
+ askItems: boolean;
3256
+ askCost: boolean;
3257
+ items?: {
3258
+ qty: number;
3259
+ name: string;
3260
+ unit: number;
3261
+ }[] | undefined;
3262
+ title?: string | undefined;
3263
+ prompt?: string | undefined;
3264
+ activity?: string | undefined;
3265
+ }>>;
3266
+ tag?: string;
3267
+ void?: boolean;
3268
+ toAttrs?: ((props: {
3269
+ store: string;
3270
+ currency: string;
3271
+ askItems: boolean;
3272
+ askCost: boolean;
3273
+ items?: {
3274
+ qty: number;
3275
+ name: string;
3276
+ unit: number;
3277
+ }[] | undefined;
3278
+ title?: string | undefined;
3279
+ prompt?: string | undefined;
3280
+ activity?: string | undefined;
3281
+ }) => Record<string, unknown>) | undefined;
3282
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3283
+ store: string;
3284
+ currency: string;
3285
+ askItems: boolean;
3286
+ askCost: boolean;
3287
+ items?: {
3288
+ qty: number;
3289
+ name: string;
3290
+ unit: number;
3291
+ }[] | undefined;
3292
+ title?: string | undefined;
3293
+ prompt?: string | undefined;
3294
+ activity?: string | undefined;
3295
+ }>) | undefined;
3296
+ } | {
3297
+ group: string;
3298
+ key: string;
3299
+ label: string;
3300
+ icon?: import("react").ComponentType<{
3301
+ className?: string;
3302
+ }>;
3303
+ description?: string;
3304
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3305
+ slash?: boolean;
3306
+ schema: import("zod").ZodObject<{
3307
+ scene: import("zod").ZodDefault<import("zod").ZodString>;
3308
+ symA: import("zod").ZodDefault<import("zod").ZodString>;
3309
+ labelA: import("zod").ZodDefault<import("zod").ZodString>;
3310
+ answerA: import("zod").ZodDefault<import("zod").ZodNumber>;
3311
+ symB: import("zod").ZodDefault<import("zod").ZodString>;
3312
+ labelB: import("zod").ZodDefault<import("zod").ZodString>;
3313
+ answerB: import("zod").ZodDefault<import("zod").ZodNumber>;
3314
+ a0: import("zod").ZodDefault<import("zod").ZodNumber>;
3315
+ b0: import("zod").ZodDefault<import("zod").ZodNumber>;
3316
+ a1: import("zod").ZodDefault<import("zod").ZodNumber>;
3317
+ b1: import("zod").ZodDefault<import("zod").ZodNumber>;
3318
+ currency: import("zod").ZodOptional<import("zod").ZodString>;
3319
+ unit: import("zod").ZodOptional<import("zod").ZodString>;
3320
+ store: import("zod").ZodOptional<import("zod").ZodString>;
3321
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3322
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3323
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
3324
+ }, import("zod/v4/core").$strip>;
3325
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3326
+ scene: string;
3327
+ symA: string;
3328
+ labelA: string;
3329
+ answerA: number;
3330
+ symB: string;
3331
+ labelB: string;
3332
+ answerB: number;
3333
+ a0: number;
3334
+ b0: number;
3335
+ a1: number;
3336
+ b1: number;
3337
+ currency?: string | undefined;
3338
+ unit?: string | undefined;
3339
+ store?: string | undefined;
3340
+ title?: string | undefined;
3341
+ prompt?: string | undefined;
3342
+ activity?: string | undefined;
3343
+ }>>;
3344
+ tag?: string;
3345
+ void?: boolean;
3346
+ toAttrs?: ((props: {
3347
+ scene: string;
3348
+ symA: string;
3349
+ labelA: string;
3350
+ answerA: number;
3351
+ symB: string;
3352
+ labelB: string;
3353
+ answerB: number;
3354
+ a0: number;
3355
+ b0: number;
3356
+ a1: number;
3357
+ b1: number;
3358
+ currency?: string | undefined;
3359
+ unit?: string | undefined;
3360
+ store?: string | undefined;
3361
+ title?: string | undefined;
3362
+ prompt?: string | undefined;
3363
+ activity?: string | undefined;
3364
+ }) => Record<string, unknown>) | undefined;
3365
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3366
+ scene: string;
3367
+ symA: string;
3368
+ labelA: string;
3369
+ answerA: number;
3370
+ symB: string;
3371
+ labelB: string;
3372
+ answerB: number;
3373
+ a0: number;
3374
+ b0: number;
3375
+ a1: number;
3376
+ b1: number;
3377
+ currency?: string | undefined;
3378
+ unit?: string | undefined;
3379
+ store?: string | undefined;
3380
+ title?: string | undefined;
3381
+ prompt?: string | undefined;
3382
+ activity?: string | undefined;
3383
+ }>) | undefined;
3384
+ } | {
3385
+ group: string;
3386
+ key: string;
3387
+ label: string;
3388
+ icon?: import("react").ComponentType<{
3389
+ className?: string;
3390
+ }>;
3391
+ description?: string;
3392
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3393
+ slash?: boolean;
3394
+ schema: import("zod").ZodObject<{
3395
+ name: import("zod").ZodDefault<import("zod").ZodString>;
3396
+ label: import("zod").ZodOptional<import("zod").ZodString>;
3397
+ variant: import("zod").ZodDefault<import("zod").ZodEnum<{
3398
+ count: "count";
3399
+ icons: "icons";
3400
+ shape: "shape";
3401
+ }>>;
3402
+ icon: import("zod").ZodDefault<import("zod").ZodString>;
3403
+ slots: import("zod").ZodDefault<import("zod").ZodNumber>;
3404
+ shape: import("zod").ZodDefault<import("zod").ZodEnum<{
3405
+ box: "box";
3406
+ cup: "cup";
3407
+ circle: "circle";
3408
+ }>>;
3409
+ color: import("zod").ZodDefault<import("zod").ZodString>;
3410
+ }, import("zod/v4/core").$strip>;
3411
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3412
+ name: string;
3413
+ variant: "count" | "icons" | "shape";
3414
+ icon: string;
3415
+ slots: number;
3416
+ shape: "box" | "cup" | "circle";
3417
+ color: string;
3418
+ label?: string | undefined;
3419
+ }>>;
3420
+ tag?: string;
3421
+ void?: boolean;
3422
+ toAttrs?: ((props: {
3423
+ name: string;
3424
+ variant: "count" | "icons" | "shape";
3425
+ icon: string;
3426
+ slots: number;
3427
+ shape: "box" | "cup" | "circle";
3428
+ color: string;
3429
+ label?: string | undefined;
3430
+ }) => Record<string, unknown>) | undefined;
3431
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3432
+ name: string;
3433
+ variant: "count" | "icons" | "shape";
3434
+ icon: string;
3435
+ slots: number;
3436
+ shape: "box" | "cup" | "circle";
3437
+ color: string;
3438
+ label?: string | undefined;
3439
+ }>) | undefined;
3440
+ } | {
3441
+ group: string;
3442
+ key: string;
3443
+ label: string;
3444
+ icon?: import("react").ComponentType<{
3445
+ className?: string;
3446
+ }>;
3447
+ description?: string;
3448
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3449
+ slash?: boolean;
3450
+ schema: import("zod").ZodObject<{
3451
+ targetMeters: import("zod").ZodOptional<import("zod").ZodNumber>;
3452
+ g: import("zod").ZodOptional<import("zod").ZodNumber>;
3453
+ }, import("zod/v4/core").$strip>;
3454
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3455
+ targetMeters?: number | undefined;
3456
+ g?: number | undefined;
3457
+ }>>;
3458
+ tag?: string;
3459
+ void?: boolean;
3460
+ toAttrs?: ((props: {
3461
+ targetMeters?: number | undefined;
3462
+ g?: number | undefined;
3463
+ }) => Record<string, unknown>) | undefined;
3464
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3465
+ targetMeters?: number | undefined;
3466
+ g?: number | undefined;
3467
+ }>) | undefined;
3468
+ } | {
3469
+ group: string;
3470
+ key: string;
3471
+ label: string;
3472
+ icon?: import("react").ComponentType<{
3473
+ className?: string;
3474
+ }>;
3475
+ description?: string;
3476
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3477
+ slash?: boolean;
3478
+ schema: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
3479
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<Record<string, never>>>;
3480
+ tag?: string;
3481
+ void?: boolean;
3482
+ toAttrs?: ((props: Record<string, never>) => Record<string, unknown>) | undefined;
3483
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<Record<string, never>>) | undefined;
3484
+ } | {
3485
+ group: string;
3486
+ key: string;
3487
+ label: string;
3488
+ icon?: import("react").ComponentType<{
3489
+ className?: string;
3490
+ }>;
3491
+ description?: string;
3492
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3493
+ slash?: boolean;
3494
+ schema: import("zod").ZodObject<{
3495
+ height: import("zod").ZodOptional<import("zod").ZodNumber>;
3496
+ }, import("zod/v4/core").$strip>;
3497
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3498
+ height?: number | undefined;
3499
+ }>>;
3500
+ tag?: string;
3501
+ void?: boolean;
3502
+ toAttrs?: ((props: {
3503
+ height?: number | undefined;
3504
+ }) => Record<string, unknown>) | undefined;
3505
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3506
+ height?: number | undefined;
3507
+ }>) | undefined;
3508
+ } | {
3509
+ group: string;
3510
+ key: string;
3511
+ label: string;
3512
+ icon?: import("react").ComponentType<{
3513
+ className?: string;
3514
+ }>;
3515
+ description?: string;
3516
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3517
+ slash?: boolean;
3518
+ schema: import("zod").ZodObject<{
3519
+ boatSpeed: import("zod").ZodOptional<import("zod").ZodNumber>;
3520
+ current: import("zod").ZodOptional<import("zod").ZodNumber>;
3521
+ riverWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
3522
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3523
+ }, import("zod/v4/core").$strip>;
3524
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3525
+ boatSpeed?: number | undefined;
3526
+ current?: number | undefined;
3527
+ riverWidth?: number | undefined;
3528
+ title?: string | undefined;
3529
+ }>>;
3530
+ tag?: string;
3531
+ void?: boolean;
3532
+ toAttrs?: ((props: {
3533
+ boatSpeed?: number | undefined;
3534
+ current?: number | undefined;
3535
+ riverWidth?: number | undefined;
3536
+ title?: string | undefined;
3537
+ }) => Record<string, unknown>) | undefined;
3538
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3539
+ boatSpeed?: number | undefined;
1921
3540
  current?: number | undefined;
1922
3541
  riverWidth?: number | undefined;
1923
3542
  title?: string | undefined;
3543
+ }>) | undefined;
3544
+ } | {
3545
+ group: string;
3546
+ key: string;
3547
+ label: string;
3548
+ icon?: import("react").ComponentType<{
3549
+ className?: string;
3550
+ }>;
3551
+ description?: string;
3552
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3553
+ slash?: boolean;
3554
+ schema: import("zod").ZodObject<{
3555
+ knownWeight: import("zod").ZodDefault<import("zod").ZodNumber>;
3556
+ knownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
3557
+ unknownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
3558
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
3559
+ }, import("zod/v4/core").$strip>;
3560
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3561
+ knownWeight: number;
3562
+ knownDist: number;
3563
+ unknownDist: number;
3564
+ controlId?: string | undefined;
3565
+ }>>;
3566
+ tag?: string;
3567
+ void?: boolean;
3568
+ toAttrs?: ((props: {
3569
+ knownWeight: number;
3570
+ knownDist: number;
3571
+ unknownDist: number;
3572
+ controlId?: string | undefined;
3573
+ }) => Record<string, unknown>) | undefined;
3574
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3575
+ knownWeight: number;
3576
+ knownDist: number;
3577
+ unknownDist: number;
3578
+ controlId?: string | undefined;
3579
+ }>) | undefined;
3580
+ } | {
3581
+ group: string;
3582
+ key: string;
3583
+ label: string;
3584
+ icon?: import("react").ComponentType<{
3585
+ className?: string;
3586
+ }>;
3587
+ description?: string;
3588
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3589
+ slash?: boolean;
3590
+ schema: import("zod").ZodObject<{
3591
+ vectors: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3592
+ label: import("zod").ZodOptional<import("zod").ZodString>;
3593
+ dx: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
3594
+ dy: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
3595
+ color: import("zod").ZodOptional<import("zod").ZodString>;
3596
+ drag: import("zod").ZodOptional<import("zod").ZodBoolean>;
3597
+ }, import("zod/v4/core").$strip>>>;
3598
+ combine: import("zod").ZodDefault<import("zod").ZodEnum<{
3599
+ sum: "sum";
3600
+ diff: "diff";
3601
+ none: "none";
3602
+ }>>;
3603
+ goalX: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
3604
+ goalY: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
3605
+ components: import("zod").ZodOptional<import("zod").ZodBoolean>;
3606
+ angle: import("zod").ZodDefault<import("zod").ZodBoolean>;
3607
+ objectives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3608
+ hints: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3609
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3610
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3611
+ }, import("zod/v4/core").$strip>;
3612
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3613
+ vectors: {
3614
+ label?: string | undefined;
3615
+ dx?: string | number | undefined;
3616
+ dy?: string | number | undefined;
3617
+ color?: string | undefined;
3618
+ drag?: boolean | undefined;
3619
+ }[];
3620
+ combine: "sum" | "diff" | "none";
3621
+ angle: boolean;
3622
+ goalX?: string | number | undefined;
3623
+ goalY?: string | number | undefined;
3624
+ components?: boolean | undefined;
3625
+ objectives?: string[] | undefined;
3626
+ hints?: string[] | undefined;
3627
+ title?: string | undefined;
3628
+ prompt?: string | undefined;
3629
+ }>>;
3630
+ tag?: string;
3631
+ void?: boolean;
3632
+ toAttrs?: ((props: {
3633
+ vectors: {
3634
+ label?: string | undefined;
3635
+ dx?: string | number | undefined;
3636
+ dy?: string | number | undefined;
3637
+ color?: string | undefined;
3638
+ drag?: boolean | undefined;
3639
+ }[];
3640
+ combine: "sum" | "diff" | "none";
3641
+ angle: boolean;
3642
+ goalX?: string | number | undefined;
3643
+ goalY?: string | number | undefined;
3644
+ components?: boolean | undefined;
3645
+ objectives?: string[] | undefined;
3646
+ hints?: string[] | undefined;
3647
+ title?: string | undefined;
3648
+ prompt?: string | undefined;
3649
+ }) => Record<string, unknown>) | undefined;
3650
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3651
+ vectors: {
3652
+ label?: string | undefined;
3653
+ dx?: string | number | undefined;
3654
+ dy?: string | number | undefined;
3655
+ color?: string | undefined;
3656
+ drag?: boolean | undefined;
3657
+ }[];
3658
+ combine: "sum" | "diff" | "none";
3659
+ angle: boolean;
3660
+ goalX?: string | number | undefined;
3661
+ goalY?: string | number | undefined;
3662
+ components?: boolean | undefined;
3663
+ objectives?: string[] | undefined;
3664
+ hints?: string[] | undefined;
3665
+ title?: string | undefined;
3666
+ prompt?: string | undefined;
3667
+ }>) | undefined;
3668
+ } | {
3669
+ group: string;
3670
+ key: string;
3671
+ label: string;
3672
+ icon?: import("react").ComponentType<{
3673
+ className?: string;
3674
+ }>;
3675
+ description?: string;
3676
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3677
+ slash?: boolean;
3678
+ schema: import("zod").ZodObject<{
3679
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3680
+ types: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
3681
+ name: import("zod").ZodString;
3682
+ caption: import("zod").ZodString;
3683
+ vectors: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
3684
+ tail: import("zod").ZodOptional<import("zod").ZodObject<{
3685
+ x: import("zod").ZodNumber;
3686
+ y: import("zod").ZodNumber;
3687
+ }, import("zod/v4/core").$strip>>;
3688
+ comp: import("zod").ZodObject<{
3689
+ x: import("zod").ZodNumber;
3690
+ y: import("zod").ZodNumber;
3691
+ }, import("zod/v4/core").$strip>;
3692
+ color: import("zod").ZodOptional<import("zod").ZodString>;
3693
+ label: import("zod").ZodOptional<import("zod").ZodString>;
3694
+ }, import("zod/v4/core").$strip>>>;
3695
+ origin: import("zod").ZodOptional<import("zod").ZodBoolean>;
3696
+ }, import("zod/v4/core").$strip>>>;
3697
+ }, import("zod/v4/core").$strip>;
3698
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3699
+ title?: string | undefined;
3700
+ types?: {
3701
+ name: string;
3702
+ caption: string;
3703
+ vectors?: {
3704
+ comp: {
3705
+ x: number;
3706
+ y: number;
3707
+ };
3708
+ tail?: {
3709
+ x: number;
3710
+ y: number;
3711
+ } | undefined;
3712
+ color?: string | undefined;
3713
+ label?: string | undefined;
3714
+ }[] | undefined;
3715
+ origin?: boolean | undefined;
3716
+ }[] | undefined;
3717
+ }>>;
3718
+ tag?: string;
3719
+ void?: boolean;
3720
+ toAttrs?: ((props: {
3721
+ title?: string | undefined;
3722
+ types?: {
3723
+ name: string;
3724
+ caption: string;
3725
+ vectors?: {
3726
+ comp: {
3727
+ x: number;
3728
+ y: number;
3729
+ };
3730
+ tail?: {
3731
+ x: number;
3732
+ y: number;
3733
+ } | undefined;
3734
+ color?: string | undefined;
3735
+ label?: string | undefined;
3736
+ }[] | undefined;
3737
+ origin?: boolean | undefined;
3738
+ }[] | undefined;
3739
+ }) => Record<string, unknown>) | undefined;
3740
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3741
+ title?: string | undefined;
3742
+ types?: {
3743
+ name: string;
3744
+ caption: string;
3745
+ vectors?: {
3746
+ comp: {
3747
+ x: number;
3748
+ y: number;
3749
+ };
3750
+ tail?: {
3751
+ x: number;
3752
+ y: number;
3753
+ } | undefined;
3754
+ color?: string | undefined;
3755
+ label?: string | undefined;
3756
+ }[] | undefined;
3757
+ origin?: boolean | undefined;
3758
+ }[] | undefined;
3759
+ }>) | undefined;
3760
+ } | {
3761
+ group: string;
3762
+ key: string;
3763
+ label: string;
3764
+ icon?: import("react").ComponentType<{
3765
+ className?: string;
3766
+ }>;
3767
+ description?: string;
3768
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3769
+ slash?: boolean;
3770
+ schema: import("zod").ZodObject<{
3771
+ maxSpeed: import("zod").ZodDefault<import("zod").ZodNumber>;
3772
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
3773
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3774
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3775
+ }, import("zod/v4/core").$strip>;
3776
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3777
+ maxSpeed: number;
3778
+ start: number;
3779
+ title?: string | undefined;
3780
+ prompt?: string | undefined;
3781
+ }>>;
3782
+ tag?: string;
3783
+ void?: boolean;
3784
+ toAttrs?: ((props: {
3785
+ maxSpeed: number;
3786
+ start: number;
3787
+ title?: string | undefined;
3788
+ prompt?: string | undefined;
3789
+ }) => Record<string, unknown>) | undefined;
3790
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3791
+ maxSpeed: number;
3792
+ start: number;
3793
+ title?: string | undefined;
3794
+ prompt?: string | undefined;
3795
+ }>) | undefined;
3796
+ } | {
3797
+ group: string;
3798
+ key: string;
3799
+ label: string;
3800
+ icon?: import("react").ComponentType<{
3801
+ className?: string;
3802
+ }>;
3803
+ description?: string;
3804
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3805
+ slash?: boolean;
3806
+ schema: import("zod").ZodObject<{
3807
+ speed: import("zod").ZodDefault<import("zod").ZodNumber>;
3808
+ reactionTime: import("zod").ZodDefault<import("zod").ZodNumber>;
3809
+ deceleration: import("zod").ZodDefault<import("zod").ZodNumber>;
3810
+ predict: import("zod").ZodDefault<import("zod").ZodBoolean>;
3811
+ showGraphs: import("zod").ZodDefault<import("zod").ZodBoolean>;
3812
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3813
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3814
+ }, import("zod/v4/core").$strip>;
3815
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3816
+ speed: number;
3817
+ reactionTime: number;
3818
+ deceleration: number;
3819
+ predict: boolean;
3820
+ showGraphs: boolean;
3821
+ title?: string | undefined;
3822
+ prompt?: string | undefined;
3823
+ }>>;
3824
+ tag?: string;
3825
+ void?: boolean;
3826
+ toAttrs?: ((props: {
3827
+ speed: number;
3828
+ reactionTime: number;
3829
+ deceleration: number;
3830
+ predict: boolean;
3831
+ showGraphs: boolean;
3832
+ title?: string | undefined;
3833
+ prompt?: string | undefined;
3834
+ }) => Record<string, unknown>) | undefined;
3835
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3836
+ speed: number;
3837
+ reactionTime: number;
3838
+ deceleration: number;
3839
+ predict: boolean;
3840
+ showGraphs: boolean;
3841
+ title?: string | undefined;
3842
+ prompt?: string | undefined;
3843
+ }>) | undefined;
3844
+ } | {
3845
+ group: string;
3846
+ key: string;
3847
+ label: string;
3848
+ icon?: import("react").ComponentType<{
3849
+ className?: string;
3850
+ }>;
3851
+ description?: string;
3852
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3853
+ slash?: boolean;
3854
+ schema: import("zod").ZodObject<{
3855
+ angleDeg: import("zod").ZodDefault<import("zod").ZodNumber>;
3856
+ mass: import("zod").ZodDefault<import("zod").ZodNumber>;
3857
+ friction: import("zod").ZodDefault<import("zod").ZodNumber>;
3858
+ showComponents: import("zod").ZodDefault<import("zod").ZodBoolean>;
3859
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3860
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3861
+ controls: import("zod").ZodOptional<import("zod").ZodObject<{
3862
+ hide: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3863
+ lock: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3864
+ }, import("zod/v4/core").$strip>>;
3865
+ }, import("zod/v4/core").$strip>;
3866
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3867
+ angleDeg: number;
3868
+ mass: number;
3869
+ friction: number;
3870
+ showComponents: boolean;
3871
+ title?: string | undefined;
3872
+ prompt?: string | undefined;
3873
+ controls?: {
3874
+ hide?: string[] | undefined;
3875
+ lock?: string[] | undefined;
3876
+ } | undefined;
3877
+ }>>;
3878
+ tag?: string;
3879
+ void?: boolean;
3880
+ toAttrs?: ((props: {
3881
+ angleDeg: number;
3882
+ mass: number;
3883
+ friction: number;
3884
+ showComponents: boolean;
3885
+ title?: string | undefined;
3886
+ prompt?: string | undefined;
3887
+ controls?: {
3888
+ hide?: string[] | undefined;
3889
+ lock?: string[] | undefined;
3890
+ } | undefined;
3891
+ }) => Record<string, unknown>) | undefined;
3892
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3893
+ angleDeg: number;
3894
+ mass: number;
3895
+ friction: number;
3896
+ showComponents: boolean;
3897
+ title?: string | undefined;
3898
+ prompt?: string | undefined;
3899
+ controls?: {
3900
+ hide?: string[] | undefined;
3901
+ lock?: string[] | undefined;
3902
+ } | undefined;
3903
+ }>) | undefined;
3904
+ } | {
3905
+ group: string;
3906
+ key: string;
3907
+ label: string;
3908
+ icon?: import("react").ComponentType<{
3909
+ className?: string;
3910
+ }>;
3911
+ description?: string;
3912
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3913
+ slash?: boolean;
3914
+ schema: import("zod").ZodObject<{
3915
+ m1: import("zod").ZodDefault<import("zod").ZodNumber>;
3916
+ m2: import("zod").ZodDefault<import("zod").ZodNumber>;
3917
+ u1: import("zod").ZodDefault<import("zod").ZodNumber>;
3918
+ u2: import("zod").ZodDefault<import("zod").ZodNumber>;
3919
+ elasticity: import("zod").ZodDefault<import("zod").ZodNumber>;
3920
+ showCenterOfMass: import("zod").ZodDefault<import("zod").ZodBoolean>;
3921
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3922
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3923
+ }, import("zod/v4/core").$strip>;
3924
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3925
+ m1: number;
3926
+ m2: number;
3927
+ u1: number;
3928
+ u2: number;
3929
+ elasticity: number;
3930
+ showCenterOfMass: boolean;
3931
+ title?: string | undefined;
3932
+ prompt?: string | undefined;
3933
+ }>>;
3934
+ tag?: string;
3935
+ void?: boolean;
3936
+ toAttrs?: ((props: {
3937
+ m1: number;
3938
+ m2: number;
3939
+ u1: number;
3940
+ u2: number;
3941
+ elasticity: number;
3942
+ showCenterOfMass: boolean;
3943
+ title?: string | undefined;
3944
+ prompt?: string | undefined;
1924
3945
  }) => Record<string, unknown>) | undefined;
1925
3946
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1926
- boatSpeed?: number | undefined;
1927
- current?: number | undefined;
1928
- riverWidth?: number | undefined;
3947
+ m1: number;
3948
+ m2: number;
3949
+ u1: number;
3950
+ u2: number;
3951
+ elasticity: number;
3952
+ showCenterOfMass: boolean;
1929
3953
  title?: string | undefined;
3954
+ prompt?: string | undefined;
1930
3955
  }>) | undefined;
1931
3956
  } | {
1932
3957
  group: string;
@@ -1939,30 +3964,223 @@ declare const labGalleryItems: ({
1939
3964
  category?: import("@classytic/cms-ui/contract").BlockCategory;
1940
3965
  slash?: boolean;
1941
3966
  schema: import("zod").ZodObject<{
1942
- knownWeight: import("zod").ZodDefault<import("zod").ZodNumber>;
1943
- knownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
1944
- unknownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
1945
- controlId: import("zod").ZodOptional<import("zod").ZodString>;
3967
+ holdConstant: import("zod").ZodDefault<import("zod").ZodEnum<{
3968
+ none: "none";
3969
+ volume: "volume";
3970
+ temperature: "temperature";
3971
+ pressure: "pressure";
3972
+ }>>;
3973
+ particleCount: import("zod").ZodDefault<import("zod").ZodNumber>;
3974
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
3975
+ volume: import("zod").ZodDefault<import("zod").ZodNumber>;
3976
+ showGauge: import("zod").ZodDefault<import("zod").ZodBoolean>;
3977
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3978
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1946
3979
  }, import("zod/v4/core").$strip>;
1947
3980
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1948
- knownWeight: number;
1949
- knownDist: number;
1950
- unknownDist: number;
1951
- controlId?: string | undefined;
3981
+ holdConstant: "none" | "volume" | "temperature" | "pressure";
3982
+ particleCount: number;
3983
+ temperature: number;
3984
+ volume: number;
3985
+ showGauge: boolean;
3986
+ title?: string | undefined;
3987
+ prompt?: string | undefined;
1952
3988
  }>>;
1953
3989
  tag?: string;
1954
3990
  void?: boolean;
1955
3991
  toAttrs?: ((props: {
1956
- knownWeight: number;
1957
- knownDist: number;
1958
- unknownDist: number;
1959
- controlId?: string | undefined;
3992
+ holdConstant: "none" | "volume" | "temperature" | "pressure";
3993
+ particleCount: number;
3994
+ temperature: number;
3995
+ volume: number;
3996
+ showGauge: boolean;
3997
+ title?: string | undefined;
3998
+ prompt?: string | undefined;
1960
3999
  }) => Record<string, unknown>) | undefined;
1961
4000
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1962
- knownWeight: number;
1963
- knownDist: number;
1964
- unknownDist: number;
1965
- controlId?: string | undefined;
4001
+ holdConstant: "none" | "volume" | "temperature" | "pressure";
4002
+ particleCount: number;
4003
+ temperature: number;
4004
+ volume: number;
4005
+ showGauge: boolean;
4006
+ title?: string | undefined;
4007
+ prompt?: string | undefined;
4008
+ }>) | undefined;
4009
+ } | {
4010
+ group: string;
4011
+ key: string;
4012
+ label: string;
4013
+ icon?: import("react").ComponentType<{
4014
+ className?: string;
4015
+ }>;
4016
+ description?: string;
4017
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4018
+ slash?: boolean;
4019
+ schema: import("zod").ZodObject<{
4020
+ moles: import("zod").ZodDefault<import("zod").ZodNumber>;
4021
+ volume: import("zod").ZodDefault<import("zod").ZodNumber>;
4022
+ showProbe: import("zod").ZodDefault<import("zod").ZodBoolean>;
4023
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4024
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4025
+ }, import("zod/v4/core").$strip>;
4026
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4027
+ moles: number;
4028
+ volume: number;
4029
+ showProbe: boolean;
4030
+ title?: string | undefined;
4031
+ prompt?: string | undefined;
4032
+ }>>;
4033
+ tag?: string;
4034
+ void?: boolean;
4035
+ toAttrs?: ((props: {
4036
+ moles: number;
4037
+ volume: number;
4038
+ showProbe: boolean;
4039
+ title?: string | undefined;
4040
+ prompt?: string | undefined;
4041
+ }) => Record<string, unknown>) | undefined;
4042
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4043
+ moles: number;
4044
+ volume: number;
4045
+ showProbe: boolean;
4046
+ title?: string | undefined;
4047
+ prompt?: string | undefined;
4048
+ }>) | undefined;
4049
+ } | {
4050
+ group: string;
4051
+ key: string;
4052
+ label: string;
4053
+ icon?: import("react").ComponentType<{
4054
+ className?: string;
4055
+ }>;
4056
+ description?: string;
4057
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4058
+ slash?: boolean;
4059
+ schema: import("zod").ZodObject<{
4060
+ stockConcentration: import("zod").ZodDefault<import("zod").ZodNumber>;
4061
+ aliquotVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
4062
+ finalVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
4063
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4064
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4065
+ }, import("zod/v4/core").$strip>;
4066
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4067
+ stockConcentration: number;
4068
+ aliquotVolume: number;
4069
+ finalVolume: number;
4070
+ title?: string | undefined;
4071
+ prompt?: string | undefined;
4072
+ }>>;
4073
+ tag?: string;
4074
+ void?: boolean;
4075
+ toAttrs?: ((props: {
4076
+ stockConcentration: number;
4077
+ aliquotVolume: number;
4078
+ finalVolume: number;
4079
+ title?: string | undefined;
4080
+ prompt?: string | undefined;
4081
+ }) => Record<string, unknown>) | undefined;
4082
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4083
+ stockConcentration: number;
4084
+ aliquotVolume: number;
4085
+ finalVolume: number;
4086
+ title?: string | undefined;
4087
+ prompt?: string | undefined;
4088
+ }>) | undefined;
4089
+ } | {
4090
+ group: string;
4091
+ key: string;
4092
+ label: string;
4093
+ icon?: import("react").ComponentType<{
4094
+ className?: string;
4095
+ }>;
4096
+ description?: string;
4097
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4098
+ slash?: boolean;
4099
+ schema: import("zod").ZodObject<{
4100
+ protons: import("zod").ZodOptional<import("zod").ZodNumber>;
4101
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4102
+ }, import("zod/v4/core").$strip>;
4103
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4104
+ protons?: number | undefined;
4105
+ title?: string | undefined;
4106
+ }>>;
4107
+ tag?: string;
4108
+ void?: boolean;
4109
+ toAttrs?: ((props: {
4110
+ protons?: number | undefined;
4111
+ title?: string | undefined;
4112
+ }) => Record<string, unknown>) | undefined;
4113
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4114
+ protons?: number | undefined;
4115
+ title?: string | undefined;
4116
+ }>) | undefined;
4117
+ } | {
4118
+ group: string;
4119
+ key: string;
4120
+ label: string;
4121
+ icon?: import("react").ComponentType<{
4122
+ className?: string;
4123
+ }>;
4124
+ description?: string;
4125
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4126
+ slash?: boolean;
4127
+ schema: import("zod").ZodObject<{
4128
+ deltaH: import("zod").ZodOptional<import("zod").ZodNumber>;
4129
+ activationEnergy: import("zod").ZodOptional<import("zod").ZodNumber>;
4130
+ catalyst: import("zod").ZodOptional<import("zod").ZodBoolean>;
4131
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4132
+ }, import("zod/v4/core").$strip>;
4133
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4134
+ deltaH?: number | undefined;
4135
+ activationEnergy?: number | undefined;
4136
+ catalyst?: boolean | undefined;
4137
+ title?: string | undefined;
4138
+ }>>;
4139
+ tag?: string;
4140
+ void?: boolean;
4141
+ toAttrs?: ((props: {
4142
+ deltaH?: number | undefined;
4143
+ activationEnergy?: number | undefined;
4144
+ catalyst?: boolean | undefined;
4145
+ title?: string | undefined;
4146
+ }) => Record<string, unknown>) | undefined;
4147
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4148
+ deltaH?: number | undefined;
4149
+ activationEnergy?: number | undefined;
4150
+ catalyst?: boolean | undefined;
4151
+ title?: string | undefined;
4152
+ }>) | undefined;
4153
+ } | {
4154
+ group: string;
4155
+ key: string;
4156
+ label: string;
4157
+ icon?: import("react").ComponentType<{
4158
+ className?: string;
4159
+ }>;
4160
+ description?: string;
4161
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4162
+ slash?: boolean;
4163
+ schema: import("zod").ZodObject<{
4164
+ a: import("zod").ZodOptional<import("zod").ZodString>;
4165
+ b: import("zod").ZodOptional<import("zod").ZodString>;
4166
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4167
+ }, import("zod/v4/core").$strip>;
4168
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4169
+ a?: string | undefined;
4170
+ b?: string | undefined;
4171
+ title?: string | undefined;
4172
+ }>>;
4173
+ tag?: string;
4174
+ void?: boolean;
4175
+ toAttrs?: ((props: {
4176
+ a?: string | undefined;
4177
+ b?: string | undefined;
4178
+ title?: string | undefined;
4179
+ }) => Record<string, unknown>) | undefined;
4180
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4181
+ a?: string | undefined;
4182
+ b?: string | undefined;
4183
+ title?: string | undefined;
1966
4184
  }>) | undefined;
1967
4185
  } | {
1968
4186
  group: string;
@@ -1975,82 +4193,22 @@ declare const labGalleryItems: ({
1975
4193
  category?: import("@classytic/cms-ui/contract").BlockCategory;
1976
4194
  slash?: boolean;
1977
4195
  schema: import("zod").ZodObject<{
1978
- vectors: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
1979
- label: import("zod").ZodOptional<import("zod").ZodString>;
1980
- dx: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1981
- dy: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1982
- color: import("zod").ZodOptional<import("zod").ZodString>;
1983
- drag: import("zod").ZodOptional<import("zod").ZodBoolean>;
1984
- }, import("zod/v4/core").$strip>>>;
1985
- combine: import("zod").ZodDefault<import("zod").ZodEnum<{
1986
- none: "none";
1987
- sum: "sum";
1988
- diff: "diff";
1989
- }>>;
1990
- goalX: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1991
- goalY: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1992
- components: import("zod").ZodOptional<import("zod").ZodBoolean>;
1993
- angle: import("zod").ZodDefault<import("zod").ZodBoolean>;
1994
- objectives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1995
- hints: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
4196
+ emf: import("zod").ZodOptional<import("zod").ZodNumber>;
1996
4197
  title: import("zod").ZodOptional<import("zod").ZodString>;
1997
- prompt: import("zod").ZodOptional<import("zod").ZodString>;
1998
4198
  }, import("zod/v4/core").$strip>;
1999
4199
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2000
- vectors: {
2001
- label?: string | undefined;
2002
- dx?: string | number | undefined;
2003
- dy?: string | number | undefined;
2004
- color?: string | undefined;
2005
- drag?: boolean | undefined;
2006
- }[];
2007
- combine: "none" | "sum" | "diff";
2008
- angle: boolean;
2009
- goalX?: string | number | undefined;
2010
- goalY?: string | number | undefined;
2011
- components?: boolean | undefined;
2012
- objectives?: string[] | undefined;
2013
- hints?: string[] | undefined;
4200
+ emf?: number | undefined;
2014
4201
  title?: string | undefined;
2015
- prompt?: string | undefined;
2016
4202
  }>>;
2017
4203
  tag?: string;
2018
4204
  void?: boolean;
2019
4205
  toAttrs?: ((props: {
2020
- vectors: {
2021
- label?: string | undefined;
2022
- dx?: string | number | undefined;
2023
- dy?: string | number | undefined;
2024
- color?: string | undefined;
2025
- drag?: boolean | undefined;
2026
- }[];
2027
- combine: "none" | "sum" | "diff";
2028
- angle: boolean;
2029
- goalX?: string | number | undefined;
2030
- goalY?: string | number | undefined;
2031
- components?: boolean | undefined;
2032
- objectives?: string[] | undefined;
2033
- hints?: string[] | undefined;
4206
+ emf?: number | undefined;
2034
4207
  title?: string | undefined;
2035
- prompt?: string | undefined;
2036
4208
  }) => Record<string, unknown>) | undefined;
2037
4209
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2038
- vectors: {
2039
- label?: string | undefined;
2040
- dx?: string | number | undefined;
2041
- dy?: string | number | undefined;
2042
- color?: string | undefined;
2043
- drag?: boolean | undefined;
2044
- }[];
2045
- combine: "none" | "sum" | "diff";
2046
- angle: boolean;
2047
- goalX?: string | number | undefined;
2048
- goalY?: string | number | undefined;
2049
- components?: boolean | undefined;
2050
- objectives?: string[] | undefined;
2051
- hints?: string[] | undefined;
4210
+ emf?: number | undefined;
2052
4211
  title?: string | undefined;
2053
- prompt?: string | undefined;
2054
4212
  }>) | undefined;
2055
4213
  } | {
2056
4214
  group: string;
@@ -2063,86 +4221,41 @@ declare const labGalleryItems: ({
2063
4221
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2064
4222
  slash?: boolean;
2065
4223
  schema: import("zod").ZodObject<{
4224
+ factor: import("zod").ZodDefault<import("zod").ZodEnum<{
4225
+ temperature: "temperature";
4226
+ pH: "pH";
4227
+ }>>;
4228
+ optimum: import("zod").ZodDefault<import("zod").ZodNumber>;
4229
+ factorMin: import("zod").ZodDefault<import("zod").ZodNumber>;
4230
+ factorMax: import("zod").ZodDefault<import("zod").ZodNumber>;
2066
4231
  title: import("zod").ZodOptional<import("zod").ZodString>;
2067
- types: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2068
- name: import("zod").ZodString;
2069
- caption: import("zod").ZodString;
2070
- vectors: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2071
- tail: import("zod").ZodOptional<import("zod").ZodObject<{
2072
- x: import("zod").ZodNumber;
2073
- y: import("zod").ZodNumber;
2074
- }, import("zod/v4/core").$strip>>;
2075
- comp: import("zod").ZodObject<{
2076
- x: import("zod").ZodNumber;
2077
- y: import("zod").ZodNumber;
2078
- }, import("zod/v4/core").$strip>;
2079
- color: import("zod").ZodOptional<import("zod").ZodString>;
2080
- label: import("zod").ZodOptional<import("zod").ZodString>;
2081
- }, import("zod/v4/core").$strip>>>;
2082
- origin: import("zod").ZodOptional<import("zod").ZodBoolean>;
2083
- }, import("zod/v4/core").$strip>>>;
4232
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2084
4233
  }, import("zod/v4/core").$strip>;
2085
4234
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4235
+ factor: "temperature" | "pH";
4236
+ optimum: number;
4237
+ factorMin: number;
4238
+ factorMax: number;
2086
4239
  title?: string | undefined;
2087
- types?: {
2088
- name: string;
2089
- caption: string;
2090
- vectors?: {
2091
- comp: {
2092
- x: number;
2093
- y: number;
2094
- };
2095
- tail?: {
2096
- x: number;
2097
- y: number;
2098
- } | undefined;
2099
- color?: string | undefined;
2100
- label?: string | undefined;
2101
- }[] | undefined;
2102
- origin?: boolean | undefined;
2103
- }[] | undefined;
4240
+ prompt?: string | undefined;
2104
4241
  }>>;
2105
4242
  tag?: string;
2106
4243
  void?: boolean;
2107
4244
  toAttrs?: ((props: {
4245
+ factor: "temperature" | "pH";
4246
+ optimum: number;
4247
+ factorMin: number;
4248
+ factorMax: number;
2108
4249
  title?: string | undefined;
2109
- types?: {
2110
- name: string;
2111
- caption: string;
2112
- vectors?: {
2113
- comp: {
2114
- x: number;
2115
- y: number;
2116
- };
2117
- tail?: {
2118
- x: number;
2119
- y: number;
2120
- } | undefined;
2121
- color?: string | undefined;
2122
- label?: string | undefined;
2123
- }[] | undefined;
2124
- origin?: boolean | undefined;
2125
- }[] | undefined;
4250
+ prompt?: string | undefined;
2126
4251
  }) => Record<string, unknown>) | undefined;
2127
4252
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4253
+ factor: "temperature" | "pH";
4254
+ optimum: number;
4255
+ factorMin: number;
4256
+ factorMax: number;
2128
4257
  title?: string | undefined;
2129
- types?: {
2130
- name: string;
2131
- caption: string;
2132
- vectors?: {
2133
- comp: {
2134
- x: number;
2135
- y: number;
2136
- };
2137
- tail?: {
2138
- x: number;
2139
- y: number;
2140
- } | undefined;
2141
- color?: string | undefined;
2142
- label?: string | undefined;
2143
- }[] | undefined;
2144
- origin?: boolean | undefined;
2145
- }[] | undefined;
4258
+ prompt?: string | undefined;
2146
4259
  }>) | undefined;
2147
4260
  } | {
2148
4261
  group: string;
@@ -2155,28 +4268,36 @@ declare const labGalleryItems: ({
2155
4268
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2156
4269
  slash?: boolean;
2157
4270
  schema: import("zod").ZodObject<{
2158
- maxSpeed: import("zod").ZodDefault<import("zod").ZodNumber>;
2159
- start: import("zod").ZodDefault<import("zod").ZodNumber>;
4271
+ light: import("zod").ZodDefault<import("zod").ZodNumber>;
4272
+ co2: import("zod").ZodDefault<import("zod").ZodNumber>;
4273
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
4274
+ tempOptimum: import("zod").ZodDefault<import("zod").ZodNumber>;
2160
4275
  title: import("zod").ZodOptional<import("zod").ZodString>;
2161
4276
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2162
4277
  }, import("zod/v4/core").$strip>;
2163
4278
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2164
- maxSpeed: number;
2165
- start: number;
4279
+ light: number;
4280
+ co2: number;
4281
+ temperature: number;
4282
+ tempOptimum: number;
2166
4283
  title?: string | undefined;
2167
4284
  prompt?: string | undefined;
2168
4285
  }>>;
2169
4286
  tag?: string;
2170
4287
  void?: boolean;
2171
4288
  toAttrs?: ((props: {
2172
- maxSpeed: number;
2173
- start: number;
4289
+ light: number;
4290
+ co2: number;
4291
+ temperature: number;
4292
+ tempOptimum: number;
2174
4293
  title?: string | undefined;
2175
4294
  prompt?: string | undefined;
2176
4295
  }) => Record<string, unknown>) | undefined;
2177
4296
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2178
- maxSpeed: number;
2179
- start: number;
4297
+ light: number;
4298
+ co2: number;
4299
+ temperature: number;
4300
+ tempOptimum: number;
2180
4301
  title?: string | undefined;
2181
4302
  prompt?: string | undefined;
2182
4303
  }>) | undefined;
@@ -2191,40 +4312,44 @@ declare const labGalleryItems: ({
2191
4312
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2192
4313
  slash?: boolean;
2193
4314
  schema: import("zod").ZodObject<{
2194
- speed: import("zod").ZodDefault<import("zod").ZodNumber>;
2195
- reactionTime: import("zod").ZodDefault<import("zod").ZodNumber>;
2196
- deceleration: import("zod").ZodDefault<import("zod").ZodNumber>;
2197
- predict: import("zod").ZodDefault<import("zod").ZodBoolean>;
2198
- showGraphs: import("zod").ZodDefault<import("zod").ZodBoolean>;
4315
+ parent1: import("zod").ZodDefault<import("zod").ZodString>;
4316
+ parent2: import("zod").ZodDefault<import("zod").ZodString>;
4317
+ alleleLetter: import("zod").ZodDefault<import("zod").ZodString>;
4318
+ dominantLabel: import("zod").ZodDefault<import("zod").ZodString>;
4319
+ recessiveLabel: import("zod").ZodDefault<import("zod").ZodString>;
4320
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
2199
4321
  title: import("zod").ZodOptional<import("zod").ZodString>;
2200
4322
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2201
4323
  }, import("zod/v4/core").$strip>;
2202
4324
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2203
- speed: number;
2204
- reactionTime: number;
2205
- deceleration: number;
2206
- predict: boolean;
2207
- showGraphs: boolean;
4325
+ parent1: string;
4326
+ parent2: string;
4327
+ alleleLetter: string;
4328
+ dominantLabel: string;
4329
+ recessiveLabel: string;
4330
+ predictFirst: boolean;
2208
4331
  title?: string | undefined;
2209
4332
  prompt?: string | undefined;
2210
4333
  }>>;
2211
4334
  tag?: string;
2212
4335
  void?: boolean;
2213
4336
  toAttrs?: ((props: {
2214
- speed: number;
2215
- reactionTime: number;
2216
- deceleration: number;
2217
- predict: boolean;
2218
- showGraphs: boolean;
4337
+ parent1: string;
4338
+ parent2: string;
4339
+ alleleLetter: string;
4340
+ dominantLabel: string;
4341
+ recessiveLabel: string;
4342
+ predictFirst: boolean;
2219
4343
  title?: string | undefined;
2220
4344
  prompt?: string | undefined;
2221
4345
  }) => Record<string, unknown>) | undefined;
2222
4346
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2223
- speed: number;
2224
- reactionTime: number;
2225
- deceleration: number;
2226
- predict: boolean;
2227
- showGraphs: boolean;
4347
+ parent1: string;
4348
+ parent2: string;
4349
+ alleleLetter: string;
4350
+ dominantLabel: string;
4351
+ recessiveLabel: string;
4352
+ predictFirst: boolean;
2228
4353
  title?: string | undefined;
2229
4354
  prompt?: string | undefined;
2230
4355
  }>) | undefined;
@@ -2239,54 +4364,29 @@ declare const labGalleryItems: ({
2239
4364
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2240
4365
  slash?: boolean;
2241
4366
  schema: import("zod").ZodObject<{
2242
- angleDeg: import("zod").ZodDefault<import("zod").ZodNumber>;
2243
- mass: import("zod").ZodDefault<import("zod").ZodNumber>;
2244
- friction: import("zod").ZodDefault<import("zod").ZodNumber>;
2245
- showComponents: import("zod").ZodDefault<import("zod").ZodBoolean>;
4367
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
4368
+ day: "day";
4369
+ night: "night";
4370
+ }>>;
2246
4371
  title: import("zod").ZodOptional<import("zod").ZodString>;
2247
4372
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2248
- controls: import("zod").ZodOptional<import("zod").ZodObject<{
2249
- hide: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2250
- lock: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2251
- }, import("zod/v4/core").$strip>>;
2252
4373
  }, import("zod/v4/core").$strip>;
2253
4374
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2254
- angleDeg: number;
2255
- mass: number;
2256
- friction: number;
2257
- showComponents: boolean;
4375
+ mode: "day" | "night";
2258
4376
  title?: string | undefined;
2259
4377
  prompt?: string | undefined;
2260
- controls?: {
2261
- hide?: string[] | undefined;
2262
- lock?: string[] | undefined;
2263
- } | undefined;
2264
4378
  }>>;
2265
4379
  tag?: string;
2266
4380
  void?: boolean;
2267
4381
  toAttrs?: ((props: {
2268
- angleDeg: number;
2269
- mass: number;
2270
- friction: number;
2271
- showComponents: boolean;
4382
+ mode: "day" | "night";
2272
4383
  title?: string | undefined;
2273
4384
  prompt?: string | undefined;
2274
- controls?: {
2275
- hide?: string[] | undefined;
2276
- lock?: string[] | undefined;
2277
- } | undefined;
2278
4385
  }) => Record<string, unknown>) | undefined;
2279
4386
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2280
- angleDeg: number;
2281
- mass: number;
2282
- friction: number;
2283
- showComponents: boolean;
4387
+ mode: "day" | "night";
2284
4388
  title?: string | undefined;
2285
4389
  prompt?: string | undefined;
2286
- controls?: {
2287
- hide?: string[] | undefined;
2288
- lock?: string[] | undefined;
2289
- } | undefined;
2290
4390
  }>) | undefined;
2291
4391
  } | {
2292
4392
  group: string;
@@ -2299,44 +4399,98 @@ declare const labGalleryItems: ({
2299
4399
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2300
4400
  slash?: boolean;
2301
4401
  schema: import("zod").ZodObject<{
2302
- m1: import("zod").ZodDefault<import("zod").ZodNumber>;
2303
- m2: import("zod").ZodDefault<import("zod").ZodNumber>;
2304
- u1: import("zod").ZodDefault<import("zod").ZodNumber>;
2305
- u2: import("zod").ZodDefault<import("zod").ZodNumber>;
2306
- elasticity: import("zod").ZodDefault<import("zod").ZodNumber>;
2307
- showCenterOfMass: import("zod").ZodDefault<import("zod").ZodBoolean>;
4402
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
4403
+ custom: "custom";
4404
+ monohybrid: "monohybrid";
4405
+ "blood-type": "blood-type";
4406
+ incomplete: "incomplete";
4407
+ dihybrid: "dihybrid";
4408
+ }>>;
4409
+ spec: import("zod").ZodOptional<import("zod").ZodObject<{
4410
+ trait: import("zod").ZodOptional<import("zod").ZodString>;
4411
+ alleles: import("zod").ZodArray<import("zod").ZodObject<{
4412
+ symbol: import("zod").ZodString;
4413
+ rank: import("zod").ZodNumber;
4414
+ trait: import("zod").ZodString;
4415
+ }, import("zod/v4/core").$strip>>;
4416
+ blends: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4417
+ pair: import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>;
4418
+ label: import("zod").ZodString;
4419
+ color: import("zod").ZodOptional<import("zod").ZodString>;
4420
+ }, import("zod/v4/core").$strip>>>;
4421
+ colors: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
4422
+ }, import("zod/v4/core").$strip>>;
4423
+ parent1: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
4424
+ parent2: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
4425
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
2308
4426
  title: import("zod").ZodOptional<import("zod").ZodString>;
2309
4427
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2310
4428
  }, import("zod/v4/core").$strip>;
2311
4429
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2312
- m1: number;
2313
- m2: number;
2314
- u1: number;
2315
- u2: number;
2316
- elasticity: number;
2317
- showCenterOfMass: boolean;
4430
+ preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
4431
+ predictFirst: boolean;
4432
+ spec?: {
4433
+ alleles: {
4434
+ symbol: string;
4435
+ rank: number;
4436
+ trait: string;
4437
+ }[];
4438
+ trait?: string | undefined;
4439
+ blends?: {
4440
+ pair: [string, string];
4441
+ label: string;
4442
+ color?: string | undefined;
4443
+ }[] | undefined;
4444
+ colors?: Record<string, string> | undefined;
4445
+ } | undefined;
4446
+ parent1?: string[] | undefined;
4447
+ parent2?: string[] | undefined;
2318
4448
  title?: string | undefined;
2319
4449
  prompt?: string | undefined;
2320
4450
  }>>;
2321
4451
  tag?: string;
2322
4452
  void?: boolean;
2323
4453
  toAttrs?: ((props: {
2324
- m1: number;
2325
- m2: number;
2326
- u1: number;
2327
- u2: number;
2328
- elasticity: number;
2329
- showCenterOfMass: boolean;
4454
+ preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
4455
+ predictFirst: boolean;
4456
+ spec?: {
4457
+ alleles: {
4458
+ symbol: string;
4459
+ rank: number;
4460
+ trait: string;
4461
+ }[];
4462
+ trait?: string | undefined;
4463
+ blends?: {
4464
+ pair: [string, string];
4465
+ label: string;
4466
+ color?: string | undefined;
4467
+ }[] | undefined;
4468
+ colors?: Record<string, string> | undefined;
4469
+ } | undefined;
4470
+ parent1?: string[] | undefined;
4471
+ parent2?: string[] | undefined;
2330
4472
  title?: string | undefined;
2331
4473
  prompt?: string | undefined;
2332
4474
  }) => Record<string, unknown>) | undefined;
2333
4475
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2334
- m1: number;
2335
- m2: number;
2336
- u1: number;
2337
- u2: number;
2338
- elasticity: number;
2339
- showCenterOfMass: boolean;
4476
+ preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
4477
+ predictFirst: boolean;
4478
+ spec?: {
4479
+ alleles: {
4480
+ symbol: string;
4481
+ rank: number;
4482
+ trait: string;
4483
+ }[];
4484
+ trait?: string | undefined;
4485
+ blends?: {
4486
+ pair: [string, string];
4487
+ label: string;
4488
+ color?: string | undefined;
4489
+ }[] | undefined;
4490
+ colors?: Record<string, string> | undefined;
4491
+ } | undefined;
4492
+ parent1?: string[] | undefined;
4493
+ parent2?: string[] | undefined;
2340
4494
  title?: string | undefined;
2341
4495
  prompt?: string | undefined;
2342
4496
  }>) | undefined;
@@ -2351,45 +4505,32 @@ declare const labGalleryItems: ({
2351
4505
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2352
4506
  slash?: boolean;
2353
4507
  schema: import("zod").ZodObject<{
2354
- holdConstant: import("zod").ZodDefault<import("zod").ZodEnum<{
2355
- temperature: "temperature";
2356
- none: "none";
2357
- volume: "volume";
2358
- pressure: "pressure";
4508
+ kind: import("zod").ZodDefault<import("zod").ZodEnum<{
4509
+ translation: "translation";
4510
+ replication: "replication";
4511
+ transcription: "transcription";
2359
4512
  }>>;
2360
- particleCount: import("zod").ZodDefault<import("zod").ZodNumber>;
2361
- temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
2362
- volume: import("zod").ZodDefault<import("zod").ZodNumber>;
2363
- showGauge: import("zod").ZodDefault<import("zod").ZodBoolean>;
4513
+ template: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2364
4514
  title: import("zod").ZodOptional<import("zod").ZodString>;
2365
4515
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2366
4516
  }, import("zod/v4/core").$strip>;
2367
4517
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2368
- holdConstant: "temperature" | "none" | "volume" | "pressure";
2369
- particleCount: number;
2370
- temperature: number;
2371
- volume: number;
2372
- showGauge: boolean;
4518
+ kind: "translation" | "replication" | "transcription";
4519
+ template?: string[] | undefined;
2373
4520
  title?: string | undefined;
2374
4521
  prompt?: string | undefined;
2375
4522
  }>>;
2376
4523
  tag?: string;
2377
4524
  void?: boolean;
2378
4525
  toAttrs?: ((props: {
2379
- holdConstant: "temperature" | "none" | "volume" | "pressure";
2380
- particleCount: number;
2381
- temperature: number;
2382
- volume: number;
2383
- showGauge: boolean;
4526
+ kind: "translation" | "replication" | "transcription";
4527
+ template?: string[] | undefined;
2384
4528
  title?: string | undefined;
2385
4529
  prompt?: string | undefined;
2386
4530
  }) => Record<string, unknown>) | undefined;
2387
4531
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2388
- holdConstant: "temperature" | "none" | "volume" | "pressure";
2389
- particleCount: number;
2390
- temperature: number;
2391
- volume: number;
2392
- showGauge: boolean;
4532
+ kind: "translation" | "replication" | "transcription";
4533
+ template?: string[] | undefined;
2393
4534
  title?: string | undefined;
2394
4535
  prompt?: string | undefined;
2395
4536
  }>) | undefined;
@@ -2404,32 +4545,44 @@ declare const labGalleryItems: ({
2404
4545
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2405
4546
  slash?: boolean;
2406
4547
  schema: import("zod").ZodObject<{
2407
- moles: import("zod").ZodDefault<import("zod").ZodNumber>;
2408
- volume: import("zod").ZodDefault<import("zod").ZodNumber>;
2409
- showProbe: import("zod").ZodDefault<import("zod").ZodBoolean>;
4548
+ allele: import("zod").ZodDefault<import("zod").ZodString>;
4549
+ dominant: import("zod").ZodDefault<import("zod").ZodString>;
4550
+ recessive: import("zod").ZodDefault<import("zod").ZodString>;
4551
+ mother: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>>;
4552
+ father: import("zod").ZodOptional<import("zod").ZodString>;
4553
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
2410
4554
  title: import("zod").ZodOptional<import("zod").ZodString>;
2411
4555
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2412
4556
  }, import("zod/v4/core").$strip>;
2413
4557
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2414
- moles: number;
2415
- volume: number;
2416
- showProbe: boolean;
4558
+ allele: string;
4559
+ dominant: string;
4560
+ recessive: string;
4561
+ predictFirst: boolean;
4562
+ mother?: [string, string] | undefined;
4563
+ father?: string | undefined;
2417
4564
  title?: string | undefined;
2418
4565
  prompt?: string | undefined;
2419
4566
  }>>;
2420
4567
  tag?: string;
2421
4568
  void?: boolean;
2422
4569
  toAttrs?: ((props: {
2423
- moles: number;
2424
- volume: number;
2425
- showProbe: boolean;
4570
+ allele: string;
4571
+ dominant: string;
4572
+ recessive: string;
4573
+ predictFirst: boolean;
4574
+ mother?: [string, string] | undefined;
4575
+ father?: string | undefined;
2426
4576
  title?: string | undefined;
2427
4577
  prompt?: string | undefined;
2428
4578
  }) => Record<string, unknown>) | undefined;
2429
4579
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2430
- moles: number;
2431
- volume: number;
2432
- showProbe: boolean;
4580
+ allele: string;
4581
+ dominant: string;
4582
+ recessive: string;
4583
+ predictFirst: boolean;
4584
+ mother?: [string, string] | undefined;
4585
+ father?: string | undefined;
2433
4586
  title?: string | undefined;
2434
4587
  prompt?: string | undefined;
2435
4588
  }>) | undefined;
@@ -2444,32 +4597,24 @@ declare const labGalleryItems: ({
2444
4597
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2445
4598
  slash?: boolean;
2446
4599
  schema: import("zod").ZodObject<{
2447
- stockConcentration: import("zod").ZodDefault<import("zod").ZodNumber>;
2448
- aliquotVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
2449
- finalVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
4600
+ dna: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2450
4601
  title: import("zod").ZodOptional<import("zod").ZodString>;
2451
4602
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2452
4603
  }, import("zod/v4/core").$strip>;
2453
4604
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2454
- stockConcentration: number;
2455
- aliquotVolume: number;
2456
- finalVolume: number;
4605
+ dna?: string[] | undefined;
2457
4606
  title?: string | undefined;
2458
4607
  prompt?: string | undefined;
2459
4608
  }>>;
2460
4609
  tag?: string;
2461
4610
  void?: boolean;
2462
4611
  toAttrs?: ((props: {
2463
- stockConcentration: number;
2464
- aliquotVolume: number;
2465
- finalVolume: number;
4612
+ dna?: string[] | undefined;
2466
4613
  title?: string | undefined;
2467
4614
  prompt?: string | undefined;
2468
4615
  }) => Record<string, unknown>) | undefined;
2469
4616
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2470
- stockConcentration: number;
2471
- aliquotVolume: number;
2472
- finalVolume: number;
4617
+ dna?: string[] | undefined;
2473
4618
  title?: string | undefined;
2474
4619
  prompt?: string | undefined;
2475
4620
  }>) | undefined;
@@ -2484,21 +4629,36 @@ declare const labGalleryItems: ({
2484
4629
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2485
4630
  slash?: boolean;
2486
4631
  schema: import("zod").ZodObject<{
2487
- protons: import("zod").ZodOptional<import("zod").ZodNumber>;
4632
+ voltage: import("zod").ZodOptional<import("zod").ZodNumber>;
4633
+ r1: import("zod").ZodOptional<import("zod").ZodNumber>;
4634
+ r2: import("zod").ZodOptional<import("zod").ZodNumber>;
4635
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
4636
+ parallel: "parallel";
4637
+ series: "series";
4638
+ }>>;
2488
4639
  title: import("zod").ZodOptional<import("zod").ZodString>;
2489
4640
  }, import("zod/v4/core").$strip>;
2490
4641
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2491
- protons?: number | undefined;
4642
+ voltage?: number | undefined;
4643
+ r1?: number | undefined;
4644
+ r2?: number | undefined;
4645
+ mode?: "parallel" | "series" | undefined;
2492
4646
  title?: string | undefined;
2493
4647
  }>>;
2494
4648
  tag?: string;
2495
4649
  void?: boolean;
2496
4650
  toAttrs?: ((props: {
2497
- protons?: number | undefined;
4651
+ voltage?: number | undefined;
4652
+ r1?: number | undefined;
4653
+ r2?: number | undefined;
4654
+ mode?: "parallel" | "series" | undefined;
2498
4655
  title?: string | undefined;
2499
4656
  }) => Record<string, unknown>) | undefined;
2500
4657
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2501
- protons?: number | undefined;
4658
+ voltage?: number | undefined;
4659
+ r1?: number | undefined;
4660
+ r2?: number | undefined;
4661
+ mode?: "parallel" | "series" | undefined;
2502
4662
  title?: string | undefined;
2503
4663
  }>) | undefined;
2504
4664
  } | {
@@ -2512,29 +4672,25 @@ declare const labGalleryItems: ({
2512
4672
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2513
4673
  slash?: boolean;
2514
4674
  schema: import("zod").ZodObject<{
2515
- deltaH: import("zod").ZodOptional<import("zod").ZodNumber>;
2516
- activationEnergy: import("zod").ZodOptional<import("zod").ZodNumber>;
2517
- catalyst: import("zod").ZodOptional<import("zod").ZodBoolean>;
4675
+ battery: import("zod").ZodOptional<import("zod").ZodNumber>;
4676
+ components: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
2518
4677
  title: import("zod").ZodOptional<import("zod").ZodString>;
2519
4678
  }, import("zod/v4/core").$strip>;
2520
4679
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2521
- deltaH?: number | undefined;
2522
- activationEnergy?: number | undefined;
2523
- catalyst?: boolean | undefined;
4680
+ battery?: number | undefined;
4681
+ components?: Record<string, unknown>[] | undefined;
2524
4682
  title?: string | undefined;
2525
4683
  }>>;
2526
4684
  tag?: string;
2527
4685
  void?: boolean;
2528
4686
  toAttrs?: ((props: {
2529
- deltaH?: number | undefined;
2530
- activationEnergy?: number | undefined;
2531
- catalyst?: boolean | undefined;
4687
+ battery?: number | undefined;
4688
+ components?: Record<string, unknown>[] | undefined;
2532
4689
  title?: string | undefined;
2533
4690
  }) => Record<string, unknown>) | undefined;
2534
4691
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2535
- deltaH?: number | undefined;
2536
- activationEnergy?: number | undefined;
2537
- catalyst?: boolean | undefined;
4692
+ battery?: number | undefined;
4693
+ components?: Record<string, unknown>[] | undefined;
2538
4694
  title?: string | undefined;
2539
4695
  }>) | undefined;
2540
4696
  } | {
@@ -2548,25 +4704,116 @@ declare const labGalleryItems: ({
2548
4704
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2549
4705
  slash?: boolean;
2550
4706
  schema: import("zod").ZodObject<{
2551
- a: import("zod").ZodOptional<import("zod").ZodString>;
2552
- b: import("zod").ZodOptional<import("zod").ZodString>;
4707
+ doc: import("zod").ZodOptional<import("zod").ZodObject<{
4708
+ parts: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
4709
+ id: import("zod").ZodString;
4710
+ kind: import("zod").ZodString;
4711
+ at: import("zod").ZodObject<{
4712
+ x: import("zod").ZodNumber;
4713
+ y: import("zod").ZodNumber;
4714
+ }, import("zod/v4/core").$strip>;
4715
+ orient: import("zod").ZodOptional<import("zod").ZodEnum<{
4716
+ h: "h";
4717
+ v: "v";
4718
+ }>>;
4719
+ props: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString, import("zod").ZodBoolean]>>>;
4720
+ pins: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
4721
+ }, import("zod/v4/core").$strip>>>;
4722
+ nodes: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
4723
+ id: import("zod").ZodString;
4724
+ at: import("zod").ZodObject<{
4725
+ x: import("zod").ZodNumber;
4726
+ y: import("zod").ZodNumber;
4727
+ }, import("zod/v4/core").$strip>;
4728
+ }, import("zod/v4/core").$strip>>>;
4729
+ size: import("zod").ZodOptional<import("zod").ZodObject<{
4730
+ w: import("zod").ZodNumber;
4731
+ h: import("zod").ZodNumber;
4732
+ }, import("zod/v4/core").$strip>>;
4733
+ }, import("zod/v4/core").$strip>>;
2553
4734
  title: import("zod").ZodOptional<import("zod").ZodString>;
2554
4735
  }, import("zod/v4/core").$strip>;
2555
4736
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2556
- a?: string | undefined;
2557
- b?: string | undefined;
4737
+ doc?: {
4738
+ parts: {
4739
+ id: string;
4740
+ kind: string;
4741
+ at: {
4742
+ x: number;
4743
+ y: number;
4744
+ };
4745
+ pins: Record<string, string>;
4746
+ orient?: "h" | "v" | undefined;
4747
+ props?: Record<string, string | number | boolean> | undefined;
4748
+ }[];
4749
+ nodes: {
4750
+ id: string;
4751
+ at: {
4752
+ x: number;
4753
+ y: number;
4754
+ };
4755
+ }[];
4756
+ size?: {
4757
+ w: number;
4758
+ h: number;
4759
+ } | undefined;
4760
+ } | undefined;
2558
4761
  title?: string | undefined;
2559
4762
  }>>;
2560
4763
  tag?: string;
2561
4764
  void?: boolean;
2562
4765
  toAttrs?: ((props: {
2563
- a?: string | undefined;
2564
- b?: string | undefined;
4766
+ doc?: {
4767
+ parts: {
4768
+ id: string;
4769
+ kind: string;
4770
+ at: {
4771
+ x: number;
4772
+ y: number;
4773
+ };
4774
+ pins: Record<string, string>;
4775
+ orient?: "h" | "v" | undefined;
4776
+ props?: Record<string, string | number | boolean> | undefined;
4777
+ }[];
4778
+ nodes: {
4779
+ id: string;
4780
+ at: {
4781
+ x: number;
4782
+ y: number;
4783
+ };
4784
+ }[];
4785
+ size?: {
4786
+ w: number;
4787
+ h: number;
4788
+ } | undefined;
4789
+ } | undefined;
2565
4790
  title?: string | undefined;
2566
4791
  }) => Record<string, unknown>) | undefined;
2567
4792
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2568
- a?: string | undefined;
2569
- b?: string | undefined;
4793
+ doc?: {
4794
+ parts: {
4795
+ id: string;
4796
+ kind: string;
4797
+ at: {
4798
+ x: number;
4799
+ y: number;
4800
+ };
4801
+ pins: Record<string, string>;
4802
+ orient?: "h" | "v" | undefined;
4803
+ props?: Record<string, string | number | boolean> | undefined;
4804
+ }[];
4805
+ nodes: {
4806
+ id: string;
4807
+ at: {
4808
+ x: number;
4809
+ y: number;
4810
+ };
4811
+ }[];
4812
+ size?: {
4813
+ w: number;
4814
+ h: number;
4815
+ } | undefined;
4816
+ } | undefined;
2570
4817
  title?: string | undefined;
2571
4818
  }>) | undefined;
2572
4819
  } | {
@@ -2580,22 +4827,30 @@ declare const labGalleryItems: ({
2580
4827
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2581
4828
  slash?: boolean;
2582
4829
  schema: import("zod").ZodObject<{
2583
- emf: import("zod").ZodOptional<import("zod").ZodNumber>;
2584
- title: import("zod").ZodOptional<import("zod").ZodString>;
4830
+ emf: import("zod").ZodDefault<import("zod").ZodNumber>;
4831
+ bulbOhms: import("zod").ZodDefault<import("zod").ZodNumber>;
4832
+ withSwitch: import("zod").ZodDefault<import("zod").ZodBoolean>;
4833
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
2585
4834
  }, import("zod/v4/core").$strip>;
2586
4835
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2587
- emf?: number | undefined;
2588
- title?: string | undefined;
4836
+ emf: number;
4837
+ bulbOhms: number;
4838
+ withSwitch: boolean;
4839
+ controlId?: string | undefined;
2589
4840
  }>>;
2590
4841
  tag?: string;
2591
4842
  void?: boolean;
2592
4843
  toAttrs?: ((props: {
2593
- emf?: number | undefined;
2594
- title?: string | undefined;
4844
+ emf: number;
4845
+ bulbOhms: number;
4846
+ withSwitch: boolean;
4847
+ controlId?: string | undefined;
2595
4848
  }) => Record<string, unknown>) | undefined;
2596
4849
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2597
- emf?: number | undefined;
2598
- title?: string | undefined;
4850
+ emf: number;
4851
+ bulbOhms: number;
4852
+ withSwitch: boolean;
4853
+ controlId?: string | undefined;
2599
4854
  }>) | undefined;
2600
4855
  } | {
2601
4856
  group: string;
@@ -2608,39 +4863,40 @@ declare const labGalleryItems: ({
2608
4863
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2609
4864
  slash?: boolean;
2610
4865
  schema: import("zod").ZodObject<{
2611
- factor: import("zod").ZodDefault<import("zod").ZodEnum<{
2612
- temperature: "temperature";
2613
- pH: "pH";
4866
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
4867
+ n: "n";
4868
+ intrinsic: "intrinsic";
4869
+ p: "p";
2614
4870
  }>>;
2615
- optimum: import("zod").ZodDefault<import("zod").ZodNumber>;
2616
- factorMin: import("zod").ZodDefault<import("zod").ZodNumber>;
2617
- factorMax: import("zod").ZodDefault<import("zod").ZodNumber>;
4871
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
4872
+ lockDoping: import("zod").ZodDefault<import("zod").ZodBoolean>;
4873
+ showTemperature: import("zod").ZodDefault<import("zod").ZodBoolean>;
2618
4874
  title: import("zod").ZodOptional<import("zod").ZodString>;
2619
4875
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2620
4876
  }, import("zod/v4/core").$strip>;
2621
4877
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2622
- factor: "temperature" | "pH";
2623
- optimum: number;
2624
- factorMin: number;
2625
- factorMax: number;
4878
+ mode: "n" | "intrinsic" | "p";
4879
+ temperature: number;
4880
+ lockDoping: boolean;
4881
+ showTemperature: boolean;
2626
4882
  title?: string | undefined;
2627
4883
  prompt?: string | undefined;
2628
4884
  }>>;
2629
4885
  tag?: string;
2630
4886
  void?: boolean;
2631
4887
  toAttrs?: ((props: {
2632
- factor: "temperature" | "pH";
2633
- optimum: number;
2634
- factorMin: number;
2635
- factorMax: number;
4888
+ mode: "n" | "intrinsic" | "p";
4889
+ temperature: number;
4890
+ lockDoping: boolean;
4891
+ showTemperature: boolean;
2636
4892
  title?: string | undefined;
2637
4893
  prompt?: string | undefined;
2638
4894
  }) => Record<string, unknown>) | undefined;
2639
4895
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2640
- factor: "temperature" | "pH";
2641
- optimum: number;
2642
- factorMin: number;
2643
- factorMax: number;
4896
+ mode: "n" | "intrinsic" | "p";
4897
+ temperature: number;
4898
+ lockDoping: boolean;
4899
+ showTemperature: boolean;
2644
4900
  title?: string | undefined;
2645
4901
  prompt?: string | undefined;
2646
4902
  }>) | undefined;
@@ -2655,36 +4911,20 @@ declare const labGalleryItems: ({
2655
4911
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2656
4912
  slash?: boolean;
2657
4913
  schema: import("zod").ZodObject<{
2658
- light: import("zod").ZodDefault<import("zod").ZodNumber>;
2659
- co2: import("zod").ZodDefault<import("zod").ZodNumber>;
2660
- temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
2661
- tempOptimum: import("zod").ZodDefault<import("zod").ZodNumber>;
2662
4914
  title: import("zod").ZodOptional<import("zod").ZodString>;
2663
4915
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2664
4916
  }, import("zod/v4/core").$strip>;
2665
4917
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2666
- light: number;
2667
- co2: number;
2668
- temperature: number;
2669
- tempOptimum: number;
2670
4918
  title?: string | undefined;
2671
4919
  prompt?: string | undefined;
2672
4920
  }>>;
2673
4921
  tag?: string;
2674
4922
  void?: boolean;
2675
4923
  toAttrs?: ((props: {
2676
- light: number;
2677
- co2: number;
2678
- temperature: number;
2679
- tempOptimum: number;
2680
4924
  title?: string | undefined;
2681
4925
  prompt?: string | undefined;
2682
4926
  }) => Record<string, unknown>) | undefined;
2683
4927
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2684
- light: number;
2685
- co2: number;
2686
- temperature: number;
2687
- tempOptimum: number;
2688
4928
  title?: string | undefined;
2689
4929
  prompt?: string | undefined;
2690
4930
  }>) | undefined;
@@ -2699,44 +4939,32 @@ declare const labGalleryItems: ({
2699
4939
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2700
4940
  slash?: boolean;
2701
4941
  schema: import("zod").ZodObject<{
2702
- parent1: import("zod").ZodDefault<import("zod").ZodString>;
2703
- parent2: import("zod").ZodDefault<import("zod").ZodString>;
2704
- alleleLetter: import("zod").ZodDefault<import("zod").ZodString>;
2705
- dominantLabel: import("zod").ZodDefault<import("zod").ZodString>;
2706
- recessiveLabel: import("zod").ZodDefault<import("zod").ZodString>;
2707
- predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
4942
+ pmos: import("zod").ZodDefault<import("zod").ZodBoolean>;
4943
+ vth: import("zod").ZodDefault<import("zod").ZodNumber>;
4944
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
2708
4945
  title: import("zod").ZodOptional<import("zod").ZodString>;
2709
4946
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2710
4947
  }, import("zod/v4/core").$strip>;
2711
4948
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2712
- parent1: string;
2713
- parent2: string;
2714
- alleleLetter: string;
2715
- dominantLabel: string;
2716
- recessiveLabel: string;
2717
- predictFirst: boolean;
4949
+ pmos: boolean;
4950
+ vth: number;
4951
+ k: number;
2718
4952
  title?: string | undefined;
2719
4953
  prompt?: string | undefined;
2720
4954
  }>>;
2721
4955
  tag?: string;
2722
4956
  void?: boolean;
2723
4957
  toAttrs?: ((props: {
2724
- parent1: string;
2725
- parent2: string;
2726
- alleleLetter: string;
2727
- dominantLabel: string;
2728
- recessiveLabel: string;
2729
- predictFirst: boolean;
4958
+ pmos: boolean;
4959
+ vth: number;
4960
+ k: number;
2730
4961
  title?: string | undefined;
2731
4962
  prompt?: string | undefined;
2732
4963
  }) => Record<string, unknown>) | undefined;
2733
4964
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2734
- parent1: string;
2735
- parent2: string;
2736
- alleleLetter: string;
2737
- dominantLabel: string;
2738
- recessiveLabel: string;
2739
- predictFirst: boolean;
4965
+ pmos: boolean;
4966
+ vth: number;
4967
+ k: number;
2740
4968
  title?: string | undefined;
2741
4969
  prompt?: string | undefined;
2742
4970
  }>) | undefined;
@@ -2751,27 +4979,28 @@ declare const labGalleryItems: ({
2751
4979
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2752
4980
  slash?: boolean;
2753
4981
  schema: import("zod").ZodObject<{
2754
- mode: import("zod").ZodDefault<import("zod").ZodEnum<{
2755
- day: "day";
2756
- night: "night";
2757
- }>>;
4982
+ pnp: import("zod").ZodDefault<import("zod").ZodBoolean>;
4983
+ beta: import("zod").ZodDefault<import("zod").ZodNumber>;
2758
4984
  title: import("zod").ZodOptional<import("zod").ZodString>;
2759
4985
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2760
4986
  }, import("zod/v4/core").$strip>;
2761
4987
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2762
- mode: "day" | "night";
4988
+ pnp: boolean;
4989
+ beta: number;
2763
4990
  title?: string | undefined;
2764
4991
  prompt?: string | undefined;
2765
4992
  }>>;
2766
4993
  tag?: string;
2767
4994
  void?: boolean;
2768
4995
  toAttrs?: ((props: {
2769
- mode: "day" | "night";
4996
+ pnp: boolean;
4997
+ beta: number;
2770
4998
  title?: string | undefined;
2771
4999
  prompt?: string | undefined;
2772
5000
  }) => Record<string, unknown>) | undefined;
2773
5001
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2774
- mode: "day" | "night";
5002
+ pnp: boolean;
5003
+ beta: number;
2775
5004
  title?: string | undefined;
2776
5005
  prompt?: string | undefined;
2777
5006
  }>) | undefined;
@@ -2786,98 +5015,40 @@ declare const labGalleryItems: ({
2786
5015
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2787
5016
  slash?: boolean;
2788
5017
  schema: import("zod").ZodObject<{
2789
- preset: import("zod").ZodDefault<import("zod").ZodEnum<{
2790
- custom: "custom";
2791
- monohybrid: "monohybrid";
2792
- "blood-type": "blood-type";
2793
- incomplete: "incomplete";
2794
- dihybrid: "dihybrid";
2795
- }>>;
2796
- spec: import("zod").ZodOptional<import("zod").ZodObject<{
2797
- trait: import("zod").ZodOptional<import("zod").ZodString>;
2798
- alleles: import("zod").ZodArray<import("zod").ZodObject<{
2799
- symbol: import("zod").ZodString;
2800
- rank: import("zod").ZodNumber;
2801
- trait: import("zod").ZodString;
2802
- }, import("zod/v4/core").$strip>>;
2803
- blends: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2804
- pair: import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>;
2805
- label: import("zod").ZodString;
2806
- color: import("zod").ZodOptional<import("zod").ZodString>;
2807
- }, import("zod/v4/core").$strip>>>;
2808
- colors: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
2809
- }, import("zod/v4/core").$strip>>;
2810
- parent1: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2811
- parent2: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2812
- predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
5018
+ emf: import("zod").ZodDefault<import("zod").ZodNumber>;
5019
+ rK: import("zod").ZodDefault<import("zod").ZodNumber>;
5020
+ capU: import("zod").ZodDefault<import("zod").ZodNumber>;
5021
+ leakK: import("zod").ZodDefault<import("zod").ZodNumber>;
5022
+ startCharged: import("zod").ZodOptional<import("zod").ZodBoolean>;
2813
5023
  title: import("zod").ZodOptional<import("zod").ZodString>;
2814
5024
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2815
5025
  }, import("zod/v4/core").$strip>;
2816
5026
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2817
- preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
2818
- predictFirst: boolean;
2819
- spec?: {
2820
- alleles: {
2821
- symbol: string;
2822
- rank: number;
2823
- trait: string;
2824
- }[];
2825
- trait?: string | undefined;
2826
- blends?: {
2827
- pair: [string, string];
2828
- label: string;
2829
- color?: string | undefined;
2830
- }[] | undefined;
2831
- colors?: Record<string, string> | undefined;
2832
- } | undefined;
2833
- parent1?: string[] | undefined;
2834
- parent2?: string[] | undefined;
5027
+ emf: number;
5028
+ rK: number;
5029
+ capU: number;
5030
+ leakK: number;
5031
+ startCharged?: boolean | undefined;
2835
5032
  title?: string | undefined;
2836
5033
  prompt?: string | undefined;
2837
5034
  }>>;
2838
5035
  tag?: string;
2839
5036
  void?: boolean;
2840
5037
  toAttrs?: ((props: {
2841
- preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
2842
- predictFirst: boolean;
2843
- spec?: {
2844
- alleles: {
2845
- symbol: string;
2846
- rank: number;
2847
- trait: string;
2848
- }[];
2849
- trait?: string | undefined;
2850
- blends?: {
2851
- pair: [string, string];
2852
- label: string;
2853
- color?: string | undefined;
2854
- }[] | undefined;
2855
- colors?: Record<string, string> | undefined;
2856
- } | undefined;
2857
- parent1?: string[] | undefined;
2858
- parent2?: string[] | undefined;
5038
+ emf: number;
5039
+ rK: number;
5040
+ capU: number;
5041
+ leakK: number;
5042
+ startCharged?: boolean | undefined;
2859
5043
  title?: string | undefined;
2860
5044
  prompt?: string | undefined;
2861
5045
  }) => Record<string, unknown>) | undefined;
2862
5046
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2863
- preset: "custom" | "monohybrid" | "blood-type" | "incomplete" | "dihybrid";
2864
- predictFirst: boolean;
2865
- spec?: {
2866
- alleles: {
2867
- symbol: string;
2868
- rank: number;
2869
- trait: string;
2870
- }[];
2871
- trait?: string | undefined;
2872
- blends?: {
2873
- pair: [string, string];
2874
- label: string;
2875
- color?: string | undefined;
2876
- }[] | undefined;
2877
- colors?: Record<string, string> | undefined;
2878
- } | undefined;
2879
- parent1?: string[] | undefined;
2880
- parent2?: string[] | undefined;
5047
+ emf: number;
5048
+ rK: number;
5049
+ capU: number;
5050
+ leakK: number;
5051
+ startCharged?: boolean | undefined;
2881
5052
  title?: string | undefined;
2882
5053
  prompt?: string | undefined;
2883
5054
  }>) | undefined;
@@ -2892,32 +5063,40 @@ declare const labGalleryItems: ({
2892
5063
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2893
5064
  slash?: boolean;
2894
5065
  schema: import("zod").ZodObject<{
2895
- kind: import("zod").ZodDefault<import("zod").ZodEnum<{
2896
- replication: "replication";
2897
- transcription: "transcription";
2898
- translation: "translation";
5066
+ volts: import("zod").ZodOptional<import("zod").ZodNumber>;
5067
+ resistanceK: import("zod").ZodOptional<import("zod").ZodNumber>;
5068
+ capacitanceU: import("zod").ZodOptional<import("zod").ZodNumber>;
5069
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
5070
+ graph: "graph";
5071
+ circuit: "circuit";
5072
+ both: "both";
2899
5073
  }>>;
2900
- template: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2901
5074
  title: import("zod").ZodOptional<import("zod").ZodString>;
2902
5075
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2903
5076
  }, import("zod/v4/core").$strip>;
2904
5077
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2905
- kind: "replication" | "transcription" | "translation";
2906
- template?: string[] | undefined;
5078
+ volts?: number | undefined;
5079
+ resistanceK?: number | undefined;
5080
+ capacitanceU?: number | undefined;
5081
+ show?: "graph" | "circuit" | "both" | undefined;
2907
5082
  title?: string | undefined;
2908
5083
  prompt?: string | undefined;
2909
5084
  }>>;
2910
5085
  tag?: string;
2911
5086
  void?: boolean;
2912
5087
  toAttrs?: ((props: {
2913
- kind: "replication" | "transcription" | "translation";
2914
- template?: string[] | undefined;
5088
+ volts?: number | undefined;
5089
+ resistanceK?: number | undefined;
5090
+ capacitanceU?: number | undefined;
5091
+ show?: "graph" | "circuit" | "both" | undefined;
2915
5092
  title?: string | undefined;
2916
5093
  prompt?: string | undefined;
2917
5094
  }) => Record<string, unknown>) | undefined;
2918
5095
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2919
- kind: "replication" | "transcription" | "translation";
2920
- template?: string[] | undefined;
5096
+ volts?: number | undefined;
5097
+ resistanceK?: number | undefined;
5098
+ capacitanceU?: number | undefined;
5099
+ show?: "graph" | "circuit" | "both" | undefined;
2921
5100
  title?: string | undefined;
2922
5101
  prompt?: string | undefined;
2923
5102
  }>) | undefined;
@@ -2932,44 +5111,36 @@ declare const labGalleryItems: ({
2932
5111
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2933
5112
  slash?: boolean;
2934
5113
  schema: import("zod").ZodObject<{
2935
- allele: import("zod").ZodDefault<import("zod").ZodString>;
2936
- dominant: import("zod").ZodDefault<import("zod").ZodString>;
2937
- recessive: import("zod").ZodDefault<import("zod").ZodString>;
2938
- mother: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>>;
2939
- father: import("zod").ZodOptional<import("zod").ZodString>;
2940
- predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
5114
+ volts: import("zod").ZodOptional<import("zod").ZodNumber>;
5115
+ resistanceK: import("zod").ZodOptional<import("zod").ZodNumber>;
5116
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
5117
+ graph: "graph";
5118
+ circuit: "circuit";
5119
+ both: "both";
5120
+ }>>;
2941
5121
  title: import("zod").ZodOptional<import("zod").ZodString>;
2942
5122
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2943
5123
  }, import("zod/v4/core").$strip>;
2944
5124
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2945
- allele: string;
2946
- dominant: string;
2947
- recessive: string;
2948
- predictFirst: boolean;
2949
- mother?: [string, string] | undefined;
2950
- father?: string | undefined;
5125
+ volts?: number | undefined;
5126
+ resistanceK?: number | undefined;
5127
+ show?: "graph" | "circuit" | "both" | undefined;
2951
5128
  title?: string | undefined;
2952
- prompt?: string | undefined;
2953
- }>>;
2954
- tag?: string;
2955
- void?: boolean;
2956
- toAttrs?: ((props: {
2957
- allele: string;
2958
- dominant: string;
2959
- recessive: string;
2960
- predictFirst: boolean;
2961
- mother?: [string, string] | undefined;
2962
- father?: string | undefined;
5129
+ prompt?: string | undefined;
5130
+ }>>;
5131
+ tag?: string;
5132
+ void?: boolean;
5133
+ toAttrs?: ((props: {
5134
+ volts?: number | undefined;
5135
+ resistanceK?: number | undefined;
5136
+ show?: "graph" | "circuit" | "both" | undefined;
2963
5137
  title?: string | undefined;
2964
5138
  prompt?: string | undefined;
2965
5139
  }) => Record<string, unknown>) | undefined;
2966
5140
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2967
- allele: string;
2968
- dominant: string;
2969
- recessive: string;
2970
- predictFirst: boolean;
2971
- mother?: [string, string] | undefined;
2972
- father?: string | undefined;
5141
+ volts?: number | undefined;
5142
+ resistanceK?: number | undefined;
5143
+ show?: "graph" | "circuit" | "both" | undefined;
2973
5144
  title?: string | undefined;
2974
5145
  prompt?: string | undefined;
2975
5146
  }>) | undefined;
@@ -2984,24 +5155,40 @@ declare const labGalleryItems: ({
2984
5155
  category?: import("@classytic/cms-ui/contract").BlockCategory;
2985
5156
  slash?: boolean;
2986
5157
  schema: import("zod").ZodObject<{
2987
- dna: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
5158
+ supply: import("zod").ZodOptional<import("zod").ZodNumber>;
5159
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
5160
+ loadK: import("zod").ZodOptional<import("zod").ZodNumber>;
5161
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
5162
+ graph: "graph";
5163
+ circuit: "circuit";
5164
+ both: "both";
5165
+ }>>;
2988
5166
  title: import("zod").ZodOptional<import("zod").ZodString>;
2989
5167
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
2990
5168
  }, import("zod/v4/core").$strip>;
2991
5169
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2992
- dna?: string[] | undefined;
5170
+ supply?: number | undefined;
5171
+ vth?: number | undefined;
5172
+ loadK?: number | undefined;
5173
+ show?: "graph" | "circuit" | "both" | undefined;
2993
5174
  title?: string | undefined;
2994
5175
  prompt?: string | undefined;
2995
5176
  }>>;
2996
5177
  tag?: string;
2997
5178
  void?: boolean;
2998
5179
  toAttrs?: ((props: {
2999
- dna?: string[] | undefined;
5180
+ supply?: number | undefined;
5181
+ vth?: number | undefined;
5182
+ loadK?: number | undefined;
5183
+ show?: "graph" | "circuit" | "both" | undefined;
3000
5184
  title?: string | undefined;
3001
5185
  prompt?: string | undefined;
3002
5186
  }) => Record<string, unknown>) | undefined;
3003
5187
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3004
- dna?: string[] | undefined;
5188
+ supply?: number | undefined;
5189
+ vth?: number | undefined;
5190
+ loadK?: number | undefined;
5191
+ show?: "graph" | "circuit" | "both" | undefined;
3005
5192
  title?: string | undefined;
3006
5193
  prompt?: string | undefined;
3007
5194
  }>) | undefined;
@@ -3016,37 +5203,34 @@ declare const labGalleryItems: ({
3016
5203
  category?: import("@classytic/cms-ui/contract").BlockCategory;
3017
5204
  slash?: boolean;
3018
5205
  schema: import("zod").ZodObject<{
3019
- voltage: import("zod").ZodOptional<import("zod").ZodNumber>;
3020
- r1: import("zod").ZodOptional<import("zod").ZodNumber>;
3021
- r2: import("zod").ZodOptional<import("zod").ZodNumber>;
3022
- mode: import("zod").ZodOptional<import("zod").ZodEnum<{
3023
- series: "series";
3024
- parallel: "parallel";
3025
- }>>;
5206
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
5207
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
5208
+ rpull: import("zod").ZodOptional<import("zod").ZodNumber>;
3026
5209
  title: import("zod").ZodOptional<import("zod").ZodString>;
5210
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3027
5211
  }, import("zod/v4/core").$strip>;
3028
5212
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3029
- voltage?: number | undefined;
3030
- r1?: number | undefined;
3031
- r2?: number | undefined;
3032
- mode?: "series" | "parallel" | undefined;
5213
+ vdd?: number | undefined;
5214
+ vth?: number | undefined;
5215
+ rpull?: number | undefined;
3033
5216
  title?: string | undefined;
5217
+ prompt?: string | undefined;
3034
5218
  }>>;
3035
5219
  tag?: string;
3036
5220
  void?: boolean;
3037
5221
  toAttrs?: ((props: {
3038
- voltage?: number | undefined;
3039
- r1?: number | undefined;
3040
- r2?: number | undefined;
3041
- mode?: "series" | "parallel" | undefined;
5222
+ vdd?: number | undefined;
5223
+ vth?: number | undefined;
5224
+ rpull?: number | undefined;
3042
5225
  title?: string | undefined;
5226
+ prompt?: string | undefined;
3043
5227
  }) => Record<string, unknown>) | undefined;
3044
5228
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3045
- voltage?: number | undefined;
3046
- r1?: number | undefined;
3047
- r2?: number | undefined;
3048
- mode?: "series" | "parallel" | undefined;
5229
+ vdd?: number | undefined;
5230
+ vth?: number | undefined;
5231
+ rpull?: number | undefined;
3049
5232
  title?: string | undefined;
5233
+ prompt?: string | undefined;
3050
5234
  }>) | undefined;
3051
5235
  } | {
3052
5236
  group: string;
@@ -3059,26 +5243,38 @@ declare const labGalleryItems: ({
3059
5243
  category?: import("@classytic/cms-ui/contract").BlockCategory;
3060
5244
  slash?: boolean;
3061
5245
  schema: import("zod").ZodObject<{
3062
- battery: import("zod").ZodOptional<import("zod").ZodNumber>;
3063
- components: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
5246
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
5247
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
5248
+ show: import("zod").ZodOptional<import("zod").ZodEnum<{
5249
+ graph: "graph";
5250
+ circuit: "circuit";
5251
+ both: "both";
5252
+ }>>;
3064
5253
  title: import("zod").ZodOptional<import("zod").ZodString>;
5254
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3065
5255
  }, import("zod/v4/core").$strip>;
3066
5256
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3067
- battery?: number | undefined;
3068
- components?: Record<string, unknown>[] | undefined;
5257
+ vdd?: number | undefined;
5258
+ vth?: number | undefined;
5259
+ show?: "graph" | "circuit" | "both" | undefined;
3069
5260
  title?: string | undefined;
5261
+ prompt?: string | undefined;
3070
5262
  }>>;
3071
5263
  tag?: string;
3072
5264
  void?: boolean;
3073
5265
  toAttrs?: ((props: {
3074
- battery?: number | undefined;
3075
- components?: Record<string, unknown>[] | undefined;
5266
+ vdd?: number | undefined;
5267
+ vth?: number | undefined;
5268
+ show?: "graph" | "circuit" | "both" | undefined;
3076
5269
  title?: string | undefined;
5270
+ prompt?: string | undefined;
3077
5271
  }) => Record<string, unknown>) | undefined;
3078
5272
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3079
- battery?: number | undefined;
3080
- components?: Record<string, unknown>[] | undefined;
5273
+ vdd?: number | undefined;
5274
+ vth?: number | undefined;
5275
+ show?: "graph" | "circuit" | "both" | undefined;
3081
5276
  title?: string | undefined;
5277
+ prompt?: string | undefined;
3082
5278
  }>) | undefined;
3083
5279
  } | {
3084
5280
  group: string;
@@ -3091,30 +5287,30 @@ declare const labGalleryItems: ({
3091
5287
  category?: import("@classytic/cms-ui/contract").BlockCategory;
3092
5288
  slash?: boolean;
3093
5289
  schema: import("zod").ZodObject<{
3094
- emf: import("zod").ZodDefault<import("zod").ZodNumber>;
3095
- bulbOhms: import("zod").ZodDefault<import("zod").ZodNumber>;
3096
- withSwitch: import("zod").ZodDefault<import("zod").ZodBoolean>;
3097
- controlId: import("zod").ZodOptional<import("zod").ZodString>;
5290
+ vdd: import("zod").ZodOptional<import("zod").ZodNumber>;
5291
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
5292
+ title: import("zod").ZodOptional<import("zod").ZodString>;
5293
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3098
5294
  }, import("zod/v4/core").$strip>;
3099
5295
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3100
- emf: number;
3101
- bulbOhms: number;
3102
- withSwitch: boolean;
3103
- controlId?: string | undefined;
5296
+ vdd?: number | undefined;
5297
+ vth?: number | undefined;
5298
+ title?: string | undefined;
5299
+ prompt?: string | undefined;
3104
5300
  }>>;
3105
5301
  tag?: string;
3106
5302
  void?: boolean;
3107
5303
  toAttrs?: ((props: {
3108
- emf: number;
3109
- bulbOhms: number;
3110
- withSwitch: boolean;
3111
- controlId?: string | undefined;
5304
+ vdd?: number | undefined;
5305
+ vth?: number | undefined;
5306
+ title?: string | undefined;
5307
+ prompt?: string | undefined;
3112
5308
  }) => Record<string, unknown>) | undefined;
3113
5309
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3114
- emf: number;
3115
- bulbOhms: number;
3116
- withSwitch: boolean;
3117
- controlId?: string | undefined;
5310
+ vdd?: number | undefined;
5311
+ vth?: number | undefined;
5312
+ title?: string | undefined;
5313
+ prompt?: string | undefined;
3118
5314
  }>) | undefined;
3119
5315
  } | {
3120
5316
  group: string;
@@ -3127,40 +5323,28 @@ declare const labGalleryItems: ({
3127
5323
  category?: import("@classytic/cms-ui/contract").BlockCategory;
3128
5324
  slash?: boolean;
3129
5325
  schema: import("zod").ZodObject<{
3130
- emf: import("zod").ZodDefault<import("zod").ZodNumber>;
3131
- rK: import("zod").ZodDefault<import("zod").ZodNumber>;
3132
- capU: import("zod").ZodDefault<import("zod").ZodNumber>;
3133
- leakK: import("zod").ZodDefault<import("zod").ZodNumber>;
3134
- startCharged: import("zod").ZodOptional<import("zod").ZodBoolean>;
5326
+ vth: import("zod").ZodOptional<import("zod").ZodNumber>;
5327
+ vmax: import("zod").ZodOptional<import("zod").ZodNumber>;
3135
5328
  title: import("zod").ZodOptional<import("zod").ZodString>;
3136
5329
  prompt: import("zod").ZodOptional<import("zod").ZodString>;
3137
5330
  }, import("zod/v4/core").$strip>;
3138
5331
  Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3139
- emf: number;
3140
- rK: number;
3141
- capU: number;
3142
- leakK: number;
3143
- startCharged?: boolean | undefined;
5332
+ vth?: number | undefined;
5333
+ vmax?: number | undefined;
3144
5334
  title?: string | undefined;
3145
5335
  prompt?: string | undefined;
3146
5336
  }>>;
3147
5337
  tag?: string;
3148
5338
  void?: boolean;
3149
5339
  toAttrs?: ((props: {
3150
- emf: number;
3151
- rK: number;
3152
- capU: number;
3153
- leakK: number;
3154
- startCharged?: boolean | undefined;
5340
+ vth?: number | undefined;
5341
+ vmax?: number | undefined;
3155
5342
  title?: string | undefined;
3156
5343
  prompt?: string | undefined;
3157
5344
  }) => Record<string, unknown>) | undefined;
3158
5345
  fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3159
- emf: number;
3160
- rK: number;
3161
- capU: number;
3162
- leakK: number;
3163
- startCharged?: boolean | undefined;
5346
+ vth?: number | undefined;
5347
+ vmax?: number | undefined;
3164
5348
  title?: string | undefined;
3165
5349
  prompt?: string | undefined;
3166
5350
  }>) | undefined;
@@ -3384,6 +5568,145 @@ declare const labGalleryItems: ({
3384
5568
  title?: string | undefined;
3385
5569
  prompt?: string | undefined;
3386
5570
  }>) | undefined;
5571
+ } | {
5572
+ group: string;
5573
+ key: string;
5574
+ label: string;
5575
+ icon?: import("react").ComponentType<{
5576
+ className?: string;
5577
+ }>;
5578
+ description?: string;
5579
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
5580
+ slash?: boolean;
5581
+ schema: import("zod").ZodObject<{
5582
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
5583
+ and: "and";
5584
+ or: "or";
5585
+ xor: "xor";
5586
+ "nand-not": "nand-not";
5587
+ "nand-and": "nand-and";
5588
+ "nand-or": "nand-or";
5589
+ "xor-nand": "xor-nand";
5590
+ "half-adder": "half-adder";
5591
+ "full-adder": "full-adder";
5592
+ }>>;
5593
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
5594
+ predict: "predict";
5595
+ explore: "explore";
5596
+ }>>;
5597
+ steps: import("zod").ZodDefault<import("zod").ZodBoolean>;
5598
+ showTable: import("zod").ZodDefault<import("zod").ZodBoolean>;
5599
+ title: import("zod").ZodOptional<import("zod").ZodString>;
5600
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
5601
+ }, import("zod/v4/core").$strip>;
5602
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
5603
+ preset: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "xor-nand" | "half-adder" | "full-adder";
5604
+ mode: "predict" | "explore";
5605
+ steps: boolean;
5606
+ showTable: boolean;
5607
+ title?: string | undefined;
5608
+ prompt?: string | undefined;
5609
+ }>>;
5610
+ tag?: string;
5611
+ void?: boolean;
5612
+ toAttrs?: ((props: {
5613
+ preset: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "xor-nand" | "half-adder" | "full-adder";
5614
+ mode: "predict" | "explore";
5615
+ steps: boolean;
5616
+ showTable: boolean;
5617
+ title?: string | undefined;
5618
+ prompt?: string | undefined;
5619
+ }) => Record<string, unknown>) | undefined;
5620
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
5621
+ preset: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "xor-nand" | "half-adder" | "full-adder";
5622
+ mode: "predict" | "explore";
5623
+ steps: boolean;
5624
+ showTable: boolean;
5625
+ title?: string | undefined;
5626
+ prompt?: string | undefined;
5627
+ }>) | undefined;
5628
+ } | {
5629
+ group: string;
5630
+ key: string;
5631
+ label: string;
5632
+ icon?: import("react").ComponentType<{
5633
+ className?: string;
5634
+ }>;
5635
+ description?: string;
5636
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
5637
+ slash?: boolean;
5638
+ schema: import("zod").ZodObject<{
5639
+ bits: import("zod").ZodDefault<import("zod").ZodNumber>;
5640
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
5641
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
5642
+ title: import("zod").ZodOptional<import("zod").ZodString>;
5643
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
5644
+ }, import("zod/v4/core").$strip>;
5645
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
5646
+ bits: number;
5647
+ start: number;
5648
+ target?: number | undefined;
5649
+ title?: string | undefined;
5650
+ prompt?: string | undefined;
5651
+ }>>;
5652
+ tag?: string;
5653
+ void?: boolean;
5654
+ toAttrs?: ((props: {
5655
+ bits: number;
5656
+ start: number;
5657
+ target?: number | undefined;
5658
+ title?: string | undefined;
5659
+ prompt?: string | undefined;
5660
+ }) => Record<string, unknown>) | undefined;
5661
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
5662
+ bits: number;
5663
+ start: number;
5664
+ target?: number | undefined;
5665
+ title?: string | undefined;
5666
+ prompt?: string | undefined;
5667
+ }>) | undefined;
5668
+ } | {
5669
+ group: string;
5670
+ key: string;
5671
+ label: string;
5672
+ icon?: import("react").ComponentType<{
5673
+ className?: string;
5674
+ }>;
5675
+ description?: string;
5676
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
5677
+ slash?: boolean;
5678
+ schema: import("zod").ZodObject<{
5679
+ goal: import("zod").ZodDefault<import("zod").ZodEnum<{
5680
+ and: "and";
5681
+ or: "or";
5682
+ xor: "xor";
5683
+ "nand-not": "nand-not";
5684
+ "nand-and": "nand-and";
5685
+ "nand-or": "nand-or";
5686
+ "half-adder": "half-adder";
5687
+ "full-adder": "full-adder";
5688
+ sandbox: "sandbox";
5689
+ }>>;
5690
+ title: import("zod").ZodOptional<import("zod").ZodString>;
5691
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
5692
+ }, import("zod/v4/core").$strip>;
5693
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
5694
+ goal: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "half-adder" | "full-adder" | "sandbox";
5695
+ title?: string | undefined;
5696
+ prompt?: string | undefined;
5697
+ }>>;
5698
+ tag?: string;
5699
+ void?: boolean;
5700
+ toAttrs?: ((props: {
5701
+ goal: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "half-adder" | "full-adder" | "sandbox";
5702
+ title?: string | undefined;
5703
+ prompt?: string | undefined;
5704
+ }) => Record<string, unknown>) | undefined;
5705
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
5706
+ goal: "and" | "or" | "xor" | "nand-not" | "nand-and" | "nand-or" | "half-adder" | "full-adder" | "sandbox";
5707
+ title?: string | undefined;
5708
+ prompt?: string | undefined;
5709
+ }>) | undefined;
3387
5710
  } | {
3388
5711
  group: string;
3389
5712
  key: string;
@@ -3594,7 +5917,7 @@ declare const labGalleryItems: ({
3594
5917
  a: "a";
3595
5918
  an: "an";
3596
5919
  the: "the";
3597
- "\u2014": "—";
5920
+ ", ": ", ";
3598
5921
  }>;
3599
5922
  why: import("zod").ZodOptional<import("zod").ZodString>;
3600
5923
  }, import("zod/v4/core").$strip>>>;
@@ -3607,7 +5930,7 @@ declare const labGalleryItems: ({
3607
5930
  items: {
3608
5931
  before: string;
3609
5932
  noun: string;
3610
- answer: "a" | "an" | "the" | "—";
5933
+ answer: "a" | "an" | "the" | ", ";
3611
5934
  after?: string | undefined;
3612
5935
  why?: string | undefined;
3613
5936
  }[];
@@ -3622,7 +5945,7 @@ declare const labGalleryItems: ({
3622
5945
  items: {
3623
5946
  before: string;
3624
5947
  noun: string;
3625
- answer: "a" | "an" | "the" | "—";
5948
+ answer: "a" | "an" | "the" | ", ";
3626
5949
  after?: string | undefined;
3627
5950
  why?: string | undefined;
3628
5951
  }[];
@@ -3635,7 +5958,7 @@ declare const labGalleryItems: ({
3635
5958
  items: {
3636
5959
  before: string;
3637
5960
  noun: string;
3638
- answer: "a" | "an" | "the" | "—";
5961
+ answer: "a" | "an" | "the" | ", ";
3639
5962
  after?: string | undefined;
3640
5963
  why?: string | undefined;
3641
5964
  }[];
@@ -3810,16 +6133,16 @@ declare const labGalleryItems: ({
3810
6133
  options: import("zod").ZodArray<import("zod").ZodString>;
3811
6134
  scene: import("zod").ZodEnum<{
3812
6135
  in: "in";
3813
- at: "at";
3814
- between: "between";
3815
6136
  on: "on";
3816
6137
  over: "over";
3817
6138
  above: "above";
3818
6139
  under: "under";
3819
6140
  below: "below";
3820
6141
  beside: "beside";
6142
+ between: "between";
3821
6143
  behind: "behind";
3822
6144
  infront: "infront";
6145
+ at: "at";
3823
6146
  }>;
3824
6147
  figure: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
3825
6148
  kind: import("zod").ZodEnum<{
@@ -3852,7 +6175,7 @@ declare const labGalleryItems: ({
3852
6175
  noun: string;
3853
6176
  answer: string;
3854
6177
  options: string[];
3855
- scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
6178
+ scene: "in" | "on" | "over" | "above" | "under" | "below" | "beside" | "between" | "behind" | "infront" | "at";
3856
6179
  figure?: string | {
3857
6180
  kind: "emoji" | "svg" | "image";
3858
6181
  alt: string;
@@ -3878,7 +6201,7 @@ declare const labGalleryItems: ({
3878
6201
  noun: string;
3879
6202
  answer: string;
3880
6203
  options: string[];
3881
- scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
6204
+ scene: "in" | "on" | "over" | "above" | "under" | "below" | "beside" | "between" | "behind" | "infront" | "at";
3882
6205
  figure?: string | {
3883
6206
  kind: "emoji" | "svg" | "image";
3884
6207
  alt: string;
@@ -3902,7 +6225,7 @@ declare const labGalleryItems: ({
3902
6225
  noun: string;
3903
6226
  answer: string;
3904
6227
  options: string[];
3905
- scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
6228
+ scene: "in" | "on" | "over" | "above" | "under" | "below" | "beside" | "between" | "behind" | "infront" | "at";
3906
6229
  figure?: string | {
3907
6230
  kind: "emoji" | "svg" | "image";
3908
6231
  alt: string;
@@ -4550,6 +6873,90 @@ declare const labGalleryItems: ({
4550
6873
  title?: string | undefined;
4551
6874
  prompt?: string | undefined;
4552
6875
  }>) | undefined;
6876
+ } | {
6877
+ group: string;
6878
+ key: string;
6879
+ label: string;
6880
+ icon?: import("react").ComponentType<{
6881
+ className?: string;
6882
+ }>;
6883
+ description?: string;
6884
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
6885
+ slash?: boolean;
6886
+ schema: import("zod").ZodObject<{
6887
+ dataset: import("zod").ZodDefault<import("zod").ZodEnum<{
6888
+ xor: "xor";
6889
+ separable: "separable";
6890
+ overlap: "overlap";
6891
+ }>>;
6892
+ seed: import("zod").ZodDefault<import("zod").ZodNumber>;
6893
+ title: import("zod").ZodOptional<import("zod").ZodString>;
6894
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
6895
+ }, import("zod/v4/core").$strip>;
6896
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
6897
+ dataset: "xor" | "separable" | "overlap";
6898
+ seed: number;
6899
+ title?: string | undefined;
6900
+ prompt?: string | undefined;
6901
+ }>>;
6902
+ tag?: string;
6903
+ void?: boolean;
6904
+ toAttrs?: ((props: {
6905
+ dataset: "xor" | "separable" | "overlap";
6906
+ seed: number;
6907
+ title?: string | undefined;
6908
+ prompt?: string | undefined;
6909
+ }) => Record<string, unknown>) | undefined;
6910
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
6911
+ dataset: "xor" | "separable" | "overlap";
6912
+ seed: number;
6913
+ title?: string | undefined;
6914
+ prompt?: string | undefined;
6915
+ }>) | undefined;
6916
+ } | {
6917
+ group: string;
6918
+ key: string;
6919
+ label: string;
6920
+ icon?: import("react").ComponentType<{
6921
+ className?: string;
6922
+ }>;
6923
+ description?: string;
6924
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
6925
+ slash?: boolean;
6926
+ schema: import("zod").ZodObject<{
6927
+ dataset: import("zod").ZodDefault<import("zod").ZodEnum<{
6928
+ xor: "xor";
6929
+ blobs: "blobs";
6930
+ circles: "circles";
6931
+ }>>;
6932
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
6933
+ seed: import("zod").ZodDefault<import("zod").ZodNumber>;
6934
+ title: import("zod").ZodOptional<import("zod").ZodString>;
6935
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
6936
+ }, import("zod/v4/core").$strip>;
6937
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
6938
+ dataset: "xor" | "blobs" | "circles";
6939
+ k: number;
6940
+ seed: number;
6941
+ title?: string | undefined;
6942
+ prompt?: string | undefined;
6943
+ }>>;
6944
+ tag?: string;
6945
+ void?: boolean;
6946
+ toAttrs?: ((props: {
6947
+ dataset: "xor" | "blobs" | "circles";
6948
+ k: number;
6949
+ seed: number;
6950
+ title?: string | undefined;
6951
+ prompt?: string | undefined;
6952
+ }) => Record<string, unknown>) | undefined;
6953
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
6954
+ dataset: "xor" | "blobs" | "circles";
6955
+ k: number;
6956
+ seed: number;
6957
+ title?: string | undefined;
6958
+ prompt?: string | undefined;
6959
+ }>) | undefined;
4553
6960
  })[];
4554
6961
  //#endregion
4555
- export { AgreementBlock, AreaModelBlock, ArrangementsBlock, ArticleLensBlock, AtwoodBlock, BalanceAlgebraBlock, BaseOdometerBlock, BatteryBlock, BayesBlock, BinomialBlock, BitGrouperBlock, BohrAtomBlock, BooleanCircuitBlock, BulletWallsBlock, CapacitorLeakBlock, CarnotBlock, CenterSpreadBlock, CentralDogmaBlock, CircuitBlock, CircuitBuilderBlock, CircuitLabBlock, CircuitPuzzle, CircularMotionBlock, ClassifierThresholdBlock, CollisionTrackBlock, CountingSlotsBlock, CountingTreeBlock, CycleBlock, DemandShiftVsMoveBlock, DerivationBlock, DerivativeExplorerBlock, DilutionBlock, DopplerBlock, EfficiencyBlock, ElasticityRevenueBlock, ElectrochemBlock, EnergySkateBlock, EntropyBlock, EnzymeRateBlock, EquationBalanceBlock, ExpectedValueBlock, GaltonBlock, GasBoxBlock, GasProcessBlock, GeneticCrossBlock, GeometryBoardBlock, GradientDescentBlock, GraphBlock, GravitationBlock, GravityDropBlock, GrowingPatternBlock, HeatTransferBlock, HeatingCurveBlock, HistogramBlock, HypergeometricBlock, ImpulseBlock, IntegralExplorerBlock, InteractiveProblemBlock, IntersectingCirclesBlock, JournalPosterBlock, KMeansBlock, KarnaughBlock, KeplerBlock, KineticsBlock, LabConfig, type LabConfigProps, LabGallery, type LabGalleryProps, type LabPickItem, LawOfLargeNumbersBlock, LeChatelierBlock, LeverBlock, LeverPuzzle, LimitExplorerBlock, LinearSystemBlock, LinearSystemView, LorentzBlock, MagnetismBlock, MarketEquilibriumBlock, MonteCarloBlock, MontyHallBlock, MysteryBucketBlock, NormalBlock, NumberLineBlock, OpticsBlock, OrbitLabBlock, OutcomeBuilderBlock, PascalBlock, PeriodicTrendsBlock, PhotosynthesisFactorsBlock, PlaceValueDialBlock, PredictBlock, PredictWidget, PrepositionBlock, ProjectileLabBlock, PunnettCrossBlock, RainRelativeBlock, RampForcesBlock, ReactionLabBlock, ReactionProfileBlock, RegressionBlock, RespirationBlock, RippleTankBlock, RiverBoatBlock, SampleSpaceBlock, SamplingBlock, SelectionBlock, SentenceBuilderBlock, SequenceBlock, SeriesBlock, SexLinkedCrossBlock, SimpleHarmonicBlock, SolutionBoxBlock, StatementSorterBlock, StoichiometryBlock, StoppingDistanceBlock, StringReflectionBlock, TemperatureScalesBlock, TerminalVelocityBlock, ThermalExpansionBlock, TitrationBlock, TransformBlock, TriangleTrigBlock, TrigExplorerBlock, TruthTableBlock, VectorBoardBlock, VectorTypesBlock, VennBlock, VertexParabolaBlock, WaterDensityBlock, WaveBlock, WordMatchBlock, ZTableBlock, accountingBlocks, accountingComponents, biologyBlocks, biologyComponents, chemBlocks, chemComponents, circuitsBlocks, circuitsComponents, coerceArray, discreteBlocks, discreteComponents, economicsBlocks, economicsComponents, geographyBlocks, geographyComponents, geometryBlocks, geometryComponents, ictBlocks, ictComponents, labGalleryItems, labsBlocks, labsComponents, languageBlocks, languageComponents, lessonBlocks, lessonComponents, mathBlocks, mathComponents, mlBlocks, mlComponents, physicsBlocks, physicsComponents, statisticsBlocks, statisticsComponents };
6962
+ export { AgreementBlock, AreaModelBlock, ArrangementsBlock, ArticleLensBlock, AtwoodBlock, BalanceAlgebraBlock, BaseOdometerBlock, BatteryBlock, BayesBlock, BinaryDisplayBlock, BinomialBlock, BitGrouperBlock, BjtInsideBlock, BohrAtomBlock, BooleanCircuitBlock, BrownoutBlock, BulletWallsBlock, CapacitorLeakBlock, CarnotBlock, CenterSpreadBlock, CentralDogmaBlock, CircleBlock, CircuitBlock, CircuitBuilderBlock, CircuitLabBlock, CircuitPuzzle, CircuitSceneBlock, CircuitSceneView, CircularMotionBlock, ClassifierThresholdBlock, CmosInverterBlock, CmosNandBlock, CmosNorBlock, CollisionTrackBlock, CombinationStudioBlock, ComplexPlaneBlock, ConductionBlock, ConicBlock, CountingSlotsBlock, CountingTreeBlock, CustomSceneBlock, CycleBlock, DecisionBoundaryBlock, DemandShiftVsMoveBlock, DerivationBlock, DerivativeExplorerBlock, DilutionBlock, DiodeBlock, DomainRangeBlock, DopplerBlock, EfficiencyBlock, ElasticityRevenueBlock, ElectricFieldBlock, ElectricFluxBlock, ElectrochemBlock, EnergySkateBlock, EntropyBlock, EnzymeRateBlock, EquationBalanceBlock, ExpectedValueBlock, FractionBarBlock, GaltonBlock, GasBoxBlock, GasProcessBlock, GaussLawBlock, GeneticCrossBlock, GeoTransformBlock, GeometryBoardBlock, GradientDescentBlock, GraphBlock, GravitationBlock, GravityDropBlock, GrowingPatternBlock, HallEffectBlock, HeatTransferBlock, HeatingCurveBlock, HistogramBlock, HypergeometricBlock, ImpulseBlock, IntegralExplorerBlock, InteractiveProblemBlock, IntersectingCirclesBlock, JournalPosterBlock, KMeansBlock, KarnaughBlock, KeplerBlock, KineticsBlock, KnnBoundaryBlock, LabConfig, type LabConfigProps, LabGallery, type LabGalleryProps, type LabPickItem, LawOfLargeNumbersBlock, LeChatelierBlock, LeverBlock, LeverPuzzle, LimitExplorerBlock, LinearModelBlock, LinearSystemBlock, LinearSystemView, LogicBuilderBlock, LogicGateBlock, LorentzBlock, MagnetismBlock, MarketEquilibriumBlock, MonteCarloBlock, MontyHallBlock, MosfetInsideBlock, MysteryBucketBlock, NormalBlock, NumberLineBlock, OpticsBlock, OrbitLabBlock, OutcomeBuilderBlock, PascalBlock, PercentBarBlock, PeriodicTrendsBlock, PhotosynthesisFactorsBlock, PlaceValueDialBlock, PnJunctionBlock, PolynomialSolverBlock, PredictBlock, PredictWidget, PrepositionBlock, ProjectileLabBlock, PunnettCrossBlock, RCChargingBlock, RNmosNotBlock, RainRelativeBlock, RampForcesBlock, RateMachineBlock, RatioShareBlock, ReactionLabBlock, ReactionProfileBlock, ReceiptBlock, RegressionBlock, RespirationBlock, RippleTankBlock, RiverBoatBlock, RuleCardBlock, SampleSpaceBlock, SamplingBlock, SelectionBlock, SentenceBuilderBlock, SequenceBlock, SequencePredictBlock, SeriesBlock, SexLinkedCrossBlock, SiliconLatticeBlock, SimpleHarmonicBlock, SolutionBoxBlock, StatementSorterBlock, StoichiometryBlock, StoppingDistanceBlock, StraightLineBlock, StringReflectionBlock, SystemSolveBlock, TemperatureScalesBlock, TerminalVelocityBlock, ThermalExpansionBlock, TitrationBlock, TransformBlock, TransistorBlock, TriangleTrigBlock, TrigExplorerBlock, TrigSignsBlock, TruthTableBlock, VectorBoardBlock, VectorTypesBlock, VennBlock, VertexParabolaBlock, WaterDensityBlock, WaveBlock, WordMatchBlock, WorkEnergyBlock, WorkPotentialBlock, ZTableBlock, accountingBlocks, accountingComponents, biologyBlocks, biologyComponents, chemBlocks, chemComponents, circuitsBlocks, circuitsComponents, coerceArray, discreteBlocks, discreteComponents, economicsBlocks, economicsComponents, geographyBlocks, geographyComponents, geometryBlocks, geometryComponents, ictBlocks, ictComponents, labGalleryItems, labsBlocks, labsComponents, languageBlocks, languageComponents, lessonBlocks, lessonComponents, mathBlocks, mathComponents, mlBlocks, mlComponents, physicsBlocks, physicsComponents, statisticsBlocks, statisticsComponents };