@codexo/exojs 0.13.0 → 0.14.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 (739) hide show
  1. package/CHANGELOG.md +133 -6
  2. package/README.md +80 -63
  3. package/dist/esm/animation/Tween.js +1 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +9 -5
  6. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  7. package/dist/esm/animation/TweenManager.js +14 -8
  8. package/dist/esm/animation/TweenManager.js.map +1 -1
  9. package/dist/esm/animation/index.d.ts +6 -4
  10. package/dist/esm/animation/index.d.ts.map +1 -1
  11. package/dist/esm/audio/AudioBus.d.ts +12 -12
  12. package/dist/esm/audio/AudioBus.js +29 -29
  13. package/dist/esm/audio/AudioEffect.d.ts +18 -0
  14. package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
  15. package/dist/esm/audio/AudioEffect.js +16 -0
  16. package/dist/esm/audio/AudioEffect.js.map +1 -0
  17. package/dist/esm/audio/AudioGenerator.d.ts +91 -0
  18. package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
  19. package/dist/esm/audio/AudioGenerator.js +165 -0
  20. package/dist/esm/audio/AudioGenerator.js.map +1 -0
  21. package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
  22. package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
  23. package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
  24. package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
  25. package/dist/esm/audio/AudioInput.d.ts +39 -0
  26. package/dist/esm/audio/AudioInput.d.ts.map +1 -0
  27. package/dist/esm/audio/AudioInput.js +53 -0
  28. package/dist/esm/audio/AudioInput.js.map +1 -0
  29. package/dist/esm/audio/AudioManager.d.ts +72 -34
  30. package/dist/esm/audio/AudioManager.d.ts.map +1 -1
  31. package/dist/esm/audio/AudioManager.js +97 -51
  32. package/dist/esm/audio/AudioManager.js.map +1 -1
  33. package/dist/esm/audio/AudioStream.d.ts +49 -0
  34. package/dist/esm/audio/AudioStream.d.ts.map +1 -0
  35. package/dist/esm/audio/AudioStream.js +109 -0
  36. package/dist/esm/audio/AudioStream.js.map +1 -0
  37. package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
  38. package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
  39. package/dist/esm/audio/AudioStreamVoice.js +137 -0
  40. package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
  41. package/dist/esm/audio/BaseVoice.d.ts +111 -0
  42. package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
  43. package/dist/esm/audio/BaseVoice.js +298 -0
  44. package/dist/esm/audio/BaseVoice.js.map +1 -0
  45. package/dist/esm/audio/BiquadEffect.d.ts +53 -0
  46. package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
  47. package/dist/esm/audio/BiquadEffect.js +110 -0
  48. package/dist/esm/audio/BiquadEffect.js.map +1 -0
  49. package/dist/esm/audio/InputVoice.d.ts +41 -0
  50. package/dist/esm/audio/InputVoice.d.ts.map +1 -0
  51. package/dist/esm/audio/InputVoice.js +85 -0
  52. package/dist/esm/audio/InputVoice.js.map +1 -0
  53. package/dist/esm/audio/NoopVoice.d.ts +29 -0
  54. package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
  55. package/dist/esm/audio/NoopVoice.js +52 -0
  56. package/dist/esm/audio/NoopVoice.js.map +1 -0
  57. package/dist/esm/audio/Playable.d.ts +135 -0
  58. package/dist/esm/audio/Playable.d.ts.map +1 -0
  59. package/dist/esm/audio/Sound.d.ts +64 -69
  60. package/dist/esm/audio/Sound.d.ts.map +1 -1
  61. package/dist/esm/audio/Sound.js +176 -377
  62. package/dist/esm/audio/Sound.js.map +1 -1
  63. package/dist/esm/audio/SoundVoice.d.ts +63 -0
  64. package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
  65. package/dist/esm/audio/SoundVoice.js +168 -0
  66. package/dist/esm/audio/SoundVoice.js.map +1 -0
  67. package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
  68. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
  69. package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
  70. package/dist/esm/audio/WorkletEffect.js.map +1 -0
  71. package/dist/esm/audio/audio-context.js +1 -1
  72. package/dist/esm/audio/audio-context.js.map +1 -1
  73. package/dist/esm/audio/crossFade.d.ts +22 -13
  74. package/dist/esm/audio/crossFade.d.ts.map +1 -1
  75. package/dist/esm/audio/crossFade.js +21 -13
  76. package/dist/esm/audio/crossFade.js.map +1 -1
  77. package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
  78. package/dist/esm/audio/filters/HighpassFilter.js +2 -2
  79. package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
  80. package/dist/esm/audio/filters/LowpassFilter.js +2 -2
  81. package/dist/esm/audio/filters/index.d.ts +0 -10
  82. package/dist/esm/audio/filters/index.d.ts.map +1 -1
  83. package/dist/esm/audio/index.d.ts +13 -15
  84. package/dist/esm/audio/index.d.ts.map +1 -1
  85. package/dist/esm/core/Application.d.ts +127 -10
  86. package/dist/esm/core/Application.d.ts.map +1 -1
  87. package/dist/esm/core/Application.js +226 -25
  88. package/dist/esm/core/Application.js.map +1 -1
  89. package/dist/esm/core/BuildInfo.js +2 -2
  90. package/dist/esm/core/Color.d.ts +6 -4
  91. package/dist/esm/core/Color.d.ts.map +1 -1
  92. package/dist/esm/core/Color.js +19 -15
  93. package/dist/esm/core/Color.js.map +1 -1
  94. package/dist/esm/core/DisposalScope.d.ts +50 -0
  95. package/dist/esm/core/DisposalScope.d.ts.map +1 -0
  96. package/dist/esm/core/DisposalScope.js +86 -0
  97. package/dist/esm/core/DisposalScope.js.map +1 -0
  98. package/dist/esm/core/Perf.d.ts +10 -22
  99. package/dist/esm/core/Perf.d.ts.map +1 -1
  100. package/dist/esm/core/Perf.js +15 -8
  101. package/dist/esm/core/Perf.js.map +1 -1
  102. package/dist/esm/core/Registry.d.ts +64 -0
  103. package/dist/esm/core/Registry.d.ts.map +1 -0
  104. package/dist/esm/core/Registry.js +79 -0
  105. package/dist/esm/core/Registry.js.map +1 -0
  106. package/dist/esm/core/Scene.d.ts +69 -21
  107. package/dist/esm/core/Scene.d.ts.map +1 -1
  108. package/dist/esm/core/Scene.js +109 -16
  109. package/dist/esm/core/Scene.js.map +1 -1
  110. package/dist/esm/core/SceneManager.d.ts +22 -60
  111. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  112. package/dist/esm/core/SceneManager.js +68 -153
  113. package/dist/esm/core/SceneManager.js.map +1 -1
  114. package/dist/esm/core/SceneNode.d.ts +43 -2
  115. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  116. package/dist/esm/core/SceneNode.js +101 -12
  117. package/dist/esm/core/SceneNode.js.map +1 -1
  118. package/dist/esm/core/Signal.js.map +1 -1
  119. package/dist/esm/core/Stage.d.ts +42 -0
  120. package/dist/esm/core/Stage.d.ts.map +1 -0
  121. package/dist/esm/core/System.d.ts +22 -0
  122. package/dist/esm/core/System.d.ts.map +1 -0
  123. package/dist/esm/core/SystemRegistry.d.ts +35 -0
  124. package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
  125. package/dist/esm/core/SystemRegistry.js +104 -0
  126. package/dist/esm/core/SystemRegistry.js.map +1 -0
  127. package/dist/esm/core/Time.d.ts +15 -0
  128. package/dist/esm/core/Time.d.ts.map +1 -1
  129. package/dist/esm/core/Time.js +25 -0
  130. package/dist/esm/core/Time.js.map +1 -1
  131. package/dist/esm/core/dev.d.ts +9 -4
  132. package/dist/esm/core/dev.d.ts.map +1 -1
  133. package/dist/esm/core/dev.js +5 -0
  134. package/dist/esm/core/dev.js.map +1 -1
  135. package/dist/esm/core/index.d.ts +26 -15
  136. package/dist/esm/core/index.d.ts.map +1 -1
  137. package/dist/esm/core/letterbox.d.ts +25 -0
  138. package/dist/esm/core/letterbox.d.ts.map +1 -0
  139. package/dist/esm/core/letterbox.js +26 -0
  140. package/dist/esm/core/letterbox.js.map +1 -0
  141. package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
  142. package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
  143. package/dist/esm/core/serialization/Prefab.d.ts +49 -0
  144. package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
  145. package/dist/esm/core/serialization/Prefab.js +61 -0
  146. package/dist/esm/core/serialization/Prefab.js.map +1 -0
  147. package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
  148. package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
  149. package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
  150. package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
  151. package/dist/esm/core/serialization/commonFields.d.ts +20 -0
  152. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
  153. package/dist/esm/core/serialization/commonFields.js +149 -0
  154. package/dist/esm/core/serialization/commonFields.js.map +1 -0
  155. package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
  156. package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
  157. package/dist/esm/core/serialization/coreSerializers.js +101 -0
  158. package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
  159. package/dist/esm/core/serialization/index.d.ts +6 -0
  160. package/dist/esm/core/serialization/index.d.ts.map +1 -0
  161. package/dist/esm/core/serialization/read.d.ts +65 -0
  162. package/dist/esm/core/serialization/read.d.ts.map +1 -0
  163. package/dist/esm/core/serialization/read.js +48 -0
  164. package/dist/esm/core/serialization/read.js.map +1 -0
  165. package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
  166. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
  167. package/dist/esm/core/serialization/renderingSerializers.js +311 -0
  168. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
  169. package/dist/esm/core/serialization/serialize.d.ts +56 -0
  170. package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
  171. package/dist/esm/core/serialization/serialize.js +144 -0
  172. package/dist/esm/core/serialization/serialize.js.map +1 -0
  173. package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
  174. package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
  175. package/dist/esm/core/serialization/serializerHelpers.js +161 -0
  176. package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
  177. package/dist/esm/core/serialization/types.d.ts +49 -0
  178. package/dist/esm/core/serialization/types.d.ts.map +1 -0
  179. package/dist/esm/core/serialization/types.js +9 -0
  180. package/dist/esm/core/serialization/types.js.map +1 -0
  181. package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
  182. package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
  183. package/dist/esm/core/serialization/uiSerializers.js +206 -0
  184. package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
  185. package/dist/esm/core/types.d.ts +1 -1
  186. package/dist/esm/core/types.d.ts.map +1 -1
  187. package/dist/esm/core/utils.d.ts +1 -16
  188. package/dist/esm/core/utils.d.ts.map +1 -1
  189. package/dist/esm/core/utils.js +2 -100
  190. package/dist/esm/core/utils.js.map +1 -1
  191. package/dist/esm/debug/PerformanceLayer.js +8 -9
  192. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  193. package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
  194. package/dist/esm/debug/PointerStackLayer.js +9 -6
  195. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  196. package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
  197. package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
  198. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  199. package/dist/esm/extensions/Extension.d.ts +39 -4
  200. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  201. package/dist/esm/extensions/materialize.d.ts +9 -1
  202. package/dist/esm/extensions/materialize.d.ts.map +1 -1
  203. package/dist/esm/extensions/materialize.js +17 -2
  204. package/dist/esm/extensions/materialize.js.map +1 -1
  205. package/dist/esm/extensions/snapshot.d.ts +2 -1
  206. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  207. package/dist/esm/extensions/snapshot.js +8 -0
  208. package/dist/esm/extensions/snapshot.js.map +1 -1
  209. package/dist/esm/index.d.ts +2 -1
  210. package/dist/esm/index.d.ts.map +1 -1
  211. package/dist/esm/index.js +34 -59
  212. package/dist/esm/index.js.map +1 -1
  213. package/dist/esm/input/FocusManager.d.ts +59 -0
  214. package/dist/esm/input/FocusManager.d.ts.map +1 -0
  215. package/dist/esm/input/FocusManager.js +175 -0
  216. package/dist/esm/input/FocusManager.js.map +1 -0
  217. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  218. package/dist/esm/input/Gamepad.js +8 -4
  219. package/dist/esm/input/Gamepad.js.map +1 -1
  220. package/dist/esm/input/GamepadAxis.js +2 -2
  221. package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
  222. package/dist/esm/input/GamepadDefinitions.js +6 -2
  223. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  224. package/dist/esm/input/GestureRecognizer.d.ts +1 -2
  225. package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
  226. package/dist/esm/input/GestureRecognizer.js +1 -3
  227. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  228. package/dist/esm/input/InputBinding.js +3 -3
  229. package/dist/esm/input/InputBinding.js.map +1 -1
  230. package/dist/esm/input/InputManager.d.ts +7 -2
  231. package/dist/esm/input/InputManager.d.ts.map +1 -1
  232. package/dist/esm/input/InputManager.js +35 -21
  233. package/dist/esm/input/InputManager.js.map +1 -1
  234. package/dist/esm/input/InteractionManager.d.ts +67 -2
  235. package/dist/esm/input/InteractionManager.d.ts.map +1 -1
  236. package/dist/esm/input/InteractionManager.js +165 -41
  237. package/dist/esm/input/InteractionManager.js.map +1 -1
  238. package/dist/esm/input/KeyEvent.d.ts +25 -0
  239. package/dist/esm/input/KeyEvent.d.ts.map +1 -0
  240. package/dist/esm/input/KeyEvent.js +32 -0
  241. package/dist/esm/input/KeyEvent.js.map +1 -0
  242. package/dist/esm/input/Pointer.d.ts +21 -4
  243. package/dist/esm/input/Pointer.d.ts.map +1 -1
  244. package/dist/esm/input/Pointer.js +54 -15
  245. package/dist/esm/input/Pointer.js.map +1 -1
  246. package/dist/esm/input/index.d.ts +3 -1
  247. package/dist/esm/input/index.d.ts.map +1 -1
  248. package/dist/esm/math/AbstractVector.d.ts.map +1 -1
  249. package/dist/esm/math/AbstractVector.js +7 -2
  250. package/dist/esm/math/AbstractVector.js.map +1 -1
  251. package/dist/esm/math/Circle.d.ts.map +1 -1
  252. package/dist/esm/math/Circle.js +5 -1
  253. package/dist/esm/math/Circle.js.map +1 -1
  254. package/dist/esm/math/Line.d.ts +1 -1
  255. package/dist/esm/math/Line.d.ts.map +1 -1
  256. package/dist/esm/math/Line.js +1 -1
  257. package/dist/esm/math/Line.js.map +1 -1
  258. package/dist/esm/math/Matrix.d.ts.map +1 -1
  259. package/dist/esm/math/Matrix.js +6 -1
  260. package/dist/esm/math/Matrix.js.map +1 -1
  261. package/dist/esm/math/ObservableVector.d.ts +26 -8
  262. package/dist/esm/math/ObservableVector.d.ts.map +1 -1
  263. package/dist/esm/math/ObservableVector.js +24 -16
  264. package/dist/esm/math/ObservableVector.js.map +1 -1
  265. package/dist/esm/math/Polygon.d.ts +5 -0
  266. package/dist/esm/math/Polygon.d.ts.map +1 -1
  267. package/dist/esm/math/Polygon.js +27 -3
  268. package/dist/esm/math/Polygon.js.map +1 -1
  269. package/dist/esm/math/Random.d.ts +9 -9
  270. package/dist/esm/math/Random.d.ts.map +1 -1
  271. package/dist/esm/math/Random.js +46 -46
  272. package/dist/esm/math/Random.js.map +1 -1
  273. package/dist/esm/math/Rectangle.d.ts +11 -4
  274. package/dist/esm/math/Rectangle.d.ts.map +1 -1
  275. package/dist/esm/math/Rectangle.js +12 -6
  276. package/dist/esm/math/Rectangle.js.map +1 -1
  277. package/dist/esm/math/Vector.d.ts +1 -1
  278. package/dist/esm/math/Vector.d.ts.map +1 -1
  279. package/dist/esm/math/Vector.js +1 -1
  280. package/dist/esm/math/Vector.js.map +1 -1
  281. package/dist/esm/math/collision-detection.d.ts +42 -0
  282. package/dist/esm/math/collision-detection.d.ts.map +1 -1
  283. package/dist/esm/math/collision-detection.js +54 -4
  284. package/dist/esm/math/collision-detection.js.map +1 -1
  285. package/dist/esm/math/collision-primitives.d.ts.map +1 -1
  286. package/dist/esm/math/collision-primitives.js +4 -0
  287. package/dist/esm/math/collision-primitives.js.map +1 -1
  288. package/dist/esm/math/geometry.d.ts +26 -0
  289. package/dist/esm/math/geometry.d.ts.map +1 -1
  290. package/dist/esm/math/geometry.js +89 -2
  291. package/dist/esm/math/geometry.js.map +1 -1
  292. package/dist/esm/math/index.d.ts +7 -5
  293. package/dist/esm/math/index.d.ts.map +1 -1
  294. package/dist/esm/math/swept-collision.d.ts +13 -0
  295. package/dist/esm/math/swept-collision.d.ts.map +1 -1
  296. package/dist/esm/math/swept-collision.js +15 -1
  297. package/dist/esm/math/swept-collision.js.map +1 -1
  298. package/dist/esm/math/triangulate.d.ts.map +1 -1
  299. package/dist/esm/math/triangulate.js +9 -1
  300. package/dist/esm/math/triangulate.js.map +1 -1
  301. package/dist/esm/math/utils.d.ts +20 -0
  302. package/dist/esm/math/utils.d.ts.map +1 -1
  303. package/dist/esm/math/utils.js +18 -15
  304. package/dist/esm/math/utils.js.map +1 -1
  305. package/dist/esm/renderer-sdk.d.ts +2 -0
  306. package/dist/esm/renderer-sdk.d.ts.map +1 -1
  307. package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
  308. package/dist/esm/renderer-sdk.js.map +1 -0
  309. package/dist/esm/rendering/CallbackRenderPass.js +1 -1
  310. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  311. package/dist/esm/rendering/Container.d.ts +3 -0
  312. package/dist/esm/rendering/Container.d.ts.map +1 -1
  313. package/dist/esm/rendering/Container.js +28 -5
  314. package/dist/esm/rendering/Container.js.map +1 -1
  315. package/dist/esm/rendering/Drawable.d.ts +24 -0
  316. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  317. package/dist/esm/rendering/Drawable.js +54 -0
  318. package/dist/esm/rendering/Drawable.js.map +1 -1
  319. package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
  320. package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
  321. package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
  322. package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
  323. package/dist/esm/rendering/RenderBackend.d.ts +15 -1
  324. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  325. package/dist/esm/rendering/RenderBatch.d.ts +55 -0
  326. package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
  327. package/dist/esm/rendering/RenderBatch.js +107 -0
  328. package/dist/esm/rendering/RenderBatch.js.map +1 -0
  329. package/dist/esm/rendering/RenderNode.d.ts +50 -10
  330. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  331. package/dist/esm/rendering/RenderNode.js +113 -20
  332. package/dist/esm/rendering/RenderNode.js.map +1 -1
  333. package/dist/esm/rendering/RenderNodePass.js +2 -2
  334. package/dist/esm/rendering/RenderNodePass.js.map +1 -1
  335. package/dist/esm/rendering/RenderStats.d.ts +39 -0
  336. package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
  337. package/dist/esm/rendering/RenderStats.js +14 -0
  338. package/dist/esm/rendering/RenderStats.js.map +1 -1
  339. package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
  340. package/dist/esm/rendering/RendererRegistry.js +20 -23
  341. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  342. package/dist/esm/rendering/RenderingContext.d.ts +88 -4
  343. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  344. package/dist/esm/rendering/RenderingContext.js +107 -5
  345. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  346. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  347. package/dist/esm/rendering/TransformBuffer.js +2 -0
  348. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  349. package/dist/esm/rendering/View.d.ts +47 -15
  350. package/dist/esm/rendering/View.d.ts.map +1 -1
  351. package/dist/esm/rendering/View.js +44 -27
  352. package/dist/esm/rendering/View.js.map +1 -1
  353. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  354. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
  355. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  356. package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
  357. package/dist/esm/rendering/geometry/Geometry.js +4 -2
  358. package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
  359. package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
  360. package/dist/esm/rendering/gradient/Gradient.js +7 -2
  361. package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
  362. package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
  363. package/dist/esm/rendering/material/MaterialKey.js +2 -0
  364. package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
  365. package/dist/esm/rendering/material/ShaderSource.js +6 -0
  366. package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
  367. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
  368. package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
  369. package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
  370. package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
  371. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
  372. package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
  373. package/dist/esm/rendering/mesh/Mesh.js +40 -13
  374. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  375. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -1
  376. package/dist/esm/rendering/pixelSnap.js +1 -0
  377. package/dist/esm/rendering/pixelSnap.js.map +1 -1
  378. package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
  379. package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
  380. package/dist/esm/rendering/plan/RenderCommand.js +23 -21
  381. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
  382. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  383. package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
  384. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  385. package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
  386. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  387. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
  388. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  389. package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
  390. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  391. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
  392. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
  393. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
  394. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  395. package/dist/esm/rendering/plan/RenderPlanPlayer.js +54 -17
  396. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  397. package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
  398. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  399. package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
  400. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  401. package/dist/esm/rendering/primitives/Graphics.js +17 -1
  402. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  403. package/dist/esm/rendering/{index.d.ts → public.d.ts} +5 -35
  404. package/dist/esm/rendering/public.d.ts.map +1 -0
  405. package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
  406. package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
  407. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  408. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
  409. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  410. package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
  411. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  412. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -1
  413. package/dist/esm/rendering/sprite/NineSliceSprite.js +10 -11
  414. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -1
  415. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -1
  416. package/dist/esm/rendering/sprite/RepeatingSprite.js +1 -3
  417. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -1
  418. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  419. package/dist/esm/rendering/sprite/Sprite.js +30 -3
  420. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  421. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -1
  422. package/dist/esm/rendering/sprite/nineSlice.js +12 -18
  423. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -1
  424. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -1
  425. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +2 -2
  426. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -1
  427. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  428. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  429. package/dist/esm/rendering/text/BitmapText.js +4 -0
  430. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  431. package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
  432. package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
  433. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
  434. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
  435. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
  436. package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
  437. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
  438. package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
  439. package/dist/esm/rendering/text/GlyphSdf.js +5 -1
  440. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  441. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  442. package/dist/esm/rendering/text/HTMLText.js +1 -0
  443. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  444. package/dist/esm/rendering/text/Text.d.ts +17 -6
  445. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  446. package/dist/esm/rendering/text/Text.js +7 -12
  447. package/dist/esm/rendering/text/Text.js.map +1 -1
  448. package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
  449. package/dist/esm/rendering/text/TextLayout.js +4 -18
  450. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  451. package/dist/esm/rendering/texture/DataTexture.js +2 -2
  452. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  453. package/dist/esm/rendering/texture/Texture.d.ts +6 -0
  454. package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
  455. package/dist/esm/rendering/texture/Texture.js +8 -0
  456. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  457. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -1
  458. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -1
  459. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -1
  460. package/dist/esm/rendering/texture/repeat.js +2 -2
  461. package/dist/esm/rendering/texture/repeat.js.map +1 -1
  462. package/dist/esm/rendering/types.d.ts +11 -0
  463. package/dist/esm/rendering/types.d.ts.map +1 -1
  464. package/dist/esm/rendering/types.js +11 -0
  465. package/dist/esm/rendering/types.js.map +1 -1
  466. package/dist/esm/rendering/video/Video.d.ts +7 -3
  467. package/dist/esm/rendering/video/Video.d.ts.map +1 -1
  468. package/dist/esm/rendering/video/Video.js +7 -3
  469. package/dist/esm/rendering/video/Video.js.map +1 -1
  470. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
  471. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
  472. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  473. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +21 -2
  474. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  475. package/dist/esm/rendering/webgl2/WebGl2Backend.js +106 -6
  476. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  477. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
  478. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
  479. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  480. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
  481. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
  482. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
  483. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  484. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -1
  485. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +2 -1
  486. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -1
  487. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
  488. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
  489. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
  490. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  491. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -1
  492. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +15 -11
  493. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -1
  494. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
  495. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
  496. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  497. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
  498. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  499. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
  500. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
  501. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  502. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  503. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +7 -2
  504. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  505. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
  506. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
  507. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
  508. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  509. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
  510. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  511. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +18 -2
  512. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  513. package/dist/esm/rendering/webgpu/WebGpuBackend.js +91 -10
  514. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  515. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  516. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
  517. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  518. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
  519. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  520. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
  521. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  522. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  523. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +6 -1
  524. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  525. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  526. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +19 -9
  527. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  528. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  529. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +8 -4
  530. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  531. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  532. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
  533. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  534. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  535. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
  536. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  537. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +13 -2
  538. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  539. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +22 -2
  540. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  541. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
  542. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
  543. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
  544. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
  545. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
  546. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
  547. package/dist/esm/resources/Asset.d.ts +1 -1
  548. package/dist/esm/resources/Asset.d.ts.map +1 -1
  549. package/dist/esm/resources/Asset.js +0 -2
  550. package/dist/esm/resources/Asset.js.map +1 -1
  551. package/dist/esm/resources/AssetContainer.d.ts +75 -0
  552. package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
  553. package/dist/esm/resources/AssetContainer.js +100 -0
  554. package/dist/esm/resources/AssetContainer.js.map +1 -0
  555. package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
  556. package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
  557. package/dist/esm/resources/Assets.d.ts.map +1 -1
  558. package/dist/esm/resources/Assets.js +0 -1
  559. package/dist/esm/resources/Assets.js.map +1 -1
  560. package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
  561. package/dist/esm/resources/FactoryRegistry.js +14 -23
  562. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  563. package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
  564. package/dist/esm/resources/IndexedDbDatabase.js +8 -1
  565. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  566. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
  567. package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
  568. package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
  569. package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
  570. package/dist/esm/resources/KeyValueStore.d.ts +31 -0
  571. package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
  572. package/dist/esm/resources/Loader.d.ts +42 -2
  573. package/dist/esm/resources/Loader.d.ts.map +1 -1
  574. package/dist/esm/resources/Loader.js +92 -7
  575. package/dist/esm/resources/Loader.js.map +1 -1
  576. package/dist/esm/resources/MemoryStore.d.ts +17 -0
  577. package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
  578. package/dist/esm/resources/MemoryStore.js +30 -0
  579. package/dist/esm/resources/MemoryStore.js.map +1 -0
  580. package/dist/esm/resources/WebStorageStore.d.ts +40 -0
  581. package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
  582. package/dist/esm/resources/WebStorageStore.js +84 -0
  583. package/dist/esm/resources/WebStorageStore.js.map +1 -0
  584. package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
  585. package/dist/esm/resources/coreAssetBindings.js +16 -5
  586. package/dist/esm/resources/coreAssetBindings.js.map +1 -1
  587. package/dist/esm/resources/factories/BmFontFactory.js +4 -4
  588. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
  589. package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
  590. package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
  591. package/dist/esm/resources/factories/MusicFactory.js +7 -7
  592. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  593. package/dist/esm/resources/factories/SoundFactory.js +2 -2
  594. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  595. package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
  596. package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
  597. package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
  598. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
  599. package/dist/esm/resources/index.d.ts +51 -34
  600. package/dist/esm/resources/index.d.ts.map +1 -1
  601. package/dist/esm/resources/utils.js +4 -4
  602. package/dist/esm/resources/utils.js.map +1 -1
  603. package/dist/esm/ui/Button.d.ts +54 -0
  604. package/dist/esm/ui/Button.d.ts.map +1 -0
  605. package/dist/esm/ui/Button.js +139 -0
  606. package/dist/esm/ui/Button.js.map +1 -0
  607. package/dist/esm/ui/Label.d.ts +17 -0
  608. package/dist/esm/ui/Label.d.ts.map +1 -0
  609. package/dist/esm/ui/Label.js +37 -0
  610. package/dist/esm/ui/Label.js.map +1 -0
  611. package/dist/esm/ui/Panel.d.ts +38 -0
  612. package/dist/esm/ui/Panel.d.ts.map +1 -0
  613. package/dist/esm/ui/Panel.js +61 -0
  614. package/dist/esm/ui/Panel.js.map +1 -0
  615. package/dist/esm/ui/ProgressBar.d.ts +37 -0
  616. package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
  617. package/dist/esm/ui/ProgressBar.js +76 -0
  618. package/dist/esm/ui/ProgressBar.js.map +1 -0
  619. package/dist/esm/ui/Stack.d.ts +34 -0
  620. package/dist/esm/ui/Stack.d.ts.map +1 -0
  621. package/dist/esm/ui/Stack.js +69 -0
  622. package/dist/esm/ui/Stack.js.map +1 -0
  623. package/dist/esm/ui/UIRoot.d.ts +31 -0
  624. package/dist/esm/ui/UIRoot.d.ts.map +1 -0
  625. package/dist/esm/ui/UIRoot.js +49 -0
  626. package/dist/esm/ui/UIRoot.js.map +1 -0
  627. package/dist/esm/ui/Widget.d.ts +45 -0
  628. package/dist/esm/ui/Widget.d.ts.map +1 -0
  629. package/dist/esm/ui/Widget.js +113 -0
  630. package/dist/esm/ui/Widget.js.map +1 -0
  631. package/dist/esm/ui/index.d.ts +13 -0
  632. package/dist/esm/ui/index.d.ts.map +1 -0
  633. package/dist/exo.debug.esm.js +1 -948
  634. package/dist/exo.debug.esm.js.map +1 -1
  635. package/dist/exo.esm.js +1 -40945
  636. package/dist/exo.esm.js.map +1 -1
  637. package/package.json +24 -13
  638. package/dist/esm/audio/AbstractMedia.d.ts +0 -75
  639. package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
  640. package/dist/esm/audio/AbstractMedia.js +0 -179
  641. package/dist/esm/audio/AbstractMedia.js.map +0 -1
  642. package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
  643. package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
  644. package/dist/esm/audio/AudioAnalyser.js +0 -473
  645. package/dist/esm/audio/AudioAnalyser.js.map +0 -1
  646. package/dist/esm/audio/AudioFilter.d.ts +0 -17
  647. package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
  648. package/dist/esm/audio/AudioFilter.js +0 -15
  649. package/dist/esm/audio/AudioFilter.js.map +0 -1
  650. package/dist/esm/audio/BeatDetector.d.ts +0 -207
  651. package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
  652. package/dist/esm/audio/BeatDetector.js +0 -424
  653. package/dist/esm/audio/BeatDetector.js.map +0 -1
  654. package/dist/esm/audio/Media.d.ts +0 -37
  655. package/dist/esm/audio/Media.d.ts.map +0 -1
  656. package/dist/esm/audio/Music.d.ts +0 -42
  657. package/dist/esm/audio/Music.d.ts.map +0 -1
  658. package/dist/esm/audio/Music.js +0 -164
  659. package/dist/esm/audio/Music.js.map +0 -1
  660. package/dist/esm/audio/OscillatorSound.d.ts +0 -100
  661. package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
  662. package/dist/esm/audio/OscillatorSound.js +0 -346
  663. package/dist/esm/audio/OscillatorSound.js.map +0 -1
  664. package/dist/esm/audio/dsp/fft.d.ts +0 -23
  665. package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
  666. package/dist/esm/audio/dsp/mel.d.ts +0 -44
  667. package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
  668. package/dist/esm/audio/dsp/mel.js +0 -70
  669. package/dist/esm/audio/dsp/mel.js.map +0 -1
  670. package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
  671. package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
  672. package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
  673. package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
  674. package/dist/esm/audio/filters/ChorusFilter.js +0 -155
  675. package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
  676. package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
  677. package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
  678. package/dist/esm/audio/filters/CompressorFilter.js +0 -123
  679. package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
  680. package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
  681. package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
  682. package/dist/esm/audio/filters/DelayFilter.js +0 -114
  683. package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
  684. package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
  685. package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
  686. package/dist/esm/audio/filters/DuckingFilter.js +0 -172
  687. package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
  688. package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
  689. package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
  690. package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
  691. package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
  692. package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
  693. package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
  694. package/dist/esm/audio/filters/GranularFilter.js +0 -107
  695. package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
  696. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
  697. package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
  698. package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
  699. package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
  700. package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
  701. package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
  702. package/dist/esm/audio/filters/ReverbFilter.js +0 -122
  703. package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
  704. package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
  705. package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
  706. package/dist/esm/audio/filters/VocoderFilter.js +0 -94
  707. package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
  708. package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
  709. package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
  710. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
  711. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
  712. package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
  713. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
  714. package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
  715. package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
  716. package/dist/esm/audio/worklets/granular.worklet.js +0 -89
  717. package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
  718. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
  719. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
  720. package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
  721. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
  722. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
  723. package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
  724. package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
  725. package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
  726. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
  727. package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
  728. package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
  729. package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
  730. package/dist/esm/rendering/index.d.ts.map +0 -1
  731. package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
  732. package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
  733. package/dist/esm/rendering.d.ts +0 -29
  734. package/dist/esm/rendering.d.ts.map +0 -1
  735. package/dist/esm/rendering.js.map +0 -1
  736. package/dist/esm/resources/JsonStore.d.ts +0 -19
  737. package/dist/esm/resources/JsonStore.d.ts.map +0 -1
  738. package/dist/esm/resources/JsonStore.js +0 -62
  739. package/dist/esm/resources/JsonStore.js.map +0 -1
@@ -89,17 +89,17 @@ const matchesAvifImage = (arrayBuffer) => {
89
89
  return false;
90
90
  }
91
91
  const header = new Uint8Array(arrayBuffer);
92
- if (String.fromCharCode(header[4], header[5], header[6], header[7]) !== 'ftyp') {
92
+ if (String.fromCharCode(header[4] ?? 0, header[5] ?? 0, header[6] ?? 0, header[7] ?? 0) !== 'ftyp') {
93
93
  return false;
94
94
  }
95
- const brand = String.fromCharCode(header[8], header[9], header[10], header[11]);
95
+ const brand = String.fromCharCode(header[8] ?? 0, header[9] ?? 0, header[10] ?? 0, header[11] ?? 0);
96
96
  return brand === 'avif' || brand === 'avis';
97
97
  };
98
98
  const matchesWebmVideo = (arrayBuffer) => {
99
99
  const header = new Uint8Array(arrayBuffer);
100
100
  const matching = [0x1a, 0x45, 0xdf, 0xa3].every((byte, i) => byte === header[i]);
101
101
  const sliced = header.subarray(4, 4 + 4096);
102
- const index = sliced.findIndex((el, i, arr) => arr[i] === 0x42 && arr[i + 1] === 0x82);
102
+ const index = sliced.findIndex((_el, i, arr) => arr[i] === 0x42 && arr[i + 1] === 0x82);
103
103
  if (!matching || index === -1) {
104
104
  return false;
105
105
  }
@@ -124,7 +124,7 @@ const determineMimeType = (arrayBuffer) => {
124
124
  if (header.length < type.pattern.length) {
125
125
  continue;
126
126
  }
127
- if (type.pattern.every((p, i) => (header[i] & type.mask[i]) === p)) {
127
+ if (type.pattern.every((p, i) => ((header[i] ?? 0) & (type.mask[i] ?? 0)) === p)) {
128
128
  return type.mimeType;
129
129
  }
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/resources/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAMA,MAAM,SAAS,GAAe;AAC5B,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACrB,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACnB,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7C,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7C,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7F,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3F,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzD,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACvD,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjF,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/E,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzD,QAAA,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACvD,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjF,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/E,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACjF,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/E,KAAA;AACD,IAAA;AACE,QAAA,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACvC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,KAAA;CACF;AAED,MAAM,eAAe,GAAG,CAAC,WAAwB,KAAa;AAC5D,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;AAC1C,IAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;AAExC,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE;AAC9D,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS;AACrE,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAwB,KAAa;AAC7D,IAAA,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE;AAC/B,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;IAE1C,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;AAC9E,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/E,IAAA,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;AAC7C,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAwB,KAAa;AAC7D,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;AAC1C,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAChF,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAC3C,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IAEtF,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;IAEA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM;AACjF,CAAC;AAED;;;;;;;;;AASG;AACI,MAAM,iBAAiB,GAAG,CAAC,WAAwB,KAAY;AACpE,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;AAE1C,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;IACzD;AAEA,IAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACvC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;YAClE,OAAO,IAAI,CAAC,QAAQ;QACtB;IACF;AAEA,IAAA,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;AAChC,QAAA,OAAO,WAAW;IACpB;AAEA,IAAA,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;AACjC,QAAA,OAAO,YAAY;IACrB;AAEA,IAAA,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;AACjC,QAAA,OAAO,YAAY;IACrB;AAEA,IAAA,OAAO,YAAY;AACrB;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/resources/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Color } from '#core/Color';
2
+ import { Signal } from '#core/Signal';
3
+ import { Widget } from './Widget';
4
+ export interface ButtonOptions {
5
+ width?: number;
6
+ height?: number;
7
+ label?: string;
8
+ cornerRadius?: number;
9
+ /** Fill color in the normal state. */
10
+ color?: Color;
11
+ hoverColor?: Color;
12
+ pressedColor?: Color;
13
+ disabledColor?: Color;
14
+ textColor?: Color;
15
+ fontSize?: number;
16
+ }
17
+ /**
18
+ * Clickable button with a rounded background, a centered label, hover/pressed
19
+ * visual states, and keyboard activation (Enter / Space while focused).
20
+ * Listen to {@link Button.onClick} for activation.
21
+ */
22
+ export declare class Button extends Widget {
23
+ /** Fires when the button is activated by click, tap, or Enter/Space. */
24
+ readonly onClick: Signal<[Button]>;
25
+ private readonly _background;
26
+ private readonly _label;
27
+ private readonly _colors;
28
+ private readonly _cornerRadius;
29
+ private _state;
30
+ private _pointerInside;
31
+ constructor(options?: ButtonOptions);
32
+ get label(): string;
33
+ set label(value: string);
34
+ /** The per-state fill colours (`normal` / `hover` / `pressed` / `disabled`). */
35
+ get colors(): Readonly<Record<'normal' | 'hover' | 'pressed' | 'disabled', Color>>;
36
+ /** Corner radius in pixels. */
37
+ get cornerRadius(): number;
38
+ /** Label fill colour. */
39
+ get textColor(): Color;
40
+ /** Label font size in pixels. */
41
+ get fontSize(): number;
42
+ private readonly _onPointerOver;
43
+ private readonly _onPointerOut;
44
+ private readonly _onPointerDown;
45
+ private readonly _onPointerUp;
46
+ private readonly _activate;
47
+ private readonly _onKey;
48
+ private _refreshState;
49
+ protected _onEnabledChanged(enabled: boolean): void;
50
+ protected _relayout(): void;
51
+ private _draw;
52
+ private _positionLabel;
53
+ }
54
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/ui/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,MAAM;IAChC,wEAAwE;IACxE,SAAgB,OAAO,mBAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CAAS;gBAEZ,OAAO,GAAE,aAAkB;IAiC9C,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAG7B;IAED,gFAAgF;IAChF,IAAW,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC,CAExF;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,yBAAyB;IACzB,IAAW,SAAS,IAAI,KAAK,CAE5B;IAED,iCAAiC;IACjC,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAUrB;IAEF,OAAO,CAAC,aAAa;cAaF,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;cAKzC,SAAS,IAAI,IAAI;IAKpC,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,cAAc;CAKvB"}
@@ -0,0 +1,139 @@
1
+ import { Color } from '../core/Color.js';
2
+ import { Signal } from '../core/Signal.js';
3
+ import { Keyboard } from '../input/types.js';
4
+ import { Graphics } from '../rendering/primitives/Graphics.js';
5
+ import { Text } from '../rendering/text/Text.js';
6
+ import { Widget } from './Widget.js';
7
+
8
+ /**
9
+ * Clickable button with a rounded background, a centered label, hover/pressed
10
+ * visual states, and keyboard activation (Enter / Space while focused).
11
+ * Listen to {@link Button.onClick} for activation.
12
+ */
13
+ class Button extends Widget {
14
+ /** Fires when the button is activated by click, tap, or Enter/Space. */
15
+ onClick = new Signal();
16
+ _background = new Graphics();
17
+ _label;
18
+ _colors;
19
+ _cornerRadius;
20
+ _state = 'normal';
21
+ _pointerInside = false;
22
+ constructor(options = {}) {
23
+ super();
24
+ this._colors = {
25
+ normal: (options.color ?? new Color(54, 120, 220, 1)).clone(),
26
+ hover: (options.hoverColor ?? new Color(74, 140, 240, 1)).clone(),
27
+ pressed: (options.pressedColor ?? new Color(40, 96, 180, 1)).clone(),
28
+ disabled: (options.disabledColor ?? new Color(70, 76, 90, 1)).clone(),
29
+ };
30
+ this._cornerRadius = options.cornerRadius ?? 8;
31
+ this._label = new Text(options.label ?? '', {
32
+ fillColor: options.textColor ?? Color.white,
33
+ fontSize: options.fontSize ?? 16,
34
+ align: 'center',
35
+ });
36
+ this.addChild(this._background);
37
+ this.addChild(this._label);
38
+ this.interactive = true;
39
+ this.focusable = true;
40
+ this.cursor = 'pointer';
41
+ this.onPointerOver.add(this._onPointerOver);
42
+ this.onPointerOut.add(this._onPointerOut);
43
+ this.onPointerDown.add(this._onPointerDown);
44
+ this.onPointerUp.add(this._onPointerUp);
45
+ this.onPointerTap.add(this._activate);
46
+ this.onKeyDown.add(this._onKey);
47
+ this.setSize(options.width ?? 120, options.height ?? 40);
48
+ }
49
+ get label() {
50
+ return this._label.text;
51
+ }
52
+ set label(value) {
53
+ this._label.text = value;
54
+ this._positionLabel();
55
+ }
56
+ /** The per-state fill colours (`normal` / `hover` / `pressed` / `disabled`). */
57
+ get colors() {
58
+ return this._colors;
59
+ }
60
+ /** Corner radius in pixels. */
61
+ get cornerRadius() {
62
+ return this._cornerRadius;
63
+ }
64
+ /** Label fill colour. */
65
+ get textColor() {
66
+ return this._label.style.fillColor;
67
+ }
68
+ /** Label font size in pixels. */
69
+ get fontSize() {
70
+ return this._label.style.fontSize;
71
+ }
72
+ _onPointerOver = () => {
73
+ this._pointerInside = true;
74
+ this._refreshState();
75
+ };
76
+ _onPointerOut = () => {
77
+ this._pointerInside = false;
78
+ this._refreshState();
79
+ };
80
+ _onPointerDown = () => {
81
+ if (this.enabled) {
82
+ this._state = 'pressed';
83
+ this._draw();
84
+ }
85
+ };
86
+ _onPointerUp = () => {
87
+ this._refreshState();
88
+ };
89
+ _activate = () => {
90
+ if (this.enabled) {
91
+ this.onClick.dispatch(this);
92
+ }
93
+ };
94
+ _onKey = (event) => {
95
+ const channel = event.channel;
96
+ // `channel` is a generic numeric input channel (KeyEvent.channel is `number`),
97
+ // intentionally compared against the Keyboard enum constants — see KeyEvent docs.
98
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
99
+ if (this.enabled && (channel === Keyboard.Enter || channel === Keyboard.Space)) {
100
+ event.preventDefault();
101
+ this.onClick.dispatch(this);
102
+ }
103
+ };
104
+ _refreshState() {
105
+ let state = 'normal';
106
+ if (!this.enabled) {
107
+ state = 'disabled';
108
+ }
109
+ else if (this._pointerInside) {
110
+ state = 'hover';
111
+ }
112
+ this._state = state;
113
+ this._draw();
114
+ }
115
+ _onEnabledChanged(enabled) {
116
+ this.interactive = enabled;
117
+ this._refreshState();
118
+ }
119
+ _relayout() {
120
+ this._draw();
121
+ this._positionLabel();
122
+ }
123
+ _draw() {
124
+ const g = this._background;
125
+ g.clear();
126
+ if (this._uiWidth <= 0 || this._uiHeight <= 0) {
127
+ return;
128
+ }
129
+ g.fillColor = this._colors[this._state];
130
+ g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
131
+ }
132
+ _positionLabel() {
133
+ const bounds = this._label.getLocalBounds();
134
+ this._label.setPosition((this._uiWidth - bounds.width) / 2, (this._uiHeight - bounds.height) / 2);
135
+ }
136
+ }
137
+
138
+ export { Button };
139
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/ui/Button.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Text } from '#rendering/text/Text';
2
+ import type { TextStyleOptions } from '#rendering/text/TextStyle';
3
+ import { Widget } from './Widget';
4
+ /**
5
+ * Text label widget. Wraps a {@link Text} node and keeps the widget's layout
6
+ * size in sync with the measured text, so it anchors and stacks correctly.
7
+ */
8
+ export declare class Label extends Widget {
9
+ private readonly _text;
10
+ constructor(text?: string, style?: TextStyleOptions);
11
+ get text(): string;
12
+ set text(value: string);
13
+ /** The underlying {@link Text} node, for advanced styling. */
14
+ get textNode(): Text;
15
+ private _syncSize;
16
+ }
17
+ //# sourceMappingURL=Label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../src/ui/Label.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEV,IAAI,SAAK,EAAE,KAAK,GAAE,gBAAqB;IAQ1D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED,8DAA8D;IAC9D,IAAW,QAAQ,IAAI,IAAI,CAE1B;IAED,OAAO,CAAC,SAAS;CAKlB"}
@@ -0,0 +1,37 @@
1
+ import { Color } from '../core/Color.js';
2
+ import { Text } from '../rendering/text/Text.js';
3
+ import { Widget } from './Widget.js';
4
+
5
+ /**
6
+ * Text label widget. Wraps a {@link Text} node and keeps the widget's layout
7
+ * size in sync with the measured text, so it anchors and stacks correctly.
8
+ */
9
+ class Label extends Widget {
10
+ _text;
11
+ constructor(text = '', style = {}) {
12
+ super();
13
+ this._text = new Text(text, { fillColor: Color.white, fontSize: 16, ...style });
14
+ this.addChild(this._text);
15
+ this._syncSize();
16
+ }
17
+ get text() {
18
+ return this._text.text;
19
+ }
20
+ set text(value) {
21
+ if (this._text.text !== value) {
22
+ this._text.text = value;
23
+ this._syncSize();
24
+ }
25
+ }
26
+ /** The underlying {@link Text} node, for advanced styling. */
27
+ get textNode() {
28
+ return this._text;
29
+ }
30
+ _syncSize() {
31
+ const bounds = this._text.getLocalBounds();
32
+ this.setSize(bounds.width, bounds.height);
33
+ }
34
+ }
35
+
36
+ export { Label };
37
+ //# sourceMappingURL=Label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.js","sources":["../../../../src/ui/Label.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;AAGG;AACG,MAAO,KAAM,SAAQ,MAAM,CAAA;AACd,IAAA,KAAK;AAEtB,IAAA,WAAA,CAAmB,IAAI,GAAG,EAAE,EAAE,QAA0B,EAAE,EAAA;AACxD,QAAA,KAAK,EAAE;QAEP,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;AAC/E,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IACxB;IAEA,IAAW,IAAI,CAAC,KAAa,EAAA;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;YACvB,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;;AAGA,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,KAAK;IACnB;IAEQ,SAAS,GAAA;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;QAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;IAC3C;AACD;;;;"}
@@ -0,0 +1,38 @@
1
+ import { Color } from '#core/Color';
2
+ import { Graphics } from '#rendering/primitives/Graphics';
3
+ import { Widget } from './Widget';
4
+ export interface PanelOptions {
5
+ width?: number;
6
+ height?: number;
7
+ /** Fill color. Default: a translucent dark slate. */
8
+ color?: Color;
9
+ /** Border color (only drawn when `borderWidth > 0`). */
10
+ borderColor?: Color;
11
+ borderWidth?: number;
12
+ cornerRadius?: number;
13
+ }
14
+ /**
15
+ * Rectangular background container with rounded corners and an optional border.
16
+ * The base building block for HUD boxes, dialogs, and menus — add content with
17
+ * `panel.addChild(...)`.
18
+ */
19
+ export declare class Panel extends Widget {
20
+ private readonly _background;
21
+ private readonly _color;
22
+ private readonly _borderColor;
23
+ private readonly _borderWidth;
24
+ private readonly _cornerRadius;
25
+ constructor(options?: PanelOptions);
26
+ /** The background {@link Graphics}, for advanced customization. */
27
+ get background(): Graphics;
28
+ /** Fill colour. */
29
+ get color(): Color;
30
+ /** Border colour (drawn only when {@link borderWidth} is greater than 0). */
31
+ get borderColor(): Color;
32
+ /** Border thickness in pixels. */
33
+ get borderWidth(): number;
34
+ /** Corner radius in pixels. */
35
+ get cornerRadius(): number;
36
+ protected _relayout(): void;
37
+ }
38
+ //# sourceMappingURL=Panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../src/ui/Panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAEpB,OAAO,GAAE,YAAiB;IAY7C,mEAAmE;IACnE,IAAW,UAAU,IAAI,QAAQ,CAEhC;IAED,mBAAmB;IACnB,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,6EAA6E;IAC7E,IAAW,WAAW,IAAI,KAAK,CAE9B;IAED,kCAAkC;IAClC,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;cAEkB,SAAS,IAAI,IAAI;CAiBrC"}
@@ -0,0 +1,61 @@
1
+ import { Color } from '../core/Color.js';
2
+ import { Graphics } from '../rendering/primitives/Graphics.js';
3
+ import { Widget } from './Widget.js';
4
+
5
+ /**
6
+ * Rectangular background container with rounded corners and an optional border.
7
+ * The base building block for HUD boxes, dialogs, and menus — add content with
8
+ * `panel.addChild(...)`.
9
+ */
10
+ class Panel extends Widget {
11
+ _background = new Graphics();
12
+ _color;
13
+ _borderColor;
14
+ _borderWidth;
15
+ _cornerRadius;
16
+ constructor(options = {}) {
17
+ super();
18
+ this._color = (options.color ?? new Color(30, 34, 45, 0.92)).clone();
19
+ this._borderColor = (options.borderColor ?? new Color(255, 255, 255, 0.12)).clone();
20
+ this._borderWidth = options.borderWidth ?? 0;
21
+ this._cornerRadius = options.cornerRadius ?? 8;
22
+ this.addChild(this._background);
23
+ this.setSize(options.width ?? 0, options.height ?? 0);
24
+ }
25
+ /** The background {@link Graphics}, for advanced customization. */
26
+ get background() {
27
+ return this._background;
28
+ }
29
+ /** Fill colour. */
30
+ get color() {
31
+ return this._color;
32
+ }
33
+ /** Border colour (drawn only when {@link borderWidth} is greater than 0). */
34
+ get borderColor() {
35
+ return this._borderColor;
36
+ }
37
+ /** Border thickness in pixels. */
38
+ get borderWidth() {
39
+ return this._borderWidth;
40
+ }
41
+ /** Corner radius in pixels. */
42
+ get cornerRadius() {
43
+ return this._cornerRadius;
44
+ }
45
+ _relayout() {
46
+ const g = this._background;
47
+ g.clear();
48
+ if (this._uiWidth <= 0 || this._uiHeight <= 0) {
49
+ return;
50
+ }
51
+ if (this._borderWidth > 0) {
52
+ g.lineWidth = this._borderWidth;
53
+ g.lineColor = this._borderColor;
54
+ }
55
+ g.fillColor = this._color;
56
+ g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
57
+ }
58
+ }
59
+
60
+ export { Panel };
61
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.js","sources":["../../../../src/ui/Panel.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAgBA;;;;AAIG;AACG,MAAO,KAAM,SAAQ,MAAM,CAAA;AACd,IAAA,WAAW,GAAG,IAAI,QAAQ,EAAE;AAC5B,IAAA,MAAM;AACN,IAAA,YAAY;AACZ,IAAA,YAAY;AACZ,IAAA,aAAa;AAE9B,IAAA,WAAA,CAAmB,UAAwB,EAAE,EAAA;AAC3C,QAAA,KAAK,EAAE;QAEP,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE;QACpE,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE;QACnF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC;AAE9C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACvD;;AAGA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;;AAGA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;;AAGA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;IAC3B;IAEmB,SAAS,GAAA;AAC1B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW;QAE1B,CAAC,CAAC,KAAK,EAAE;AAET,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;YAC7C;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;AACzB,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;AAC/B,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;QACjC;AAEA,QAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;IACjF;AACD;;;;"}
@@ -0,0 +1,37 @@
1
+ import { Color } from '#core/Color';
2
+ import { Widget } from './Widget';
3
+ export interface ProgressBarOptions {
4
+ width?: number;
5
+ height?: number;
6
+ /** Initial fill fraction in `[0, 1]`. */
7
+ value?: number;
8
+ trackColor?: Color;
9
+ fillColor?: Color;
10
+ cornerRadius?: number;
11
+ }
12
+ /**
13
+ * Horizontal progress / health bar. {@link ProgressBar.value} is the fill
14
+ * fraction in `[0, 1]`; setting it redraws only the fill.
15
+ */
16
+ export declare class ProgressBar extends Widget {
17
+ private readonly _track;
18
+ private readonly _fill;
19
+ private readonly _trackColor;
20
+ private readonly _fillColor;
21
+ private readonly _cornerRadius;
22
+ private _value;
23
+ constructor(options?: ProgressBarOptions);
24
+ /** Fill fraction in `[0, 1]`. */
25
+ get value(): number;
26
+ set value(value: number);
27
+ /** Track (background) colour. */
28
+ get trackColor(): Color;
29
+ /** Fill (foreground) colour. */
30
+ get fillColor(): Color;
31
+ /** Corner radius in pixels. */
32
+ get cornerRadius(): number;
33
+ protected _relayout(): void;
34
+ private _drawTrack;
35
+ private _drawFill;
36
+ }
37
+ //# sourceMappingURL=ProgressBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/ui/ProgressBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,MAAM,CAAS;gBAEJ,OAAO,GAAE,kBAAuB;IAanD,iCAAiC;IACjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAO7B;IAED,iCAAiC;IACjC,IAAW,UAAU,IAAI,KAAK,CAE7B;IAED,gCAAgC;IAChC,IAAW,SAAS,IAAI,KAAK,CAE5B;IAED,+BAA+B;IAC/B,IAAW,YAAY,IAAI,MAAM,CAEhC;cAEkB,SAAS,IAAI,IAAI;IAKpC,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,SAAS;CAclB"}
@@ -0,0 +1,76 @@
1
+ import { Color } from '../core/Color.js';
2
+ import { clamp } from '../math/utils.js';
3
+ import { Graphics } from '../rendering/primitives/Graphics.js';
4
+ import { Widget } from './Widget.js';
5
+
6
+ /**
7
+ * Horizontal progress / health bar. {@link ProgressBar.value} is the fill
8
+ * fraction in `[0, 1]`; setting it redraws only the fill.
9
+ */
10
+ class ProgressBar extends Widget {
11
+ _track = new Graphics();
12
+ _fill = new Graphics();
13
+ _trackColor;
14
+ _fillColor;
15
+ _cornerRadius;
16
+ _value;
17
+ constructor(options = {}) {
18
+ super();
19
+ this._value = clamp(options.value ?? 0, 0, 1);
20
+ this._trackColor = (options.trackColor ?? new Color(255, 255, 255, 0.16)).clone();
21
+ this._fillColor = (options.fillColor ?? new Color(80, 220, 120, 1)).clone();
22
+ this._cornerRadius = options.cornerRadius ?? 4;
23
+ this.addChild(this._track);
24
+ this.addChild(this._fill);
25
+ this.setSize(options.width ?? 200, options.height ?? 12);
26
+ }
27
+ /** Fill fraction in `[0, 1]`. */
28
+ get value() {
29
+ return this._value;
30
+ }
31
+ set value(value) {
32
+ const next = clamp(value, 0, 1);
33
+ if (this._value !== next) {
34
+ this._value = next;
35
+ this._drawFill();
36
+ }
37
+ }
38
+ /** Track (background) colour. */
39
+ get trackColor() {
40
+ return this._trackColor;
41
+ }
42
+ /** Fill (foreground) colour. */
43
+ get fillColor() {
44
+ return this._fillColor;
45
+ }
46
+ /** Corner radius in pixels. */
47
+ get cornerRadius() {
48
+ return this._cornerRadius;
49
+ }
50
+ _relayout() {
51
+ this._drawTrack();
52
+ this._drawFill();
53
+ }
54
+ _drawTrack() {
55
+ const g = this._track;
56
+ g.clear();
57
+ if (this._uiWidth <= 0 || this._uiHeight <= 0) {
58
+ return;
59
+ }
60
+ g.fillColor = this._trackColor;
61
+ g.drawRoundedRectangle(0, 0, this._uiWidth, this._uiHeight, this._cornerRadius);
62
+ }
63
+ _drawFill() {
64
+ const g = this._fill;
65
+ g.clear();
66
+ const width = this._uiWidth * this._value;
67
+ if (width <= 0 || this._uiHeight <= 0) {
68
+ return;
69
+ }
70
+ g.fillColor = this._fillColor;
71
+ g.drawRoundedRectangle(0, 0, width, this._uiHeight, Math.min(this._cornerRadius, width / 2));
72
+ }
73
+ }
74
+
75
+ export { ProgressBar };
76
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.js","sources":["../../../../src/ui/ProgressBar.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { RenderNode } from '#rendering/RenderNode';
2
+ import { Widget } from './Widget';
3
+ export type StackDirection = 'row' | 'column';
4
+ export interface StackOptions {
5
+ /** Flow direction. Default `'column'`. */
6
+ direction?: StackDirection;
7
+ /** Gap between items in pixels. Default `8`. */
8
+ spacing?: number;
9
+ /** Inner padding around all items in pixels. Default `0`. */
10
+ padding?: number;
11
+ }
12
+ /**
13
+ * Linear layout container that flows its children in a row or column with even
14
+ * spacing and optional padding, then sizes itself to fit. Call
15
+ * {@link Stack.layout} after mutating children added with `addChild`, or use
16
+ * {@link Stack.addItem} to add and re-flow in one step.
17
+ */
18
+ export declare class Stack extends Widget {
19
+ private readonly _direction;
20
+ private readonly _spacing;
21
+ private readonly _padding;
22
+ constructor(options?: StackOptions);
23
+ /** Flow direction (`'row'` or `'column'`). */
24
+ get direction(): StackDirection;
25
+ /** Gap between items in pixels. */
26
+ get spacing(): number;
27
+ /** Inner padding around all items in pixels. */
28
+ get padding(): number;
29
+ /** Add a child and re-flow the stack. */
30
+ addItem(child: RenderNode): this;
31
+ /** Re-flow children along the stack direction and resize to fit them. */
32
+ layout(): this;
33
+ }
34
+ //# sourceMappingURL=Stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../../src/ui/Stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEf,OAAO,GAAE,YAAiB;IAQ7C,8CAA8C;IAC9C,IAAW,SAAS,IAAI,cAAc,CAErC;IAED,mCAAmC;IACnC,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,gDAAgD;IAChD,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,yCAAyC;IAClC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMvC,yEAAyE;IAClE,MAAM,IAAI,IAAI;CAmCtB"}