@wandelbots/wandelbots-js-react-components 5.5.1-pr.fix-standardize-output.591.60112ee → 5.5.1

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 (874) hide show
  1. package/dist/3d.cjs +2 -1
  2. package/dist/3d.cjs.map +1 -0
  3. package/dist/3d.d.ts +1 -0
  4. package/dist/3d.d.ts.map +1 -0
  5. package/dist/3d.js +1 -0
  6. package/dist/3d.js.map +1 -0
  7. package/dist/Setup.d.ts +1 -0
  8. package/dist/Setup.d.ts.map +1 -0
  9. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
  10. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
  11. package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
  12. package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
  13. package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
  14. package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
  15. package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
  16. package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
  17. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
  18. package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
  19. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
  20. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
  21. package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
  22. package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
  23. package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
  24. package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
  25. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
  26. package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
  27. package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
  28. package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
  29. package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
  30. package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
  31. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
  32. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
  33. package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
  34. package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
  35. package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
  36. package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
  37. package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
  38. package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
  39. package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
  40. package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
  41. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
  42. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
  43. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
  44. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
  45. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
  46. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
  47. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
  48. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
  49. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
  50. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
  51. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
  52. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
  53. package/dist/components/AppHeader.cjs +2 -1
  54. package/dist/components/AppHeader.cjs.map +1 -0
  55. package/dist/components/AppHeader.d.ts +1 -0
  56. package/dist/components/AppHeader.d.ts.map +1 -0
  57. package/dist/components/AppHeader.js +34 -40
  58. package/dist/components/AppHeader.js.map +1 -0
  59. package/dist/components/ConsoleFilter.cjs +1 -0
  60. package/dist/components/ConsoleFilter.cjs.map +1 -0
  61. package/dist/components/ConsoleFilter.d.ts +1 -0
  62. package/dist/components/ConsoleFilter.d.ts.map +1 -0
  63. package/dist/components/ConsoleFilter.js +1 -0
  64. package/dist/components/ConsoleFilter.js.map +1 -0
  65. package/dist/components/CopyableText.cjs +1 -0
  66. package/dist/components/CopyableText.cjs.map +1 -0
  67. package/dist/components/CopyableText.d.ts +1 -0
  68. package/dist/components/CopyableText.d.ts.map +1 -0
  69. package/dist/components/CopyableText.js +1 -0
  70. package/dist/components/CopyableText.js.map +1 -0
  71. package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
  72. package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
  73. package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
  74. package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
  75. package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
  76. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
  77. package/dist/components/CycleTimer/DefaultVariant.js +1 -0
  78. package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
  79. package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
  80. package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
  81. package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
  82. package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
  83. package/dist/components/CycleTimer/SmallVariant.js +1 -0
  84. package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
  85. package/dist/components/CycleTimer/index.cjs +2 -1
  86. package/dist/components/CycleTimer/index.cjs.map +1 -0
  87. package/dist/components/CycleTimer/index.d.ts +1 -0
  88. package/dist/components/CycleTimer/index.d.ts.map +1 -0
  89. package/dist/components/CycleTimer/index.js +2 -1
  90. package/dist/components/CycleTimer/index.js.map +1 -0
  91. package/dist/components/CycleTimer/types.d.ts +1 -0
  92. package/dist/components/CycleTimer/types.d.ts.map +1 -0
  93. package/dist/components/CycleTimer/useAnimations.cjs +1 -0
  94. package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
  95. package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
  96. package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
  97. package/dist/components/CycleTimer/useAnimations.js +2 -9
  98. package/dist/components/CycleTimer/useAnimations.js.map +1 -0
  99. package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
  100. package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
  101. package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
  102. package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
  103. package/dist/components/CycleTimer/useTimerLogic.js +1 -0
  104. package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
  105. package/dist/components/CycleTimer/utils.cjs +2 -1
  106. package/dist/components/CycleTimer/utils.cjs.map +1 -0
  107. package/dist/components/CycleTimer/utils.d.ts +1 -0
  108. package/dist/components/CycleTimer/utils.d.ts.map +1 -0
  109. package/dist/components/CycleTimer/utils.js +11 -19
  110. package/dist/components/CycleTimer/utils.js.map +1 -0
  111. package/dist/components/CycleTimer.cjs +1 -0
  112. package/dist/components/CycleTimer.cjs.map +1 -0
  113. package/dist/components/CycleTimer.d.ts +1 -0
  114. package/dist/components/CycleTimer.d.ts.map +1 -0
  115. package/dist/components/CycleTimer.js +1 -0
  116. package/dist/components/CycleTimer.js.map +1 -0
  117. package/dist/components/DataGrid.cjs +2 -1
  118. package/dist/components/DataGrid.cjs.map +1 -0
  119. package/dist/components/DataGrid.d.ts +1 -0
  120. package/dist/components/DataGrid.d.ts.map +1 -0
  121. package/dist/components/DataGrid.js +2 -1
  122. package/dist/components/DataGrid.js.map +1 -0
  123. package/dist/components/LoadingCover.cjs +2 -1
  124. package/dist/components/LoadingCover.cjs.map +1 -0
  125. package/dist/components/LoadingCover.d.ts +1 -0
  126. package/dist/components/LoadingCover.d.ts.map +1 -0
  127. package/dist/components/LoadingCover.js +1 -0
  128. package/dist/components/LoadingCover.js.map +1 -0
  129. package/dist/components/LogPanel.cjs +2 -1
  130. package/dist/components/LogPanel.cjs.map +1 -0
  131. package/dist/components/LogPanel.d.ts +1 -0
  132. package/dist/components/LogPanel.d.ts.map +1 -0
  133. package/dist/components/LogPanel.js +2 -1
  134. package/dist/components/LogPanel.js.map +1 -0
  135. package/dist/components/LogStore.cjs +1 -0
  136. package/dist/components/LogStore.cjs.map +1 -0
  137. package/dist/components/LogStore.d.ts +1 -0
  138. package/dist/components/LogStore.d.ts.map +1 -0
  139. package/dist/components/LogStore.js +1 -0
  140. package/dist/components/LogStore.js.map +1 -0
  141. package/dist/components/LogViewer.cjs +2 -1
  142. package/dist/components/LogViewer.cjs.map +1 -0
  143. package/dist/components/LogViewer.d.ts +1 -0
  144. package/dist/components/LogViewer.d.ts.map +1 -0
  145. package/dist/components/LogViewer.js +2 -1
  146. package/dist/components/LogViewer.js.map +1 -0
  147. package/dist/components/ProgramControl.cjs +2 -1
  148. package/dist/components/ProgramControl.cjs.map +1 -0
  149. package/dist/components/ProgramControl.d.ts +1 -0
  150. package/dist/components/ProgramControl.d.ts.map +1 -0
  151. package/dist/components/ProgramControl.js +7 -6
  152. package/dist/components/ProgramControl.js.map +1 -0
  153. package/dist/components/ProgramStateIndicator.cjs +2 -1
  154. package/dist/components/ProgramStateIndicator.cjs.map +1 -0
  155. package/dist/components/ProgramStateIndicator.d.ts +1 -0
  156. package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
  157. package/dist/components/ProgramStateIndicator.js +29 -28
  158. package/dist/components/ProgramStateIndicator.js.map +1 -0
  159. package/dist/components/RobotCard.cjs +2 -1
  160. package/dist/components/RobotCard.cjs.map +1 -0
  161. package/dist/components/RobotCard.d.ts +1 -0
  162. package/dist/components/RobotCard.d.ts.map +1 -0
  163. package/dist/components/RobotCard.js +2 -1
  164. package/dist/components/RobotCard.js.map +1 -0
  165. package/dist/components/RobotListItem.cjs +2 -1
  166. package/dist/components/RobotListItem.cjs.map +1 -0
  167. package/dist/components/RobotListItem.d.ts +1 -0
  168. package/dist/components/RobotListItem.d.ts.map +1 -0
  169. package/dist/components/RobotListItem.js +26 -25
  170. package/dist/components/RobotListItem.js.map +1 -0
  171. package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
  172. package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
  173. package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
  174. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
  175. package/dist/components/RobotSetupReadinessIndicator.js +2 -1
  176. package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
  177. package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
  178. package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
  179. package/dist/components/SelectableFab.cjs +1 -0
  180. package/dist/components/SelectableFab.cjs.map +1 -0
  181. package/dist/components/SelectableFab.d.ts +1 -0
  182. package/dist/components/SelectableFab.d.ts.map +1 -0
  183. package/dist/components/SelectableFab.js +1 -0
  184. package/dist/components/SelectableFab.js.map +1 -0
  185. package/dist/components/TabBar.cjs +2 -1
  186. package/dist/components/TabBar.cjs.map +1 -0
  187. package/dist/components/TabBar.d.ts +1 -0
  188. package/dist/components/TabBar.d.ts.map +1 -0
  189. package/dist/components/TabBar.js +2 -1
  190. package/dist/components/TabBar.js.map +1 -0
  191. package/dist/components/ThemeSelect.d.ts +1 -0
  192. package/dist/components/ThemeSelect.d.ts.map +1 -0
  193. package/dist/components/Timer/Timer.d.ts +1 -0
  194. package/dist/components/Timer/Timer.d.ts.map +1 -0
  195. package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
  196. package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
  197. package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
  198. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
  199. package/dist/components/Timer/TimerDefaultVariant.js +1 -0
  200. package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
  201. package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
  202. package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
  203. package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
  204. package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
  205. package/dist/components/Timer/TimerSmallVariant.js +1 -0
  206. package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
  207. package/dist/components/Timer/index.cjs +2 -1
  208. package/dist/components/Timer/index.cjs.map +1 -0
  209. package/dist/components/Timer/index.d.ts +1 -0
  210. package/dist/components/Timer/index.d.ts.map +1 -0
  211. package/dist/components/Timer/index.js +12 -11
  212. package/dist/components/Timer/index.js.map +1 -0
  213. package/dist/components/Timer/types.d.ts +1 -0
  214. package/dist/components/Timer/types.d.ts.map +1 -0
  215. package/dist/components/Timer/useTimerAnimations.cjs +1 -0
  216. package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
  217. package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
  218. package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
  219. package/dist/components/Timer/useTimerAnimations.js +2 -5
  220. package/dist/components/Timer/useTimerAnimations.js.map +1 -0
  221. package/dist/components/Timer/useTimerLogic.cjs +1 -0
  222. package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
  223. package/dist/components/Timer/useTimerLogic.d.ts +1 -0
  224. package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
  225. package/dist/components/Timer/useTimerLogic.js +1 -0
  226. package/dist/components/Timer/useTimerLogic.js.map +1 -0
  227. package/dist/components/Timer/utils.cjs +2 -1
  228. package/dist/components/Timer/utils.cjs.map +1 -0
  229. package/dist/components/Timer/utils.d.ts +1 -0
  230. package/dist/components/Timer/utils.d.ts.map +1 -0
  231. package/dist/components/Timer/utils.js +10 -10
  232. package/dist/components/Timer/utils.js.map +1 -0
  233. package/dist/components/Timer.cjs +1 -0
  234. package/dist/components/Timer.cjs.map +1 -0
  235. package/dist/components/Timer.d.ts +1 -0
  236. package/dist/components/Timer.d.ts.map +1 -0
  237. package/dist/components/Timer.js +1 -0
  238. package/dist/components/Timer.js.map +1 -0
  239. package/dist/components/TransparentOverlay.d.ts +1 -0
  240. package/dist/components/TransparentOverlay.d.ts.map +1 -0
  241. package/dist/components/VelocitySlider.cjs +1 -0
  242. package/dist/components/VelocitySlider.cjs.map +1 -0
  243. package/dist/components/VelocitySlider.d.ts +1 -0
  244. package/dist/components/VelocitySlider.d.ts.map +1 -0
  245. package/dist/components/VelocitySlider.js +1 -0
  246. package/dist/components/VelocitySlider.js.map +1 -0
  247. package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
  248. package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
  249. package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
  250. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
  251. package/dist/components/experimental/utils/AdornedSelect.js +1 -0
  252. package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
  253. package/dist/components/jogging/JoggingBlocked.cjs +1 -0
  254. package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
  255. package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
  256. package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
  257. package/dist/components/jogging/JoggingBlocked.js +1 -0
  258. package/dist/components/jogging/JoggingBlocked.js.map +1 -0
  259. package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
  260. package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
  261. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
  262. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
  263. package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
  264. package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
  265. package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
  266. package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
  267. package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
  268. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
  269. package/dist/components/jogging/JoggingCartesianTab.js +41 -37
  270. package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
  271. package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
  272. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
  273. package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
  274. package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
  275. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
  276. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
  277. package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
  278. package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
  279. package/dist/components/jogging/JoggingJointTab.cjs +2 -1
  280. package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
  281. package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
  282. package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
  283. package/dist/components/jogging/JoggingJointTab.js +1 -0
  284. package/dist/components/jogging/JoggingJointTab.js.map +1 -0
  285. package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
  286. package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
  287. package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
  288. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
  289. package/dist/components/jogging/JoggingJointValueControl.js +2 -1
  290. package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
  291. package/dist/components/jogging/JoggingOptions.cjs +2 -1
  292. package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
  293. package/dist/components/jogging/JoggingOptions.d.ts +1 -0
  294. package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
  295. package/dist/components/jogging/JoggingOptions.js +1 -0
  296. package/dist/components/jogging/JoggingOptions.js.map +1 -0
  297. package/dist/components/jogging/JoggingPanel.cjs +2 -1
  298. package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
  299. package/dist/components/jogging/JoggingPanel.d.ts +1 -0
  300. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
  301. package/dist/components/jogging/JoggingPanel.js +119 -21
  302. package/dist/components/jogging/JoggingPanel.js.map +1 -0
  303. package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
  304. package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
  305. package/dist/components/jogging/JoggingStore.cjs +1 -0
  306. package/dist/components/jogging/JoggingStore.cjs.map +1 -0
  307. package/dist/components/jogging/JoggingStore.d.ts +1 -0
  308. package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
  309. package/dist/components/jogging/JoggingStore.js +1 -0
  310. package/dist/components/jogging/JoggingStore.js.map +1 -0
  311. package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
  312. package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
  313. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
  314. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
  315. package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
  316. package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
  317. package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
  318. package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
  319. package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
  320. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
  321. package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
  322. package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
  323. package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
  324. package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
  325. package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
  326. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
  327. package/dist/components/jogging/PoseCartesianValues.js +5 -4
  328. package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
  329. package/dist/components/jogging/PoseJointValues.cjs +2 -1
  330. package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
  331. package/dist/components/jogging/PoseJointValues.d.ts +1 -0
  332. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
  333. package/dist/components/jogging/PoseJointValues.js +2 -1
  334. package/dist/components/jogging/PoseJointValues.js.map +1 -0
  335. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
  336. package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
  337. package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
  338. package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
  339. package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
  340. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
  341. package/dist/components/modal/NoMotionGroupModal.js +1 -0
  342. package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
  343. package/dist/components/robots/AxisConfig.cjs +1 -0
  344. package/dist/components/robots/AxisConfig.cjs.map +1 -0
  345. package/dist/components/robots/AxisConfig.d.ts +1 -0
  346. package/dist/components/robots/AxisConfig.d.ts.map +1 -0
  347. package/dist/components/robots/AxisConfig.js +1 -0
  348. package/dist/components/robots/AxisConfig.js.map +1 -0
  349. package/dist/components/robots/DHLinearAxis.cjs +2 -1
  350. package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
  351. package/dist/components/robots/DHLinearAxis.d.ts +1 -0
  352. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
  353. package/dist/components/robots/DHLinearAxis.js +1 -0
  354. package/dist/components/robots/DHLinearAxis.js.map +1 -0
  355. package/dist/components/robots/DHRobot.cjs +2 -1
  356. package/dist/components/robots/DHRobot.cjs.map +1 -0
  357. package/dist/components/robots/DHRobot.d.ts +1 -0
  358. package/dist/components/robots/DHRobot.d.ts.map +1 -0
  359. package/dist/components/robots/DHRobot.js +1 -0
  360. package/dist/components/robots/DHRobot.js.map +1 -0
  361. package/dist/components/robots/GenericRobot.cjs +1 -0
  362. package/dist/components/robots/GenericRobot.cjs.map +1 -0
  363. package/dist/components/robots/GenericRobot.d.ts +1 -0
  364. package/dist/components/robots/GenericRobot.d.ts.map +1 -0
  365. package/dist/components/robots/GenericRobot.js +1 -0
  366. package/dist/components/robots/GenericRobot.js.map +1 -0
  367. package/dist/components/robots/LinearAxis.cjs +2 -1
  368. package/dist/components/robots/LinearAxis.cjs.map +1 -0
  369. package/dist/components/robots/LinearAxis.d.ts +1 -0
  370. package/dist/components/robots/LinearAxis.d.ts.map +1 -0
  371. package/dist/components/robots/LinearAxis.js +1 -0
  372. package/dist/components/robots/LinearAxis.js.map +1 -0
  373. package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
  374. package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
  375. package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
  376. package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
  377. package/dist/components/robots/LinearAxisAnimator.js +1 -0
  378. package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
  379. package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
  380. package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
  381. package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
  382. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
  383. package/dist/components/robots/MotionGroupVisualizer.js +5 -4
  384. package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
  385. package/dist/components/robots/Robot.cjs +2 -1
  386. package/dist/components/robots/Robot.cjs.map +1 -0
  387. package/dist/components/robots/Robot.d.ts +1 -0
  388. package/dist/components/robots/Robot.d.ts.map +1 -0
  389. package/dist/components/robots/Robot.js +1 -0
  390. package/dist/components/robots/Robot.js.map +1 -0
  391. package/dist/components/robots/RobotAnimator.cjs +2 -1
  392. package/dist/components/robots/RobotAnimator.cjs.map +1 -0
  393. package/dist/components/robots/RobotAnimator.d.ts +1 -0
  394. package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
  395. package/dist/components/robots/RobotAnimator.js +1 -0
  396. package/dist/components/robots/RobotAnimator.js.map +1 -0
  397. package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
  398. package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
  399. package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
  400. package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
  401. package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
  402. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
  403. package/dist/components/robots/SupportedLinearAxis.js +8 -7
  404. package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
  405. package/dist/components/robots/SupportedRobot.cjs +2 -1
  406. package/dist/components/robots/SupportedRobot.cjs.map +1 -0
  407. package/dist/components/robots/SupportedRobot.d.ts +1 -0
  408. package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
  409. package/dist/components/robots/SupportedRobot.js +7 -6
  410. package/dist/components/robots/SupportedRobot.js.map +1 -0
  411. package/dist/components/robots/ghostStyle.cjs +1 -0
  412. package/dist/components/robots/ghostStyle.cjs.map +1 -0
  413. package/dist/components/robots/ghostStyle.d.ts +1 -0
  414. package/dist/components/robots/ghostStyle.d.ts.map +1 -0
  415. package/dist/components/robots/ghostStyle.js +1 -0
  416. package/dist/components/robots/ghostStyle.js.map +1 -0
  417. package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
  418. package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
  419. package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
  420. package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
  421. package/dist/components/robots/manufacturerHomePositions.js +1 -0
  422. package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
  423. package/dist/components/robots/robotModelLogic.cjs +2 -1
  424. package/dist/components/robots/robotModelLogic.cjs.map +1 -0
  425. package/dist/components/robots/robotModelLogic.d.ts +1 -0
  426. package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
  427. package/dist/components/robots/robotModelLogic.js +34 -58
  428. package/dist/components/robots/robotModelLogic.js.map +1 -0
  429. package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
  430. package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
  431. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
  432. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
  433. package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
  434. package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
  435. package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
  436. package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
  437. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
  438. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
  439. package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
  440. package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
  441. package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
  442. package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
  443. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
  444. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
  445. package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
  446. package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
  447. package/dist/components/safetyBar/SafetyBar.cjs +2 -1
  448. package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
  449. package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
  450. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
  451. package/dist/components/safetyBar/SafetyBar.js +16 -15
  452. package/dist/components/safetyBar/SafetyBar.js.map +1 -0
  453. package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
  454. package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
  455. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
  456. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
  457. package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
  458. package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
  459. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
  460. package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
  461. package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
  462. package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
  463. package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
  464. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
  465. package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
  466. package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
  467. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
  468. package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
  469. package/dist/components/safetyBar/icons/index.d.ts +1 -0
  470. package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
  471. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
  472. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
  473. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
  474. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
  475. package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
  476. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
  477. package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
  478. package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
  479. package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
  480. package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
  481. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
  482. package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
  483. package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
  484. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
  485. package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
  486. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
  487. package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
  488. package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
  489. package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
  490. package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
  491. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
  492. package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
  493. package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
  494. package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
  495. package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
  496. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
  497. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
  498. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
  499. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
  500. package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
  501. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
  502. package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
  503. package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
  504. package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
  505. package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
  506. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
  507. package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
  508. package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
  509. package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
  510. package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
  511. package/dist/components/utils/converters.cjs +2 -1
  512. package/dist/components/utils/converters.cjs.map +1 -0
  513. package/dist/components/utils/converters.d.ts +1 -0
  514. package/dist/components/utils/converters.d.ts.map +1 -0
  515. package/dist/components/utils/converters.js +11 -26
  516. package/dist/components/utils/converters.js.map +1 -0
  517. package/dist/components/utils/errorHandling.cjs +2 -1
  518. package/dist/components/utils/errorHandling.cjs.map +1 -0
  519. package/dist/components/utils/errorHandling.d.ts +1 -0
  520. package/dist/components/utils/errorHandling.d.ts.map +1 -0
  521. package/dist/components/utils/errorHandling.js +9 -17
  522. package/dist/components/utils/errorHandling.js.map +1 -0
  523. package/dist/components/utils/errorHandling.test.d.ts +2 -0
  524. package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
  525. package/dist/components/utils/hooks.cjs +1 -0
  526. package/dist/components/utils/hooks.cjs.map +1 -0
  527. package/dist/components/utils/hooks.d.ts +1 -0
  528. package/dist/components/utils/hooks.d.ts.map +1 -0
  529. package/dist/components/utils/hooks.js +4 -3
  530. package/dist/components/utils/hooks.js.map +1 -0
  531. package/dist/components/utils/interpolation.cjs +1 -0
  532. package/dist/components/utils/interpolation.cjs.map +1 -0
  533. package/dist/components/utils/interpolation.d.ts +1 -0
  534. package/dist/components/utils/interpolation.d.ts.map +1 -0
  535. package/dist/components/utils/interpolation.js +1 -0
  536. package/dist/components/utils/interpolation.js.map +1 -0
  537. package/dist/components/utils/interpolation.test.d.ts +2 -0
  538. package/dist/components/utils/interpolation.test.d.ts.map +1 -0
  539. package/dist/core.cjs +2 -1
  540. package/dist/core.cjs.map +1 -0
  541. package/dist/core.d.ts +1 -0
  542. package/dist/core.d.ts.map +1 -0
  543. package/dist/core.js +75 -70
  544. package/dist/core.js.map +1 -0
  545. package/dist/externalizeComponent.cjs +2 -0
  546. package/dist/externalizeComponent.cjs.map +1 -0
  547. package/dist/externalizeComponent.d.ts +1 -0
  548. package/dist/externalizeComponent.d.ts.map +1 -0
  549. package/dist/externalizeComponent.js +13 -0
  550. package/dist/externalizeComponent.js.map +1 -0
  551. package/dist/i18n/config.cjs +2 -0
  552. package/dist/i18n/config.cjs.map +1 -0
  553. package/dist/i18n/config.d.ts +1 -0
  554. package/dist/i18n/config.d.ts.map +1 -0
  555. package/dist/i18n/config.js +25 -0
  556. package/dist/i18n/config.js.map +1 -0
  557. package/dist/i18n/locales/de/translations.json.cjs +3 -0
  558. package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
  559. package/dist/i18n/locales/de/translations.json.js +94 -0
  560. package/dist/i18n/locales/de/translations.json.js.map +1 -0
  561. package/dist/i18n/locales/en/translations.json.cjs +2 -0
  562. package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
  563. package/dist/i18n/locales/en/translations.json.js +94 -0
  564. package/dist/i18n/locales/en/translations.json.js.map +1 -0
  565. package/dist/icons/DropdownArrowIcon.cjs +2 -0
  566. package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
  567. package/dist/icons/DropdownArrowIcon.d.ts +1 -0
  568. package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
  569. package/dist/icons/DropdownArrowIcon.js +14 -0
  570. package/dist/icons/DropdownArrowIcon.js.map +1 -0
  571. package/dist/icons/axis-x.svg.cjs +2 -0
  572. package/dist/icons/axis-x.svg.cjs.map +1 -0
  573. package/dist/icons/axis-x.svg.d.ts +3 -0
  574. package/dist/icons/axis-x.svg.js +11 -0
  575. package/dist/icons/axis-x.svg.js.map +1 -0
  576. package/dist/icons/axis-y.svg.cjs +2 -0
  577. package/dist/icons/axis-y.svg.cjs.map +1 -0
  578. package/dist/icons/axis-y.svg.d.ts +3 -0
  579. package/dist/icons/axis-y.svg.js +11 -0
  580. package/dist/icons/axis-y.svg.js.map +1 -0
  581. package/dist/icons/axis-z.svg.cjs +2 -0
  582. package/dist/icons/axis-z.svg.cjs.map +1 -0
  583. package/dist/icons/axis-z.svg.d.ts +3 -0
  584. package/dist/icons/axis-z.svg.js +11 -0
  585. package/dist/icons/axis-z.svg.js.map +1 -0
  586. package/dist/icons/home.svg.cjs +2 -0
  587. package/dist/icons/home.svg.cjs.map +1 -0
  588. package/dist/icons/home.svg.d.ts +3 -0
  589. package/dist/icons/home.svg.js +11 -0
  590. package/dist/icons/home.svg.js.map +1 -0
  591. package/dist/icons/index.d.ts +1 -0
  592. package/dist/icons/index.d.ts.map +1 -0
  593. package/dist/icons/jog-minus.svg.cjs +2 -0
  594. package/dist/icons/jog-minus.svg.cjs.map +1 -0
  595. package/dist/icons/jog-minus.svg.d.ts +3 -0
  596. package/dist/icons/jog-minus.svg.js +11 -0
  597. package/dist/icons/jog-minus.svg.js.map +1 -0
  598. package/dist/icons/jog-plus.svg.cjs +2 -0
  599. package/dist/icons/jog-plus.svg.cjs.map +1 -0
  600. package/dist/icons/jog-plus.svg.d.ts +3 -0
  601. package/dist/icons/jog-plus.svg.js +11 -0
  602. package/dist/icons/jog-plus.svg.js.map +1 -0
  603. package/dist/icons/jogging.svg.cjs +2 -0
  604. package/dist/icons/jogging.svg.cjs.map +1 -0
  605. package/dist/icons/jogging.svg.d.ts +3 -0
  606. package/dist/icons/jogging.svg.js +11 -0
  607. package/dist/icons/jogging.svg.js.map +1 -0
  608. package/dist/icons/orientation-coord-system.svg.cjs +2 -0
  609. package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
  610. package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
  611. package/dist/icons/orientation-coord-system.svg.js +11 -0
  612. package/dist/icons/orientation-coord-system.svg.js.map +1 -0
  613. package/dist/icons/orientation-tool.svg.cjs +2 -0
  614. package/dist/icons/orientation-tool.svg.cjs.map +1 -0
  615. package/dist/icons/orientation-tool.svg.d.ts +3 -0
  616. package/dist/icons/orientation-tool.svg.js +11 -0
  617. package/dist/icons/orientation-tool.svg.js.map +1 -0
  618. package/dist/icons/robot.svg.cjs +2 -0
  619. package/dist/icons/robot.svg.cjs.map +1 -0
  620. package/dist/icons/robot.svg.d.ts +3 -0
  621. package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
  622. package/dist/icons/robot.svg.js.map +1 -0
  623. package/dist/icons/rotation.svg.cjs +2 -0
  624. package/dist/icons/rotation.svg.cjs.map +1 -0
  625. package/dist/icons/rotation.svg.d.ts +3 -0
  626. package/dist/icons/rotation.svg.js +11 -0
  627. package/dist/icons/rotation.svg.js.map +1 -0
  628. package/dist/icons/wbLogo.svg.cjs +2 -0
  629. package/dist/icons/wbLogo.svg.cjs.map +1 -0
  630. package/dist/icons/wbLogo.svg.d.ts +3 -0
  631. package/dist/icons/wbLogo.svg.js +11 -0
  632. package/dist/icons/wbLogo.svg.js.map +1 -0
  633. package/dist/index.cjs +2 -1
  634. package/dist/index.cjs.map +1 -0
  635. package/dist/index.d.ts +1 -0
  636. package/dist/index.d.ts.map +1 -0
  637. package/dist/index.js +140 -120
  638. package/dist/index.js.map +1 -0
  639. package/dist/lib/ConnectedMotionGroup.cjs +4 -0
  640. package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
  641. package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
  642. package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
  643. package/dist/lib/ConnectedMotionGroup.js +250 -0
  644. package/dist/lib/ConnectedMotionGroup.js.map +1 -0
  645. package/dist/lib/JoggerConnection.cjs +2 -0
  646. package/dist/lib/JoggerConnection.cjs.map +1 -0
  647. package/dist/lib/JoggerConnection.d.ts +1 -0
  648. package/dist/lib/JoggerConnection.d.ts.map +1 -0
  649. package/dist/lib/JoggerConnection.js +342 -0
  650. package/dist/lib/JoggerConnection.js.map +1 -0
  651. package/dist/lib/JoggerConnection.test.d.ts +2 -0
  652. package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
  653. package/dist/lib/MotionStreamConnection.cjs +3 -0
  654. package/dist/lib/MotionStreamConnection.cjs.map +1 -0
  655. package/dist/lib/MotionStreamConnection.d.ts +1 -0
  656. package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
  657. package/dist/lib/MotionStreamConnection.js +94 -0
  658. package/dist/lib/MotionStreamConnection.js.map +1 -0
  659. package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
  660. package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
  661. package/dist/lib/motionStateUpdate.cjs +2 -0
  662. package/dist/lib/motionStateUpdate.cjs.map +1 -0
  663. package/dist/lib/motionStateUpdate.d.ts +1 -0
  664. package/dist/lib/motionStateUpdate.d.ts.map +1 -0
  665. package/dist/lib/motionStateUpdate.js +49 -0
  666. package/dist/lib/motionStateUpdate.js.map +1 -0
  667. package/dist/lib/motionStateUpdate.test.d.ts +2 -0
  668. package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
  669. package/dist/test/consumer.test.d.ts +2 -0
  670. package/dist/test/consumer.test.d.ts.map +1 -0
  671. package/dist/test/setup.d.ts +2 -0
  672. package/dist/test/setup.d.ts.map +1 -0
  673. package/dist/themes/createDarkTheme.cjs +2 -0
  674. package/dist/themes/createDarkTheme.cjs.map +1 -0
  675. package/dist/themes/createDarkTheme.d.ts +1 -0
  676. package/dist/themes/createDarkTheme.d.ts.map +1 -0
  677. package/dist/themes/createDarkTheme.js +344 -0
  678. package/dist/themes/createDarkTheme.js.map +1 -0
  679. package/dist/themes/createLightTheme.cjs +2 -0
  680. package/dist/themes/createLightTheme.cjs.map +1 -0
  681. package/dist/themes/createLightTheme.d.ts +1 -0
  682. package/dist/themes/createLightTheme.d.ts.map +1 -0
  683. package/dist/themes/createLightTheme.js +9 -0
  684. package/dist/themes/createLightTheme.js.map +1 -0
  685. package/dist/themes/themeTypes.d.ts +1 -0
  686. package/dist/themes/themeTypes.d.ts.map +1 -0
  687. package/dist/themes/theming.cjs +2 -0
  688. package/dist/themes/theming.cjs.map +1 -0
  689. package/dist/themes/theming.d.ts +1 -0
  690. package/dist/themes/theming.d.ts.map +1 -0
  691. package/dist/themes/theming.js +14 -0
  692. package/dist/themes/theming.js.map +1 -0
  693. package/dist/wb-icons.cjs +2 -1
  694. package/dist/wb-icons.cjs.map +1 -0
  695. package/dist/wb-icons.d.ts +1 -0
  696. package/dist/wb-icons.d.ts.map +1 -0
  697. package/dist/wb-icons.js +44 -28
  698. package/dist/wb-icons.js.map +1 -0
  699. package/package.json +6 -5
  700. package/src/3d.ts +18 -0
  701. package/src/Setup.tsx +33 -0
  702. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
  703. package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
  704. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
  705. package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
  706. package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
  707. package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
  708. package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
  709. package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
  710. package/src/components/AppHeader.md +84 -0
  711. package/src/components/AppHeader.tsx +197 -0
  712. package/src/components/ConsoleFilter.tsx +24 -0
  713. package/src/components/CopyableText.tsx +89 -0
  714. package/src/components/CycleTimer/CycleTimer.ts +8 -0
  715. package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
  716. package/src/components/CycleTimer/SmallVariant.tsx +229 -0
  717. package/src/components/CycleTimer/index.tsx +158 -0
  718. package/src/components/CycleTimer/types.ts +58 -0
  719. package/src/components/CycleTimer/useAnimations.ts +202 -0
  720. package/src/components/CycleTimer/useTimerLogic.ts +330 -0
  721. package/src/components/CycleTimer/utils.ts +122 -0
  722. package/src/components/CycleTimer.tsx +8 -0
  723. package/src/components/DataGrid.tsx +664 -0
  724. package/src/components/LoadingCover.tsx +91 -0
  725. package/src/components/LogPanel.tsx +71 -0
  726. package/src/components/LogStore.ts +46 -0
  727. package/src/components/LogViewer.tsx +368 -0
  728. package/src/components/ProgramControl.tsx +267 -0
  729. package/src/components/ProgramStateIndicator.tsx +195 -0
  730. package/src/components/RobotCard.tsx +495 -0
  731. package/src/components/RobotListItem.tsx +155 -0
  732. package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
  733. package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
  734. package/src/components/SelectableFab.tsx +52 -0
  735. package/src/components/TabBar.tsx +325 -0
  736. package/src/components/ThemeSelect.tsx +51 -0
  737. package/src/components/Timer/Timer.ts +4 -0
  738. package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
  739. package/src/components/Timer/TimerSmallVariant.tsx +141 -0
  740. package/src/components/Timer/index.tsx +103 -0
  741. package/src/components/Timer/types.ts +38 -0
  742. package/src/components/Timer/useTimerAnimations.ts +94 -0
  743. package/src/components/Timer/useTimerLogic.ts +214 -0
  744. package/src/components/Timer/utils.ts +87 -0
  745. package/src/components/Timer.ts +4 -0
  746. package/src/components/TransparentOverlay.tsx +28 -0
  747. package/src/components/VelocitySlider.tsx +117 -0
  748. package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
  749. package/src/components/jogging/JoggingBlocked.tsx +43 -0
  750. package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
  751. package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
  752. package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
  753. package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
  754. package/src/components/jogging/JoggingJointTab.tsx +126 -0
  755. package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
  756. package/src/components/jogging/JoggingOptions.tsx +163 -0
  757. package/src/components/jogging/JoggingPanel.test.tsx +645 -0
  758. package/src/components/jogging/JoggingPanel.tsx +204 -0
  759. package/src/components/jogging/JoggingStore.ts +485 -0
  760. package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
  761. package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
  762. package/src/components/jogging/PoseCartesianValues.tsx +55 -0
  763. package/src/components/jogging/PoseJointValues.tsx +54 -0
  764. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
  765. package/src/components/modal/NoMotionGroupModal.tsx +91 -0
  766. package/src/components/robots/AxisConfig.ts +3 -0
  767. package/src/components/robots/DHLinearAxis.tsx +147 -0
  768. package/src/components/robots/DHRobot.tsx +152 -0
  769. package/src/components/robots/GenericRobot.tsx +137 -0
  770. package/src/components/robots/LinearAxis.tsx +74 -0
  771. package/src/components/robots/LinearAxisAnimator.tsx +118 -0
  772. package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
  773. package/src/components/robots/Robot.tsx +57 -0
  774. package/src/components/robots/RobotAnimator.test.tsx +98 -0
  775. package/src/components/robots/RobotAnimator.tsx +116 -0
  776. package/src/components/robots/SupportedLinearAxis.tsx +110 -0
  777. package/src/components/robots/SupportedRobot.tsx +111 -0
  778. package/src/components/robots/ghostStyle.ts +71 -0
  779. package/src/components/robots/manufacturerHomePositions.ts +76 -0
  780. package/src/components/robots/robotModelLogic.ts +158 -0
  781. package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
  782. package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
  783. package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
  784. package/src/components/safetyBar/SafetyBar.tsx +72 -0
  785. package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
  786. package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
  787. package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
  788. package/src/components/safetyBar/icons/index.ts +10 -0
  789. package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
  790. package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
  791. package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
  792. package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
  793. package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
  794. package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
  795. package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
  796. package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
  797. package/src/components/utils/converters.ts +90 -0
  798. package/src/components/utils/errorHandling.test.ts +41 -0
  799. package/src/components/utils/errorHandling.ts +38 -0
  800. package/src/components/utils/hooks.tsx +55 -0
  801. package/src/components/utils/interpolation.test.ts +1138 -0
  802. package/src/components/utils/interpolation.ts +380 -0
  803. package/src/core.ts +33 -0
  804. package/src/declarations.d.ts +10 -0
  805. package/src/env.d.ts +3 -0
  806. package/src/externalizeComponent.tsx +28 -0
  807. package/src/i18n/config.ts +26 -0
  808. package/src/i18n/locales/de/translations.json +89 -0
  809. package/src/i18n/locales/en/translations.json +90 -0
  810. package/src/icons/DropdownArrowIcon.tsx +12 -0
  811. package/src/icons/axis-x.svg +1 -0
  812. package/src/icons/axis-y.svg +1 -0
  813. package/src/icons/axis-z.svg +1 -0
  814. package/src/icons/home.svg +1 -0
  815. package/src/icons/index.ts +12 -0
  816. package/src/icons/jog-minus.svg +5 -0
  817. package/src/icons/jog-plus.svg +9 -0
  818. package/src/icons/jogging.svg +1 -0
  819. package/src/icons/orientation-coord-system.svg +1 -0
  820. package/src/icons/orientation-tool.svg +1 -0
  821. package/src/icons/robot.svg +1 -0
  822. package/src/icons/rotation.svg +3 -0
  823. package/src/icons/wbLogo.svg +1 -0
  824. package/src/index.ts +4 -0
  825. package/src/lib/ConnectedMotionGroup.ts +441 -0
  826. package/src/lib/JoggerConnection.test.ts +122 -0
  827. package/src/lib/JoggerConnection.ts +694 -0
  828. package/src/lib/MotionStreamConnection.test.ts +23 -0
  829. package/src/lib/MotionStreamConnection.ts +186 -0
  830. package/src/lib/motionStateUpdate.test.ts +28 -0
  831. package/src/lib/motionStateUpdate.ts +117 -0
  832. package/src/test/consumer.test.ts +257 -0
  833. package/src/test/setup.ts +111 -0
  834. package/src/themes/createDarkTheme.ts +343 -0
  835. package/src/themes/createLightTheme.ts +8 -0
  836. package/src/themes/themeTypes.ts +96 -0
  837. package/src/themes/theming.ts +29 -0
  838. package/src/wb-icons.ts +3 -0
  839. package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
  840. package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
  841. package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
  842. package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
  843. package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
  844. package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
  845. package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
  846. package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
  847. package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
  848. package/dist/chunks/robot-CrNbCELh.cjs +0 -1
  849. package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
  850. package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
  851. package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
  852. package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
  853. package/dist/chunks/theming-Chx_tewl.cjs +0 -3
  854. package/dist/chunks/theming-Cw6qwBM7.js +0 -600
  855. package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
  856. package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
  857. package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
  858. package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
  859. package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
  860. package/dist/components/CycleTimer/CycleTimer.js +0 -5
  861. package/dist/components/CycleTimer/types.cjs +0 -1
  862. package/dist/components/CycleTimer/types.js +0 -1
  863. package/dist/components/ThemeSelect.cjs +0 -1
  864. package/dist/components/ThemeSelect.js +0 -38
  865. package/dist/components/Timer/Timer.cjs +0 -1
  866. package/dist/components/Timer/Timer.js +0 -5
  867. package/dist/components/Timer/types.cjs +0 -1
  868. package/dist/components/Timer/types.js +0 -1
  869. package/dist/components/TransparentOverlay.cjs +0 -1
  870. package/dist/components/TransparentOverlay.js +0 -26
  871. package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
  872. package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
  873. package/dist/components/safetyBar/icons/index.cjs +0 -1
  874. package/dist/components/safetyBar/icons/index.js +0 -15
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramStateIndicator.cjs","sources":["../../src/components/ProgramStateIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport Chip from \"@mui/material/Chip\"\nimport Typography from \"@mui/material/Typography\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport { ProgramState } from \"./ProgramControl\"\n\nexport interface ProgramStateIndicatorProps {\n /** The current state of the program */\n programState: ProgramState\n /** The current safety state of the robot controller */\n safetyState: SafetyStateType\n /** The current operation mode of the robot controller */\n operationMode: OperationMode\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A state indicator component that displays the current program execution state\n * combined with robot controller safety and operation mode states.\n *\n * Features:\n * - Combines program state with safety and operation mode states\n * - Color-coded based on state severity (success, warning, error)\n * - Rendered as Material-UI filled chip\n * - Localization support via react-i18next\n */\nexport const ProgramStateIndicator = externalizeComponent(\n observer(\n ({\n programState,\n safetyState,\n operationMode,\n className,\n }: ProgramStateIndicatorProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n\n const getStateInfo = () => {\n // First check for emergency stop or critical safety states\n if (\n safetyState === \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP_0\" ||\n safetyState === \"SAFETY_STATE_STOP_1\" ||\n safetyState === \"SAFETY_STATE_STOP_2\" ||\n safetyState === \"SAFETY_STATE_PROTECTIVE_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP\" ||\n safetyState === \"SAFETY_STATE_REDUCED\" ||\n safetyState === \"SAFETY_STATE_MASTERING\" ||\n safetyState === \"SAFETY_STATE_CONFIRM_SAFETY\" ||\n safetyState === \"SAFETY_STATE_OPERATOR_SAFETY\" ||\n safetyState === \"SAFETY_STATE_RECOVERY\" ||\n safetyState === \"SAFETY_STATE_VIOLATION\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.EStop.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // Check for error states\n if (\n safetyState === \"SAFETY_STATE_UNKNOWN\" ||\n safetyState === \"SAFETY_STATE_FAULT\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // For normal safety states, check program state\n if (safetyState === \"SAFETY_STATE_NORMAL\") {\n switch (programState) {\n case ProgramState.PREPARING:\n return {\n label: t(\"ProgramStateIndicator.Preparing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.STARTING:\n return {\n label: t(\"ProgramStateIndicator.Starting.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.RUNNING:\n return {\n label: t(\"ProgramStateIndicator.Running.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.PAUSING:\n return {\n label: t(\"ProgramStateIndicator.Pausing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.PAUSED:\n return {\n label: t(\"ProgramStateIndicator.Paused.lb\"),\n color: theme.palette.grey[600],\n }\n case ProgramState.STOPPING:\n return {\n label: t(\"ProgramStateIndicator.Stopping.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.COMPLETED:\n return {\n label: t(\"ProgramStateIndicator.Completed.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.FAILED:\n return {\n label: t(\"ProgramStateIndicator.Failed.lb\"),\n color: theme.palette.error.main,\n }\n case ProgramState.STOPPED:\n return {\n label: t(\"ProgramStateIndicator.Stopped.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.ERROR:\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n default:\n return {\n label: t(\"ProgramStateIndicator.Ready.lb\"),\n color: theme.palette.success.main,\n }\n }\n }\n\n // Default fallback\n return {\n label: t(\"ProgramStateIndicator.Idle.lb\"),\n color: theme.palette.grey[600],\n }\n }\n\n const { label, color } = getStateInfo()\n\n // Add operation mode suffix if not automatic\n const getOperationModeText = () => {\n switch (operationMode) {\n case \"OPERATION_MODE_AUTO\":\n return t(\"ProgramStateIndicator.Auto.lb\")\n case \"OPERATION_MODE_MANUAL\":\n return t(\"ProgramStateIndicator.Manual.lb\")\n case \"OPERATION_MODE_MANUAL_T1\":\n return t(\"ProgramStateIndicator.ManualT1.lb\")\n case \"OPERATION_MODE_MANUAL_T2\":\n return t(\"ProgramStateIndicator.ManualT2.lb\")\n default:\n return t(\"ProgramStateIndicator.Auto.lb\") // Default to Auto for unknown modes\n }\n }\n\n const fullLabel = `${label} / ${getOperationModeText()}`\n\n return (\n <Chip\n className={className}\n label={\n <Typography\n variant=\"body2\"\n sx={{\n fontSize: \"0.75rem\", // Smaller than body2\n lineHeight: 1.2,\n }}\n >\n {fullLabel}\n </Typography>\n }\n variant=\"filled\"\n sx={{\n backgroundColor: color,\n color: theme.palette.getContrastText(color),\n fontWeight: 500,\n height: \"auto\",\n \"& .MuiChip-label\": {\n paddingX: 1.5,\n paddingY: 0.5,\n },\n }}\n />\n )\n },\n ),\n)\n\nexport default ProgramStateIndicator\n"],"names":["ProgramStateIndicator","externalizeComponent","observer","programState","safetyState","operationMode","className","theme","useTheme","t","useTranslation","getStateInfo","ProgramState","label","color","fullLabel","jsx","Chip","Typography"],"mappings":"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"}
@@ -24,3 +24,4 @@ export declare const ProgramStateIndicator: (({ programState, safetyState, opera
24
24
  displayName: string;
25
25
  };
26
26
  export default ProgramStateIndicator;
27
+ //# sourceMappingURL=ProgramStateIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramStateIndicator.d.ts","sourceRoot":"","sources":["../../src/components/ProgramStateIndicator.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI5E,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B,uDAAuD;IACvD,WAAW,EAAE,eAAe,CAAA;IAC5B,yDAAyD;IACzD,aAAa,EAAE,aAAa,CAAA;IAC5B,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8DAO3B,0BAA0B;;CA2JhC,CAAA;AAED,eAAe,qBAAqB,CAAA"}
@@ -4,8 +4,8 @@ import m from "@mui/material/Chip";
4
4
  import _ from "@mui/material/Typography";
5
5
  import { observer as P } from "mobx-react-lite";
6
6
  import { useTranslation as g } from "react-i18next";
7
- import { e as b } from "../chunks/externalizeComponent-eiCc5DIh.js";
8
- import { ProgramState as o } from "./ProgramControl.js";
7
+ import { externalizeComponent as b } from "../externalizeComponent.js";
8
+ import { ProgramState as e } from "./ProgramControl.js";
9
9
  const Y = b(
10
10
  P(
11
11
  ({
@@ -14,78 +14,78 @@ const Y = b(
14
14
  operationMode: T,
15
15
  className: i
16
16
  }) => {
17
- const e = A(), { t: r } = g(), E = () => {
17
+ const o = A(), { t: r } = g(), E = () => {
18
18
  if (a === "SAFETY_STATE_DEVICE_EMERGENCY_STOP" || a === "SAFETY_STATE_ROBOT_EMERGENCY_STOP" || a === "SAFETY_STATE_STOP_0" || a === "SAFETY_STATE_STOP_1" || a === "SAFETY_STATE_STOP_2" || a === "SAFETY_STATE_PROTECTIVE_STOP" || a === "SAFETY_STATE_STOP" || a === "SAFETY_STATE_REDUCED" || a === "SAFETY_STATE_MASTERING" || a === "SAFETY_STATE_CONFIRM_SAFETY" || a === "SAFETY_STATE_OPERATOR_SAFETY" || a === "SAFETY_STATE_RECOVERY" || a === "SAFETY_STATE_VIOLATION")
19
19
  return {
20
20
  label: r("ProgramStateIndicator.EStop.lb"),
21
- color: e.palette.error.main
21
+ color: o.palette.error.main
22
22
  };
23
23
  if (a === "SAFETY_STATE_UNKNOWN" || a === "SAFETY_STATE_FAULT")
24
24
  return {
25
25
  label: r("ProgramStateIndicator.Error.lb"),
26
- color: e.palette.error.main
26
+ color: o.palette.error.main
27
27
  };
28
28
  if (a === "SAFETY_STATE_NORMAL")
29
29
  switch (n) {
30
- case o.PREPARING:
30
+ case e.PREPARING:
31
31
  return {
32
32
  label: r("ProgramStateIndicator.Preparing.lb"),
33
- color: e.palette.warning.main
33
+ color: o.palette.warning.main
34
34
  };
35
- case o.STARTING:
35
+ case e.STARTING:
36
36
  return {
37
37
  label: r("ProgramStateIndicator.Starting.lb"),
38
- color: e.palette.warning.main
38
+ color: o.palette.warning.main
39
39
  };
40
- case o.RUNNING:
40
+ case e.RUNNING:
41
41
  return {
42
42
  label: r("ProgramStateIndicator.Running.lb"),
43
- color: e.palette.success.main
43
+ color: o.palette.success.main
44
44
  };
45
- case o.PAUSING:
45
+ case e.PAUSING:
46
46
  return {
47
47
  label: r("ProgramStateIndicator.Pausing.lb"),
48
- color: e.palette.warning.main
48
+ color: o.palette.warning.main
49
49
  };
50
- case o.PAUSED:
50
+ case e.PAUSED:
51
51
  return {
52
52
  label: r("ProgramStateIndicator.Paused.lb"),
53
- color: e.palette.grey[600]
53
+ color: o.palette.grey[600]
54
54
  };
55
- case o.STOPPING:
55
+ case e.STOPPING:
56
56
  return {
57
57
  label: r("ProgramStateIndicator.Stopping.lb"),
58
- color: e.palette.warning.main
58
+ color: o.palette.warning.main
59
59
  };
60
- case o.COMPLETED:
60
+ case e.COMPLETED:
61
61
  return {
62
62
  label: r("ProgramStateIndicator.Completed.lb"),
63
- color: e.palette.success.main
63
+ color: o.palette.success.main
64
64
  };
65
- case o.FAILED:
65
+ case e.FAILED:
66
66
  return {
67
67
  label: r("ProgramStateIndicator.Failed.lb"),
68
- color: e.palette.error.main
68
+ color: o.palette.error.main
69
69
  };
70
- case o.STOPPED:
70
+ case e.STOPPED:
71
71
  return {
72
72
  label: r("ProgramStateIndicator.Stopped.lb"),
73
- color: e.palette.warning.main
73
+ color: o.palette.warning.main
74
74
  };
75
- case o.ERROR:
75
+ case e.ERROR:
76
76
  return {
77
77
  label: r("ProgramStateIndicator.Error.lb"),
78
- color: e.palette.error.main
78
+ color: o.palette.error.main
79
79
  };
80
80
  default:
81
81
  return {
82
82
  label: r("ProgramStateIndicator.Ready.lb"),
83
- color: e.palette.success.main
83
+ color: o.palette.success.main
84
84
  };
85
85
  }
86
86
  return {
87
87
  label: r("ProgramStateIndicator.Idle.lb"),
88
- color: e.palette.grey[600]
88
+ color: o.palette.grey[600]
89
89
  };
90
90
  }, { label: c, color: t } = E(), S = `${c} / ${(() => {
91
91
  switch (T) {
@@ -120,7 +120,7 @@ const Y = b(
120
120
  variant: "filled",
121
121
  sx: {
122
122
  backgroundColor: t,
123
- color: e.palette.getContrastText(t),
123
+ color: o.palette.getContrastText(t),
124
124
  fontWeight: 500,
125
125
  height: "auto",
126
126
  "& .MuiChip-label": {
@@ -137,3 +137,4 @@ export {
137
137
  Y as ProgramStateIndicator,
138
138
  Y as default
139
139
  };
140
+ //# sourceMappingURL=ProgramStateIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramStateIndicator.js","sources":["../../src/components/ProgramStateIndicator.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport Chip from \"@mui/material/Chip\"\nimport Typography from \"@mui/material/Typography\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useTranslation } from \"react-i18next\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport { ProgramState } from \"./ProgramControl\"\n\nexport interface ProgramStateIndicatorProps {\n /** The current state of the program */\n programState: ProgramState\n /** The current safety state of the robot controller */\n safetyState: SafetyStateType\n /** The current operation mode of the robot controller */\n operationMode: OperationMode\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A state indicator component that displays the current program execution state\n * combined with robot controller safety and operation mode states.\n *\n * Features:\n * - Combines program state with safety and operation mode states\n * - Color-coded based on state severity (success, warning, error)\n * - Rendered as Material-UI filled chip\n * - Localization support via react-i18next\n */\nexport const ProgramStateIndicator = externalizeComponent(\n observer(\n ({\n programState,\n safetyState,\n operationMode,\n className,\n }: ProgramStateIndicatorProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n\n const getStateInfo = () => {\n // First check for emergency stop or critical safety states\n if (\n safetyState === \"SAFETY_STATE_DEVICE_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_ROBOT_EMERGENCY_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP_0\" ||\n safetyState === \"SAFETY_STATE_STOP_1\" ||\n safetyState === \"SAFETY_STATE_STOP_2\" ||\n safetyState === \"SAFETY_STATE_PROTECTIVE_STOP\" ||\n safetyState === \"SAFETY_STATE_STOP\" ||\n safetyState === \"SAFETY_STATE_REDUCED\" ||\n safetyState === \"SAFETY_STATE_MASTERING\" ||\n safetyState === \"SAFETY_STATE_CONFIRM_SAFETY\" ||\n safetyState === \"SAFETY_STATE_OPERATOR_SAFETY\" ||\n safetyState === \"SAFETY_STATE_RECOVERY\" ||\n safetyState === \"SAFETY_STATE_VIOLATION\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.EStop.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // Check for error states\n if (\n safetyState === \"SAFETY_STATE_UNKNOWN\" ||\n safetyState === \"SAFETY_STATE_FAULT\"\n ) {\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n }\n\n // For normal safety states, check program state\n if (safetyState === \"SAFETY_STATE_NORMAL\") {\n switch (programState) {\n case ProgramState.PREPARING:\n return {\n label: t(\"ProgramStateIndicator.Preparing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.STARTING:\n return {\n label: t(\"ProgramStateIndicator.Starting.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.RUNNING:\n return {\n label: t(\"ProgramStateIndicator.Running.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.PAUSING:\n return {\n label: t(\"ProgramStateIndicator.Pausing.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.PAUSED:\n return {\n label: t(\"ProgramStateIndicator.Paused.lb\"),\n color: theme.palette.grey[600],\n }\n case ProgramState.STOPPING:\n return {\n label: t(\"ProgramStateIndicator.Stopping.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.COMPLETED:\n return {\n label: t(\"ProgramStateIndicator.Completed.lb\"),\n color: theme.palette.success.main,\n }\n case ProgramState.FAILED:\n return {\n label: t(\"ProgramStateIndicator.Failed.lb\"),\n color: theme.palette.error.main,\n }\n case ProgramState.STOPPED:\n return {\n label: t(\"ProgramStateIndicator.Stopped.lb\"),\n color: theme.palette.warning.main,\n }\n case ProgramState.ERROR:\n return {\n label: t(\"ProgramStateIndicator.Error.lb\"),\n color: theme.palette.error.main,\n }\n default:\n return {\n label: t(\"ProgramStateIndicator.Ready.lb\"),\n color: theme.palette.success.main,\n }\n }\n }\n\n // Default fallback\n return {\n label: t(\"ProgramStateIndicator.Idle.lb\"),\n color: theme.palette.grey[600],\n }\n }\n\n const { label, color } = getStateInfo()\n\n // Add operation mode suffix if not automatic\n const getOperationModeText = () => {\n switch (operationMode) {\n case \"OPERATION_MODE_AUTO\":\n return t(\"ProgramStateIndicator.Auto.lb\")\n case \"OPERATION_MODE_MANUAL\":\n return t(\"ProgramStateIndicator.Manual.lb\")\n case \"OPERATION_MODE_MANUAL_T1\":\n return t(\"ProgramStateIndicator.ManualT1.lb\")\n case \"OPERATION_MODE_MANUAL_T2\":\n return t(\"ProgramStateIndicator.ManualT2.lb\")\n default:\n return t(\"ProgramStateIndicator.Auto.lb\") // Default to Auto for unknown modes\n }\n }\n\n const fullLabel = `${label} / ${getOperationModeText()}`\n\n return (\n <Chip\n className={className}\n label={\n <Typography\n variant=\"body2\"\n sx={{\n fontSize: \"0.75rem\", // Smaller than body2\n lineHeight: 1.2,\n }}\n >\n {fullLabel}\n </Typography>\n }\n variant=\"filled\"\n sx={{\n backgroundColor: color,\n color: theme.palette.getContrastText(color),\n fontWeight: 500,\n height: \"auto\",\n \"& .MuiChip-label\": {\n paddingX: 1.5,\n paddingY: 0.5,\n },\n }}\n />\n )\n },\n ),\n)\n\nexport default ProgramStateIndicator\n"],"names":["ProgramStateIndicator","externalizeComponent","observer","programState","safetyState","operationMode","className","theme","useTheme","t","useTranslation","getStateInfo","ProgramState","label","color","fullLabel","jsx","Chip","Typography"],"mappings":"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"}
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),V=require("@mui/material/styles"),s=require("@mui/material/Box"),I=require("@mui/material/Button"),$=require("@mui/material/Card"),T=require("@mui/material/Divider"),_=require("@mui/material/Typography"),L=require("@react-three/drei"),B=require("@react-three/fiber"),J=require("mobx-react-lite"),t=require("react"),K=require("react-i18next"),Q=require("../chunks/externalizeComponent-DOwkaDcw.cjs"),F=require("./3d-viewport/PresetEnvironment.cjs"),A=require("./ProgramStateIndicator.cjs"),X=require("./robots/Robot.cjs"),O=Q.externalizeComponent(J.observer(({robotName:b,programState:g,safetyState:j,operationMode:v,driveToHomeEnabled:o=!1,onDriveToHomePress:p,onDriveToHomeRelease:n,connectedMotionGroup:y,robotComponent:R=X.Robot,customContentComponent:i,className:U})=>{var D;const a=V.useTheme(),{t:w}=K.useTranslation(),[q,f]=t.useState(!1),M=t.useRef(null),d=t.useRef(null),[l,E]=t.useState(!1),[c,H]=t.useState({width:400,height:600}),[Y,W]=t.useState(0);t.useEffect(()=>{const m=()=>{if(d.current){const{offsetWidth:C,offsetHeight:P}=d.current;E(C>P),H({width:C,height:P})}};m();const z=new ResizeObserver(m);return d.current&&z.observe(d.current),()=>{z.disconnect()}},[]);const k=t.useCallback(()=>{W(m=>m+1)},[]),u=t.useCallback(()=>{!o||!p||(f(!0),p())},[o,p]),x=t.useCallback(()=>{!o||!n||(f(!1),n())},[o,n]),S=t.useCallback(()=>{q&&n&&(f(!1),n())},[q,n]),r=l?c.width<350:c.height<200,h=l?c.height<310:c.height<450;return e.jsx($,{ref:d,className:U,sx:{width:"100%",height:"100%",display:"flex",flexDirection:l?"row":"column",position:"relative",overflow:"hidden",minWidth:{xs:180,sm:220,md:250},minHeight:l?{xs:200,sm:240,md:260}:{xs:150,sm:180,md:220},border:`1px solid ${a.palette.divider}`,borderRadius:"18px",boxShadow:"none",backgroundColor:((D=a.palette.backgroundPaperElevation)==null?void 0:D[8])||"#2A2A3F",backgroundImage:"none"},children:l?e.jsxs(e.Fragment,{children:[e.jsx(s,{sx:{flex:"0 0 50%",position:"relative",height:"100%",minHeight:"100%",maxHeight:"100%",borderRadius:1,m:{xs:1.5,sm:2,md:3},mr:{xs:.75,sm:1,md:1.5},overflow:"hidden",display:r?"none":"block"},children:!r&&e.jsxs(B.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:a.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute",top:0,left:0},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[e.jsx(F.PresetEnvironment,{}),e.jsx(L.Bounds,{fit:!0,observe:!0,margin:1,maxDuration:1,children:e.jsx(R,{connectedMotionGroup:y,postModelRender:k})})]})}),e.jsxs(s,{sx:{flex:"1",display:"flex",flexDirection:"column",justifyContent:"flex-start",width:r?"100%":"50%"},children:[e.jsxs(s,{sx:{p:{xs:1.5,sm:2,md:3},pb:{xs:1,sm:1.5,md:2},textAlign:"left"},children:[e.jsx(_,{variant:"h6",component:"h2",sx:{mb:1},children:b}),e.jsx(A.ProgramStateIndicator,{programState:g,safetyState:j,operationMode:v})]}),e.jsxs(s,{sx:{p:{xs:1.5,sm:2,md:3},pt:0,flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[!h&&i&&e.jsxs(s,{children:[e.jsx(i,{}),e.jsx(T,{sx:{mt:1,mb:0,borderColor:a.palette.divider,opacity:.5}})]}),e.jsx(s,{sx:{mt:!h&&i?"auto":0},children:e.jsx(s,{sx:{display:"flex",justifyContent:"flex-start",mt:{xs:1,sm:1.5,md:2},mb:{xs:.5,sm:.75,md:1}},children:e.jsx(I,{ref:M,variant:"contained",color:"secondary",size:"small",disabled:!o,onMouseDown:u,onMouseUp:x,onMouseLeave:S,onTouchStart:u,onTouchEnd:x,sx:{textTransform:"none",px:1.5,py:.5},children:w("RobotCard.DriveToHome.bt")})})})]})]})]}):e.jsx(e.Fragment,{children:e.jsxs(s,{sx:{p:3,height:"100%",display:"flex",flexDirection:"column"},children:[e.jsxs(s,{children:[e.jsx(_,{variant:"h6",component:"h2",sx:{mb:1},children:b}),e.jsx(A.ProgramStateIndicator,{programState:g,safetyState:j,operationMode:v})]}),e.jsx(s,{sx:{flex:r?0:1,position:"relative",minHeight:r?0:{xs:120,sm:150,md:200},height:r?0:"auto",borderRadius:1,overflow:"hidden",display:r?"none":"block"},children:!r&&e.jsxs(B.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:a.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute"},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[e.jsx(F.PresetEnvironment,{}),e.jsx(L.Bounds,{fit:!0,clip:!0,observe:!0,margin:1,maxDuration:1,children:e.jsx(R,{connectedMotionGroup:y,postModelRender:k})})]})}),e.jsxs(s,{children:[!h&&i&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsx(T,{sx:{mt:1,mb:0,borderColor:a.palette.divider,opacity:.5}})]}),e.jsx(s,{sx:{display:"flex",justifyContent:"flex-start",mt:!h&&i?{xs:1,sm:2,md:5}:{xs:.5,sm:1,md:2},mb:{xs:.5,sm:.75,md:1}},children:e.jsx(I,{ref:M,variant:"contained",color:"secondary",size:"small",disabled:!o,onMouseDown:u,onMouseUp:x,onMouseLeave:S,onTouchStart:u,onTouchEnd:x,sx:{textTransform:"none",px:1.5,py:.5},children:w("RobotCard.DriveToHome.bt")})})]})]})})})}));exports.RobotCard=O;exports.default=O;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),$=require("@mui/material/styles"),s=require("@mui/material/Box"),I=require("@mui/material/Button"),J=require("@mui/material/Card"),T=require("@mui/material/Divider"),L=require("@mui/material/Typography"),B=require("@react-three/drei"),F=require("@react-three/fiber"),K=require("mobx-react-lite"),t=require("react"),Q=require("react-i18next"),V=require("../externalizeComponent.cjs"),A=require("./3d-viewport/PresetEnvironment.cjs"),O=require("./ProgramStateIndicator.cjs"),X=require("./robots/Robot.cjs"),U=V.externalizeComponent(K.observer(({robotName:b,programState:g,safetyState:j,operationMode:v,driveToHomeEnabled:i=!1,onDriveToHomePress:f,onDriveToHomeRelease:n,connectedMotionGroup:y,robotComponent:R=X.Robot,customContentComponent:o,className:E})=>{var D;const a=$.useTheme(),{t:w}=Q.useTranslation(),[q,p]=t.useState(!1),M=t.useRef(null),d=t.useRef(null),[l,H]=t.useState(!1),[c,W]=t.useState({width:400,height:600}),[Y,_]=t.useState(0);t.useEffect(()=>{const m=()=>{if(d.current){const{offsetWidth:C,offsetHeight:P}=d.current;H(C>P),W({width:C,height:P})}};m();const z=new ResizeObserver(m);return d.current&&z.observe(d.current),()=>{z.disconnect()}},[]);const k=t.useCallback(()=>{_(m=>m+1)},[]),u=t.useCallback(()=>{!i||!f||(p(!0),f())},[i,f]),x=t.useCallback(()=>{!i||!n||(p(!1),n())},[i,n]),S=t.useCallback(()=>{q&&n&&(p(!1),n())},[q,n]),r=l?c.width<350:c.height<200,h=l?c.height<310:c.height<450;return e.jsx(J,{ref:d,className:E,sx:{width:"100%",height:"100%",display:"flex",flexDirection:l?"row":"column",position:"relative",overflow:"hidden",minWidth:{xs:180,sm:220,md:250},minHeight:l?{xs:200,sm:240,md:260}:{xs:150,sm:180,md:220},border:`1px solid ${a.palette.divider}`,borderRadius:"18px",boxShadow:"none",backgroundColor:((D=a.palette.backgroundPaperElevation)==null?void 0:D[8])||"#2A2A3F",backgroundImage:"none"},children:l?e.jsxs(e.Fragment,{children:[e.jsx(s,{sx:{flex:"0 0 50%",position:"relative",height:"100%",minHeight:"100%",maxHeight:"100%",borderRadius:1,m:{xs:1.5,sm:2,md:3},mr:{xs:.75,sm:1,md:1.5},overflow:"hidden",display:r?"none":"block"},children:!r&&e.jsxs(F.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:a.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute",top:0,left:0},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[e.jsx(A.PresetEnvironment,{}),e.jsx(B.Bounds,{fit:!0,observe:!0,margin:1,maxDuration:1,children:e.jsx(R,{connectedMotionGroup:y,postModelRender:k})})]})}),e.jsxs(s,{sx:{flex:"1",display:"flex",flexDirection:"column",justifyContent:"flex-start",width:r?"100%":"50%"},children:[e.jsxs(s,{sx:{p:{xs:1.5,sm:2,md:3},pb:{xs:1,sm:1.5,md:2},textAlign:"left"},children:[e.jsx(L,{variant:"h6",component:"h2",sx:{mb:1},children:b}),e.jsx(O.ProgramStateIndicator,{programState:g,safetyState:j,operationMode:v})]}),e.jsxs(s,{sx:{p:{xs:1.5,sm:2,md:3},pt:0,flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[!h&&o&&e.jsxs(s,{children:[e.jsx(o,{}),e.jsx(T,{sx:{mt:1,mb:0,borderColor:a.palette.divider,opacity:.5}})]}),e.jsx(s,{sx:{mt:!h&&o?"auto":0},children:e.jsx(s,{sx:{display:"flex",justifyContent:"flex-start",mt:{xs:1,sm:1.5,md:2},mb:{xs:.5,sm:.75,md:1}},children:e.jsx(I,{ref:M,variant:"contained",color:"secondary",size:"small",disabled:!i,onMouseDown:u,onMouseUp:x,onMouseLeave:S,onTouchStart:u,onTouchEnd:x,sx:{textTransform:"none",px:1.5,py:.5},children:w("RobotCard.DriveToHome.bt")})})})]})]})]}):e.jsx(e.Fragment,{children:e.jsxs(s,{sx:{p:3,height:"100%",display:"flex",flexDirection:"column"},children:[e.jsxs(s,{children:[e.jsx(L,{variant:"h6",component:"h2",sx:{mb:1},children:b}),e.jsx(O.ProgramStateIndicator,{programState:g,safetyState:j,operationMode:v})]}),e.jsx(s,{sx:{flex:r?0:1,position:"relative",minHeight:r?0:{xs:120,sm:150,md:200},height:r?0:"auto",borderRadius:1,overflow:"hidden",display:r?"none":"block"},children:!r&&e.jsxs(F.Canvas,{orthographic:!0,camera:{position:[3,2,3],zoom:1},shadows:!0,frameloop:"demand",style:{borderRadius:a.shape.borderRadius,width:"100%",height:"100%",background:"transparent",position:"absolute"},dpr:[1,2],gl:{alpha:!0,antialias:!0},children:[e.jsx(A.PresetEnvironment,{}),e.jsx(B.Bounds,{fit:!0,clip:!0,observe:!0,margin:1,maxDuration:1,children:e.jsx(R,{connectedMotionGroup:y,postModelRender:k})})]})}),e.jsxs(s,{children:[!h&&o&&e.jsxs(e.Fragment,{children:[e.jsx(o,{}),e.jsx(T,{sx:{mt:1,mb:0,borderColor:a.palette.divider,opacity:.5}})]}),e.jsx(s,{sx:{display:"flex",justifyContent:"flex-start",mt:!h&&o?{xs:1,sm:2,md:5}:{xs:.5,sm:1,md:2},mb:{xs:.5,sm:.75,md:1}},children:e.jsx(I,{ref:M,variant:"contained",color:"secondary",size:"small",disabled:!i,onMouseDown:u,onMouseUp:x,onMouseLeave:S,onTouchStart:u,onTouchEnd:x,sx:{textTransform:"none",px:1.5,py:.5},children:w("RobotCard.DriveToHome.bt")})})]})]})})})}));exports.RobotCard=U;exports.default=U;
2
+ //# sourceMappingURL=RobotCard.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotCard.cjs","sources":["../../src/components/RobotCard.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Button from \"@mui/material/Button\"\nimport Card from \"@mui/material/Card\"\nimport Divider from \"@mui/material/Divider\"\nimport Typography from \"@mui/material/Typography\"\nimport { Bounds } from \"@react-three/drei\"\nimport { Canvas } from \"@react-three/fiber\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { Group } from \"three\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport type { ConnectedMotionGroup } from \"../lib/ConnectedMotionGroup\"\nimport { PresetEnvironment } from \"./3d-viewport/PresetEnvironment\"\nimport type { ProgramState } from \"./ProgramControl\"\nimport { ProgramStateIndicator } from \"./ProgramStateIndicator\"\nimport { Robot } from \"./robots/Robot\"\n\nexport interface RobotCardProps {\n /** Name of the robot displayed at the top */\n robotName: string\n /** Current program state */\n programState: ProgramState\n /** Current safety state of the robot controller */\n safetyState: SafetyStateType\n /** Current operation mode of the robot controller */\n operationMode: OperationMode\n /** Whether the \"Drive to Home\" button should be enabled */\n driveToHomeEnabled?: boolean\n /** Callback fired when \"Drive to Home\" button is pressed */\n onDriveToHomePress?: () => void\n /** Callback fired when \"Drive to Home\" button is released */\n onDriveToHomeRelease?: () => void\n /**\n * Callback fired when \"Drive to Home\" button is pressed, with the default home position.\n * If provided, this will be called instead of onDriveToHomePress, providing the recommended\n * home position joint configuration based on the robot manufacturer.\n */\n onDriveToHomePressWithConfig?: (homePosition: number[]) => void\n /**\n * Callback fired when \"Drive to Home\" button is released after using onDriveToHomePressWithConfig.\n * If provided, this will be called instead of onDriveToHomeRelease.\n */\n onDriveToHomeReleaseWithConfig?: () => void\n /**\n * Custom default joint configuration to use if manufacturer-based defaults are not available.\n * Joint values should be in radians.\n */\n defaultJointConfig?: number[]\n /** Connected motion group for the robot */\n connectedMotionGroup: ConnectedMotionGroup\n /** Custom robot component to render (optional, defaults to Robot) */\n robotComponent?: React.ComponentType<{\n connectedMotionGroup: ConnectedMotionGroup\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n transparentColor?: string\n getModel?: (modelFromController: string) => Promise<string>\n }>\n /** Custom component to render in the content area (optional) */\n customContentComponent?: React.ComponentType<Record<string, unknown>>\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A responsive card component that displays a 3D robot with states and controls.\n * The card automatically adapts to its container's size and aspect ratio.\n *\n * Features:\n * - Fully responsive Material-UI Card that adapts to container dimensions\n * - Automatic layout switching based on aspect ratio:\n * - Portrait mode: Vertical layout with robot in center\n * - Landscape mode: Horizontal layout with robot on left, content on right (left-aligned)\n * - Responsive 3D robot rendering:\n * - Scales dynamically with container size\n * - Hides at very small sizes to preserve usability\n * - Adaptive margin based on available space\n * - Smart spacing and padding that reduces at smaller sizes\n * - Minimum size constraints for usability while maximizing content density\n * - Robot name displayed in Typography h6 at top-left\n * - Program state indicator below the name\n * - Auto-fitting 3D robot model that scales with container size\n * - Customizable content area for displaying custom React components\n * - Transparent gray divider line\n * - \"Drive to Home\" button with press-and-hold functionality\n * - Localization support via react-i18next\n * - Material-UI theming integration\n *\n * Usage with custom content:\n * ```tsx\n * // Example custom timer component\n * const CustomTimer = () => (\n * <Box>\n * <Typography variant=\"body1\" sx={{ color: \"text.secondary\" }}>\n * Runtime\n * </Typography>\n * <Typography variant=\"h6\">05:23</Typography>\n * </Box>\n * )\n *\n * <RobotCard\n * robotName=\"UR5e Robot\"\n * programState={ProgramState.RUNNING}\n * customContentComponent={CustomTimer}\n * // ... other props\n * />\n * ```\n */\nexport const RobotCard = externalizeComponent(\n observer(\n ({\n robotName,\n programState,\n safetyState,\n operationMode,\n driveToHomeEnabled = false,\n onDriveToHomePress,\n onDriveToHomeRelease,\n connectedMotionGroup,\n robotComponent: RobotComponent = Robot,\n customContentComponent: CustomContentComponent,\n className,\n }: RobotCardProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n const [isDriveToHomePressed, setIsDriveToHomePressed] = useState(false)\n const driveButtonRef = useRef<HTMLButtonElement>(null)\n const cardRef = useRef<HTMLDivElement>(null)\n const [isLandscape, setIsLandscape] = useState(false)\n const [cardSize, setCardSize] = useState<{\n width: number\n height: number\n }>({ width: 400, height: 600 })\n const [modelRenderTrigger, setModelRenderTrigger] = useState(0)\n\n // Hook to detect aspect ratio and size changes\n useEffect(() => {\n const checkDimensions = () => {\n if (cardRef.current) {\n const { offsetWidth, offsetHeight } = cardRef.current\n setIsLandscape(offsetWidth > offsetHeight)\n setCardSize({ width: offsetWidth, height: offsetHeight })\n }\n }\n\n // Initial check\n checkDimensions()\n\n // Set up ResizeObserver to watch for size changes\n const resizeObserver = new ResizeObserver(checkDimensions)\n if (cardRef.current) {\n resizeObserver.observe(cardRef.current)\n }\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n const handleModelRender = useCallback(() => {\n // Trigger bounds refresh when model renders\n setModelRenderTrigger((prev) => prev + 1)\n }, [])\n\n const handleDriveToHomeMouseDown = useCallback(() => {\n if (!driveToHomeEnabled || !onDriveToHomePress) return\n setIsDriveToHomePressed(true)\n onDriveToHomePress()\n }, [driveToHomeEnabled, onDriveToHomePress])\n\n const handleDriveToHomeMouseUp = useCallback(() => {\n if (!driveToHomeEnabled || !onDriveToHomeRelease) return\n setIsDriveToHomePressed(false)\n onDriveToHomeRelease()\n }, [driveToHomeEnabled, onDriveToHomeRelease])\n\n const handleDriveToHomeMouseLeave = useCallback(() => {\n if (isDriveToHomePressed && onDriveToHomeRelease) {\n setIsDriveToHomePressed(false)\n onDriveToHomeRelease()\n }\n }, [isDriveToHomePressed, onDriveToHomeRelease])\n\n // Determine if robot should be hidden at small sizes to save space\n const shouldHideRobot = isLandscape\n ? cardSize.width < 350\n : cardSize.height < 200 // Hide robot at height < 200px in portrait\n\n // Determine if custom content should be hidden when height is too low\n // Custom content should be hidden BEFORE the robot (at higher threshold)\n const shouldHideCustomContent = isLandscape\n ? cardSize.height < 310 // Landscape: hide custom content at height < 310px\n : cardSize.height < 450 // Portrait: hide custom content at height < 450px\n\n return (\n <Card\n ref={cardRef}\n className={className}\n sx={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: isLandscape ? \"row\" : \"column\",\n position: \"relative\",\n overflow: \"hidden\",\n minWidth: { xs: 180, sm: 220, md: 250 },\n minHeight: isLandscape\n ? { xs: 200, sm: 240, md: 260 } // Allow runtime hiding at < 283px\n : { xs: 150, sm: 180, md: 220 }, // Allow progressive hiding in portrait mode\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: \"18px\",\n boxShadow: \"none\",\n backgroundColor:\n theme.palette.backgroundPaperElevation?.[8] || \"#2A2A3F\",\n backgroundImage: \"none\", // Override any gradient from elevation\n }}\n >\n {isLandscape ? (\n <>\n {/* Landscape Layout: Robot on left, content on right */}\n <Box\n sx={{\n flex: \"0 0 50%\",\n position: \"relative\",\n height: \"100%\",\n minHeight: \"100%\",\n maxHeight: \"100%\",\n borderRadius: 1,\n m: { xs: 1.5, sm: 2, md: 3 },\n mr: { xs: 0.75, sm: 1, md: 1.5 },\n overflow: \"hidden\", // Prevent content from affecting container size\n display: shouldHideRobot ? \"none\" : \"block\",\n }}\n >\n {!shouldHideRobot && (\n <Canvas\n orthographic\n camera={{\n position: [3, 2, 3],\n zoom: 1,\n }}\n shadows\n frameloop=\"demand\"\n style={{\n borderRadius: theme.shape.borderRadius,\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n position: \"absolute\",\n top: 0,\n left: 0,\n }}\n dpr={[1, 2]}\n gl={{ alpha: true, antialias: true }}\n >\n <PresetEnvironment />\n <Bounds fit observe margin={1} maxDuration={1}>\n <RobotComponent\n connectedMotionGroup={connectedMotionGroup}\n postModelRender={handleModelRender}\n />\n </Bounds>\n </Canvas>\n )}\n </Box>\n\n {/* Content container on right */}\n <Box\n sx={{\n flex: shouldHideRobot ? \"1\" : \"1\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n width: shouldHideRobot ? \"100%\" : \"50%\",\n }}\n >\n {/* Header section with robot name and program state */}\n <Box\n sx={{\n p: { xs: 1.5, sm: 2, md: 3 },\n pb: { xs: 1, sm: 1.5, md: 2 },\n textAlign: \"left\",\n }}\n >\n <Typography variant=\"h6\" component=\"h2\" sx={{ mb: 1 }}>\n {robotName}\n </Typography>\n <ProgramStateIndicator\n programState={programState}\n safetyState={safetyState}\n operationMode={operationMode}\n />\n </Box>\n\n {/* Bottom section with custom content and button */}\n <Box\n sx={{\n p: { xs: 1.5, sm: 2, md: 3 },\n pt: 0,\n flex: \"1\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n }}\n >\n {/* Custom content section - hidden if height is too low in landscape mode */}\n {!shouldHideCustomContent && CustomContentComponent && (\n <Box>\n <CustomContentComponent />\n\n {/* Divider */}\n <Divider\n sx={{\n mt: 1,\n mb: 0,\n borderColor: theme.palette.divider,\n opacity: 0.5,\n }}\n />\n </Box>\n )}\n\n <Box\n sx={{\n mt:\n !shouldHideCustomContent && CustomContentComponent\n ? \"auto\"\n : 0,\n }}\n >\n {/* Drive to Home button with some space */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-start\",\n mt: { xs: 1, sm: 1.5, md: 2 },\n mb: { xs: 0.5, sm: 0.75, md: 1 },\n }}\n >\n <Button\n ref={driveButtonRef}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n disabled={!driveToHomeEnabled}\n onMouseDown={handleDriveToHomeMouseDown}\n onMouseUp={handleDriveToHomeMouseUp}\n onMouseLeave={handleDriveToHomeMouseLeave}\n onTouchStart={handleDriveToHomeMouseDown}\n onTouchEnd={handleDriveToHomeMouseUp}\n sx={{\n textTransform: \"none\",\n px: 1.5,\n py: 0.5,\n }}\n >\n {t(\"RobotCard.DriveToHome.bt\")}\n </Button>\n </Box>\n </Box>\n </Box>\n </Box>\n </>\n ) : (\n <>\n {/* Portrait Layout: Header, Robot, Footer */}\n <Box\n sx={{\n p: 3,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* Header section with robot name and program state */}\n <Box>\n <Typography variant=\"h6\" component=\"h2\" sx={{ mb: 1 }}>\n {robotName}\n </Typography>\n <ProgramStateIndicator\n programState={programState}\n safetyState={safetyState}\n operationMode={operationMode}\n />\n </Box>\n\n {/* 3D Robot viewport in center */}\n <Box\n sx={{\n flex: shouldHideRobot ? 0 : 1,\n position: \"relative\",\n minHeight: shouldHideRobot\n ? 0\n : { xs: 120, sm: 150, md: 200 },\n height: shouldHideRobot ? 0 : \"auto\",\n borderRadius: 1,\n overflow: \"hidden\",\n display: shouldHideRobot ? \"none\" : \"block\",\n }}\n >\n {!shouldHideRobot && (\n <Canvas\n orthographic\n camera={{\n position: [3, 2, 3],\n zoom: 1,\n }}\n shadows\n frameloop=\"demand\"\n style={{\n borderRadius: theme.shape.borderRadius,\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n position: \"absolute\",\n }}\n dpr={[1, 2]}\n gl={{ alpha: true, antialias: true }}\n >\n <PresetEnvironment />\n <Bounds fit clip observe margin={1} maxDuration={1}>\n <RobotComponent\n connectedMotionGroup={connectedMotionGroup}\n postModelRender={handleModelRender}\n />\n </Bounds>\n </Canvas>\n )}\n </Box>\n\n {/* Bottom section with custom content and button */}\n <Box>\n {/* Custom content section - hidden if height is too low */}\n {!shouldHideCustomContent && CustomContentComponent && (\n <>\n <CustomContentComponent />\n\n {/* Divider */}\n <Divider\n sx={{\n mt: 1,\n mb: 0,\n borderColor: theme.palette.divider,\n opacity: 0.5,\n }}\n />\n </>\n )}\n\n {/* Drive to Home button with some space */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-start\",\n mt:\n !shouldHideCustomContent && CustomContentComponent\n ? { xs: 1, sm: 2, md: 5 }\n : { xs: 0.5, sm: 1, md: 2 },\n mb: { xs: 0.5, sm: 0.75, md: 1 },\n }}\n >\n <Button\n ref={driveButtonRef}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n disabled={!driveToHomeEnabled}\n onMouseDown={handleDriveToHomeMouseDown}\n onMouseUp={handleDriveToHomeMouseUp}\n onMouseLeave={handleDriveToHomeMouseLeave}\n onTouchStart={handleDriveToHomeMouseDown}\n onTouchEnd={handleDriveToHomeMouseUp}\n sx={{\n textTransform: \"none\",\n px: 1.5,\n py: 0.5,\n }}\n >\n {t(\"RobotCard.DriveToHome.bt\")}\n </Button>\n </Box>\n </Box>\n </Box>\n </>\n )}\n </Card>\n )\n },\n ),\n)\n\nexport default RobotCard\n"],"names":["RobotCard","externalizeComponent","observer","robotName","programState","safetyState","operationMode","driveToHomeEnabled","onDriveToHomePress","onDriveToHomeRelease","connectedMotionGroup","RobotComponent","Robot","CustomContentComponent","className","theme","useTheme","t","useTranslation","isDriveToHomePressed","setIsDriveToHomePressed","useState","driveButtonRef","useRef","cardRef","isLandscape","setIsLandscape","cardSize","setCardSize","modelRenderTrigger","setModelRenderTrigger","useEffect","checkDimensions","offsetWidth","offsetHeight","resizeObserver","handleModelRender","useCallback","prev","handleDriveToHomeMouseDown","handleDriveToHomeMouseUp","handleDriveToHomeMouseLeave","shouldHideRobot","shouldHideCustomContent","jsx","Card","_a","jsxs","Fragment","Box","Canvas","PresetEnvironment","Bounds","Typography","ProgramStateIndicator","Divider","Button"],"mappings":"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"}
@@ -96,3 +96,4 @@ export declare const RobotCard: (({ robotName, programState, safetyState, operat
96
96
  displayName: string;
97
97
  };
98
98
  export default RobotCard;
99
+ //# sourceMappingURL=RobotCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotCard.d.ts","sourceRoot":"","sources":["../../src/components/RobotCard.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAI5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAElC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,mDAAmD;IACnD,WAAW,EAAE,eAAe,CAAA;IAC5B,qDAAqD;IACrD,aAAa,EAAE,aAAa,CAAA;IAC5B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC/D;;;OAGG;IACH,8BAA8B,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,2CAA2C;IAC3C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,qEAAqE;IACrE,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACnC,oBAAoB,EAAE,oBAAoB,CAAA;QAC1C,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KAC5D,CAAC,CAAA;IACF,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,SAAS,6OAcf,cAAc;;CA+WpB,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -10,7 +10,7 @@ import { Canvas as O } from "@react-three/fiber";
10
10
  import { observer as Y } from "mobx-react-lite";
11
11
  import { useState as p, useRef as W, useEffect as Z, useCallback as x } from "react";
12
12
  import { useTranslation as _ } from "react-i18next";
13
- import { e as G } from "../chunks/externalizeComponent-eiCc5DIh.js";
13
+ import { externalizeComponent as G } from "../externalizeComponent.js";
14
14
  import { PresetEnvironment as $ } from "./3d-viewport/PresetEnvironment.js";
15
15
  import { ProgramStateIndicator as q } from "./ProgramStateIndicator.js";
16
16
  import { Robot as N } from "./robots/Robot.js";
@@ -357,3 +357,4 @@ export {
357
357
  be as RobotCard,
358
358
  be as default
359
359
  };
360
+ //# sourceMappingURL=RobotCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotCard.js","sources":["../../src/components/RobotCard.tsx"],"sourcesContent":["import { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Button from \"@mui/material/Button\"\nimport Card from \"@mui/material/Card\"\nimport Divider from \"@mui/material/Divider\"\nimport Typography from \"@mui/material/Typography\"\nimport { Bounds } from \"@react-three/drei\"\nimport { Canvas } from \"@react-three/fiber\"\nimport type { OperationMode, SafetyStateType } from \"@wandelbots/nova-js/v2\"\nimport { observer } from \"mobx-react-lite\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { Group } from \"three\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport type { ConnectedMotionGroup } from \"../lib/ConnectedMotionGroup\"\nimport { PresetEnvironment } from \"./3d-viewport/PresetEnvironment\"\nimport type { ProgramState } from \"./ProgramControl\"\nimport { ProgramStateIndicator } from \"./ProgramStateIndicator\"\nimport { Robot } from \"./robots/Robot\"\n\nexport interface RobotCardProps {\n /** Name of the robot displayed at the top */\n robotName: string\n /** Current program state */\n programState: ProgramState\n /** Current safety state of the robot controller */\n safetyState: SafetyStateType\n /** Current operation mode of the robot controller */\n operationMode: OperationMode\n /** Whether the \"Drive to Home\" button should be enabled */\n driveToHomeEnabled?: boolean\n /** Callback fired when \"Drive to Home\" button is pressed */\n onDriveToHomePress?: () => void\n /** Callback fired when \"Drive to Home\" button is released */\n onDriveToHomeRelease?: () => void\n /**\n * Callback fired when \"Drive to Home\" button is pressed, with the default home position.\n * If provided, this will be called instead of onDriveToHomePress, providing the recommended\n * home position joint configuration based on the robot manufacturer.\n */\n onDriveToHomePressWithConfig?: (homePosition: number[]) => void\n /**\n * Callback fired when \"Drive to Home\" button is released after using onDriveToHomePressWithConfig.\n * If provided, this will be called instead of onDriveToHomeRelease.\n */\n onDriveToHomeReleaseWithConfig?: () => void\n /**\n * Custom default joint configuration to use if manufacturer-based defaults are not available.\n * Joint values should be in radians.\n */\n defaultJointConfig?: number[]\n /** Connected motion group for the robot */\n connectedMotionGroup: ConnectedMotionGroup\n /** Custom robot component to render (optional, defaults to Robot) */\n robotComponent?: React.ComponentType<{\n connectedMotionGroup: ConnectedMotionGroup\n flangeRef?: React.Ref<Group>\n postModelRender?: () => void\n transparentColor?: string\n getModel?: (modelFromController: string) => Promise<string>\n }>\n /** Custom component to render in the content area (optional) */\n customContentComponent?: React.ComponentType<Record<string, unknown>>\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A responsive card component that displays a 3D robot with states and controls.\n * The card automatically adapts to its container's size and aspect ratio.\n *\n * Features:\n * - Fully responsive Material-UI Card that adapts to container dimensions\n * - Automatic layout switching based on aspect ratio:\n * - Portrait mode: Vertical layout with robot in center\n * - Landscape mode: Horizontal layout with robot on left, content on right (left-aligned)\n * - Responsive 3D robot rendering:\n * - Scales dynamically with container size\n * - Hides at very small sizes to preserve usability\n * - Adaptive margin based on available space\n * - Smart spacing and padding that reduces at smaller sizes\n * - Minimum size constraints for usability while maximizing content density\n * - Robot name displayed in Typography h6 at top-left\n * - Program state indicator below the name\n * - Auto-fitting 3D robot model that scales with container size\n * - Customizable content area for displaying custom React components\n * - Transparent gray divider line\n * - \"Drive to Home\" button with press-and-hold functionality\n * - Localization support via react-i18next\n * - Material-UI theming integration\n *\n * Usage with custom content:\n * ```tsx\n * // Example custom timer component\n * const CustomTimer = () => (\n * <Box>\n * <Typography variant=\"body1\" sx={{ color: \"text.secondary\" }}>\n * Runtime\n * </Typography>\n * <Typography variant=\"h6\">05:23</Typography>\n * </Box>\n * )\n *\n * <RobotCard\n * robotName=\"UR5e Robot\"\n * programState={ProgramState.RUNNING}\n * customContentComponent={CustomTimer}\n * // ... other props\n * />\n * ```\n */\nexport const RobotCard = externalizeComponent(\n observer(\n ({\n robotName,\n programState,\n safetyState,\n operationMode,\n driveToHomeEnabled = false,\n onDriveToHomePress,\n onDriveToHomeRelease,\n connectedMotionGroup,\n robotComponent: RobotComponent = Robot,\n customContentComponent: CustomContentComponent,\n className,\n }: RobotCardProps) => {\n const theme = useTheme()\n const { t } = useTranslation()\n const [isDriveToHomePressed, setIsDriveToHomePressed] = useState(false)\n const driveButtonRef = useRef<HTMLButtonElement>(null)\n const cardRef = useRef<HTMLDivElement>(null)\n const [isLandscape, setIsLandscape] = useState(false)\n const [cardSize, setCardSize] = useState<{\n width: number\n height: number\n }>({ width: 400, height: 600 })\n const [modelRenderTrigger, setModelRenderTrigger] = useState(0)\n\n // Hook to detect aspect ratio and size changes\n useEffect(() => {\n const checkDimensions = () => {\n if (cardRef.current) {\n const { offsetWidth, offsetHeight } = cardRef.current\n setIsLandscape(offsetWidth > offsetHeight)\n setCardSize({ width: offsetWidth, height: offsetHeight })\n }\n }\n\n // Initial check\n checkDimensions()\n\n // Set up ResizeObserver to watch for size changes\n const resizeObserver = new ResizeObserver(checkDimensions)\n if (cardRef.current) {\n resizeObserver.observe(cardRef.current)\n }\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n const handleModelRender = useCallback(() => {\n // Trigger bounds refresh when model renders\n setModelRenderTrigger((prev) => prev + 1)\n }, [])\n\n const handleDriveToHomeMouseDown = useCallback(() => {\n if (!driveToHomeEnabled || !onDriveToHomePress) return\n setIsDriveToHomePressed(true)\n onDriveToHomePress()\n }, [driveToHomeEnabled, onDriveToHomePress])\n\n const handleDriveToHomeMouseUp = useCallback(() => {\n if (!driveToHomeEnabled || !onDriveToHomeRelease) return\n setIsDriveToHomePressed(false)\n onDriveToHomeRelease()\n }, [driveToHomeEnabled, onDriveToHomeRelease])\n\n const handleDriveToHomeMouseLeave = useCallback(() => {\n if (isDriveToHomePressed && onDriveToHomeRelease) {\n setIsDriveToHomePressed(false)\n onDriveToHomeRelease()\n }\n }, [isDriveToHomePressed, onDriveToHomeRelease])\n\n // Determine if robot should be hidden at small sizes to save space\n const shouldHideRobot = isLandscape\n ? cardSize.width < 350\n : cardSize.height < 200 // Hide robot at height < 200px in portrait\n\n // Determine if custom content should be hidden when height is too low\n // Custom content should be hidden BEFORE the robot (at higher threshold)\n const shouldHideCustomContent = isLandscape\n ? cardSize.height < 310 // Landscape: hide custom content at height < 310px\n : cardSize.height < 450 // Portrait: hide custom content at height < 450px\n\n return (\n <Card\n ref={cardRef}\n className={className}\n sx={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: isLandscape ? \"row\" : \"column\",\n position: \"relative\",\n overflow: \"hidden\",\n minWidth: { xs: 180, sm: 220, md: 250 },\n minHeight: isLandscape\n ? { xs: 200, sm: 240, md: 260 } // Allow runtime hiding at < 283px\n : { xs: 150, sm: 180, md: 220 }, // Allow progressive hiding in portrait mode\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: \"18px\",\n boxShadow: \"none\",\n backgroundColor:\n theme.palette.backgroundPaperElevation?.[8] || \"#2A2A3F\",\n backgroundImage: \"none\", // Override any gradient from elevation\n }}\n >\n {isLandscape ? (\n <>\n {/* Landscape Layout: Robot on left, content on right */}\n <Box\n sx={{\n flex: \"0 0 50%\",\n position: \"relative\",\n height: \"100%\",\n minHeight: \"100%\",\n maxHeight: \"100%\",\n borderRadius: 1,\n m: { xs: 1.5, sm: 2, md: 3 },\n mr: { xs: 0.75, sm: 1, md: 1.5 },\n overflow: \"hidden\", // Prevent content from affecting container size\n display: shouldHideRobot ? \"none\" : \"block\",\n }}\n >\n {!shouldHideRobot && (\n <Canvas\n orthographic\n camera={{\n position: [3, 2, 3],\n zoom: 1,\n }}\n shadows\n frameloop=\"demand\"\n style={{\n borderRadius: theme.shape.borderRadius,\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n position: \"absolute\",\n top: 0,\n left: 0,\n }}\n dpr={[1, 2]}\n gl={{ alpha: true, antialias: true }}\n >\n <PresetEnvironment />\n <Bounds fit observe margin={1} maxDuration={1}>\n <RobotComponent\n connectedMotionGroup={connectedMotionGroup}\n postModelRender={handleModelRender}\n />\n </Bounds>\n </Canvas>\n )}\n </Box>\n\n {/* Content container on right */}\n <Box\n sx={{\n flex: shouldHideRobot ? \"1\" : \"1\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n width: shouldHideRobot ? \"100%\" : \"50%\",\n }}\n >\n {/* Header section with robot name and program state */}\n <Box\n sx={{\n p: { xs: 1.5, sm: 2, md: 3 },\n pb: { xs: 1, sm: 1.5, md: 2 },\n textAlign: \"left\",\n }}\n >\n <Typography variant=\"h6\" component=\"h2\" sx={{ mb: 1 }}>\n {robotName}\n </Typography>\n <ProgramStateIndicator\n programState={programState}\n safetyState={safetyState}\n operationMode={operationMode}\n />\n </Box>\n\n {/* Bottom section with custom content and button */}\n <Box\n sx={{\n p: { xs: 1.5, sm: 2, md: 3 },\n pt: 0,\n flex: \"1\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n }}\n >\n {/* Custom content section - hidden if height is too low in landscape mode */}\n {!shouldHideCustomContent && CustomContentComponent && (\n <Box>\n <CustomContentComponent />\n\n {/* Divider */}\n <Divider\n sx={{\n mt: 1,\n mb: 0,\n borderColor: theme.palette.divider,\n opacity: 0.5,\n }}\n />\n </Box>\n )}\n\n <Box\n sx={{\n mt:\n !shouldHideCustomContent && CustomContentComponent\n ? \"auto\"\n : 0,\n }}\n >\n {/* Drive to Home button with some space */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-start\",\n mt: { xs: 1, sm: 1.5, md: 2 },\n mb: { xs: 0.5, sm: 0.75, md: 1 },\n }}\n >\n <Button\n ref={driveButtonRef}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n disabled={!driveToHomeEnabled}\n onMouseDown={handleDriveToHomeMouseDown}\n onMouseUp={handleDriveToHomeMouseUp}\n onMouseLeave={handleDriveToHomeMouseLeave}\n onTouchStart={handleDriveToHomeMouseDown}\n onTouchEnd={handleDriveToHomeMouseUp}\n sx={{\n textTransform: \"none\",\n px: 1.5,\n py: 0.5,\n }}\n >\n {t(\"RobotCard.DriveToHome.bt\")}\n </Button>\n </Box>\n </Box>\n </Box>\n </Box>\n </>\n ) : (\n <>\n {/* Portrait Layout: Header, Robot, Footer */}\n <Box\n sx={{\n p: 3,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* Header section with robot name and program state */}\n <Box>\n <Typography variant=\"h6\" component=\"h2\" sx={{ mb: 1 }}>\n {robotName}\n </Typography>\n <ProgramStateIndicator\n programState={programState}\n safetyState={safetyState}\n operationMode={operationMode}\n />\n </Box>\n\n {/* 3D Robot viewport in center */}\n <Box\n sx={{\n flex: shouldHideRobot ? 0 : 1,\n position: \"relative\",\n minHeight: shouldHideRobot\n ? 0\n : { xs: 120, sm: 150, md: 200 },\n height: shouldHideRobot ? 0 : \"auto\",\n borderRadius: 1,\n overflow: \"hidden\",\n display: shouldHideRobot ? \"none\" : \"block\",\n }}\n >\n {!shouldHideRobot && (\n <Canvas\n orthographic\n camera={{\n position: [3, 2, 3],\n zoom: 1,\n }}\n shadows\n frameloop=\"demand\"\n style={{\n borderRadius: theme.shape.borderRadius,\n width: \"100%\",\n height: \"100%\",\n background: \"transparent\",\n position: \"absolute\",\n }}\n dpr={[1, 2]}\n gl={{ alpha: true, antialias: true }}\n >\n <PresetEnvironment />\n <Bounds fit clip observe margin={1} maxDuration={1}>\n <RobotComponent\n connectedMotionGroup={connectedMotionGroup}\n postModelRender={handleModelRender}\n />\n </Bounds>\n </Canvas>\n )}\n </Box>\n\n {/* Bottom section with custom content and button */}\n <Box>\n {/* Custom content section - hidden if height is too low */}\n {!shouldHideCustomContent && CustomContentComponent && (\n <>\n <CustomContentComponent />\n\n {/* Divider */}\n <Divider\n sx={{\n mt: 1,\n mb: 0,\n borderColor: theme.palette.divider,\n opacity: 0.5,\n }}\n />\n </>\n )}\n\n {/* Drive to Home button with some space */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-start\",\n mt:\n !shouldHideCustomContent && CustomContentComponent\n ? { xs: 1, sm: 2, md: 5 }\n : { xs: 0.5, sm: 1, md: 2 },\n mb: { xs: 0.5, sm: 0.75, md: 1 },\n }}\n >\n <Button\n ref={driveButtonRef}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n disabled={!driveToHomeEnabled}\n onMouseDown={handleDriveToHomeMouseDown}\n onMouseUp={handleDriveToHomeMouseUp}\n onMouseLeave={handleDriveToHomeMouseLeave}\n onTouchStart={handleDriveToHomeMouseDown}\n onTouchEnd={handleDriveToHomeMouseUp}\n sx={{\n textTransform: \"none\",\n px: 1.5,\n py: 0.5,\n }}\n >\n {t(\"RobotCard.DriveToHome.bt\")}\n </Button>\n </Box>\n </Box>\n </Box>\n </>\n )}\n </Card>\n )\n },\n ),\n)\n\nexport default RobotCard\n"],"names":["RobotCard","externalizeComponent","observer","robotName","programState","safetyState","operationMode","driveToHomeEnabled","onDriveToHomePress","onDriveToHomeRelease","connectedMotionGroup","RobotComponent","Robot","CustomContentComponent","className","theme","useTheme","t","useTranslation","isDriveToHomePressed","setIsDriveToHomePressed","useState","driveButtonRef","useRef","cardRef","isLandscape","setIsLandscape","cardSize","setCardSize","modelRenderTrigger","setModelRenderTrigger","useEffect","checkDimensions","offsetWidth","offsetHeight","resizeObserver","handleModelRender","useCallback","prev","handleDriveToHomeMouseDown","handleDriveToHomeMouseUp","handleDriveToHomeMouseLeave","shouldHideRobot","shouldHideCustomContent","jsx","Card","_a","jsxs","Fragment","Box","Canvas","PresetEnvironment","Bounds","Typography","ProgramStateIndicator","Divider","Button"],"mappings":"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"}
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),m=require("@mui/icons-material/Error"),y=require("@mui/material/styles"),r=require("@mui/material/Box"),b=require("@mui/material/Divider"),n=require("@mui/material/Typography"),R=require("mobx-react-lite"),f=require("../chunks/externalizeComponent-DOwkaDcw.cjs"),a=require("./RobotSetupReadinessIndicator.cjs"),g=require("../chunks/robot-CrNbCELh.cjs"),l=f.externalizeComponent(R.observer(({robotName:c,robotType:d,setupState:o,PreconditionComponent:i=a.RobotSetupReadinessIndicator,className:p})=>{var s;const t=y.useTheme(),x=d||"Robot",u=o===a.RobotSetupReadinessState.READY;return e.jsxs(r,{className:p,sx:{border:`1px solid ${t.palette.divider}`,background:((s=t.palette.backgroundPaperElevation)==null?void 0:s[8])||"#292B3F",borderRadius:"8px",padding:"20px",display:"flex",alignItems:"center",justifyContent:"space-between",opacity:1},children:[e.jsxs(r,{sx:{display:"flex",alignItems:"center",gap:2,flex:1},children:[u?e.jsx(r,{sx:{fontSize:24,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,"& svg":{fill:`${t.palette.primary.main} !important`},"& svg path":{fill:`${t.palette.primary.main} !important`}},children:e.jsx(g.ForwardRef,{})}):e.jsx(m,{sx:{color:t.palette.error.main,fontSize:24}}),e.jsx(n,{variant:"body1",sx:{fontWeight:500,color:t.palette.text.primary},children:c}),e.jsx(b,{orientation:"vertical",flexItem:!0,sx:{backgroundColor:t.palette.text.secondary,opacity:.3,width:"1px"}}),e.jsx(n,{variant:"body2",sx:{color:t.palette.text.secondary},children:x})]}),i&&e.jsx(i,{setupState:o})]})}));exports.RobotListItem=l;exports.default=l;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),y=require("@mui/icons-material/Error"),b=require("@mui/material/styles"),r=require("@mui/material/Box"),m=require("@mui/material/Divider"),n=require("@mui/material/Typography"),f=require("mobx-react-lite"),g=require("../externalizeComponent.cjs"),a=require("./RobotSetupReadinessIndicator.cjs"),R=require("../icons/robot.svg.cjs"),l=g.externalizeComponent(f.observer(({robotName:c,robotType:d,setupState:o,PreconditionComponent:i=a.RobotSetupReadinessIndicator,className:p})=>{var s;const t=b.useTheme(),x=d||"Robot",u=o===a.RobotSetupReadinessState.READY;return e.jsxs(r,{className:p,sx:{border:`1px solid ${t.palette.divider}`,background:((s=t.palette.backgroundPaperElevation)==null?void 0:s[8])||"#292B3F",borderRadius:"8px",padding:"20px",display:"flex",alignItems:"center",justifyContent:"space-between",opacity:1},children:[e.jsxs(r,{sx:{display:"flex",alignItems:"center",gap:2,flex:1},children:[u?e.jsx(r,{sx:{fontSize:24,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,"& svg":{fill:`${t.palette.primary.main} !important`},"& svg path":{fill:`${t.palette.primary.main} !important`}},children:e.jsx(R.default,{})}):e.jsx(y,{sx:{color:t.palette.error.main,fontSize:24}}),e.jsx(n,{variant:"body1",sx:{fontWeight:500,color:t.palette.text.primary},children:c}),e.jsx(m,{orientation:"vertical",flexItem:!0,sx:{backgroundColor:t.palette.text.secondary,opacity:.3,width:"1px"}}),e.jsx(n,{variant:"body2",sx:{color:t.palette.text.secondary},children:x})]}),i&&e.jsx(i,{setupState:o})]})}));exports.RobotListItem=l;exports.default=l;
2
+ //# sourceMappingURL=RobotListItem.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotListItem.cjs","sources":["../../src/components/RobotListItem.tsx"],"sourcesContent":["import ErrorIcon from \"@mui/icons-material/Error\"\nimport { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Divider from \"@mui/material/Divider\"\nimport Typography from \"@mui/material/Typography\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ComponentType } from \"react\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport { RobotIcon } from \"../icons\"\nimport {\n RobotSetupReadinessIndicator,\n RobotSetupReadinessState,\n} from \"./RobotSetupReadinessIndicator\"\n\nexport interface RobotListItemProps {\n /** The name of the robot */\n robotName: string\n /** The type/model of the robot (will try to derive from nova if not provided) */\n robotType?: string\n /** The current setup readiness state of the robot */\n setupState: RobotSetupReadinessState\n /**\n * Component to render for the precondition indicator.\n * Defaults to RobotSetupReadinessIndicator.\n * Pass null or undefined to hide the indicator.\n */\n PreconditionComponent?: ComponentType<{\n setupState: RobotSetupReadinessState\n }> | null\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A list item component that displays robot information and setup readiness state.\n *\n * Features:\n * - Shows robot name, type, and customizable precondition component\n * - Color-coded icon based on readiness state (robot icon for ready, warning for issues)\n * - Styled with consistent border, background, and spacing\n * - Responsive layout with proper spacing and alignment\n * - Flexible precondition component that can be customized or hidden\n */\nexport const RobotListItem = externalizeComponent(\n observer(\n ({\n robotName,\n robotType,\n setupState,\n PreconditionComponent = RobotSetupReadinessIndicator,\n className,\n }: RobotListItemProps) => {\n const theme = useTheme()\n\n // Use provided robot type or default\n const displayRobotType = robotType || \"Robot\"\n\n const isReady = setupState === RobotSetupReadinessState.READY\n\n return (\n <Box\n className={className}\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n background:\n theme.palette.backgroundPaperElevation?.[8] || \"#292B3F\",\n borderRadius: \"8px\",\n padding: \"20px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n opacity: 1,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n flex: 1,\n }}\n >\n {/* Robot/Warning Icon */}\n {isReady ? (\n <Box\n sx={{\n fontSize: 24,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n \"& svg\": {\n fill: `${theme.palette.primary.main} !important`,\n },\n \"& svg path\": {\n fill: `${theme.palette.primary.main} !important`,\n },\n }}\n >\n <RobotIcon />\n </Box>\n ) : (\n <ErrorIcon\n sx={{\n color: theme.palette.error.main,\n fontSize: 24,\n }}\n />\n )}\n\n {/* Robot Name */}\n <Typography\n variant=\"body1\"\n sx={{\n fontWeight: 500,\n color: theme.palette.text.primary,\n }}\n >\n {robotName}\n </Typography>\n\n {/* Divider */}\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{\n backgroundColor: theme.palette.text.secondary,\n opacity: 0.3,\n width: \"1px\",\n }}\n />\n\n {/* Robot Type */}\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n }}\n >\n {displayRobotType}\n </Typography>\n </Box>\n\n {/* Setup Readiness Indicator */}\n {PreconditionComponent && (\n <PreconditionComponent setupState={setupState} />\n )}\n </Box>\n )\n },\n ),\n)\n\nexport default RobotListItem\n"],"names":["RobotListItem","externalizeComponent","observer","robotName","robotType","setupState","PreconditionComponent","RobotSetupReadinessIndicator","className","theme","useTheme","displayRobotType","isReady","RobotSetupReadinessState","jsxs","Box","_a","jsx","RobotIcon","ErrorIcon","Typography","Divider"],"mappings":"4dA2CaA,EAAgBC,EAAAA,qBAC3BC,EAAAA,SACE,CAAC,CACC,UAAAC,EACA,UAAAC,EACA,WAAAC,EACA,sBAAAC,EAAwBC,EAAAA,6BACxB,UAAAC,CAAA,IACwB,OACxB,MAAMC,EAAQC,EAAAA,SAAA,EAGRC,EAAmBP,GAAa,QAEhCQ,EAAUP,IAAeQ,EAAAA,yBAAyB,MAExD,OACEC,EAAAA,KAACC,EAAA,CACC,UAAAP,EACA,GAAI,CACF,OAAQ,aAAaC,EAAM,QAAQ,OAAO,GAC1C,aACEO,EAAAP,EAAM,QAAQ,2BAAd,YAAAO,EAAyC,KAAM,UACjD,aAAc,MACd,QAAS,OACT,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,QAAS,CAAA,EAGX,SAAA,CAAAF,EAAAA,KAACC,EAAA,CACC,GAAI,CACF,QAAS,OACT,WAAY,SACZ,IAAK,EACL,KAAM,CAAA,EAIP,SAAA,CAAAH,EACCK,EAAAA,IAACF,EAAA,CACC,GAAI,CACF,SAAU,GACV,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,MAAO,GACP,OAAQ,GACR,QAAS,CACP,KAAM,GAAGN,EAAM,QAAQ,QAAQ,IAAI,aAAA,EAErC,aAAc,CACZ,KAAM,GAAGA,EAAM,QAAQ,QAAQ,IAAI,aAAA,CACrC,EAGF,eAACS,EAAAA,QAAA,CAAA,CAAU,CAAA,CAAA,EAGbD,EAAAA,IAACE,EAAA,CACC,GAAI,CACF,MAAOV,EAAM,QAAQ,MAAM,KAC3B,SAAU,EAAA,CACZ,CAAA,EAKJQ,EAAAA,IAACG,EAAA,CACC,QAAQ,QACR,GAAI,CACF,WAAY,IACZ,MAAOX,EAAM,QAAQ,KAAK,OAAA,EAG3B,SAAAN,CAAA,CAAA,EAIHc,EAAAA,IAACI,EAAA,CACC,YAAY,WACZ,SAAQ,GACR,GAAI,CACF,gBAAiBZ,EAAM,QAAQ,KAAK,UACpC,QAAS,GACT,MAAO,KAAA,CACT,CAAA,EAIFQ,EAAAA,IAACG,EAAA,CACC,QAAQ,QACR,GAAI,CACF,MAAOX,EAAM,QAAQ,KAAK,SAAA,EAG3B,SAAAE,CAAA,CAAA,CACH,CAAA,CAAA,EAIDL,GACCW,EAAAA,IAACX,EAAA,CAAsB,WAAAD,CAAA,CAAwB,CAAA,CAAA,CAAA,CAIvD,CAAA,CAEJ"}
@@ -32,3 +32,4 @@ export declare const RobotListItem: (({ robotName, robotType, setupState, Precon
32
32
  displayName: string;
33
33
  };
34
34
  export default RobotListItem;
35
+ //# sourceMappingURL=RobotListItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotListItem.d.ts","sourceRoot":"","sources":["../../src/components/RobotListItem.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAG1C,OAAO,EAEL,wBAAwB,EACzB,MAAM,gCAAgC,CAAA;AAEvC,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,UAAU,EAAE,wBAAwB,CAAA;IACpC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,aAAa,CAAC;QACpC,UAAU,EAAE,wBAAwB,CAAA;KACrC,CAAC,GAAG,IAAI,CAAA;IACT,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,6EAQnB,kBAAkB;;CAqGxB,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -1,31 +1,31 @@
1
- import { jsxs as n, jsx as t } from "react/jsx-runtime";
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
2
  import f from "@mui/icons-material/Error";
3
3
  import { useTheme as x } from "@mui/material/styles";
4
4
  import r from "@mui/material/Box";
5
5
  import y from "@mui/material/Divider";
6
6
  import p from "@mui/material/Typography";
7
7
  import { observer as b } from "mobx-react-lite";
8
- import { e as h } from "../chunks/externalizeComponent-eiCc5DIh.js";
8
+ import { externalizeComponent as h } from "../externalizeComponent.js";
9
9
  import { RobotSetupReadinessState as g, RobotSetupReadinessIndicator as u } from "./RobotSetupReadinessIndicator.js";
10
- import { F as R } from "../chunks/robot-D97QEl_l.js";
11
- const T = h(
10
+ import R from "../icons/robot.svg.js";
11
+ const $ = h(
12
12
  b(
13
13
  ({
14
- robotName: s,
15
- robotType: l,
14
+ robotName: l,
15
+ robotType: s,
16
16
  setupState: o,
17
17
  PreconditionComponent: i = u,
18
18
  className: m
19
19
  }) => {
20
20
  var a;
21
- const e = x(), d = l || "Robot", c = o === g.READY;
21
+ const t = x(), d = s || "Robot", c = o === g.READY;
22
22
  return /* @__PURE__ */ n(
23
23
  r,
24
24
  {
25
25
  className: m,
26
26
  sx: {
27
- border: `1px solid ${e.palette.divider}`,
28
- background: ((a = e.palette.backgroundPaperElevation) == null ? void 0 : a[8]) || "#292B3F",
27
+ border: `1px solid ${t.palette.divider}`,
28
+ background: ((a = t.palette.backgroundPaperElevation) == null ? void 0 : a[8]) || "#292B3F",
29
29
  borderRadius: "8px",
30
30
  padding: "20px",
31
31
  display: "flex",
@@ -44,7 +44,7 @@ const T = h(
44
44
  flex: 1
45
45
  },
46
46
  children: [
47
- c ? /* @__PURE__ */ t(
47
+ c ? /* @__PURE__ */ e(
48
48
  r,
49
49
  {
50
50
  sx: {
@@ -55,52 +55,52 @@ const T = h(
55
55
  width: 24,
56
56
  height: 24,
57
57
  "& svg": {
58
- fill: `${e.palette.primary.main} !important`
58
+ fill: `${t.palette.primary.main} !important`
59
59
  },
60
60
  "& svg path": {
61
- fill: `${e.palette.primary.main} !important`
61
+ fill: `${t.palette.primary.main} !important`
62
62
  }
63
63
  },
64
- children: /* @__PURE__ */ t(R, {})
64
+ children: /* @__PURE__ */ e(R, {})
65
65
  }
66
- ) : /* @__PURE__ */ t(
66
+ ) : /* @__PURE__ */ e(
67
67
  f,
68
68
  {
69
69
  sx: {
70
- color: e.palette.error.main,
70
+ color: t.palette.error.main,
71
71
  fontSize: 24
72
72
  }
73
73
  }
74
74
  ),
75
- /* @__PURE__ */ t(
75
+ /* @__PURE__ */ e(
76
76
  p,
77
77
  {
78
78
  variant: "body1",
79
79
  sx: {
80
80
  fontWeight: 500,
81
- color: e.palette.text.primary
81
+ color: t.palette.text.primary
82
82
  },
83
- children: s
83
+ children: l
84
84
  }
85
85
  ),
86
- /* @__PURE__ */ t(
86
+ /* @__PURE__ */ e(
87
87
  y,
88
88
  {
89
89
  orientation: "vertical",
90
90
  flexItem: !0,
91
91
  sx: {
92
- backgroundColor: e.palette.text.secondary,
92
+ backgroundColor: t.palette.text.secondary,
93
93
  opacity: 0.3,
94
94
  width: "1px"
95
95
  }
96
96
  }
97
97
  ),
98
- /* @__PURE__ */ t(
98
+ /* @__PURE__ */ e(
99
99
  p,
100
100
  {
101
101
  variant: "body2",
102
102
  sx: {
103
- color: e.palette.text.secondary
103
+ color: t.palette.text.secondary
104
104
  },
105
105
  children: d
106
106
  }
@@ -108,7 +108,7 @@ const T = h(
108
108
  ]
109
109
  }
110
110
  ),
111
- i && /* @__PURE__ */ t(i, { setupState: o })
111
+ i && /* @__PURE__ */ e(i, { setupState: o })
112
112
  ]
113
113
  }
114
114
  );
@@ -116,6 +116,7 @@ const T = h(
116
116
  )
117
117
  );
118
118
  export {
119
- T as RobotListItem,
120
- T as default
119
+ $ as RobotListItem,
120
+ $ as default
121
121
  };
122
+ //# sourceMappingURL=RobotListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RobotListItem.js","sources":["../../src/components/RobotListItem.tsx"],"sourcesContent":["import ErrorIcon from \"@mui/icons-material/Error\"\nimport { useTheme } from \"@mui/material/styles\"\nimport Box from \"@mui/material/Box\"\nimport Divider from \"@mui/material/Divider\"\nimport Typography from \"@mui/material/Typography\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ComponentType } from \"react\"\nimport { externalizeComponent } from \"../externalizeComponent\"\nimport { RobotIcon } from \"../icons\"\nimport {\n RobotSetupReadinessIndicator,\n RobotSetupReadinessState,\n} from \"./RobotSetupReadinessIndicator\"\n\nexport interface RobotListItemProps {\n /** The name of the robot */\n robotName: string\n /** The type/model of the robot (will try to derive from nova if not provided) */\n robotType?: string\n /** The current setup readiness state of the robot */\n setupState: RobotSetupReadinessState\n /**\n * Component to render for the precondition indicator.\n * Defaults to RobotSetupReadinessIndicator.\n * Pass null or undefined to hide the indicator.\n */\n PreconditionComponent?: ComponentType<{\n setupState: RobotSetupReadinessState\n }> | null\n /** Additional CSS class name */\n className?: string\n}\n\n/**\n * A list item component that displays robot information and setup readiness state.\n *\n * Features:\n * - Shows robot name, type, and customizable precondition component\n * - Color-coded icon based on readiness state (robot icon for ready, warning for issues)\n * - Styled with consistent border, background, and spacing\n * - Responsive layout with proper spacing and alignment\n * - Flexible precondition component that can be customized or hidden\n */\nexport const RobotListItem = externalizeComponent(\n observer(\n ({\n robotName,\n robotType,\n setupState,\n PreconditionComponent = RobotSetupReadinessIndicator,\n className,\n }: RobotListItemProps) => {\n const theme = useTheme()\n\n // Use provided robot type or default\n const displayRobotType = robotType || \"Robot\"\n\n const isReady = setupState === RobotSetupReadinessState.READY\n\n return (\n <Box\n className={className}\n sx={{\n border: `1px solid ${theme.palette.divider}`,\n background:\n theme.palette.backgroundPaperElevation?.[8] || \"#292B3F\",\n borderRadius: \"8px\",\n padding: \"20px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n opacity: 1,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 2,\n flex: 1,\n }}\n >\n {/* Robot/Warning Icon */}\n {isReady ? (\n <Box\n sx={{\n fontSize: 24,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n \"& svg\": {\n fill: `${theme.palette.primary.main} !important`,\n },\n \"& svg path\": {\n fill: `${theme.palette.primary.main} !important`,\n },\n }}\n >\n <RobotIcon />\n </Box>\n ) : (\n <ErrorIcon\n sx={{\n color: theme.palette.error.main,\n fontSize: 24,\n }}\n />\n )}\n\n {/* Robot Name */}\n <Typography\n variant=\"body1\"\n sx={{\n fontWeight: 500,\n color: theme.palette.text.primary,\n }}\n >\n {robotName}\n </Typography>\n\n {/* Divider */}\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{\n backgroundColor: theme.palette.text.secondary,\n opacity: 0.3,\n width: \"1px\",\n }}\n />\n\n {/* Robot Type */}\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n }}\n >\n {displayRobotType}\n </Typography>\n </Box>\n\n {/* Setup Readiness Indicator */}\n {PreconditionComponent && (\n <PreconditionComponent setupState={setupState} />\n )}\n </Box>\n )\n },\n ),\n)\n\nexport default RobotListItem\n"],"names":["RobotListItem","externalizeComponent","observer","robotName","robotType","setupState","PreconditionComponent","RobotSetupReadinessIndicator","className","theme","useTheme","displayRobotType","isReady","RobotSetupReadinessState","jsxs","Box","_a","jsx","RobotIcon","ErrorIcon","Typography","Divider"],"mappings":";;;;;;;;;;AA2CO,MAAMA,IAAgBC;AAAA,EAC3BC;AAAA,IACE,CAAC;AAAA,MACC,WAAAC;AAAA,MACA,WAAAC;AAAA,MACA,YAAAC;AAAA,MACA,uBAAAC,IAAwBC;AAAA,MACxB,WAAAC;AAAA,IAAA,MACwB;;AACxB,YAAMC,IAAQC,EAAA,GAGRC,IAAmBP,KAAa,SAEhCQ,IAAUP,MAAeQ,EAAyB;AAExD,aACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAAP;AAAA,UACA,IAAI;AAAA,YACF,QAAQ,aAAaC,EAAM,QAAQ,OAAO;AAAA,YAC1C,cACEO,IAAAP,EAAM,QAAQ,6BAAd,gBAAAO,EAAyC,OAAM;AAAA,YACjD,cAAc;AAAA,YACd,SAAS;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,SAAS;AAAA,UAAA;AAAA,UAGX,UAAA;AAAA,YAAA,gBAAAF;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,IAAI;AAAA,kBACF,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,KAAK;AAAA,kBACL,MAAM;AAAA,gBAAA;AAAA,gBAIP,UAAA;AAAA,kBAAAH,IACC,gBAAAK;AAAA,oBAACF;AAAA,oBAAA;AAAA,sBACC,IAAI;AAAA,wBACF,UAAU;AAAA,wBACV,SAAS;AAAA,wBACT,YAAY;AAAA,wBACZ,gBAAgB;AAAA,wBAChB,OAAO;AAAA,wBACP,QAAQ;AAAA,wBACR,SAAS;AAAA,0BACP,MAAM,GAAGN,EAAM,QAAQ,QAAQ,IAAI;AAAA,wBAAA;AAAA,wBAErC,cAAc;AAAA,0BACZ,MAAM,GAAGA,EAAM,QAAQ,QAAQ,IAAI;AAAA,wBAAA;AAAA,sBACrC;AAAA,sBAGF,4BAACS,GAAA,CAAA,CAAU;AAAA,oBAAA;AAAA,kBAAA,IAGb,gBAAAD;AAAA,oBAACE;AAAA,oBAAA;AAAA,sBACC,IAAI;AAAA,wBACF,OAAOV,EAAM,QAAQ,MAAM;AAAA,wBAC3B,UAAU;AAAA,sBAAA;AAAA,oBACZ;AAAA,kBAAA;AAAA,kBAKJ,gBAAAQ;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC,SAAQ;AAAA,sBACR,IAAI;AAAA,wBACF,YAAY;AAAA,wBACZ,OAAOX,EAAM,QAAQ,KAAK;AAAA,sBAAA;AAAA,sBAG3B,UAAAN;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAIH,gBAAAc;AAAA,oBAACI;AAAA,oBAAA;AAAA,sBACC,aAAY;AAAA,sBACZ,UAAQ;AAAA,sBACR,IAAI;AAAA,wBACF,iBAAiBZ,EAAM,QAAQ,KAAK;AAAA,wBACpC,SAAS;AAAA,wBACT,OAAO;AAAA,sBAAA;AAAA,oBACT;AAAA,kBAAA;AAAA,kBAIF,gBAAAQ;AAAA,oBAACG;AAAA,oBAAA;AAAA,sBACC,SAAQ;AAAA,sBACR,IAAI;AAAA,wBACF,OAAOX,EAAM,QAAQ,KAAK;AAAA,sBAAA;AAAA,sBAG3B,UAAAE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACH;AAAA,cAAA;AAAA,YAAA;AAAA,YAIDL,KACC,gBAAAW,EAACX,GAAA,EAAsB,YAAAD,EAAA,CAAwB;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAIvD;AAAA,EAAA;AAEJ;"}
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),k=require("@mui/material/styles"),u=require("@mui/material/Box"),R=require("@mui/material/Chip"),I=require("@mui/material/Typography"),N=require("mobx-react-lite"),_=require("react-i18next"),m=require("../chunks/externalizeComponent-DOwkaDcw.cjs");var b=(t=>(t.PRECONDITION_NOT_FULFILLED="PRECONDITION_NOT_FULFILLED",t.ROBOT_DISCONNECTED="ROBOT_DISCONNECTED",t.CELL_OPEN="CELL_OPEN",t.E_STOP="E_STOP",t.MANUAL_MODE="MANUAL_MODE",t.READY="READY",t))(b||{});const C=m.externalizeComponent(N.observer(({setupState:t,className:g})=>{const e=k.useTheme(),{t:r}=_.useTranslation(),E=()=>{var n,l,i,c,d,s,p;switch(t){case"READY":return{label:r("RobotSetupReadinessIndicator.Ready.lb"),indicatorColor:((n=e.palette.tertiary)==null?void 0:n.main)||e.palette.primary.main,backgroundColor:((l=e.palette.backgroundPaperElevation)==null?void 0:l[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"ROBOT_DISCONNECTED":return{label:r("RobotSetupReadinessIndicator.RobotDisconnected.lb"),indicatorColor:e.palette.error.main,backgroundColor:((i=e.palette.backgroundPaperElevation)==null?void 0:i[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"CELL_OPEN":return{label:r("RobotSetupReadinessIndicator.CellOpen.lb"),indicatorColor:e.palette.error.main,backgroundColor:((c=e.palette.backgroundPaperElevation)==null?void 0:c[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"E_STOP":return{label:r("RobotSetupReadinessIndicator.EStop.lb"),indicatorColor:e.palette.error.main,backgroundColor:((d=e.palette.backgroundPaperElevation)==null?void 0:d[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"MANUAL_MODE":return{label:r("RobotSetupReadinessIndicator.ManualMode.lb"),indicatorColor:e.palette.error.main,backgroundColor:((s=e.palette.backgroundPaperElevation)==null?void 0:s[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};default:return{label:r("RobotSetupReadinessIndicator.PreconditionNotFulfilled.lb"),indicatorColor:e.palette.error.main,backgroundColor:((p=e.palette.backgroundPaperElevation)==null?void 0:p[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText}}},{label:x,indicatorColor:O,backgroundColor:a,textColor:T}=E();return o.jsx(R,{className:g,label:o.jsxs(u,{sx:{display:"flex",alignItems:"center",gap:1},children:[o.jsx(u,{sx:{width:8,height:8,borderRadius:"50%",backgroundColor:O,flexShrink:0}}),o.jsx(I,{variant:"body2",sx:{color:T,fontSize:"0.75rem",lineHeight:1.2},children:x})]}),variant:"filled",sx:{backgroundColor:a,color:e.palette.getContrastText(a),fontWeight:500,height:"auto","& .MuiChip-label":{paddingX:1.5,paddingY:.5}}})}));exports.RobotSetupReadinessIndicator=C;exports.RobotSetupReadinessState=b;exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),k=require("@mui/material/styles"),u=require("@mui/material/Box"),R=require("@mui/material/Chip"),I=require("@mui/material/Typography"),N=require("mobx-react-lite"),_=require("react-i18next"),m=require("../externalizeComponent.cjs");var b=(t=>(t.PRECONDITION_NOT_FULFILLED="PRECONDITION_NOT_FULFILLED",t.ROBOT_DISCONNECTED="ROBOT_DISCONNECTED",t.CELL_OPEN="CELL_OPEN",t.E_STOP="E_STOP",t.MANUAL_MODE="MANUAL_MODE",t.READY="READY",t))(b||{});const C=m.externalizeComponent(N.observer(({setupState:t,className:g})=>{const e=k.useTheme(),{t:r}=_.useTranslation(),E=()=>{var n,l,i,c,d,s,p;switch(t){case"READY":return{label:r("RobotSetupReadinessIndicator.Ready.lb"),indicatorColor:((n=e.palette.tertiary)==null?void 0:n.main)||e.palette.primary.main,backgroundColor:((l=e.palette.backgroundPaperElevation)==null?void 0:l[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"ROBOT_DISCONNECTED":return{label:r("RobotSetupReadinessIndicator.RobotDisconnected.lb"),indicatorColor:e.palette.error.main,backgroundColor:((i=e.palette.backgroundPaperElevation)==null?void 0:i[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"CELL_OPEN":return{label:r("RobotSetupReadinessIndicator.CellOpen.lb"),indicatorColor:e.palette.error.main,backgroundColor:((c=e.palette.backgroundPaperElevation)==null?void 0:c[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"E_STOP":return{label:r("RobotSetupReadinessIndicator.EStop.lb"),indicatorColor:e.palette.error.main,backgroundColor:((d=e.palette.backgroundPaperElevation)==null?void 0:d[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};case"MANUAL_MODE":return{label:r("RobotSetupReadinessIndicator.ManualMode.lb"),indicatorColor:e.palette.error.main,backgroundColor:((s=e.palette.backgroundPaperElevation)==null?void 0:s[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText};default:return{label:r("RobotSetupReadinessIndicator.PreconditionNotFulfilled.lb"),indicatorColor:e.palette.error.main,backgroundColor:((p=e.palette.backgroundPaperElevation)==null?void 0:p[11])||e.palette.background.paper,textColor:e.palette.secondary.contrastText}}},{label:x,indicatorColor:O,backgroundColor:a,textColor:T}=E();return o.jsx(R,{className:g,label:o.jsxs(u,{sx:{display:"flex",alignItems:"center",gap:1},children:[o.jsx(u,{sx:{width:8,height:8,borderRadius:"50%",backgroundColor:O,flexShrink:0}}),o.jsx(I,{variant:"body2",sx:{color:T,fontSize:"0.75rem",lineHeight:1.2},children:x})]}),variant:"filled",sx:{backgroundColor:a,color:e.palette.getContrastText(a),fontWeight:500,height:"auto","& .MuiChip-label":{paddingX:1.5,paddingY:.5}}})}));exports.RobotSetupReadinessIndicator=C;exports.RobotSetupReadinessState=b;exports.default=C;
2
+ //# sourceMappingURL=RobotSetupReadinessIndicator.cjs.map