@classytic/labs 0.1.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 (547) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -0
  3. package/dist/biology/enzyme-rate/index.d.mts +1 -0
  4. package/dist/biology/enzyme-rate/preset.d.mts +25 -0
  5. package/dist/biology/enzyme-rate/preset.mjs +256 -0
  6. package/dist/biology/genetic-cross/core.d.mts +64 -0
  7. package/dist/biology/genetic-cross/core.mjs +147 -0
  8. package/dist/biology/genetic-cross/grid.mjs +239 -0
  9. package/dist/biology/genetic-cross/index.d.mts +3 -0
  10. package/dist/biology/genetic-cross/preset.d.mts +26 -0
  11. package/dist/biology/genetic-cross/preset.mjs +184 -0
  12. package/dist/biology/genetic-cross/sex-linked.d.mts +27 -0
  13. package/dist/biology/genetic-cross/sex-linked.mjs +226 -0
  14. package/dist/biology/index.d.mts +11 -0
  15. package/dist/biology/index.mjs +12 -0
  16. package/dist/biology/photosynthesis-factors/index.d.mts +1 -0
  17. package/dist/biology/photosynthesis-factors/preset.d.mts +25 -0
  18. package/dist/biology/photosynthesis-factors/preset.mjs +270 -0
  19. package/dist/biology/punnett-cross/index.d.mts +1 -0
  20. package/dist/biology/punnett-cross/preset.d.mts +27 -0
  21. package/dist/biology/punnett-cross/preset.mjs +21 -0
  22. package/dist/biology/respiration/index.d.mts +1 -0
  23. package/dist/biology/respiration/preset.d.mts +17 -0
  24. package/dist/biology/respiration/preset.mjs +179 -0
  25. package/dist/biology/sequence/central-dogma.d.mts +17 -0
  26. package/dist/biology/sequence/central-dogma.mjs +339 -0
  27. package/dist/biology/sequence/core.d.mts +38 -0
  28. package/dist/biology/sequence/core.mjs +178 -0
  29. package/dist/biology/sequence/index.d.mts +3 -0
  30. package/dist/biology/sequence/preset.d.mts +20 -0
  31. package/dist/biology/sequence/preset.mjs +235 -0
  32. package/dist/blocks/accounting.d.mts +142 -0
  33. package/dist/blocks/accounting.mjs +446 -0
  34. package/dist/blocks/authoring.d.mts +12 -0
  35. package/dist/blocks/authoring.mjs +705 -0
  36. package/dist/blocks/biology.d.mts +197 -0
  37. package/dist/blocks/biology.mjs +513 -0
  38. package/dist/blocks/chem.d.mts +128 -0
  39. package/dist/blocks/chem.mjs +486 -0
  40. package/dist/blocks/circuits.d.mts +86 -0
  41. package/dist/blocks/circuits.mjs +348 -0
  42. package/dist/blocks/discrete.d.mts +62 -0
  43. package/dist/blocks/discrete.mjs +314 -0
  44. package/dist/blocks/economics.d.mts +56 -0
  45. package/dist/blocks/economics.mjs +203 -0
  46. package/dist/blocks/geography.d.mts +58 -0
  47. package/dist/blocks/geography.mjs +115 -0
  48. package/dist/blocks/geometry.d.mts +28 -0
  49. package/dist/blocks/geometry.mjs +160 -0
  50. package/dist/blocks/ict.d.mts +65 -0
  51. package/dist/blocks/ict.mjs +197 -0
  52. package/dist/blocks/index.d.mts +4555 -0
  53. package/dist/blocks/index.mjs +120 -0
  54. package/dist/blocks/lab-block.d.mts +16 -0
  55. package/dist/blocks/lab-block.mjs +74 -0
  56. package/dist/blocks/lab-config.d.mts +23 -0
  57. package/dist/blocks/lab-config.mjs +200 -0
  58. package/dist/blocks/lab-gallery.d.mts +30 -0
  59. package/dist/blocks/lab-gallery.mjs +208 -0
  60. package/dist/blocks/language.d.mts +349 -0
  61. package/dist/blocks/language.mjs +750 -0
  62. package/dist/blocks/lesson.d.mts +43 -0
  63. package/dist/blocks/lesson.mjs +140 -0
  64. package/dist/blocks/math.d.mts +411 -0
  65. package/dist/blocks/math.mjs +1536 -0
  66. package/dist/blocks/ml.d.mts +84 -0
  67. package/dist/blocks/ml.mjs +146 -0
  68. package/dist/blocks/physics.d.mts +259 -0
  69. package/dist/blocks/physics.mjs +868 -0
  70. package/dist/blocks/statistics.d.mts +29 -0
  71. package/dist/blocks/statistics.mjs +123 -0
  72. package/dist/catalog/index.d.mts +3 -0
  73. package/dist/catalog/index.mjs +8 -0
  74. package/dist/catalog/registry.d.mts +46 -0
  75. package/dist/catalog/registry.mjs +56 -0
  76. package/dist/catalog/templates.d.mts +11 -0
  77. package/dist/catalog/templates.mjs +141 -0
  78. package/dist/chem/battery.d.mts +16 -0
  79. package/dist/chem/battery.mjs +311 -0
  80. package/dist/chem/bohr-atom.d.mts +16 -0
  81. package/dist/chem/bohr-atom.mjs +212 -0
  82. package/dist/chem/diffusion/asset.mjs +76 -0
  83. package/dist/chem/diffusion/index.d.mts +1 -0
  84. package/dist/chem/diffusion/preset.d.mts +15 -0
  85. package/dist/chem/diffusion/preset.mjs +188 -0
  86. package/dist/chem/electrochem/index.d.mts +1 -0
  87. package/dist/chem/electrochem/preset.d.mts +23 -0
  88. package/dist/chem/electrochem/preset.mjs +402 -0
  89. package/dist/chem/equilibrium/index.d.mts +1 -0
  90. package/dist/chem/equilibrium/preset.d.mts +36 -0
  91. package/dist/chem/equilibrium/preset.mjs +416 -0
  92. package/dist/chem/gas-box/index.d.mts +1 -0
  93. package/dist/chem/gas-box/preset.d.mts +27 -0
  94. package/dist/chem/gas-box/preset.mjs +395 -0
  95. package/dist/chem/index.d.mts +16 -0
  96. package/dist/chem/index.mjs +17 -0
  97. package/dist/chem/kinetics/index.d.mts +1 -0
  98. package/dist/chem/kinetics/preset.d.mts +31 -0
  99. package/dist/chem/kinetics/preset.mjs +478 -0
  100. package/dist/chem/periodic-trends/index.d.mts +1 -0
  101. package/dist/chem/periodic-trends/preset.d.mts +21 -0
  102. package/dist/chem/periodic-trends/preset.mjs +831 -0
  103. package/dist/chem/reaction-lab.d.mts +18 -0
  104. package/dist/chem/reaction-lab.mjs +165 -0
  105. package/dist/chem/reaction-profile.d.mts +21 -0
  106. package/dist/chem/reaction-profile.mjs +287 -0
  107. package/dist/chem/solution/dilution.d.mts +27 -0
  108. package/dist/chem/solution/dilution.mjs +199 -0
  109. package/dist/chem/solution/field.d.mts +30 -0
  110. package/dist/chem/solution/field.mjs +145 -0
  111. package/dist/chem/solution/index.d.mts +3 -0
  112. package/dist/chem/solution/solution-box.d.mts +28 -0
  113. package/dist/chem/solution/solution-box.mjs +140 -0
  114. package/dist/chem/stoichiometry/index.d.mts +1 -0
  115. package/dist/chem/stoichiometry/preset.d.mts +29 -0
  116. package/dist/chem/stoichiometry/preset.mjs +392 -0
  117. package/dist/chem/titration/index.d.mts +1 -0
  118. package/dist/chem/titration/preset.d.mts +29 -0
  119. package/dist/chem/titration/preset.mjs +436 -0
  120. package/dist/circuits/ac-dc/asset.mjs +295 -0
  121. package/dist/circuits/ac-dc/index.d.mts +1 -0
  122. package/dist/circuits/ac-dc/preset.d.mts +16 -0
  123. package/dist/circuits/ac-dc/preset.mjs +134 -0
  124. package/dist/circuits/capacitor-leak/index.d.mts +1 -0
  125. package/dist/circuits/capacitor-leak/preset.d.mts +32 -0
  126. package/dist/circuits/capacitor-leak/preset.mjs +271 -0
  127. package/dist/circuits/circuit/asset.d.mts +6 -0
  128. package/dist/circuits/circuit/asset.mjs +367 -0
  129. package/dist/circuits/circuit/index.d.mts +2 -0
  130. package/dist/circuits/circuit/preset.d.mts +46 -0
  131. package/dist/circuits/circuit/preset.mjs +235 -0
  132. package/dist/circuits/circuit-builder.d.mts +30 -0
  133. package/dist/circuits/circuit-builder.mjs +412 -0
  134. package/dist/circuits/circuit-lab.d.mts +20 -0
  135. package/dist/circuits/circuit-lab.mjs +400 -0
  136. package/dist/circuits/index.d.mts +7 -0
  137. package/dist/circuits/index.mjs +8 -0
  138. package/dist/commerce/accounting/core.d.mts +48 -0
  139. package/dist/commerce/accounting/core.mjs +57 -0
  140. package/dist/commerce/accounting/equation-balance.d.mts +35 -0
  141. package/dist/commerce/accounting/equation-balance.mjs +292 -0
  142. package/dist/commerce/accounting/index.d.mts +4 -0
  143. package/dist/commerce/accounting/journal-poster.d.mts +29 -0
  144. package/dist/commerce/accounting/journal-poster.mjs +472 -0
  145. package/dist/commerce/accounting/statement-sorter.d.mts +25 -0
  146. package/dist/commerce/accounting/statement-sorter.mjs +304 -0
  147. package/dist/commerce/economics/core.d.mts +33 -0
  148. package/dist/commerce/economics/core.mjs +26 -0
  149. package/dist/commerce/economics/demand-shift-vs-move.d.mts +35 -0
  150. package/dist/commerce/economics/demand-shift-vs-move.mjs +324 -0
  151. package/dist/commerce/economics/elasticity-revenue.d.mts +31 -0
  152. package/dist/commerce/economics/elasticity-revenue.mjs +253 -0
  153. package/dist/commerce/economics/index.d.mts +4 -0
  154. package/dist/commerce/economics/market-equilibrium.d.mts +33 -0
  155. package/dist/commerce/economics/market-equilibrium.mjs +340 -0
  156. package/dist/commerce/index.d.mts +9 -0
  157. package/dist/commerce/index.mjs +10 -0
  158. package/dist/core/easing.d.mts +28 -0
  159. package/dist/core/easing.mjs +66 -0
  160. package/dist/core/index.d.mts +10 -0
  161. package/dist/core/index.mjs +11 -0
  162. package/dist/core/numeric.d.mts +37 -0
  163. package/dist/core/numeric.mjs +75 -0
  164. package/dist/core/reactive.d.mts +24 -0
  165. package/dist/core/reactive.mjs +51 -0
  166. package/dist/core/rng.d.mts +21 -0
  167. package/dist/core/rng.mjs +39 -0
  168. package/dist/core/tex.d.mts +14 -0
  169. package/dist/core/tex.mjs +44 -0
  170. package/dist/core/timeline.d.mts +34 -0
  171. package/dist/core/timeline.mjs +77 -0
  172. package/dist/core/util.d.mts +19 -0
  173. package/dist/core/util.mjs +31 -0
  174. package/dist/discrete/arrangements/preset.d.mts +28 -0
  175. package/dist/discrete/arrangements/preset.mjs +304 -0
  176. package/dist/discrete/bayes/preset.d.mts +33 -0
  177. package/dist/discrete/bayes/preset.mjs +476 -0
  178. package/dist/discrete/binomial/preset.d.mts +25 -0
  179. package/dist/discrete/binomial/preset.mjs +333 -0
  180. package/dist/discrete/core/combinatorics.d.mts +23 -0
  181. package/dist/discrete/core/combinatorics.mjs +57 -0
  182. package/dist/discrete/core/inclusionExclusion.d.mts +19 -0
  183. package/dist/discrete/core/inclusionExclusion.mjs +30 -0
  184. package/dist/discrete/core/pigeonhole.d.mts +15 -0
  185. package/dist/discrete/core/pigeonhole.mjs +24 -0
  186. package/dist/discrete/core/probability.d.mts +29 -0
  187. package/dist/discrete/core/probability.mjs +43 -0
  188. package/dist/discrete/core/sets.d.mts +21 -0
  189. package/dist/discrete/core/sets.mjs +45 -0
  190. package/dist/discrete/counting-slots/preset.d.mts +30 -0
  191. package/dist/discrete/counting-slots/preset.mjs +553 -0
  192. package/dist/discrete/counting-tree/index.d.mts +1 -0
  193. package/dist/discrete/counting-tree/preset.d.mts +44 -0
  194. package/dist/discrete/counting-tree/preset.mjs +364 -0
  195. package/dist/discrete/expected-value/preset.d.mts +28 -0
  196. package/dist/discrete/expected-value/preset.mjs +352 -0
  197. package/dist/discrete/hypergeometric/preset.d.mts +25 -0
  198. package/dist/discrete/hypergeometric/preset.mjs +330 -0
  199. package/dist/discrete/index.d.mts +26 -0
  200. package/dist/discrete/index.mjs +27 -0
  201. package/dist/discrete/karnaugh/index.d.mts +1 -0
  202. package/dist/discrete/karnaugh/preset.d.mts +30 -0
  203. package/dist/discrete/karnaugh/preset.mjs +452 -0
  204. package/dist/discrete/lln/asset.mjs +206 -0
  205. package/dist/discrete/lln/index.d.mts +1 -0
  206. package/dist/discrete/lln/preset.d.mts +17 -0
  207. package/dist/discrete/lln/preset.mjs +152 -0
  208. package/dist/discrete/logic-circuit/index.d.mts +1 -0
  209. package/dist/discrete/logic-circuit/preset.d.mts +47 -0
  210. package/dist/discrete/logic-circuit/preset.mjs +307 -0
  211. package/dist/discrete/monte-carlo/index.d.mts +1 -0
  212. package/dist/discrete/monte-carlo/preset.d.mts +64 -0
  213. package/dist/discrete/monte-carlo/preset.mjs +446 -0
  214. package/dist/discrete/monty-hall/index.d.mts +1 -0
  215. package/dist/discrete/monty-hall/preset.d.mts +23 -0
  216. package/dist/discrete/monty-hall/preset.mjs +491 -0
  217. package/dist/discrete/outcome-builder/preset.d.mts +24 -0
  218. package/dist/discrete/outcome-builder/preset.mjs +283 -0
  219. package/dist/discrete/pascal/preset.d.mts +24 -0
  220. package/dist/discrete/pascal/preset.mjs +372 -0
  221. package/dist/discrete/sample-space/index.d.mts +1 -0
  222. package/dist/discrete/sample-space/preset.d.mts +42 -0
  223. package/dist/discrete/sample-space/preset.mjs +395 -0
  224. package/dist/discrete/selection/preset.d.mts +33 -0
  225. package/dist/discrete/selection/preset.mjs +406 -0
  226. package/dist/discrete/truth-table/index.d.mts +1 -0
  227. package/dist/discrete/truth-table/preset.d.mts +30 -0
  228. package/dist/discrete/truth-table/preset.mjs +456 -0
  229. package/dist/discrete/venn/index.d.mts +1 -0
  230. package/dist/discrete/venn/preset.d.mts +32 -0
  231. package/dist/discrete/venn/preset.mjs +461 -0
  232. package/dist/geography/cycle-lab/index.d.mts +1 -0
  233. package/dist/geography/cycle-lab/preset.d.mts +25 -0
  234. package/dist/geography/cycle-lab/preset.mjs +254 -0
  235. package/dist/geography/cycles.d.mts +21 -0
  236. package/dist/geography/cycles.mjs +205 -0
  237. package/dist/geography/index.d.mts +4 -0
  238. package/dist/geography/index.mjs +5 -0
  239. package/dist/geometry/board/index.d.mts +1 -0
  240. package/dist/geometry/board/preset.d.mts +71 -0
  241. package/dist/geometry/board/preset.mjs +148 -0
  242. package/dist/geometry/builder.d.mts +18 -0
  243. package/dist/geometry/builder.mjs +332 -0
  244. package/dist/geometry/index.d.mts +4 -0
  245. package/dist/geometry/index.mjs +5 -0
  246. package/dist/geometry/intersecting-circles.d.mts +17 -0
  247. package/dist/geometry/intersecting-circles.mjs +104 -0
  248. package/dist/ict/index.d.mts +5 -0
  249. package/dist/ict/index.mjs +6 -0
  250. package/dist/ict/number-systems/base-odometer.d.mts +34 -0
  251. package/dist/ict/number-systems/base-odometer.mjs +160 -0
  252. package/dist/ict/number-systems/bit-grouper.d.mts +32 -0
  253. package/dist/ict/number-systems/bit-grouper.mjs +190 -0
  254. package/dist/ict/number-systems/index.d.mts +4 -0
  255. package/dist/ict/number-systems/place-value-dial.d.mts +29 -0
  256. package/dist/ict/number-systems/place-value-dial.mjs +153 -0
  257. package/dist/ict/number-systems/wheel.d.mts +73 -0
  258. package/dist/ict/number-systems/wheel.mjs +279 -0
  259. package/dist/index.d.mts +10 -0
  260. package/dist/index.mjs +11 -0
  261. package/dist/kit/anim.mjs +52 -0
  262. package/dist/kit/annotate.mjs +116 -0
  263. package/dist/kit/answer-check.d.mts +38 -0
  264. package/dist/kit/answer-check.mjs +65 -0
  265. package/dist/kit/asset-util.mjs +15 -0
  266. package/dist/kit/controls.mjs +77 -0
  267. package/dist/kit/cycle.d.mts +44 -0
  268. package/dist/kit/cycle.mjs +188 -0
  269. package/dist/kit/diagram.mjs +176 -0
  270. package/dist/kit/electronics.mjs +357 -0
  271. package/dist/kit/expr-analysis.d.mts +37 -0
  272. package/dist/kit/expr-analysis.mjs +111 -0
  273. package/dist/kit/frame.d.mts +70 -0
  274. package/dist/kit/frame.mjs +205 -0
  275. package/dist/kit/freq-tree.mjs +99 -0
  276. package/dist/kit/gameshow.mjs +315 -0
  277. package/dist/kit/index.d.mts +5 -0
  278. package/dist/kit/index.mjs +6 -0
  279. package/dist/kit/logic-gates.d.mts +6 -0
  280. package/dist/kit/logic-gates.mjs +210 -0
  281. package/dist/kit/molecules.mjs +178 -0
  282. package/dist/kit/pedagogy.d.mts +126 -0
  283. package/dist/kit/pedagogy.mjs +331 -0
  284. package/dist/kit/play.d.mts +21 -0
  285. package/dist/kit/play.mjs +52 -0
  286. package/dist/kit/probability.mjs +141 -0
  287. package/dist/kit/proportion.mjs +112 -0
  288. package/dist/kit/reaction.mjs +102 -0
  289. package/dist/kit/rich.d.mts +10 -0
  290. package/dist/kit/rich.mjs +21 -0
  291. package/dist/kit/scale.mjs +230 -0
  292. package/dist/kit/space.mjs +326 -0
  293. package/dist/kit/steps.d.mts +24 -0
  294. package/dist/kit/steps.mjs +57 -0
  295. package/dist/kit/thermal.mjs +289 -0
  296. package/dist/language/agreement/index.d.mts +1 -0
  297. package/dist/language/agreement/preset.d.mts +27 -0
  298. package/dist/language/agreement/preset.mjs +113 -0
  299. package/dist/language/article-lens/index.d.mts +1 -0
  300. package/dist/language/article-lens/preset.d.mts +31 -0
  301. package/dist/language/article-lens/preset.mjs +125 -0
  302. package/dist/language/deck.d.mts +45 -0
  303. package/dist/language/deck.mjs +61 -0
  304. package/dist/language/icon.d.mts +40 -0
  305. package/dist/language/icon.mjs +73 -0
  306. package/dist/language/index.d.mts +10 -0
  307. package/dist/language/index.mjs +11 -0
  308. package/dist/language/preposition-scene/index.d.mts +1 -0
  309. package/dist/language/preposition-scene/preset.d.mts +34 -0
  310. package/dist/language/preposition-scene/preset.mjs +234 -0
  311. package/dist/language/sentence-builder/index.d.mts +1 -0
  312. package/dist/language/sentence-builder/preset.d.mts +32 -0
  313. package/dist/language/sentence-builder/preset.mjs +122 -0
  314. package/dist/language/transform/index.d.mts +1 -0
  315. package/dist/language/transform/preset.d.mts +31 -0
  316. package/dist/language/transform/preset.mjs +137 -0
  317. package/dist/language/ui.d.mts +53 -0
  318. package/dist/language/ui.mjs +88 -0
  319. package/dist/language/word-match/index.d.mts +1 -0
  320. package/dist/language/word-match/preset.d.mts +22 -0
  321. package/dist/language/word-match/preset.mjs +148 -0
  322. package/dist/math/area-model/asset.d.mts +6 -0
  323. package/dist/math/area-model/asset.mjs +270 -0
  324. package/dist/math/area-model/index.d.mts +2 -0
  325. package/dist/math/area-model/preset.d.mts +29 -0
  326. package/dist/math/area-model/preset.mjs +243 -0
  327. package/dist/math/balance-algebra/asset.d.mts +6 -0
  328. package/dist/math/balance-algebra/asset.mjs +150 -0
  329. package/dist/math/balance-algebra/index.d.mts +2 -0
  330. package/dist/math/balance-algebra/preset.d.mts +30 -0
  331. package/dist/math/balance-algebra/preset.mjs +228 -0
  332. package/dist/math/derivation.d.mts +22 -0
  333. package/dist/math/derivation.mjs +113 -0
  334. package/dist/math/derivative-explorer/index.d.mts +1 -0
  335. package/dist/math/derivative-explorer/preset.d.mts +19 -0
  336. package/dist/math/derivative-explorer/preset.mjs +227 -0
  337. package/dist/math/function-machine/index.d.mts +1 -0
  338. package/dist/math/function-machine/preset.d.mts +21 -0
  339. package/dist/math/function-machine/preset.mjs +177 -0
  340. package/dist/math/gradient-descent.d.mts +23 -0
  341. package/dist/math/gradient-descent.mjs +473 -0
  342. package/dist/math/grapher/index.d.mts +1 -0
  343. package/dist/math/grapher/preset.d.mts +40 -0
  344. package/dist/math/grapher/preset.mjs +313 -0
  345. package/dist/math/harmonic-form/index.d.mts +1 -0
  346. package/dist/math/harmonic-form/preset.d.mts +21 -0
  347. package/dist/math/harmonic-form/preset.mjs +387 -0
  348. package/dist/math/index.d.mts +25 -0
  349. package/dist/math/index.mjs +26 -0
  350. package/dist/math/integral-explorer/index.d.mts +1 -0
  351. package/dist/math/integral-explorer/preset.d.mts +23 -0
  352. package/dist/math/integral-explorer/preset.mjs +217 -0
  353. package/dist/math/interactive/index.d.mts +1 -0
  354. package/dist/math/interactive/preset.d.mts +72 -0
  355. package/dist/math/interactive/preset.mjs +202 -0
  356. package/dist/math/limit-explorer/index.d.mts +1 -0
  357. package/dist/math/limit-explorer/preset.d.mts +19 -0
  358. package/dist/math/limit-explorer/preset.mjs +216 -0
  359. package/dist/math/linear-system/index.d.mts +1 -0
  360. package/dist/math/linear-system/preset.d.mts +28 -0
  361. package/dist/math/linear-system/preset.mjs +164 -0
  362. package/dist/math/mystery-bucket/asset.d.mts +6 -0
  363. package/dist/math/mystery-bucket/asset.mjs +145 -0
  364. package/dist/math/mystery-bucket/index.d.mts +2 -0
  365. package/dist/math/mystery-bucket/preset.d.mts +36 -0
  366. package/dist/math/mystery-bucket/preset.mjs +116 -0
  367. package/dist/math/number-line/index.d.mts +1 -0
  368. package/dist/math/number-line/preset.d.mts +24 -0
  369. package/dist/math/number-line/preset.mjs +142 -0
  370. package/dist/math/parabola/index.d.mts +1 -0
  371. package/dist/math/parabola/preset.d.mts +13 -0
  372. package/dist/math/parabola/preset.mjs +79 -0
  373. package/dist/math/pattern/asset.d.mts +6 -0
  374. package/dist/math/pattern/asset.mjs +102 -0
  375. package/dist/math/pattern/index.d.mts +2 -0
  376. package/dist/math/pattern/preset.d.mts +32 -0
  377. package/dist/math/pattern/preset.mjs +294 -0
  378. package/dist/math/triangle-trig/index.d.mts +1 -0
  379. package/dist/math/triangle-trig/preset.d.mts +47 -0
  380. package/dist/math/triangle-trig/preset.mjs +245 -0
  381. package/dist/math/trig-explorer.d.mts +18 -0
  382. package/dist/math/trig-explorer.mjs +209 -0
  383. package/dist/ml/boundary/index.d.mts +1 -0
  384. package/dist/ml/boundary/preset.d.mts +24 -0
  385. package/dist/ml/boundary/preset.mjs +385 -0
  386. package/dist/ml/classifier/index.d.mts +1 -0
  387. package/dist/ml/classifier/preset.d.mts +25 -0
  388. package/dist/ml/classifier/preset.mjs +315 -0
  389. package/dist/ml/index.d.mts +6 -0
  390. package/dist/ml/index.mjs +7 -0
  391. package/dist/ml/kmeans/index.d.mts +1 -0
  392. package/dist/ml/kmeans/preset.d.mts +33 -0
  393. package/dist/ml/kmeans/preset.mjs +236 -0
  394. package/dist/ml/knn/index.d.mts +1 -0
  395. package/dist/ml/knn/preset.d.mts +28 -0
  396. package/dist/ml/knn/preset.mjs +279 -0
  397. package/dist/ml/regression/index.d.mts +1 -0
  398. package/dist/ml/regression/preset.d.mts +32 -0
  399. package/dist/ml/regression/preset.mjs +394 -0
  400. package/dist/physics/atwood/index.d.mts +1 -0
  401. package/dist/physics/atwood/preset.d.mts +23 -0
  402. package/dist/physics/atwood/preset.mjs +312 -0
  403. package/dist/physics/bullet-walls/index.d.mts +1 -0
  404. package/dist/physics/bullet-walls/preset.d.mts +28 -0
  405. package/dist/physics/bullet-walls/preset.mjs +373 -0
  406. package/dist/physics/carnot/index.d.mts +1 -0
  407. package/dist/physics/carnot/preset.d.mts +27 -0
  408. package/dist/physics/carnot/preset.mjs +427 -0
  409. package/dist/physics/circular-motion/index.d.mts +1 -0
  410. package/dist/physics/circular-motion/preset.d.mts +25 -0
  411. package/dist/physics/circular-motion/preset.mjs +293 -0
  412. package/dist/physics/collision-track/index.d.mts +1 -0
  413. package/dist/physics/collision-track/preset.d.mts +27 -0
  414. package/dist/physics/collision-track/preset.mjs +352 -0
  415. package/dist/physics/efficiency/index.d.mts +1 -0
  416. package/dist/physics/efficiency/preset.d.mts +33 -0
  417. package/dist/physics/efficiency/preset.mjs +343 -0
  418. package/dist/physics/electric-field/index.d.mts +1 -0
  419. package/dist/physics/electric-field/preset.d.mts +15 -0
  420. package/dist/physics/electric-field/preset.mjs +306 -0
  421. package/dist/physics/energy-skate/index.d.mts +1 -0
  422. package/dist/physics/energy-skate/preset.d.mts +25 -0
  423. package/dist/physics/energy-skate/preset.mjs +254 -0
  424. package/dist/physics/entropy/index.d.mts +1 -0
  425. package/dist/physics/entropy/preset.d.mts +18 -0
  426. package/dist/physics/entropy/preset.mjs +416 -0
  427. package/dist/physics/expansion/index.d.mts +1 -0
  428. package/dist/physics/expansion/preset.d.mts +26 -0
  429. package/dist/physics/expansion/preset.mjs +609 -0
  430. package/dist/physics/exponential/asset.mjs +221 -0
  431. package/dist/physics/exponential/index.d.mts +1 -0
  432. package/dist/physics/exponential/preset.d.mts +17 -0
  433. package/dist/physics/exponential/preset.mjs +182 -0
  434. package/dist/physics/gas-process/index.d.mts +1 -0
  435. package/dist/physics/gas-process/preset.d.mts +30 -0
  436. package/dist/physics/gas-process/preset.mjs +384 -0
  437. package/dist/physics/gravitation/index.d.mts +1 -0
  438. package/dist/physics/gravitation/preset.d.mts +24 -0
  439. package/dist/physics/gravitation/preset.mjs +345 -0
  440. package/dist/physics/gravity-drop.d.mts +9 -0
  441. package/dist/physics/gravity-drop.mjs +187 -0
  442. package/dist/physics/heat-transfer/index.d.mts +1 -0
  443. package/dist/physics/heat-transfer/preset.d.mts +27 -0
  444. package/dist/physics/heat-transfer/preset.mjs +626 -0
  445. package/dist/physics/impulse/index.d.mts +1 -0
  446. package/dist/physics/impulse/preset.d.mts +29 -0
  447. package/dist/physics/impulse/preset.mjs +453 -0
  448. package/dist/physics/index.d.mts +43 -0
  449. package/dist/physics/index.mjs +44 -0
  450. package/dist/physics/kepler/index.d.mts +1 -0
  451. package/dist/physics/kepler/preset.d.mts +27 -0
  452. package/dist/physics/kepler/preset.mjs +257 -0
  453. package/dist/physics/lever/asset.d.mts +6 -0
  454. package/dist/physics/lever/asset.mjs +220 -0
  455. package/dist/physics/lever/index.d.mts +2 -0
  456. package/dist/physics/lever/preset.d.mts +31 -0
  457. package/dist/physics/lever/preset.mjs +261 -0
  458. package/dist/physics/lorentz/index.d.mts +1 -0
  459. package/dist/physics/lorentz/preset.d.mts +29 -0
  460. package/dist/physics/lorentz/preset.mjs +367 -0
  461. package/dist/physics/magnetism/index.d.mts +1 -0
  462. package/dist/physics/magnetism/preset.d.mts +15 -0
  463. package/dist/physics/magnetism/preset.mjs +334 -0
  464. package/dist/physics/optics/asset.d.mts +6 -0
  465. package/dist/physics/optics/asset.mjs +234 -0
  466. package/dist/physics/optics/index.d.mts +2 -0
  467. package/dist/physics/optics/preset.d.mts +14 -0
  468. package/dist/physics/optics/preset.mjs +202 -0
  469. package/dist/physics/orbit-lab.d.mts +6 -0
  470. package/dist/physics/orbit-lab.mjs +222 -0
  471. package/dist/physics/projectile-lab.d.mts +10 -0
  472. package/dist/physics/projectile-lab.mjs +354 -0
  473. package/dist/physics/rain-relative/index.d.mts +1 -0
  474. package/dist/physics/rain-relative/preset.d.mts +19 -0
  475. package/dist/physics/rain-relative/preset.mjs +358 -0
  476. package/dist/physics/ramp-forces/index.d.mts +1 -0
  477. package/dist/physics/ramp-forces/preset.d.mts +36 -0
  478. package/dist/physics/ramp-forces/preset.mjs +550 -0
  479. package/dist/physics/river-boat.d.mts +22 -0
  480. package/dist/physics/river-boat.mjs +498 -0
  481. package/dist/physics/shm/index.d.mts +1 -0
  482. package/dist/physics/shm/preset.d.mts +33 -0
  483. package/dist/physics/shm/preset.mjs +554 -0
  484. package/dist/physics/stopping-distance/index.d.mts +1 -0
  485. package/dist/physics/stopping-distance/preset.d.mts +29 -0
  486. package/dist/physics/stopping-distance/preset.mjs +662 -0
  487. package/dist/physics/temperature-scales/index.d.mts +1 -0
  488. package/dist/physics/temperature-scales/preset.d.mts +15 -0
  489. package/dist/physics/temperature-scales/preset.mjs +353 -0
  490. package/dist/physics/terminal-velocity/index.d.mts +1 -0
  491. package/dist/physics/terminal-velocity/preset.d.mts +26 -0
  492. package/dist/physics/terminal-velocity/preset.mjs +404 -0
  493. package/dist/physics/thermal/index.d.mts +1 -0
  494. package/dist/physics/thermal/preset.d.mts +44 -0
  495. package/dist/physics/thermal/preset.mjs +373 -0
  496. package/dist/physics/vector-board/index.d.mts +1 -0
  497. package/dist/physics/vector-board/preset.d.mts +65 -0
  498. package/dist/physics/vector-board/preset.mjs +273 -0
  499. package/dist/physics/vector-board/view.d.mts +49 -0
  500. package/dist/physics/vector-board/view.mjs +58 -0
  501. package/dist/physics/vector-scene.d.mts +41 -0
  502. package/dist/physics/vector-scene.mjs +211 -0
  503. package/dist/physics/vector-types/index.d.mts +1 -0
  504. package/dist/physics/vector-types/preset.d.mts +27 -0
  505. package/dist/physics/vector-types/preset.mjs +192 -0
  506. package/dist/physics/water-density/index.d.mts +1 -0
  507. package/dist/physics/water-density/preset.d.mts +18 -0
  508. package/dist/physics/water-density/preset.mjs +439 -0
  509. package/dist/physics/waves/core.mjs +33 -0
  510. package/dist/physics/waves/doppler.d.mts +23 -0
  511. package/dist/physics/waves/doppler.mjs +260 -0
  512. package/dist/physics/waves/index.d.mts +4 -0
  513. package/dist/physics/waves/preset.d.mts +30 -0
  514. package/dist/physics/waves/preset.mjs +488 -0
  515. package/dist/physics/waves/ripple.d.mts +26 -0
  516. package/dist/physics/waves/ripple.mjs +234 -0
  517. package/dist/physics/waves/string.d.mts +29 -0
  518. package/dist/physics/waves/string.mjs +289 -0
  519. package/dist/physics/work-energy/index.d.mts +1 -0
  520. package/dist/physics/work-energy/preset.d.mts +17 -0
  521. package/dist/physics/work-energy/preset.mjs +341 -0
  522. package/dist/schemas/index.d.mts +235 -0
  523. package/dist/schemas/index.mjs +145 -0
  524. package/dist/statistics/center-spread/preset.d.mts +34 -0
  525. package/dist/statistics/center-spread/preset.mjs +323 -0
  526. package/dist/statistics/core/descriptive.d.mts +35 -0
  527. package/dist/statistics/core/descriptive.mjs +64 -0
  528. package/dist/statistics/core/normal.d.mts +21 -0
  529. package/dist/statistics/core/normal.mjs +37 -0
  530. package/dist/statistics/core/sequences.d.mts +27 -0
  531. package/dist/statistics/core/sequences.mjs +35 -0
  532. package/dist/statistics/galton/preset.d.mts +27 -0
  533. package/dist/statistics/galton/preset.mjs +331 -0
  534. package/dist/statistics/histogram/preset.d.mts +27 -0
  535. package/dist/statistics/histogram/preset.mjs +385 -0
  536. package/dist/statistics/index.d.mts +11 -0
  537. package/dist/statistics/index.mjs +12 -0
  538. package/dist/statistics/normal/preset.d.mts +30 -0
  539. package/dist/statistics/normal/preset.mjs +400 -0
  540. package/dist/statistics/sampling/preset.d.mts +32 -0
  541. package/dist/statistics/sampling/preset.mjs +406 -0
  542. package/dist/statistics/sequence/preset.d.mts +28 -0
  543. package/dist/statistics/sequence/preset.mjs +302 -0
  544. package/dist/statistics/z-table/preset.d.mts +28 -0
  545. package/dist/statistics/z-table/preset.mjs +348 -0
  546. package/package.json +266 -0
  547. package/styles.css +267 -0
@@ -0,0 +1,4555 @@
1
+ import { EnzymeRateLab } from "../biology/enzyme-rate/preset.mjs";
2
+ import { PhotosynthesisFactorsLab } from "../biology/photosynthesis-factors/preset.mjs";
3
+ import { PunnettCrossLab } from "../biology/punnett-cross/preset.mjs";
4
+ import { RespirationLab } from "../biology/respiration/preset.mjs";
5
+ import { GeneticCrossLab } from "../biology/genetic-cross/preset.mjs";
6
+ import { SexLinkedCrossLab } from "../biology/genetic-cross/sex-linked.mjs";
7
+ import { SequenceLab } from "../biology/sequence/preset.mjs";
8
+ import { CentralDogmaLab } from "../biology/sequence/central-dogma.mjs";
9
+ import { EquationBalanceLab } from "../commerce/accounting/equation-balance.mjs";
10
+ import { JournalPosterLab } from "../commerce/accounting/journal-poster.mjs";
11
+ import { StatementSorterLab } from "../commerce/accounting/statement-sorter.mjs";
12
+ import { MarketEquilibriumLab } from "../commerce/economics/market-equilibrium.mjs";
13
+ import { ElasticityRevenueLab } from "../commerce/economics/elasticity-revenue.mjs";
14
+ import { DemandShiftVsMoveLab } from "../commerce/economics/demand-shift-vs-move.mjs";
15
+ import { EquationBalanceBlock, JournalPosterBlock, StatementSorterBlock, accountingBlocks, accountingComponents } from "./accounting.mjs";
16
+ import { CentralDogmaBlock, EnzymeRateBlock, GeneticCrossBlock, PhotosynthesisFactorsBlock, PunnettCrossBlock, RespirationBlock, SequenceBlock, SexLinkedCrossBlock, biologyBlocks, biologyComponents } from "./biology.mjs";
17
+ import { LabBlock } from "./lab-block.mjs";
18
+ import { GasBoxLab } from "../chem/gas-box/preset.mjs";
19
+ import { SolutionBoxLab } from "../chem/solution/solution-box.mjs";
20
+ import { DilutionLab } from "../chem/solution/dilution.mjs";
21
+ import { BohrAtom } from "../chem/bohr-atom.mjs";
22
+ import { ReactionProfile } from "../chem/reaction-profile.mjs";
23
+ import { ReactionLab } from "../chem/reaction-lab.mjs";
24
+ import { Battery } from "../chem/battery.mjs";
25
+ import { LeChatelierLab } from "../chem/equilibrium/preset.mjs";
26
+ import { TitrationLab } from "../chem/titration/preset.mjs";
27
+ import { ElectrochemLab } from "../chem/electrochem/preset.mjs";
28
+ import { KineticsLab } from "../chem/kinetics/preset.mjs";
29
+ import { StoichiometryLab } from "../chem/stoichiometry/preset.mjs";
30
+ import { PeriodicTrendsLab } from "../chem/periodic-trends/preset.mjs";
31
+ import { BatteryBlock, BohrAtomBlock, DilutionBlock, ElectrochemBlock, GasBoxBlock, KineticsBlock, LeChatelierBlock, PeriodicTrendsBlock, ReactionLabBlock, ReactionProfileBlock, SolutionBoxBlock, StoichiometryBlock, TitrationBlock, chemBlocks, chemComponents } from "./chem.mjs";
32
+ import { CircuitLab } from "../circuits/circuit-lab.mjs";
33
+ import { CircuitBuilder } from "../circuits/circuit-builder.mjs";
34
+ import { CapacitorLeakLab } from "../circuits/capacitor-leak/preset.mjs";
35
+ import { CapacitorLeakBlock, CircuitBlock, CircuitBuilderBlock, CircuitLabBlock, CircuitPuzzle, circuitsBlocks, circuitsComponents } from "./circuits.mjs";
36
+ import { TruthTableLab } from "../discrete/truth-table/preset.mjs";
37
+ import { CountingTreeLab } from "../discrete/counting-tree/preset.mjs";
38
+ import { VennSetBoardLab } from "../discrete/venn/preset.mjs";
39
+ import { SampleSpaceBoardLab } from "../discrete/sample-space/preset.mjs";
40
+ import { BooleanCircuitLab } from "../discrete/logic-circuit/preset.mjs";
41
+ import { KarnaughMapLab } from "../discrete/karnaugh/preset.mjs";
42
+ import { MonteCarloLab } from "../discrete/monte-carlo/preset.mjs";
43
+ import { MontyHallLab } from "../discrete/monty-hall/preset.mjs";
44
+ import { OutcomeBuilderLab } from "../discrete/outcome-builder/preset.mjs";
45
+ import { BayesLab } from "../discrete/bayes/preset.mjs";
46
+ import { LawOfLargeNumbersLab } from "../discrete/lln/preset.mjs";
47
+ import { CountingSlotsLab } from "../discrete/counting-slots/preset.mjs";
48
+ import { SelectionLab } from "../discrete/selection/preset.mjs";
49
+ import { ArrangementsLab } from "../discrete/arrangements/preset.mjs";
50
+ import { PascalTriangleLab } from "../discrete/pascal/preset.mjs";
51
+ import { BinomialDistributionLab } from "../discrete/binomial/preset.mjs";
52
+ import { HypergeometricLab } from "../discrete/hypergeometric/preset.mjs";
53
+ 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";
55
+ import { DemandShiftVsMoveBlock, ElasticityRevenueBlock, MarketEquilibriumBlock, economicsBlocks, economicsComponents } from "./economics.mjs";
56
+ import { CycleLab } from "../geography/cycle-lab/preset.mjs";
57
+ import { CycleBlock, geographyBlocks, geographyComponents } from "./geography.mjs";
58
+ import { GeometryBoard } from "../geometry/board/preset.mjs";
59
+ import { IntersectingCircles } from "../geometry/intersecting-circles.mjs";
60
+ import { GeometryBoardBlock, IntersectingCirclesBlock, geometryBlocks, geometryComponents } from "./geometry.mjs";
61
+ import { PlaceValueDialLab } from "../ict/number-systems/place-value-dial.mjs";
62
+ import { BitGrouperLab } from "../ict/number-systems/bit-grouper.mjs";
63
+ import { BaseOdometerLab } from "../ict/number-systems/base-odometer.mjs";
64
+ import { BaseOdometerBlock, BitGrouperBlock, PlaceValueDialBlock, ictBlocks, ictComponents } from "./ict.mjs";
65
+ import { CenterSpreadLab } from "../statistics/center-spread/preset.mjs";
66
+ import { SequenceLab as SequenceLab$1 } from "../statistics/sequence/preset.mjs";
67
+ import { GaltonBoardLab } from "../statistics/galton/preset.mjs";
68
+ import { HistogramBoxLab } from "../statistics/histogram/preset.mjs";
69
+ import { NormalDistributionLab } from "../statistics/normal/preset.mjs";
70
+ import { ZTableLab } from "../statistics/z-table/preset.mjs";
71
+ import { SamplingDistributionLab } from "../statistics/sampling/preset.mjs";
72
+ import { RegressionLab } from "../ml/regression/preset.mjs";
73
+ import { KMeansLab } from "../ml/kmeans/preset.mjs";
74
+ import { ClassifierThresholdLab } from "../ml/classifier/preset.mjs";
75
+ import { Grapher } from "../math/grapher/preset.mjs";
76
+ import { DerivativeExplorer } from "../math/derivative-explorer/preset.mjs";
77
+ import { IntegralExplorer } from "../math/integral-explorer/preset.mjs";
78
+ import { LimitExplorer } from "../math/limit-explorer/preset.mjs";
79
+ import { NumberLineLab } from "../math/number-line/preset.mjs";
80
+ import { AreaModelLab } from "../math/area-model/preset.mjs";
81
+ import { GrowingPatternLab } from "../math/pattern/preset.mjs";
82
+ import { MysteryBucketLab } from "../math/mystery-bucket/preset.mjs";
83
+ import { BalanceAlgebraLab } from "../math/balance-algebra/preset.mjs";
84
+ import { VertexParabolaLab } from "../math/parabola/preset.mjs";
85
+ import { FunctionMachineLab } from "../math/function-machine/preset.mjs";
86
+ import { TrigExplorer } from "../math/trig-explorer.mjs";
87
+ import { Derivation } from "../math/derivation.mjs";
88
+ import { GradientDescent } from "../math/gradient-descent.mjs";
89
+ import { InteractiveProblem } from "../math/interactive/preset.mjs";
90
+ 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";
92
+ import { VectorBoardView } from "../physics/vector-board/view.mjs";
93
+ import { OpticsLab } from "../physics/optics/preset.mjs";
94
+ import { ProjectileLab } from "../physics/projectile-lab.mjs";
95
+ import { GravityDrop } from "../physics/gravity-drop.mjs";
96
+ import { RiverBoat } from "../physics/river-boat.mjs";
97
+ import { VectorTypesLab } from "../physics/vector-types/preset.mjs";
98
+ import { RainRelativeLab } from "../physics/rain-relative/preset.mjs";
99
+ import { StoppingDistanceLab } from "../physics/stopping-distance/preset.mjs";
100
+ import { RampForcesLab } from "../physics/ramp-forces/preset.mjs";
101
+ import { CollisionTrackLab } from "../physics/collision-track/preset.mjs";
102
+ 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";
104
+ import { SentenceBuilderLab } from "../language/sentence-builder/preset.mjs";
105
+ import { WordMatchLab } from "../language/word-match/preset.mjs";
106
+ import { ArticleLensLab } from "../language/article-lens/preset.mjs";
107
+ import { AgreementLab } from "../language/agreement/preset.mjs";
108
+ import { TransformLab } from "../language/transform/preset.mjs";
109
+ import { PrepositionSceneLab } from "../language/preposition-scene/preset.mjs";
110
+ import { PredictBlock, PredictWidget, lessonBlocks, lessonComponents } from "./lesson.mjs";
111
+ import { AgreementBlock, ArticleLensBlock, PrepositionBlock, SentenceBuilderBlock, TransformBlock, WordMatchBlock, languageBlocks, languageComponents } from "./language.mjs";
112
+ import { ClassifierThresholdBlock, KMeansBlock, RegressionBlock, mlBlocks, mlComponents } from "./ml.mjs";
113
+ import { CenterSpreadBlock, GaltonBlock, HistogramBlock, NormalBlock, SamplingBlock, SeriesBlock, ZTableBlock, statisticsBlocks, statisticsComponents } from "./statistics.mjs";
114
+ import { LabConfig, LabConfigProps } from "./lab-config.mjs";
115
+ import { coerceArray } from "./authoring.mjs";
116
+ import { LabGallery, LabGalleryProps, LabPickItem } from "./lab-gallery.mjs";
117
+
118
+ //#region src/blocks/index.d.ts
119
+ /** Every lab block — pass to `<CmsBlockEditor blocks={labsBlocks}>` (slash menu). */
120
+ declare const labsBlocks: readonly [import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
121
+ prompt: import("zod").ZodDefault<import("zod").ZodString>;
122
+ choices: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
123
+ label: import("zod").ZodString;
124
+ correct: import("zod").ZodBoolean;
125
+ }, import("zod/v4/core").$strip>>>;
126
+ explain: import("zod").ZodOptional<import("zod").ZodString>;
127
+ title: import("zod").ZodOptional<import("zod").ZodString>;
128
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
129
+ tiles: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
130
+ text: import("zod").ZodString;
131
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
132
+ noun: "noun";
133
+ verb: "verb";
134
+ article: "article";
135
+ adjective: "adjective";
136
+ preposition: "preposition";
137
+ pronoun: "pronoun";
138
+ conjunction: "conjunction";
139
+ adverb: "adverb";
140
+ other: "other";
141
+ }>>;
142
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
143
+ }, import("zod/v4/core").$strip>>>;
144
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
145
+ promptDir: import("zod").ZodDefault<import("zod").ZodEnum<{
146
+ ltr: "ltr";
147
+ rtl: "rtl";
148
+ }>>;
149
+ targetDir: import("zod").ZodDefault<import("zod").ZodEnum<{
150
+ ltr: "ltr";
151
+ rtl: "rtl";
152
+ }>>;
153
+ title: import("zod").ZodOptional<import("zod").ZodString>;
154
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
155
+ deck: import("zod").ZodDefault<import("zod").ZodObject<{
156
+ title: import("zod").ZodOptional<import("zod").ZodString>;
157
+ termLang: import("zod").ZodString;
158
+ transLang: import("zod").ZodString;
159
+ items: import("zod").ZodArray<import("zod").ZodObject<{
160
+ term: import("zod").ZodString;
161
+ translation: import("zod").ZodString;
162
+ transliteration: import("zod").ZodOptional<import("zod").ZodString>;
163
+ audioUrl: import("zod").ZodOptional<import("zod").ZodString>;
164
+ icon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
165
+ kind: import("zod").ZodEnum<{
166
+ emoji: "emoji";
167
+ svg: "svg";
168
+ image: "image";
169
+ }>;
170
+ id: import("zod").ZodOptional<import("zod").ZodString>;
171
+ src: import("zod").ZodOptional<import("zod").ZodString>;
172
+ alt: import("zod").ZodString;
173
+ }, import("zod/v4/core").$strip>]>>;
174
+ example: import("zod").ZodOptional<import("zod").ZodString>;
175
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
176
+ }, import("zod/v4/core").$strip>>;
177
+ }, import("zod/v4/core").$strip>>;
178
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
179
+ show: import("zod").ZodDefault<import("zod").ZodEnum<{
180
+ translation: "translation";
181
+ icon: "icon";
182
+ }>>;
183
+ title: import("zod").ZodOptional<import("zod").ZodString>;
184
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
185
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
186
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
187
+ before: import("zod").ZodString;
188
+ noun: import("zod").ZodString;
189
+ after: import("zod").ZodOptional<import("zod").ZodString>;
190
+ answer: import("zod").ZodEnum<{
191
+ a: "a";
192
+ an: "an";
193
+ the: "the";
194
+ "\u2014": "—";
195
+ }>;
196
+ why: import("zod").ZodOptional<import("zod").ZodString>;
197
+ }, import("zod/v4/core").$strip>>>;
198
+ objectives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
199
+ hints: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
200
+ title: import("zod").ZodOptional<import("zod").ZodString>;
201
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
202
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
203
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
204
+ subject: import("zod").ZodString;
205
+ options: import("zod").ZodArray<import("zod").ZodString>;
206
+ correct: import("zod").ZodString;
207
+ tail: import("zod").ZodOptional<import("zod").ZodString>;
208
+ note: import("zod").ZodOptional<import("zod").ZodString>;
209
+ }, import("zod/v4/core").$strip>>>;
210
+ title: import("zod").ZodOptional<import("zod").ZodString>;
211
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
212
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
213
+ from: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
214
+ text: import("zod").ZodString;
215
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
216
+ noun: "noun";
217
+ verb: "verb";
218
+ article: "article";
219
+ adjective: "adjective";
220
+ preposition: "preposition";
221
+ pronoun: "pronoun";
222
+ conjunction: "conjunction";
223
+ adverb: "adverb";
224
+ other: "other";
225
+ }>>;
226
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
227
+ }, import("zod/v4/core").$strip>>>;
228
+ to: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
229
+ text: import("zod").ZodString;
230
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
231
+ noun: "noun";
232
+ verb: "verb";
233
+ article: "article";
234
+ adjective: "adjective";
235
+ preposition: "preposition";
236
+ pronoun: "pronoun";
237
+ conjunction: "conjunction";
238
+ adverb: "adverb";
239
+ other: "other";
240
+ }>>;
241
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
242
+ }, import("zod/v4/core").$strip>>>;
243
+ instruction: import("zod").ZodOptional<import("zod").ZodString>;
244
+ note: import("zod").ZodOptional<import("zod").ZodString>;
245
+ title: import("zod").ZodOptional<import("zod").ZodString>;
246
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
247
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
248
+ before: import("zod").ZodString;
249
+ noun: import("zod").ZodString;
250
+ answer: import("zod").ZodString;
251
+ options: import("zod").ZodArray<import("zod").ZodString>;
252
+ scene: import("zod").ZodEnum<{
253
+ in: "in";
254
+ at: "at";
255
+ between: "between";
256
+ on: "on";
257
+ over: "over";
258
+ above: "above";
259
+ under: "under";
260
+ below: "below";
261
+ beside: "beside";
262
+ behind: "behind";
263
+ infront: "infront";
264
+ }>;
265
+ figure: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
266
+ kind: import("zod").ZodEnum<{
267
+ emoji: "emoji";
268
+ svg: "svg";
269
+ image: "image";
270
+ }>;
271
+ id: import("zod").ZodOptional<import("zod").ZodString>;
272
+ src: import("zod").ZodOptional<import("zod").ZodString>;
273
+ alt: import("zod").ZodString;
274
+ }, import("zod/v4/core").$strip>]>>;
275
+ landmark: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
276
+ kind: import("zod").ZodEnum<{
277
+ emoji: "emoji";
278
+ svg: "svg";
279
+ image: "image";
280
+ }>;
281
+ id: import("zod").ZodOptional<import("zod").ZodString>;
282
+ src: import("zod").ZodOptional<import("zod").ZodString>;
283
+ alt: import("zod").ZodString;
284
+ }, import("zod/v4/core").$strip>]>>;
285
+ note: import("zod").ZodOptional<import("zod").ZodString>;
286
+ }, import("zod/v4/core").$strip>>>;
287
+ title: import("zod").ZodOptional<import("zod").ZodString>;
288
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
289
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
290
+ targetMeters: import("zod").ZodOptional<import("zod").ZodNumber>;
291
+ g: import("zod").ZodOptional<import("zod").ZodNumber>;
292
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{}, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
293
+ height: import("zod").ZodOptional<import("zod").ZodNumber>;
294
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
295
+ boatSpeed: import("zod").ZodOptional<import("zod").ZodNumber>;
296
+ current: import("zod").ZodOptional<import("zod").ZodNumber>;
297
+ riverWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
298
+ title: import("zod").ZodOptional<import("zod").ZodString>;
299
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{}, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
300
+ knownWeight: import("zod").ZodDefault<import("zod").ZodNumber>;
301
+ knownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
302
+ unknownDist: import("zod").ZodDefault<import("zod").ZodNumber>;
303
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
304
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
305
+ vectors: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
306
+ label: import("zod").ZodOptional<import("zod").ZodString>;
307
+ dx: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
308
+ dy: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
309
+ color: import("zod").ZodOptional<import("zod").ZodString>;
310
+ drag: import("zod").ZodOptional<import("zod").ZodBoolean>;
311
+ }, import("zod/v4/core").$strip>>>;
312
+ combine: import("zod").ZodDefault<import("zod").ZodEnum<{
313
+ none: "none";
314
+ sum: "sum";
315
+ diff: "diff";
316
+ }>>;
317
+ goalX: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
318
+ goalY: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
319
+ components: import("zod").ZodOptional<import("zod").ZodBoolean>;
320
+ angle: import("zod").ZodDefault<import("zod").ZodBoolean>;
321
+ objectives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
322
+ hints: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
323
+ title: import("zod").ZodOptional<import("zod").ZodString>;
324
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
325
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
326
+ title: import("zod").ZodOptional<import("zod").ZodString>;
327
+ types: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
328
+ name: import("zod").ZodString;
329
+ caption: import("zod").ZodString;
330
+ vectors: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
331
+ tail: import("zod").ZodOptional<import("zod").ZodObject<{
332
+ x: import("zod").ZodNumber;
333
+ y: import("zod").ZodNumber;
334
+ }, import("zod/v4/core").$strip>>;
335
+ comp: import("zod").ZodObject<{
336
+ x: import("zod").ZodNumber;
337
+ y: import("zod").ZodNumber;
338
+ }, import("zod/v4/core").$strip>;
339
+ color: import("zod").ZodOptional<import("zod").ZodString>;
340
+ label: import("zod").ZodOptional<import("zod").ZodString>;
341
+ }, import("zod/v4/core").$strip>>>;
342
+ origin: import("zod").ZodOptional<import("zod").ZodBoolean>;
343
+ }, import("zod/v4/core").$strip>>>;
344
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
345
+ maxSpeed: import("zod").ZodDefault<import("zod").ZodNumber>;
346
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
347
+ title: import("zod").ZodOptional<import("zod").ZodString>;
348
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
349
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
350
+ speed: import("zod").ZodDefault<import("zod").ZodNumber>;
351
+ reactionTime: import("zod").ZodDefault<import("zod").ZodNumber>;
352
+ deceleration: import("zod").ZodDefault<import("zod").ZodNumber>;
353
+ predict: import("zod").ZodDefault<import("zod").ZodBoolean>;
354
+ showGraphs: import("zod").ZodDefault<import("zod").ZodBoolean>;
355
+ title: import("zod").ZodOptional<import("zod").ZodString>;
356
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
357
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
358
+ angleDeg: import("zod").ZodDefault<import("zod").ZodNumber>;
359
+ mass: import("zod").ZodDefault<import("zod").ZodNumber>;
360
+ friction: import("zod").ZodDefault<import("zod").ZodNumber>;
361
+ showComponents: import("zod").ZodDefault<import("zod").ZodBoolean>;
362
+ title: import("zod").ZodOptional<import("zod").ZodString>;
363
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
364
+ controls: import("zod").ZodOptional<import("zod").ZodObject<{
365
+ hide: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
366
+ lock: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
367
+ }, import("zod/v4/core").$strip>>;
368
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
369
+ m1: import("zod").ZodDefault<import("zod").ZodNumber>;
370
+ m2: import("zod").ZodDefault<import("zod").ZodNumber>;
371
+ u1: import("zod").ZodDefault<import("zod").ZodNumber>;
372
+ u2: import("zod").ZodDefault<import("zod").ZodNumber>;
373
+ elasticity: import("zod").ZodDefault<import("zod").ZodNumber>;
374
+ showCenterOfMass: import("zod").ZodDefault<import("zod").ZodBoolean>;
375
+ title: import("zod").ZodOptional<import("zod").ZodString>;
376
+ 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<{
378
+ functions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
379
+ sin: "sin";
380
+ cos: "cos";
381
+ }>>>;
382
+ startDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
383
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
384
+ equations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
385
+ expr: import("zod").ZodString;
386
+ color: import("zod").ZodOptional<import("zod").ZodString>;
387
+ }, import("zod/v4/core").$strip>]>>>;
388
+ params: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
389
+ name: import("zod").ZodString;
390
+ min: import("zod").ZodNumber;
391
+ max: import("zod").ZodNumber;
392
+ step: import("zod").ZodOptional<import("zod").ZodNumber>;
393
+ value: import("zod").ZodNumber;
394
+ }, import("zod/v4/core").$strip>>>;
395
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
396
+ yScale: import("zod").ZodOptional<import("zod").ZodEnum<{
397
+ linear: "linear";
398
+ log: "log";
399
+ }>>;
400
+ title: import("zod").ZodOptional<import("zod").ZodString>;
401
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
402
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
403
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
404
+ startX: import("zod").ZodOptional<import("zod").ZodNumber>;
405
+ title: import("zod").ZodOptional<import("zod").ZodString>;
406
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
407
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
408
+ range: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
409
+ learningRate: import("zod").ZodOptional<import("zod").ZodNumber>;
410
+ title: import("zod").ZodOptional<import("zod").ZodString>;
411
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
412
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
413
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
414
+ a: import("zod").ZodOptional<import("zod").ZodNumber>;
415
+ b: import("zod").ZodOptional<import("zod").ZodNumber>;
416
+ n: import("zod").ZodOptional<import("zod").ZodNumber>;
417
+ title: import("zod").ZodOptional<import("zod").ZodString>;
418
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
419
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
420
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
421
+ c: import("zod").ZodOptional<import("zod").ZodNumber>;
422
+ title: import("zod").ZodOptional<import("zod").ZodString>;
423
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
424
+ steps: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
425
+ tex: import("zod").ZodString;
426
+ note: import("zod").ZodOptional<import("zod").ZodString>;
427
+ }, import("zod/v4/core").$strip>]>>>;
428
+ title: import("zod").ZodOptional<import("zod").ZodString>;
429
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
430
+ m1: import("zod").ZodDefault<import("zod").ZodNumber>;
431
+ b1: import("zod").ZodDefault<import("zod").ZodNumber>;
432
+ m2: import("zod").ZodDefault<import("zod").ZodNumber>;
433
+ b2: import("zod").ZodDefault<import("zod").ZodNumber>;
434
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
435
+ min: import("zod").ZodDefault<import("zod").ZodNumber>;
436
+ max: import("zod").ZodDefault<import("zod").ZodNumber>;
437
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
438
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
439
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
440
+ bucketWeight: import("zod").ZodDefault<import("zod").ZodNumber>;
441
+ bucketCount: import("zod").ZodDefault<import("zod").ZodNumber>;
442
+ maxWeights: import("zod").ZodDefault<import("zod").ZodNumber>;
443
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
444
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
445
+ coef: import("zod").ZodDefault<import("zod").ZodNumber>;
446
+ addend: import("zod").ZodDefault<import("zod").ZodNumber>;
447
+ rhs: import("zod").ZodDefault<import("zod").ZodNumber>;
448
+ answer: import("zod").ZodDefault<import("zod").ZodNumber>;
449
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
450
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
451
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
452
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
453
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
454
+ b: import("zod").ZodDefault<import("zod").ZodNumber>;
455
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
456
+ expand: "expand";
457
+ factor: "factor";
458
+ }>>;
459
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
460
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
461
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
462
+ b: import("zod").ZodDefault<import("zod").ZodNumber>;
463
+ steps: import("zod").ZodDefault<import("zod").ZodNumber>;
464
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
465
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
466
+ equations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
467
+ expr: import("zod").ZodString;
468
+ color: import("zod").ZodOptional<import("zod").ZodString>;
469
+ }, import("zod/v4/core").$strip>]>>>;
470
+ params: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
471
+ name: import("zod").ZodString;
472
+ min: import("zod").ZodNumber;
473
+ max: import("zod").ZodNumber;
474
+ step: import("zod").ZodOptional<import("zod").ZodNumber>;
475
+ value: import("zod").ZodNumber;
476
+ }, import("zod/v4/core").$strip>>>;
477
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
478
+ yRange: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>, import("zod").ZodLiteral<"auto">]>>;
479
+ derive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
480
+ kind: import("zod").ZodEnum<{
481
+ intersections: "intersections";
482
+ roots: "roots";
483
+ tangent: "tangent";
484
+ normal: "normal";
485
+ area: "area";
486
+ }>;
487
+ of: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>]>>;
488
+ at: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
489
+ between: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
490
+ from: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
491
+ to: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
492
+ label: import("zod").ZodOptional<import("zod").ZodString>;
493
+ }, import("zod/v4/core").$strip>>>;
494
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
495
+ prompt: import("zod").ZodString;
496
+ answer: import("zod").ZodUnion<readonly [import("zod").ZodObject<{
497
+ kind: import("zod").ZodLiteral<"number">;
498
+ value: import("zod").ZodNumber;
499
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
500
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
501
+ kind: import("zod").ZodLiteral<"expression">;
502
+ value: import("zod").ZodString;
503
+ }, import("zod/v4/core").$strip>]>;
504
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
505
+ }, import("zod/v4/core").$strip>>;
506
+ title: import("zod").ZodOptional<import("zod").ZodString>;
507
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
508
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
509
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
510
+ angleDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
511
+ leg: import("zod").ZodOptional<import("zod").ZodNumber>;
512
+ legKind: import("zod").ZodOptional<import("zod").ZodEnum<{
513
+ opposite: "opposite";
514
+ adjacent: "adjacent";
515
+ }>>;
516
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
517
+ elevation: "elevation";
518
+ depression: "depression";
519
+ plain: "plain";
520
+ }>>;
521
+ labels: import("zod").ZodOptional<import("zod").ZodObject<{
522
+ opposite: import("zod").ZodOptional<import("zod").ZodString>;
523
+ adjacent: import("zod").ZodOptional<import("zod").ZodString>;
524
+ hypotenuse: import("zod").ZodOptional<import("zod").ZodString>;
525
+ angle: import("zod").ZodOptional<import("zod").ZodString>;
526
+ }, import("zod/v4/core").$strip>>;
527
+ drive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
528
+ leg: "leg";
529
+ angle: "angle";
530
+ }>>>;
531
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
532
+ prompt: import("zod").ZodString;
533
+ answer: import("zod").ZodUnion<readonly [import("zod").ZodObject<{
534
+ kind: import("zod").ZodLiteral<"number">;
535
+ value: import("zod").ZodNumber;
536
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
537
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
538
+ kind: import("zod").ZodLiteral<"expression">;
539
+ value: import("zod").ZodString;
540
+ }, import("zod/v4/core").$strip>]>;
541
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
542
+ }, import("zod/v4/core").$strip>>;
543
+ title: import("zod").ZodOptional<import("zod").ZodString>;
544
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
545
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
546
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
547
+ holdConstant: import("zod").ZodDefault<import("zod").ZodEnum<{
548
+ temperature: "temperature";
549
+ none: "none";
550
+ volume: "volume";
551
+ pressure: "pressure";
552
+ }>>;
553
+ particleCount: import("zod").ZodDefault<import("zod").ZodNumber>;
554
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
555
+ volume: import("zod").ZodDefault<import("zod").ZodNumber>;
556
+ showGauge: import("zod").ZodDefault<import("zod").ZodBoolean>;
557
+ title: import("zod").ZodOptional<import("zod").ZodString>;
558
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
559
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
560
+ moles: import("zod").ZodDefault<import("zod").ZodNumber>;
561
+ volume: import("zod").ZodDefault<import("zod").ZodNumber>;
562
+ showProbe: import("zod").ZodDefault<import("zod").ZodBoolean>;
563
+ title: import("zod").ZodOptional<import("zod").ZodString>;
564
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
565
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
566
+ stockConcentration: import("zod").ZodDefault<import("zod").ZodNumber>;
567
+ aliquotVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
568
+ finalVolume: import("zod").ZodDefault<import("zod").ZodNumber>;
569
+ title: import("zod").ZodOptional<import("zod").ZodString>;
570
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
571
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
572
+ protons: import("zod").ZodOptional<import("zod").ZodNumber>;
573
+ title: import("zod").ZodOptional<import("zod").ZodString>;
574
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
575
+ deltaH: import("zod").ZodOptional<import("zod").ZodNumber>;
576
+ activationEnergy: import("zod").ZodOptional<import("zod").ZodNumber>;
577
+ catalyst: import("zod").ZodOptional<import("zod").ZodBoolean>;
578
+ title: import("zod").ZodOptional<import("zod").ZodString>;
579
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
580
+ a: import("zod").ZodOptional<import("zod").ZodString>;
581
+ b: import("zod").ZodOptional<import("zod").ZodString>;
582
+ title: import("zod").ZodOptional<import("zod").ZodString>;
583
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
584
+ emf: import("zod").ZodOptional<import("zod").ZodNumber>;
585
+ title: import("zod").ZodOptional<import("zod").ZodString>;
586
+ }, import("zod/v4/core").$strip>>, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, LabBlock, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
587
+ voltage: import("zod").ZodOptional<import("zod").ZodNumber>;
588
+ r1: import("zod").ZodOptional<import("zod").ZodNumber>;
589
+ r2: import("zod").ZodOptional<import("zod").ZodNumber>;
590
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
591
+ series: "series";
592
+ parallel: "parallel";
593
+ }>>;
594
+ title: import("zod").ZodOptional<import("zod").ZodString>;
595
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
596
+ battery: import("zod").ZodOptional<import("zod").ZodNumber>;
597
+ components: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
598
+ title: import("zod").ZodOptional<import("zod").ZodString>;
599
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
600
+ emf: import("zod").ZodDefault<import("zod").ZodNumber>;
601
+ bulbOhms: import("zod").ZodDefault<import("zod").ZodNumber>;
602
+ withSwitch: import("zod").ZodDefault<import("zod").ZodBoolean>;
603
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
604
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
605
+ emf: import("zod").ZodDefault<import("zod").ZodNumber>;
606
+ rK: import("zod").ZodDefault<import("zod").ZodNumber>;
607
+ capU: import("zod").ZodDefault<import("zod").ZodNumber>;
608
+ leakK: import("zod").ZodDefault<import("zod").ZodNumber>;
609
+ startCharged: import("zod").ZodOptional<import("zod").ZodBoolean>;
610
+ title: import("zod").ZodOptional<import("zod").ZodString>;
611
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
612
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
613
+ scene: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
614
+ title: import("zod").ZodOptional<import("zod").ZodString>;
615
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
616
+ r1: import("zod").ZodOptional<import("zod").ZodNumber>;
617
+ r2: import("zod").ZodOptional<import("zod").ZodNumber>;
618
+ title: import("zod").ZodOptional<import("zod").ZodString>;
619
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
620
+ base: import("zod").ZodDefault<import("zod").ZodNumber>;
621
+ width: import("zod").ZodDefault<import("zod").ZodNumber>;
622
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
623
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
624
+ showWeights: import("zod").ZodDefault<import("zod").ZodBoolean>;
625
+ title: import("zod").ZodOptional<import("zod").ZodString>;
626
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
627
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
628
+ width: import("zod").ZodDefault<import("zod").ZodNumber>;
629
+ groupSize: import("zod").ZodDefault<import("zod").ZodNumber>;
630
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
631
+ showColor: import("zod").ZodDefault<import("zod").ZodBoolean>;
632
+ title: import("zod").ZodOptional<import("zod").ZodString>;
633
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
634
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
635
+ max: import("zod").ZodDefault<import("zod").ZodNumber>;
636
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
637
+ race: import("zod").ZodDefault<import("zod").ZodBoolean>;
638
+ speed: import("zod").ZodDefault<import("zod").ZodNumber>;
639
+ highlightBase: import("zod").ZodOptional<import("zod").ZodNumber>;
640
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
641
+ title: import("zod").ZodOptional<import("zod").ZodString>;
642
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
643
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
644
+ accounts: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
645
+ id: import("zod").ZodString;
646
+ name: import("zod").ZodString;
647
+ category: import("zod").ZodEnum<{
648
+ Asset: "Asset";
649
+ Liability: "Liability";
650
+ Equity: "Equity";
651
+ Income: "Income";
652
+ Expense: "Expense";
653
+ }>;
654
+ }, import("zod/v4/core").$strip>>>;
655
+ transactions: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
656
+ id: import("zod").ZodString;
657
+ label: import("zod").ZodString;
658
+ effects: import("zod").ZodArray<import("zod").ZodObject<{
659
+ account: import("zod").ZodString;
660
+ delta: import("zod").ZodNumber;
661
+ }, import("zod/v4/core").$strip>>;
662
+ }, import("zod/v4/core").$strip>>>;
663
+ freePost: import("zod").ZodDefault<import("zod").ZodBoolean>;
664
+ title: import("zod").ZodOptional<import("zod").ZodString>;
665
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
666
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
667
+ accounts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
668
+ id: import("zod").ZodString;
669
+ name: import("zod").ZodString;
670
+ category: import("zod").ZodEnum<{
671
+ Asset: "Asset";
672
+ Liability: "Liability";
673
+ Equity: "Equity";
674
+ Income: "Income";
675
+ Expense: "Expense";
676
+ }>;
677
+ }, import("zod/v4/core").$strip>>>;
678
+ transactions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
679
+ id: import("zod").ZodString;
680
+ prompt: import("zod").ZodString;
681
+ debit: import("zod").ZodString;
682
+ credit: import("zod").ZodString;
683
+ amount: import("zod").ZodNumber;
684
+ }, import("zod/v4/core").$strip>>>;
685
+ showTrialBalance: import("zod").ZodDefault<import("zod").ZodBoolean>;
686
+ title: import("zod").ZodOptional<import("zod").ZodString>;
687
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
688
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
689
+ accounts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
690
+ id: import("zod").ZodString;
691
+ name: import("zod").ZodString;
692
+ category: import("zod").ZodEnum<{
693
+ Asset: "Asset";
694
+ Liability: "Liability";
695
+ Equity: "Equity";
696
+ Income: "Income";
697
+ Expense: "Expense";
698
+ }>;
699
+ balance: import("zod").ZodNumber;
700
+ }, import("zod/v4/core").$strip>>>;
701
+ asOfLabel: import("zod").ZodOptional<import("zod").ZodString>;
702
+ showClosing: import("zod").ZodDefault<import("zod").ZodBoolean>;
703
+ title: import("zod").ZodOptional<import("zod").ZodString>;
704
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
705
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
706
+ demandIntercept: import("zod").ZodDefault<import("zod").ZodNumber>;
707
+ demandSlope: import("zod").ZodDefault<import("zod").ZodNumber>;
708
+ supplyIntercept: import("zod").ZodDefault<import("zod").ZodNumber>;
709
+ supplySlope: import("zod").ZodDefault<import("zod").ZodNumber>;
710
+ shiftDemand: import("zod").ZodDefault<import("zod").ZodBoolean>;
711
+ shiftSupply: import("zod").ZodDefault<import("zod").ZodBoolean>;
712
+ goodLabel: import("zod").ZodOptional<import("zod").ZodString>;
713
+ title: import("zod").ZodOptional<import("zod").ZodString>;
714
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
715
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
716
+ pivotP: import("zod").ZodDefault<import("zod").ZodNumber>;
717
+ pivotQ: import("zod").ZodDefault<import("zod").ZodNumber>;
718
+ title: import("zod").ZodOptional<import("zod").ZodString>;
719
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
720
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
721
+ askPrediction: import("zod").ZodDefault<import("zod").ZodBoolean>;
722
+ title: import("zod").ZodOptional<import("zod").ZodString>;
723
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
724
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
725
+ factor: import("zod").ZodDefault<import("zod").ZodEnum<{
726
+ temperature: "temperature";
727
+ pH: "pH";
728
+ }>>;
729
+ optimum: import("zod").ZodDefault<import("zod").ZodNumber>;
730
+ factorMin: import("zod").ZodDefault<import("zod").ZodNumber>;
731
+ factorMax: import("zod").ZodDefault<import("zod").ZodNumber>;
732
+ title: import("zod").ZodOptional<import("zod").ZodString>;
733
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
734
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
735
+ light: import("zod").ZodDefault<import("zod").ZodNumber>;
736
+ co2: import("zod").ZodDefault<import("zod").ZodNumber>;
737
+ temperature: import("zod").ZodDefault<import("zod").ZodNumber>;
738
+ tempOptimum: import("zod").ZodDefault<import("zod").ZodNumber>;
739
+ title: import("zod").ZodOptional<import("zod").ZodString>;
740
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
741
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
742
+ parent1: import("zod").ZodDefault<import("zod").ZodString>;
743
+ parent2: import("zod").ZodDefault<import("zod").ZodString>;
744
+ alleleLetter: import("zod").ZodDefault<import("zod").ZodString>;
745
+ dominantLabel: import("zod").ZodDefault<import("zod").ZodString>;
746
+ recessiveLabel: import("zod").ZodDefault<import("zod").ZodString>;
747
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
748
+ title: import("zod").ZodOptional<import("zod").ZodString>;
749
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
750
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
751
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
752
+ day: "day";
753
+ night: "night";
754
+ }>>;
755
+ title: import("zod").ZodOptional<import("zod").ZodString>;
756
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
757
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
758
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
759
+ custom: "custom";
760
+ monohybrid: "monohybrid";
761
+ "blood-type": "blood-type";
762
+ incomplete: "incomplete";
763
+ dihybrid: "dihybrid";
764
+ }>>;
765
+ spec: import("zod").ZodOptional<import("zod").ZodObject<{
766
+ trait: import("zod").ZodOptional<import("zod").ZodString>;
767
+ alleles: import("zod").ZodArray<import("zod").ZodObject<{
768
+ symbol: import("zod").ZodString;
769
+ rank: import("zod").ZodNumber;
770
+ trait: import("zod").ZodString;
771
+ }, import("zod/v4/core").$strip>>;
772
+ blends: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
773
+ pair: import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>;
774
+ label: import("zod").ZodString;
775
+ color: import("zod").ZodOptional<import("zod").ZodString>;
776
+ }, import("zod/v4/core").$strip>>>;
777
+ colors: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
778
+ }, import("zod/v4/core").$strip>>;
779
+ parent1: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
780
+ parent2: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
781
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
782
+ title: import("zod").ZodOptional<import("zod").ZodString>;
783
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
784
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
785
+ kind: import("zod").ZodDefault<import("zod").ZodEnum<{
786
+ replication: "replication";
787
+ transcription: "transcription";
788
+ translation: "translation";
789
+ }>>;
790
+ template: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
791
+ title: import("zod").ZodOptional<import("zod").ZodString>;
792
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
793
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
794
+ allele: import("zod").ZodDefault<import("zod").ZodString>;
795
+ dominant: import("zod").ZodDefault<import("zod").ZodString>;
796
+ recessive: import("zod").ZodDefault<import("zod").ZodString>;
797
+ mother: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodString, import("zod").ZodString], null>>;
798
+ father: import("zod").ZodOptional<import("zod").ZodString>;
799
+ predictFirst: import("zod").ZodDefault<import("zod").ZodBoolean>;
800
+ title: import("zod").ZodOptional<import("zod").ZodString>;
801
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
802
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
803
+ dna: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
804
+ title: import("zod").ZodOptional<import("zod").ZodString>;
805
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
806
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
807
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
808
+ custom: "custom";
809
+ water: "water";
810
+ rock: "rock";
811
+ carbon: "carbon";
812
+ }>>;
813
+ challenge: import("zod").ZodDefault<import("zod").ZodEnum<{
814
+ trace: "trace";
815
+ "label-process": "label-process";
816
+ }>>;
817
+ nodes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
818
+ id: import("zod").ZodString;
819
+ label: import("zod").ZodString;
820
+ tone: import("zod").ZodOptional<import("zod").ZodString>;
821
+ }, import("zod/v4/core").$strip>>>;
822
+ edges: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
823
+ from: import("zod").ZodString;
824
+ to: import("zod").ZodString;
825
+ label: import("zod").ZodOptional<import("zod").ZodString>;
826
+ }, import("zod/v4/core").$strip>>>;
827
+ title: import("zod").ZodOptional<import("zod").ZodString>;
828
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
829
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
830
+ data: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
831
+ x: import("zod").ZodNumber;
832
+ y: import("zod").ZodNumber;
833
+ }, import("zod/v4/core").$strip>>>;
834
+ showSquares: import("zod").ZodDefault<import("zod").ZodBoolean>;
835
+ learnRate: import("zod").ZodDefault<import("zod").ZodNumber>;
836
+ m0: import("zod").ZodDefault<import("zod").ZodNumber>;
837
+ b0: import("zod").ZodDefault<import("zod").ZodNumber>;
838
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
839
+ title: import("zod").ZodOptional<import("zod").ZodString>;
840
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
841
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
842
+ points: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
843
+ x: import("zod").ZodNumber;
844
+ y: import("zod").ZodNumber;
845
+ }, import("zod/v4/core").$strip>>>;
846
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
847
+ seeds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
848
+ x: import("zod").ZodNumber;
849
+ y: import("zod").ZodNumber;
850
+ }, import("zod/v4/core").$strip>>>;
851
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
852
+ showLines: import("zod").ZodDefault<import("zod").ZodBoolean>;
853
+ title: import("zod").ZodOptional<import("zod").ZodString>;
854
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
855
+ }, import("zod/v4/core").$strip>>, import("@classytic/cms-ui/contract").CmsBlock<import("zod").ZodObject<{
856
+ positives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
857
+ negatives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
858
+ threshold: import("zod").ZodDefault<import("zod").ZodNumber>;
859
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
860
+ title: import("zod").ZodOptional<import("zod").ZodString>;
861
+ 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).
864
+ * Tags match each block's `tag` so editor + player render the same component.
865
+ * Tags are unique across domains, so spread order is irrelevant. */
866
+ declare const labsComponents: {
867
+ readonly CenterSpread: typeof CenterSpreadLab;
868
+ readonly Series: typeof SequenceLab$1;
869
+ readonly GaltonBoard: typeof GaltonBoardLab;
870
+ readonly HistogramBox: typeof HistogramBoxLab;
871
+ readonly NormalDistribution: typeof NormalDistributionLab;
872
+ readonly ZTable: typeof ZTableLab;
873
+ readonly SamplingDistribution: typeof SamplingDistributionLab;
874
+ readonly TruthTable: typeof TruthTableLab;
875
+ readonly CountingTree: typeof CountingTreeLab;
876
+ readonly VennSetBoard: typeof VennSetBoardLab;
877
+ readonly SampleSpaceBoard: typeof SampleSpaceBoardLab;
878
+ readonly BooleanCircuit: typeof BooleanCircuitLab;
879
+ readonly KarnaughMap: typeof KarnaughMapLab;
880
+ readonly MonteCarlo: typeof MonteCarloLab;
881
+ readonly MontyHall: typeof MontyHallLab;
882
+ readonly OutcomeBuilder: typeof OutcomeBuilderLab;
883
+ readonly Bayes: typeof BayesLab;
884
+ readonly CountingSlots: typeof CountingSlotsLab;
885
+ readonly Selection: typeof SelectionLab;
886
+ readonly Arrangements: typeof ArrangementsLab;
887
+ readonly PascalTriangle: typeof PascalTriangleLab;
888
+ readonly Binomial: typeof BinomialDistributionLab;
889
+ readonly Hypergeometric: typeof HypergeometricLab;
890
+ readonly ExpectedValue: typeof ExpectedValueLab;
891
+ readonly LawOfLargeNumbers: typeof LawOfLargeNumbersLab;
892
+ readonly Regression: typeof RegressionLab;
893
+ readonly KMeans: typeof KMeansLab;
894
+ readonly ClassifierThreshold: typeof ClassifierThresholdLab;
895
+ readonly Cycle: typeof CycleLab;
896
+ readonly EnzymeRate: typeof EnzymeRateLab;
897
+ readonly PhotosynthesisFactors: typeof PhotosynthesisFactorsLab;
898
+ readonly PunnettCross: typeof PunnettCrossLab;
899
+ readonly Respiration: typeof RespirationLab;
900
+ readonly GeneticCross: typeof GeneticCrossLab;
901
+ readonly Sequence: typeof SequenceLab;
902
+ readonly SexLinkedCross: typeof SexLinkedCrossLab;
903
+ readonly CentralDogma: typeof CentralDogmaLab;
904
+ readonly MarketEquilibrium: typeof MarketEquilibriumLab;
905
+ readonly ElasticityRevenue: typeof ElasticityRevenueLab;
906
+ readonly DemandShiftVsMove: typeof DemandShiftVsMoveLab;
907
+ readonly EquationBalance: typeof EquationBalanceLab;
908
+ readonly JournalPoster: typeof JournalPosterLab;
909
+ readonly StatementSorter: typeof StatementSorterLab;
910
+ readonly PlaceValueDial: typeof PlaceValueDialLab;
911
+ readonly BitGrouper: typeof BitGrouperLab;
912
+ readonly BaseOdometer: typeof BaseOdometerLab;
913
+ readonly GeometryBoard: typeof GeometryBoard;
914
+ readonly IntersectingCircles: typeof IntersectingCircles;
915
+ readonly CapacitorLeak: typeof CapacitorLeakLab;
916
+ readonly Circuit: typeof CircuitPuzzle;
917
+ readonly CircuitBuilder: typeof CircuitBuilder;
918
+ readonly CircuitLab: typeof CircuitLab;
919
+ readonly GasBox: typeof GasBoxLab;
920
+ readonly SolutionBox: typeof SolutionBoxLab;
921
+ readonly Dilution: typeof DilutionLab;
922
+ readonly BohrAtom: typeof BohrAtom;
923
+ readonly ReactionProfile: typeof ReactionProfile;
924
+ readonly ReactionLab: typeof ReactionLab;
925
+ readonly Battery: typeof Battery;
926
+ readonly LeChatelier: typeof LeChatelierLab;
927
+ readonly Titration: typeof TitrationLab;
928
+ readonly Electrochem: typeof ElectrochemLab;
929
+ readonly Kinetics: typeof KineticsLab;
930
+ readonly Stoichiometry: typeof StoichiometryLab;
931
+ readonly PeriodicTrends: typeof PeriodicTrendsLab;
932
+ readonly MysteryBucket: typeof MysteryBucketLab;
933
+ readonly NumberLine: typeof NumberLineLab;
934
+ readonly LinearSystem: typeof LinearSystemView;
935
+ readonly BalanceAlgebra: typeof BalanceAlgebraLab;
936
+ readonly VertexParabola: typeof VertexParabolaLab;
937
+ readonly AreaModel: typeof AreaModelLab;
938
+ readonly GrowingPattern: typeof GrowingPatternLab;
939
+ readonly FunctionMachine: typeof FunctionMachineLab;
940
+ readonly Graph: typeof Grapher;
941
+ readonly DerivativeExplorer: typeof DerivativeExplorer;
942
+ readonly IntegralExplorer: typeof IntegralExplorer;
943
+ readonly LimitExplorer: typeof LimitExplorer;
944
+ readonly GradientDescent: typeof GradientDescent;
945
+ readonly Derivation: typeof Derivation;
946
+ readonly TrigExplorer: typeof TrigExplorer;
947
+ readonly InteractiveProblem: typeof InteractiveProblem;
948
+ readonly TriangleTrig: typeof TriangleTrig;
949
+ readonly VectorBoard: typeof VectorBoardView;
950
+ readonly VectorTypes: typeof VectorTypesLab;
951
+ readonly RainRelative: typeof RainRelativeLab;
952
+ readonly StoppingDistance: typeof StoppingDistanceLab;
953
+ readonly RampForces: typeof RampForcesLab;
954
+ readonly CollisionTrack: typeof CollisionTrackLab;
955
+ readonly Optics: typeof OpticsLab;
956
+ readonly Lever: typeof LeverPuzzle;
957
+ readonly ProjectileLab: typeof ProjectileLab;
958
+ readonly RiverBoat: typeof RiverBoat;
959
+ readonly OrbitLab: typeof OrbitLab;
960
+ readonly GravityDrop: typeof GravityDrop;
961
+ readonly SentenceBuilder: typeof SentenceBuilderLab;
962
+ readonly WordMatch: typeof WordMatchLab;
963
+ readonly ArticleLens: typeof ArticleLensLab;
964
+ readonly Agreement: typeof AgreementLab;
965
+ readonly Transform: typeof TransformLab;
966
+ readonly Preposition: typeof PrepositionSceneLab;
967
+ readonly Predict: typeof PredictWidget;
968
+ };
969
+ /** Every lab tagged with its subject group, for `<LabGallery blocks={labGalleryItems}>`. */
970
+ declare const labGalleryItems: ({
971
+ group: string;
972
+ key: string;
973
+ label: string;
974
+ icon?: import("react").ComponentType<{
975
+ className?: string;
976
+ }>;
977
+ description?: string;
978
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
979
+ slash?: boolean;
980
+ schema: import("zod").ZodObject<{
981
+ functions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
982
+ sin: "sin";
983
+ cos: "cos";
984
+ }>>>;
985
+ startDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
986
+ }, import("zod/v4/core").$strip>;
987
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
988
+ functions?: ("sin" | "cos")[] | undefined;
989
+ startDeg?: number | undefined;
990
+ }>>;
991
+ tag?: string;
992
+ void?: boolean;
993
+ toAttrs?: ((props: {
994
+ functions?: ("sin" | "cos")[] | undefined;
995
+ startDeg?: number | undefined;
996
+ }) => Record<string, unknown>) | undefined;
997
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
998
+ functions?: ("sin" | "cos")[] | undefined;
999
+ startDeg?: number | undefined;
1000
+ }>) | undefined;
1001
+ } | {
1002
+ group: string;
1003
+ key: string;
1004
+ label: string;
1005
+ icon?: import("react").ComponentType<{
1006
+ className?: string;
1007
+ }>;
1008
+ description?: string;
1009
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1010
+ slash?: boolean;
1011
+ schema: import("zod").ZodObject<{
1012
+ equations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
1013
+ expr: import("zod").ZodString;
1014
+ color: import("zod").ZodOptional<import("zod").ZodString>;
1015
+ }, import("zod/v4/core").$strip>]>>>;
1016
+ params: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1017
+ name: import("zod").ZodString;
1018
+ min: import("zod").ZodNumber;
1019
+ max: import("zod").ZodNumber;
1020
+ step: import("zod").ZodOptional<import("zod").ZodNumber>;
1021
+ value: import("zod").ZodNumber;
1022
+ }, import("zod/v4/core").$strip>>>;
1023
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1024
+ yScale: import("zod").ZodOptional<import("zod").ZodEnum<{
1025
+ linear: "linear";
1026
+ log: "log";
1027
+ }>>;
1028
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1029
+ }, import("zod/v4/core").$strip>;
1030
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1031
+ equations?: (string | {
1032
+ expr: string;
1033
+ color?: string | undefined;
1034
+ })[] | undefined;
1035
+ params?: {
1036
+ name: string;
1037
+ min: number;
1038
+ max: number;
1039
+ value: number;
1040
+ step?: number | undefined;
1041
+ }[] | undefined;
1042
+ xRange?: [number, number] | undefined;
1043
+ yScale?: "linear" | "log" | undefined;
1044
+ title?: string | undefined;
1045
+ }>>;
1046
+ tag?: string;
1047
+ void?: boolean;
1048
+ toAttrs?: ((props: {
1049
+ equations?: (string | {
1050
+ expr: string;
1051
+ color?: string | undefined;
1052
+ })[] | undefined;
1053
+ params?: {
1054
+ name: string;
1055
+ min: number;
1056
+ max: number;
1057
+ value: number;
1058
+ step?: number | undefined;
1059
+ }[] | undefined;
1060
+ xRange?: [number, number] | undefined;
1061
+ yScale?: "linear" | "log" | undefined;
1062
+ title?: string | undefined;
1063
+ }) => Record<string, unknown>) | undefined;
1064
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1065
+ equations?: (string | {
1066
+ expr: string;
1067
+ color?: string | undefined;
1068
+ })[] | undefined;
1069
+ params?: {
1070
+ name: string;
1071
+ min: number;
1072
+ max: number;
1073
+ value: number;
1074
+ step?: number | undefined;
1075
+ }[] | undefined;
1076
+ xRange?: [number, number] | undefined;
1077
+ yScale?: "linear" | "log" | undefined;
1078
+ title?: string | undefined;
1079
+ }>) | undefined;
1080
+ } | {
1081
+ group: string;
1082
+ key: string;
1083
+ label: string;
1084
+ icon?: import("react").ComponentType<{
1085
+ className?: string;
1086
+ }>;
1087
+ description?: string;
1088
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1089
+ slash?: boolean;
1090
+ schema: import("zod").ZodObject<{
1091
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
1092
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1093
+ startX: import("zod").ZodOptional<import("zod").ZodNumber>;
1094
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1095
+ }, import("zod/v4/core").$strip>;
1096
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1097
+ equation?: string | undefined;
1098
+ xRange?: [number, number] | undefined;
1099
+ startX?: number | undefined;
1100
+ title?: string | undefined;
1101
+ }>>;
1102
+ tag?: string;
1103
+ void?: boolean;
1104
+ toAttrs?: ((props: {
1105
+ equation?: string | undefined;
1106
+ xRange?: [number, number] | undefined;
1107
+ startX?: number | undefined;
1108
+ title?: string | undefined;
1109
+ }) => Record<string, unknown>) | undefined;
1110
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1111
+ equation?: string | undefined;
1112
+ xRange?: [number, number] | undefined;
1113
+ startX?: number | undefined;
1114
+ title?: string | undefined;
1115
+ }>) | undefined;
1116
+ } | {
1117
+ group: string;
1118
+ key: string;
1119
+ label: string;
1120
+ icon?: import("react").ComponentType<{
1121
+ className?: string;
1122
+ }>;
1123
+ description?: string;
1124
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1125
+ slash?: boolean;
1126
+ schema: import("zod").ZodObject<{
1127
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
1128
+ range: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1129
+ learningRate: import("zod").ZodOptional<import("zod").ZodNumber>;
1130
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1131
+ }, import("zod/v4/core").$strip>;
1132
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1133
+ equation?: string | undefined;
1134
+ range?: [number, number] | undefined;
1135
+ learningRate?: number | undefined;
1136
+ title?: string | undefined;
1137
+ }>>;
1138
+ tag?: string;
1139
+ void?: boolean;
1140
+ toAttrs?: ((props: {
1141
+ equation?: string | undefined;
1142
+ range?: [number, number] | undefined;
1143
+ learningRate?: number | undefined;
1144
+ title?: string | undefined;
1145
+ }) => Record<string, unknown>) | undefined;
1146
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1147
+ equation?: string | undefined;
1148
+ range?: [number, number] | undefined;
1149
+ learningRate?: number | undefined;
1150
+ title?: string | undefined;
1151
+ }>) | undefined;
1152
+ } | {
1153
+ group: string;
1154
+ key: string;
1155
+ label: string;
1156
+ icon?: import("react").ComponentType<{
1157
+ className?: string;
1158
+ }>;
1159
+ description?: string;
1160
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1161
+ slash?: boolean;
1162
+ schema: import("zod").ZodObject<{
1163
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
1164
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1165
+ a: import("zod").ZodOptional<import("zod").ZodNumber>;
1166
+ b: import("zod").ZodOptional<import("zod").ZodNumber>;
1167
+ n: import("zod").ZodOptional<import("zod").ZodNumber>;
1168
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1169
+ }, import("zod/v4/core").$strip>;
1170
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1171
+ equation?: string | undefined;
1172
+ xRange?: [number, number] | undefined;
1173
+ a?: number | undefined;
1174
+ b?: number | undefined;
1175
+ n?: number | undefined;
1176
+ title?: string | undefined;
1177
+ }>>;
1178
+ tag?: string;
1179
+ void?: boolean;
1180
+ toAttrs?: ((props: {
1181
+ equation?: string | undefined;
1182
+ xRange?: [number, number] | undefined;
1183
+ a?: number | undefined;
1184
+ b?: number | undefined;
1185
+ n?: number | undefined;
1186
+ title?: string | undefined;
1187
+ }) => Record<string, unknown>) | undefined;
1188
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1189
+ equation?: string | undefined;
1190
+ xRange?: [number, number] | undefined;
1191
+ a?: number | undefined;
1192
+ b?: number | undefined;
1193
+ n?: number | undefined;
1194
+ title?: string | undefined;
1195
+ }>) | undefined;
1196
+ } | {
1197
+ group: string;
1198
+ key: string;
1199
+ label: string;
1200
+ icon?: import("react").ComponentType<{
1201
+ className?: string;
1202
+ }>;
1203
+ description?: string;
1204
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1205
+ slash?: boolean;
1206
+ schema: import("zod").ZodObject<{
1207
+ equation: import("zod").ZodOptional<import("zod").ZodString>;
1208
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1209
+ c: import("zod").ZodOptional<import("zod").ZodNumber>;
1210
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1211
+ }, import("zod/v4/core").$strip>;
1212
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1213
+ equation?: string | undefined;
1214
+ xRange?: [number, number] | undefined;
1215
+ c?: number | undefined;
1216
+ title?: string | undefined;
1217
+ }>>;
1218
+ tag?: string;
1219
+ void?: boolean;
1220
+ toAttrs?: ((props: {
1221
+ equation?: string | undefined;
1222
+ xRange?: [number, number] | undefined;
1223
+ c?: number | undefined;
1224
+ title?: string | undefined;
1225
+ }) => Record<string, unknown>) | undefined;
1226
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1227
+ equation?: string | undefined;
1228
+ xRange?: [number, number] | undefined;
1229
+ c?: number | undefined;
1230
+ title?: string | undefined;
1231
+ }>) | undefined;
1232
+ } | {
1233
+ group: string;
1234
+ key: string;
1235
+ label: string;
1236
+ icon?: import("react").ComponentType<{
1237
+ className?: string;
1238
+ }>;
1239
+ description?: string;
1240
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1241
+ slash?: boolean;
1242
+ schema: import("zod").ZodObject<{
1243
+ steps: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
1244
+ tex: import("zod").ZodString;
1245
+ note: import("zod").ZodOptional<import("zod").ZodString>;
1246
+ }, import("zod/v4/core").$strip>]>>>;
1247
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1248
+ }, import("zod/v4/core").$strip>;
1249
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1250
+ steps?: (string | {
1251
+ tex: string;
1252
+ note?: string | undefined;
1253
+ })[] | undefined;
1254
+ title?: string | undefined;
1255
+ }>>;
1256
+ tag?: string;
1257
+ void?: boolean;
1258
+ toAttrs?: ((props: {
1259
+ steps?: (string | {
1260
+ tex: string;
1261
+ note?: string | undefined;
1262
+ })[] | undefined;
1263
+ title?: string | undefined;
1264
+ }) => Record<string, unknown>) | undefined;
1265
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1266
+ steps?: (string | {
1267
+ tex: string;
1268
+ note?: string | undefined;
1269
+ })[] | undefined;
1270
+ title?: string | undefined;
1271
+ }>) | undefined;
1272
+ } | {
1273
+ group: string;
1274
+ key: string;
1275
+ label: string;
1276
+ icon?: import("react").ComponentType<{
1277
+ className?: string;
1278
+ }>;
1279
+ description?: string;
1280
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1281
+ slash?: boolean;
1282
+ schema: import("zod").ZodObject<{
1283
+ m1: import("zod").ZodDefault<import("zod").ZodNumber>;
1284
+ b1: import("zod").ZodDefault<import("zod").ZodNumber>;
1285
+ m2: import("zod").ZodDefault<import("zod").ZodNumber>;
1286
+ b2: import("zod").ZodDefault<import("zod").ZodNumber>;
1287
+ }, import("zod/v4/core").$strip>;
1288
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1289
+ m1: number;
1290
+ b1: number;
1291
+ m2: number;
1292
+ b2: number;
1293
+ }>>;
1294
+ tag?: string;
1295
+ void?: boolean;
1296
+ toAttrs?: ((props: {
1297
+ m1: number;
1298
+ b1: number;
1299
+ m2: number;
1300
+ b2: number;
1301
+ }) => Record<string, unknown>) | undefined;
1302
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1303
+ m1: number;
1304
+ b1: number;
1305
+ m2: number;
1306
+ b2: number;
1307
+ }>) | undefined;
1308
+ } | {
1309
+ group: string;
1310
+ key: string;
1311
+ label: string;
1312
+ icon?: import("react").ComponentType<{
1313
+ className?: string;
1314
+ }>;
1315
+ description?: string;
1316
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1317
+ slash?: boolean;
1318
+ schema: import("zod").ZodObject<{
1319
+ min: import("zod").ZodDefault<import("zod").ZodNumber>;
1320
+ max: import("zod").ZodDefault<import("zod").ZodNumber>;
1321
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
1322
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
1323
+ }, import("zod/v4/core").$strip>;
1324
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1325
+ min: number;
1326
+ max: number;
1327
+ start: number;
1328
+ target?: number | undefined;
1329
+ }>>;
1330
+ tag?: string;
1331
+ void?: boolean;
1332
+ toAttrs?: ((props: {
1333
+ min: number;
1334
+ max: number;
1335
+ start: number;
1336
+ target?: number | undefined;
1337
+ }) => Record<string, unknown>) | undefined;
1338
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1339
+ min: number;
1340
+ max: number;
1341
+ start: number;
1342
+ target?: number | undefined;
1343
+ }>) | undefined;
1344
+ } | {
1345
+ group: string;
1346
+ key: string;
1347
+ label: string;
1348
+ icon?: import("react").ComponentType<{
1349
+ className?: string;
1350
+ }>;
1351
+ description?: string;
1352
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1353
+ slash?: boolean;
1354
+ schema: import("zod").ZodObject<{
1355
+ bucketWeight: import("zod").ZodDefault<import("zod").ZodNumber>;
1356
+ bucketCount: import("zod").ZodDefault<import("zod").ZodNumber>;
1357
+ maxWeights: import("zod").ZodDefault<import("zod").ZodNumber>;
1358
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
1359
+ }, import("zod/v4/core").$strip>;
1360
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1361
+ bucketWeight: number;
1362
+ bucketCount: number;
1363
+ maxWeights: number;
1364
+ start: number;
1365
+ }>>;
1366
+ tag?: string;
1367
+ void?: boolean;
1368
+ toAttrs?: ((props: {
1369
+ bucketWeight: number;
1370
+ bucketCount: number;
1371
+ maxWeights: number;
1372
+ start: number;
1373
+ }) => Record<string, unknown>) | undefined;
1374
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1375
+ bucketWeight: number;
1376
+ bucketCount: number;
1377
+ maxWeights: number;
1378
+ start: number;
1379
+ }>) | undefined;
1380
+ } | {
1381
+ group: string;
1382
+ key: string;
1383
+ label: string;
1384
+ icon?: import("react").ComponentType<{
1385
+ className?: string;
1386
+ }>;
1387
+ description?: string;
1388
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1389
+ slash?: boolean;
1390
+ schema: import("zod").ZodObject<{
1391
+ coef: import("zod").ZodDefault<import("zod").ZodNumber>;
1392
+ addend: import("zod").ZodDefault<import("zod").ZodNumber>;
1393
+ rhs: import("zod").ZodDefault<import("zod").ZodNumber>;
1394
+ answer: import("zod").ZodDefault<import("zod").ZodNumber>;
1395
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
1396
+ }, import("zod/v4/core").$strip>;
1397
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1398
+ coef: number;
1399
+ addend: number;
1400
+ rhs: number;
1401
+ answer: number;
1402
+ controlId?: string | undefined;
1403
+ }>>;
1404
+ tag?: string;
1405
+ void?: boolean;
1406
+ toAttrs?: ((props: {
1407
+ coef: number;
1408
+ addend: number;
1409
+ rhs: number;
1410
+ answer: number;
1411
+ controlId?: string | undefined;
1412
+ }) => Record<string, unknown>) | undefined;
1413
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1414
+ coef: number;
1415
+ addend: number;
1416
+ rhs: number;
1417
+ answer: number;
1418
+ controlId?: string | undefined;
1419
+ }>) | undefined;
1420
+ } | {
1421
+ group: string;
1422
+ key: string;
1423
+ label: string;
1424
+ icon?: import("react").ComponentType<{
1425
+ className?: string;
1426
+ }>;
1427
+ description?: string;
1428
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1429
+ slash?: boolean;
1430
+ schema: import("zod").ZodObject<{
1431
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
1432
+ }, import("zod/v4/core").$strip>;
1433
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1434
+ a: number;
1435
+ }>>;
1436
+ tag?: string;
1437
+ void?: boolean;
1438
+ toAttrs?: ((props: {
1439
+ a: number;
1440
+ }) => Record<string, unknown>) | undefined;
1441
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1442
+ a: number;
1443
+ }>) | undefined;
1444
+ } | {
1445
+ group: string;
1446
+ key: string;
1447
+ label: string;
1448
+ icon?: import("react").ComponentType<{
1449
+ className?: string;
1450
+ }>;
1451
+ description?: string;
1452
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1453
+ slash?: boolean;
1454
+ schema: import("zod").ZodObject<{
1455
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
1456
+ b: import("zod").ZodDefault<import("zod").ZodNumber>;
1457
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
1458
+ expand: "expand";
1459
+ factor: "factor";
1460
+ }>>;
1461
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
1462
+ }, import("zod/v4/core").$strip>;
1463
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1464
+ a: number;
1465
+ b: number;
1466
+ mode: "expand" | "factor";
1467
+ controlId?: string | undefined;
1468
+ }>>;
1469
+ tag?: string;
1470
+ void?: boolean;
1471
+ toAttrs?: ((props: {
1472
+ a: number;
1473
+ b: number;
1474
+ mode: "expand" | "factor";
1475
+ controlId?: string | undefined;
1476
+ }) => Record<string, unknown>) | undefined;
1477
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1478
+ a: number;
1479
+ b: number;
1480
+ mode: "expand" | "factor";
1481
+ controlId?: string | undefined;
1482
+ }>) | undefined;
1483
+ } | {
1484
+ group: string;
1485
+ key: string;
1486
+ label: string;
1487
+ icon?: import("react").ComponentType<{
1488
+ className?: string;
1489
+ }>;
1490
+ description?: string;
1491
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1492
+ slash?: boolean;
1493
+ schema: import("zod").ZodObject<{
1494
+ a: import("zod").ZodDefault<import("zod").ZodNumber>;
1495
+ b: import("zod").ZodDefault<import("zod").ZodNumber>;
1496
+ steps: import("zod").ZodDefault<import("zod").ZodNumber>;
1497
+ controlId: import("zod").ZodOptional<import("zod").ZodString>;
1498
+ }, import("zod/v4/core").$strip>;
1499
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1500
+ a: number;
1501
+ b: number;
1502
+ steps: number;
1503
+ controlId?: string | undefined;
1504
+ }>>;
1505
+ tag?: string;
1506
+ void?: boolean;
1507
+ toAttrs?: ((props: {
1508
+ a: number;
1509
+ b: number;
1510
+ steps: number;
1511
+ controlId?: string | undefined;
1512
+ }) => Record<string, unknown>) | undefined;
1513
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1514
+ a: number;
1515
+ b: number;
1516
+ steps: number;
1517
+ controlId?: string | undefined;
1518
+ }>) | undefined;
1519
+ } | {
1520
+ group: string;
1521
+ key: string;
1522
+ label: string;
1523
+ icon?: import("react").ComponentType<{
1524
+ className?: string;
1525
+ }>;
1526
+ description?: string;
1527
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1528
+ slash?: boolean;
1529
+ schema: import("zod").ZodObject<{
1530
+ equations: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
1531
+ expr: import("zod").ZodString;
1532
+ color: import("zod").ZodOptional<import("zod").ZodString>;
1533
+ }, import("zod/v4/core").$strip>]>>>;
1534
+ params: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1535
+ name: import("zod").ZodString;
1536
+ min: import("zod").ZodNumber;
1537
+ max: import("zod").ZodNumber;
1538
+ step: import("zod").ZodOptional<import("zod").ZodNumber>;
1539
+ value: import("zod").ZodNumber;
1540
+ }, import("zod/v4/core").$strip>>>;
1541
+ xRange: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1542
+ yRange: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>, import("zod").ZodLiteral<"auto">]>>;
1543
+ derive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1544
+ kind: import("zod").ZodEnum<{
1545
+ intersections: "intersections";
1546
+ roots: "roots";
1547
+ tangent: "tangent";
1548
+ normal: "normal";
1549
+ area: "area";
1550
+ }>;
1551
+ of: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>]>>;
1552
+ at: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1553
+ between: import("zod").ZodOptional<import("zod").ZodTuple<[import("zod").ZodNumber, import("zod").ZodNumber], null>>;
1554
+ from: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1555
+ to: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodString]>>;
1556
+ label: import("zod").ZodOptional<import("zod").ZodString>;
1557
+ }, import("zod/v4/core").$strip>>>;
1558
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
1559
+ prompt: import("zod").ZodString;
1560
+ answer: import("zod").ZodUnion<readonly [import("zod").ZodObject<{
1561
+ kind: import("zod").ZodLiteral<"number">;
1562
+ value: import("zod").ZodNumber;
1563
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
1564
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1565
+ kind: import("zod").ZodLiteral<"expression">;
1566
+ value: import("zod").ZodString;
1567
+ }, import("zod/v4/core").$strip>]>;
1568
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
1569
+ }, import("zod/v4/core").$strip>>;
1570
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1571
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1572
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
1573
+ }, import("zod/v4/core").$strip>;
1574
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1575
+ equations?: (string | {
1576
+ expr: string;
1577
+ color?: string | undefined;
1578
+ })[] | undefined;
1579
+ params?: {
1580
+ name: string;
1581
+ min: number;
1582
+ max: number;
1583
+ value: number;
1584
+ step?: number | undefined;
1585
+ }[] | undefined;
1586
+ xRange?: [number, number] | undefined;
1587
+ yRange?: [number, number] | "auto" | undefined;
1588
+ derive?: {
1589
+ kind: "intersections" | "roots" | "tangent" | "normal" | "area";
1590
+ of?: number | [number, number] | undefined;
1591
+ at?: string | number | undefined;
1592
+ between?: [number, number] | undefined;
1593
+ from?: string | number | undefined;
1594
+ to?: string | number | undefined;
1595
+ label?: string | undefined;
1596
+ }[] | undefined;
1597
+ ask?: {
1598
+ prompt: string;
1599
+ answer: {
1600
+ kind: "number";
1601
+ value: number;
1602
+ tol?: number | undefined;
1603
+ } | {
1604
+ kind: "expression";
1605
+ value: string;
1606
+ };
1607
+ placeholder?: string | undefined;
1608
+ } | undefined;
1609
+ title?: string | undefined;
1610
+ prompt?: string | undefined;
1611
+ activity?: string | undefined;
1612
+ }>>;
1613
+ tag?: string;
1614
+ void?: boolean;
1615
+ toAttrs?: ((props: {
1616
+ equations?: (string | {
1617
+ expr: string;
1618
+ color?: string | undefined;
1619
+ })[] | undefined;
1620
+ params?: {
1621
+ name: string;
1622
+ min: number;
1623
+ max: number;
1624
+ value: number;
1625
+ step?: number | undefined;
1626
+ }[] | undefined;
1627
+ xRange?: [number, number] | undefined;
1628
+ yRange?: [number, number] | "auto" | undefined;
1629
+ derive?: {
1630
+ kind: "intersections" | "roots" | "tangent" | "normal" | "area";
1631
+ of?: number | [number, number] | undefined;
1632
+ at?: string | number | undefined;
1633
+ between?: [number, number] | undefined;
1634
+ from?: string | number | undefined;
1635
+ to?: string | number | undefined;
1636
+ label?: string | undefined;
1637
+ }[] | undefined;
1638
+ ask?: {
1639
+ prompt: string;
1640
+ answer: {
1641
+ kind: "number";
1642
+ value: number;
1643
+ tol?: number | undefined;
1644
+ } | {
1645
+ kind: "expression";
1646
+ value: string;
1647
+ };
1648
+ placeholder?: string | undefined;
1649
+ } | undefined;
1650
+ title?: string | undefined;
1651
+ prompt?: string | undefined;
1652
+ activity?: string | undefined;
1653
+ }) => Record<string, unknown>) | undefined;
1654
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1655
+ equations?: (string | {
1656
+ expr: string;
1657
+ color?: string | undefined;
1658
+ })[] | undefined;
1659
+ params?: {
1660
+ name: string;
1661
+ min: number;
1662
+ max: number;
1663
+ value: number;
1664
+ step?: number | undefined;
1665
+ }[] | undefined;
1666
+ xRange?: [number, number] | undefined;
1667
+ yRange?: [number, number] | "auto" | undefined;
1668
+ derive?: {
1669
+ kind: "intersections" | "roots" | "tangent" | "normal" | "area";
1670
+ of?: number | [number, number] | undefined;
1671
+ at?: string | number | undefined;
1672
+ between?: [number, number] | undefined;
1673
+ from?: string | number | undefined;
1674
+ to?: string | number | undefined;
1675
+ label?: string | undefined;
1676
+ }[] | undefined;
1677
+ ask?: {
1678
+ prompt: string;
1679
+ answer: {
1680
+ kind: "number";
1681
+ value: number;
1682
+ tol?: number | undefined;
1683
+ } | {
1684
+ kind: "expression";
1685
+ value: string;
1686
+ };
1687
+ placeholder?: string | undefined;
1688
+ } | undefined;
1689
+ title?: string | undefined;
1690
+ prompt?: string | undefined;
1691
+ activity?: string | undefined;
1692
+ }>) | undefined;
1693
+ } | {
1694
+ group: string;
1695
+ key: string;
1696
+ label: string;
1697
+ icon?: import("react").ComponentType<{
1698
+ className?: string;
1699
+ }>;
1700
+ description?: string;
1701
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1702
+ slash?: boolean;
1703
+ schema: import("zod").ZodObject<{
1704
+ angleDeg: import("zod").ZodOptional<import("zod").ZodNumber>;
1705
+ leg: import("zod").ZodOptional<import("zod").ZodNumber>;
1706
+ legKind: import("zod").ZodOptional<import("zod").ZodEnum<{
1707
+ opposite: "opposite";
1708
+ adjacent: "adjacent";
1709
+ }>>;
1710
+ mode: import("zod").ZodOptional<import("zod").ZodEnum<{
1711
+ elevation: "elevation";
1712
+ depression: "depression";
1713
+ plain: "plain";
1714
+ }>>;
1715
+ labels: import("zod").ZodOptional<import("zod").ZodObject<{
1716
+ opposite: import("zod").ZodOptional<import("zod").ZodString>;
1717
+ adjacent: import("zod").ZodOptional<import("zod").ZodString>;
1718
+ hypotenuse: import("zod").ZodOptional<import("zod").ZodString>;
1719
+ angle: import("zod").ZodOptional<import("zod").ZodString>;
1720
+ }, import("zod/v4/core").$strip>>;
1721
+ drive: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<{
1722
+ leg: "leg";
1723
+ angle: "angle";
1724
+ }>>>;
1725
+ ask: import("zod").ZodOptional<import("zod").ZodObject<{
1726
+ prompt: import("zod").ZodString;
1727
+ answer: import("zod").ZodUnion<readonly [import("zod").ZodObject<{
1728
+ kind: import("zod").ZodLiteral<"number">;
1729
+ value: import("zod").ZodNumber;
1730
+ tol: import("zod").ZodOptional<import("zod").ZodNumber>;
1731
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1732
+ kind: import("zod").ZodLiteral<"expression">;
1733
+ value: import("zod").ZodString;
1734
+ }, import("zod/v4/core").$strip>]>;
1735
+ placeholder: import("zod").ZodOptional<import("zod").ZodString>;
1736
+ }, import("zod/v4/core").$strip>>;
1737
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1738
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1739
+ activity: import("zod").ZodOptional<import("zod").ZodString>;
1740
+ }, import("zod/v4/core").$strip>;
1741
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1742
+ angleDeg?: number | undefined;
1743
+ leg?: number | undefined;
1744
+ legKind?: "opposite" | "adjacent" | undefined;
1745
+ mode?: "elevation" | "depression" | "plain" | undefined;
1746
+ labels?: {
1747
+ opposite?: string | undefined;
1748
+ adjacent?: string | undefined;
1749
+ hypotenuse?: string | undefined;
1750
+ angle?: string | undefined;
1751
+ } | undefined;
1752
+ drive?: ("leg" | "angle")[] | undefined;
1753
+ ask?: {
1754
+ prompt: string;
1755
+ answer: {
1756
+ kind: "number";
1757
+ value: number;
1758
+ tol?: number | undefined;
1759
+ } | {
1760
+ kind: "expression";
1761
+ value: string;
1762
+ };
1763
+ placeholder?: string | undefined;
1764
+ } | undefined;
1765
+ title?: string | undefined;
1766
+ prompt?: string | undefined;
1767
+ activity?: string | undefined;
1768
+ }>>;
1769
+ tag?: string;
1770
+ void?: boolean;
1771
+ toAttrs?: ((props: {
1772
+ angleDeg?: number | undefined;
1773
+ leg?: number | undefined;
1774
+ legKind?: "opposite" | "adjacent" | undefined;
1775
+ mode?: "elevation" | "depression" | "plain" | undefined;
1776
+ labels?: {
1777
+ opposite?: string | undefined;
1778
+ adjacent?: string | undefined;
1779
+ hypotenuse?: string | undefined;
1780
+ angle?: string | undefined;
1781
+ } | undefined;
1782
+ drive?: ("leg" | "angle")[] | undefined;
1783
+ ask?: {
1784
+ prompt: string;
1785
+ answer: {
1786
+ kind: "number";
1787
+ value: number;
1788
+ tol?: number | undefined;
1789
+ } | {
1790
+ kind: "expression";
1791
+ value: string;
1792
+ };
1793
+ placeholder?: string | undefined;
1794
+ } | undefined;
1795
+ title?: string | undefined;
1796
+ prompt?: string | undefined;
1797
+ activity?: string | undefined;
1798
+ }) => Record<string, unknown>) | undefined;
1799
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1800
+ angleDeg?: number | undefined;
1801
+ leg?: number | undefined;
1802
+ legKind?: "opposite" | "adjacent" | undefined;
1803
+ mode?: "elevation" | "depression" | "plain" | undefined;
1804
+ labels?: {
1805
+ opposite?: string | undefined;
1806
+ adjacent?: string | undefined;
1807
+ hypotenuse?: string | undefined;
1808
+ angle?: string | undefined;
1809
+ } | undefined;
1810
+ drive?: ("leg" | "angle")[] | undefined;
1811
+ ask?: {
1812
+ prompt: string;
1813
+ answer: {
1814
+ kind: "number";
1815
+ value: number;
1816
+ tol?: number | undefined;
1817
+ } | {
1818
+ kind: "expression";
1819
+ value: string;
1820
+ };
1821
+ placeholder?: string | undefined;
1822
+ } | undefined;
1823
+ title?: string | undefined;
1824
+ prompt?: string | undefined;
1825
+ activity?: string | undefined;
1826
+ }>) | undefined;
1827
+ } | {
1828
+ group: string;
1829
+ key: string;
1830
+ label: string;
1831
+ icon?: import("react").ComponentType<{
1832
+ className?: string;
1833
+ }>;
1834
+ description?: string;
1835
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1836
+ slash?: boolean;
1837
+ schema: import("zod").ZodObject<{
1838
+ targetMeters: import("zod").ZodOptional<import("zod").ZodNumber>;
1839
+ g: import("zod").ZodOptional<import("zod").ZodNumber>;
1840
+ }, import("zod/v4/core").$strip>;
1841
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1842
+ targetMeters?: number | undefined;
1843
+ g?: number | undefined;
1844
+ }>>;
1845
+ tag?: string;
1846
+ void?: boolean;
1847
+ toAttrs?: ((props: {
1848
+ targetMeters?: number | undefined;
1849
+ g?: number | undefined;
1850
+ }) => Record<string, unknown>) | undefined;
1851
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1852
+ targetMeters?: number | undefined;
1853
+ g?: number | undefined;
1854
+ }>) | 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
+ } | {
1872
+ group: string;
1873
+ key: string;
1874
+ label: string;
1875
+ icon?: import("react").ComponentType<{
1876
+ className?: string;
1877
+ }>;
1878
+ description?: string;
1879
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1880
+ slash?: boolean;
1881
+ schema: import("zod").ZodObject<{
1882
+ height: import("zod").ZodOptional<import("zod").ZodNumber>;
1883
+ }, import("zod/v4/core").$strip>;
1884
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1885
+ height?: number | undefined;
1886
+ }>>;
1887
+ tag?: string;
1888
+ void?: boolean;
1889
+ toAttrs?: ((props: {
1890
+ height?: number | undefined;
1891
+ }) => Record<string, unknown>) | undefined;
1892
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1893
+ height?: number | undefined;
1894
+ }>) | undefined;
1895
+ } | {
1896
+ group: string;
1897
+ key: string;
1898
+ label: string;
1899
+ icon?: import("react").ComponentType<{
1900
+ className?: string;
1901
+ }>;
1902
+ description?: string;
1903
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1904
+ slash?: boolean;
1905
+ 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>;
1909
+ 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;
1921
+ current?: number | undefined;
1922
+ riverWidth?: number | undefined;
1923
+ title?: string | undefined;
1924
+ }) => Record<string, unknown>) | undefined;
1925
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1926
+ boatSpeed?: number | undefined;
1927
+ current?: number | undefined;
1928
+ riverWidth?: number | undefined;
1929
+ title?: string | undefined;
1930
+ }>) | undefined;
1931
+ } | {
1932
+ group: string;
1933
+ key: string;
1934
+ label: string;
1935
+ icon?: import("react").ComponentType<{
1936
+ className?: string;
1937
+ }>;
1938
+ description?: string;
1939
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1940
+ slash?: boolean;
1941
+ 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>;
1946
+ }, import("zod/v4/core").$strip>;
1947
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
1948
+ knownWeight: number;
1949
+ knownDist: number;
1950
+ unknownDist: number;
1951
+ controlId?: string | undefined;
1952
+ }>>;
1953
+ tag?: string;
1954
+ void?: boolean;
1955
+ toAttrs?: ((props: {
1956
+ knownWeight: number;
1957
+ knownDist: number;
1958
+ unknownDist: number;
1959
+ controlId?: string | undefined;
1960
+ }) => Record<string, unknown>) | undefined;
1961
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
1962
+ knownWeight: number;
1963
+ knownDist: number;
1964
+ unknownDist: number;
1965
+ controlId?: string | undefined;
1966
+ }>) | undefined;
1967
+ } | {
1968
+ group: string;
1969
+ key: string;
1970
+ label: string;
1971
+ icon?: import("react").ComponentType<{
1972
+ className?: string;
1973
+ }>;
1974
+ description?: string;
1975
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
1976
+ slash?: boolean;
1977
+ 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>>;
1996
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1997
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
1998
+ }, import("zod/v4/core").$strip>;
1999
+ 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;
2014
+ title?: string | undefined;
2015
+ prompt?: string | undefined;
2016
+ }>>;
2017
+ tag?: string;
2018
+ void?: boolean;
2019
+ 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;
2034
+ title?: string | undefined;
2035
+ prompt?: string | undefined;
2036
+ }) => Record<string, unknown>) | undefined;
2037
+ 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;
2052
+ title?: string | undefined;
2053
+ prompt?: string | undefined;
2054
+ }>) | undefined;
2055
+ } | {
2056
+ group: string;
2057
+ key: string;
2058
+ label: string;
2059
+ icon?: import("react").ComponentType<{
2060
+ className?: string;
2061
+ }>;
2062
+ description?: string;
2063
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2064
+ slash?: boolean;
2065
+ schema: import("zod").ZodObject<{
2066
+ 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>>>;
2084
+ }, import("zod/v4/core").$strip>;
2085
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2086
+ 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;
2104
+ }>>;
2105
+ tag?: string;
2106
+ void?: boolean;
2107
+ toAttrs?: ((props: {
2108
+ 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;
2126
+ }) => Record<string, unknown>) | undefined;
2127
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2128
+ 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;
2146
+ }>) | undefined;
2147
+ } | {
2148
+ group: string;
2149
+ key: string;
2150
+ label: string;
2151
+ icon?: import("react").ComponentType<{
2152
+ className?: string;
2153
+ }>;
2154
+ description?: string;
2155
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2156
+ slash?: boolean;
2157
+ schema: import("zod").ZodObject<{
2158
+ maxSpeed: import("zod").ZodDefault<import("zod").ZodNumber>;
2159
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
2160
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2161
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2162
+ }, import("zod/v4/core").$strip>;
2163
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2164
+ maxSpeed: number;
2165
+ start: number;
2166
+ title?: string | undefined;
2167
+ prompt?: string | undefined;
2168
+ }>>;
2169
+ tag?: string;
2170
+ void?: boolean;
2171
+ toAttrs?: ((props: {
2172
+ maxSpeed: number;
2173
+ start: number;
2174
+ title?: string | undefined;
2175
+ prompt?: string | undefined;
2176
+ }) => Record<string, unknown>) | undefined;
2177
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2178
+ maxSpeed: number;
2179
+ start: number;
2180
+ title?: string | undefined;
2181
+ prompt?: string | undefined;
2182
+ }>) | undefined;
2183
+ } | {
2184
+ group: string;
2185
+ key: string;
2186
+ label: string;
2187
+ icon?: import("react").ComponentType<{
2188
+ className?: string;
2189
+ }>;
2190
+ description?: string;
2191
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2192
+ slash?: boolean;
2193
+ 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>;
2199
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2200
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2201
+ }, import("zod/v4/core").$strip>;
2202
+ 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;
2208
+ title?: string | undefined;
2209
+ prompt?: string | undefined;
2210
+ }>>;
2211
+ tag?: string;
2212
+ void?: boolean;
2213
+ toAttrs?: ((props: {
2214
+ speed: number;
2215
+ reactionTime: number;
2216
+ deceleration: number;
2217
+ predict: boolean;
2218
+ showGraphs: boolean;
2219
+ title?: string | undefined;
2220
+ prompt?: string | undefined;
2221
+ }) => Record<string, unknown>) | undefined;
2222
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2223
+ speed: number;
2224
+ reactionTime: number;
2225
+ deceleration: number;
2226
+ predict: boolean;
2227
+ showGraphs: boolean;
2228
+ title?: string | undefined;
2229
+ prompt?: string | undefined;
2230
+ }>) | undefined;
2231
+ } | {
2232
+ group: string;
2233
+ key: string;
2234
+ label: string;
2235
+ icon?: import("react").ComponentType<{
2236
+ className?: string;
2237
+ }>;
2238
+ description?: string;
2239
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2240
+ slash?: boolean;
2241
+ 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>;
2246
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2247
+ 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
+ }, import("zod/v4/core").$strip>;
2253
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2254
+ angleDeg: number;
2255
+ mass: number;
2256
+ friction: number;
2257
+ showComponents: boolean;
2258
+ title?: string | undefined;
2259
+ prompt?: string | undefined;
2260
+ controls?: {
2261
+ hide?: string[] | undefined;
2262
+ lock?: string[] | undefined;
2263
+ } | undefined;
2264
+ }>>;
2265
+ tag?: string;
2266
+ void?: boolean;
2267
+ toAttrs?: ((props: {
2268
+ angleDeg: number;
2269
+ mass: number;
2270
+ friction: number;
2271
+ showComponents: boolean;
2272
+ title?: string | undefined;
2273
+ prompt?: string | undefined;
2274
+ controls?: {
2275
+ hide?: string[] | undefined;
2276
+ lock?: string[] | undefined;
2277
+ } | undefined;
2278
+ }) => Record<string, unknown>) | undefined;
2279
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2280
+ angleDeg: number;
2281
+ mass: number;
2282
+ friction: number;
2283
+ showComponents: boolean;
2284
+ title?: string | undefined;
2285
+ prompt?: string | undefined;
2286
+ controls?: {
2287
+ hide?: string[] | undefined;
2288
+ lock?: string[] | undefined;
2289
+ } | undefined;
2290
+ }>) | undefined;
2291
+ } | {
2292
+ group: string;
2293
+ key: string;
2294
+ label: string;
2295
+ icon?: import("react").ComponentType<{
2296
+ className?: string;
2297
+ }>;
2298
+ description?: string;
2299
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2300
+ slash?: boolean;
2301
+ 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>;
2308
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2309
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2310
+ }, import("zod/v4/core").$strip>;
2311
+ 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;
2318
+ title?: string | undefined;
2319
+ prompt?: string | undefined;
2320
+ }>>;
2321
+ tag?: string;
2322
+ void?: boolean;
2323
+ toAttrs?: ((props: {
2324
+ m1: number;
2325
+ m2: number;
2326
+ u1: number;
2327
+ u2: number;
2328
+ elasticity: number;
2329
+ showCenterOfMass: boolean;
2330
+ title?: string | undefined;
2331
+ prompt?: string | undefined;
2332
+ }) => Record<string, unknown>) | undefined;
2333
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2334
+ m1: number;
2335
+ m2: number;
2336
+ u1: number;
2337
+ u2: number;
2338
+ elasticity: number;
2339
+ showCenterOfMass: boolean;
2340
+ title?: string | undefined;
2341
+ prompt?: string | undefined;
2342
+ }>) | undefined;
2343
+ } | {
2344
+ group: string;
2345
+ key: string;
2346
+ label: string;
2347
+ icon?: import("react").ComponentType<{
2348
+ className?: string;
2349
+ }>;
2350
+ description?: string;
2351
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2352
+ slash?: boolean;
2353
+ schema: import("zod").ZodObject<{
2354
+ holdConstant: import("zod").ZodDefault<import("zod").ZodEnum<{
2355
+ temperature: "temperature";
2356
+ none: "none";
2357
+ volume: "volume";
2358
+ pressure: "pressure";
2359
+ }>>;
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>;
2364
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2365
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2366
+ }, import("zod/v4/core").$strip>;
2367
+ 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;
2373
+ title?: string | undefined;
2374
+ prompt?: string | undefined;
2375
+ }>>;
2376
+ tag?: string;
2377
+ void?: boolean;
2378
+ toAttrs?: ((props: {
2379
+ holdConstant: "temperature" | "none" | "volume" | "pressure";
2380
+ particleCount: number;
2381
+ temperature: number;
2382
+ volume: number;
2383
+ showGauge: boolean;
2384
+ title?: string | undefined;
2385
+ prompt?: string | undefined;
2386
+ }) => Record<string, unknown>) | undefined;
2387
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2388
+ holdConstant: "temperature" | "none" | "volume" | "pressure";
2389
+ particleCount: number;
2390
+ temperature: number;
2391
+ volume: number;
2392
+ showGauge: boolean;
2393
+ title?: string | undefined;
2394
+ prompt?: string | undefined;
2395
+ }>) | undefined;
2396
+ } | {
2397
+ group: string;
2398
+ key: string;
2399
+ label: string;
2400
+ icon?: import("react").ComponentType<{
2401
+ className?: string;
2402
+ }>;
2403
+ description?: string;
2404
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2405
+ slash?: boolean;
2406
+ 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>;
2410
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2411
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2412
+ }, import("zod/v4/core").$strip>;
2413
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2414
+ moles: number;
2415
+ volume: number;
2416
+ showProbe: boolean;
2417
+ title?: string | undefined;
2418
+ prompt?: string | undefined;
2419
+ }>>;
2420
+ tag?: string;
2421
+ void?: boolean;
2422
+ toAttrs?: ((props: {
2423
+ moles: number;
2424
+ volume: number;
2425
+ showProbe: boolean;
2426
+ title?: string | undefined;
2427
+ prompt?: string | undefined;
2428
+ }) => Record<string, unknown>) | undefined;
2429
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2430
+ moles: number;
2431
+ volume: number;
2432
+ showProbe: boolean;
2433
+ title?: string | undefined;
2434
+ prompt?: string | undefined;
2435
+ }>) | undefined;
2436
+ } | {
2437
+ group: string;
2438
+ key: string;
2439
+ label: string;
2440
+ icon?: import("react").ComponentType<{
2441
+ className?: string;
2442
+ }>;
2443
+ description?: string;
2444
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2445
+ slash?: boolean;
2446
+ 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>;
2450
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2451
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2452
+ }, import("zod/v4/core").$strip>;
2453
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2454
+ stockConcentration: number;
2455
+ aliquotVolume: number;
2456
+ finalVolume: number;
2457
+ title?: string | undefined;
2458
+ prompt?: string | undefined;
2459
+ }>>;
2460
+ tag?: string;
2461
+ void?: boolean;
2462
+ toAttrs?: ((props: {
2463
+ stockConcentration: number;
2464
+ aliquotVolume: number;
2465
+ finalVolume: number;
2466
+ title?: string | undefined;
2467
+ prompt?: string | undefined;
2468
+ }) => Record<string, unknown>) | undefined;
2469
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2470
+ stockConcentration: number;
2471
+ aliquotVolume: number;
2472
+ finalVolume: number;
2473
+ title?: string | undefined;
2474
+ prompt?: string | undefined;
2475
+ }>) | undefined;
2476
+ } | {
2477
+ group: string;
2478
+ key: string;
2479
+ label: string;
2480
+ icon?: import("react").ComponentType<{
2481
+ className?: string;
2482
+ }>;
2483
+ description?: string;
2484
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2485
+ slash?: boolean;
2486
+ schema: import("zod").ZodObject<{
2487
+ protons: import("zod").ZodOptional<import("zod").ZodNumber>;
2488
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2489
+ }, import("zod/v4/core").$strip>;
2490
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2491
+ protons?: number | undefined;
2492
+ title?: string | undefined;
2493
+ }>>;
2494
+ tag?: string;
2495
+ void?: boolean;
2496
+ toAttrs?: ((props: {
2497
+ protons?: number | undefined;
2498
+ title?: string | undefined;
2499
+ }) => Record<string, unknown>) | undefined;
2500
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2501
+ protons?: number | undefined;
2502
+ title?: string | undefined;
2503
+ }>) | undefined;
2504
+ } | {
2505
+ group: string;
2506
+ key: string;
2507
+ label: string;
2508
+ icon?: import("react").ComponentType<{
2509
+ className?: string;
2510
+ }>;
2511
+ description?: string;
2512
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2513
+ slash?: boolean;
2514
+ 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>;
2518
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2519
+ }, import("zod/v4/core").$strip>;
2520
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2521
+ deltaH?: number | undefined;
2522
+ activationEnergy?: number | undefined;
2523
+ catalyst?: boolean | undefined;
2524
+ title?: string | undefined;
2525
+ }>>;
2526
+ tag?: string;
2527
+ void?: boolean;
2528
+ toAttrs?: ((props: {
2529
+ deltaH?: number | undefined;
2530
+ activationEnergy?: number | undefined;
2531
+ catalyst?: boolean | undefined;
2532
+ title?: string | undefined;
2533
+ }) => Record<string, unknown>) | undefined;
2534
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2535
+ deltaH?: number | undefined;
2536
+ activationEnergy?: number | undefined;
2537
+ catalyst?: boolean | undefined;
2538
+ title?: string | undefined;
2539
+ }>) | undefined;
2540
+ } | {
2541
+ group: string;
2542
+ key: string;
2543
+ label: string;
2544
+ icon?: import("react").ComponentType<{
2545
+ className?: string;
2546
+ }>;
2547
+ description?: string;
2548
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2549
+ slash?: boolean;
2550
+ schema: import("zod").ZodObject<{
2551
+ a: import("zod").ZodOptional<import("zod").ZodString>;
2552
+ b: import("zod").ZodOptional<import("zod").ZodString>;
2553
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2554
+ }, import("zod/v4/core").$strip>;
2555
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2556
+ a?: string | undefined;
2557
+ b?: string | undefined;
2558
+ title?: string | undefined;
2559
+ }>>;
2560
+ tag?: string;
2561
+ void?: boolean;
2562
+ toAttrs?: ((props: {
2563
+ a?: string | undefined;
2564
+ b?: string | undefined;
2565
+ title?: string | undefined;
2566
+ }) => Record<string, unknown>) | undefined;
2567
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2568
+ a?: string | undefined;
2569
+ b?: string | undefined;
2570
+ title?: string | undefined;
2571
+ }>) | undefined;
2572
+ } | {
2573
+ group: string;
2574
+ key: string;
2575
+ label: string;
2576
+ icon?: import("react").ComponentType<{
2577
+ className?: string;
2578
+ }>;
2579
+ description?: string;
2580
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2581
+ slash?: boolean;
2582
+ schema: import("zod").ZodObject<{
2583
+ emf: import("zod").ZodOptional<import("zod").ZodNumber>;
2584
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2585
+ }, import("zod/v4/core").$strip>;
2586
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2587
+ emf?: number | undefined;
2588
+ title?: string | undefined;
2589
+ }>>;
2590
+ tag?: string;
2591
+ void?: boolean;
2592
+ toAttrs?: ((props: {
2593
+ emf?: number | undefined;
2594
+ title?: string | undefined;
2595
+ }) => Record<string, unknown>) | undefined;
2596
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2597
+ emf?: number | undefined;
2598
+ title?: string | undefined;
2599
+ }>) | undefined;
2600
+ } | {
2601
+ group: string;
2602
+ key: string;
2603
+ label: string;
2604
+ icon?: import("react").ComponentType<{
2605
+ className?: string;
2606
+ }>;
2607
+ description?: string;
2608
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2609
+ slash?: boolean;
2610
+ schema: import("zod").ZodObject<{
2611
+ factor: import("zod").ZodDefault<import("zod").ZodEnum<{
2612
+ temperature: "temperature";
2613
+ pH: "pH";
2614
+ }>>;
2615
+ optimum: import("zod").ZodDefault<import("zod").ZodNumber>;
2616
+ factorMin: import("zod").ZodDefault<import("zod").ZodNumber>;
2617
+ factorMax: import("zod").ZodDefault<import("zod").ZodNumber>;
2618
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2619
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2620
+ }, import("zod/v4/core").$strip>;
2621
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2622
+ factor: "temperature" | "pH";
2623
+ optimum: number;
2624
+ factorMin: number;
2625
+ factorMax: number;
2626
+ title?: string | undefined;
2627
+ prompt?: string | undefined;
2628
+ }>>;
2629
+ tag?: string;
2630
+ void?: boolean;
2631
+ toAttrs?: ((props: {
2632
+ factor: "temperature" | "pH";
2633
+ optimum: number;
2634
+ factorMin: number;
2635
+ factorMax: number;
2636
+ title?: string | undefined;
2637
+ prompt?: string | undefined;
2638
+ }) => Record<string, unknown>) | undefined;
2639
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2640
+ factor: "temperature" | "pH";
2641
+ optimum: number;
2642
+ factorMin: number;
2643
+ factorMax: number;
2644
+ title?: string | undefined;
2645
+ prompt?: string | undefined;
2646
+ }>) | undefined;
2647
+ } | {
2648
+ group: string;
2649
+ key: string;
2650
+ label: string;
2651
+ icon?: import("react").ComponentType<{
2652
+ className?: string;
2653
+ }>;
2654
+ description?: string;
2655
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2656
+ slash?: boolean;
2657
+ 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
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2663
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2664
+ }, import("zod/v4/core").$strip>;
2665
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2666
+ light: number;
2667
+ co2: number;
2668
+ temperature: number;
2669
+ tempOptimum: number;
2670
+ title?: string | undefined;
2671
+ prompt?: string | undefined;
2672
+ }>>;
2673
+ tag?: string;
2674
+ void?: boolean;
2675
+ toAttrs?: ((props: {
2676
+ light: number;
2677
+ co2: number;
2678
+ temperature: number;
2679
+ tempOptimum: number;
2680
+ title?: string | undefined;
2681
+ prompt?: string | undefined;
2682
+ }) => Record<string, unknown>) | undefined;
2683
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2684
+ light: number;
2685
+ co2: number;
2686
+ temperature: number;
2687
+ tempOptimum: number;
2688
+ title?: string | undefined;
2689
+ prompt?: string | undefined;
2690
+ }>) | undefined;
2691
+ } | {
2692
+ group: string;
2693
+ key: string;
2694
+ label: string;
2695
+ icon?: import("react").ComponentType<{
2696
+ className?: string;
2697
+ }>;
2698
+ description?: string;
2699
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2700
+ slash?: boolean;
2701
+ 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>;
2708
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2709
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2710
+ }, import("zod/v4/core").$strip>;
2711
+ 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;
2718
+ title?: string | undefined;
2719
+ prompt?: string | undefined;
2720
+ }>>;
2721
+ tag?: string;
2722
+ void?: boolean;
2723
+ toAttrs?: ((props: {
2724
+ parent1: string;
2725
+ parent2: string;
2726
+ alleleLetter: string;
2727
+ dominantLabel: string;
2728
+ recessiveLabel: string;
2729
+ predictFirst: boolean;
2730
+ title?: string | undefined;
2731
+ prompt?: string | undefined;
2732
+ }) => Record<string, unknown>) | undefined;
2733
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2734
+ parent1: string;
2735
+ parent2: string;
2736
+ alleleLetter: string;
2737
+ dominantLabel: string;
2738
+ recessiveLabel: string;
2739
+ predictFirst: boolean;
2740
+ title?: string | undefined;
2741
+ prompt?: string | undefined;
2742
+ }>) | undefined;
2743
+ } | {
2744
+ group: string;
2745
+ key: string;
2746
+ label: string;
2747
+ icon?: import("react").ComponentType<{
2748
+ className?: string;
2749
+ }>;
2750
+ description?: string;
2751
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2752
+ slash?: boolean;
2753
+ schema: import("zod").ZodObject<{
2754
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
2755
+ day: "day";
2756
+ night: "night";
2757
+ }>>;
2758
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2759
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2760
+ }, import("zod/v4/core").$strip>;
2761
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2762
+ mode: "day" | "night";
2763
+ title?: string | undefined;
2764
+ prompt?: string | undefined;
2765
+ }>>;
2766
+ tag?: string;
2767
+ void?: boolean;
2768
+ toAttrs?: ((props: {
2769
+ mode: "day" | "night";
2770
+ title?: string | undefined;
2771
+ prompt?: string | undefined;
2772
+ }) => Record<string, unknown>) | undefined;
2773
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2774
+ mode: "day" | "night";
2775
+ title?: string | undefined;
2776
+ prompt?: string | undefined;
2777
+ }>) | undefined;
2778
+ } | {
2779
+ group: string;
2780
+ key: string;
2781
+ label: string;
2782
+ icon?: import("react").ComponentType<{
2783
+ className?: string;
2784
+ }>;
2785
+ description?: string;
2786
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2787
+ slash?: boolean;
2788
+ 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>;
2813
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2814
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2815
+ }, import("zod/v4/core").$strip>;
2816
+ 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;
2835
+ title?: string | undefined;
2836
+ prompt?: string | undefined;
2837
+ }>>;
2838
+ tag?: string;
2839
+ void?: boolean;
2840
+ 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;
2859
+ title?: string | undefined;
2860
+ prompt?: string | undefined;
2861
+ }) => Record<string, unknown>) | undefined;
2862
+ 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;
2881
+ title?: string | undefined;
2882
+ prompt?: string | undefined;
2883
+ }>) | undefined;
2884
+ } | {
2885
+ group: string;
2886
+ key: string;
2887
+ label: string;
2888
+ icon?: import("react").ComponentType<{
2889
+ className?: string;
2890
+ }>;
2891
+ description?: string;
2892
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2893
+ slash?: boolean;
2894
+ schema: import("zod").ZodObject<{
2895
+ kind: import("zod").ZodDefault<import("zod").ZodEnum<{
2896
+ replication: "replication";
2897
+ transcription: "transcription";
2898
+ translation: "translation";
2899
+ }>>;
2900
+ template: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2901
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2902
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2903
+ }, import("zod/v4/core").$strip>;
2904
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2905
+ kind: "replication" | "transcription" | "translation";
2906
+ template?: string[] | undefined;
2907
+ title?: string | undefined;
2908
+ prompt?: string | undefined;
2909
+ }>>;
2910
+ tag?: string;
2911
+ void?: boolean;
2912
+ toAttrs?: ((props: {
2913
+ kind: "replication" | "transcription" | "translation";
2914
+ template?: string[] | undefined;
2915
+ title?: string | undefined;
2916
+ prompt?: string | undefined;
2917
+ }) => Record<string, unknown>) | undefined;
2918
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
2919
+ kind: "replication" | "transcription" | "translation";
2920
+ template?: string[] | undefined;
2921
+ title?: string | undefined;
2922
+ prompt?: string | undefined;
2923
+ }>) | undefined;
2924
+ } | {
2925
+ group: string;
2926
+ key: string;
2927
+ label: string;
2928
+ icon?: import("react").ComponentType<{
2929
+ className?: string;
2930
+ }>;
2931
+ description?: string;
2932
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2933
+ slash?: boolean;
2934
+ 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>;
2941
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2942
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2943
+ }, import("zod/v4/core").$strip>;
2944
+ 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;
2951
+ 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;
2963
+ title?: string | undefined;
2964
+ prompt?: string | undefined;
2965
+ }) => Record<string, unknown>) | undefined;
2966
+ 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;
2973
+ title?: string | undefined;
2974
+ prompt?: string | undefined;
2975
+ }>) | undefined;
2976
+ } | {
2977
+ group: string;
2978
+ key: string;
2979
+ label: string;
2980
+ icon?: import("react").ComponentType<{
2981
+ className?: string;
2982
+ }>;
2983
+ description?: string;
2984
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
2985
+ slash?: boolean;
2986
+ schema: import("zod").ZodObject<{
2987
+ dna: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2988
+ title: import("zod").ZodOptional<import("zod").ZodString>;
2989
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
2990
+ }, import("zod/v4/core").$strip>;
2991
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
2992
+ dna?: string[] | undefined;
2993
+ title?: string | undefined;
2994
+ prompt?: string | undefined;
2995
+ }>>;
2996
+ tag?: string;
2997
+ void?: boolean;
2998
+ toAttrs?: ((props: {
2999
+ dna?: string[] | undefined;
3000
+ title?: string | undefined;
3001
+ prompt?: string | undefined;
3002
+ }) => Record<string, unknown>) | undefined;
3003
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3004
+ dna?: string[] | undefined;
3005
+ title?: string | undefined;
3006
+ prompt?: string | undefined;
3007
+ }>) | undefined;
3008
+ } | {
3009
+ group: string;
3010
+ key: string;
3011
+ label: string;
3012
+ icon?: import("react").ComponentType<{
3013
+ className?: string;
3014
+ }>;
3015
+ description?: string;
3016
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3017
+ slash?: boolean;
3018
+ 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
+ }>>;
3026
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3027
+ }, import("zod/v4/core").$strip>;
3028
+ 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;
3033
+ title?: string | undefined;
3034
+ }>>;
3035
+ tag?: string;
3036
+ void?: boolean;
3037
+ toAttrs?: ((props: {
3038
+ voltage?: number | undefined;
3039
+ r1?: number | undefined;
3040
+ r2?: number | undefined;
3041
+ mode?: "series" | "parallel" | undefined;
3042
+ title?: string | undefined;
3043
+ }) => Record<string, unknown>) | undefined;
3044
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3045
+ voltage?: number | undefined;
3046
+ r1?: number | undefined;
3047
+ r2?: number | undefined;
3048
+ mode?: "series" | "parallel" | undefined;
3049
+ title?: string | undefined;
3050
+ }>) | undefined;
3051
+ } | {
3052
+ group: string;
3053
+ key: string;
3054
+ label: string;
3055
+ icon?: import("react").ComponentType<{
3056
+ className?: string;
3057
+ }>;
3058
+ description?: string;
3059
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3060
+ slash?: boolean;
3061
+ 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>>>;
3064
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3065
+ }, import("zod/v4/core").$strip>;
3066
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3067
+ battery?: number | undefined;
3068
+ components?: Record<string, unknown>[] | undefined;
3069
+ title?: string | undefined;
3070
+ }>>;
3071
+ tag?: string;
3072
+ void?: boolean;
3073
+ toAttrs?: ((props: {
3074
+ battery?: number | undefined;
3075
+ components?: Record<string, unknown>[] | undefined;
3076
+ title?: string | undefined;
3077
+ }) => Record<string, unknown>) | undefined;
3078
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3079
+ battery?: number | undefined;
3080
+ components?: Record<string, unknown>[] | undefined;
3081
+ title?: string | undefined;
3082
+ }>) | undefined;
3083
+ } | {
3084
+ group: string;
3085
+ key: string;
3086
+ label: string;
3087
+ icon?: import("react").ComponentType<{
3088
+ className?: string;
3089
+ }>;
3090
+ description?: string;
3091
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3092
+ slash?: boolean;
3093
+ 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>;
3098
+ }, import("zod/v4/core").$strip>;
3099
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3100
+ emf: number;
3101
+ bulbOhms: number;
3102
+ withSwitch: boolean;
3103
+ controlId?: string | undefined;
3104
+ }>>;
3105
+ tag?: string;
3106
+ void?: boolean;
3107
+ toAttrs?: ((props: {
3108
+ emf: number;
3109
+ bulbOhms: number;
3110
+ withSwitch: boolean;
3111
+ controlId?: string | undefined;
3112
+ }) => Record<string, unknown>) | undefined;
3113
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3114
+ emf: number;
3115
+ bulbOhms: number;
3116
+ withSwitch: boolean;
3117
+ controlId?: string | undefined;
3118
+ }>) | undefined;
3119
+ } | {
3120
+ group: string;
3121
+ key: string;
3122
+ label: string;
3123
+ icon?: import("react").ComponentType<{
3124
+ className?: string;
3125
+ }>;
3126
+ description?: string;
3127
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3128
+ slash?: boolean;
3129
+ 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>;
3135
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3136
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3137
+ }, import("zod/v4/core").$strip>;
3138
+ 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;
3144
+ title?: string | undefined;
3145
+ prompt?: string | undefined;
3146
+ }>>;
3147
+ tag?: string;
3148
+ void?: boolean;
3149
+ toAttrs?: ((props: {
3150
+ emf: number;
3151
+ rK: number;
3152
+ capU: number;
3153
+ leakK: number;
3154
+ startCharged?: boolean | undefined;
3155
+ title?: string | undefined;
3156
+ prompt?: string | undefined;
3157
+ }) => Record<string, unknown>) | undefined;
3158
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3159
+ emf: number;
3160
+ rK: number;
3161
+ capU: number;
3162
+ leakK: number;
3163
+ startCharged?: boolean | undefined;
3164
+ title?: string | undefined;
3165
+ prompt?: string | undefined;
3166
+ }>) | undefined;
3167
+ } | {
3168
+ group: string;
3169
+ key: string;
3170
+ label: string;
3171
+ icon?: import("react").ComponentType<{
3172
+ className?: string;
3173
+ }>;
3174
+ description?: string;
3175
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3176
+ slash?: boolean;
3177
+ schema: import("zod").ZodObject<{
3178
+ scene: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
3179
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3180
+ }, import("zod/v4/core").$strip>;
3181
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3182
+ scene?: Record<string, unknown>[] | undefined;
3183
+ title?: string | undefined;
3184
+ }>>;
3185
+ tag?: string;
3186
+ void?: boolean;
3187
+ toAttrs?: ((props: {
3188
+ scene?: Record<string, unknown>[] | undefined;
3189
+ title?: string | undefined;
3190
+ }) => Record<string, unknown>) | undefined;
3191
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3192
+ scene?: Record<string, unknown>[] | undefined;
3193
+ title?: string | undefined;
3194
+ }>) | undefined;
3195
+ } | {
3196
+ group: string;
3197
+ key: string;
3198
+ label: string;
3199
+ icon?: import("react").ComponentType<{
3200
+ className?: string;
3201
+ }>;
3202
+ description?: string;
3203
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3204
+ slash?: boolean;
3205
+ schema: import("zod").ZodObject<{
3206
+ r1: import("zod").ZodOptional<import("zod").ZodNumber>;
3207
+ r2: import("zod").ZodOptional<import("zod").ZodNumber>;
3208
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3209
+ }, import("zod/v4/core").$strip>;
3210
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3211
+ r1?: number | undefined;
3212
+ r2?: number | undefined;
3213
+ title?: string | undefined;
3214
+ }>>;
3215
+ tag?: string;
3216
+ void?: boolean;
3217
+ toAttrs?: ((props: {
3218
+ r1?: number | undefined;
3219
+ r2?: number | undefined;
3220
+ title?: string | undefined;
3221
+ }) => Record<string, unknown>) | undefined;
3222
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3223
+ r1?: number | undefined;
3224
+ r2?: number | undefined;
3225
+ title?: string | undefined;
3226
+ }>) | undefined;
3227
+ } | {
3228
+ group: string;
3229
+ key: string;
3230
+ label: string;
3231
+ icon?: import("react").ComponentType<{
3232
+ className?: string;
3233
+ }>;
3234
+ description?: string;
3235
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3236
+ slash?: boolean;
3237
+ schema: import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>;
3238
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<unknown>>;
3239
+ tag?: string;
3240
+ void?: boolean;
3241
+ toAttrs?: ((props: unknown) => Record<string, unknown>) | undefined;
3242
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<unknown>) | undefined;
3243
+ } | {
3244
+ group: string;
3245
+ key: string;
3246
+ label: string;
3247
+ icon?: import("react").ComponentType<{
3248
+ className?: string;
3249
+ }>;
3250
+ description?: string;
3251
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3252
+ slash?: boolean;
3253
+ schema: import("zod").ZodObject<{
3254
+ base: import("zod").ZodDefault<import("zod").ZodNumber>;
3255
+ width: import("zod").ZodDefault<import("zod").ZodNumber>;
3256
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
3257
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
3258
+ showWeights: import("zod").ZodDefault<import("zod").ZodBoolean>;
3259
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3260
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3261
+ }, import("zod/v4/core").$strip>;
3262
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3263
+ base: number;
3264
+ width: number;
3265
+ start: number;
3266
+ showWeights: boolean;
3267
+ target?: number | undefined;
3268
+ title?: string | undefined;
3269
+ prompt?: string | undefined;
3270
+ }>>;
3271
+ tag?: string;
3272
+ void?: boolean;
3273
+ toAttrs?: ((props: {
3274
+ base: number;
3275
+ width: number;
3276
+ start: number;
3277
+ showWeights: boolean;
3278
+ target?: number | undefined;
3279
+ title?: string | undefined;
3280
+ prompt?: string | undefined;
3281
+ }) => Record<string, unknown>) | undefined;
3282
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3283
+ base: number;
3284
+ width: number;
3285
+ start: number;
3286
+ showWeights: boolean;
3287
+ target?: number | undefined;
3288
+ title?: string | undefined;
3289
+ prompt?: string | undefined;
3290
+ }>) | undefined;
3291
+ } | {
3292
+ group: string;
3293
+ key: string;
3294
+ label: string;
3295
+ icon?: import("react").ComponentType<{
3296
+ className?: string;
3297
+ }>;
3298
+ description?: string;
3299
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3300
+ slash?: boolean;
3301
+ schema: import("zod").ZodObject<{
3302
+ width: import("zod").ZodDefault<import("zod").ZodNumber>;
3303
+ groupSize: import("zod").ZodDefault<import("zod").ZodNumber>;
3304
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
3305
+ showColor: import("zod").ZodDefault<import("zod").ZodBoolean>;
3306
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3307
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3308
+ }, import("zod/v4/core").$strip>;
3309
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3310
+ width: number;
3311
+ groupSize: number;
3312
+ start: number;
3313
+ showColor: boolean;
3314
+ title?: string | undefined;
3315
+ prompt?: string | undefined;
3316
+ }>>;
3317
+ tag?: string;
3318
+ void?: boolean;
3319
+ toAttrs?: ((props: {
3320
+ width: number;
3321
+ groupSize: number;
3322
+ start: number;
3323
+ showColor: boolean;
3324
+ title?: string | undefined;
3325
+ prompt?: string | undefined;
3326
+ }) => Record<string, unknown>) | undefined;
3327
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3328
+ width: number;
3329
+ groupSize: number;
3330
+ start: number;
3331
+ showColor: boolean;
3332
+ title?: string | undefined;
3333
+ prompt?: string | undefined;
3334
+ }>) | undefined;
3335
+ } | {
3336
+ group: string;
3337
+ key: string;
3338
+ label: string;
3339
+ icon?: import("react").ComponentType<{
3340
+ className?: string;
3341
+ }>;
3342
+ description?: string;
3343
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3344
+ slash?: boolean;
3345
+ schema: import("zod").ZodObject<{
3346
+ max: import("zod").ZodDefault<import("zod").ZodNumber>;
3347
+ start: import("zod").ZodDefault<import("zod").ZodNumber>;
3348
+ race: import("zod").ZodDefault<import("zod").ZodBoolean>;
3349
+ speed: import("zod").ZodDefault<import("zod").ZodNumber>;
3350
+ highlightBase: import("zod").ZodOptional<import("zod").ZodNumber>;
3351
+ target: import("zod").ZodOptional<import("zod").ZodNumber>;
3352
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3353
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3354
+ }, import("zod/v4/core").$strip>;
3355
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3356
+ max: number;
3357
+ start: number;
3358
+ race: boolean;
3359
+ speed: number;
3360
+ highlightBase?: number | undefined;
3361
+ target?: number | undefined;
3362
+ title?: string | undefined;
3363
+ prompt?: string | undefined;
3364
+ }>>;
3365
+ tag?: string;
3366
+ void?: boolean;
3367
+ toAttrs?: ((props: {
3368
+ max: number;
3369
+ start: number;
3370
+ race: boolean;
3371
+ speed: number;
3372
+ highlightBase?: number | undefined;
3373
+ target?: number | undefined;
3374
+ title?: string | undefined;
3375
+ prompt?: string | undefined;
3376
+ }) => Record<string, unknown>) | undefined;
3377
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3378
+ max: number;
3379
+ start: number;
3380
+ race: boolean;
3381
+ speed: number;
3382
+ highlightBase?: number | undefined;
3383
+ target?: number | undefined;
3384
+ title?: string | undefined;
3385
+ prompt?: string | undefined;
3386
+ }>) | undefined;
3387
+ } | {
3388
+ group: string;
3389
+ key: string;
3390
+ label: string;
3391
+ icon?: import("react").ComponentType<{
3392
+ className?: string;
3393
+ }>;
3394
+ description?: string;
3395
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3396
+ slash?: boolean;
3397
+ schema: import("zod").ZodObject<{
3398
+ tiles: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3399
+ text: import("zod").ZodString;
3400
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
3401
+ noun: "noun";
3402
+ verb: "verb";
3403
+ article: "article";
3404
+ adjective: "adjective";
3405
+ preposition: "preposition";
3406
+ pronoun: "pronoun";
3407
+ conjunction: "conjunction";
3408
+ adverb: "adverb";
3409
+ other: "other";
3410
+ }>>;
3411
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
3412
+ }, import("zod/v4/core").$strip>>>;
3413
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3414
+ promptDir: import("zod").ZodDefault<import("zod").ZodEnum<{
3415
+ ltr: "ltr";
3416
+ rtl: "rtl";
3417
+ }>>;
3418
+ targetDir: import("zod").ZodDefault<import("zod").ZodEnum<{
3419
+ ltr: "ltr";
3420
+ rtl: "rtl";
3421
+ }>>;
3422
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3423
+ }, import("zod/v4/core").$strip>;
3424
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3425
+ tiles: {
3426
+ text: string;
3427
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3428
+ gloss?: string | undefined;
3429
+ }[];
3430
+ promptDir: "ltr" | "rtl";
3431
+ targetDir: "ltr" | "rtl";
3432
+ prompt?: string | undefined;
3433
+ title?: string | undefined;
3434
+ }>>;
3435
+ tag?: string;
3436
+ void?: boolean;
3437
+ toAttrs?: ((props: {
3438
+ tiles: {
3439
+ text: string;
3440
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3441
+ gloss?: string | undefined;
3442
+ }[];
3443
+ promptDir: "ltr" | "rtl";
3444
+ targetDir: "ltr" | "rtl";
3445
+ prompt?: string | undefined;
3446
+ title?: string | undefined;
3447
+ }) => Record<string, unknown>) | undefined;
3448
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3449
+ tiles: {
3450
+ text: string;
3451
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3452
+ gloss?: string | undefined;
3453
+ }[];
3454
+ promptDir: "ltr" | "rtl";
3455
+ targetDir: "ltr" | "rtl";
3456
+ prompt?: string | undefined;
3457
+ title?: string | undefined;
3458
+ }>) | undefined;
3459
+ } | {
3460
+ group: string;
3461
+ key: string;
3462
+ label: string;
3463
+ icon?: import("react").ComponentType<{
3464
+ className?: string;
3465
+ }>;
3466
+ description?: string;
3467
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3468
+ slash?: boolean;
3469
+ schema: import("zod").ZodObject<{
3470
+ deck: import("zod").ZodDefault<import("zod").ZodObject<{
3471
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3472
+ termLang: import("zod").ZodString;
3473
+ transLang: import("zod").ZodString;
3474
+ items: import("zod").ZodArray<import("zod").ZodObject<{
3475
+ term: import("zod").ZodString;
3476
+ translation: import("zod").ZodString;
3477
+ transliteration: import("zod").ZodOptional<import("zod").ZodString>;
3478
+ audioUrl: import("zod").ZodOptional<import("zod").ZodString>;
3479
+ icon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
3480
+ kind: import("zod").ZodEnum<{
3481
+ emoji: "emoji";
3482
+ svg: "svg";
3483
+ image: "image";
3484
+ }>;
3485
+ id: import("zod").ZodOptional<import("zod").ZodString>;
3486
+ src: import("zod").ZodOptional<import("zod").ZodString>;
3487
+ alt: import("zod").ZodString;
3488
+ }, import("zod/v4/core").$strip>]>>;
3489
+ example: import("zod").ZodOptional<import("zod").ZodString>;
3490
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3491
+ }, import("zod/v4/core").$strip>>;
3492
+ }, import("zod/v4/core").$strip>>;
3493
+ count: import("zod").ZodOptional<import("zod").ZodNumber>;
3494
+ show: import("zod").ZodDefault<import("zod").ZodEnum<{
3495
+ translation: "translation";
3496
+ icon: "icon";
3497
+ }>>;
3498
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3499
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3500
+ }, import("zod/v4/core").$strip>;
3501
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3502
+ deck: {
3503
+ termLang: string;
3504
+ transLang: string;
3505
+ items: {
3506
+ term: string;
3507
+ translation: string;
3508
+ transliteration?: string | undefined;
3509
+ audioUrl?: string | undefined;
3510
+ icon?: string | {
3511
+ kind: "emoji" | "svg" | "image";
3512
+ alt: string;
3513
+ id?: string | undefined;
3514
+ src?: string | undefined;
3515
+ } | undefined;
3516
+ example?: string | undefined;
3517
+ tags?: string[] | undefined;
3518
+ }[];
3519
+ title?: string | undefined;
3520
+ };
3521
+ show: "translation" | "icon";
3522
+ count?: number | undefined;
3523
+ title?: string | undefined;
3524
+ prompt?: string | undefined;
3525
+ }>>;
3526
+ tag?: string;
3527
+ void?: boolean;
3528
+ toAttrs?: ((props: {
3529
+ deck: {
3530
+ termLang: string;
3531
+ transLang: string;
3532
+ items: {
3533
+ term: string;
3534
+ translation: string;
3535
+ transliteration?: string | undefined;
3536
+ audioUrl?: string | undefined;
3537
+ icon?: string | {
3538
+ kind: "emoji" | "svg" | "image";
3539
+ alt: string;
3540
+ id?: string | undefined;
3541
+ src?: string | undefined;
3542
+ } | undefined;
3543
+ example?: string | undefined;
3544
+ tags?: string[] | undefined;
3545
+ }[];
3546
+ title?: string | undefined;
3547
+ };
3548
+ show: "translation" | "icon";
3549
+ count?: number | undefined;
3550
+ title?: string | undefined;
3551
+ prompt?: string | undefined;
3552
+ }) => Record<string, unknown>) | undefined;
3553
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3554
+ deck: {
3555
+ termLang: string;
3556
+ transLang: string;
3557
+ items: {
3558
+ term: string;
3559
+ translation: string;
3560
+ transliteration?: string | undefined;
3561
+ audioUrl?: string | undefined;
3562
+ icon?: string | {
3563
+ kind: "emoji" | "svg" | "image";
3564
+ alt: string;
3565
+ id?: string | undefined;
3566
+ src?: string | undefined;
3567
+ } | undefined;
3568
+ example?: string | undefined;
3569
+ tags?: string[] | undefined;
3570
+ }[];
3571
+ title?: string | undefined;
3572
+ };
3573
+ show: "translation" | "icon";
3574
+ count?: number | undefined;
3575
+ title?: string | undefined;
3576
+ prompt?: string | undefined;
3577
+ }>) | undefined;
3578
+ } | {
3579
+ group: string;
3580
+ key: string;
3581
+ label: string;
3582
+ icon?: import("react").ComponentType<{
3583
+ className?: string;
3584
+ }>;
3585
+ description?: string;
3586
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3587
+ slash?: boolean;
3588
+ schema: import("zod").ZodObject<{
3589
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3590
+ before: import("zod").ZodString;
3591
+ noun: import("zod").ZodString;
3592
+ after: import("zod").ZodOptional<import("zod").ZodString>;
3593
+ answer: import("zod").ZodEnum<{
3594
+ a: "a";
3595
+ an: "an";
3596
+ the: "the";
3597
+ "\u2014": "—";
3598
+ }>;
3599
+ why: import("zod").ZodOptional<import("zod").ZodString>;
3600
+ }, import("zod/v4/core").$strip>>>;
3601
+ objectives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3602
+ hints: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
3603
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3604
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3605
+ }, import("zod/v4/core").$strip>;
3606
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3607
+ items: {
3608
+ before: string;
3609
+ noun: string;
3610
+ answer: "a" | "an" | "the" | "—";
3611
+ after?: string | undefined;
3612
+ why?: string | undefined;
3613
+ }[];
3614
+ objectives?: string[] | undefined;
3615
+ hints?: string[] | undefined;
3616
+ title?: string | undefined;
3617
+ prompt?: string | undefined;
3618
+ }>>;
3619
+ tag?: string;
3620
+ void?: boolean;
3621
+ toAttrs?: ((props: {
3622
+ items: {
3623
+ before: string;
3624
+ noun: string;
3625
+ answer: "a" | "an" | "the" | "—";
3626
+ after?: string | undefined;
3627
+ why?: string | undefined;
3628
+ }[];
3629
+ objectives?: string[] | undefined;
3630
+ hints?: string[] | undefined;
3631
+ title?: string | undefined;
3632
+ prompt?: string | undefined;
3633
+ }) => Record<string, unknown>) | undefined;
3634
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3635
+ items: {
3636
+ before: string;
3637
+ noun: string;
3638
+ answer: "a" | "an" | "the" | "—";
3639
+ after?: string | undefined;
3640
+ why?: string | undefined;
3641
+ }[];
3642
+ objectives?: string[] | undefined;
3643
+ hints?: string[] | undefined;
3644
+ title?: string | undefined;
3645
+ prompt?: string | undefined;
3646
+ }>) | undefined;
3647
+ } | {
3648
+ group: string;
3649
+ key: string;
3650
+ label: string;
3651
+ icon?: import("react").ComponentType<{
3652
+ className?: string;
3653
+ }>;
3654
+ description?: string;
3655
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3656
+ slash?: boolean;
3657
+ schema: import("zod").ZodObject<{
3658
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3659
+ subject: import("zod").ZodString;
3660
+ options: import("zod").ZodArray<import("zod").ZodString>;
3661
+ correct: import("zod").ZodString;
3662
+ tail: import("zod").ZodOptional<import("zod").ZodString>;
3663
+ note: import("zod").ZodOptional<import("zod").ZodString>;
3664
+ }, import("zod/v4/core").$strip>>>;
3665
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3666
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3667
+ }, import("zod/v4/core").$strip>;
3668
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3669
+ items: {
3670
+ subject: string;
3671
+ options: string[];
3672
+ correct: string;
3673
+ tail?: string | undefined;
3674
+ note?: string | undefined;
3675
+ }[];
3676
+ title?: string | undefined;
3677
+ prompt?: string | undefined;
3678
+ }>>;
3679
+ tag?: string;
3680
+ void?: boolean;
3681
+ toAttrs?: ((props: {
3682
+ items: {
3683
+ subject: string;
3684
+ options: string[];
3685
+ correct: string;
3686
+ tail?: string | undefined;
3687
+ note?: string | undefined;
3688
+ }[];
3689
+ title?: string | undefined;
3690
+ prompt?: string | undefined;
3691
+ }) => Record<string, unknown>) | undefined;
3692
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3693
+ items: {
3694
+ subject: string;
3695
+ options: string[];
3696
+ correct: string;
3697
+ tail?: string | undefined;
3698
+ note?: string | undefined;
3699
+ }[];
3700
+ title?: string | undefined;
3701
+ prompt?: string | undefined;
3702
+ }>) | undefined;
3703
+ } | {
3704
+ group: string;
3705
+ key: string;
3706
+ label: string;
3707
+ icon?: import("react").ComponentType<{
3708
+ className?: string;
3709
+ }>;
3710
+ description?: string;
3711
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3712
+ slash?: boolean;
3713
+ schema: import("zod").ZodObject<{
3714
+ from: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3715
+ text: import("zod").ZodString;
3716
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
3717
+ noun: "noun";
3718
+ verb: "verb";
3719
+ article: "article";
3720
+ adjective: "adjective";
3721
+ preposition: "preposition";
3722
+ pronoun: "pronoun";
3723
+ conjunction: "conjunction";
3724
+ adverb: "adverb";
3725
+ other: "other";
3726
+ }>>;
3727
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
3728
+ }, import("zod/v4/core").$strip>>>;
3729
+ to: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3730
+ text: import("zod").ZodString;
3731
+ pos: import("zod").ZodOptional<import("zod").ZodEnum<{
3732
+ noun: "noun";
3733
+ verb: "verb";
3734
+ article: "article";
3735
+ adjective: "adjective";
3736
+ preposition: "preposition";
3737
+ pronoun: "pronoun";
3738
+ conjunction: "conjunction";
3739
+ adverb: "adverb";
3740
+ other: "other";
3741
+ }>>;
3742
+ gloss: import("zod").ZodOptional<import("zod").ZodString>;
3743
+ }, import("zod/v4/core").$strip>>>;
3744
+ instruction: import("zod").ZodOptional<import("zod").ZodString>;
3745
+ note: import("zod").ZodOptional<import("zod").ZodString>;
3746
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3747
+ }, import("zod/v4/core").$strip>;
3748
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3749
+ from: {
3750
+ text: string;
3751
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3752
+ gloss?: string | undefined;
3753
+ }[];
3754
+ to: {
3755
+ text: string;
3756
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3757
+ gloss?: string | undefined;
3758
+ }[];
3759
+ instruction?: string | undefined;
3760
+ note?: string | undefined;
3761
+ title?: string | undefined;
3762
+ }>>;
3763
+ tag?: string;
3764
+ void?: boolean;
3765
+ toAttrs?: ((props: {
3766
+ from: {
3767
+ text: string;
3768
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3769
+ gloss?: string | undefined;
3770
+ }[];
3771
+ to: {
3772
+ text: string;
3773
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3774
+ gloss?: string | undefined;
3775
+ }[];
3776
+ instruction?: string | undefined;
3777
+ note?: string | undefined;
3778
+ title?: string | undefined;
3779
+ }) => Record<string, unknown>) | undefined;
3780
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3781
+ from: {
3782
+ text: string;
3783
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3784
+ gloss?: string | undefined;
3785
+ }[];
3786
+ to: {
3787
+ text: string;
3788
+ pos?: "noun" | "verb" | "article" | "adjective" | "preposition" | "pronoun" | "conjunction" | "adverb" | "other" | undefined;
3789
+ gloss?: string | undefined;
3790
+ }[];
3791
+ instruction?: string | undefined;
3792
+ note?: string | undefined;
3793
+ title?: string | undefined;
3794
+ }>) | undefined;
3795
+ } | {
3796
+ group: string;
3797
+ key: string;
3798
+ label: string;
3799
+ icon?: import("react").ComponentType<{
3800
+ className?: string;
3801
+ }>;
3802
+ description?: string;
3803
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3804
+ slash?: boolean;
3805
+ schema: import("zod").ZodObject<{
3806
+ items: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3807
+ before: import("zod").ZodString;
3808
+ noun: import("zod").ZodString;
3809
+ answer: import("zod").ZodString;
3810
+ options: import("zod").ZodArray<import("zod").ZodString>;
3811
+ scene: import("zod").ZodEnum<{
3812
+ in: "in";
3813
+ at: "at";
3814
+ between: "between";
3815
+ on: "on";
3816
+ over: "over";
3817
+ above: "above";
3818
+ under: "under";
3819
+ below: "below";
3820
+ beside: "beside";
3821
+ behind: "behind";
3822
+ infront: "infront";
3823
+ }>;
3824
+ figure: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
3825
+ kind: import("zod").ZodEnum<{
3826
+ emoji: "emoji";
3827
+ svg: "svg";
3828
+ image: "image";
3829
+ }>;
3830
+ id: import("zod").ZodOptional<import("zod").ZodString>;
3831
+ src: import("zod").ZodOptional<import("zod").ZodString>;
3832
+ alt: import("zod").ZodString;
3833
+ }, import("zod/v4/core").$strip>]>>;
3834
+ landmark: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodObject<{
3835
+ kind: import("zod").ZodEnum<{
3836
+ emoji: "emoji";
3837
+ svg: "svg";
3838
+ image: "image";
3839
+ }>;
3840
+ id: import("zod").ZodOptional<import("zod").ZodString>;
3841
+ src: import("zod").ZodOptional<import("zod").ZodString>;
3842
+ alt: import("zod").ZodString;
3843
+ }, import("zod/v4/core").$strip>]>>;
3844
+ note: import("zod").ZodOptional<import("zod").ZodString>;
3845
+ }, import("zod/v4/core").$strip>>>;
3846
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3847
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3848
+ }, import("zod/v4/core").$strip>;
3849
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3850
+ items: {
3851
+ before: string;
3852
+ noun: string;
3853
+ answer: string;
3854
+ options: string[];
3855
+ scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
3856
+ figure?: string | {
3857
+ kind: "emoji" | "svg" | "image";
3858
+ alt: string;
3859
+ id?: string | undefined;
3860
+ src?: string | undefined;
3861
+ } | undefined;
3862
+ landmark?: string | {
3863
+ kind: "emoji" | "svg" | "image";
3864
+ alt: string;
3865
+ id?: string | undefined;
3866
+ src?: string | undefined;
3867
+ } | undefined;
3868
+ note?: string | undefined;
3869
+ }[];
3870
+ title?: string | undefined;
3871
+ prompt?: string | undefined;
3872
+ }>>;
3873
+ tag?: string;
3874
+ void?: boolean;
3875
+ toAttrs?: ((props: {
3876
+ items: {
3877
+ before: string;
3878
+ noun: string;
3879
+ answer: string;
3880
+ options: string[];
3881
+ scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
3882
+ figure?: string | {
3883
+ kind: "emoji" | "svg" | "image";
3884
+ alt: string;
3885
+ id?: string | undefined;
3886
+ src?: string | undefined;
3887
+ } | undefined;
3888
+ landmark?: string | {
3889
+ kind: "emoji" | "svg" | "image";
3890
+ alt: string;
3891
+ id?: string | undefined;
3892
+ src?: string | undefined;
3893
+ } | undefined;
3894
+ note?: string | undefined;
3895
+ }[];
3896
+ title?: string | undefined;
3897
+ prompt?: string | undefined;
3898
+ }) => Record<string, unknown>) | undefined;
3899
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3900
+ items: {
3901
+ before: string;
3902
+ noun: string;
3903
+ answer: string;
3904
+ options: string[];
3905
+ scene: "in" | "at" | "between" | "on" | "over" | "above" | "under" | "below" | "beside" | "behind" | "infront";
3906
+ figure?: string | {
3907
+ kind: "emoji" | "svg" | "image";
3908
+ alt: string;
3909
+ id?: string | undefined;
3910
+ src?: string | undefined;
3911
+ } | undefined;
3912
+ landmark?: string | {
3913
+ kind: "emoji" | "svg" | "image";
3914
+ alt: string;
3915
+ id?: string | undefined;
3916
+ src?: string | undefined;
3917
+ } | undefined;
3918
+ note?: string | undefined;
3919
+ }[];
3920
+ title?: string | undefined;
3921
+ prompt?: string | undefined;
3922
+ }>) | undefined;
3923
+ } | {
3924
+ group: string;
3925
+ key: string;
3926
+ label: string;
3927
+ icon?: import("react").ComponentType<{
3928
+ className?: string;
3929
+ }>;
3930
+ description?: string;
3931
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
3932
+ slash?: boolean;
3933
+ schema: import("zod").ZodObject<{
3934
+ accounts: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3935
+ id: import("zod").ZodString;
3936
+ name: import("zod").ZodString;
3937
+ category: import("zod").ZodEnum<{
3938
+ Asset: "Asset";
3939
+ Liability: "Liability";
3940
+ Equity: "Equity";
3941
+ Income: "Income";
3942
+ Expense: "Expense";
3943
+ }>;
3944
+ }, import("zod/v4/core").$strip>>>;
3945
+ transactions: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
3946
+ id: import("zod").ZodString;
3947
+ label: import("zod").ZodString;
3948
+ effects: import("zod").ZodArray<import("zod").ZodObject<{
3949
+ account: import("zod").ZodString;
3950
+ delta: import("zod").ZodNumber;
3951
+ }, import("zod/v4/core").$strip>>;
3952
+ }, import("zod/v4/core").$strip>>>;
3953
+ freePost: import("zod").ZodDefault<import("zod").ZodBoolean>;
3954
+ title: import("zod").ZodOptional<import("zod").ZodString>;
3955
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
3956
+ }, import("zod/v4/core").$strip>;
3957
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
3958
+ accounts: {
3959
+ id: string;
3960
+ name: string;
3961
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
3962
+ }[];
3963
+ transactions: {
3964
+ id: string;
3965
+ label: string;
3966
+ effects: {
3967
+ account: string;
3968
+ delta: number;
3969
+ }[];
3970
+ }[];
3971
+ freePost: boolean;
3972
+ title?: string | undefined;
3973
+ prompt?: string | undefined;
3974
+ }>>;
3975
+ tag?: string;
3976
+ void?: boolean;
3977
+ toAttrs?: ((props: {
3978
+ accounts: {
3979
+ id: string;
3980
+ name: string;
3981
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
3982
+ }[];
3983
+ transactions: {
3984
+ id: string;
3985
+ label: string;
3986
+ effects: {
3987
+ account: string;
3988
+ delta: number;
3989
+ }[];
3990
+ }[];
3991
+ freePost: boolean;
3992
+ title?: string | undefined;
3993
+ prompt?: string | undefined;
3994
+ }) => Record<string, unknown>) | undefined;
3995
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
3996
+ accounts: {
3997
+ id: string;
3998
+ name: string;
3999
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4000
+ }[];
4001
+ transactions: {
4002
+ id: string;
4003
+ label: string;
4004
+ effects: {
4005
+ account: string;
4006
+ delta: number;
4007
+ }[];
4008
+ }[];
4009
+ freePost: boolean;
4010
+ title?: string | undefined;
4011
+ prompt?: string | undefined;
4012
+ }>) | undefined;
4013
+ } | {
4014
+ group: string;
4015
+ key: string;
4016
+ label: string;
4017
+ icon?: import("react").ComponentType<{
4018
+ className?: string;
4019
+ }>;
4020
+ description?: string;
4021
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4022
+ slash?: boolean;
4023
+ schema: import("zod").ZodObject<{
4024
+ accounts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4025
+ id: import("zod").ZodString;
4026
+ name: import("zod").ZodString;
4027
+ category: import("zod").ZodEnum<{
4028
+ Asset: "Asset";
4029
+ Liability: "Liability";
4030
+ Equity: "Equity";
4031
+ Income: "Income";
4032
+ Expense: "Expense";
4033
+ }>;
4034
+ }, import("zod/v4/core").$strip>>>;
4035
+ transactions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4036
+ id: import("zod").ZodString;
4037
+ prompt: import("zod").ZodString;
4038
+ debit: import("zod").ZodString;
4039
+ credit: import("zod").ZodString;
4040
+ amount: import("zod").ZodNumber;
4041
+ }, import("zod/v4/core").$strip>>>;
4042
+ showTrialBalance: import("zod").ZodDefault<import("zod").ZodBoolean>;
4043
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4044
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4045
+ }, import("zod/v4/core").$strip>;
4046
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4047
+ showTrialBalance: boolean;
4048
+ accounts?: {
4049
+ id: string;
4050
+ name: string;
4051
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4052
+ }[] | undefined;
4053
+ transactions?: {
4054
+ id: string;
4055
+ prompt: string;
4056
+ debit: string;
4057
+ credit: string;
4058
+ amount: number;
4059
+ }[] | undefined;
4060
+ title?: string | undefined;
4061
+ prompt?: string | undefined;
4062
+ }>>;
4063
+ tag?: string;
4064
+ void?: boolean;
4065
+ toAttrs?: ((props: {
4066
+ showTrialBalance: boolean;
4067
+ accounts?: {
4068
+ id: string;
4069
+ name: string;
4070
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4071
+ }[] | undefined;
4072
+ transactions?: {
4073
+ id: string;
4074
+ prompt: string;
4075
+ debit: string;
4076
+ credit: string;
4077
+ amount: number;
4078
+ }[] | undefined;
4079
+ title?: string | undefined;
4080
+ prompt?: string | undefined;
4081
+ }) => Record<string, unknown>) | undefined;
4082
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4083
+ showTrialBalance: boolean;
4084
+ accounts?: {
4085
+ id: string;
4086
+ name: string;
4087
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4088
+ }[] | undefined;
4089
+ transactions?: {
4090
+ id: string;
4091
+ prompt: string;
4092
+ debit: string;
4093
+ credit: string;
4094
+ amount: number;
4095
+ }[] | undefined;
4096
+ title?: string | undefined;
4097
+ prompt?: string | undefined;
4098
+ }>) | undefined;
4099
+ } | {
4100
+ group: string;
4101
+ key: string;
4102
+ label: string;
4103
+ icon?: import("react").ComponentType<{
4104
+ className?: string;
4105
+ }>;
4106
+ description?: string;
4107
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4108
+ slash?: boolean;
4109
+ schema: import("zod").ZodObject<{
4110
+ accounts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4111
+ id: import("zod").ZodString;
4112
+ name: import("zod").ZodString;
4113
+ category: import("zod").ZodEnum<{
4114
+ Asset: "Asset";
4115
+ Liability: "Liability";
4116
+ Equity: "Equity";
4117
+ Income: "Income";
4118
+ Expense: "Expense";
4119
+ }>;
4120
+ balance: import("zod").ZodNumber;
4121
+ }, import("zod/v4/core").$strip>>>;
4122
+ asOfLabel: import("zod").ZodOptional<import("zod").ZodString>;
4123
+ showClosing: import("zod").ZodDefault<import("zod").ZodBoolean>;
4124
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4125
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4126
+ }, import("zod/v4/core").$strip>;
4127
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4128
+ showClosing: boolean;
4129
+ accounts?: {
4130
+ id: string;
4131
+ name: string;
4132
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4133
+ balance: number;
4134
+ }[] | undefined;
4135
+ asOfLabel?: string | undefined;
4136
+ title?: string | undefined;
4137
+ prompt?: string | undefined;
4138
+ }>>;
4139
+ tag?: string;
4140
+ void?: boolean;
4141
+ toAttrs?: ((props: {
4142
+ showClosing: boolean;
4143
+ accounts?: {
4144
+ id: string;
4145
+ name: string;
4146
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4147
+ balance: number;
4148
+ }[] | undefined;
4149
+ asOfLabel?: string | undefined;
4150
+ title?: string | undefined;
4151
+ prompt?: string | undefined;
4152
+ }) => Record<string, unknown>) | undefined;
4153
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4154
+ showClosing: boolean;
4155
+ accounts?: {
4156
+ id: string;
4157
+ name: string;
4158
+ category: "Asset" | "Liability" | "Equity" | "Income" | "Expense";
4159
+ balance: number;
4160
+ }[] | undefined;
4161
+ asOfLabel?: string | undefined;
4162
+ title?: string | undefined;
4163
+ prompt?: string | undefined;
4164
+ }>) | undefined;
4165
+ } | {
4166
+ group: string;
4167
+ key: string;
4168
+ label: string;
4169
+ icon?: import("react").ComponentType<{
4170
+ className?: string;
4171
+ }>;
4172
+ description?: string;
4173
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4174
+ slash?: boolean;
4175
+ schema: import("zod").ZodObject<{
4176
+ demandIntercept: import("zod").ZodDefault<import("zod").ZodNumber>;
4177
+ demandSlope: import("zod").ZodDefault<import("zod").ZodNumber>;
4178
+ supplyIntercept: import("zod").ZodDefault<import("zod").ZodNumber>;
4179
+ supplySlope: import("zod").ZodDefault<import("zod").ZodNumber>;
4180
+ shiftDemand: import("zod").ZodDefault<import("zod").ZodBoolean>;
4181
+ shiftSupply: import("zod").ZodDefault<import("zod").ZodBoolean>;
4182
+ goodLabel: import("zod").ZodOptional<import("zod").ZodString>;
4183
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4184
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4185
+ }, import("zod/v4/core").$strip>;
4186
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4187
+ demandIntercept: number;
4188
+ demandSlope: number;
4189
+ supplyIntercept: number;
4190
+ supplySlope: number;
4191
+ shiftDemand: boolean;
4192
+ shiftSupply: boolean;
4193
+ goodLabel?: string | undefined;
4194
+ title?: string | undefined;
4195
+ prompt?: string | undefined;
4196
+ }>>;
4197
+ tag?: string;
4198
+ void?: boolean;
4199
+ toAttrs?: ((props: {
4200
+ demandIntercept: number;
4201
+ demandSlope: number;
4202
+ supplyIntercept: number;
4203
+ supplySlope: number;
4204
+ shiftDemand: boolean;
4205
+ shiftSupply: boolean;
4206
+ goodLabel?: string | undefined;
4207
+ title?: string | undefined;
4208
+ prompt?: string | undefined;
4209
+ }) => Record<string, unknown>) | undefined;
4210
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4211
+ demandIntercept: number;
4212
+ demandSlope: number;
4213
+ supplyIntercept: number;
4214
+ supplySlope: number;
4215
+ shiftDemand: boolean;
4216
+ shiftSupply: boolean;
4217
+ goodLabel?: string | undefined;
4218
+ title?: string | undefined;
4219
+ prompt?: string | undefined;
4220
+ }>) | undefined;
4221
+ } | {
4222
+ group: string;
4223
+ key: string;
4224
+ label: string;
4225
+ icon?: import("react").ComponentType<{
4226
+ className?: string;
4227
+ }>;
4228
+ description?: string;
4229
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4230
+ slash?: boolean;
4231
+ schema: import("zod").ZodObject<{
4232
+ pivotP: import("zod").ZodDefault<import("zod").ZodNumber>;
4233
+ pivotQ: import("zod").ZodDefault<import("zod").ZodNumber>;
4234
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4235
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4236
+ }, import("zod/v4/core").$strip>;
4237
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4238
+ pivotP: number;
4239
+ pivotQ: number;
4240
+ title?: string | undefined;
4241
+ prompt?: string | undefined;
4242
+ }>>;
4243
+ tag?: string;
4244
+ void?: boolean;
4245
+ toAttrs?: ((props: {
4246
+ pivotP: number;
4247
+ pivotQ: number;
4248
+ title?: string | undefined;
4249
+ prompt?: string | undefined;
4250
+ }) => Record<string, unknown>) | undefined;
4251
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4252
+ pivotP: number;
4253
+ pivotQ: number;
4254
+ title?: string | undefined;
4255
+ prompt?: string | undefined;
4256
+ }>) | undefined;
4257
+ } | {
4258
+ group: string;
4259
+ key: string;
4260
+ label: string;
4261
+ icon?: import("react").ComponentType<{
4262
+ className?: string;
4263
+ }>;
4264
+ description?: string;
4265
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4266
+ slash?: boolean;
4267
+ schema: import("zod").ZodObject<{
4268
+ askPrediction: import("zod").ZodDefault<import("zod").ZodBoolean>;
4269
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4270
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4271
+ }, import("zod/v4/core").$strip>;
4272
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4273
+ askPrediction: boolean;
4274
+ title?: string | undefined;
4275
+ prompt?: string | undefined;
4276
+ }>>;
4277
+ tag?: string;
4278
+ void?: boolean;
4279
+ toAttrs?: ((props: {
4280
+ askPrediction: boolean;
4281
+ title?: string | undefined;
4282
+ prompt?: string | undefined;
4283
+ }) => Record<string, unknown>) | undefined;
4284
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4285
+ askPrediction: boolean;
4286
+ title?: string | undefined;
4287
+ prompt?: string | undefined;
4288
+ }>) | undefined;
4289
+ } | {
4290
+ group: string;
4291
+ key: string;
4292
+ label: string;
4293
+ icon?: import("react").ComponentType<{
4294
+ className?: string;
4295
+ }>;
4296
+ description?: string;
4297
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4298
+ slash?: boolean;
4299
+ schema: import("zod").ZodObject<{
4300
+ preset: import("zod").ZodDefault<import("zod").ZodEnum<{
4301
+ custom: "custom";
4302
+ water: "water";
4303
+ rock: "rock";
4304
+ carbon: "carbon";
4305
+ }>>;
4306
+ challenge: import("zod").ZodDefault<import("zod").ZodEnum<{
4307
+ trace: "trace";
4308
+ "label-process": "label-process";
4309
+ }>>;
4310
+ nodes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4311
+ id: import("zod").ZodString;
4312
+ label: import("zod").ZodString;
4313
+ tone: import("zod").ZodOptional<import("zod").ZodString>;
4314
+ }, import("zod/v4/core").$strip>>>;
4315
+ edges: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4316
+ from: import("zod").ZodString;
4317
+ to: import("zod").ZodString;
4318
+ label: import("zod").ZodOptional<import("zod").ZodString>;
4319
+ }, import("zod/v4/core").$strip>>>;
4320
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4321
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4322
+ }, import("zod/v4/core").$strip>;
4323
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4324
+ preset: "custom" | "water" | "rock" | "carbon";
4325
+ challenge: "trace" | "label-process";
4326
+ nodes?: {
4327
+ id: string;
4328
+ label: string;
4329
+ tone?: string | undefined;
4330
+ }[] | undefined;
4331
+ edges?: {
4332
+ from: string;
4333
+ to: string;
4334
+ label?: string | undefined;
4335
+ }[] | undefined;
4336
+ title?: string | undefined;
4337
+ prompt?: string | undefined;
4338
+ }>>;
4339
+ tag?: string;
4340
+ void?: boolean;
4341
+ toAttrs?: ((props: {
4342
+ preset: "custom" | "water" | "rock" | "carbon";
4343
+ challenge: "trace" | "label-process";
4344
+ nodes?: {
4345
+ id: string;
4346
+ label: string;
4347
+ tone?: string | undefined;
4348
+ }[] | undefined;
4349
+ edges?: {
4350
+ from: string;
4351
+ to: string;
4352
+ label?: string | undefined;
4353
+ }[] | undefined;
4354
+ title?: string | undefined;
4355
+ prompt?: string | undefined;
4356
+ }) => Record<string, unknown>) | undefined;
4357
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4358
+ preset: "custom" | "water" | "rock" | "carbon";
4359
+ challenge: "trace" | "label-process";
4360
+ nodes?: {
4361
+ id: string;
4362
+ label: string;
4363
+ tone?: string | undefined;
4364
+ }[] | undefined;
4365
+ edges?: {
4366
+ from: string;
4367
+ to: string;
4368
+ label?: string | undefined;
4369
+ }[] | undefined;
4370
+ title?: string | undefined;
4371
+ prompt?: string | undefined;
4372
+ }>) | undefined;
4373
+ } | {
4374
+ group: string;
4375
+ key: string;
4376
+ label: string;
4377
+ icon?: import("react").ComponentType<{
4378
+ className?: string;
4379
+ }>;
4380
+ description?: string;
4381
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4382
+ slash?: boolean;
4383
+ schema: import("zod").ZodObject<{
4384
+ data: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4385
+ x: import("zod").ZodNumber;
4386
+ y: import("zod").ZodNumber;
4387
+ }, import("zod/v4/core").$strip>>>;
4388
+ showSquares: import("zod").ZodDefault<import("zod").ZodBoolean>;
4389
+ learnRate: import("zod").ZodDefault<import("zod").ZodNumber>;
4390
+ m0: import("zod").ZodDefault<import("zod").ZodNumber>;
4391
+ b0: import("zod").ZodDefault<import("zod").ZodNumber>;
4392
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
4393
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4394
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4395
+ }, import("zod/v4/core").$strip>;
4396
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4397
+ showSquares: boolean;
4398
+ learnRate: number;
4399
+ m0: number;
4400
+ b0: number;
4401
+ span: number;
4402
+ data?: {
4403
+ x: number;
4404
+ y: number;
4405
+ }[] | undefined;
4406
+ title?: string | undefined;
4407
+ prompt?: string | undefined;
4408
+ }>>;
4409
+ tag?: string;
4410
+ void?: boolean;
4411
+ toAttrs?: ((props: {
4412
+ showSquares: boolean;
4413
+ learnRate: number;
4414
+ m0: number;
4415
+ b0: number;
4416
+ span: number;
4417
+ data?: {
4418
+ x: number;
4419
+ y: number;
4420
+ }[] | undefined;
4421
+ title?: string | undefined;
4422
+ prompt?: string | undefined;
4423
+ }) => Record<string, unknown>) | undefined;
4424
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4425
+ showSquares: boolean;
4426
+ learnRate: number;
4427
+ m0: number;
4428
+ b0: number;
4429
+ span: number;
4430
+ data?: {
4431
+ x: number;
4432
+ y: number;
4433
+ }[] | undefined;
4434
+ title?: string | undefined;
4435
+ prompt?: string | undefined;
4436
+ }>) | undefined;
4437
+ } | {
4438
+ group: string;
4439
+ key: string;
4440
+ label: string;
4441
+ icon?: import("react").ComponentType<{
4442
+ className?: string;
4443
+ }>;
4444
+ description?: string;
4445
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4446
+ slash?: boolean;
4447
+ schema: import("zod").ZodObject<{
4448
+ points: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4449
+ x: import("zod").ZodNumber;
4450
+ y: import("zod").ZodNumber;
4451
+ }, import("zod/v4/core").$strip>>>;
4452
+ k: import("zod").ZodDefault<import("zod").ZodNumber>;
4453
+ seeds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
4454
+ x: import("zod").ZodNumber;
4455
+ y: import("zod").ZodNumber;
4456
+ }, import("zod/v4/core").$strip>>>;
4457
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
4458
+ showLines: import("zod").ZodDefault<import("zod").ZodBoolean>;
4459
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4460
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4461
+ }, import("zod/v4/core").$strip>;
4462
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4463
+ k: number;
4464
+ span: number;
4465
+ showLines: boolean;
4466
+ points?: {
4467
+ x: number;
4468
+ y: number;
4469
+ }[] | undefined;
4470
+ seeds?: {
4471
+ x: number;
4472
+ y: number;
4473
+ }[] | undefined;
4474
+ title?: string | undefined;
4475
+ prompt?: string | undefined;
4476
+ }>>;
4477
+ tag?: string;
4478
+ void?: boolean;
4479
+ toAttrs?: ((props: {
4480
+ k: number;
4481
+ span: number;
4482
+ showLines: boolean;
4483
+ points?: {
4484
+ x: number;
4485
+ y: number;
4486
+ }[] | undefined;
4487
+ seeds?: {
4488
+ x: number;
4489
+ y: number;
4490
+ }[] | undefined;
4491
+ title?: string | undefined;
4492
+ prompt?: string | undefined;
4493
+ }) => Record<string, unknown>) | undefined;
4494
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4495
+ k: number;
4496
+ span: number;
4497
+ showLines: boolean;
4498
+ points?: {
4499
+ x: number;
4500
+ y: number;
4501
+ }[] | undefined;
4502
+ seeds?: {
4503
+ x: number;
4504
+ y: number;
4505
+ }[] | undefined;
4506
+ title?: string | undefined;
4507
+ prompt?: string | undefined;
4508
+ }>) | undefined;
4509
+ } | {
4510
+ group: string;
4511
+ key: string;
4512
+ label: string;
4513
+ icon?: import("react").ComponentType<{
4514
+ className?: string;
4515
+ }>;
4516
+ description?: string;
4517
+ category?: import("@classytic/cms-ui/contract").BlockCategory;
4518
+ slash?: boolean;
4519
+ schema: import("zod").ZodObject<{
4520
+ positives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
4521
+ negatives: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
4522
+ threshold: import("zod").ZodDefault<import("zod").ZodNumber>;
4523
+ span: import("zod").ZodDefault<import("zod").ZodNumber>;
4524
+ title: import("zod").ZodOptional<import("zod").ZodString>;
4525
+ prompt: import("zod").ZodOptional<import("zod").ZodString>;
4526
+ }, import("zod/v4/core").$strip>;
4527
+ Component: import("react").ComponentType<import("@classytic/cms-ui/contract").BlockComponentProps<{
4528
+ threshold: number;
4529
+ span: number;
4530
+ positives?: number[] | undefined;
4531
+ negatives?: number[] | undefined;
4532
+ title?: string | undefined;
4533
+ prompt?: string | undefined;
4534
+ }>>;
4535
+ tag?: string;
4536
+ void?: boolean;
4537
+ toAttrs?: ((props: {
4538
+ threshold: number;
4539
+ span: number;
4540
+ positives?: number[] | undefined;
4541
+ negatives?: number[] | undefined;
4542
+ title?: string | undefined;
4543
+ prompt?: string | undefined;
4544
+ }) => Record<string, unknown>) | undefined;
4545
+ fromAttrs?: ((raw: Record<string, unknown>) => Partial<{
4546
+ threshold: number;
4547
+ span: number;
4548
+ positives?: number[] | undefined;
4549
+ negatives?: number[] | undefined;
4550
+ title?: string | undefined;
4551
+ prompt?: string | undefined;
4552
+ }>) | undefined;
4553
+ })[];
4554
+ //#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 };