manim-web 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/animation/Animation.d.ts +69 -0
  4. package/dist/animation/Animation.d.ts.map +1 -0
  5. package/dist/animation/AnimationGroup.d.ts +48 -0
  6. package/dist/animation/AnimationGroup.d.ts.map +1 -0
  7. package/dist/animation/LaggedStart.d.ts +25 -0
  8. package/dist/animation/LaggedStart.d.ts.map +1 -0
  9. package/dist/animation/MaintainPositionRelativeTo.d.ts +23 -0
  10. package/dist/animation/MaintainPositionRelativeTo.d.ts.map +1 -0
  11. package/dist/animation/Succession.d.ts +19 -0
  12. package/dist/animation/Succession.d.ts.map +1 -0
  13. package/dist/animation/Timeline.d.ts +89 -0
  14. package/dist/animation/Timeline.d.ts.map +1 -0
  15. package/dist/animation/UpdateFromAlphaFunc.d.ts +32 -0
  16. package/dist/animation/UpdateFromAlphaFunc.d.ts.map +1 -0
  17. package/dist/animation/UpdateFromFunc.d.ts +30 -0
  18. package/dist/animation/UpdateFromFunc.d.ts.map +1 -0
  19. package/dist/animation/changing/index.d.ts +213 -0
  20. package/dist/animation/changing/index.d.ts.map +1 -0
  21. package/dist/animation/composition/LaggedStartMap.d.ts +47 -0
  22. package/dist/animation/composition/LaggedStartMap.d.ts.map +1 -0
  23. package/dist/animation/composition/index.d.ts +5 -0
  24. package/dist/animation/composition/index.d.ts.map +1 -0
  25. package/dist/animation/creation/Create.d.ts +232 -0
  26. package/dist/animation/creation/Create.d.ts.map +1 -0
  27. package/dist/animation/creation/CreationExtensions.d.ts +127 -0
  28. package/dist/animation/creation/CreationExtensions.d.ts.map +1 -0
  29. package/dist/animation/creation/TypeWithCursor.d.ts +133 -0
  30. package/dist/animation/creation/TypeWithCursor.d.ts.map +1 -0
  31. package/dist/animation/creation/index.d.ts +4 -0
  32. package/dist/animation/creation/index.d.ts.map +1 -0
  33. package/dist/animation/fading/FadeIn.d.ts +31 -0
  34. package/dist/animation/fading/FadeIn.d.ts.map +1 -0
  35. package/dist/animation/fading/FadeOut.d.ts +32 -0
  36. package/dist/animation/fading/FadeOut.d.ts.map +1 -0
  37. package/dist/animation/fading/index.d.ts +3 -0
  38. package/dist/animation/fading/index.d.ts.map +1 -0
  39. package/dist/animation/growing/index.d.ts +103 -0
  40. package/dist/animation/growing/index.d.ts.map +1 -0
  41. package/dist/animation/index.d.ts +20 -0
  42. package/dist/animation/index.d.ts.map +1 -0
  43. package/dist/animation/indication/ApplyWave.d.ts +51 -0
  44. package/dist/animation/indication/ApplyWave.d.ts.map +1 -0
  45. package/dist/animation/indication/Blink.d.ts +34 -0
  46. package/dist/animation/indication/Blink.d.ts.map +1 -0
  47. package/dist/animation/indication/Circumscribe.d.ts +54 -0
  48. package/dist/animation/indication/Circumscribe.d.ts.map +1 -0
  49. package/dist/animation/indication/Flash.d.ts +45 -0
  50. package/dist/animation/indication/Flash.d.ts.map +1 -0
  51. package/dist/animation/indication/FocusOn.d.ts +79 -0
  52. package/dist/animation/indication/FocusOn.d.ts.map +1 -0
  53. package/dist/animation/indication/Indicate.d.ts +30 -0
  54. package/dist/animation/indication/Indicate.d.ts.map +1 -0
  55. package/dist/animation/indication/ShowCreationThenDestruction.d.ts +26 -0
  56. package/dist/animation/indication/ShowCreationThenDestruction.d.ts.map +1 -0
  57. package/dist/animation/indication/ShowPassingFlash.d.ts +47 -0
  58. package/dist/animation/indication/ShowPassingFlash.d.ts.map +1 -0
  59. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts +21 -0
  60. package/dist/animation/indication/ShowPassingFlashWithThinningStrokeWidth.d.ts.map +1 -0
  61. package/dist/animation/indication/Wiggle.d.ts +48 -0
  62. package/dist/animation/indication/Wiggle.d.ts.map +1 -0
  63. package/dist/animation/indication/WiggleOutThenIn.d.ts +44 -0
  64. package/dist/animation/indication/WiggleOutThenIn.d.ts.map +1 -0
  65. package/dist/animation/indication/index.d.ts +20 -0
  66. package/dist/animation/indication/index.d.ts.map +1 -0
  67. package/dist/animation/movement/Homotopy.d.ts +204 -0
  68. package/dist/animation/movement/Homotopy.d.ts.map +1 -0
  69. package/dist/animation/movement/MoveAlongPath.d.ts +48 -0
  70. package/dist/animation/movement/MoveAlongPath.d.ts.map +1 -0
  71. package/dist/animation/movement/Rotate.d.ts +47 -0
  72. package/dist/animation/movement/Rotate.d.ts.map +1 -0
  73. package/dist/animation/movement/Scale.d.ts +74 -0
  74. package/dist/animation/movement/Scale.d.ts.map +1 -0
  75. package/dist/animation/movement/Shift.d.ts +74 -0
  76. package/dist/animation/movement/Shift.d.ts.map +1 -0
  77. package/dist/animation/movement/index.d.ts +6 -0
  78. package/dist/animation/movement/index.d.ts.map +1 -0
  79. package/dist/animation/numbers/index.d.ts +152 -0
  80. package/dist/animation/numbers/index.d.ts.map +1 -0
  81. package/dist/animation/speed/index.d.ts +114 -0
  82. package/dist/animation/speed/index.d.ts.map +1 -0
  83. package/dist/animation/transform/ApplyPointwiseFunction.d.ts +23 -0
  84. package/dist/animation/transform/ApplyPointwiseFunction.d.ts.map +1 -0
  85. package/dist/animation/transform/Transform.d.ts +89 -0
  86. package/dist/animation/transform/Transform.d.ts.map +1 -0
  87. package/dist/animation/transform/TransformExtensions.d.ts +444 -0
  88. package/dist/animation/transform/TransformExtensions.d.ts.map +1 -0
  89. package/dist/animation/transform/TransformMatching.d.ts +138 -0
  90. package/dist/animation/transform/TransformMatching.d.ts.map +1 -0
  91. package/dist/animation/transform/index.d.ts +5 -0
  92. package/dist/animation/transform/index.d.ts.map +1 -0
  93. package/dist/animation/utility/index.d.ts +171 -0
  94. package/dist/animation/utility/index.d.ts.map +1 -0
  95. package/dist/constants/colors.d.ts +72 -0
  96. package/dist/constants/colors.d.ts.map +1 -0
  97. package/dist/constants/colors.test.d.ts +2 -0
  98. package/dist/constants/colors.test.d.ts.map +1 -0
  99. package/dist/constants/directions.test.d.ts +2 -0
  100. package/dist/constants/directions.test.d.ts.map +1 -0
  101. package/dist/constants/index.d.ts +16 -0
  102. package/dist/constants/index.d.ts.map +1 -0
  103. package/dist/core/AudioManager.d.ts +203 -0
  104. package/dist/core/AudioManager.d.ts.map +1 -0
  105. package/dist/core/Camera.d.ts +172 -0
  106. package/dist/core/Camera.d.ts.map +1 -0
  107. package/dist/core/Camera2DFrame.d.ts +31 -0
  108. package/dist/core/Camera2DFrame.d.ts.map +1 -0
  109. package/dist/core/CameraExtensions.d.ts +420 -0
  110. package/dist/core/CameraExtensions.d.ts.map +1 -0
  111. package/dist/core/CameraFrame.d.ts +178 -0
  112. package/dist/core/CameraFrame.d.ts.map +1 -0
  113. package/dist/core/Group.d.ts +139 -0
  114. package/dist/core/Group.d.ts.map +1 -0
  115. package/dist/core/InteractiveScene.d.ts +122 -0
  116. package/dist/core/InteractiveScene.d.ts.map +1 -0
  117. package/dist/core/Lighting.d.ts +128 -0
  118. package/dist/core/Lighting.d.ts.map +1 -0
  119. package/dist/core/Mobject.d.ts +488 -0
  120. package/dist/core/Mobject.d.ts.map +1 -0
  121. package/dist/core/Renderer.d.ts +84 -0
  122. package/dist/core/Renderer.d.ts.map +1 -0
  123. package/dist/core/Scene.d.ts +353 -0
  124. package/dist/core/Scene.d.ts.map +1 -0
  125. package/dist/core/SceneExtensions.d.ts +640 -0
  126. package/dist/core/SceneExtensions.d.ts.map +1 -0
  127. package/dist/core/SceneExtensions.test.d.ts +2 -0
  128. package/dist/core/SceneExtensions.test.d.ts.map +1 -0
  129. package/dist/core/StateManager.d.ts +193 -0
  130. package/dist/core/StateManager.d.ts.map +1 -0
  131. package/dist/core/VDict.d.ts +229 -0
  132. package/dist/core/VDict.d.ts.map +1 -0
  133. package/dist/core/VGroup.d.ts +200 -0
  134. package/dist/core/VGroup.d.ts.map +1 -0
  135. package/dist/core/VMobject.d.ts +419 -0
  136. package/dist/core/VMobject.d.ts.map +1 -0
  137. package/dist/core/index.d.ts +16 -0
  138. package/dist/core/index.d.ts.map +1 -0
  139. package/dist/examples.test.d.ts +2 -0
  140. package/dist/examples.test.d.ts.map +1 -0
  141. package/dist/export/GifExporter.d.ts +40 -0
  142. package/dist/export/GifExporter.d.ts.map +1 -0
  143. package/dist/export/VideoExporter.d.ts +135 -0
  144. package/dist/export/VideoExporter.d.ts.map +1 -0
  145. package/dist/export/index.d.ts +3 -0
  146. package/dist/export/index.d.ts.map +1 -0
  147. package/dist/index.d.ts +65 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +49064 -0
  150. package/dist/integrations/index.d.ts +1 -0
  151. package/dist/integrations/index.d.ts.map +1 -0
  152. package/dist/integrations/react.d.ts +144 -0
  153. package/dist/integrations/react.d.ts.map +1 -0
  154. package/dist/integrations/react.js +570 -0
  155. package/dist/integrations/vue.d.ts +249 -0
  156. package/dist/integrations/vue.d.ts.map +1 -0
  157. package/dist/integrations/vue.js +560 -0
  158. package/dist/interaction/Clickable.d.ts +71 -0
  159. package/dist/interaction/Clickable.d.ts.map +1 -0
  160. package/dist/interaction/Controls.d.ts +174 -0
  161. package/dist/interaction/Controls.d.ts.map +1 -0
  162. package/dist/interaction/Draggable.d.ts +88 -0
  163. package/dist/interaction/Draggable.d.ts.map +1 -0
  164. package/dist/interaction/Hoverable.d.ts +82 -0
  165. package/dist/interaction/Hoverable.d.ts.map +1 -0
  166. package/dist/interaction/OrbitControls.d.ts +139 -0
  167. package/dist/interaction/OrbitControls.d.ts.map +1 -0
  168. package/dist/interaction/PlaybackControls.d.ts +113 -0
  169. package/dist/interaction/PlaybackControls.d.ts.map +1 -0
  170. package/dist/interaction/SelectionManager.d.ts +125 -0
  171. package/dist/interaction/SelectionManager.d.ts.map +1 -0
  172. package/dist/interaction/index.d.ts +12 -0
  173. package/dist/interaction/index.d.ts.map +1 -0
  174. package/dist/mobjects/fractals/MandelbrotSet.d.ts +92 -0
  175. package/dist/mobjects/fractals/MandelbrotSet.d.ts.map +1 -0
  176. package/dist/mobjects/fractals/NewtonFractal.d.ts +121 -0
  177. package/dist/mobjects/fractals/NewtonFractal.d.ts.map +1 -0
  178. package/dist/mobjects/fractals/index.d.ts +3 -0
  179. package/dist/mobjects/fractals/index.d.ts.map +1 -0
  180. package/dist/mobjects/frame/index.d.ts +188 -0
  181. package/dist/mobjects/frame/index.d.ts.map +1 -0
  182. package/dist/mobjects/geometry/AngleShapes.d.ts +326 -0
  183. package/dist/mobjects/geometry/AngleShapes.d.ts.map +1 -0
  184. package/dist/mobjects/geometry/Arc.d.ts +111 -0
  185. package/dist/mobjects/geometry/Arc.d.ts.map +1 -0
  186. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts +68 -0
  187. package/dist/mobjects/geometry/ArcBetweenPoints.d.ts.map +1 -0
  188. package/dist/mobjects/geometry/ArcShapes.d.ts +659 -0
  189. package/dist/mobjects/geometry/ArcShapes.d.ts.map +1 -0
  190. package/dist/mobjects/geometry/Arrow.d.ts +130 -0
  191. package/dist/mobjects/geometry/Arrow.d.ts.map +1 -0
  192. package/dist/mobjects/geometry/ArrowTips.d.ts +238 -0
  193. package/dist/mobjects/geometry/ArrowTips.d.ts.map +1 -0
  194. package/dist/mobjects/geometry/BooleanOperations.d.ts +163 -0
  195. package/dist/mobjects/geometry/BooleanOperations.d.ts.map +1 -0
  196. package/dist/mobjects/geometry/Circle.d.ts +92 -0
  197. package/dist/mobjects/geometry/Circle.d.ts.map +1 -0
  198. package/dist/mobjects/geometry/CubicBezier.d.ts +126 -0
  199. package/dist/mobjects/geometry/CubicBezier.d.ts.map +1 -0
  200. package/dist/mobjects/geometry/DashedLine.d.ts +109 -0
  201. package/dist/mobjects/geometry/DashedLine.d.ts.map +1 -0
  202. package/dist/mobjects/geometry/DashedVMobject.d.ts +96 -0
  203. package/dist/mobjects/geometry/DashedVMobject.d.ts.map +1 -0
  204. package/dist/mobjects/geometry/Dot.d.ts +100 -0
  205. package/dist/mobjects/geometry/Dot.d.ts.map +1 -0
  206. package/dist/mobjects/geometry/LabeledGeometry.d.ts +372 -0
  207. package/dist/mobjects/geometry/LabeledGeometry.d.ts.map +1 -0
  208. package/dist/mobjects/geometry/Line.d.ts +83 -0
  209. package/dist/mobjects/geometry/Line.d.ts.map +1 -0
  210. package/dist/mobjects/geometry/Polygon.d.ts +155 -0
  211. package/dist/mobjects/geometry/Polygon.d.ts.map +1 -0
  212. package/dist/mobjects/geometry/PolygonExtensions.d.ts +412 -0
  213. package/dist/mobjects/geometry/PolygonExtensions.d.ts.map +1 -0
  214. package/dist/mobjects/geometry/Rectangle.d.ts +123 -0
  215. package/dist/mobjects/geometry/Rectangle.d.ts.map +1 -0
  216. package/dist/mobjects/geometry/ShapeMatchers.d.ts +252 -0
  217. package/dist/mobjects/geometry/ShapeMatchers.d.ts.map +1 -0
  218. package/dist/mobjects/geometry/index.d.ts +25 -0
  219. package/dist/mobjects/geometry/index.d.ts.map +1 -0
  220. package/dist/mobjects/graph/index.d.ts +425 -0
  221. package/dist/mobjects/graph/index.d.ts.map +1 -0
  222. package/dist/mobjects/graphing/Axes.d.ts +254 -0
  223. package/dist/mobjects/graphing/Axes.d.ts.map +1 -0
  224. package/dist/mobjects/graphing/BarChart.d.ts +241 -0
  225. package/dist/mobjects/graphing/BarChart.d.ts.map +1 -0
  226. package/dist/mobjects/graphing/ComplexPlane.d.ts +311 -0
  227. package/dist/mobjects/graphing/ComplexPlane.d.ts.map +1 -0
  228. package/dist/mobjects/graphing/FunctionGraph.d.ts +123 -0
  229. package/dist/mobjects/graphing/FunctionGraph.d.ts.map +1 -0
  230. package/dist/mobjects/graphing/ImplicitFunction.d.ts +131 -0
  231. package/dist/mobjects/graphing/ImplicitFunction.d.ts.map +1 -0
  232. package/dist/mobjects/graphing/NumberLine.d.ts +195 -0
  233. package/dist/mobjects/graphing/NumberLine.d.ts.map +1 -0
  234. package/dist/mobjects/graphing/NumberPlane.d.ts +91 -0
  235. package/dist/mobjects/graphing/NumberPlane.d.ts.map +1 -0
  236. package/dist/mobjects/graphing/ParametricFunction.d.ts +111 -0
  237. package/dist/mobjects/graphing/ParametricFunction.d.ts.map +1 -0
  238. package/dist/mobjects/graphing/Vector.d.ts +121 -0
  239. package/dist/mobjects/graphing/Vector.d.ts.map +1 -0
  240. package/dist/mobjects/graphing/VectorField.d.ts +321 -0
  241. package/dist/mobjects/graphing/VectorField.d.ts.map +1 -0
  242. package/dist/mobjects/graphing/index.d.ts +18 -0
  243. package/dist/mobjects/graphing/index.d.ts.map +1 -0
  244. package/dist/mobjects/image/index.d.ts +223 -0
  245. package/dist/mobjects/image/index.d.ts.map +1 -0
  246. package/dist/mobjects/matrix/Matrix.d.ts +260 -0
  247. package/dist/mobjects/matrix/Matrix.d.ts.map +1 -0
  248. package/dist/mobjects/matrix/index.d.ts +8 -0
  249. package/dist/mobjects/matrix/index.d.ts.map +1 -0
  250. package/dist/mobjects/point/index.d.ts +707 -0
  251. package/dist/mobjects/point/index.d.ts.map +1 -0
  252. package/dist/mobjects/probability/DiceFace.d.ts +137 -0
  253. package/dist/mobjects/probability/DiceFace.d.ts.map +1 -0
  254. package/dist/mobjects/probability/SampleSpace.d.ts +267 -0
  255. package/dist/mobjects/probability/SampleSpace.d.ts.map +1 -0
  256. package/dist/mobjects/probability/index.d.ts +9 -0
  257. package/dist/mobjects/probability/index.d.ts.map +1 -0
  258. package/dist/mobjects/svg/Brace.d.ts +308 -0
  259. package/dist/mobjects/svg/Brace.d.ts.map +1 -0
  260. package/dist/mobjects/svg/SVGMobject.d.ts +64 -0
  261. package/dist/mobjects/svg/SVGMobject.d.ts.map +1 -0
  262. package/dist/mobjects/svg/index.d.ts +10 -0
  263. package/dist/mobjects/svg/index.d.ts.map +1 -0
  264. package/dist/mobjects/table/Table.d.ts +315 -0
  265. package/dist/mobjects/table/Table.d.ts.map +1 -0
  266. package/dist/mobjects/table/index.d.ts +8 -0
  267. package/dist/mobjects/table/index.d.ts.map +1 -0
  268. package/dist/mobjects/text/Code.d.ts +244 -0
  269. package/dist/mobjects/text/Code.d.ts.map +1 -0
  270. package/dist/mobjects/text/DecimalNumber.d.ts +199 -0
  271. package/dist/mobjects/text/DecimalNumber.d.ts.map +1 -0
  272. package/dist/mobjects/text/GlyphVMobject.d.ts +76 -0
  273. package/dist/mobjects/text/GlyphVMobject.d.ts.map +1 -0
  274. package/dist/mobjects/text/MarkupText.d.ts +161 -0
  275. package/dist/mobjects/text/MarkupText.d.ts.map +1 -0
  276. package/dist/mobjects/text/MathJaxRenderer.d.ts +49 -0
  277. package/dist/mobjects/text/MathJaxRenderer.d.ts.map +1 -0
  278. package/dist/mobjects/text/MathTex.d.ts +242 -0
  279. package/dist/mobjects/text/MathTex.d.ts.map +1 -0
  280. package/dist/mobjects/text/Paragraph.d.ts +86 -0
  281. package/dist/mobjects/text/Paragraph.d.ts.map +1 -0
  282. package/dist/mobjects/text/Tex.d.ts +40 -0
  283. package/dist/mobjects/text/Tex.d.ts.map +1 -0
  284. package/dist/mobjects/text/Text.d.ts +171 -0
  285. package/dist/mobjects/text/Text.d.ts.map +1 -0
  286. package/dist/mobjects/text/TextExtensions.d.ts +383 -0
  287. package/dist/mobjects/text/TextExtensions.d.ts.map +1 -0
  288. package/dist/mobjects/text/TextGlyphGroup.d.ts +48 -0
  289. package/dist/mobjects/text/TextGlyphGroup.d.ts.map +1 -0
  290. package/dist/mobjects/text/Variable.d.ts +160 -0
  291. package/dist/mobjects/text/Variable.d.ts.map +1 -0
  292. package/dist/mobjects/text/index.d.ts +21 -0
  293. package/dist/mobjects/text/index.d.ts.map +1 -0
  294. package/dist/mobjects/text/katex-styles.d.ts +23 -0
  295. package/dist/mobjects/text/katex-styles.d.ts.map +1 -0
  296. package/dist/mobjects/text/svgPathParser.d.ts +39 -0
  297. package/dist/mobjects/text/svgPathParser.d.ts.map +1 -0
  298. package/dist/mobjects/three-d/Arrow3D.d.ts +136 -0
  299. package/dist/mobjects/three-d/Arrow3D.d.ts.map +1 -0
  300. package/dist/mobjects/three-d/Cube.d.ts +186 -0
  301. package/dist/mobjects/three-d/Cube.d.ts.map +1 -0
  302. package/dist/mobjects/three-d/Cylinder.d.ts +189 -0
  303. package/dist/mobjects/three-d/Cylinder.d.ts.map +1 -0
  304. package/dist/mobjects/three-d/Line3D.d.ts +100 -0
  305. package/dist/mobjects/three-d/Line3D.d.ts.map +1 -0
  306. package/dist/mobjects/three-d/ParametricSurface.d.ts +86 -0
  307. package/dist/mobjects/three-d/ParametricSurface.d.ts.map +1 -0
  308. package/dist/mobjects/three-d/Polyhedra.d.ts +271 -0
  309. package/dist/mobjects/three-d/Polyhedra.d.ts.map +1 -0
  310. package/dist/mobjects/three-d/Sphere.d.ts +100 -0
  311. package/dist/mobjects/three-d/Sphere.d.ts.map +1 -0
  312. package/dist/mobjects/three-d/Surface3D.d.ts +156 -0
  313. package/dist/mobjects/three-d/Surface3D.d.ts.map +1 -0
  314. package/dist/mobjects/three-d/TexturedSurface.d.ts +208 -0
  315. package/dist/mobjects/three-d/TexturedSurface.d.ts.map +1 -0
  316. package/dist/mobjects/three-d/ThreeDAxes.d.ts +172 -0
  317. package/dist/mobjects/three-d/ThreeDAxes.d.ts.map +1 -0
  318. package/dist/mobjects/three-d/ThreeDExtensions.d.ts +335 -0
  319. package/dist/mobjects/three-d/ThreeDExtensions.d.ts.map +1 -0
  320. package/dist/mobjects/three-d/Torus.d.ts +123 -0
  321. package/dist/mobjects/three-d/Torus.d.ts.map +1 -0
  322. package/dist/mobjects/three-d/index.d.ts +19 -0
  323. package/dist/mobjects/three-d/index.d.ts.map +1 -0
  324. package/dist/mobjects/value-tracker/ValueTracker.d.ts +248 -0
  325. package/dist/mobjects/value-tracker/ValueTracker.d.ts.map +1 -0
  326. package/dist/mobjects/value-tracker/index.d.ts +9 -0
  327. package/dist/mobjects/value-tracker/index.d.ts.map +1 -0
  328. package/dist/rate-functions/index.d.ts +81 -0
  329. package/dist/rate-functions/index.d.ts.map +1 -0
  330. package/dist/rate-functions/rateFunctions.test.d.ts +2 -0
  331. package/dist/rate-functions/rateFunctions.test.d.ts.map +1 -0
  332. package/dist/rendering/BezierRenderer.d.ts +112 -0
  333. package/dist/rendering/BezierRenderer.d.ts.map +1 -0
  334. package/dist/rendering/BezierShaderMaterial.d.ts +50 -0
  335. package/dist/rendering/BezierShaderMaterial.d.ts.map +1 -0
  336. package/dist/rendering/index.d.ts +10 -0
  337. package/dist/rendering/index.d.ts.map +1 -0
  338. package/dist/utils/Performance.d.ts +118 -0
  339. package/dist/utils/Performance.d.ts.map +1 -0
  340. package/dist/utils/featureFlags.d.ts +15 -0
  341. package/dist/utils/featureFlags.d.ts.map +1 -0
  342. package/dist/utils/hungarian.d.ts +66 -0
  343. package/dist/utils/hungarian.d.ts.map +1 -0
  344. package/dist/utils/logger.d.ts +14 -0
  345. package/dist/utils/logger.d.ts.map +1 -0
  346. package/dist/utils/math.d.ts +52 -0
  347. package/dist/utils/math.d.ts.map +1 -0
  348. package/dist/utils/ode.d.ts +135 -0
  349. package/dist/utils/ode.d.ts.map +1 -0
  350. package/dist/utils/skeletonize.d.ts +35 -0
  351. package/dist/utils/skeletonize.d.ts.map +1 -0
  352. package/dist/utils/triangulate.d.ts +54 -0
  353. package/dist/utils/triangulate.d.ts.map +1 -0
  354. package/dist/utils/vectors.d.ts +57 -0
  355. package/dist/utils/vectors.d.ts.map +1 -0
  356. package/package.json +122 -0
@@ -0,0 +1,315 @@
1
+ import { Mobject, Vector3Tuple } from '../../core/Mobject';
2
+ import { VMobject } from '../../core/VMobject';
3
+ import { VGroup } from '../../core/VGroup';
4
+ import { Rectangle } from '../geometry/Rectangle';
5
+ /**
6
+ * Options for creating a Table
7
+ */
8
+ export interface TableOptions {
9
+ /** 2D array of mobjects to display in the table */
10
+ data: Mobject[][];
11
+ /** Row labels to display on the left side */
12
+ rowLabels?: Mobject[];
13
+ /** Column labels to display on top */
14
+ colLabels?: Mobject[];
15
+ /** Top-left element when both row and column labels exist */
16
+ topLeftEntry?: Mobject;
17
+ /** Whether to include outer lines around the table. Default: true */
18
+ includeOuterLines?: boolean;
19
+ /** Vertical buffer between cells. Default: 0.3 */
20
+ vBuff?: number;
21
+ /** Horizontal buffer between cells. Default: 0.5 */
22
+ hBuff?: number;
23
+ /** Color of the grid lines. Default: WHITE */
24
+ lineColor?: string;
25
+ /** Stroke width of grid lines. Default: 2 */
26
+ lineStrokeWidth?: number;
27
+ /** Whether to arrange entries in rows. Default: true */
28
+ arrangeInRowsFirst?: boolean;
29
+ /** Color for all entries. If set, overrides individual colors */
30
+ entriesColor?: string;
31
+ /** Background color for cells. Default: transparent */
32
+ backgroundStrokeColor?: string;
33
+ /** Background fill opacity. Default: 0 */
34
+ backgroundFillOpacity?: number;
35
+ /** Starting position. Default: ORIGIN */
36
+ position?: Vector3Tuple;
37
+ }
38
+ /**
39
+ * Table - A grid layout of mobjects with optional labels and lines
40
+ *
41
+ * Creates a table with rows and columns of mobjects, with customizable
42
+ * spacing, labels, and grid lines.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * // Create a simple 2x2 table of MathTex
47
+ * const t1 = new MathTex({ latex: '1' });
48
+ * const t2 = new MathTex({ latex: '2' });
49
+ * const t3 = new MathTex({ latex: '3' });
50
+ * const t4 = new MathTex({ latex: '4' });
51
+ * const table = new Table({
52
+ * data: [[t1, t2], [t3, t4]]
53
+ * });
54
+ *
55
+ * // Create a table with row and column labels
56
+ * const table = new Table({
57
+ * data: [[entry1, entry2], [entry3, entry4]],
58
+ * rowLabels: [rowLabel1, rowLabel2],
59
+ * colLabels: [colLabel1, colLabel2]
60
+ * });
61
+ * ```
62
+ */
63
+ export declare class Table extends VGroup {
64
+ protected _data: Mobject[][];
65
+ protected _rowLabels: Mobject[];
66
+ protected _colLabels: Mobject[];
67
+ protected _topLeftEntry: Mobject | null;
68
+ protected _includeOuterLines: boolean;
69
+ protected _vBuff: number;
70
+ protected _hBuff: number;
71
+ protected _lineColor: string;
72
+ protected _lineStrokeWidth: number;
73
+ /** Number of rows in the table (excluding labels) */
74
+ protected _numRows: number;
75
+ /** Number of columns in the table (excluding labels) */
76
+ protected _numCols: number;
77
+ /** All entries arranged in the table (includes labels) */
78
+ protected _entries: VGroup;
79
+ /** Horizontal lines */
80
+ protected _horizontalLines: VGroup;
81
+ /** Vertical lines */
82
+ protected _verticalLines: VGroup;
83
+ /** Background rectangles for highlighting */
84
+ protected _backgroundRectangles: Map<string, Rectangle>;
85
+ /** Cell dimensions for each row and column */
86
+ protected _rowHeights: number[];
87
+ protected _colWidths: number[];
88
+ /** Starting positions for rows and columns */
89
+ protected _rowPositions: number[];
90
+ protected _colPositions: number[];
91
+ constructor(options: TableOptions);
92
+ /**
93
+ * Calculate cell dimensions based on entry sizes
94
+ */
95
+ protected _calculateDimensions(): void;
96
+ /**
97
+ * Get bounds of a mobject
98
+ */
99
+ protected _getMobjectBounds(mobject: Mobject): {
100
+ width: number;
101
+ height: number;
102
+ };
103
+ /**
104
+ * Arrange entries in the table grid
105
+ */
106
+ protected _arrangeEntries(): void;
107
+ /**
108
+ * Create grid lines
109
+ */
110
+ protected _createLines(): void;
111
+ /**
112
+ * Get a specific cell entry by row and column (0-indexed, data only)
113
+ * @param row - Row index (0-based)
114
+ * @param col - Column index (0-based)
115
+ * @returns The mobject at that cell
116
+ */
117
+ getCell(row: number, col: number): Mobject;
118
+ /**
119
+ * Get a row as a VGroup (0-indexed, data only)
120
+ * @param row - Row index (0-based)
121
+ * @returns VGroup containing all entries in the row
122
+ */
123
+ getRow(row: number): VGroup;
124
+ /**
125
+ * Get a column as a VGroup (0-indexed, data only)
126
+ * @param col - Column index (0-based)
127
+ * @returns VGroup containing all entries in the column
128
+ */
129
+ getColumn(col: number): VGroup;
130
+ /**
131
+ * Get all data entries as a VGroup
132
+ * @returns VGroup containing all data entries
133
+ */
134
+ getEntries(): VGroup;
135
+ /**
136
+ * Get row labels as a VGroup
137
+ */
138
+ getRowLabels(): VGroup;
139
+ /**
140
+ * Get column labels as a VGroup
141
+ */
142
+ getColLabels(): VGroup;
143
+ /**
144
+ * Get all horizontal lines
145
+ */
146
+ getHorizontalLines(): VGroup;
147
+ /**
148
+ * Get all vertical lines
149
+ */
150
+ getVerticalLines(): VGroup;
151
+ /**
152
+ * Add a highlight rectangle behind a cell
153
+ * @param row - Row index (0-based)
154
+ * @param col - Column index (0-based)
155
+ * @param color - Highlight color. Default: YELLOW
156
+ * @param opacity - Fill opacity. Default: 0.3
157
+ * @returns The created Rectangle for further customization
158
+ */
159
+ addHighlight(row: number, col: number, color?: string, opacity?: number): Rectangle;
160
+ /**
161
+ * Remove a highlight from a cell
162
+ * @param row - Row index (0-based)
163
+ * @param col - Column index (0-based)
164
+ */
165
+ removeHighlight(row: number, col: number): this;
166
+ /**
167
+ * Get the number of rows (data only)
168
+ */
169
+ getNumRows(): number;
170
+ /**
171
+ * Get the number of columns (data only)
172
+ */
173
+ getNumCols(): number;
174
+ /**
175
+ * Set the color of grid lines
176
+ */
177
+ setLineColor(color: string): this;
178
+ /**
179
+ * Create a copy of this Table
180
+ */
181
+ protected _createCopy(): VMobject;
182
+ }
183
+ /**
184
+ * Options for creating a MathTable
185
+ */
186
+ export interface MathTableOptions extends Omit<TableOptions, 'data' | 'rowLabels' | 'colLabels'> {
187
+ /** 2D array of LaTeX strings */
188
+ data: string[][];
189
+ /** Row labels as LaTeX strings */
190
+ rowLabels?: string[];
191
+ /** Column labels as LaTeX strings */
192
+ colLabels?: string[];
193
+ /** Font size for MathTex entries. Default: 36 */
194
+ fontSize?: number;
195
+ /** Color for all entries. Default: WHITE */
196
+ color?: string;
197
+ }
198
+ /**
199
+ * MathTable - A table where all entries are LaTeX-rendered MathTex
200
+ *
201
+ * Convenience class for creating tables of mathematical expressions.
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const table = new MathTable({
206
+ * data: [
207
+ * ['x', 'x^2', 'x^3'],
208
+ * ['1', '1', '1'],
209
+ * ['2', '4', '8'],
210
+ * ['3', '9', '27'],
211
+ * ],
212
+ * colLabels: ['x', 'x^2', 'x^3'],
213
+ * });
214
+ * ```
215
+ */
216
+ export declare class MathTable extends Table {
217
+ constructor(options: MathTableOptions);
218
+ }
219
+ /**
220
+ * Options for creating a MobjectTable
221
+ */
222
+ export interface MobjectTableOptions extends TableOptions {
223
+ }
224
+ /**
225
+ * MobjectTable - A table that can contain any type of mobject
226
+ *
227
+ * This is essentially an alias for Table, but with a more descriptive name
228
+ * when you explicitly want to mix different mobject types.
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const circle = new Circle();
233
+ * const square = new Square();
234
+ * const text = new Text({ text: 'Hello' });
235
+ *
236
+ * const table = new MobjectTable({
237
+ * data: [[circle, square, text]]
238
+ * });
239
+ * ```
240
+ */
241
+ export declare class MobjectTable extends Table {
242
+ constructor(options: MobjectTableOptions);
243
+ }
244
+ /**
245
+ * Options for creating an IntegerTable
246
+ */
247
+ export interface IntegerTableOptions extends Omit<TableOptions, 'data' | 'rowLabels' | 'colLabels'> {
248
+ /** 2D array of integers */
249
+ data: number[][];
250
+ /** Row labels as integers */
251
+ rowLabels?: number[];
252
+ /** Column labels as integers */
253
+ colLabels?: number[];
254
+ /** Font size. Default: 36 */
255
+ fontSize?: number;
256
+ /** Color for all entries. Default: WHITE */
257
+ color?: string;
258
+ }
259
+ /**
260
+ * IntegerTable - A table of integers
261
+ *
262
+ * Creates a table displaying integer values using DecimalNumber with 0 decimal places.
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * const table = new IntegerTable({
267
+ * data: [
268
+ * [1, 2, 3],
269
+ * [4, 5, 6],
270
+ * [7, 8, 9],
271
+ * ]
272
+ * });
273
+ * ```
274
+ */
275
+ export declare class IntegerTable extends Table {
276
+ constructor(options: IntegerTableOptions);
277
+ }
278
+ /**
279
+ * Options for creating a DecimalTable
280
+ */
281
+ export interface DecimalTableOptions extends Omit<TableOptions, 'data' | 'rowLabels' | 'colLabels'> {
282
+ /** 2D array of decimal numbers */
283
+ data: number[][];
284
+ /** Row labels as decimal numbers */
285
+ rowLabels?: number[];
286
+ /** Column labels as decimal numbers */
287
+ colLabels?: number[];
288
+ /** Number of decimal places. Default: 2 */
289
+ numDecimalPlaces?: number;
290
+ /** Font size. Default: 36 */
291
+ fontSize?: number;
292
+ /** Color for all entries. Default: WHITE */
293
+ color?: string;
294
+ }
295
+ /**
296
+ * DecimalTable - A table of decimal numbers
297
+ *
298
+ * Creates a table displaying decimal values with configurable precision.
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const table = new DecimalTable({
303
+ * data: [
304
+ * [1.234, 2.567, 3.891],
305
+ * [4.123, 5.456, 6.789],
306
+ * ],
307
+ * numDecimalPlaces: 2
308
+ * });
309
+ * ```
310
+ */
311
+ export declare class DecimalTable extends Table {
312
+ constructor(options: DecimalTableOptions);
313
+ }
314
+ export default Table;
315
+ //# sourceMappingURL=Table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/mobjects/table/Table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Table mobjects for manimweb
3
+ *
4
+ * This module provides table layout capabilities for displaying data in grids,
5
+ * supporting various entry types including text, math, and arbitrary mobjects.
6
+ */
7
+ export { Table, MathTable, MobjectTable, IntegerTable, DecimalTable, type TableOptions, type MathTableOptions, type MobjectTableOptions, type IntegerTableOptions, type DecimalTableOptions, } from './Table';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobjects/table/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,244 @@
1
+ import { VMobject } from '../../core/VMobject';
2
+ import { Vector3Tuple } from '../../core/Mobject';
3
+ import * as THREE from 'three';
4
+ /**
5
+ * Token types for syntax highlighting
6
+ */
7
+ export type TokenType = 'keyword' | 'string' | 'comment' | 'number' | 'function' | 'operator' | 'punctuation' | 'type' | 'default';
8
+ /**
9
+ * A token with its type and text
10
+ */
11
+ export interface Token {
12
+ type: TokenType;
13
+ text: string;
14
+ }
15
+ /**
16
+ * Color scheme for syntax highlighting
17
+ */
18
+ export interface CodeColorScheme {
19
+ keyword: string;
20
+ string: string;
21
+ comment: string;
22
+ number: string;
23
+ function: string;
24
+ operator: string;
25
+ punctuation: string;
26
+ type: string;
27
+ default: string;
28
+ background: string;
29
+ lineNumber: string;
30
+ }
31
+ /**
32
+ * Default color scheme (VS Code dark theme inspired)
33
+ */
34
+ export declare const DEFAULT_COLOR_SCHEME: CodeColorScheme;
35
+ /**
36
+ * Monokai color scheme
37
+ */
38
+ export declare const MONOKAI_COLOR_SCHEME: CodeColorScheme;
39
+ /**
40
+ * Options for creating a Code mobject
41
+ */
42
+ export interface CodeOptions {
43
+ /** The code string to display */
44
+ code: string;
45
+ /** Programming language for syntax highlighting */
46
+ language?: string;
47
+ /** Whether to show line numbers. Default: true */
48
+ lineNumbers?: boolean;
49
+ /** Tab width in spaces. Default: 4 */
50
+ tabWidth?: number;
51
+ /** Font size in pixels. Default: 24 */
52
+ fontSize?: number;
53
+ /** Font family. Default: 'monospace' */
54
+ fontFamily?: string;
55
+ /** Color scheme for syntax highlighting */
56
+ colorScheme?: CodeColorScheme;
57
+ /** Whether to show background rectangle. Default: true */
58
+ showBackground?: boolean;
59
+ /** Background padding in pixels. Default: 16 */
60
+ backgroundPadding?: number;
61
+ /** Background corner radius in pixels. Default: 8 */
62
+ backgroundRadius?: number;
63
+ /** Line height multiplier. Default: 1.4 */
64
+ lineHeight?: number;
65
+ }
66
+ /**
67
+ * Code - A syntax-highlighted code block mobject
68
+ *
69
+ * Renders code with syntax highlighting using Canvas 2D to a texture.
70
+ * Supports multiple programming languages with customizable color schemes.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * // Create Python code block
75
+ * const pythonCode = new Code({
76
+ * code: `def hello():
77
+ * print("Hello, World!")`,
78
+ * language: 'python',
79
+ * });
80
+ *
81
+ * // Create TypeScript code without line numbers
82
+ * const tsCode = new Code({
83
+ * code: 'const x: number = 42;',
84
+ * language: 'typescript',
85
+ * lineNumbers: false,
86
+ * });
87
+ *
88
+ * // Use Monokai color scheme
89
+ * const monokaiCode = new Code({
90
+ * code: 'console.log("Hello");',
91
+ * language: 'javascript',
92
+ * colorScheme: MONOKAI_COLOR_SCHEME,
93
+ * });
94
+ * ```
95
+ */
96
+ export declare class Code extends VMobject {
97
+ protected _code: string;
98
+ protected _language: string;
99
+ protected _lineNumbers: boolean;
100
+ protected _tabWidth: number;
101
+ protected _fontSize: number;
102
+ protected _fontFamily: string;
103
+ protected _colorScheme: CodeColorScheme;
104
+ protected _showBackground: boolean;
105
+ protected _backgroundPadding: number;
106
+ protected _backgroundRadius: number;
107
+ protected _lineHeight: number;
108
+ /** Off-screen canvas for code rendering */
109
+ protected _canvas: HTMLCanvasElement | null;
110
+ protected _ctx: CanvasRenderingContext2D | null;
111
+ /** Three.js texture from canvas */
112
+ protected _texture: THREE.CanvasTexture | null;
113
+ /** Plane mesh for displaying the texture */
114
+ protected _mesh: THREE.Mesh | null;
115
+ /** Background mesh */
116
+ protected _backgroundMesh: THREE.Mesh | null;
117
+ /** Cached dimensions in world units */
118
+ protected _worldWidth: number;
119
+ protected _worldHeight: number;
120
+ /** Parsed lines for later access */
121
+ protected _lines: string[];
122
+ /** Tokenized lines for highlighting specific parts */
123
+ protected _tokenizedLines: Token[][];
124
+ /** Highlight rectangles */
125
+ protected _highlightMeshes: THREE.Mesh[];
126
+ constructor(options: CodeOptions);
127
+ /**
128
+ * Initialize the off-screen canvas
129
+ */
130
+ protected _initCanvas(): void;
131
+ /**
132
+ * Parse code into lines and tokenize
133
+ */
134
+ protected _parseCode(): void;
135
+ /**
136
+ * Tokenize a single line of code
137
+ */
138
+ protected _tokenizeLine(line: string): Token[];
139
+ /**
140
+ * Get the code content
141
+ */
142
+ getCode(): string;
143
+ /**
144
+ * Set new code and re-render
145
+ * @param code - New code to display
146
+ * @returns this for chaining
147
+ */
148
+ setCode(code: string): this;
149
+ /**
150
+ * Get the language
151
+ */
152
+ getLanguage(): string;
153
+ /**
154
+ * Set language and re-render
155
+ * @param language - Programming language
156
+ * @returns this for chaining
157
+ */
158
+ setLanguage(language: string): this;
159
+ /**
160
+ * Get the number of lines
161
+ */
162
+ getLineCount(): number;
163
+ /**
164
+ * Get code width in world units
165
+ */
166
+ getWidth(): number;
167
+ /**
168
+ * Get code height in world units
169
+ */
170
+ getHeight(): number;
171
+ /**
172
+ * Get a specific line of code as a Text-like mobject representation
173
+ * Returns position info for the specified line
174
+ * @param lineNumber - 1-based line number
175
+ * @returns Object with line info or null if out of range
176
+ */
177
+ getLineOfCode(lineNumber: number): {
178
+ text: string;
179
+ position: Vector3Tuple;
180
+ tokens: Token[];
181
+ } | null;
182
+ /**
183
+ * Highlight a range of lines with a background color
184
+ * @param startLine - Starting line number (1-based)
185
+ * @param endLine - Ending line number (1-based, inclusive)
186
+ * @param color - Highlight color. Default: semi-transparent yellow
187
+ * @returns this for chaining
188
+ */
189
+ highlightLines(startLine: number, endLine: number, color?: string): this;
190
+ /**
191
+ * Clear all line highlights
192
+ * @returns this for chaining
193
+ */
194
+ clearHighlights(): this;
195
+ /**
196
+ * Build the CSS font string
197
+ */
198
+ protected _buildFontString(): string;
199
+ /**
200
+ * Calculate the width needed for line numbers
201
+ */
202
+ protected _getLineNumberWidth(): number;
203
+ /**
204
+ * Measure canvas dimensions needed
205
+ */
206
+ protected _measureCode(): {
207
+ width: number;
208
+ height: number;
209
+ };
210
+ /**
211
+ * Render code to the off-screen canvas
212
+ */
213
+ protected _renderToCanvas(): void;
214
+ /**
215
+ * Draw a rounded rectangle
216
+ */
217
+ protected _roundRect(x: number, y: number, width: number, height: number, radius: number): void;
218
+ /**
219
+ * Update the mesh geometry to match new dimensions
220
+ */
221
+ protected _updateMesh(): void;
222
+ /**
223
+ * Create the Three.js backing object
224
+ */
225
+ protected _createThreeObject(): THREE.Object3D;
226
+ /**
227
+ * Sync material properties to Three.js
228
+ */
229
+ protected _syncMaterialToThree(): void;
230
+ /**
231
+ * Get the center of this code mobject
232
+ */
233
+ getCenter(): Vector3Tuple;
234
+ /**
235
+ * Create a copy of this Code mobject
236
+ */
237
+ protected _createCopy(): Code;
238
+ /**
239
+ * Clean up Three.js and canvas resources
240
+ */
241
+ dispose(): void;
242
+ }
243
+ export default Code;
244
+ //# sourceMappingURL=Code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.d.ts","sourceRoot":"","sources":["../../../src/mobjects/text/Code.ts"],"names":[],"mappings":"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"}