@wandelbots/wandelbots-js-react-components 5.4.2 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/dist/3d.cjs +2 -0
  2. package/dist/3d.cjs.map +1 -0
  3. package/dist/3d.js +31 -0
  4. package/dist/3d.js.map +1 -0
  5. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
  6. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
  7. package/dist/components/3d-viewport/PresetEnvironment.cjs +2 -0
  8. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
  9. package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
  10. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -1
  11. package/dist/components/3d-viewport/PresetEnvironment.js +81 -0
  12. package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
  13. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -0
  14. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
  15. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
  16. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
  17. package/dist/components/3d-viewport/SafetyZonesRenderer.js +131 -0
  18. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
  19. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +2 -0
  20. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
  21. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
  22. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -1
  23. package/dist/components/3d-viewport/TrajectoryRenderer.js +31 -0
  24. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
  25. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -0
  26. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
  27. package/dist/components/3d-viewport/collider/ColliderCollection.js +22 -0
  28. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
  29. package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -0
  30. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
  31. package/dist/components/3d-viewport/collider/ColliderElement.js +29 -0
  32. package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
  33. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -0
  34. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
  35. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +19 -0
  36. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
  37. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +2 -0
  38. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
  39. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +43 -0
  40. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
  41. package/dist/components/AppHeader.cjs +2 -0
  42. package/dist/components/AppHeader.cjs.map +1 -0
  43. package/dist/components/AppHeader.d.ts +1 -0
  44. package/dist/components/AppHeader.d.ts.map +1 -1
  45. package/dist/components/AppHeader.js +139 -0
  46. package/dist/components/AppHeader.js.map +1 -0
  47. package/dist/components/ConsoleFilter.cjs +2 -0
  48. package/dist/components/ConsoleFilter.cjs.map +1 -0
  49. package/dist/components/ConsoleFilter.js +13 -0
  50. package/dist/components/ConsoleFilter.js.map +1 -0
  51. package/dist/components/CopyableText.cjs +2 -0
  52. package/dist/components/CopyableText.cjs.map +1 -0
  53. package/dist/components/CopyableText.d.ts +1 -0
  54. package/dist/components/CopyableText.d.ts.map +1 -1
  55. package/dist/components/CopyableText.js +71 -0
  56. package/dist/components/CopyableText.js.map +1 -0
  57. package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
  58. package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -1
  59. package/dist/components/CycleTimer/DefaultVariant.cjs +2 -0
  60. package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
  61. package/dist/components/CycleTimer/DefaultVariant.js +301 -0
  62. package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
  63. package/dist/components/CycleTimer/SmallVariant.cjs +2 -0
  64. package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
  65. package/dist/components/CycleTimer/SmallVariant.js +150 -0
  66. package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
  67. package/dist/components/CycleTimer/index.cjs +2 -0
  68. package/dist/components/CycleTimer/index.cjs.map +1 -0
  69. package/dist/components/CycleTimer/index.d.ts +1 -0
  70. package/dist/components/CycleTimer/index.d.ts.map +1 -1
  71. package/dist/components/CycleTimer/index.js +86 -0
  72. package/dist/components/CycleTimer/index.js.map +1 -0
  73. package/dist/components/CycleTimer/useAnimations.cjs +2 -0
  74. package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
  75. package/dist/components/CycleTimer/useAnimations.js +105 -0
  76. package/dist/components/CycleTimer/useAnimations.js.map +1 -0
  77. package/dist/components/CycleTimer/useTimerLogic.cjs +2 -0
  78. package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
  79. package/dist/components/CycleTimer/useTimerLogic.js +191 -0
  80. package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
  81. package/dist/components/CycleTimer/utils.cjs +2 -0
  82. package/dist/components/CycleTimer/utils.cjs.map +1 -0
  83. package/dist/components/CycleTimer/utils.js +20 -0
  84. package/dist/components/CycleTimer/utils.js.map +1 -0
  85. package/dist/components/CycleTimer.cjs +2 -0
  86. package/dist/components/CycleTimer.cjs.map +1 -0
  87. package/dist/components/CycleTimer.d.ts +1 -0
  88. package/dist/components/CycleTimer.d.ts.map +1 -1
  89. package/dist/components/CycleTimer.js +6 -0
  90. package/dist/components/CycleTimer.js.map +1 -0
  91. package/dist/components/DataGrid.cjs +2 -0
  92. package/dist/components/DataGrid.cjs.map +1 -0
  93. package/dist/components/DataGrid.d.ts +1 -0
  94. package/dist/components/DataGrid.d.ts.map +1 -1
  95. package/dist/components/DataGrid.js +535 -0
  96. package/dist/components/DataGrid.js.map +1 -0
  97. package/dist/components/LoadingCover.cjs +2 -0
  98. package/dist/components/LoadingCover.cjs.map +1 -0
  99. package/dist/components/LoadingCover.d.ts +1 -0
  100. package/dist/components/LoadingCover.d.ts.map +1 -1
  101. package/dist/components/LoadingCover.js +77 -0
  102. package/dist/components/LoadingCover.js.map +1 -0
  103. package/dist/components/LogPanel.cjs +2 -0
  104. package/dist/components/LogPanel.cjs.map +1 -0
  105. package/dist/components/LogPanel.d.ts +1 -0
  106. package/dist/components/LogPanel.d.ts.map +1 -1
  107. package/dist/components/LogPanel.js +34 -0
  108. package/dist/components/LogPanel.js.map +1 -0
  109. package/dist/components/LogStore.cjs +2 -0
  110. package/dist/components/LogStore.cjs.map +1 -0
  111. package/dist/components/LogStore.d.ts +1 -0
  112. package/dist/components/LogStore.d.ts.map +1 -1
  113. package/dist/components/LogStore.js +33 -0
  114. package/dist/components/LogStore.js.map +1 -0
  115. package/dist/components/LogViewer.cjs +2 -0
  116. package/dist/components/LogViewer.cjs.map +1 -0
  117. package/dist/components/LogViewer.d.ts +1 -0
  118. package/dist/components/LogViewer.d.ts.map +1 -1
  119. package/dist/components/LogViewer.js +299 -0
  120. package/dist/components/LogViewer.js.map +1 -0
  121. package/dist/components/ProgramControl.cjs +2 -0
  122. package/dist/components/ProgramControl.cjs.map +1 -0
  123. package/dist/components/ProgramControl.d.ts +1 -0
  124. package/dist/components/ProgramControl.d.ts.map +1 -1
  125. package/dist/components/ProgramControl.js +147 -0
  126. package/dist/components/ProgramControl.js.map +1 -0
  127. package/dist/components/ProgramStateIndicator.cjs +2 -0
  128. package/dist/components/ProgramStateIndicator.cjs.map +1 -0
  129. package/dist/components/ProgramStateIndicator.d.ts +1 -0
  130. package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
  131. package/dist/components/ProgramStateIndicator.js +140 -0
  132. package/dist/components/ProgramStateIndicator.js.map +1 -0
  133. package/dist/components/RobotCard.cjs +2 -0
  134. package/dist/components/RobotCard.cjs.map +1 -0
  135. package/dist/components/RobotCard.d.ts +1 -0
  136. package/dist/components/RobotCard.d.ts.map +1 -1
  137. package/dist/components/RobotCard.js +360 -0
  138. package/dist/components/RobotCard.js.map +1 -0
  139. package/dist/components/RobotListItem.cjs +2 -0
  140. package/dist/components/RobotListItem.cjs.map +1 -0
  141. package/dist/components/RobotListItem.d.ts +1 -0
  142. package/dist/components/RobotListItem.d.ts.map +1 -1
  143. package/dist/components/RobotListItem.js +122 -0
  144. package/dist/components/RobotListItem.js.map +1 -0
  145. package/dist/components/RobotSetupReadinessIndicator.cjs +2 -0
  146. package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
  147. package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
  148. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
  149. package/dist/components/RobotSetupReadinessIndicator.js +122 -0
  150. package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
  151. package/dist/components/SelectableFab.cjs +2 -0
  152. package/dist/components/SelectableFab.cjs.map +1 -0
  153. package/dist/components/SelectableFab.d.ts +1 -1
  154. package/dist/components/SelectableFab.d.ts.map +1 -1
  155. package/dist/components/SelectableFab.js +51 -0
  156. package/dist/components/SelectableFab.js.map +1 -0
  157. package/dist/components/TabBar.cjs +2 -0
  158. package/dist/components/TabBar.cjs.map +1 -0
  159. package/dist/components/TabBar.d.ts +1 -0
  160. package/dist/components/TabBar.d.ts.map +1 -1
  161. package/dist/components/TabBar.js +212 -0
  162. package/dist/components/TabBar.js.map +1 -0
  163. package/dist/components/ThemeSelect.d.ts +1 -1
  164. package/dist/components/ThemeSelect.d.ts.map +1 -1
  165. package/dist/components/Timer/Timer.d.ts +1 -0
  166. package/dist/components/Timer/Timer.d.ts.map +1 -1
  167. package/dist/components/Timer/TimerDefaultVariant.cjs +2 -0
  168. package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
  169. package/dist/components/Timer/TimerDefaultVariant.js +136 -0
  170. package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
  171. package/dist/components/Timer/TimerSmallVariant.cjs +2 -0
  172. package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
  173. package/dist/components/Timer/TimerSmallVariant.js +128 -0
  174. package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
  175. package/dist/components/Timer/index.cjs +2 -0
  176. package/dist/components/Timer/index.cjs.map +1 -0
  177. package/dist/components/Timer/index.d.ts +1 -0
  178. package/dist/components/Timer/index.d.ts.map +1 -1
  179. package/dist/components/Timer/index.js +68 -0
  180. package/dist/components/Timer/index.js.map +1 -0
  181. package/dist/components/Timer/useTimerAnimations.cjs +2 -0
  182. package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
  183. package/dist/components/Timer/useTimerAnimations.js +48 -0
  184. package/dist/components/Timer/useTimerAnimations.js.map +1 -0
  185. package/dist/components/Timer/useTimerLogic.cjs +2 -0
  186. package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
  187. package/dist/components/Timer/useTimerLogic.js +113 -0
  188. package/dist/components/Timer/useTimerLogic.js.map +1 -0
  189. package/dist/components/Timer/utils.cjs +2 -0
  190. package/dist/components/Timer/utils.cjs.map +1 -0
  191. package/dist/components/Timer/utils.js +19 -0
  192. package/dist/components/Timer/utils.js.map +1 -0
  193. package/dist/components/Timer.cjs +2 -0
  194. package/dist/components/Timer.cjs.map +1 -0
  195. package/dist/components/Timer.d.ts +4 -0
  196. package/dist/components/Timer.d.ts.map +1 -0
  197. package/dist/components/Timer.js +6 -0
  198. package/dist/components/Timer.js.map +1 -0
  199. package/dist/components/TransparentOverlay.d.ts +1 -0
  200. package/dist/components/TransparentOverlay.d.ts.map +1 -1
  201. package/dist/components/VelocitySlider.cjs +2 -0
  202. package/dist/components/VelocitySlider.cjs.map +1 -0
  203. package/dist/components/VelocitySlider.d.ts +1 -1
  204. package/dist/components/VelocitySlider.d.ts.map +1 -1
  205. package/dist/components/VelocitySlider.js +97 -0
  206. package/dist/components/VelocitySlider.js.map +1 -0
  207. package/dist/components/experimental/utils/AdornedSelect.cjs +2 -0
  208. package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
  209. package/dist/components/experimental/utils/AdornedSelect.js +35 -0
  210. package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
  211. package/dist/components/jogging/JoggingBlocked.cjs +2 -0
  212. package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
  213. package/dist/components/jogging/JoggingBlocked.js +46 -0
  214. package/dist/components/jogging/JoggingBlocked.js.map +1 -0
  215. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -0
  216. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
  217. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -1
  218. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
  219. package/dist/components/jogging/JoggingCartesianAxisControl.js +186 -0
  220. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
  221. package/dist/components/jogging/JoggingCartesianTab.cjs +2 -0
  222. package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
  223. package/dist/components/jogging/JoggingCartesianTab.js +267 -0
  224. package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
  225. package/dist/components/jogging/JoggingJointLimitDetector.cjs +2 -0
  226. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
  227. package/dist/components/jogging/JoggingJointLimitDetector.js +42 -0
  228. package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
  229. package/dist/components/jogging/JoggingJointTab.cjs +2 -0
  230. package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
  231. package/dist/components/jogging/JoggingJointTab.js +114 -0
  232. package/dist/components/jogging/JoggingJointTab.js.map +1 -0
  233. package/dist/components/jogging/JoggingJointValueControl.cjs +2 -0
  234. package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
  235. package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -1
  236. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
  237. package/dist/components/jogging/JoggingJointValueControl.js +240 -0
  238. package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
  239. package/dist/components/jogging/JoggingOptions.cjs +2 -0
  240. package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
  241. package/dist/components/jogging/JoggingOptions.js +117 -0
  242. package/dist/components/jogging/JoggingOptions.js.map +1 -0
  243. package/dist/components/jogging/JoggingPanel.cjs +2 -0
  244. package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
  245. package/dist/components/jogging/JoggingPanel.d.ts +1 -0
  246. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
  247. package/dist/components/jogging/JoggingPanel.js +121 -0
  248. package/dist/components/jogging/JoggingPanel.js.map +1 -0
  249. package/dist/components/jogging/JoggingStore.cjs +2 -0
  250. package/dist/components/jogging/JoggingStore.cjs.map +1 -0
  251. package/dist/components/jogging/JoggingStore.d.ts +1 -1
  252. package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
  253. package/dist/components/jogging/JoggingStore.js +219 -0
  254. package/dist/components/jogging/JoggingStore.js.map +1 -0
  255. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +2 -0
  256. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
  257. package/dist/components/jogging/JoggingToggleButtonGroup.js +29 -0
  258. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
  259. package/dist/components/jogging/JoggingVelocitySlider.cjs +2 -0
  260. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
  261. package/dist/components/jogging/JoggingVelocitySlider.js +40 -0
  262. package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
  263. package/dist/components/jogging/PoseCartesianValues.cjs +2 -0
  264. package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
  265. package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
  266. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
  267. package/dist/components/jogging/PoseCartesianValues.js +48 -0
  268. package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
  269. package/dist/components/jogging/PoseJointValues.cjs +2 -0
  270. package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
  271. package/dist/components/jogging/PoseJointValues.d.ts +1 -0
  272. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
  273. package/dist/components/jogging/PoseJointValues.js +47 -0
  274. package/dist/components/jogging/PoseJointValues.js.map +1 -0
  275. package/dist/components/modal/NoMotionGroupModal.cjs +2 -0
  276. package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
  277. package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
  278. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -1
  279. package/dist/components/modal/NoMotionGroupModal.js +92 -0
  280. package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
  281. package/dist/components/robots/AxisConfig.cjs +2 -0
  282. package/dist/components/robots/AxisConfig.cjs.map +1 -0
  283. package/dist/components/robots/AxisConfig.js +5 -0
  284. package/dist/components/robots/AxisConfig.js.map +1 -0
  285. package/dist/components/robots/DHLinearAxis.cjs +2 -0
  286. package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
  287. package/dist/components/robots/DHLinearAxis.d.ts +1 -0
  288. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -1
  289. package/dist/components/robots/DHLinearAxis.js +92 -0
  290. package/dist/components/robots/DHLinearAxis.js.map +1 -0
  291. package/dist/components/robots/DHRobot.cjs +2 -0
  292. package/dist/components/robots/DHRobot.cjs.map +1 -0
  293. package/dist/components/robots/DHRobot.d.ts +1 -0
  294. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  295. package/dist/components/robots/DHRobot.js +94 -0
  296. package/dist/components/robots/DHRobot.js.map +1 -0
  297. package/dist/components/robots/GenericRobot.cjs +2 -0
  298. package/dist/components/robots/GenericRobot.cjs.map +1 -0
  299. package/dist/components/robots/GenericRobot.d.ts +1 -0
  300. package/dist/components/robots/GenericRobot.d.ts.map +1 -1
  301. package/dist/components/robots/GenericRobot.js +91 -0
  302. package/dist/components/robots/GenericRobot.js.map +1 -0
  303. package/dist/components/robots/LinearAxis.cjs +2 -0
  304. package/dist/components/robots/LinearAxis.cjs.map +1 -0
  305. package/dist/components/robots/LinearAxis.d.ts +1 -0
  306. package/dist/components/robots/LinearAxis.d.ts.map +1 -1
  307. package/dist/components/robots/LinearAxis.js +42 -0
  308. package/dist/components/robots/LinearAxis.js.map +1 -0
  309. package/dist/components/robots/LinearAxisAnimator.cjs +2 -0
  310. package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
  311. package/dist/components/robots/LinearAxisAnimator.js +66 -0
  312. package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
  313. package/dist/components/robots/MotionGroupVisualizer.cjs +2 -0
  314. package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
  315. package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
  316. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -1
  317. package/dist/components/robots/MotionGroupVisualizer.js +21 -0
  318. package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
  319. package/dist/components/robots/Robot.cjs +2 -0
  320. package/dist/components/robots/Robot.cjs.map +1 -0
  321. package/dist/components/robots/Robot.d.ts +1 -0
  322. package/dist/components/robots/Robot.d.ts.map +1 -1
  323. package/dist/components/robots/Robot.js +31 -0
  324. package/dist/components/robots/Robot.js.map +1 -0
  325. package/dist/components/robots/RobotAnimator.cjs +2 -0
  326. package/dist/components/robots/RobotAnimator.cjs.map +1 -0
  327. package/dist/components/robots/RobotAnimator.js +66 -0
  328. package/dist/components/robots/RobotAnimator.js.map +1 -0
  329. package/dist/components/robots/SupportedLinearAxis.cjs +2 -0
  330. package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
  331. package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
  332. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -1
  333. package/dist/components/robots/SupportedLinearAxis.js +82 -0
  334. package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
  335. package/dist/components/robots/SupportedRobot.cjs +2 -0
  336. package/dist/components/robots/SupportedRobot.cjs.map +1 -0
  337. package/dist/components/robots/SupportedRobot.d.ts +1 -0
  338. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  339. package/dist/components/robots/SupportedRobot.js +82 -0
  340. package/dist/components/robots/SupportedRobot.js.map +1 -0
  341. package/dist/components/robots/ghostStyle.cjs +2 -0
  342. package/dist/components/robots/ghostStyle.cjs.map +1 -0
  343. package/dist/components/robots/ghostStyle.js +40 -0
  344. package/dist/components/robots/ghostStyle.js.map +1 -0
  345. package/dist/components/robots/manufacturerHomePositions.cjs +2 -0
  346. package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
  347. package/dist/components/robots/manufacturerHomePositions.js +51 -0
  348. package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
  349. package/dist/components/robots/robotModelLogic.cjs +2 -0
  350. package/dist/components/robots/robotModelLogic.cjs.map +1 -0
  351. package/dist/components/robots/robotModelLogic.js +61 -0
  352. package/dist/components/robots/robotModelLogic.js.map +1 -0
  353. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -0
  354. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
  355. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
  356. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
  357. package/dist/components/safetyBar/ControllerTypeIndicator.js +71 -0
  358. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
  359. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +2 -0
  360. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
  361. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
  362. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -1
  363. package/dist/components/safetyBar/IndicatorWithExplanation.js +123 -0
  364. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
  365. package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -0
  366. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
  367. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
  368. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
  369. package/dist/components/safetyBar/OperationModeIndicator.js +75 -0
  370. package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
  371. package/dist/components/safetyBar/SafetyBar.cjs +2 -0
  372. package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
  373. package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
  374. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
  375. package/dist/components/safetyBar/SafetyBar.js +66 -0
  376. package/dist/components/safetyBar/SafetyBar.js.map +1 -0
  377. package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -0
  378. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
  379. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
  380. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
  381. package/dist/components/safetyBar/SafetyStateIndicator.js +126 -0
  382. package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
  383. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
  384. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
  385. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
  386. package/dist/components/safetyBar/icons/controller-type-physical.svg.js +11 -0
  387. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
  388. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
  389. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
  390. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
  391. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
  392. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
  393. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
  394. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
  395. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
  396. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
  397. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
  398. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
  399. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
  400. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
  401. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
  402. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
  403. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
  404. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
  405. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
  406. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
  407. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
  408. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
  409. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
  410. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
  411. package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
  412. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
  413. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
  414. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
  415. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
  416. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
  417. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
  418. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
  419. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
  420. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
  421. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
  422. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
  423. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
  424. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
  425. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
  426. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
  427. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
  428. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
  429. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
  430. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
  431. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
  432. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
  433. package/dist/components/utils/converters.cjs +2 -0
  434. package/dist/components/utils/converters.cjs.map +1 -0
  435. package/dist/components/utils/converters.js +40 -0
  436. package/dist/components/utils/converters.js.map +1 -0
  437. package/dist/components/utils/errorHandling.cjs +2 -0
  438. package/dist/components/utils/errorHandling.cjs.map +1 -0
  439. package/dist/components/utils/errorHandling.js +14 -0
  440. package/dist/components/utils/errorHandling.js.map +1 -0
  441. package/dist/components/utils/hooks.cjs +2 -0
  442. package/dist/components/utils/hooks.cjs.map +1 -0
  443. package/dist/components/utils/hooks.js +29 -0
  444. package/dist/components/utils/hooks.js.map +1 -0
  445. package/dist/components/utils/interpolation.cjs +2 -0
  446. package/dist/components/utils/interpolation.cjs.map +1 -0
  447. package/dist/components/utils/interpolation.js +138 -0
  448. package/dist/components/utils/interpolation.js.map +1 -0
  449. package/dist/core.cjs +2 -0
  450. package/dist/core.cjs.map +1 -0
  451. package/dist/core.js +81 -0
  452. package/dist/core.js.map +1 -0
  453. package/dist/externalizeComponent.cjs +2 -0
  454. package/dist/externalizeComponent.cjs.map +1 -0
  455. package/dist/externalizeComponent.js +13 -0
  456. package/dist/externalizeComponent.js.map +1 -0
  457. package/dist/i18n/config.cjs +2 -0
  458. package/dist/i18n/config.cjs.map +1 -0
  459. package/dist/i18n/config.js +25 -0
  460. package/dist/i18n/config.js.map +1 -0
  461. package/dist/i18n/locales/de/translations.json.cjs +3 -0
  462. package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
  463. package/dist/i18n/locales/de/translations.json.js +94 -0
  464. package/dist/i18n/locales/de/translations.json.js.map +1 -0
  465. package/dist/i18n/locales/en/translations.json.cjs +2 -0
  466. package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
  467. package/dist/i18n/locales/en/translations.json.js +94 -0
  468. package/dist/i18n/locales/en/translations.json.js.map +1 -0
  469. package/dist/icons/DropdownArrowIcon.cjs +2 -0
  470. package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
  471. package/dist/icons/DropdownArrowIcon.js +14 -0
  472. package/dist/icons/DropdownArrowIcon.js.map +1 -0
  473. package/dist/icons/axis-x.svg.cjs +2 -0
  474. package/dist/icons/axis-x.svg.cjs.map +1 -0
  475. package/dist/icons/axis-x.svg.d.ts +3 -0
  476. package/dist/icons/axis-x.svg.js +11 -0
  477. package/dist/icons/axis-x.svg.js.map +1 -0
  478. package/dist/icons/axis-y.svg.cjs +2 -0
  479. package/dist/icons/axis-y.svg.cjs.map +1 -0
  480. package/dist/icons/axis-y.svg.d.ts +3 -0
  481. package/dist/icons/axis-y.svg.js +11 -0
  482. package/dist/icons/axis-y.svg.js.map +1 -0
  483. package/dist/icons/axis-z.svg.cjs +2 -0
  484. package/dist/icons/axis-z.svg.cjs.map +1 -0
  485. package/dist/icons/axis-z.svg.d.ts +3 -0
  486. package/dist/icons/axis-z.svg.js +11 -0
  487. package/dist/icons/axis-z.svg.js.map +1 -0
  488. package/dist/icons/home.svg.cjs +2 -0
  489. package/dist/icons/home.svg.cjs.map +1 -0
  490. package/dist/icons/home.svg.d.ts +3 -0
  491. package/dist/icons/home.svg.js +11 -0
  492. package/dist/icons/home.svg.js.map +1 -0
  493. package/dist/icons/jog-minus.svg.cjs +2 -0
  494. package/dist/icons/jog-minus.svg.cjs.map +1 -0
  495. package/dist/icons/jog-minus.svg.d.ts +3 -0
  496. package/dist/icons/jog-minus.svg.js +11 -0
  497. package/dist/icons/jog-minus.svg.js.map +1 -0
  498. package/dist/icons/jog-plus.svg.cjs +2 -0
  499. package/dist/icons/jog-plus.svg.cjs.map +1 -0
  500. package/dist/icons/jog-plus.svg.d.ts +3 -0
  501. package/dist/icons/jog-plus.svg.js +11 -0
  502. package/dist/icons/jog-plus.svg.js.map +1 -0
  503. package/dist/icons/jogging.svg.cjs +2 -0
  504. package/dist/icons/jogging.svg.cjs.map +1 -0
  505. package/dist/icons/jogging.svg.d.ts +3 -0
  506. package/dist/icons/jogging.svg.js +11 -0
  507. package/dist/icons/jogging.svg.js.map +1 -0
  508. package/dist/icons/orientation-coord-system.svg.cjs +2 -0
  509. package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
  510. package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
  511. package/dist/icons/orientation-coord-system.svg.js +11 -0
  512. package/dist/icons/orientation-coord-system.svg.js.map +1 -0
  513. package/dist/icons/orientation-tool.svg.cjs +2 -0
  514. package/dist/icons/orientation-tool.svg.cjs.map +1 -0
  515. package/dist/icons/orientation-tool.svg.d.ts +3 -0
  516. package/dist/icons/orientation-tool.svg.js +11 -0
  517. package/dist/icons/orientation-tool.svg.js.map +1 -0
  518. package/dist/icons/robot.svg.cjs +2 -0
  519. package/dist/icons/robot.svg.cjs.map +1 -0
  520. package/dist/icons/robot.svg.d.ts +3 -0
  521. package/dist/icons/robot.svg.js +11 -0
  522. package/dist/icons/robot.svg.js.map +1 -0
  523. package/dist/icons/rotation.svg.cjs +2 -0
  524. package/dist/icons/rotation.svg.cjs.map +1 -0
  525. package/dist/icons/rotation.svg.d.ts +3 -0
  526. package/dist/icons/rotation.svg.js +11 -0
  527. package/dist/icons/rotation.svg.js.map +1 -0
  528. package/dist/icons/wbLogo.svg.cjs +2 -0
  529. package/dist/icons/wbLogo.svg.cjs.map +1 -0
  530. package/dist/icons/wbLogo.svg.d.ts +3 -0
  531. package/dist/icons/wbLogo.svg.js +11 -0
  532. package/dist/icons/wbLogo.svg.js.map +1 -0
  533. package/dist/index.cjs +2 -0
  534. package/dist/index.cjs.map +1 -0
  535. package/dist/index.js +153 -0
  536. package/dist/index.js.map +1 -0
  537. package/dist/lib/ConnectedMotionGroup.cjs +4 -0
  538. package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
  539. package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
  540. package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -1
  541. package/dist/lib/ConnectedMotionGroup.js +250 -0
  542. package/dist/lib/ConnectedMotionGroup.js.map +1 -0
  543. package/dist/lib/JoggerConnection.cjs +2 -0
  544. package/dist/lib/JoggerConnection.cjs.map +1 -0
  545. package/dist/lib/JoggerConnection.d.ts +1 -0
  546. package/dist/lib/JoggerConnection.d.ts.map +1 -1
  547. package/dist/lib/JoggerConnection.js +342 -0
  548. package/dist/lib/JoggerConnection.js.map +1 -0
  549. package/dist/lib/MotionStreamConnection.cjs +3 -0
  550. package/dist/lib/MotionStreamConnection.cjs.map +1 -0
  551. package/dist/lib/MotionStreamConnection.d.ts +1 -0
  552. package/dist/lib/MotionStreamConnection.d.ts.map +1 -1
  553. package/dist/lib/MotionStreamConnection.js +94 -0
  554. package/dist/lib/MotionStreamConnection.js.map +1 -0
  555. package/dist/lib/motionStateUpdate.cjs +2 -0
  556. package/dist/lib/motionStateUpdate.cjs.map +1 -0
  557. package/dist/lib/motionStateUpdate.js +49 -0
  558. package/dist/lib/motionStateUpdate.js.map +1 -0
  559. package/dist/test/consumer.test.d.ts +2 -0
  560. package/dist/test/consumer.test.d.ts.map +1 -0
  561. package/dist/themes/createDarkTheme.cjs +2 -0
  562. package/dist/themes/createDarkTheme.cjs.map +1 -0
  563. package/dist/themes/createDarkTheme.js +344 -0
  564. package/dist/themes/createDarkTheme.js.map +1 -0
  565. package/dist/themes/createLightTheme.cjs +2 -0
  566. package/dist/themes/createLightTheme.cjs.map +1 -0
  567. package/dist/themes/createLightTheme.js +9 -0
  568. package/dist/themes/createLightTheme.js.map +1 -0
  569. package/dist/themes/theming.cjs +2 -0
  570. package/dist/themes/theming.cjs.map +1 -0
  571. package/dist/themes/theming.js +14 -0
  572. package/dist/themes/theming.js.map +1 -0
  573. package/dist/wb-icons.cjs +2 -0
  574. package/dist/wb-icons.cjs.map +1 -0
  575. package/dist/wb-icons.js +47 -0
  576. package/dist/wb-icons.js.map +1 -0
  577. package/package.json +20 -9
  578. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +2 -0
  579. package/src/components/3d-viewport/PresetEnvironment.tsx +2 -0
  580. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -0
  581. package/src/components/3d-viewport/TrajectoryRenderer.tsx +2 -0
  582. package/src/components/AppHeader.tsx +2 -0
  583. package/src/components/CopyableText.tsx +2 -0
  584. package/src/components/CycleTimer/CycleTimer.ts +2 -0
  585. package/src/components/CycleTimer/index.tsx +2 -0
  586. package/src/components/CycleTimer.tsx +2 -0
  587. package/src/components/DataGrid.tsx +2 -0
  588. package/src/components/LoadingCover.tsx +2 -0
  589. package/src/components/LogPanel.tsx +2 -0
  590. package/src/components/LogStore.ts +2 -0
  591. package/src/components/LogViewer.tsx +2 -0
  592. package/src/components/ProgramControl.tsx +2 -0
  593. package/src/components/ProgramStateIndicator.tsx +2 -0
  594. package/src/components/RobotCard.tsx +2 -0
  595. package/src/components/RobotListItem.tsx +2 -0
  596. package/src/components/RobotSetupReadinessIndicator.tsx +2 -0
  597. package/src/components/SelectableFab.tsx +2 -0
  598. package/src/components/TabBar.tsx +2 -0
  599. package/src/components/ThemeSelect.tsx +2 -0
  600. package/src/components/Timer/Timer.ts +2 -0
  601. package/src/components/Timer/index.tsx +2 -0
  602. package/src/components/Timer.ts +4 -0
  603. package/src/components/TransparentOverlay.tsx +2 -0
  604. package/src/components/VelocitySlider.tsx +2 -0
  605. package/src/components/jogging/JoggingCartesianAxisControl.tsx +2 -0
  606. package/src/components/jogging/JoggingJointValueControl.tsx +2 -0
  607. package/src/components/jogging/JoggingPanel.tsx +2 -0
  608. package/src/components/jogging/JoggingStore.ts +2 -0
  609. package/src/components/jogging/PoseCartesianValues.tsx +2 -0
  610. package/src/components/jogging/PoseJointValues.tsx +2 -0
  611. package/src/components/modal/NoMotionGroupModal.tsx +2 -0
  612. package/src/components/robots/DHLinearAxis.tsx +2 -0
  613. package/src/components/robots/DHRobot.tsx +2 -0
  614. package/src/components/robots/GenericRobot.tsx +2 -0
  615. package/src/components/robots/LinearAxis.tsx +2 -0
  616. package/src/components/robots/MotionGroupVisualizer.tsx +2 -0
  617. package/src/components/robots/Robot.tsx +2 -0
  618. package/src/components/robots/SupportedLinearAxis.tsx +2 -0
  619. package/src/components/robots/SupportedRobot.tsx +2 -0
  620. package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -0
  621. package/src/components/safetyBar/IndicatorWithExplanation.tsx +2 -0
  622. package/src/components/safetyBar/OperationModeIndicator.tsx +2 -0
  623. package/src/components/safetyBar/SafetyBar.tsx +2 -0
  624. package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -0
  625. package/src/lib/ConnectedMotionGroup.ts +2 -0
  626. package/src/lib/JoggerConnection.ts +2 -0
  627. package/src/lib/MotionStreamConnection.ts +2 -0
  628. package/src/test/consumer.test.ts +230 -0
  629. package/dist/3d.cjs.js +0 -2
  630. package/dist/3d.cjs.js.map +0 -1
  631. package/dist/3d.es.js +0 -19
  632. package/dist/3d.es.js.map +0 -1
  633. package/dist/MotionGroupVisualizer-B-e22qXF.cjs +0 -2
  634. package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +0 -1
  635. package/dist/MotionGroupVisualizer-CIASsBC6.js +0 -1433
  636. package/dist/MotionGroupVisualizer-CIASsBC6.js.map +0 -1
  637. package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs +0 -5
  638. package/dist/auth0-spa-js.production.esm-CVEdrQ4-.cjs.map +0 -1
  639. package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js +0 -4217
  640. package/dist/auth0-spa-js.production.esm-Cr9w0sUa.js.map +0 -1
  641. package/dist/core.cjs.js +0 -2
  642. package/dist/core.cjs.js.map +0 -1
  643. package/dist/core.es.js +0 -52
  644. package/dist/core.es.js.map +0 -1
  645. package/dist/index.cjs.js +0 -2
  646. package/dist/index.cjs.js.map +0 -1
  647. package/dist/index.es.js +0 -92
  648. package/dist/index.es.js.map +0 -1
  649. package/dist/interpolation-BIB6FC35.cjs +0 -198
  650. package/dist/interpolation-BIB6FC35.cjs.map +0 -1
  651. package/dist/interpolation-lSTX6ZXZ.js +0 -14559
  652. package/dist/interpolation-lSTX6ZXZ.js.map +0 -1
  653. package/dist/safety-state-stop-ClWLVLMl.cjs +0 -2
  654. package/dist/safety-state-stop-ClWLVLMl.cjs.map +0 -1
  655. package/dist/safety-state-stop-DuMBCxN5.js +0 -91
  656. package/dist/safety-state-stop-DuMBCxN5.js.map +0 -1
  657. package/dist/theming-D_pShDEg.js +0 -32236
  658. package/dist/theming-D_pShDEg.js.map +0 -1
  659. package/dist/theming-L5E8VSae.cjs +0 -84
  660. package/dist/theming-L5E8VSae.cjs.map +0 -1
  661. package/dist/wb-icons.cjs.js +0 -2
  662. package/dist/wb-icons.cjs.js.map +0 -1
  663. package/dist/wb-icons.es.js +0 -27
  664. package/dist/wb-icons.es.js.map +0 -1
  665. package/dist/wbLogo-CObCmqTw.js +0 -31
  666. package/dist/wbLogo-CObCmqTw.js.map +0 -1
  667. package/dist/wbLogo-G_IfZ03l.cjs +0 -2
  668. package/dist/wbLogo-G_IfZ03l.cjs.map +0 -1
@@ -16,4 +16,5 @@ import type { TimerProps } from "./types";
16
16
  export declare const Timer: (({ onTimerReady, autoStart, variant, compact, className, hasError, }: TimerProps) => import("react/jsx-runtime").JSX.Element) & {
17
17
  displayName: string;
18
18
  };
19
+ export default Timer;
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Timer/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,yEASX,UAAU;;CAoEhB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Timer/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,yEASX,UAAU;;CAoEhB,CAAA;AAED,eAAe,KAAK,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { observer as d } from "mobx-react-lite";
3
+ import { useEffect as r } from "react";
4
+ import { externalizeComponent as x } from "../../externalizeComponent.js";
5
+ import { TimerDefaultVariant as E } from "./TimerDefaultVariant.js";
6
+ import { TimerSmallVariant as C } from "./TimerSmallVariant.js";
7
+ import { useTimerAnimations as I } from "./useTimerAnimations.js";
8
+ import { useTimerLogic as P } from "./useTimerLogic.js";
9
+ const k = x(
10
+ d(
11
+ ({
12
+ onTimerReady: i,
13
+ autoStart: s = !0,
14
+ variant: p = "default",
15
+ compact: c = !1,
16
+ className: e,
17
+ hasError: t = !1
18
+ }) => {
19
+ const {
20
+ animationState: o,
21
+ triggerPauseAnimation: A,
22
+ triggerErrorAnimation: T,
23
+ clearErrorAnimation: g,
24
+ setInitialAnimationState: n,
25
+ cleanup: m
26
+ } = I(), { timerState: a, controls: u } = P({
27
+ autoStart: s,
28
+ hasError: t,
29
+ onPauseAnimation: A,
30
+ onErrorAnimation: T,
31
+ onClearErrorAnimation: g
32
+ });
33
+ return r(() => {
34
+ n();
35
+ }, [n]), r(() => {
36
+ let f = !0;
37
+ const S = setTimeout(() => {
38
+ f && i(u);
39
+ }, 0);
40
+ return () => {
41
+ f = !1, clearTimeout(S);
42
+ };
43
+ }, [i, u]), r(() => m, [m]), p === "small" ? /* @__PURE__ */ l(
44
+ C,
45
+ {
46
+ timerState: a,
47
+ animationState: o,
48
+ hasError: t,
49
+ compact: c,
50
+ className: e
51
+ }
52
+ ) : /* @__PURE__ */ l(
53
+ E,
54
+ {
55
+ timerState: a,
56
+ animationState: o,
57
+ hasError: t,
58
+ className: e
59
+ }
60
+ );
61
+ }
62
+ )
63
+ );
64
+ export {
65
+ k as Timer,
66
+ k as default
67
+ };
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Timer/index.tsx"],"sourcesContent":["import { observer } from \"mobx-react-lite\"\nimport { useEffect } from \"react\"\nimport { externalizeComponent } from \"../../externalizeComponent\"\nimport { TimerDefaultVariant } from \"./TimerDefaultVariant\"\nimport { TimerSmallVariant } from \"./TimerSmallVariant\"\nimport type { TimerProps } from \"./types\"\nimport { useTimerAnimations } from \"./useTimerAnimations\"\nimport { useTimerLogic } from \"./useTimerLogic\"\n\n/**\n * A simple count-up timer component with visual progress indication\n *\n * Features:\n * - Count-up timer that tracks elapsed time\n * - Visual progress gauge that cycles every minute\n * - Two display variants: large circular gauge (default) or small icon with text\n * - Full timer control: start, pause, resume, reset functionality\n * - Support for starting with elapsed time (resume mid-session)\n * - Error state support: pauses timer and shows error styling\n * - Smooth progress animations with spring physics\n * - Fully localized with i18next\n * - Material-UI theming integration\n */\nexport const Timer = externalizeComponent(\n observer(\n ({\n onTimerReady,\n autoStart = true,\n variant = \"default\",\n compact = false,\n className,\n hasError = false,\n }: TimerProps) => {\n // Initialize animation hooks\n const {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n setInitialAnimationState,\n cleanup,\n } = useTimerAnimations()\n\n // Initialize timer logic\n const { timerState, controls } = useTimerLogic({\n autoStart,\n hasError,\n onPauseAnimation: triggerPauseAnimation,\n onErrorAnimation: triggerErrorAnimation,\n onClearErrorAnimation: clearErrorAnimation,\n })\n\n // Set initial animation state\n useEffect(() => {\n setInitialAnimationState()\n }, [setInitialAnimationState])\n\n // Provide controls to parent component\n useEffect(() => {\n let isMounted = true\n const timeoutId = setTimeout(() => {\n if (isMounted) {\n onTimerReady(controls)\n }\n }, 0)\n\n return () => {\n isMounted = false\n clearTimeout(timeoutId)\n }\n }, [onTimerReady, controls])\n\n // Cleanup on unmount\n useEffect(() => {\n return cleanup\n }, [cleanup])\n\n // Render appropriate variant\n if (variant === \"small\") {\n return (\n <TimerSmallVariant\n timerState={timerState}\n animationState={animationState}\n hasError={hasError}\n compact={compact}\n className={className}\n />\n )\n }\n\n return (\n <TimerDefaultVariant\n timerState={timerState}\n animationState={animationState}\n hasError={hasError}\n className={className}\n />\n )\n },\n ),\n)\n\nexport default Timer\n"],"names":["Timer","externalizeComponent","observer","onTimerReady","autoStart","variant","compact","className","hasError","animationState","triggerPauseAnimation","triggerErrorAnimation","clearErrorAnimation","setInitialAnimationState","cleanup","useTimerAnimations","timerState","controls","useTimerLogic","useEffect","isMounted","timeoutId","jsx","TimerSmallVariant","TimerDefaultVariant"],"mappings":";;;;;;;;AAuBO,MAAMA,IAAQC;AAAA,EACnBC;AAAA,IACE,CAAC;AAAA,MACC,cAAAC;AAAA,MACA,WAAAC,IAAY;AAAA,MACZ,SAAAC,IAAU;AAAA,MACV,SAAAC,IAAU;AAAA,MACV,WAAAC;AAAA,MACA,UAAAC,IAAW;AAAA,IAAA,MACK;AAEhB,YAAM;AAAA,QACJ,gBAAAC;AAAA,QACA,uBAAAC;AAAA,QACA,uBAAAC;AAAA,QACA,qBAAAC;AAAA,QACA,0BAAAC;AAAA,QACA,SAAAC;AAAA,MAAA,IACEC,EAAA,GAGE,EAAE,YAAAC,GAAY,UAAAC,EAAA,IAAaC,EAAc;AAAA,QAC7C,WAAAd;AAAA,QACA,UAAAI;AAAA,QACA,kBAAkBE;AAAA,QAClB,kBAAkBC;AAAA,QAClB,uBAAuBC;AAAA,MAAA,CACxB;AA4BD,aAzBAO,EAAU,MAAM;AACd,QAAAN,EAAA;AAAA,MACF,GAAG,CAACA,CAAwB,CAAC,GAG7BM,EAAU,MAAM;AACd,YAAIC,IAAY;AAChB,cAAMC,IAAY,WAAW,MAAM;AACjC,UAAID,KACFjB,EAAac,CAAQ;AAAA,QAEzB,GAAG,CAAC;AAEJ,eAAO,MAAM;AACX,UAAAG,IAAY,IACZ,aAAaC,CAAS;AAAA,QACxB;AAAA,MACF,GAAG,CAAClB,GAAcc,CAAQ,CAAC,GAG3BE,EAAU,MACDL,GACN,CAACA,CAAO,CAAC,GAGRT,MAAY,UAEZ,gBAAAiB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,YAAAP;AAAA,UACA,gBAAAP;AAAA,UACA,UAAAD;AAAA,UACA,SAAAF;AAAA,UACA,WAAAC;AAAA,QAAA;AAAA,MAAA,IAMJ,gBAAAe;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,YAAAR;AAAA,UACA,gBAAAP;AAAA,UACA,UAAAD;AAAA,UACA,WAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),T=()=>{const[o,r]=t.useState({showPauseAnimation:!1,showErrorAnimation:!1,showMainText:!0}),i=t.useRef(null),n=t.useRef(null),a=t.useRef(null),u=t.useCallback(()=>{r(e=>({...e,showPauseAnimation:!0})),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r(e=>({...e,showPauseAnimation:!1}))},800)},[]),s=t.useCallback(()=>{r(e=>({...e,showErrorAnimation:!0})),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{r(e=>({...e,showErrorAnimation:!1}))},600)},[]),c=t.useCallback(()=>{r(e=>({...e,showErrorAnimation:!1})),n.current&&clearTimeout(n.current)},[]),l=t.useCallback(()=>{r(e=>({...e,showMainText:!1})),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{r(e=>({...e,showMainText:!0}))},200)},[]),m=t.useCallback(()=>{r(e=>({...e,showMainText:!0}))},[]),f=t.useCallback(()=>{i.current&&clearTimeout(i.current),n.current&&clearTimeout(n.current),a.current&&clearTimeout(a.current)},[]);return{animationState:o,triggerPauseAnimation:u,triggerErrorAnimation:s,clearErrorAnimation:c,triggerFadeTransition:l,setInitialAnimationState:m,cleanup:f}};exports.useTimerAnimations=T;
2
+ //# sourceMappingURL=useTimerAnimations.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTimerAnimations.cjs","sources":["../../../src/components/Timer/useTimerAnimations.ts"],"sourcesContent":["import { useCallback, useRef, useState } from \"react\"\nimport type { TimerAnimationState } from \"./types\"\n\nexport const useTimerAnimations = () => {\n const [animationState, setAnimationState] = useState<TimerAnimationState>({\n showPauseAnimation: false,\n showErrorAnimation: false,\n showMainText: true,\n })\n\n // Refs for managing timeouts\n const pauseAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const errorAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const fadeTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const triggerPauseAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: true }))\n\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n\n pauseAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: false }))\n }, 800)\n }, [])\n\n const triggerErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: true }))\n\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n\n errorAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n }, 600)\n }, [])\n\n const clearErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n }, [])\n\n const triggerFadeTransition = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: false,\n }))\n\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n\n fadeTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, 200)\n }, [])\n\n const setInitialAnimationState = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, [])\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n }, [])\n\n return {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n triggerFadeTransition,\n setInitialAnimationState,\n cleanup,\n }\n}\n"],"names":["useTimerAnimations","animationState","setAnimationState","useState","pauseAnimationTimeoutRef","useRef","errorAnimationTimeoutRef","fadeTimeoutRef","triggerPauseAnimation","useCallback","prev","triggerErrorAnimation","clearErrorAnimation","triggerFadeTransition","setInitialAnimationState","cleanup"],"mappings":"yGAGaA,EAAqB,IAAM,CACtC,KAAM,CAACC,EAAgBC,CAAiB,EAAIC,WAA8B,CACxE,mBAAoB,GACpB,mBAAoB,GACpB,aAAc,EAAA,CACf,EAGKC,EAA2BC,EAAAA,OAA8B,IAAI,EAC7DC,EAA2BD,EAAAA,OAA8B,IAAI,EAC7DE,EAAiBF,EAAAA,OAA8B,IAAI,EAEnDG,EAAwBC,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAO,EAE/DN,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAG/CA,EAAyB,QAAU,WAAW,IAAM,CAClDF,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,CACtE,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECC,EAAwBF,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAO,EAE/DJ,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAG/CA,EAAyB,QAAU,WAAW,IAAM,CAClDJ,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,CACtE,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECE,EAAsBH,EAAAA,YAAY,IAAM,CAC5CP,EAAmBQ,IAAU,CAAE,GAAGA,EAAM,mBAAoB,IAAQ,EAChEJ,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,CAEjD,EAAG,CAAA,CAAE,EAECO,EAAwBJ,EAAAA,YAAY,IAAM,CAC9CP,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,EAEEH,EAAe,SACjB,aAAaA,EAAe,OAAO,EAGrCA,EAAe,QAAU,WAAW,IAAM,CACxCL,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,CACJ,EAAG,GAAG,CACR,EAAG,CAAA,CAAE,EAECI,EAA2BL,EAAAA,YAAY,IAAM,CACjDP,EAAmBQ,IAAU,CAC3B,GAAGA,EACH,aAAc,EAAA,EACd,CACJ,EAAG,CAAA,CAAE,EAGCK,EAAUN,EAAAA,YAAY,IAAM,CAC5BL,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAE3CE,EAAyB,SAC3B,aAAaA,EAAyB,OAAO,EAE3CC,EAAe,SACjB,aAAaA,EAAe,OAAO,CAEvC,EAAG,CAAA,CAAE,EAEL,MAAO,CACL,eAAAN,EACA,sBAAAO,EACA,sBAAAG,EACA,oBAAAC,EACA,sBAAAC,EACA,yBAAAC,EACA,QAAAC,CAAA,CAEJ"}
@@ -0,0 +1,48 @@
1
+ import { useState as A, useRef as a, useCallback as n } from "react";
2
+ const w = () => {
3
+ const [u, e] = A({
4
+ showPauseAnimation: !1,
5
+ showErrorAnimation: !1,
6
+ showMainText: !0
7
+ }), i = a(null), r = a(null), o = a(null), s = n(() => {
8
+ e((t) => ({ ...t, showPauseAnimation: !0 })), i.current && clearTimeout(i.current), i.current = setTimeout(() => {
9
+ e((t) => ({ ...t, showPauseAnimation: !1 }));
10
+ }, 800);
11
+ }, []), c = n(() => {
12
+ e((t) => ({ ...t, showErrorAnimation: !0 })), r.current && clearTimeout(r.current), r.current = setTimeout(() => {
13
+ e((t) => ({ ...t, showErrorAnimation: !1 }));
14
+ }, 600);
15
+ }, []), m = n(() => {
16
+ e((t) => ({ ...t, showErrorAnimation: !1 })), r.current && clearTimeout(r.current);
17
+ }, []), l = n(() => {
18
+ e((t) => ({
19
+ ...t,
20
+ showMainText: !1
21
+ })), o.current && clearTimeout(o.current), o.current = setTimeout(() => {
22
+ e((t) => ({
23
+ ...t,
24
+ showMainText: !0
25
+ }));
26
+ }, 200);
27
+ }, []), f = n(() => {
28
+ e((t) => ({
29
+ ...t,
30
+ showMainText: !0
31
+ }));
32
+ }, []), T = n(() => {
33
+ i.current && clearTimeout(i.current), r.current && clearTimeout(r.current), o.current && clearTimeout(o.current);
34
+ }, []);
35
+ return {
36
+ animationState: u,
37
+ triggerPauseAnimation: s,
38
+ triggerErrorAnimation: c,
39
+ clearErrorAnimation: m,
40
+ triggerFadeTransition: l,
41
+ setInitialAnimationState: f,
42
+ cleanup: T
43
+ };
44
+ };
45
+ export {
46
+ w as useTimerAnimations
47
+ };
48
+ //# sourceMappingURL=useTimerAnimations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTimerAnimations.js","sources":["../../../src/components/Timer/useTimerAnimations.ts"],"sourcesContent":["import { useCallback, useRef, useState } from \"react\"\nimport type { TimerAnimationState } from \"./types\"\n\nexport const useTimerAnimations = () => {\n const [animationState, setAnimationState] = useState<TimerAnimationState>({\n showPauseAnimation: false,\n showErrorAnimation: false,\n showMainText: true,\n })\n\n // Refs for managing timeouts\n const pauseAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const errorAnimationTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const fadeTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const triggerPauseAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: true }))\n\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n\n pauseAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showPauseAnimation: false }))\n }, 800)\n }, [])\n\n const triggerErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: true }))\n\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n\n errorAnimationTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n }, 600)\n }, [])\n\n const clearErrorAnimation = useCallback(() => {\n setAnimationState((prev) => ({ ...prev, showErrorAnimation: false }))\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n }, [])\n\n const triggerFadeTransition = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: false,\n }))\n\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n\n fadeTimeoutRef.current = setTimeout(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, 200)\n }, [])\n\n const setInitialAnimationState = useCallback(() => {\n setAnimationState((prev) => ({\n ...prev,\n showMainText: true,\n }))\n }, [])\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (pauseAnimationTimeoutRef.current) {\n clearTimeout(pauseAnimationTimeoutRef.current)\n }\n if (errorAnimationTimeoutRef.current) {\n clearTimeout(errorAnimationTimeoutRef.current)\n }\n if (fadeTimeoutRef.current) {\n clearTimeout(fadeTimeoutRef.current)\n }\n }, [])\n\n return {\n animationState,\n triggerPauseAnimation,\n triggerErrorAnimation,\n clearErrorAnimation,\n triggerFadeTransition,\n setInitialAnimationState,\n cleanup,\n }\n}\n"],"names":["useTimerAnimations","animationState","setAnimationState","useState","pauseAnimationTimeoutRef","useRef","errorAnimationTimeoutRef","fadeTimeoutRef","triggerPauseAnimation","useCallback","prev","triggerErrorAnimation","clearErrorAnimation","triggerFadeTransition","setInitialAnimationState","cleanup"],"mappings":";AAGO,MAAMA,IAAqB,MAAM;AACtC,QAAM,CAACC,GAAgBC,CAAiB,IAAIC,EAA8B;AAAA,IACxE,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,cAAc;AAAA,EAAA,CACf,GAGKC,IAA2BC,EAA8B,IAAI,GAC7DC,IAA2BD,EAA8B,IAAI,GAC7DE,IAAiBF,EAA8B,IAAI,GAEnDG,IAAwBC,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAO,GAE/DN,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAG/CA,EAAyB,UAAU,WAAW,MAAM;AAClD,MAAAF,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ;AAAA,IACtE,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECC,IAAwBF,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAO,GAE/DJ,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAG/CA,EAAyB,UAAU,WAAW,MAAM;AAClD,MAAAJ,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ;AAAA,IACtE,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECE,IAAsBH,EAAY,MAAM;AAC5C,IAAAP,EAAkB,CAACQ,OAAU,EAAE,GAAGA,GAAM,oBAAoB,KAAQ,GAChEJ,EAAyB,WAC3B,aAAaA,EAAyB,OAAO;AAAA,EAEjD,GAAG,CAAA,CAAE,GAECO,IAAwBJ,EAAY,MAAM;AAC9C,IAAAP,EAAkB,CAACQ,OAAU;AAAA,MAC3B,GAAGA;AAAA,MACH,cAAc;AAAA,IAAA,EACd,GAEEH,EAAe,WACjB,aAAaA,EAAe,OAAO,GAGrCA,EAAe,UAAU,WAAW,MAAM;AACxC,MAAAL,EAAkB,CAACQ,OAAU;AAAA,QAC3B,GAAGA;AAAA,QACH,cAAc;AAAA,MAAA,EACd;AAAA,IACJ,GAAG,GAAG;AAAA,EACR,GAAG,CAAA,CAAE,GAECI,IAA2BL,EAAY,MAAM;AACjD,IAAAP,EAAkB,CAACQ,OAAU;AAAA,MAC3B,GAAGA;AAAA,MACH,cAAc;AAAA,IAAA,EACd;AAAA,EACJ,GAAG,CAAA,CAAE,GAGCK,IAAUN,EAAY,MAAM;AAChC,IAAIL,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAE3CE,EAAyB,WAC3B,aAAaA,EAAyB,OAAO,GAE3CC,EAAe,WACjB,aAAaA,EAAe,OAAO;AAAA,EAEvC,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL,gBAAAN;AAAA,IACA,uBAAAO;AAAA,IACA,uBAAAG;AAAA,IACA,qBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,SAAAC;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),F=require("../utils/interpolation.cjs"),q=({autoStart:R,hasError:d,onPauseAnimation:p,onErrorAnimation:P,onClearErrorAnimation:T})=>{const[n,s]=t.useState({elapsedTime:0,isRunning:!1,isPausedState:!1,currentProgress:0,wasRunningBeforeError:!1}),u=t.useRef(null),a=t.useRef(null),c=t.useRef(0),f=t.useRef(0),[i]=F.useInterpolation([0],{tension:80,friction:18,onChange:([e])=>{s(r=>({...r,currentProgress:e}))}}),w=t.useCallback((e=0)=>{const r=e/60%1*100;s(o=>({...o,elapsedTime:e,isPausedState:!1,currentProgress:r})),c.current=0,f.current=r,i.setImmediate([r]),R?(a.current=Date.now()-e*1e3,s(o=>({...o,isRunning:!0}))):a.current=null},[R,i]),g=t.useCallback(()=>{if(a.current&&n.isRunning){const r=(Date.now()-a.current)/1e3+c.current,o=r/60%1*100;i.setTarget([o]),s(l=>({...l,elapsedTime:Math.floor(r)}))}s(e=>({...e,isRunning:!1,isPausedState:!0})),p()},[n.isRunning,i,p]),m=t.useCallback(()=>{n.isPausedState&&(c.current=n.elapsedTime,a.current=Date.now(),s(e=>({...e,isRunning:!0,isPausedState:!1})))},[n.isPausedState,n.elapsedTime]),S=t.useCallback(()=>{s(e=>({...e,elapsedTime:0,isRunning:!1,isPausedState:!1,currentProgress:0})),c.current=0,a.current=null,f.current=0,i.setImmediate([0])},[i]),b=t.useCallback(()=>n.isPausedState,[n.isPausedState]);return t.useEffect(()=>{d?(n.isRunning&&(s(e=>({...e,wasRunningBeforeError:!0})),g()),P()):(n.wasRunningBeforeError&&!n.isRunning&&(s(e=>({...e,wasRunningBeforeError:!1})),m()),T())},[d,n.isRunning,n.wasRunningBeforeError,g,m,P,T]),t.useEffect(()=>{if(n.isRunning){const e=()=>{if(a.current){const o=(Date.now()-a.current)/1e3+c.current,l=o/60%1*100;s(E=>({...E,elapsedTime:Math.floor(o)})),Math.abs(l-f.current)>.1&&(i.setTarget([l]),f.current=l)}u.current=requestAnimationFrame(e)};u.current=requestAnimationFrame(e)}else u.current&&(cancelAnimationFrame(u.current),u.current=null);return()=>{u.current&&(cancelAnimationFrame(u.current),u.current=null)}},[n.isRunning,i]),t.useEffect(()=>{let e=null;const r=()=>{i.update(),e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>{e&&cancelAnimationFrame(e)}},[i]),{timerState:n,controls:{start:w,pause:g,resume:m,reset:S,isPaused:b}}};exports.useTimerLogic=q;
2
+ //# sourceMappingURL=useTimerLogic.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTimerLogic.cjs","sources":["../../../src/components/Timer/useTimerLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useInterpolation } from \"../utils/interpolation\"\nimport type { TimerState } from \"./types\"\n\ninterface UseTimerLogicProps {\n autoStart: boolean\n hasError: boolean\n onPauseAnimation: () => void\n onErrorAnimation: () => void\n onClearErrorAnimation: () => void\n}\n\nexport const useTimerLogic = ({\n autoStart,\n hasError,\n onPauseAnimation,\n onErrorAnimation,\n onClearErrorAnimation,\n}: UseTimerLogicProps) => {\n const [timerState, setTimerState] = useState<TimerState>({\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n wasRunningBeforeError: false,\n })\n\n // Timer-related refs\n const animationRef = useRef<number | null>(null)\n const startTimeRef = useRef<number | null>(null)\n const pausedTimeRef = useRef<number>(0)\n const lastProgressRef = useRef<number>(0)\n\n // Spring-based interpolator for smooth gauge progress animations\n const [progressInterpolator] = useInterpolation([0], {\n tension: 80,\n friction: 18,\n onChange: ([progress]) => {\n setTimerState((prev) => ({ ...prev, currentProgress: progress }))\n },\n })\n\n const start = useCallback(\n (elapsedSeconds: number = 0) => {\n const initialProgress = ((elapsedSeconds / 60) % 1) * 100\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: elapsedSeconds,\n isPausedState: false,\n currentProgress: initialProgress,\n }))\n pausedTimeRef.current = 0\n lastProgressRef.current = initialProgress\n\n progressInterpolator.setImmediate([initialProgress])\n\n if (autoStart) {\n startTimeRef.current = Date.now() - elapsedSeconds * 1000\n setTimerState((prev) => ({ ...prev, isRunning: true }))\n } else {\n startTimeRef.current = null\n }\n },\n [autoStart, progressInterpolator],\n )\n\n const pause = useCallback(() => {\n if (startTimeRef.current && timerState.isRunning) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n progressInterpolator.setTarget([currentProgress])\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n }\n\n setTimerState((prev) => ({\n ...prev,\n isRunning: false,\n isPausedState: true,\n }))\n onPauseAnimation()\n }, [timerState.isRunning, progressInterpolator, onPauseAnimation])\n\n const resume = useCallback(() => {\n if (timerState.isPausedState) {\n pausedTimeRef.current = timerState.elapsedTime\n startTimeRef.current = Date.now()\n setTimerState((prev) => ({\n ...prev,\n isRunning: true,\n isPausedState: false,\n }))\n }\n }, [timerState.isPausedState, timerState.elapsedTime])\n\n const reset = useCallback(() => {\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n }))\n pausedTimeRef.current = 0\n startTimeRef.current = null\n lastProgressRef.current = 0\n progressInterpolator.setImmediate([0])\n }, [progressInterpolator])\n\n const isPaused = useCallback(() => {\n return timerState.isPausedState\n }, [timerState.isPausedState])\n\n // Handle error state changes\n useEffect(() => {\n if (hasError) {\n if (timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: true }))\n pause()\n }\n onErrorAnimation()\n } else {\n if (timerState.wasRunningBeforeError && !timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: false }))\n resume()\n }\n onClearErrorAnimation()\n }\n }, [\n hasError,\n timerState.isRunning,\n timerState.wasRunningBeforeError,\n pause,\n resume,\n onErrorAnimation,\n onClearErrorAnimation,\n ])\n\n // Main timer loop\n useEffect(() => {\n if (timerState.isRunning) {\n const updateTimer = () => {\n if (startTimeRef.current) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n\n // Only update progress interpolator if progress changed significantly\n const progressDiff = Math.abs(\n currentProgress - lastProgressRef.current,\n )\n if (progressDiff > 0.1) {\n progressInterpolator.setTarget([currentProgress])\n lastProgressRef.current = currentProgress\n }\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n } else {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n }, [timerState.isRunning, progressInterpolator])\n\n // Interpolation animation loop\n useEffect(() => {\n let interpolationAnimationId: number | null = null\n\n const animateInterpolation = () => {\n progressInterpolator.update()\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n }\n\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n\n return () => {\n if (interpolationAnimationId) {\n cancelAnimationFrame(interpolationAnimationId)\n }\n }\n }, [progressInterpolator])\n\n return {\n timerState,\n controls: {\n start,\n pause,\n resume,\n reset,\n isPaused,\n },\n }\n}\n"],"names":["useTimerLogic","autoStart","hasError","onPauseAnimation","onErrorAnimation","onClearErrorAnimation","timerState","setTimerState","useState","animationRef","useRef","startTimeRef","pausedTimeRef","lastProgressRef","progressInterpolator","useInterpolation","progress","prev","start","useCallback","elapsedSeconds","initialProgress","pause","totalElapsed","currentProgress","resume","reset","isPaused","useEffect","updateTimer","interpolationAnimationId","animateInterpolation"],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { useState as B, useRef as m, useCallback as l, useEffect as d } from "react";
2
+ import { useInterpolation as E } from "../utils/interpolation.js";
3
+ const b = ({
4
+ autoStart: p,
5
+ hasError: P,
6
+ onPauseAnimation: T,
7
+ onErrorAnimation: w,
8
+ onClearErrorAnimation: S
9
+ }) => {
10
+ const [n, t] = B({
11
+ elapsedTime: 0,
12
+ isRunning: !1,
13
+ isPausedState: !1,
14
+ currentProgress: 0,
15
+ wasRunningBeforeError: !1
16
+ }), i = m(null), a = m(null), o = m(0), f = m(0), [s] = E([0], {
17
+ tension: 80,
18
+ friction: 18,
19
+ onChange: ([e]) => {
20
+ t((r) => ({ ...r, currentProgress: e }));
21
+ }
22
+ }), F = l(
23
+ (e = 0) => {
24
+ const r = e / 60 % 1 * 100;
25
+ t((u) => ({
26
+ ...u,
27
+ elapsedTime: e,
28
+ isPausedState: !1,
29
+ currentProgress: r
30
+ })), o.current = 0, f.current = r, s.setImmediate([r]), p ? (a.current = Date.now() - e * 1e3, t((u) => ({ ...u, isRunning: !0 }))) : a.current = null;
31
+ },
32
+ [p, s]
33
+ ), g = l(() => {
34
+ if (a.current && n.isRunning) {
35
+ const r = (Date.now() - a.current) / 1e3 + o.current, u = r / 60 % 1 * 100;
36
+ s.setTarget([u]), t((c) => ({
37
+ ...c,
38
+ elapsedTime: Math.floor(r)
39
+ }));
40
+ }
41
+ t((e) => ({
42
+ ...e,
43
+ isRunning: !1,
44
+ isPausedState: !0
45
+ })), T();
46
+ }, [n.isRunning, s, T]), R = l(() => {
47
+ n.isPausedState && (o.current = n.elapsedTime, a.current = Date.now(), t((e) => ({
48
+ ...e,
49
+ isRunning: !0,
50
+ isPausedState: !1
51
+ })));
52
+ }, [n.isPausedState, n.elapsedTime]), D = l(() => {
53
+ t((e) => ({
54
+ ...e,
55
+ elapsedTime: 0,
56
+ isRunning: !1,
57
+ isPausedState: !1,
58
+ currentProgress: 0
59
+ })), o.current = 0, a.current = null, f.current = 0, s.setImmediate([0]);
60
+ }, [s]), I = l(() => n.isPausedState, [n.isPausedState]);
61
+ return d(() => {
62
+ P ? (n.isRunning && (t((e) => ({ ...e, wasRunningBeforeError: !0 })), g()), w()) : (n.wasRunningBeforeError && !n.isRunning && (t((e) => ({ ...e, wasRunningBeforeError: !1 })), R()), S());
63
+ }, [
64
+ P,
65
+ n.isRunning,
66
+ n.wasRunningBeforeError,
67
+ g,
68
+ R,
69
+ w,
70
+ S
71
+ ]), d(() => {
72
+ if (n.isRunning) {
73
+ const e = () => {
74
+ if (a.current) {
75
+ const u = (Date.now() - a.current) / 1e3 + o.current, c = u / 60 % 1 * 100;
76
+ t((A) => ({
77
+ ...A,
78
+ elapsedTime: Math.floor(u)
79
+ })), Math.abs(
80
+ c - f.current
81
+ ) > 0.1 && (s.setTarget([c]), f.current = c);
82
+ }
83
+ i.current = requestAnimationFrame(e);
84
+ };
85
+ i.current = requestAnimationFrame(e);
86
+ } else
87
+ i.current && (cancelAnimationFrame(i.current), i.current = null);
88
+ return () => {
89
+ i.current && (cancelAnimationFrame(i.current), i.current = null);
90
+ };
91
+ }, [n.isRunning, s]), d(() => {
92
+ let e = null;
93
+ const r = () => {
94
+ s.update(), e = requestAnimationFrame(r);
95
+ };
96
+ return e = requestAnimationFrame(r), () => {
97
+ e && cancelAnimationFrame(e);
98
+ };
99
+ }, [s]), {
100
+ timerState: n,
101
+ controls: {
102
+ start: F,
103
+ pause: g,
104
+ resume: R,
105
+ reset: D,
106
+ isPaused: I
107
+ }
108
+ };
109
+ };
110
+ export {
111
+ b as useTimerLogic
112
+ };
113
+ //# sourceMappingURL=useTimerLogic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTimerLogic.js","sources":["../../../src/components/Timer/useTimerLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useInterpolation } from \"../utils/interpolation\"\nimport type { TimerState } from \"./types\"\n\ninterface UseTimerLogicProps {\n autoStart: boolean\n hasError: boolean\n onPauseAnimation: () => void\n onErrorAnimation: () => void\n onClearErrorAnimation: () => void\n}\n\nexport const useTimerLogic = ({\n autoStart,\n hasError,\n onPauseAnimation,\n onErrorAnimation,\n onClearErrorAnimation,\n}: UseTimerLogicProps) => {\n const [timerState, setTimerState] = useState<TimerState>({\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n wasRunningBeforeError: false,\n })\n\n // Timer-related refs\n const animationRef = useRef<number | null>(null)\n const startTimeRef = useRef<number | null>(null)\n const pausedTimeRef = useRef<number>(0)\n const lastProgressRef = useRef<number>(0)\n\n // Spring-based interpolator for smooth gauge progress animations\n const [progressInterpolator] = useInterpolation([0], {\n tension: 80,\n friction: 18,\n onChange: ([progress]) => {\n setTimerState((prev) => ({ ...prev, currentProgress: progress }))\n },\n })\n\n const start = useCallback(\n (elapsedSeconds: number = 0) => {\n const initialProgress = ((elapsedSeconds / 60) % 1) * 100\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: elapsedSeconds,\n isPausedState: false,\n currentProgress: initialProgress,\n }))\n pausedTimeRef.current = 0\n lastProgressRef.current = initialProgress\n\n progressInterpolator.setImmediate([initialProgress])\n\n if (autoStart) {\n startTimeRef.current = Date.now() - elapsedSeconds * 1000\n setTimerState((prev) => ({ ...prev, isRunning: true }))\n } else {\n startTimeRef.current = null\n }\n },\n [autoStart, progressInterpolator],\n )\n\n const pause = useCallback(() => {\n if (startTimeRef.current && timerState.isRunning) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n progressInterpolator.setTarget([currentProgress])\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n }\n\n setTimerState((prev) => ({\n ...prev,\n isRunning: false,\n isPausedState: true,\n }))\n onPauseAnimation()\n }, [timerState.isRunning, progressInterpolator, onPauseAnimation])\n\n const resume = useCallback(() => {\n if (timerState.isPausedState) {\n pausedTimeRef.current = timerState.elapsedTime\n startTimeRef.current = Date.now()\n setTimerState((prev) => ({\n ...prev,\n isRunning: true,\n isPausedState: false,\n }))\n }\n }, [timerState.isPausedState, timerState.elapsedTime])\n\n const reset = useCallback(() => {\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: 0,\n isRunning: false,\n isPausedState: false,\n currentProgress: 0,\n }))\n pausedTimeRef.current = 0\n startTimeRef.current = null\n lastProgressRef.current = 0\n progressInterpolator.setImmediate([0])\n }, [progressInterpolator])\n\n const isPaused = useCallback(() => {\n return timerState.isPausedState\n }, [timerState.isPausedState])\n\n // Handle error state changes\n useEffect(() => {\n if (hasError) {\n if (timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: true }))\n pause()\n }\n onErrorAnimation()\n } else {\n if (timerState.wasRunningBeforeError && !timerState.isRunning) {\n setTimerState((prev) => ({ ...prev, wasRunningBeforeError: false }))\n resume()\n }\n onClearErrorAnimation()\n }\n }, [\n hasError,\n timerState.isRunning,\n timerState.wasRunningBeforeError,\n pause,\n resume,\n onErrorAnimation,\n onClearErrorAnimation,\n ])\n\n // Main timer loop\n useEffect(() => {\n if (timerState.isRunning) {\n const updateTimer = () => {\n if (startTimeRef.current) {\n const now = Date.now()\n const totalElapsed =\n (now - startTimeRef.current) / 1000 + pausedTimeRef.current\n const currentProgress = ((totalElapsed / 60) % 1) * 100\n\n setTimerState((prev) => ({\n ...prev,\n elapsedTime: Math.floor(totalElapsed),\n }))\n\n // Only update progress interpolator if progress changed significantly\n const progressDiff = Math.abs(\n currentProgress - lastProgressRef.current,\n )\n if (progressDiff > 0.1) {\n progressInterpolator.setTarget([currentProgress])\n lastProgressRef.current = currentProgress\n }\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n }\n animationRef.current = requestAnimationFrame(updateTimer)\n } else {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current)\n animationRef.current = null\n }\n }\n }, [timerState.isRunning, progressInterpolator])\n\n // Interpolation animation loop\n useEffect(() => {\n let interpolationAnimationId: number | null = null\n\n const animateInterpolation = () => {\n progressInterpolator.update()\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n }\n\n interpolationAnimationId = requestAnimationFrame(animateInterpolation)\n\n return () => {\n if (interpolationAnimationId) {\n cancelAnimationFrame(interpolationAnimationId)\n }\n }\n }, [progressInterpolator])\n\n return {\n timerState,\n controls: {\n start,\n pause,\n resume,\n reset,\n isPaused,\n },\n }\n}\n"],"names":["useTimerLogic","autoStart","hasError","onPauseAnimation","onErrorAnimation","onClearErrorAnimation","timerState","setTimerState","useState","animationRef","useRef","startTimeRef","pausedTimeRef","lastProgressRef","progressInterpolator","useInterpolation","progress","prev","start","useCallback","elapsedSeconds","initialProgress","pause","totalElapsed","currentProgress","resume","reset","isPaused","useEffect","updateTimer","interpolationAnimationId","animateInterpolation"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=o=>{const e=Math.floor(o/86400),r=Math.floor(o%86400/3600),n=Math.floor(o%3600/60),a=o%60,t=[];return e>0?(t.push(e.toString()),t.push(r.toString().padStart(2,"0")),t.push(n.toString().padStart(2,"0")),t.push(a.toString().padStart(2,"0"))):r>0?(t.push(r.toString()),t.push(n.toString().padStart(2,"0")),t.push(a.toString().padStart(2,"0"))):(t.push(n.toString()),t.push(a.toString().padStart(2,"0"))),t.join(":")},f=(o,e)=>{const r=Math.floor(o/86400),n=Math.floor(o%86400/3600),a=Math.floor(o%3600/60),t=o%60;if(typeof Intl<"u"&&"DurationFormat"in Intl)try{const s={};return r>0&&(s.days=r),n>0&&(s.hours=n),a>0&&(s.minutes=a),(t>0||Object.keys(s).length===0)&&(s.seconds=t),new Intl.DurationFormat(e,{style:"narrow"}).format(s)}catch{}const i=[];return r>0&&i.push(`${r}d`),n>0&&i.push(`${n}h`),a>0&&i.push(`${a}m`),(t>0||i.length===0)&&i.push(`${t}s`),i.join(" ")};exports.formatTime=u;exports.formatTimeLocalized=f;
2
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sources":["../../../src/components/Timer/utils.ts"],"sourcesContent":["/**\n * Formats time in seconds to D:HH:MM:SS, H:MM:SS or MM:SS format\n * Used for the default (large) timer variant\n * Automatically includes days and hours as needed for clarity\n */\nexport const formatTime = (seconds: number): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Build time parts array\n const parts: string[] = []\n\n if (days > 0) {\n parts.push(days.toString())\n parts.push(hours.toString().padStart(2, \"0\"))\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else if (hours > 0) {\n parts.push(hours.toString())\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else {\n parts.push(minutes.toString())\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n }\n\n return parts.join(\":\")\n}\n\n/**\n * Formats time in seconds to a localized human-readable format\n * Used for the small timer variant\n * Examples: \"2h 30m 15s\", \"45m 30s\", \"30s\"\n * Falls back to English units if Intl.DurationFormat is not available\n */\nexport const formatTimeLocalized = (\n seconds: number,\n locale?: string,\n): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Try using Intl.DurationFormat if available (newer browsers)\n if (typeof Intl !== \"undefined\" && \"DurationFormat\" in Intl) {\n try {\n const duration: Record<string, number> = {}\n if (days > 0) duration.days = days\n if (hours > 0) duration.hours = hours\n if (minutes > 0) duration.minutes = minutes\n if (remainingSeconds > 0 || Object.keys(duration).length === 0) {\n duration.seconds = remainingSeconds\n }\n\n // @ts-expect-error\n // TODO: Remove suppression once Intl.DurationFormat is supported in TypeScript types.\n // See: https://github.com/microsoft/TypeScript/issues/53971\n // DurationFormat is a proposed API and not yet available in TypeScript's standard library types.\n const formatter = new Intl.DurationFormat(locale, { style: \"narrow\" })\n return formatter.format(duration)\n } catch {\n // Fall through to manual formatting\n }\n }\n\n // Manual formatting with compact units\n const parts: string[] = []\n\n if (days > 0) parts.push(`${days}d`)\n if (hours > 0) parts.push(`${hours}h`)\n if (minutes > 0) parts.push(`${minutes}m`)\n if (remainingSeconds > 0 || parts.length === 0) {\n parts.push(`${remainingSeconds}s`)\n }\n\n return parts.join(\" \")\n}\n\n/**\n * Calculates progress percentage for timer (minute-based cycles)\n */\nexport const calculateTimerProgress = (elapsedTime: number): number => {\n return ((elapsedTime / 60) % 1) * 100\n}\n"],"names":["formatTime","seconds","days","hours","minutes","remainingSeconds","parts","formatTimeLocalized","locale","duration"],"mappings":"gFAKO,MAAMA,EAAcC,GAA4B,CACrD,MAAMC,EAAO,KAAK,MAAMD,EAAU,KAAK,EACjCE,EAAQ,KAAK,MAAOF,EAAU,MAAS,IAAI,EAC3CG,EAAU,KAAK,MAAOH,EAAU,KAAQ,EAAE,EAC1CI,EAAmBJ,EAAU,GAG7BK,EAAkB,CAAA,EAExB,OAAIJ,EAAO,GACTI,EAAM,KAAKJ,EAAK,UAAU,EAC1BI,EAAM,KAAKH,EAAM,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC5CG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,GAC9CF,EAAQ,GACjBG,EAAM,KAAKH,EAAM,UAAU,EAC3BG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,EAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,IAEvDC,EAAM,KAAKF,EAAQ,UAAU,EAC7BE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,EAAG,GAAG,CAAC,GAGlDC,EAAM,KAAK,GAAG,CACvB,EAQaC,EAAsB,CACjCN,EACAO,IACW,CACX,MAAMN,EAAO,KAAK,MAAMD,EAAU,KAAK,EACjCE,EAAQ,KAAK,MAAOF,EAAU,MAAS,IAAI,EAC3CG,EAAU,KAAK,MAAOH,EAAU,KAAQ,EAAE,EAC1CI,EAAmBJ,EAAU,GAGnC,GAAI,OAAO,KAAS,KAAe,mBAAoB,KACrD,GAAI,CACF,MAAMQ,EAAmC,CAAA,EACzC,OAAIP,EAAO,IAAGO,EAAS,KAAOP,GAC1BC,EAAQ,IAAGM,EAAS,MAAQN,GAC5BC,EAAU,IAAGK,EAAS,QAAUL,IAChCC,EAAmB,GAAK,OAAO,KAAKI,CAAQ,EAAE,SAAW,KAC3DA,EAAS,QAAUJ,GAOH,IAAI,KAAK,eAAeG,EAAQ,CAAE,MAAO,SAAU,EACpD,OAAOC,CAAQ,CAClC,MAAQ,CAER,CAIF,MAAMH,EAAkB,CAAA,EAExB,OAAIJ,EAAO,GAAGI,EAAM,KAAK,GAAGJ,CAAI,GAAG,EAC/BC,EAAQ,GAAGG,EAAM,KAAK,GAAGH,CAAK,GAAG,EACjCC,EAAU,GAAGE,EAAM,KAAK,GAAGF,CAAO,GAAG,GACrCC,EAAmB,GAAKC,EAAM,SAAW,IAC3CA,EAAM,KAAK,GAAGD,CAAgB,GAAG,EAG5BC,EAAM,KAAK,GAAG,CACvB"}
@@ -0,0 +1,19 @@
1
+ const e = (o) => {
2
+ const h = Math.floor(o / 86400), r = Math.floor(o % 86400 / 3600), n = Math.floor(o % 3600 / 60), a = o % 60, t = [];
3
+ return h > 0 ? (t.push(h.toString()), t.push(r.toString().padStart(2, "0")), t.push(n.toString().padStart(2, "0")), t.push(a.toString().padStart(2, "0"))) : r > 0 ? (t.push(r.toString()), t.push(n.toString().padStart(2, "0")), t.push(a.toString().padStart(2, "0"))) : (t.push(n.toString()), t.push(a.toString().padStart(2, "0"))), t.join(":");
4
+ }, f = (o, h) => {
5
+ const r = Math.floor(o / 86400), n = Math.floor(o % 86400 / 3600), a = Math.floor(o % 3600 / 60), t = o % 60;
6
+ if (typeof Intl < "u" && "DurationFormat" in Intl)
7
+ try {
8
+ const s = {};
9
+ return r > 0 && (s.days = r), n > 0 && (s.hours = n), a > 0 && (s.minutes = a), (t > 0 || Object.keys(s).length === 0) && (s.seconds = t), new Intl.DurationFormat(h, { style: "narrow" }).format(s);
10
+ } catch {
11
+ }
12
+ const i = [];
13
+ return r > 0 && i.push(`${r}d`), n > 0 && i.push(`${n}h`), a > 0 && i.push(`${a}m`), (t > 0 || i.length === 0) && i.push(`${t}s`), i.join(" ");
14
+ };
15
+ export {
16
+ e as formatTime,
17
+ f as formatTimeLocalized
18
+ };
19
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/Timer/utils.ts"],"sourcesContent":["/**\n * Formats time in seconds to D:HH:MM:SS, H:MM:SS or MM:SS format\n * Used for the default (large) timer variant\n * Automatically includes days and hours as needed for clarity\n */\nexport const formatTime = (seconds: number): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Build time parts array\n const parts: string[] = []\n\n if (days > 0) {\n parts.push(days.toString())\n parts.push(hours.toString().padStart(2, \"0\"))\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else if (hours > 0) {\n parts.push(hours.toString())\n parts.push(minutes.toString().padStart(2, \"0\"))\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n } else {\n parts.push(minutes.toString())\n parts.push(remainingSeconds.toString().padStart(2, \"0\"))\n }\n\n return parts.join(\":\")\n}\n\n/**\n * Formats time in seconds to a localized human-readable format\n * Used for the small timer variant\n * Examples: \"2h 30m 15s\", \"45m 30s\", \"30s\"\n * Falls back to English units if Intl.DurationFormat is not available\n */\nexport const formatTimeLocalized = (\n seconds: number,\n locale?: string,\n): string => {\n const days = Math.floor(seconds / 86400)\n const hours = Math.floor((seconds % 86400) / 3600)\n const minutes = Math.floor((seconds % 3600) / 60)\n const remainingSeconds = seconds % 60\n\n // Try using Intl.DurationFormat if available (newer browsers)\n if (typeof Intl !== \"undefined\" && \"DurationFormat\" in Intl) {\n try {\n const duration: Record<string, number> = {}\n if (days > 0) duration.days = days\n if (hours > 0) duration.hours = hours\n if (minutes > 0) duration.minutes = minutes\n if (remainingSeconds > 0 || Object.keys(duration).length === 0) {\n duration.seconds = remainingSeconds\n }\n\n // @ts-expect-error\n // TODO: Remove suppression once Intl.DurationFormat is supported in TypeScript types.\n // See: https://github.com/microsoft/TypeScript/issues/53971\n // DurationFormat is a proposed API and not yet available in TypeScript's standard library types.\n const formatter = new Intl.DurationFormat(locale, { style: \"narrow\" })\n return formatter.format(duration)\n } catch {\n // Fall through to manual formatting\n }\n }\n\n // Manual formatting with compact units\n const parts: string[] = []\n\n if (days > 0) parts.push(`${days}d`)\n if (hours > 0) parts.push(`${hours}h`)\n if (minutes > 0) parts.push(`${minutes}m`)\n if (remainingSeconds > 0 || parts.length === 0) {\n parts.push(`${remainingSeconds}s`)\n }\n\n return parts.join(\" \")\n}\n\n/**\n * Calculates progress percentage for timer (minute-based cycles)\n */\nexport const calculateTimerProgress = (elapsedTime: number): number => {\n return ((elapsedTime / 60) % 1) * 100\n}\n"],"names":["formatTime","seconds","days","hours","minutes","remainingSeconds","parts","formatTimeLocalized","locale","duration"],"mappings":"AAKO,MAAMA,IAAa,CAACC,MAA4B;AACrD,QAAMC,IAAO,KAAK,MAAMD,IAAU,KAAK,GACjCE,IAAQ,KAAK,MAAOF,IAAU,QAAS,IAAI,GAC3CG,IAAU,KAAK,MAAOH,IAAU,OAAQ,EAAE,GAC1CI,IAAmBJ,IAAU,IAG7BK,IAAkB,CAAA;AAExB,SAAIJ,IAAO,KACTI,EAAM,KAAKJ,EAAK,UAAU,GAC1BI,EAAM,KAAKH,EAAM,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC5CG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,KAC9CF,IAAQ,KACjBG,EAAM,KAAKH,EAAM,UAAU,GAC3BG,EAAM,KAAKF,EAAQ,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,GAC9CE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,MAEvDC,EAAM,KAAKF,EAAQ,UAAU,GAC7BE,EAAM,KAAKD,EAAiB,SAAA,EAAW,SAAS,GAAG,GAAG,CAAC,IAGlDC,EAAM,KAAK,GAAG;AACvB,GAQaC,IAAsB,CACjCN,GACAO,MACW;AACX,QAAMN,IAAO,KAAK,MAAMD,IAAU,KAAK,GACjCE,IAAQ,KAAK,MAAOF,IAAU,QAAS,IAAI,GAC3CG,IAAU,KAAK,MAAOH,IAAU,OAAQ,EAAE,GAC1CI,IAAmBJ,IAAU;AAGnC,MAAI,OAAO,OAAS,OAAe,oBAAoB;AACrD,QAAI;AACF,YAAMQ,IAAmC,CAAA;AACzC,aAAIP,IAAO,MAAGO,EAAS,OAAOP,IAC1BC,IAAQ,MAAGM,EAAS,QAAQN,IAC5BC,IAAU,MAAGK,EAAS,UAAUL,KAChCC,IAAmB,KAAK,OAAO,KAAKI,CAAQ,EAAE,WAAW,OAC3DA,EAAS,UAAUJ,IAOH,IAAI,KAAK,eAAeG,GAAQ,EAAE,OAAO,UAAU,EACpD,OAAOC,CAAQ;AAAA,IAClC,QAAQ;AAAA,IAER;AAIF,QAAMH,IAAkB,CAAA;AAExB,SAAIJ,IAAO,KAAGI,EAAM,KAAK,GAAGJ,CAAI,GAAG,GAC/BC,IAAQ,KAAGG,EAAM,KAAK,GAAGH,CAAK,GAAG,GACjCC,IAAU,KAAGE,EAAM,KAAK,GAAGF,CAAO,GAAG,IACrCC,IAAmB,KAAKC,EAAM,WAAW,MAC3CA,EAAM,KAAK,GAAGD,CAAgB,GAAG,GAG5BC,EAAM,KAAK,GAAG;AACvB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./Timer/index.cjs");exports.Timer=e.Timer;exports.default=e.Timer;
2
+ //# sourceMappingURL=Timer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export { Timer } from "./Timer/index";
2
+ export type { TimerControls, TimerProps } from "./Timer/types";
3
+ export { Timer as default } from "./Timer/index";
4
+ //# sourceMappingURL=Timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/components/Timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { Timer as m, Timer as a } from "./Timer/index.js";
2
+ export {
3
+ m as Timer,
4
+ a as default
5
+ };
6
+ //# sourceMappingURL=Timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timer.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,4 +1,5 @@
1
1
  import Stack from "@mui/material/Stack";
2
2
  import type React from "react";
3
3
  export declare const TransparentOverlay: (props: React.ComponentProps<typeof Stack>) => import("react/jsx-runtime").JSX.Element;
4
+ export default TransparentOverlay;
4
5
  //# sourceMappingURL=TransparentOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransparentOverlay.d.ts","sourceRoot":"","sources":["../../src/components/TransparentOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,4CAoB1C,CAAA"}
1
+ {"version":3,"file":"TransparentOverlay.d.ts","sourceRoot":"","sources":["../../src/components/TransparentOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,eAAO,MAAM,kBAAkB,GAC7B,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,4CAoB1C,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),s=require("@mui/material/styles"),d=require("@mui/material/Stack"),u=require("@mui/material/Typography"),b=require("@mui/material/Slider"),m=require("lodash-es/isNumber"),h=require("mobx-react-lite"),S=require("react-i18next"),x=h.observer(e=>{var o,a,c;const r=s.useTheme(),{store:i}=e,{t:n}=S.useTranslation();function y(v,l){l===e.velocity||!m(l)||e.onVelocityChange(l,e.useDegree)}return t.jsxs(d,{direction:"row",gap:2,alignItems:"center","data-testid":"velocity-slider","aria-label":"velocity-slider",children:[i.showVelocityLegend&&t.jsx(u,{sx:{color:(c=(a=(o=r.componentsExt)==null?void 0:o.JoggingPanel)==null?void 0:a.VelocitySlider)==null?void 0:c.sliderLegendColor,fontSize:"14px"},children:n("Jogging.Velocity.bt")}),t.jsx(b,{value:e.velocity,color:"secondary",onChange:y,min:e.min,max:e.max,"aria-labelledby":"input-slider",disabled:e.disabled,sx:{"& .MuiSlider-valueLabelOpen":{zIndex:100,backgroundColor:"transparent",top:"0px"}}}),i.showVelocitySliderLabel&&(e.renderValue?e.renderValue(e.velocity):t.jsx(g,{value:e.velocity.toString()}))]})});function g({value:e,sx:r}){var n;const i=s.useTheme();return t.jsx(d,{direction:"row",justifyContent:"center",alignItems:"center",gap:"5px",sx:{padding:"6px 12px",background:(n=i.palette.backgroundPaperElevation)==null?void 0:n[8],borderRadius:"10px",minWidth:"111px",...r},children:t.jsx(u,{component:"span",sx:{textAlign:"right",fontSize:"14px",opacity:.8,color:i.palette.text.primary,whiteSpace:"nowrap"},children:e})})}exports.VelocitySlider=x;exports.VelocitySliderLabel=g;exports.default=x;
2
+ //# sourceMappingURL=VelocitySlider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VelocitySlider.cjs","sources":["../../src/components/VelocitySlider.tsx"],"sourcesContent":["import { useTheme, type SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nimport Slider from \"@mui/material/Slider\"\nimport isNumber from \"lodash-es/isNumber\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ReactNode } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { JoggingStore } from \"./jogging/JoggingStore\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number, useDegree: boolean) => void\n disabled?: boolean\n renderValue?: (value: number) => ReactNode\n useDegree: boolean\n store: JoggingStore\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const theme = useTheme()\n const { store } = props\n const { t } = useTranslation()\n\n function onSliderChange(_event: Event, newVelocity: number | number[]) {\n if (newVelocity === props.velocity || !isNumber(newVelocity)) return\n\n props.onVelocityChange(newVelocity, props.useDegree)\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={2}\n alignItems=\"center\"\n data-testid=\"velocity-slider\"\n aria-label=\"velocity-slider\"\n >\n {store.showVelocityLegend && (\n <Typography\n sx={{\n color:\n theme.componentsExt?.JoggingPanel?.VelocitySlider\n ?.sliderLegendColor,\n fontSize: \"14px\",\n }}\n >\n {t(\"Jogging.Velocity.bt\")}\n </Typography>\n )}\n <Slider\n value={props.velocity}\n color=\"secondary\"\n onChange={onSliderChange}\n min={props.min}\n max={props.max}\n aria-labelledby=\"input-slider\"\n disabled={props.disabled}\n sx={{\n \"& .MuiSlider-valueLabelOpen\": {\n zIndex: 100,\n backgroundColor: \"transparent\",\n top: \"0px\",\n },\n }}\n />\n {store.showVelocitySliderLabel &&\n (props.renderValue ? (\n props.renderValue(props.velocity)\n ) : (\n <VelocitySliderLabel value={props.velocity.toString()} />\n ))}\n </Stack>\n )\n})\n\ntype VelocitySliderLabelProps = {\n value: string\n sx?: SxProps\n}\n\nexport function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps) {\n const theme = useTheme()\n return (\n <Stack\n direction={\"row\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n gap={\"5px\"}\n sx={{\n padding: \"6px 12px\",\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"10px\",\n minWidth: \"111px\",\n ...sx,\n }}\n >\n <Typography\n component=\"span\"\n sx={{\n textAlign: \"right\",\n fontSize: \"14px\",\n opacity: 0.8,\n color: theme.palette.text.primary,\n whiteSpace: \"nowrap\",\n }}\n >\n {value}\n </Typography>\n </Stack>\n )\n}\n\nexport default VelocitySlider\n"],"names":["VelocitySlider","observer","props","theme","useTheme","store","t","useTranslation","onSliderChange","_event","newVelocity","isNumber","jsxs","Stack","jsx","Typography","_c","_b","_a","Slider","VelocitySliderLabel","value","sx"],"mappings":"oXAsBaA,EAAiBC,EAAAA,SAAUC,GAA+B,WACrE,MAAMC,EAAQC,EAAAA,SAAA,EACR,CAAE,MAAAC,GAAUH,EACZ,CAAE,EAAAI,CAAA,EAAMC,iBAAA,EAEd,SAASC,EAAeC,EAAeC,EAAgC,CACjEA,IAAgBR,EAAM,UAAY,CAACS,EAASD,CAAW,GAE3DR,EAAM,iBAAiBQ,EAAaR,EAAM,SAAS,CACrD,CAEA,OACEU,EAAAA,KAACC,EAAA,CACC,UAAU,MACV,IAAK,EACL,WAAW,SACX,cAAY,kBACZ,aAAW,kBAEV,SAAA,CAAAR,EAAM,oBACLS,EAAAA,IAACC,EAAA,CACC,GAAI,CACF,OACEC,GAAAC,GAAAC,EAAAf,EAAM,gBAAN,YAAAe,EAAqB,eAArB,YAAAD,EAAmC,iBAAnC,YAAAD,EACI,kBACN,SAAU,MAAA,EAGX,WAAE,qBAAqB,CAAA,CAAA,EAG5BF,EAAAA,IAACK,EAAA,CACC,MAAOjB,EAAM,SACb,MAAM,YACN,SAAUM,EACV,IAAKN,EAAM,IACX,IAAKA,EAAM,IACX,kBAAgB,eAChB,SAAUA,EAAM,SAChB,GAAI,CACF,8BAA+B,CAC7B,OAAQ,IACR,gBAAiB,cACjB,IAAK,KAAA,CACP,CACF,CAAA,EAEDG,EAAM,0BACJH,EAAM,YACLA,EAAM,YAAYA,EAAM,QAAQ,QAE/BkB,EAAA,CAAoB,MAAOlB,EAAM,SAAS,WAAY,EAAA,CAAA,CAAA,CAIjE,CAAC,EAOM,SAASkB,EAAoB,CAAE,MAAAC,EAAO,GAAAC,GAAgC,OAC3E,MAAMnB,EAAQC,EAAAA,SAAA,EACd,OACEU,EAAAA,IAACD,EAAA,CACC,UAAW,MACX,eAAgB,SAChB,WAAY,SACZ,IAAK,MACL,GAAI,CACF,QAAS,WACT,YAAYK,EAAAf,EAAM,QAAQ,2BAAd,YAAAe,EAAyC,GACrD,aAAc,OACd,SAAU,QACV,GAAGI,CAAA,EAGL,SAAAR,EAAAA,IAACC,EAAA,CACC,UAAU,OACV,GAAI,CACF,UAAW,QACX,SAAU,OACV,QAAS,GACT,MAAOZ,EAAM,QAAQ,KAAK,QAC1B,WAAY,QAAA,EAGb,SAAAkB,CAAA,CAAA,CACH,CAAA,CAGN"}
@@ -20,5 +20,5 @@ type VelocitySliderLabelProps = {
20
20
  sx?: SxProps;
21
21
  };
22
22
  export declare function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps): import("react/jsx-runtime").JSX.Element;
23
- export {};
23
+ export default VelocitySlider;
24
24
  //# sourceMappingURL=VelocitySlider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VelocitySlider.d.ts","sourceRoot":"","sources":["../../src/components/VelocitySlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAM7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAA;IAC1C,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CAuDhE,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,wBAAwB,2CA8B1E"}
1
+ {"version":3,"file":"VelocitySlider.d.ts","sourceRoot":"","sources":["../../src/components/VelocitySlider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAM7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAA;IAC1C,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,cAAc,WAAoB,mBAAmB;;CAuDhE,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,wBAAwB,2CA8B1E;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,97 @@
1
+ import { jsxs as u, jsx as i } from "react/jsx-runtime";
2
+ import { useTheme as d } from "@mui/material/styles";
3
+ import m from "@mui/material/Stack";
4
+ import s from "@mui/material/Typography";
5
+ import x from "@mui/material/Slider";
6
+ import y from "lodash-es/isNumber";
7
+ import { observer as h } from "mobx-react-lite";
8
+ import { useTranslation as b } from "react-i18next";
9
+ const z = h((e) => {
10
+ var l, a, c;
11
+ const r = d(), { store: t } = e, { t: o } = b();
12
+ function g(p, n) {
13
+ n === e.velocity || !y(n) || e.onVelocityChange(n, e.useDegree);
14
+ }
15
+ return /* @__PURE__ */ u(
16
+ m,
17
+ {
18
+ direction: "row",
19
+ gap: 2,
20
+ alignItems: "center",
21
+ "data-testid": "velocity-slider",
22
+ "aria-label": "velocity-slider",
23
+ children: [
24
+ t.showVelocityLegend && /* @__PURE__ */ i(
25
+ s,
26
+ {
27
+ sx: {
28
+ color: (c = (a = (l = r.componentsExt) == null ? void 0 : l.JoggingPanel) == null ? void 0 : a.VelocitySlider) == null ? void 0 : c.sliderLegendColor,
29
+ fontSize: "14px"
30
+ },
31
+ children: o("Jogging.Velocity.bt")
32
+ }
33
+ ),
34
+ /* @__PURE__ */ i(
35
+ x,
36
+ {
37
+ value: e.velocity,
38
+ color: "secondary",
39
+ onChange: g,
40
+ min: e.min,
41
+ max: e.max,
42
+ "aria-labelledby": "input-slider",
43
+ disabled: e.disabled,
44
+ sx: {
45
+ "& .MuiSlider-valueLabelOpen": {
46
+ zIndex: 100,
47
+ backgroundColor: "transparent",
48
+ top: "0px"
49
+ }
50
+ }
51
+ }
52
+ ),
53
+ t.showVelocitySliderLabel && (e.renderValue ? e.renderValue(e.velocity) : /* @__PURE__ */ i(f, { value: e.velocity.toString() }))
54
+ ]
55
+ }
56
+ );
57
+ });
58
+ function f({ value: e, sx: r }) {
59
+ var o;
60
+ const t = d();
61
+ return /* @__PURE__ */ i(
62
+ m,
63
+ {
64
+ direction: "row",
65
+ justifyContent: "center",
66
+ alignItems: "center",
67
+ gap: "5px",
68
+ sx: {
69
+ padding: "6px 12px",
70
+ background: (o = t.palette.backgroundPaperElevation) == null ? void 0 : o[8],
71
+ borderRadius: "10px",
72
+ minWidth: "111px",
73
+ ...r
74
+ },
75
+ children: /* @__PURE__ */ i(
76
+ s,
77
+ {
78
+ component: "span",
79
+ sx: {
80
+ textAlign: "right",
81
+ fontSize: "14px",
82
+ opacity: 0.8,
83
+ color: t.palette.text.primary,
84
+ whiteSpace: "nowrap"
85
+ },
86
+ children: e
87
+ }
88
+ )
89
+ }
90
+ );
91
+ }
92
+ export {
93
+ z as VelocitySlider,
94
+ f as VelocitySliderLabel,
95
+ z as default
96
+ };
97
+ //# sourceMappingURL=VelocitySlider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VelocitySlider.js","sources":["../../src/components/VelocitySlider.tsx"],"sourcesContent":["import { useTheme, type SxProps } from \"@mui/material/styles\"\nimport Stack from \"@mui/material/Stack\"\nimport Typography from \"@mui/material/Typography\"\nimport Slider from \"@mui/material/Slider\"\nimport isNumber from \"lodash-es/isNumber\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ReactNode } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { JoggingStore } from \"./jogging/JoggingStore\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number, useDegree: boolean) => void\n disabled?: boolean\n renderValue?: (value: number) => ReactNode\n useDegree: boolean\n store: JoggingStore\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const theme = useTheme()\n const { store } = props\n const { t } = useTranslation()\n\n function onSliderChange(_event: Event, newVelocity: number | number[]) {\n if (newVelocity === props.velocity || !isNumber(newVelocity)) return\n\n props.onVelocityChange(newVelocity, props.useDegree)\n }\n\n return (\n <Stack\n direction=\"row\"\n gap={2}\n alignItems=\"center\"\n data-testid=\"velocity-slider\"\n aria-label=\"velocity-slider\"\n >\n {store.showVelocityLegend && (\n <Typography\n sx={{\n color:\n theme.componentsExt?.JoggingPanel?.VelocitySlider\n ?.sliderLegendColor,\n fontSize: \"14px\",\n }}\n >\n {t(\"Jogging.Velocity.bt\")}\n </Typography>\n )}\n <Slider\n value={props.velocity}\n color=\"secondary\"\n onChange={onSliderChange}\n min={props.min}\n max={props.max}\n aria-labelledby=\"input-slider\"\n disabled={props.disabled}\n sx={{\n \"& .MuiSlider-valueLabelOpen\": {\n zIndex: 100,\n backgroundColor: \"transparent\",\n top: \"0px\",\n },\n }}\n />\n {store.showVelocitySliderLabel &&\n (props.renderValue ? (\n props.renderValue(props.velocity)\n ) : (\n <VelocitySliderLabel value={props.velocity.toString()} />\n ))}\n </Stack>\n )\n})\n\ntype VelocitySliderLabelProps = {\n value: string\n sx?: SxProps\n}\n\nexport function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps) {\n const theme = useTheme()\n return (\n <Stack\n direction={\"row\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n gap={\"5px\"}\n sx={{\n padding: \"6px 12px\",\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"10px\",\n minWidth: \"111px\",\n ...sx,\n }}\n >\n <Typography\n component=\"span\"\n sx={{\n textAlign: \"right\",\n fontSize: \"14px\",\n opacity: 0.8,\n color: theme.palette.text.primary,\n whiteSpace: \"nowrap\",\n }}\n >\n {value}\n </Typography>\n </Stack>\n )\n}\n\nexport default VelocitySlider\n"],"names":["VelocitySlider","observer","props","theme","useTheme","store","t","useTranslation","onSliderChange","_event","newVelocity","isNumber","jsxs","Stack","jsx","Typography","_c","_b","_a","Slider","VelocitySliderLabel","value","sx"],"mappings":";;;;;;;;AAsBO,MAAMA,IAAiBC,EAAS,CAACC,MAA+B;;AACrE,QAAMC,IAAQC,EAAA,GACR,EAAE,OAAAC,MAAUH,GACZ,EAAE,GAAAI,EAAA,IAAMC,EAAA;AAEd,WAASC,EAAeC,GAAeC,GAAgC;AACrE,IAAIA,MAAgBR,EAAM,YAAY,CAACS,EAASD,CAAW,KAE3DR,EAAM,iBAAiBQ,GAAaR,EAAM,SAAS;AAAA,EACrD;AAEA,SACE,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,KAAK;AAAA,MACL,YAAW;AAAA,MACX,eAAY;AAAA,MACZ,cAAW;AAAA,MAEV,UAAA;AAAA,QAAAR,EAAM,sBACL,gBAAAS;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,QACEC,KAAAC,KAAAC,IAAAf,EAAM,kBAAN,gBAAAe,EAAqB,iBAArB,gBAAAD,EAAmC,mBAAnC,gBAAAD,EACI;AAAA,cACN,UAAU;AAAA,YAAA;AAAA,YAGX,YAAE,qBAAqB;AAAA,UAAA;AAAA,QAAA;AAAA,QAG5B,gBAAAF;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,OAAOjB,EAAM;AAAA,YACb,OAAM;AAAA,YACN,UAAUM;AAAA,YACV,KAAKN,EAAM;AAAA,YACX,KAAKA,EAAM;AAAA,YACX,mBAAgB;AAAA,YAChB,UAAUA,EAAM;AAAA,YAChB,IAAI;AAAA,cACF,+BAA+B;AAAA,gBAC7B,QAAQ;AAAA,gBACR,iBAAiB;AAAA,gBACjB,KAAK;AAAA,cAAA;AAAA,YACP;AAAA,UACF;AAAA,QAAA;AAAA,QAEDG,EAAM,4BACJH,EAAM,cACLA,EAAM,YAAYA,EAAM,QAAQ,sBAE/BkB,GAAA,EAAoB,OAAOlB,EAAM,SAAS,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIjE,CAAC;AAOM,SAASkB,EAAoB,EAAE,OAAAC,GAAO,IAAAC,KAAgC;;AAC3E,QAAMnB,IAAQC,EAAA;AACd,SACE,gBAAAU;AAAA,IAACD;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,IAAI;AAAA,QACF,SAAS;AAAA,QACT,aAAYK,IAAAf,EAAM,QAAQ,6BAAd,gBAAAe,EAAyC;AAAA,QACrD,cAAc;AAAA,QACd,UAAU;AAAA,QACV,GAAGI;AAAA,MAAA;AAAA,MAGL,UAAA,gBAAAR;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAI;AAAA,YACF,WAAW;AAAA,YACX,UAAU;AAAA,YACV,SAAS;AAAA,YACT,OAAOZ,EAAM,QAAQ,KAAK;AAAA,YAC1B,YAAY;AAAA,UAAA;AAAA,UAGb,UAAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),o=require("@mui/material/FormControl"),l=require("@mui/material/InputLabel"),n=require("@mui/material/Select"),i=require("@mui/material/styles"),u=i.styled(o)(({theme:e})=>({"&.MuiFormControl-root":{".MuiSelect-select":{paddingTop:"20px",paddingLeft:"12px"},label:{pointerEvents:"none",fontSize:"16px"},".MuiInputLabel-root":{"&.Mui-focused":{color:e.palette.text.primary}}}}));function d({labelValue:e,...r}){return t.jsxs(u,{fullWidth:!0,variant:"filled",children:[t.jsx(l,{id:r.labelId,children:e}),t.jsx(n,{...r})]})}exports.default=d;
2
+ //# sourceMappingURL=AdornedSelect.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdornedSelect.cjs","sources":["../../../../src/components/experimental/utils/AdornedSelect.tsx"],"sourcesContent":["import FormControl from \"@mui/material/FormControl\"\nimport InputLabel from \"@mui/material/InputLabel\"\nimport Select, { type SelectProps } from \"@mui/material/Select\"\nimport { styled } from \"@mui/material/styles\"\nconst AdornedFormControl = styled(FormControl)(({ theme }) => ({\n \"&.MuiFormControl-root\": {\n \".MuiSelect-select\": {\n paddingTop: \"20px\",\n paddingLeft: \"12px\",\n },\n label: {\n pointerEvents: \"none\",\n fontSize: \"16px\",\n },\n \".MuiInputLabel-root\": {\n \"&.Mui-focused\": {\n color: theme.palette.text.primary,\n },\n },\n },\n}))\n\ntype AdornedSelectProps = {\n labelValue: string\n labelId: string\n} & SelectProps\n\nexport default function AdornedSelect({\n labelValue,\n ...props\n}: AdornedSelectProps) {\n return (\n <AdornedFormControl fullWidth variant=\"filled\">\n <InputLabel id={props.labelId}>{labelValue}</InputLabel>\n <Select {...props} />\n </AdornedFormControl>\n )\n}\n"],"names":["AdornedFormControl","styled","FormControl","theme","AdornedSelect","labelValue","props","jsxs","jsx","InputLabel","Select"],"mappings":"kSAIMA,EAAqBC,EAAAA,OAAOC,CAAW,EAAE,CAAC,CAAE,MAAAC,MAAa,CAC7D,wBAAyB,CACvB,oBAAqB,CACnB,WAAY,OACZ,YAAa,MAAA,EAEf,MAAO,CACL,cAAe,OACf,SAAU,MAAA,EAEZ,sBAAuB,CACrB,gBAAiB,CACf,MAAOA,EAAM,QAAQ,KAAK,OAAA,CAC5B,CACF,CAEJ,EAAE,EAOF,SAAwBC,EAAc,CACpC,WAAAC,EACA,GAAGC,CACL,EAAuB,CACrB,OACEC,EAAAA,KAACP,EAAA,CAAmB,UAAS,GAAC,QAAQ,SACpC,SAAA,CAAAQ,EAAAA,IAACC,EAAA,CAAW,GAAIH,EAAM,QAAU,SAAAD,EAAW,EAC3CG,MAACE,EAAA,CAAQ,GAAGJ,CAAA,CAAO,CAAA,EACrB,CAEJ"}