@wandelbots/wandelbots-js-react-components 5.5.1 → 5.5.2-pr.fix-performance-issues.594.c24b644

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 (857) hide show
  1. package/dist/3d.cjs +1 -2
  2. package/dist/3d.d.ts +0 -1
  3. package/dist/3d.js +16 -29
  4. package/dist/{components/safetyBar → SafetyBar}/ControllerTypeIndicator.d.ts +0 -1
  5. package/dist/{components/safetyBar → SafetyBar}/IndicatorWithExplanation.d.ts +0 -1
  6. package/dist/{components/safetyBar → SafetyBar}/OperationModeIndicator.d.ts +0 -1
  7. package/dist/{components/safetyBar → SafetyBar}/SafetyBar.d.ts +0 -1
  8. package/dist/{components/safetyBar → SafetyBar}/SafetyStateIndicator.d.ts +0 -1
  9. package/dist/{components/safetyBar → SafetyBar}/icons/index.d.ts +0 -1
  10. package/dist/SafetyBar/index.cjs +1 -0
  11. package/dist/SafetyBar/index.d.ts +2 -0
  12. package/dist/SafetyBar/index.js +5 -0
  13. package/dist/Setup.d.ts +0 -1
  14. package/dist/chunks/MotionGroupVisualizer-3kwxPNYU.js +1378 -0
  15. package/dist/chunks/MotionGroupVisualizer-4AcH6kaR.cjs +1 -0
  16. package/dist/chunks/SafetyBar-C8whliAf.js +413 -0
  17. package/dist/chunks/SafetyBar-CLm3UQRA.cjs +1 -0
  18. package/dist/chunks/externalizeComponent-BHZdH14U.cjs +2 -0
  19. package/dist/chunks/externalizeComponent-D6S3WLFc.js +248 -0
  20. package/dist/chunks/interpolation-B84QX33C.cjs +1 -0
  21. package/dist/chunks/interpolation-D9WFd-j_.js +433 -0
  22. package/dist/chunks/robot-Cy9ST5-m.js +40 -0
  23. package/dist/chunks/robot-SEtfVAmf.cjs +1 -0
  24. package/dist/chunks/safety-state-stop-CJW5CKkp.js +55 -0
  25. package/dist/chunks/safety-state-stop-CgPfwC18.cjs +1 -0
  26. package/dist/chunks/theming-CLIhckeP.js +5473 -0
  27. package/dist/chunks/theming-DnEooKgA.cjs +4 -0
  28. package/dist/chunks/wbLogo-CObCmqTw.js +30 -0
  29. package/dist/chunks/wbLogo-G_IfZ03l.cjs +1 -0
  30. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +0 -1
  31. package/dist/components/3d-viewport/PresetEnvironment.d.ts +0 -1
  32. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +0 -1
  33. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +0 -1
  34. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +0 -1
  35. package/dist/components/3d-viewport/collider/ColliderElement.d.ts +0 -1
  36. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +0 -1
  37. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +0 -1
  38. package/dist/components/AppHeader.d.ts +0 -1
  39. package/dist/components/ConsoleFilter.d.ts +0 -1
  40. package/dist/components/CopyableText.d.ts +0 -1
  41. package/dist/components/CycleTimer/CycleTimer.d.ts +0 -1
  42. package/dist/components/CycleTimer/DefaultVariant.d.ts +0 -1
  43. package/dist/components/CycleTimer/SmallVariant.d.ts +0 -1
  44. package/dist/components/CycleTimer/index.d.ts +0 -1
  45. package/dist/components/CycleTimer/types.d.ts +0 -1
  46. package/dist/components/CycleTimer/useAnimations.d.ts +0 -1
  47. package/dist/components/CycleTimer/useTimerLogic.d.ts +0 -1
  48. package/dist/components/CycleTimer/utils.d.ts +0 -1
  49. package/dist/components/CycleTimer.d.ts +0 -1
  50. package/dist/components/DataGrid.d.ts +0 -1
  51. package/dist/components/LoadingCover.d.ts +0 -1
  52. package/dist/components/LogPanel.d.ts +0 -1
  53. package/dist/components/LogStore.d.ts +0 -1
  54. package/dist/components/LogViewer.d.ts +0 -1
  55. package/dist/components/ProgramControl.d.ts +0 -1
  56. package/dist/components/ProgramStateIndicator.d.ts +0 -1
  57. package/dist/components/RobotCard.d.ts +0 -1
  58. package/dist/components/RobotListItem.d.ts +0 -1
  59. package/dist/components/RobotSetupReadinessIndicator.d.ts +0 -1
  60. package/dist/components/SelectableFab.d.ts +0 -1
  61. package/dist/components/TabBar.d.ts +0 -1
  62. package/dist/components/ThemeSelect.d.ts +0 -1
  63. package/dist/components/Timer/Timer.d.ts +0 -1
  64. package/dist/components/Timer/TimerDefaultVariant.d.ts +0 -1
  65. package/dist/components/Timer/TimerSmallVariant.d.ts +0 -1
  66. package/dist/components/Timer/index.d.ts +0 -1
  67. package/dist/components/Timer/types.d.ts +0 -1
  68. package/dist/components/Timer/useTimerAnimations.d.ts +0 -1
  69. package/dist/components/Timer/useTimerLogic.d.ts +0 -1
  70. package/dist/components/Timer/utils.d.ts +0 -1
  71. package/dist/components/Timer.d.ts +0 -1
  72. package/dist/components/TransparentOverlay.d.ts +0 -1
  73. package/dist/components/VelocitySlider.d.ts +0 -1
  74. package/dist/components/experimental/utils/AdornedSelect.d.ts +0 -1
  75. package/dist/components/jogging/JoggingBlocked.d.ts +0 -1
  76. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +0 -1
  77. package/dist/components/jogging/JoggingCartesianTab.d.ts +0 -1
  78. package/dist/components/jogging/JoggingFreedriveTab.d.ts +0 -1
  79. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +0 -1
  80. package/dist/components/jogging/JoggingJointTab.d.ts +0 -1
  81. package/dist/components/jogging/JoggingJointValueControl.d.ts +0 -1
  82. package/dist/components/jogging/JoggingOptions.d.ts +0 -1
  83. package/dist/components/jogging/JoggingPanel.d.ts +0 -1
  84. package/dist/components/jogging/JoggingStore.d.ts +0 -1
  85. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +0 -1
  86. package/dist/components/jogging/JoggingVelocitySlider.d.ts +0 -1
  87. package/dist/components/jogging/PoseCartesianValues.d.ts +0 -1
  88. package/dist/components/jogging/PoseJointValues.d.ts +0 -1
  89. package/dist/components/modal/NoMotionGroupModal.d.ts +0 -1
  90. package/dist/components/robots/AxisConfig.d.ts +0 -1
  91. package/dist/components/robots/DHLinearAxis.d.ts +0 -1
  92. package/dist/components/robots/DHRobot.d.ts +0 -1
  93. package/dist/components/robots/GenericRobot.d.ts +0 -1
  94. package/dist/components/robots/LinearAxis.d.ts +0 -1
  95. package/dist/components/robots/LinearAxisAnimator.d.ts +0 -1
  96. package/dist/components/robots/MotionGroupVisualizer.d.ts +0 -1
  97. package/dist/components/robots/Robot.d.ts +0 -1
  98. package/dist/components/robots/RobotAnimator.d.ts +0 -1
  99. package/dist/components/robots/SupportedLinearAxis.d.ts +0 -1
  100. package/dist/components/robots/SupportedRobot.d.ts +0 -1
  101. package/dist/components/robots/ghostStyle.d.ts +0 -1
  102. package/dist/components/robots/manufacturerHomePositions.d.ts +0 -1
  103. package/dist/components/robots/robotModelLogic.d.ts +0 -1
  104. package/dist/components/utils/converters.d.ts +0 -1
  105. package/dist/components/utils/errorHandling.d.ts +0 -1
  106. package/dist/components/utils/hooks.d.ts +0 -1
  107. package/dist/components/utils/interpolation.d.ts +0 -1
  108. package/dist/core.cjs +1 -2
  109. package/dist/core.d.ts +1 -2
  110. package/dist/core.js +50 -78
  111. package/dist/externalizeComponent.d.ts +0 -1
  112. package/dist/i18n/config.d.ts +0 -1
  113. package/dist/icons/DropdownArrowIcon.d.ts +0 -1
  114. package/dist/icons/index.d.ts +0 -1
  115. package/dist/index.cjs +1 -2
  116. package/dist/index.d.ts +0 -1
  117. package/dist/index.js +91 -150
  118. package/dist/lib/ConnectedMotionGroup.d.ts +0 -1
  119. package/dist/lib/JoggerConnection.d.ts +0 -1
  120. package/dist/lib/MotionStreamConnection.d.ts +0 -1
  121. package/dist/lib/motionStateUpdate.d.ts +0 -1
  122. package/dist/themes/createDarkTheme.d.ts +0 -1
  123. package/dist/themes/createLightTheme.d.ts +0 -1
  124. package/dist/themes/themeTypes.d.ts +0 -1
  125. package/dist/themes/theming.d.ts +0 -1
  126. package/dist/wb-icons.cjs +1 -2
  127. package/dist/wb-icons.d.ts +1 -2
  128. package/dist/wb-icons.js +25 -45
  129. package/package.json +4 -5
  130. package/dist/3d.cjs.map +0 -1
  131. package/dist/3d.d.ts.map +0 -1
  132. package/dist/3d.js.map +0 -1
  133. package/dist/Setup.d.ts.map +0 -1
  134. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +0 -1
  135. package/dist/components/3d-viewport/PresetEnvironment.cjs +0 -2
  136. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +0 -1
  137. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +0 -1
  138. package/dist/components/3d-viewport/PresetEnvironment.js +0 -81
  139. package/dist/components/3d-viewport/PresetEnvironment.js.map +0 -1
  140. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +0 -2
  141. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +0 -1
  142. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +0 -1
  143. package/dist/components/3d-viewport/SafetyZonesRenderer.js +0 -131
  144. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +0 -1
  145. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +0 -2
  146. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +0 -1
  147. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +0 -1
  148. package/dist/components/3d-viewport/TrajectoryRenderer.js +0 -31
  149. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +0 -1
  150. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +0 -2
  151. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +0 -1
  152. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +0 -1
  153. package/dist/components/3d-viewport/collider/ColliderCollection.js +0 -22
  154. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +0 -1
  155. package/dist/components/3d-viewport/collider/ColliderElement.cjs +0 -2
  156. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +0 -1
  157. package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +0 -1
  158. package/dist/components/3d-viewport/collider/ColliderElement.js +0 -29
  159. package/dist/components/3d-viewport/collider/ColliderElement.js.map +0 -1
  160. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +0 -2
  161. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +0 -1
  162. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +0 -1
  163. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +0 -19
  164. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +0 -1
  165. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +0 -2
  166. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +0 -1
  167. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +0 -1
  168. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +0 -43
  169. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +0 -1
  170. package/dist/components/AppHeader.cjs +0 -2
  171. package/dist/components/AppHeader.cjs.map +0 -1
  172. package/dist/components/AppHeader.d.ts.map +0 -1
  173. package/dist/components/AppHeader.js +0 -139
  174. package/dist/components/AppHeader.js.map +0 -1
  175. package/dist/components/ConsoleFilter.cjs +0 -2
  176. package/dist/components/ConsoleFilter.cjs.map +0 -1
  177. package/dist/components/ConsoleFilter.d.ts.map +0 -1
  178. package/dist/components/ConsoleFilter.js +0 -13
  179. package/dist/components/ConsoleFilter.js.map +0 -1
  180. package/dist/components/CopyableText.cjs +0 -2
  181. package/dist/components/CopyableText.cjs.map +0 -1
  182. package/dist/components/CopyableText.d.ts.map +0 -1
  183. package/dist/components/CopyableText.js +0 -71
  184. package/dist/components/CopyableText.js.map +0 -1
  185. package/dist/components/CycleTimer/CycleTimer.d.ts.map +0 -1
  186. package/dist/components/CycleTimer/DefaultVariant.cjs +0 -2
  187. package/dist/components/CycleTimer/DefaultVariant.cjs.map +0 -1
  188. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +0 -1
  189. package/dist/components/CycleTimer/DefaultVariant.js +0 -301
  190. package/dist/components/CycleTimer/DefaultVariant.js.map +0 -1
  191. package/dist/components/CycleTimer/SmallVariant.cjs +0 -2
  192. package/dist/components/CycleTimer/SmallVariant.cjs.map +0 -1
  193. package/dist/components/CycleTimer/SmallVariant.d.ts.map +0 -1
  194. package/dist/components/CycleTimer/SmallVariant.js +0 -150
  195. package/dist/components/CycleTimer/SmallVariant.js.map +0 -1
  196. package/dist/components/CycleTimer/index.cjs +0 -2
  197. package/dist/components/CycleTimer/index.cjs.map +0 -1
  198. package/dist/components/CycleTimer/index.d.ts.map +0 -1
  199. package/dist/components/CycleTimer/index.js +0 -86
  200. package/dist/components/CycleTimer/index.js.map +0 -1
  201. package/dist/components/CycleTimer/types.d.ts.map +0 -1
  202. package/dist/components/CycleTimer/useAnimations.cjs +0 -2
  203. package/dist/components/CycleTimer/useAnimations.cjs.map +0 -1
  204. package/dist/components/CycleTimer/useAnimations.d.ts.map +0 -1
  205. package/dist/components/CycleTimer/useAnimations.js +0 -105
  206. package/dist/components/CycleTimer/useAnimations.js.map +0 -1
  207. package/dist/components/CycleTimer/useTimerLogic.cjs +0 -2
  208. package/dist/components/CycleTimer/useTimerLogic.cjs.map +0 -1
  209. package/dist/components/CycleTimer/useTimerLogic.d.ts.map +0 -1
  210. package/dist/components/CycleTimer/useTimerLogic.js +0 -191
  211. package/dist/components/CycleTimer/useTimerLogic.js.map +0 -1
  212. package/dist/components/CycleTimer/utils.cjs +0 -2
  213. package/dist/components/CycleTimer/utils.cjs.map +0 -1
  214. package/dist/components/CycleTimer/utils.d.ts.map +0 -1
  215. package/dist/components/CycleTimer/utils.js +0 -20
  216. package/dist/components/CycleTimer/utils.js.map +0 -1
  217. package/dist/components/CycleTimer.cjs +0 -2
  218. package/dist/components/CycleTimer.cjs.map +0 -1
  219. package/dist/components/CycleTimer.d.ts.map +0 -1
  220. package/dist/components/CycleTimer.js +0 -6
  221. package/dist/components/CycleTimer.js.map +0 -1
  222. package/dist/components/DataGrid.cjs +0 -2
  223. package/dist/components/DataGrid.cjs.map +0 -1
  224. package/dist/components/DataGrid.d.ts.map +0 -1
  225. package/dist/components/DataGrid.js +0 -535
  226. package/dist/components/DataGrid.js.map +0 -1
  227. package/dist/components/LoadingCover.cjs +0 -2
  228. package/dist/components/LoadingCover.cjs.map +0 -1
  229. package/dist/components/LoadingCover.d.ts.map +0 -1
  230. package/dist/components/LoadingCover.js +0 -77
  231. package/dist/components/LoadingCover.js.map +0 -1
  232. package/dist/components/LogPanel.cjs +0 -2
  233. package/dist/components/LogPanel.cjs.map +0 -1
  234. package/dist/components/LogPanel.d.ts.map +0 -1
  235. package/dist/components/LogPanel.js +0 -34
  236. package/dist/components/LogPanel.js.map +0 -1
  237. package/dist/components/LogStore.cjs +0 -2
  238. package/dist/components/LogStore.cjs.map +0 -1
  239. package/dist/components/LogStore.d.ts.map +0 -1
  240. package/dist/components/LogStore.js +0 -33
  241. package/dist/components/LogStore.js.map +0 -1
  242. package/dist/components/LogViewer.cjs +0 -2
  243. package/dist/components/LogViewer.cjs.map +0 -1
  244. package/dist/components/LogViewer.d.ts.map +0 -1
  245. package/dist/components/LogViewer.js +0 -299
  246. package/dist/components/LogViewer.js.map +0 -1
  247. package/dist/components/ProgramControl.cjs +0 -2
  248. package/dist/components/ProgramControl.cjs.map +0 -1
  249. package/dist/components/ProgramControl.d.ts.map +0 -1
  250. package/dist/components/ProgramControl.js +0 -147
  251. package/dist/components/ProgramControl.js.map +0 -1
  252. package/dist/components/ProgramStateIndicator.cjs +0 -2
  253. package/dist/components/ProgramStateIndicator.cjs.map +0 -1
  254. package/dist/components/ProgramStateIndicator.d.ts.map +0 -1
  255. package/dist/components/ProgramStateIndicator.js +0 -140
  256. package/dist/components/ProgramStateIndicator.js.map +0 -1
  257. package/dist/components/RobotCard.cjs +0 -2
  258. package/dist/components/RobotCard.cjs.map +0 -1
  259. package/dist/components/RobotCard.d.ts.map +0 -1
  260. package/dist/components/RobotCard.js +0 -360
  261. package/dist/components/RobotCard.js.map +0 -1
  262. package/dist/components/RobotListItem.cjs +0 -2
  263. package/dist/components/RobotListItem.cjs.map +0 -1
  264. package/dist/components/RobotListItem.d.ts.map +0 -1
  265. package/dist/components/RobotListItem.js +0 -122
  266. package/dist/components/RobotListItem.js.map +0 -1
  267. package/dist/components/RobotSetupReadinessIndicator.cjs +0 -2
  268. package/dist/components/RobotSetupReadinessIndicator.cjs.map +0 -1
  269. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +0 -1
  270. package/dist/components/RobotSetupReadinessIndicator.js +0 -122
  271. package/dist/components/RobotSetupReadinessIndicator.js.map +0 -1
  272. package/dist/components/RobotSetupReadinessIndicator.test.d.ts +0 -2
  273. package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +0 -1
  274. package/dist/components/SelectableFab.cjs +0 -2
  275. package/dist/components/SelectableFab.cjs.map +0 -1
  276. package/dist/components/SelectableFab.d.ts.map +0 -1
  277. package/dist/components/SelectableFab.js +0 -51
  278. package/dist/components/SelectableFab.js.map +0 -1
  279. package/dist/components/TabBar.cjs +0 -2
  280. package/dist/components/TabBar.cjs.map +0 -1
  281. package/dist/components/TabBar.d.ts.map +0 -1
  282. package/dist/components/TabBar.js +0 -212
  283. package/dist/components/TabBar.js.map +0 -1
  284. package/dist/components/ThemeSelect.d.ts.map +0 -1
  285. package/dist/components/Timer/Timer.d.ts.map +0 -1
  286. package/dist/components/Timer/TimerDefaultVariant.cjs +0 -2
  287. package/dist/components/Timer/TimerDefaultVariant.cjs.map +0 -1
  288. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +0 -1
  289. package/dist/components/Timer/TimerDefaultVariant.js +0 -136
  290. package/dist/components/Timer/TimerDefaultVariant.js.map +0 -1
  291. package/dist/components/Timer/TimerSmallVariant.cjs +0 -2
  292. package/dist/components/Timer/TimerSmallVariant.cjs.map +0 -1
  293. package/dist/components/Timer/TimerSmallVariant.d.ts.map +0 -1
  294. package/dist/components/Timer/TimerSmallVariant.js +0 -128
  295. package/dist/components/Timer/TimerSmallVariant.js.map +0 -1
  296. package/dist/components/Timer/index.cjs +0 -2
  297. package/dist/components/Timer/index.cjs.map +0 -1
  298. package/dist/components/Timer/index.d.ts.map +0 -1
  299. package/dist/components/Timer/index.js +0 -68
  300. package/dist/components/Timer/index.js.map +0 -1
  301. package/dist/components/Timer/types.d.ts.map +0 -1
  302. package/dist/components/Timer/useTimerAnimations.cjs +0 -2
  303. package/dist/components/Timer/useTimerAnimations.cjs.map +0 -1
  304. package/dist/components/Timer/useTimerAnimations.d.ts.map +0 -1
  305. package/dist/components/Timer/useTimerAnimations.js +0 -48
  306. package/dist/components/Timer/useTimerAnimations.js.map +0 -1
  307. package/dist/components/Timer/useTimerLogic.cjs +0 -2
  308. package/dist/components/Timer/useTimerLogic.cjs.map +0 -1
  309. package/dist/components/Timer/useTimerLogic.d.ts.map +0 -1
  310. package/dist/components/Timer/useTimerLogic.js +0 -113
  311. package/dist/components/Timer/useTimerLogic.js.map +0 -1
  312. package/dist/components/Timer/utils.cjs +0 -2
  313. package/dist/components/Timer/utils.cjs.map +0 -1
  314. package/dist/components/Timer/utils.d.ts.map +0 -1
  315. package/dist/components/Timer/utils.js +0 -19
  316. package/dist/components/Timer/utils.js.map +0 -1
  317. package/dist/components/Timer.cjs +0 -2
  318. package/dist/components/Timer.cjs.map +0 -1
  319. package/dist/components/Timer.d.ts.map +0 -1
  320. package/dist/components/Timer.js +0 -6
  321. package/dist/components/Timer.js.map +0 -1
  322. package/dist/components/TransparentOverlay.d.ts.map +0 -1
  323. package/dist/components/VelocitySlider.cjs +0 -2
  324. package/dist/components/VelocitySlider.cjs.map +0 -1
  325. package/dist/components/VelocitySlider.d.ts.map +0 -1
  326. package/dist/components/VelocitySlider.js +0 -97
  327. package/dist/components/VelocitySlider.js.map +0 -1
  328. package/dist/components/experimental/utils/AdornedSelect.cjs +0 -2
  329. package/dist/components/experimental/utils/AdornedSelect.cjs.map +0 -1
  330. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +0 -1
  331. package/dist/components/experimental/utils/AdornedSelect.js +0 -35
  332. package/dist/components/experimental/utils/AdornedSelect.js.map +0 -1
  333. package/dist/components/jogging/JoggingBlocked.cjs +0 -2
  334. package/dist/components/jogging/JoggingBlocked.cjs.map +0 -1
  335. package/dist/components/jogging/JoggingBlocked.d.ts.map +0 -1
  336. package/dist/components/jogging/JoggingBlocked.js +0 -46
  337. package/dist/components/jogging/JoggingBlocked.js.map +0 -1
  338. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +0 -2
  339. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +0 -1
  340. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +0 -1
  341. package/dist/components/jogging/JoggingCartesianAxisControl.js +0 -186
  342. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +0 -1
  343. package/dist/components/jogging/JoggingCartesianTab.cjs +0 -2
  344. package/dist/components/jogging/JoggingCartesianTab.cjs.map +0 -1
  345. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +0 -1
  346. package/dist/components/jogging/JoggingCartesianTab.js +0 -267
  347. package/dist/components/jogging/JoggingCartesianTab.js.map +0 -1
  348. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +0 -1
  349. package/dist/components/jogging/JoggingJointLimitDetector.cjs +0 -2
  350. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +0 -1
  351. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +0 -1
  352. package/dist/components/jogging/JoggingJointLimitDetector.js +0 -42
  353. package/dist/components/jogging/JoggingJointLimitDetector.js.map +0 -1
  354. package/dist/components/jogging/JoggingJointTab.cjs +0 -2
  355. package/dist/components/jogging/JoggingJointTab.cjs.map +0 -1
  356. package/dist/components/jogging/JoggingJointTab.d.ts.map +0 -1
  357. package/dist/components/jogging/JoggingJointTab.js +0 -114
  358. package/dist/components/jogging/JoggingJointTab.js.map +0 -1
  359. package/dist/components/jogging/JoggingJointValueControl.cjs +0 -2
  360. package/dist/components/jogging/JoggingJointValueControl.cjs.map +0 -1
  361. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +0 -1
  362. package/dist/components/jogging/JoggingJointValueControl.js +0 -240
  363. package/dist/components/jogging/JoggingJointValueControl.js.map +0 -1
  364. package/dist/components/jogging/JoggingOptions.cjs +0 -2
  365. package/dist/components/jogging/JoggingOptions.cjs.map +0 -1
  366. package/dist/components/jogging/JoggingOptions.d.ts.map +0 -1
  367. package/dist/components/jogging/JoggingOptions.js +0 -117
  368. package/dist/components/jogging/JoggingOptions.js.map +0 -1
  369. package/dist/components/jogging/JoggingPanel.cjs +0 -2
  370. package/dist/components/jogging/JoggingPanel.cjs.map +0 -1
  371. package/dist/components/jogging/JoggingPanel.d.ts.map +0 -1
  372. package/dist/components/jogging/JoggingPanel.js +0 -121
  373. package/dist/components/jogging/JoggingPanel.js.map +0 -1
  374. package/dist/components/jogging/JoggingPanel.test.d.ts +0 -2
  375. package/dist/components/jogging/JoggingPanel.test.d.ts.map +0 -1
  376. package/dist/components/jogging/JoggingStore.cjs +0 -2
  377. package/dist/components/jogging/JoggingStore.cjs.map +0 -1
  378. package/dist/components/jogging/JoggingStore.d.ts.map +0 -1
  379. package/dist/components/jogging/JoggingStore.js +0 -219
  380. package/dist/components/jogging/JoggingStore.js.map +0 -1
  381. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +0 -2
  382. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +0 -1
  383. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +0 -1
  384. package/dist/components/jogging/JoggingToggleButtonGroup.js +0 -29
  385. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +0 -1
  386. package/dist/components/jogging/JoggingVelocitySlider.cjs +0 -2
  387. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +0 -1
  388. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +0 -1
  389. package/dist/components/jogging/JoggingVelocitySlider.js +0 -40
  390. package/dist/components/jogging/JoggingVelocitySlider.js.map +0 -1
  391. package/dist/components/jogging/PoseCartesianValues.cjs +0 -2
  392. package/dist/components/jogging/PoseCartesianValues.cjs.map +0 -1
  393. package/dist/components/jogging/PoseCartesianValues.d.ts.map +0 -1
  394. package/dist/components/jogging/PoseCartesianValues.js +0 -48
  395. package/dist/components/jogging/PoseCartesianValues.js.map +0 -1
  396. package/dist/components/jogging/PoseJointValues.cjs +0 -2
  397. package/dist/components/jogging/PoseJointValues.cjs.map +0 -1
  398. package/dist/components/jogging/PoseJointValues.d.ts.map +0 -1
  399. package/dist/components/jogging/PoseJointValues.js +0 -47
  400. package/dist/components/jogging/PoseJointValues.js.map +0 -1
  401. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +0 -11
  402. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +0 -1
  403. package/dist/components/modal/NoMotionGroupModal.cjs +0 -2
  404. package/dist/components/modal/NoMotionGroupModal.cjs.map +0 -1
  405. package/dist/components/modal/NoMotionGroupModal.d.ts.map +0 -1
  406. package/dist/components/modal/NoMotionGroupModal.js +0 -92
  407. package/dist/components/modal/NoMotionGroupModal.js.map +0 -1
  408. package/dist/components/robots/AxisConfig.cjs +0 -2
  409. package/dist/components/robots/AxisConfig.cjs.map +0 -1
  410. package/dist/components/robots/AxisConfig.d.ts.map +0 -1
  411. package/dist/components/robots/AxisConfig.js +0 -5
  412. package/dist/components/robots/AxisConfig.js.map +0 -1
  413. package/dist/components/robots/DHLinearAxis.cjs +0 -2
  414. package/dist/components/robots/DHLinearAxis.cjs.map +0 -1
  415. package/dist/components/robots/DHLinearAxis.d.ts.map +0 -1
  416. package/dist/components/robots/DHLinearAxis.js +0 -92
  417. package/dist/components/robots/DHLinearAxis.js.map +0 -1
  418. package/dist/components/robots/DHRobot.cjs +0 -2
  419. package/dist/components/robots/DHRobot.cjs.map +0 -1
  420. package/dist/components/robots/DHRobot.d.ts.map +0 -1
  421. package/dist/components/robots/DHRobot.js +0 -94
  422. package/dist/components/robots/DHRobot.js.map +0 -1
  423. package/dist/components/robots/GenericRobot.cjs +0 -2
  424. package/dist/components/robots/GenericRobot.cjs.map +0 -1
  425. package/dist/components/robots/GenericRobot.d.ts.map +0 -1
  426. package/dist/components/robots/GenericRobot.js +0 -91
  427. package/dist/components/robots/GenericRobot.js.map +0 -1
  428. package/dist/components/robots/LinearAxis.cjs +0 -2
  429. package/dist/components/robots/LinearAxis.cjs.map +0 -1
  430. package/dist/components/robots/LinearAxis.d.ts.map +0 -1
  431. package/dist/components/robots/LinearAxis.js +0 -42
  432. package/dist/components/robots/LinearAxis.js.map +0 -1
  433. package/dist/components/robots/LinearAxisAnimator.cjs +0 -2
  434. package/dist/components/robots/LinearAxisAnimator.cjs.map +0 -1
  435. package/dist/components/robots/LinearAxisAnimator.d.ts.map +0 -1
  436. package/dist/components/robots/LinearAxisAnimator.js +0 -66
  437. package/dist/components/robots/LinearAxisAnimator.js.map +0 -1
  438. package/dist/components/robots/MotionGroupVisualizer.cjs +0 -2
  439. package/dist/components/robots/MotionGroupVisualizer.cjs.map +0 -1
  440. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +0 -1
  441. package/dist/components/robots/MotionGroupVisualizer.js +0 -21
  442. package/dist/components/robots/MotionGroupVisualizer.js.map +0 -1
  443. package/dist/components/robots/Robot.cjs +0 -2
  444. package/dist/components/robots/Robot.cjs.map +0 -1
  445. package/dist/components/robots/Robot.d.ts.map +0 -1
  446. package/dist/components/robots/Robot.js +0 -31
  447. package/dist/components/robots/Robot.js.map +0 -1
  448. package/dist/components/robots/RobotAnimator.cjs +0 -2
  449. package/dist/components/robots/RobotAnimator.cjs.map +0 -1
  450. package/dist/components/robots/RobotAnimator.d.ts.map +0 -1
  451. package/dist/components/robots/RobotAnimator.js +0 -66
  452. package/dist/components/robots/RobotAnimator.js.map +0 -1
  453. package/dist/components/robots/RobotAnimator.test.d.ts +0 -2
  454. package/dist/components/robots/RobotAnimator.test.d.ts.map +0 -1
  455. package/dist/components/robots/SupportedLinearAxis.cjs +0 -2
  456. package/dist/components/robots/SupportedLinearAxis.cjs.map +0 -1
  457. package/dist/components/robots/SupportedLinearAxis.d.ts.map +0 -1
  458. package/dist/components/robots/SupportedLinearAxis.js +0 -82
  459. package/dist/components/robots/SupportedLinearAxis.js.map +0 -1
  460. package/dist/components/robots/SupportedRobot.cjs +0 -2
  461. package/dist/components/robots/SupportedRobot.cjs.map +0 -1
  462. package/dist/components/robots/SupportedRobot.d.ts.map +0 -1
  463. package/dist/components/robots/SupportedRobot.js +0 -82
  464. package/dist/components/robots/SupportedRobot.js.map +0 -1
  465. package/dist/components/robots/ghostStyle.cjs +0 -2
  466. package/dist/components/robots/ghostStyle.cjs.map +0 -1
  467. package/dist/components/robots/ghostStyle.d.ts.map +0 -1
  468. package/dist/components/robots/ghostStyle.js +0 -40
  469. package/dist/components/robots/ghostStyle.js.map +0 -1
  470. package/dist/components/robots/manufacturerHomePositions.cjs +0 -2
  471. package/dist/components/robots/manufacturerHomePositions.cjs.map +0 -1
  472. package/dist/components/robots/manufacturerHomePositions.d.ts.map +0 -1
  473. package/dist/components/robots/manufacturerHomePositions.js +0 -51
  474. package/dist/components/robots/manufacturerHomePositions.js.map +0 -1
  475. package/dist/components/robots/robotModelLogic.cjs +0 -2
  476. package/dist/components/robots/robotModelLogic.cjs.map +0 -1
  477. package/dist/components/robots/robotModelLogic.d.ts.map +0 -1
  478. package/dist/components/robots/robotModelLogic.js +0 -61
  479. package/dist/components/robots/robotModelLogic.js.map +0 -1
  480. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +0 -2
  481. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +0 -1
  482. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +0 -1
  483. package/dist/components/safetyBar/ControllerTypeIndicator.js +0 -71
  484. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +0 -1
  485. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +0 -2
  486. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +0 -1
  487. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +0 -1
  488. package/dist/components/safetyBar/IndicatorWithExplanation.js +0 -123
  489. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +0 -1
  490. package/dist/components/safetyBar/OperationModeIndicator.cjs +0 -2
  491. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +0 -1
  492. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +0 -1
  493. package/dist/components/safetyBar/OperationModeIndicator.js +0 -75
  494. package/dist/components/safetyBar/OperationModeIndicator.js.map +0 -1
  495. package/dist/components/safetyBar/SafetyBar.cjs +0 -2
  496. package/dist/components/safetyBar/SafetyBar.cjs.map +0 -1
  497. package/dist/components/safetyBar/SafetyBar.d.ts.map +0 -1
  498. package/dist/components/safetyBar/SafetyBar.js +0 -66
  499. package/dist/components/safetyBar/SafetyBar.js.map +0 -1
  500. package/dist/components/safetyBar/SafetyStateIndicator.cjs +0 -2
  501. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +0 -1
  502. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +0 -1
  503. package/dist/components/safetyBar/SafetyStateIndicator.js +0 -126
  504. package/dist/components/safetyBar/SafetyStateIndicator.js.map +0 -1
  505. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +0 -2
  506. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +0 -1
  507. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +0 -3
  508. package/dist/components/safetyBar/icons/controller-type-physical.svg.js +0 -11
  509. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +0 -1
  510. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +0 -2
  511. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +0 -1
  512. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +0 -3
  513. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +0 -11
  514. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +0 -1
  515. package/dist/components/safetyBar/icons/index.d.ts.map +0 -1
  516. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +0 -2
  517. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +0 -1
  518. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +0 -3
  519. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +0 -11
  520. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +0 -1
  521. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +0 -2
  522. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +0 -1
  523. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +0 -3
  524. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +0 -11
  525. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +0 -1
  526. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +0 -2
  527. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +0 -1
  528. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +0 -3
  529. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +0 -11
  530. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +0 -1
  531. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +0 -2
  532. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +0 -1
  533. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +0 -3
  534. package/dist/components/safetyBar/icons/safety-state-error.svg.js +0 -11
  535. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +0 -1
  536. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +0 -2
  537. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +0 -1
  538. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +0 -3
  539. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +0 -11
  540. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +0 -1
  541. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +0 -2
  542. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +0 -1
  543. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +0 -3
  544. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +0 -11
  545. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +0 -1
  546. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +0 -2
  547. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +0 -1
  548. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +0 -3
  549. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +0 -11
  550. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +0 -1
  551. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +0 -2
  552. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +0 -1
  553. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +0 -3
  554. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +0 -11
  555. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +0 -1
  556. package/dist/components/utils/converters.cjs +0 -2
  557. package/dist/components/utils/converters.cjs.map +0 -1
  558. package/dist/components/utils/converters.d.ts.map +0 -1
  559. package/dist/components/utils/converters.js +0 -40
  560. package/dist/components/utils/converters.js.map +0 -1
  561. package/dist/components/utils/errorHandling.cjs +0 -2
  562. package/dist/components/utils/errorHandling.cjs.map +0 -1
  563. package/dist/components/utils/errorHandling.d.ts.map +0 -1
  564. package/dist/components/utils/errorHandling.js +0 -14
  565. package/dist/components/utils/errorHandling.js.map +0 -1
  566. package/dist/components/utils/errorHandling.test.d.ts +0 -2
  567. package/dist/components/utils/errorHandling.test.d.ts.map +0 -1
  568. package/dist/components/utils/hooks.cjs +0 -2
  569. package/dist/components/utils/hooks.cjs.map +0 -1
  570. package/dist/components/utils/hooks.d.ts.map +0 -1
  571. package/dist/components/utils/hooks.js +0 -29
  572. package/dist/components/utils/hooks.js.map +0 -1
  573. package/dist/components/utils/interpolation.cjs +0 -2
  574. package/dist/components/utils/interpolation.cjs.map +0 -1
  575. package/dist/components/utils/interpolation.d.ts.map +0 -1
  576. package/dist/components/utils/interpolation.js +0 -138
  577. package/dist/components/utils/interpolation.js.map +0 -1
  578. package/dist/components/utils/interpolation.test.d.ts +0 -2
  579. package/dist/components/utils/interpolation.test.d.ts.map +0 -1
  580. package/dist/core.cjs.map +0 -1
  581. package/dist/core.d.ts.map +0 -1
  582. package/dist/core.js.map +0 -1
  583. package/dist/externalizeComponent.cjs +0 -2
  584. package/dist/externalizeComponent.cjs.map +0 -1
  585. package/dist/externalizeComponent.d.ts.map +0 -1
  586. package/dist/externalizeComponent.js +0 -13
  587. package/dist/externalizeComponent.js.map +0 -1
  588. package/dist/i18n/config.cjs +0 -2
  589. package/dist/i18n/config.cjs.map +0 -1
  590. package/dist/i18n/config.d.ts.map +0 -1
  591. package/dist/i18n/config.js +0 -25
  592. package/dist/i18n/config.js.map +0 -1
  593. package/dist/i18n/locales/de/translations.json.cjs +0 -3
  594. package/dist/i18n/locales/de/translations.json.cjs.map +0 -1
  595. package/dist/i18n/locales/de/translations.json.js +0 -94
  596. package/dist/i18n/locales/de/translations.json.js.map +0 -1
  597. package/dist/i18n/locales/en/translations.json.cjs +0 -2
  598. package/dist/i18n/locales/en/translations.json.cjs.map +0 -1
  599. package/dist/i18n/locales/en/translations.json.js +0 -94
  600. package/dist/i18n/locales/en/translations.json.js.map +0 -1
  601. package/dist/icons/DropdownArrowIcon.cjs +0 -2
  602. package/dist/icons/DropdownArrowIcon.cjs.map +0 -1
  603. package/dist/icons/DropdownArrowIcon.d.ts.map +0 -1
  604. package/dist/icons/DropdownArrowIcon.js +0 -14
  605. package/dist/icons/DropdownArrowIcon.js.map +0 -1
  606. package/dist/icons/axis-x.svg.cjs +0 -2
  607. package/dist/icons/axis-x.svg.cjs.map +0 -1
  608. package/dist/icons/axis-x.svg.d.ts +0 -3
  609. package/dist/icons/axis-x.svg.js +0 -11
  610. package/dist/icons/axis-x.svg.js.map +0 -1
  611. package/dist/icons/axis-y.svg.cjs +0 -2
  612. package/dist/icons/axis-y.svg.cjs.map +0 -1
  613. package/dist/icons/axis-y.svg.d.ts +0 -3
  614. package/dist/icons/axis-y.svg.js +0 -11
  615. package/dist/icons/axis-y.svg.js.map +0 -1
  616. package/dist/icons/axis-z.svg.cjs +0 -2
  617. package/dist/icons/axis-z.svg.cjs.map +0 -1
  618. package/dist/icons/axis-z.svg.d.ts +0 -3
  619. package/dist/icons/axis-z.svg.js +0 -11
  620. package/dist/icons/axis-z.svg.js.map +0 -1
  621. package/dist/icons/home.svg.cjs +0 -2
  622. package/dist/icons/home.svg.cjs.map +0 -1
  623. package/dist/icons/home.svg.d.ts +0 -3
  624. package/dist/icons/home.svg.js +0 -11
  625. package/dist/icons/home.svg.js.map +0 -1
  626. package/dist/icons/index.d.ts.map +0 -1
  627. package/dist/icons/jog-minus.svg.cjs +0 -2
  628. package/dist/icons/jog-minus.svg.cjs.map +0 -1
  629. package/dist/icons/jog-minus.svg.d.ts +0 -3
  630. package/dist/icons/jog-minus.svg.js +0 -11
  631. package/dist/icons/jog-minus.svg.js.map +0 -1
  632. package/dist/icons/jog-plus.svg.cjs +0 -2
  633. package/dist/icons/jog-plus.svg.cjs.map +0 -1
  634. package/dist/icons/jog-plus.svg.d.ts +0 -3
  635. package/dist/icons/jog-plus.svg.js +0 -11
  636. package/dist/icons/jog-plus.svg.js.map +0 -1
  637. package/dist/icons/jogging.svg.cjs +0 -2
  638. package/dist/icons/jogging.svg.cjs.map +0 -1
  639. package/dist/icons/jogging.svg.d.ts +0 -3
  640. package/dist/icons/jogging.svg.js +0 -11
  641. package/dist/icons/jogging.svg.js.map +0 -1
  642. package/dist/icons/orientation-coord-system.svg.cjs +0 -2
  643. package/dist/icons/orientation-coord-system.svg.cjs.map +0 -1
  644. package/dist/icons/orientation-coord-system.svg.d.ts +0 -3
  645. package/dist/icons/orientation-coord-system.svg.js +0 -11
  646. package/dist/icons/orientation-coord-system.svg.js.map +0 -1
  647. package/dist/icons/orientation-tool.svg.cjs +0 -2
  648. package/dist/icons/orientation-tool.svg.cjs.map +0 -1
  649. package/dist/icons/orientation-tool.svg.d.ts +0 -3
  650. package/dist/icons/orientation-tool.svg.js +0 -11
  651. package/dist/icons/orientation-tool.svg.js.map +0 -1
  652. package/dist/icons/robot.svg.cjs +0 -2
  653. package/dist/icons/robot.svg.cjs.map +0 -1
  654. package/dist/icons/robot.svg.d.ts +0 -3
  655. package/dist/icons/robot.svg.js +0 -11
  656. package/dist/icons/robot.svg.js.map +0 -1
  657. package/dist/icons/rotation.svg.cjs +0 -2
  658. package/dist/icons/rotation.svg.cjs.map +0 -1
  659. package/dist/icons/rotation.svg.d.ts +0 -3
  660. package/dist/icons/rotation.svg.js +0 -11
  661. package/dist/icons/rotation.svg.js.map +0 -1
  662. package/dist/icons/wbLogo.svg.cjs +0 -2
  663. package/dist/icons/wbLogo.svg.cjs.map +0 -1
  664. package/dist/icons/wbLogo.svg.d.ts +0 -3
  665. package/dist/icons/wbLogo.svg.js +0 -11
  666. package/dist/icons/wbLogo.svg.js.map +0 -1
  667. package/dist/index.cjs.map +0 -1
  668. package/dist/index.d.ts.map +0 -1
  669. package/dist/index.js.map +0 -1
  670. package/dist/lib/ConnectedMotionGroup.cjs +0 -4
  671. package/dist/lib/ConnectedMotionGroup.cjs.map +0 -1
  672. package/dist/lib/ConnectedMotionGroup.d.ts.map +0 -1
  673. package/dist/lib/ConnectedMotionGroup.js +0 -250
  674. package/dist/lib/ConnectedMotionGroup.js.map +0 -1
  675. package/dist/lib/JoggerConnection.cjs +0 -2
  676. package/dist/lib/JoggerConnection.cjs.map +0 -1
  677. package/dist/lib/JoggerConnection.d.ts.map +0 -1
  678. package/dist/lib/JoggerConnection.js +0 -342
  679. package/dist/lib/JoggerConnection.js.map +0 -1
  680. package/dist/lib/JoggerConnection.test.d.ts +0 -2
  681. package/dist/lib/JoggerConnection.test.d.ts.map +0 -1
  682. package/dist/lib/MotionStreamConnection.cjs +0 -3
  683. package/dist/lib/MotionStreamConnection.cjs.map +0 -1
  684. package/dist/lib/MotionStreamConnection.d.ts.map +0 -1
  685. package/dist/lib/MotionStreamConnection.js +0 -94
  686. package/dist/lib/MotionStreamConnection.js.map +0 -1
  687. package/dist/lib/MotionStreamConnection.test.d.ts +0 -2
  688. package/dist/lib/MotionStreamConnection.test.d.ts.map +0 -1
  689. package/dist/lib/motionStateUpdate.cjs +0 -2
  690. package/dist/lib/motionStateUpdate.cjs.map +0 -1
  691. package/dist/lib/motionStateUpdate.d.ts.map +0 -1
  692. package/dist/lib/motionStateUpdate.js +0 -49
  693. package/dist/lib/motionStateUpdate.js.map +0 -1
  694. package/dist/lib/motionStateUpdate.test.d.ts +0 -2
  695. package/dist/lib/motionStateUpdate.test.d.ts.map +0 -1
  696. package/dist/test/consumer.test.d.ts +0 -2
  697. package/dist/test/consumer.test.d.ts.map +0 -1
  698. package/dist/test/setup.d.ts +0 -2
  699. package/dist/test/setup.d.ts.map +0 -1
  700. package/dist/themes/createDarkTheme.cjs +0 -2
  701. package/dist/themes/createDarkTheme.cjs.map +0 -1
  702. package/dist/themes/createDarkTheme.d.ts.map +0 -1
  703. package/dist/themes/createDarkTheme.js +0 -344
  704. package/dist/themes/createDarkTheme.js.map +0 -1
  705. package/dist/themes/createLightTheme.cjs +0 -2
  706. package/dist/themes/createLightTheme.cjs.map +0 -1
  707. package/dist/themes/createLightTheme.d.ts.map +0 -1
  708. package/dist/themes/createLightTheme.js +0 -9
  709. package/dist/themes/createLightTheme.js.map +0 -1
  710. package/dist/themes/themeTypes.d.ts.map +0 -1
  711. package/dist/themes/theming.cjs +0 -2
  712. package/dist/themes/theming.cjs.map +0 -1
  713. package/dist/themes/theming.d.ts.map +0 -1
  714. package/dist/themes/theming.js +0 -14
  715. package/dist/themes/theming.js.map +0 -1
  716. package/dist/wb-icons.cjs.map +0 -1
  717. package/dist/wb-icons.d.ts.map +0 -1
  718. package/dist/wb-icons.js.map +0 -1
  719. package/src/3d.ts +0 -18
  720. package/src/Setup.tsx +0 -33
  721. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +0 -57
  722. package/src/components/3d-viewport/PresetEnvironment.tsx +0 -81
  723. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +0 -198
  724. package/src/components/3d-viewport/TrajectoryRenderer.tsx +0 -41
  725. package/src/components/3d-viewport/collider/ColliderCollection.tsx +0 -35
  726. package/src/components/3d-viewport/collider/ColliderElement.tsx +0 -36
  727. package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +0 -26
  728. package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +0 -48
  729. package/src/components/AppHeader.md +0 -84
  730. package/src/components/AppHeader.tsx +0 -197
  731. package/src/components/ConsoleFilter.tsx +0 -24
  732. package/src/components/CopyableText.tsx +0 -89
  733. package/src/components/CycleTimer/CycleTimer.ts +0 -8
  734. package/src/components/CycleTimer/DefaultVariant.tsx +0 -326
  735. package/src/components/CycleTimer/SmallVariant.tsx +0 -229
  736. package/src/components/CycleTimer/index.tsx +0 -158
  737. package/src/components/CycleTimer/types.ts +0 -58
  738. package/src/components/CycleTimer/useAnimations.ts +0 -202
  739. package/src/components/CycleTimer/useTimerLogic.ts +0 -330
  740. package/src/components/CycleTimer/utils.ts +0 -122
  741. package/src/components/CycleTimer.tsx +0 -8
  742. package/src/components/DataGrid.tsx +0 -664
  743. package/src/components/LoadingCover.tsx +0 -91
  744. package/src/components/LogPanel.tsx +0 -71
  745. package/src/components/LogStore.ts +0 -46
  746. package/src/components/LogViewer.tsx +0 -368
  747. package/src/components/ProgramControl.tsx +0 -267
  748. package/src/components/ProgramStateIndicator.tsx +0 -195
  749. package/src/components/RobotCard.tsx +0 -495
  750. package/src/components/RobotListItem.tsx +0 -155
  751. package/src/components/RobotSetupReadinessIndicator.test.tsx +0 -60
  752. package/src/components/RobotSetupReadinessIndicator.tsx +0 -161
  753. package/src/components/SelectableFab.tsx +0 -52
  754. package/src/components/TabBar.tsx +0 -325
  755. package/src/components/ThemeSelect.tsx +0 -51
  756. package/src/components/Timer/Timer.ts +0 -4
  757. package/src/components/Timer/TimerDefaultVariant.tsx +0 -143
  758. package/src/components/Timer/TimerSmallVariant.tsx +0 -141
  759. package/src/components/Timer/index.tsx +0 -103
  760. package/src/components/Timer/types.ts +0 -38
  761. package/src/components/Timer/useTimerAnimations.ts +0 -94
  762. package/src/components/Timer/useTimerLogic.ts +0 -214
  763. package/src/components/Timer/utils.ts +0 -87
  764. package/src/components/Timer.ts +0 -4
  765. package/src/components/TransparentOverlay.tsx +0 -28
  766. package/src/components/VelocitySlider.tsx +0 -117
  767. package/src/components/experimental/utils/AdornedSelect.tsx +0 -38
  768. package/src/components/jogging/JoggingBlocked.tsx +0 -43
  769. package/src/components/jogging/JoggingCartesianAxisControl.tsx +0 -237
  770. package/src/components/jogging/JoggingCartesianTab.tsx +0 -349
  771. package/src/components/jogging/JoggingFreedriveTab.tsx +0 -8
  772. package/src/components/jogging/JoggingJointLimitDetector.tsx +0 -57
  773. package/src/components/jogging/JoggingJointTab.tsx +0 -126
  774. package/src/components/jogging/JoggingJointValueControl.tsx +0 -293
  775. package/src/components/jogging/JoggingOptions.tsx +0 -163
  776. package/src/components/jogging/JoggingPanel.test.tsx +0 -645
  777. package/src/components/jogging/JoggingPanel.tsx +0 -204
  778. package/src/components/jogging/JoggingStore.ts +0 -485
  779. package/src/components/jogging/JoggingToggleButtonGroup.tsx +0 -25
  780. package/src/components/jogging/JoggingVelocitySlider.tsx +0 -39
  781. package/src/components/jogging/PoseCartesianValues.tsx +0 -55
  782. package/src/components/jogging/PoseJointValues.tsx +0 -54
  783. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +0 -136
  784. package/src/components/modal/NoMotionGroupModal.tsx +0 -91
  785. package/src/components/robots/AxisConfig.ts +0 -3
  786. package/src/components/robots/DHLinearAxis.tsx +0 -147
  787. package/src/components/robots/DHRobot.tsx +0 -152
  788. package/src/components/robots/GenericRobot.tsx +0 -137
  789. package/src/components/robots/LinearAxis.tsx +0 -74
  790. package/src/components/robots/LinearAxisAnimator.tsx +0 -118
  791. package/src/components/robots/MotionGroupVisualizer.tsx +0 -73
  792. package/src/components/robots/Robot.tsx +0 -57
  793. package/src/components/robots/RobotAnimator.test.tsx +0 -98
  794. package/src/components/robots/RobotAnimator.tsx +0 -116
  795. package/src/components/robots/SupportedLinearAxis.tsx +0 -110
  796. package/src/components/robots/SupportedRobot.tsx +0 -111
  797. package/src/components/robots/ghostStyle.ts +0 -71
  798. package/src/components/robots/manufacturerHomePositions.ts +0 -76
  799. package/src/components/robots/robotModelLogic.ts +0 -158
  800. package/src/components/safetyBar/ControllerTypeIndicator.tsx +0 -79
  801. package/src/components/safetyBar/IndicatorWithExplanation.tsx +0 -137
  802. package/src/components/safetyBar/OperationModeIndicator.tsx +0 -98
  803. package/src/components/safetyBar/SafetyBar.tsx +0 -72
  804. package/src/components/safetyBar/SafetyStateIndicator.tsx +0 -163
  805. package/src/components/safetyBar/icons/controller-type-physical.svg +0 -1
  806. package/src/components/safetyBar/icons/controller-type-virtual.svg +0 -1
  807. package/src/components/safetyBar/icons/index.ts +0 -10
  808. package/src/components/safetyBar/icons/operation-mode-automatic.svg +0 -1
  809. package/src/components/safetyBar/icons/operation-mode-error.svg +0 -1
  810. package/src/components/safetyBar/icons/operation-mode-manual.svg +0 -1
  811. package/src/components/safetyBar/icons/safety-state-error.svg +0 -1
  812. package/src/components/safetyBar/icons/safety-state-estop.svg +0 -1
  813. package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +0 -1
  814. package/src/components/safetyBar/icons/safety-state-normal.svg +0 -1
  815. package/src/components/safetyBar/icons/safety-state-stop.svg +0 -1
  816. package/src/components/utils/converters.ts +0 -90
  817. package/src/components/utils/errorHandling.test.ts +0 -41
  818. package/src/components/utils/errorHandling.ts +0 -38
  819. package/src/components/utils/hooks.tsx +0 -55
  820. package/src/components/utils/interpolation.test.ts +0 -1138
  821. package/src/components/utils/interpolation.ts +0 -380
  822. package/src/core.ts +0 -33
  823. package/src/declarations.d.ts +0 -10
  824. package/src/env.d.ts +0 -3
  825. package/src/externalizeComponent.tsx +0 -28
  826. package/src/i18n/config.ts +0 -26
  827. package/src/i18n/locales/de/translations.json +0 -89
  828. package/src/i18n/locales/en/translations.json +0 -90
  829. package/src/icons/DropdownArrowIcon.tsx +0 -12
  830. package/src/icons/axis-x.svg +0 -1
  831. package/src/icons/axis-y.svg +0 -1
  832. package/src/icons/axis-z.svg +0 -1
  833. package/src/icons/home.svg +0 -1
  834. package/src/icons/index.ts +0 -12
  835. package/src/icons/jog-minus.svg +0 -5
  836. package/src/icons/jog-plus.svg +0 -9
  837. package/src/icons/jogging.svg +0 -1
  838. package/src/icons/orientation-coord-system.svg +0 -1
  839. package/src/icons/orientation-tool.svg +0 -1
  840. package/src/icons/robot.svg +0 -1
  841. package/src/icons/rotation.svg +0 -3
  842. package/src/icons/wbLogo.svg +0 -1
  843. package/src/index.ts +0 -4
  844. package/src/lib/ConnectedMotionGroup.ts +0 -441
  845. package/src/lib/JoggerConnection.test.ts +0 -122
  846. package/src/lib/JoggerConnection.ts +0 -694
  847. package/src/lib/MotionStreamConnection.test.ts +0 -23
  848. package/src/lib/MotionStreamConnection.ts +0 -186
  849. package/src/lib/motionStateUpdate.test.ts +0 -28
  850. package/src/lib/motionStateUpdate.ts +0 -117
  851. package/src/test/consumer.test.ts +0 -257
  852. package/src/test/setup.ts +0 -111
  853. package/src/themes/createDarkTheme.ts +0 -343
  854. package/src/themes/createLightTheme.ts +0 -8
  855. package/src/themes/themeTypes.ts +0 -96
  856. package/src/themes/theming.ts +0 -29
  857. package/src/wb-icons.ts +0 -3
@@ -1,1138 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"
2
- import { ValueInterpolator } from "./interpolation"
3
-
4
- describe("ValueInterpolator", () => {
5
- let interpolator: ValueInterpolator
6
- let mockOnChange: ReturnType<typeof vi.fn>
7
- let mockOnComplete: ReturnType<typeof vi.fn>
8
-
9
- beforeEach(() => {
10
- mockOnChange = vi.fn()
11
- mockOnComplete = vi.fn()
12
-
13
- // Mock requestAnimationFrame for testing
14
- vi.stubGlobal("requestAnimationFrame", (cb: FrameRequestCallback) => {
15
- return setTimeout(cb, 16) // Simulate 60fps
16
- })
17
-
18
- vi.stubGlobal("cancelAnimationFrame", (id: number) => {
19
- clearTimeout(id)
20
- })
21
- })
22
-
23
- afterEach(() => {
24
- interpolator?.destroy()
25
- vi.restoreAllMocks()
26
- vi.unstubAllGlobals()
27
- })
28
-
29
- it("should handle frequent target updates without losing interpolation quality", async () => {
30
- interpolator = new ValueInterpolator([0, 0, 0], {
31
- tension: 180,
32
- friction: 25,
33
- threshold: 0.001,
34
- onChange: mockOnChange,
35
- onComplete: mockOnComplete,
36
- })
37
-
38
- // Simulate rapid updates (like robot motion state changes)
39
- const rapidUpdates = [
40
- [1, 2, 3],
41
- [1.1, 2.1, 3.1],
42
- [1.2, 2.2, 3.2],
43
- [1.3, 2.3, 3.3],
44
- [1.5, 2.5, 3.5], // Final target
45
- ]
46
-
47
- // Apply updates rapidly
48
- rapidUpdates.forEach((values, index) => {
49
- setTimeout(() => {
50
- interpolator.setTarget(values)
51
- }, index * 5)
52
- })
53
-
54
- // Simulate frame updates with delta
55
- const simulateFrames = async (count: number) => {
56
- for (let i = 0; i < count; i++) {
57
- interpolator.update(1 / 60) // 60fps
58
- await new Promise((resolve) => setTimeout(resolve, 16)) // ~60fps
59
- }
60
- }
61
-
62
- await simulateFrames(20)
63
-
64
- // Verify interpolation handled rapid updates
65
- expect(mockOnChange).toHaveBeenCalled()
66
-
67
- // Final values should be close to the last target
68
- const finalValues = interpolator.getCurrentValues()
69
- expect(finalValues[0]).toBeCloseTo(1.5, 0)
70
- expect(finalValues[1]).toBeCloseTo(2.5, 0)
71
- expect(finalValues[2]).toBeCloseTo(3.5, 0)
72
- })
73
-
74
- it("should provide smooth spring-like animation characteristics", async () => {
75
- const changeHistory: number[][] = []
76
-
77
- interpolator = new ValueInterpolator([0], {
78
- tension: 120,
79
- friction: 20,
80
- threshold: 0.001,
81
- onChange: (values) => {
82
- changeHistory.push([...values])
83
- },
84
- })
85
-
86
- interpolator.setTarget([10])
87
-
88
- // Simulate animation frames
89
- for (let i = 0; i < 30; i++) {
90
- interpolator.update(1 / 60)
91
- await new Promise((resolve) => setTimeout(resolve, 5))
92
- }
93
-
94
- // Verify we have smooth progression
95
- expect(changeHistory.length).toBeGreaterThanOrEqual(1) // At least some animation steps
96
-
97
- // Spring animation should show progression toward target
98
- const firstValue = changeHistory[0][0]
99
- const lastValue = changeHistory[changeHistory.length - 1][0]
100
-
101
- expect(firstValue).toBeGreaterThan(0) // Should start moving
102
- expect(lastValue).toBeGreaterThan(firstValue) // Should progress toward target
103
- expect(lastValue).toBeLessThan(15) // Should not overshoot significantly
104
- })
105
-
106
- it("should handle different spring configurations correctly", () => {
107
- const fastInterpolator = new ValueInterpolator([0], {
108
- tension: 200, // Higher tension = faster
109
- friction: 30,
110
- })
111
-
112
- const normalInterpolator = new ValueInterpolator([0], {
113
- tension: 120, // Default tension
114
- friction: 20,
115
- })
116
-
117
- const slowInterpolator = new ValueInterpolator([0], {
118
- tension: 60, // Lower tension = slower
119
- friction: 15,
120
- })
121
-
122
- // Test that different spring configurations produce different behavior
123
- fastInterpolator.setTarget([10])
124
- normalInterpolator.setTarget([10])
125
- slowInterpolator.setTarget([10])
126
-
127
- // Update once to see the difference
128
- fastInterpolator.update(1 / 60)
129
- normalInterpolator.update(1 / 60)
130
- slowInterpolator.update(1 / 60)
131
-
132
- // After one step, values should be different due to spring settings
133
- const fastValue = fastInterpolator.getCurrentValues()[0]
134
- const normalValue = normalInterpolator.getCurrentValues()[0]
135
- const slowValue = slowInterpolator.getCurrentValues()[0]
136
-
137
- // All should be moving toward target
138
- expect(fastValue).toBeGreaterThan(0)
139
- expect(normalValue).toBeGreaterThan(0)
140
- expect(slowValue).toBeGreaterThan(0)
141
-
142
- // Higher tension should generally move faster initially
143
- // Note: actual behavior depends on friction balance, so just verify all move
144
- expect(fastValue).toBeGreaterThan(0)
145
- expect(normalValue).toBeGreaterThan(0)
146
- expect(slowValue).toBeGreaterThan(0)
147
-
148
- fastInterpolator.destroy()
149
- normalInterpolator.destroy()
150
- slowInterpolator.destroy()
151
- })
152
-
153
- it("should handle array length changes gracefully", () => {
154
- interpolator = new ValueInterpolator([1, 2], {
155
- onChange: mockOnChange,
156
- })
157
-
158
- // Expand array
159
- interpolator.setTarget([1, 2, 3, 4])
160
- expect(interpolator.getCurrentValues()).toHaveLength(4)
161
-
162
- // Shrink array
163
- interpolator.setTarget([5, 6])
164
- expect(interpolator.getCurrentValues()).toHaveLength(2)
165
-
166
- // Update once to see changes
167
- interpolator.update(1 / 60)
168
-
169
- // Values should be updated
170
- const values = interpolator.getCurrentValues()
171
- expect(values[0]).not.toBe(1) // Should be interpolating toward 5
172
- expect(values[1]).not.toBe(2) // Should be interpolating toward 6
173
- })
174
-
175
- it("should stop and start interpolation correctly", async () => {
176
- interpolator = new ValueInterpolator([0], {
177
- // Slow for testing
178
- onChange: mockOnChange,
179
- })
180
-
181
- interpolator.setTarget([10])
182
-
183
- // Manual update should work
184
- interpolator.update(1 / 60)
185
- expect(mockOnChange).toHaveBeenCalled()
186
-
187
- const callCountAfterFirst = mockOnChange.mock.calls.length
188
-
189
- interpolator.stop()
190
-
191
- // Should be able to restart
192
- interpolator.setTarget([5])
193
- interpolator.update(1 / 60)
194
- expect(mockOnChange.mock.calls.length).toBeGreaterThan(callCountAfterFirst)
195
- })
196
-
197
- it("should not conflict when using manual updates without starting auto-interpolation", () => {
198
- let changeCount = 0
199
- interpolator = new ValueInterpolator([0], {
200
- onChange: () => {
201
- changeCount++
202
- },
203
- })
204
-
205
- // Set target but don't start auto-interpolation
206
- interpolator.setTarget([10])
207
-
208
- // Should not have triggered any changes yet (no auto-start)
209
- expect(changeCount).toBe(0)
210
-
211
- // Manual update should work
212
- interpolator.update(1 / 60)
213
- expect(changeCount).toBe(1)
214
-
215
- // Another manual update should continue interpolation
216
- interpolator.update(1 / 60)
217
- expect(changeCount).toBe(2)
218
- })
219
-
220
- it("should work with auto-interpolation when explicitly started", async () => {
221
- let changeCount = 0
222
- interpolator = new ValueInterpolator([0], {
223
- // Faster for testing
224
- onChange: () => {
225
- changeCount++
226
- },
227
- })
228
-
229
- // Set target and start auto-interpolation
230
- interpolator.setTarget([10])
231
- interpolator.startAutoInterpolation()
232
-
233
- // Wait for automatic updates
234
- await new Promise((resolve) => setTimeout(resolve, 50))
235
-
236
- // Should have triggered automatic changes
237
- expect(changeCount).toBeGreaterThan(0)
238
- })
239
-
240
- it("should not double-update when both manual and auto are used incorrectly", () => {
241
- let updateCallCount = 0
242
- const originalUpdate = ValueInterpolator.prototype.update
243
-
244
- // Spy on update calls to detect conflicts
245
- ValueInterpolator.prototype.update = function (delta) {
246
- updateCallCount++
247
- return originalUpdate.call(this, delta)
248
- }
249
-
250
- try {
251
- interpolator = new ValueInterpolator([0], {
252
- onChange: mockOnChange,
253
- })
254
-
255
- interpolator.setTarget([10])
256
-
257
- // Manual update (this should be the only way it updates)
258
- interpolator.update(1 / 60)
259
-
260
- // Should only have been called once (no auto-start)
261
- expect(updateCallCount).toBe(1)
262
- expect(mockOnChange).toHaveBeenCalledTimes(1)
263
- } finally {
264
- // Restore original method
265
- ValueInterpolator.prototype.update = originalUpdate
266
- }
267
- })
268
-
269
- it("should work correctly in RobotAnimator-like usage pattern", async () => {
270
- // Simulate the exact pattern used in RobotAnimator
271
- let frameUpdateCount = 0
272
- let onChangeCallCount = 0
273
-
274
- interpolator = new ValueInterpolator([0, 0, 0], {
275
- tension: 120,
276
- friction: 20,
277
- threshold: 0.001,
278
- onChange: () => {
279
- onChangeCallCount++
280
- },
281
- })
282
-
283
- // Simulate useFrame calling update repeatedly
284
- const simulateUseFrame = () => {
285
- const animate = () => {
286
- frameUpdateCount++
287
- interpolator.update(1 / 60)
288
-
289
- if (frameUpdateCount < 20) {
290
- setTimeout(animate, 16) // ~60fps
291
- }
292
- }
293
- animate()
294
- }
295
-
296
- // Start the animation loop
297
- simulateUseFrame()
298
-
299
- // After a few frames, change target (like rapidlyChangingMotionState update)
300
- setTimeout(() => {
301
- interpolator.setTarget([1, 2, 3])
302
- }, 50)
303
-
304
- // Wait for animation to complete
305
- await new Promise((resolve) => setTimeout(resolve, 500)) // Slightly longer wait for spring settling
306
-
307
- // Should have smooth updates, not conflicts
308
- expect(frameUpdateCount).toBeGreaterThanOrEqual(20)
309
- expect(onChangeCallCount).toBeGreaterThan(0)
310
- expect(onChangeCallCount).toBeLessThan(frameUpdateCount * 2) // No double updates
311
-
312
- const finalValues = interpolator.getCurrentValues()
313
- // Spring physics may not reach exact target quickly, just verify progress
314
- expect(finalValues[0]).toBeGreaterThan(0.5) // Should be moving toward 1
315
- expect(finalValues[1]).toBeGreaterThan(1.0) // Should be moving toward 2
316
- expect(finalValues[2]).toBeGreaterThan(1.5) // Should be moving toward 3
317
- })
318
-
319
- it("should handle setImmediate correctly", () => {
320
- interpolator = new ValueInterpolator([0, 0], {
321
- onChange: mockOnChange,
322
- })
323
-
324
- interpolator.setImmediate([5, 10])
325
-
326
- expect(interpolator.getCurrentValues()).toEqual([5, 10])
327
- expect(interpolator.isInterpolating()).toBe(false)
328
- expect(mockOnChange).toHaveBeenCalledWith([5, 10])
329
- })
330
-
331
- it("should handle irregular frame timing smoothly", async () => {
332
- const changeHistory: number[][] = []
333
-
334
- interpolator = new ValueInterpolator([0], {
335
- threshold: 0.001,
336
- onChange: (values) => {
337
- changeHistory.push([...values])
338
- },
339
- })
340
-
341
- interpolator.setTarget([10])
342
-
343
- // Simulate irregular frame timing (like real useFrame behavior)
344
- const irregularDeltas = [
345
- 1 / 60, // Normal frame
346
- 1 / 30, // Slow frame (frame drop)
347
- 1 / 120, // Fast frame
348
- 1 / 45, // Medium frame
349
- 1 / 60, // Normal frame
350
- 1 / 20, // Very slow frame
351
- 1 / 60, // Normal frame
352
- 1 / 90, // Fast frame
353
- 1 / 60, // Normal frame
354
- 1 / 40, // Slow frame
355
- ]
356
-
357
- for (const delta of irregularDeltas) {
358
- interpolator.update(delta)
359
- await new Promise((resolve) => setTimeout(resolve, 5))
360
- }
361
-
362
- // Should have smooth progression despite irregular timing
363
- expect(changeHistory.length).toBeGreaterThanOrEqual(5)
364
-
365
- // Check that values progress monotonically (no sudden jumps)
366
- for (let i = 1; i < changeHistory.length; i++) {
367
- const prev = changeHistory[i - 1][0]
368
- const curr = changeHistory[i][0]
369
-
370
- // Values should always increase smoothly toward target
371
- expect(curr).toBeGreaterThanOrEqual(prev)
372
-
373
- // No huge jumps - change should be reasonable
374
- const change = curr - prev
375
- expect(change).toBeLessThan(4) // No jump larger than 40% of total range (more lenient)
376
- }
377
- })
378
-
379
- describe("irregular target updates", () => {
380
- it("should smooth rapid target changes", () => {
381
- const interpolator = new ValueInterpolator([0], {})
382
-
383
- // Simulate rapid target updates (faster than 16ms)
384
- interpolator.setTarget([10]) // t=0
385
- interpolator.update(0.008) // 8ms later
386
- const result1 = interpolator.getCurrentValues()
387
-
388
- interpolator.setTarget([5]) // New target after 8ms (rapid update)
389
- interpolator.update(0.008) // Another 8ms
390
- const result2 = interpolator.getCurrentValues()
391
-
392
- // The interpolation should be smoother due to target blending
393
- expect(result1[0]).toBeGreaterThan(0)
394
- expect(result1[0]).toBeLessThan(10)
395
- expect(result2[0]).toBeGreaterThan(result1[0]) // Should continue progressing
396
- expect(result2[0]).toBeLessThan(8) // But not jump to the raw blended target
397
- })
398
-
399
- it("should adapt responsiveness based on update frequency", () => {
400
- const interpolator = new ValueInterpolator([0], {})
401
-
402
- // Test recent target update (high responsiveness)
403
- interpolator.setTarget([10])
404
- interpolator.update(0.016)
405
- const recentUpdateResult = interpolator.getCurrentValues()
406
-
407
- // Test with delayed target update (simulating old update)
408
- const interpolator2 = new ValueInterpolator([0], {})
409
- interpolator2.setTarget([10])
410
-
411
- // Simulate time passing to make target update "old"
412
- // We'll use a longer delay in the update to simulate this
413
- interpolator2.update(0.3) // Simulate 300ms delay
414
- const oldUpdateResult = interpolator2.getCurrentValues()
415
-
416
- // Recent updates should be more responsive (larger change)
417
- expect(recentUpdateResult[0]).toBeGreaterThan(0)
418
- expect(oldUpdateResult[0]).toBeGreaterThan(0)
419
- })
420
-
421
- it("should handle target blending correctly", () => {
422
- const interpolator = new ValueInterpolator([0], {})
423
-
424
- // Set initial target
425
- interpolator.setTarget([100])
426
-
427
- // Immediately set new target (should trigger blending)
428
- interpolator.setTarget([50])
429
-
430
- // Update and check the result
431
- interpolator.update(0.016)
432
- const result = interpolator.getCurrentValues()
433
-
434
- // Should move toward blended target, not jump to 50
435
- expect(result[0]).toBeGreaterThan(0)
436
- expect(result[0]).toBeLessThan(50) // Should be less than the final target due to interpolation
437
- })
438
- })
439
-
440
- it("should provide smooth initialization without jumpiness", () => {
441
- const interpolator = new ValueInterpolator([0], {
442
- tension: 120,
443
- friction: 20,
444
- })
445
-
446
- interpolator.setTarget([10]) // Large target change
447
-
448
- const firstFrameValues: number[] = []
449
-
450
- // Capture values from first few frames
451
- for (let frame = 0; frame < 5; frame++) {
452
- interpolator.update(1 / 60)
453
- firstFrameValues.push(interpolator.getValue(0))
454
- }
455
-
456
- // First frame should not jump too aggressively
457
- expect(firstFrameValues[0]).toBeLessThan(2) // Should start gently
458
- expect(firstFrameValues[0]).toBeGreaterThan(0) // But should move
459
-
460
- // Should show gradual acceleration, not sudden jumps
461
- const firstStep = firstFrameValues[1] - firstFrameValues[0]
462
- const secondStep = firstFrameValues[2] - firstFrameValues[1]
463
-
464
- expect(secondStep).toBeGreaterThanOrEqual(firstStep) // Should accelerate gradually
465
- expect(firstStep).toBeLessThan(1.5) // First step should be modest
466
- })
467
-
468
- it("should work correctly when multiple components use separate interpolators", () => {
469
- // Test the scenario where two components each have their own interpolator
470
- const interpolator1 = new ValueInterpolator([0, 0], {
471
- tension: 120,
472
- friction: 20,
473
- threshold: 0.001,
474
- })
475
-
476
- const interpolator2 = new ValueInterpolator([0, 0], {
477
- tension: 120,
478
- friction: 20,
479
- threshold: 0.001,
480
- })
481
-
482
- // Set different targets for each interpolator
483
- interpolator1.setTarget([5, 10])
484
- interpolator2.setTarget([15, 20])
485
-
486
- // Update both interpolators for several frames
487
- const values1History: number[][] = []
488
- const values2History: number[][] = []
489
-
490
- for (let frame = 0; frame < 30; frame++) {
491
- // More frames for spring physics
492
- interpolator1.update(1 / 60)
493
- interpolator2.update(1 / 60)
494
-
495
- values1History.push([...interpolator1.getCurrentValues()])
496
- values2History.push([...interpolator2.getCurrentValues()])
497
- }
498
-
499
- // Both interpolators should be moving independently
500
- const firstFrame1 = values1History[0]
501
- const lastFrame1 = values1History[values1History.length - 1]
502
- const firstFrame2 = values2History[0]
503
- const lastFrame2 = values2History[values2History.length - 1]
504
-
505
- // Interpolators should be moving independently and at reasonable speed
506
- expect(lastFrame1[0]).toBeGreaterThan(firstFrame1[0])
507
- expect(lastFrame1[1]).toBeGreaterThan(firstFrame1[1])
508
- expect(lastFrame2[0]).toBeGreaterThan(firstFrame2[0])
509
- expect(lastFrame2[1]).toBeGreaterThan(firstFrame2[1])
510
-
511
- // Should make meaningful progress toward targets
512
- expect(lastFrame1[0]).toBeGreaterThan(1) // Should have made progress toward 5
513
- expect(lastFrame1[1]).toBeGreaterThan(2) // Should have made progress toward 10
514
- expect(lastFrame2[0]).toBeGreaterThan(3) // Should have made progress toward 15
515
- expect(lastFrame2[1]).toBeGreaterThan(4) // Should have made progress toward 20
516
-
517
- // The interpolators should be independent - their values should be different
518
- expect(lastFrame1[0]).not.toBeCloseTo(lastFrame2[0], 1)
519
- expect(lastFrame1[1]).not.toBeCloseTo(lastFrame2[1], 1)
520
-
521
- // Clean up
522
- interpolator1.destroy()
523
- interpolator2.destroy()
524
- })
525
-
526
- it("should handle multiple interpolators updating in the same frame correctly", async () => {
527
- // Simulate a more realistic scenario where multiple components
528
- // are updating their interpolators in the same animation frame
529
- const interpolators: ValueInterpolator[] = []
530
- const changeCallCounts: (() => number)[] = []
531
-
532
- // Create multiple interpolators
533
- for (let i = 0; i < 3; i++) {
534
- let callCount = 0
535
- const interpolator = new ValueInterpolator([0], {
536
- onChange: () => {
537
- callCount++
538
- },
539
- })
540
- interpolators.push(interpolator)
541
- changeCallCounts.push(() => callCount) // Store a function to get current count
542
- }
543
-
544
- // Set different targets
545
- interpolators[0].setTarget([10])
546
- interpolators[1].setTarget([20])
547
- interpolators[2].setTarget([30])
548
-
549
- // Simulate a frame where all interpolators update
550
- const simulateFrame = () => {
551
- interpolators.forEach((interpolator) => {
552
- interpolator.update(1 / 60)
553
- })
554
- }
555
-
556
- // Run several frames (more for spring physics)
557
- for (let frame = 0; frame < 40; frame++) {
558
- simulateFrame()
559
- await new Promise((resolve) => setTimeout(resolve, 1))
560
- }
561
-
562
- // Check that all interpolators moved independently
563
- const finalValues = interpolators.map(
564
- (interpolator) => interpolator.getCurrentValues()[0],
565
- )
566
-
567
- expect(finalValues[0]).toBeGreaterThan(1) // Moving toward 10
568
- expect(finalValues[1]).toBeGreaterThan(2) // Moving toward 20
569
- expect(finalValues[2]).toBeGreaterThan(3) // Moving toward 30
570
-
571
- // All should have different values
572
- expect(finalValues[0]).not.toBeCloseTo(finalValues[1], 1)
573
- expect(finalValues[1]).not.toBeCloseTo(finalValues[2], 1)
574
-
575
- // All should have triggered onChange callbacks
576
- changeCallCounts.forEach((getCount, index) => {
577
- expect(getCount()).toBeGreaterThan(0)
578
- })
579
-
580
- // Clean up
581
- interpolators.forEach((interpolator) => {
582
- interpolator.destroy()
583
- })
584
- })
585
-
586
- it("should handle multiple interpolators using auto-interpolation without interference", async () => {
587
- // Test the specific case where multiple interpolators use startAutoInterpolation()
588
- // This tests if requestAnimationFrame handling interferes between interpolators
589
- const interpolator1 = new ValueInterpolator([0], {
590
- tension: 120,
591
- friction: 20,
592
- threshold: 0.001,
593
- })
594
-
595
- const interpolator2 = new ValueInterpolator([0], {
596
- tension: 120,
597
- friction: 20,
598
- threshold: 0.001,
599
- })
600
-
601
- const interpolator3 = new ValueInterpolator([0], {
602
- tension: 120,
603
- friction: 20,
604
- threshold: 0.001,
605
- })
606
-
607
- // Set different targets
608
- interpolator1.setTarget([10])
609
- interpolator2.setTarget([20])
610
- interpolator3.setTarget([30])
611
-
612
- // Start auto-interpolation for all (this uses requestAnimationFrame internally)
613
- interpolator1.startAutoInterpolation()
614
- interpolator2.startAutoInterpolation()
615
- interpolator3.startAutoInterpolation()
616
-
617
- // Wait for automatic interpolation to progress
618
- await new Promise((resolve) => setTimeout(resolve, 500))
619
-
620
- // Check that all interpolators are moving independently
621
- const values1 = interpolator1.getCurrentValues()
622
- const values2 = interpolator2.getCurrentValues()
623
- const values3 = interpolator3.getCurrentValues()
624
-
625
- console.log("Auto-interpolation values:", { values1, values2, values3 })
626
-
627
- // All should have made significant progress toward their targets
628
- expect(values1[0]).toBeGreaterThan(1) // Moving toward 10
629
- expect(values2[0]).toBeGreaterThan(2) // Moving toward 20
630
- expect(values3[0]).toBeGreaterThan(3) // Moving toward 30
631
-
632
- // All should be running their own interpolation
633
- expect(interpolator1.isInterpolating()).toBe(true)
634
- expect(interpolator2.isInterpolating()).toBe(true)
635
- expect(interpolator3.isInterpolating()).toBe(true)
636
-
637
- // Values should be different (independent interpolation)
638
- expect(values1[0]).not.toBeCloseTo(values2[0], 1)
639
- expect(values2[0]).not.toBeCloseTo(values3[0], 1)
640
-
641
- // Clean up
642
- interpolator1.destroy()
643
- interpolator2.destroy()
644
- interpolator3.destroy()
645
- })
646
-
647
- it("should not interfere between manual and auto interpolation modes", async () => {
648
- // Test mixing manual update() calls with auto-interpolation
649
- const manualInterpolator = new ValueInterpolator([0], {
650
- tension: 120,
651
- friction: 20,
652
- threshold: 0.001,
653
- })
654
-
655
- const autoInterpolator = new ValueInterpolator([0], {
656
- tension: 120,
657
- friction: 20,
658
- threshold: 0.001,
659
- })
660
-
661
- // Set targets
662
- manualInterpolator.setTarget([10])
663
- autoInterpolator.setTarget([10])
664
-
665
- // Start auto-interpolation for one
666
- autoInterpolator.startAutoInterpolation()
667
-
668
- // Manual updates for the other
669
- const manualValues: number[] = []
670
- for (let frame = 0; frame < 30; frame++) {
671
- manualInterpolator.update(1 / 60)
672
- manualValues.push(manualInterpolator.getCurrentValues()[0])
673
- await new Promise((resolve) => setTimeout(resolve, 16)) // ~60fps
674
- }
675
-
676
- // Check auto interpolator after same time
677
- const autoValue = autoInterpolator.getCurrentValues()[0]
678
-
679
- console.log(
680
- "Mixed mode - Manual final:",
681
- manualValues[manualValues.length - 1],
682
- "Auto final:",
683
- autoValue,
684
- )
685
-
686
- // Both should have made progress
687
- expect(manualValues[manualValues.length - 1]).toBeGreaterThan(0.5)
688
- expect(autoValue).toBeGreaterThan(0.5)
689
-
690
- // Manual interpolator should not be auto-interpolating
691
- expect(manualInterpolator.isInterpolating()).toBe(false)
692
- expect(autoInterpolator.isInterpolating()).toBe(true)
693
-
694
- // Clean up
695
- manualInterpolator.destroy()
696
- autoInterpolator.destroy()
697
- })
698
-
699
- it("should handle rapid start/stop of auto-interpolation correctly", async () => {
700
- // Test the edge case of rapidly starting and stopping auto-interpolation
701
- const interpolator = new ValueInterpolator([0], {
702
- tension: 120,
703
- friction: 20,
704
- threshold: 0.001,
705
- })
706
-
707
- interpolator.setTarget([10])
708
-
709
- // Rapidly start and stop multiple times
710
- for (let i = 0; i < 5; i++) {
711
- interpolator.startAutoInterpolation()
712
- expect(interpolator.isInterpolating()).toBe(true)
713
-
714
- interpolator.stop()
715
- expect(interpolator.isInterpolating()).toBe(false)
716
-
717
- await new Promise((resolve) => setTimeout(resolve, 10))
718
- }
719
-
720
- // Final start
721
- interpolator.startAutoInterpolation()
722
- await new Promise((resolve) => setTimeout(resolve, 200))
723
-
724
- // Should still be working correctly
725
- const finalValue = interpolator.getCurrentValues()[0]
726
- expect(finalValue).toBeGreaterThan(0.5)
727
- expect(interpolator.isInterpolating()).toBe(true)
728
-
729
- // Clean up
730
- interpolator.destroy()
731
- })
732
-
733
- it("should handle multiple interpolators with rapid requestAnimationFrame setTarget calls", async () => {
734
- // This test simulates the exact pattern used in RobotAnimator:
735
- // useAutorun(() => {
736
- // requestAnimationFrame(() => updateJoints(newJointValues))
737
- // })
738
-
739
- const interpolator1 = new ValueInterpolator([0, 0, 0], {
740
- tension: 120,
741
- friction: 20,
742
- threshold: 0.001,
743
- })
744
-
745
- const interpolator2 = new ValueInterpolator([0, 0, 0], {
746
- tension: 120,
747
- friction: 20,
748
- threshold: 0.001,
749
- })
750
-
751
- const interpolator3 = new ValueInterpolator([0, 0, 0], {
752
- tension: 120,
753
- friction: 20,
754
- threshold: 0.001,
755
- })
756
-
757
- const interpolators = [interpolator1, interpolator2, interpolator3]
758
-
759
- // Simulate the RobotAnimator pattern where multiple components
760
- // schedule setTarget calls via requestAnimationFrame
761
- const targetSets = [
762
- [1, 2, 3],
763
- [4, 5, 6],
764
- [7, 8, 9],
765
- ]
766
-
767
- // Schedule all setTarget calls via requestAnimationFrame (like RobotAnimator does)
768
- targetSets.forEach((targets, index) => {
769
- requestAnimationFrame(() => {
770
- interpolators[index].setTarget(targets)
771
- })
772
- })
773
-
774
- // Wait for requestAnimationFrame calls to execute
775
- await new Promise((resolve) => setTimeout(resolve, 50))
776
-
777
- // Now manually update all interpolators for several frames
778
- for (let frame = 0; frame < 30; frame++) {
779
- interpolators.forEach((interpolator) => {
780
- interpolator.update(1 / 60)
781
- })
782
- await new Promise((resolve) => setTimeout(resolve, 16))
783
- }
784
-
785
- // Check the results
786
- const finalValues = interpolators.map((interpolator) =>
787
- interpolator.getCurrentValues(),
788
- )
789
-
790
- console.log("RAF setTarget pattern results:", finalValues)
791
-
792
- // All should have made progress toward their respective targets
793
- expect(finalValues[0][0]).toBeGreaterThan(0.3) // Moving toward 1
794
- expect(finalValues[1][0]).toBeGreaterThan(1.0) // Moving toward 4
795
- expect(finalValues[2][0]).toBeGreaterThan(2.0) // Moving toward 7
796
-
797
- // Values should be different (no interference)
798
- expect(finalValues[0][0]).not.toBeCloseTo(finalValues[1][0], 0)
799
- expect(finalValues[1][0]).not.toBeCloseTo(finalValues[2][0], 0)
800
-
801
- // Clean up
802
- interpolators.forEach((interpolator) => {
803
- interpolator.destroy()
804
- })
805
- })
806
-
807
- it("should handle simultaneous setTarget calls without target blending interference", () => {
808
- // Test the specific case where setTarget is called on multiple interpolators
809
- // at nearly the same time (which could trigger the target blending bug)
810
-
811
- const interpolator1 = new ValueInterpolator([0], {
812
- tension: 120,
813
- friction: 20,
814
- threshold: 0.001,
815
- })
816
-
817
- const interpolator2 = new ValueInterpolator([0], {
818
- tension: 120,
819
- friction: 20,
820
- threshold: 0.001,
821
- })
822
-
823
- // Call setTarget on both interpolators immediately (same timestamp)
824
- const now = performance.now()
825
- interpolator1.setTarget([10])
826
- interpolator2.setTarget([20])
827
-
828
- // Verify the targets were set correctly (not blended)
829
- expect(interpolator1.getCurrentValues()[0]).toBe(0) // Should start at 0
830
- expect(interpolator2.getCurrentValues()[0]).toBe(0) // Should start at 0
831
-
832
- // Update once and check the direction of movement
833
- interpolator1.update(1 / 60)
834
- interpolator2.update(1 / 60)
835
-
836
- const values1 = interpolator1.getCurrentValues()[0]
837
- const values2 = interpolator2.getCurrentValues()[0]
838
-
839
- console.log("Simultaneous setTarget - Values after 1 frame:", {
840
- values1,
841
- values2,
842
- })
843
-
844
- // Both should be moving in the right direction
845
- expect(values1).toBeGreaterThan(0) // Moving toward 10
846
- expect(values2).toBeGreaterThan(0) // Moving toward 20
847
-
848
- // Interpolator2 should be moving faster (higher target)
849
- expect(values2).toBeGreaterThan(values1)
850
-
851
- // Clean up
852
- interpolator1.destroy()
853
- interpolator2.destroy()
854
- })
855
-
856
- it("should handle multiple interpolators with real requestAnimationFrame without interference", async () => {
857
- // This test uses REAL requestAnimationFrame to simulate actual browser behavior
858
- // Remove mocks temporarily for this test
859
- vi.restoreAllMocks()
860
-
861
- const interpolator1 = new ValueInterpolator([0], {
862
- tension: 120,
863
- friction: 20,
864
- threshold: 0.001,
865
- })
866
-
867
- const interpolator2 = new ValueInterpolator([0], {
868
- tension: 120,
869
- friction: 20,
870
- threshold: 0.001,
871
- })
872
-
873
- const interpolator3 = new ValueInterpolator([0], {
874
- tension: 120,
875
- friction: 20,
876
- threshold: 0.001,
877
- })
878
-
879
- // Set targets
880
- interpolator1.setTarget([10])
881
- interpolator2.setTarget([20])
882
- interpolator3.setTarget([30])
883
-
884
- // Start real auto-interpolation (uses real requestAnimationFrame)
885
- interpolator1.startAutoInterpolation()
886
- interpolator2.startAutoInterpolation()
887
- interpolator3.startAutoInterpolation()
888
-
889
- // Wait for REAL animation frames to process
890
- await new Promise((resolve) => {
891
- let frameCount = 0
892
- const checkProgress = () => {
893
- frameCount++
894
- if (frameCount >= 30) {
895
- // Wait for ~30 real frames
896
- resolve(undefined)
897
- } else {
898
- requestAnimationFrame(checkProgress)
899
- }
900
- }
901
- requestAnimationFrame(checkProgress)
902
- })
903
-
904
- // Check results after real animation frames
905
- const values1 = interpolator1.getCurrentValues()[0]
906
- const values2 = interpolator2.getCurrentValues()[0]
907
- const values3 = interpolator3.getCurrentValues()[0]
908
-
909
- console.log("Real RAF test results:", { values1, values2, values3 })
910
-
911
- // All should have made significant progress
912
- expect(values1).toBeGreaterThan(1)
913
- expect(values2).toBeGreaterThan(2)
914
- expect(values3).toBeGreaterThan(3)
915
-
916
- // Values should be proportional to their targets
917
- expect(values2).toBeGreaterThan(values1 * 1.5) // 20 is 2x 10
918
- expect(values3).toBeGreaterThan(values1 * 2.5) // 30 is 3x 10
919
-
920
- // All should still be interpolating
921
- expect(interpolator1.isInterpolating()).toBe(true)
922
- expect(interpolator2.isInterpolating()).toBe(true)
923
- expect(interpolator3.isInterpolating()).toBe(true)
924
-
925
- // Clean up
926
- interpolator1.destroy()
927
- interpolator2.destroy()
928
- interpolator3.destroy()
929
-
930
- // Restore mocks for other tests
931
- vi.stubGlobal("requestAnimationFrame", (cb: FrameRequestCallback) => {
932
- return setTimeout(cb, 16)
933
- })
934
- vi.stubGlobal("cancelAnimationFrame", (id: number) => {
935
- clearTimeout(id)
936
- })
937
- })
938
-
939
- it("should handle multiple useFrame-like manual updates without interference", async () => {
940
- // Simulate multiple React Three Fiber components using useFrame
941
- const interpolator1 = new ValueInterpolator([0, 0, 0], {
942
- tension: 120,
943
- friction: 20,
944
- threshold: 0.001,
945
- })
946
-
947
- const interpolator2 = new ValueInterpolator([0, 0, 0], {
948
- tension: 120,
949
- friction: 20,
950
- threshold: 0.001,
951
- })
952
-
953
- // Set targets (like RobotAnimator would)
954
- interpolator1.setTarget([1, 2, 3])
955
- interpolator2.setTarget([4, 5, 6])
956
-
957
- // Simulate useFrame callbacks running simultaneously for 500ms
958
- const startTime = performance.now()
959
- let lastTime = startTime
960
-
961
- const runSimulation = () => {
962
- return new Promise<void>((resolve) => {
963
- const frame = () => {
964
- const currentTime = performance.now()
965
- const deltaTime = (currentTime - lastTime) / 1000 // Convert to seconds
966
- lastTime = currentTime
967
-
968
- // Both interpolators update with real delta timing (like useFrame)
969
- interpolator1.update(deltaTime)
970
- interpolator2.update(deltaTime)
971
-
972
- // Continue for 500ms
973
- if (currentTime - startTime < 500) {
974
- requestAnimationFrame(frame)
975
- } else {
976
- resolve()
977
- }
978
- }
979
- requestAnimationFrame(frame)
980
- })
981
- }
982
-
983
- await runSimulation()
984
-
985
- const values1 = interpolator1.getCurrentValues()
986
- const values2 = interpolator2.getCurrentValues()
987
-
988
- console.log("useFrame simulation results:", { values1, values2 })
989
-
990
- // Both should have made good progress
991
- expect(values1[0]).toBeGreaterThan(0.5) // Moving toward 1
992
- expect(values1[1]).toBeGreaterThan(1.0) // Moving toward 2
993
- expect(values1[2]).toBeGreaterThan(1.5) // Moving toward 3
994
-
995
- expect(values2[0]).toBeGreaterThan(2.0) // Moving toward 4
996
- expect(values2[1]).toBeGreaterThan(2.5) // Moving toward 5
997
- expect(values2[2]).toBeGreaterThan(3.0) // Moving toward 6
998
-
999
- // Values should be different (no interference)
1000
- expect(values1[0]).not.toBeCloseTo(values2[0], 0)
1001
- expect(values1[1]).not.toBeCloseTo(values2[1], 0)
1002
-
1003
- // Clean up
1004
- interpolator1.destroy()
1005
- interpolator2.destroy()
1006
- })
1007
-
1008
- it("should handle CartesianJoggingAxisVisualization pattern with multiple components", async () => {
1009
- // This test replicates the exact pattern from CartesianJoggingAxisVisualization
1010
- // where multiple components watch the same MobX observable and call setTarget via RAF
1011
-
1012
- const interpolator1 = new ValueInterpolator([0, 0, 0, 0, 0, 0, 1], {
1013
- tension: 120,
1014
- friction: 20,
1015
- threshold: 0.001,
1016
- })
1017
-
1018
- const interpolator2 = new ValueInterpolator([0, 0, 0, 0, 0, 0, 1], {
1019
- tension: 120,
1020
- friction: 20,
1021
- threshold: 0.001,
1022
- })
1023
-
1024
- const interpolator3 = new ValueInterpolator([0, 0, 0, 0, 0, 0, 1], {
1025
- tension: 120,
1026
- friction: 20,
1027
- threshold: 0.001,
1028
- })
1029
-
1030
- // Simulate poseToArray function results
1031
- const pose1 = [0.1, 0.2, 0.3, 0, 0, 0, 1] // Different poses for each component
1032
- const pose2 = [0.4, 0.5, 0.6, 0, 0, 0, 1]
1033
- const pose3 = [0.7, 0.8, 0.9, 0, 0, 0, 1]
1034
-
1035
- // Simulate the useAutorun pattern where all components respond to the same data change
1036
- // and schedule their setTarget calls via requestAnimationFrame
1037
- const updateFlangePose1 = (newPose: number[]) => {
1038
- interpolator1.setTarget(newPose)
1039
- }
1040
- const updateFlangePose2 = (newPose: number[]) => {
1041
- interpolator2.setTarget(newPose)
1042
- }
1043
- const updateFlangePose3 = (newPose: number[]) => {
1044
- interpolator3.setTarget(newPose)
1045
- }
1046
-
1047
- // All three components react to the same observable change and schedule RAF calls
1048
- requestAnimationFrame(() => updateFlangePose1(pose1))
1049
- requestAnimationFrame(() => updateFlangePose2(pose2))
1050
- requestAnimationFrame(() => updateFlangePose3(pose3))
1051
-
1052
- // Wait for RAF calls to execute
1053
- await new Promise((resolve) => setTimeout(resolve, 32))
1054
-
1055
- // Now simulate useFrame updates for all three interpolators
1056
- for (let frame = 0; frame < 30; frame++) {
1057
- const delta = 1 / 60
1058
- interpolator1.update(delta)
1059
- interpolator2.update(delta)
1060
- interpolator3.update(delta)
1061
- await new Promise((resolve) => setTimeout(resolve, 16))
1062
- }
1063
-
1064
- const values1 = interpolator1.getCurrentValues()
1065
- const values2 = interpolator2.getCurrentValues()
1066
- const values3 = interpolator3.getCurrentValues()
1067
-
1068
- console.log("CartesianJoggingAxisVisualization pattern results:")
1069
- console.log("Component 1:", values1.slice(0, 3))
1070
- console.log("Component 2:", values2.slice(0, 3))
1071
- console.log("Component 3:", values3.slice(0, 3))
1072
-
1073
- // Each interpolator should be moving toward its own target
1074
- expect(values1[0]).toBeCloseTo(0.1, 1) // Should be close to target 0.1
1075
- expect(values1[1]).toBeCloseTo(0.2, 1) // Should be close to target 0.2
1076
- expect(values1[2]).toBeCloseTo(0.3, 1) // Should be close to target 0.3
1077
-
1078
- expect(values2[0]).toBeCloseTo(0.4, 1) // Should be close to target 0.4
1079
- expect(values2[1]).toBeCloseTo(0.5, 1) // Should be close to target 0.5
1080
- expect(values2[2]).toBeCloseTo(0.6, 1) // Should be close to target 0.6
1081
-
1082
- expect(values3[0]).toBeCloseTo(0.7, 1) // Should be close to target 0.7
1083
- expect(values3[1]).toBeCloseTo(0.8, 1) // Should be close to target 0.8
1084
- expect(values3[2]).toBeCloseTo(0.9, 1) // Should be close to target 0.9
1085
-
1086
- // Clean up
1087
- interpolator1.destroy()
1088
- interpolator2.destroy()
1089
- interpolator3.destroy()
1090
- })
1091
-
1092
- it("should handle rapid pose updates like MobX observable changes", async () => {
1093
- // Test the scenario where MobX triggers rapid updates to multiple components
1094
- const interpolator = new ValueInterpolator([0, 0, 0, 0, 0, 0, 1], {
1095
- tension: 120,
1096
- friction: 20,
1097
- threshold: 0.001,
1098
- })
1099
-
1100
- // Simulate rapid pose changes (like rapidlyChangingMotionState.flange_pose)
1101
- const poseSequence = [
1102
- [0.1, 0.1, 0.1, 0, 0, 0, 1],
1103
- [0.11, 0.11, 0.11, 0, 0, 0, 1],
1104
- [0.12, 0.12, 0.12, 0, 0, 0, 1],
1105
- [0.13, 0.13, 0.13, 0, 0, 0, 1],
1106
- [0.15, 0.15, 0.15, 0, 0, 0, 1], // Final target
1107
- ]
1108
-
1109
- // Simulate useAutorun triggering for each pose change with RAF delay
1110
- poseSequence.forEach((pose, index) => {
1111
- setTimeout(() => {
1112
- requestAnimationFrame(() => {
1113
- interpolator.setTarget(pose)
1114
- })
1115
- }, index * 5) // 5ms apart (very rapid)
1116
- })
1117
-
1118
- // Wait for all RAF calls to execute
1119
- await new Promise((resolve) => setTimeout(resolve, 100))
1120
-
1121
- // Run interpolation for a while
1122
- for (let frame = 0; frame < 50; frame++) {
1123
- interpolator.update(1 / 60)
1124
- await new Promise((resolve) => setTimeout(resolve, 16))
1125
- }
1126
-
1127
- const finalValues = interpolator.getCurrentValues()
1128
- console.log("Rapid pose updates result:", finalValues.slice(0, 3))
1129
-
1130
- // Should converge toward the final target [0.15, 0.15, 0.15]
1131
- expect(finalValues[0]).toBeCloseTo(0.15, 1)
1132
- expect(finalValues[1]).toBeCloseTo(0.15, 1)
1133
- expect(finalValues[2]).toBeCloseTo(0.15, 1)
1134
-
1135
- // Clean up
1136
- interpolator.destroy()
1137
- })
1138
- })