@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.
- package/dist/3d.cjs +2 -1
- package/dist/3d.cjs.map +1 -0
- package/dist/3d.d.ts +1 -0
- package/dist/3d.d.ts.map +1 -0
- package/dist/3d.js +1 -0
- package/dist/3d.js.map +1 -0
- package/dist/Setup.d.ts +1 -0
- package/dist/Setup.d.ts.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.cjs.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.js.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs +2 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.js.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js +1 -0
- package/dist/components/3d-viewport/TrajectoryRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderCollection.js.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.cjs +2 -1
- package/dist/components/3d-viewport/collider/ColliderElement.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js +1 -0
- package/dist/components/3d-viewport/collider/ColliderElement.js.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs +2 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js +1 -0
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.js.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.cjs.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js +1 -0
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.js.map +1 -0
- package/dist/components/AppHeader.cjs +2 -1
- package/dist/components/AppHeader.cjs.map +1 -0
- package/dist/components/AppHeader.d.ts +1 -0
- package/dist/components/AppHeader.d.ts.map +1 -0
- package/dist/components/AppHeader.js +34 -40
- package/dist/components/AppHeader.js.map +1 -0
- package/dist/components/ConsoleFilter.cjs +1 -0
- package/dist/components/ConsoleFilter.cjs.map +1 -0
- package/dist/components/ConsoleFilter.d.ts +1 -0
- package/dist/components/ConsoleFilter.d.ts.map +1 -0
- package/dist/components/ConsoleFilter.js +1 -0
- package/dist/components/ConsoleFilter.js.map +1 -0
- package/dist/components/CopyableText.cjs +1 -0
- package/dist/components/CopyableText.cjs.map +1 -0
- package/dist/components/CopyableText.d.ts +1 -0
- package/dist/components/CopyableText.d.ts.map +1 -0
- package/dist/components/CopyableText.js +1 -0
- package/dist/components/CopyableText.js.map +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.cjs +2 -1
- package/dist/components/CycleTimer/DefaultVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts +1 -0
- package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js +1 -0
- package/dist/components/CycleTimer/DefaultVariant.js.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs +1 -0
- package/dist/components/CycleTimer/SmallVariant.cjs.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts +1 -0
- package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -0
- package/dist/components/CycleTimer/SmallVariant.js +1 -0
- package/dist/components/CycleTimer/SmallVariant.js.map +1 -0
- package/dist/components/CycleTimer/index.cjs +2 -1
- package/dist/components/CycleTimer/index.cjs.map +1 -0
- package/dist/components/CycleTimer/index.d.ts +1 -0
- package/dist/components/CycleTimer/index.d.ts.map +1 -0
- package/dist/components/CycleTimer/index.js +2 -1
- package/dist/components/CycleTimer/index.js.map +1 -0
- package/dist/components/CycleTimer/types.d.ts +1 -0
- package/dist/components/CycleTimer/types.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs +1 -0
- package/dist/components/CycleTimer/useAnimations.cjs.map +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts +1 -0
- package/dist/components/CycleTimer/useAnimations.d.ts.map +1 -0
- package/dist/components/CycleTimer/useAnimations.js +2 -9
- package/dist/components/CycleTimer/useAnimations.js.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.cjs +2 -1
- package/dist/components/CycleTimer/useTimerLogic.cjs.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts +1 -0
- package/dist/components/CycleTimer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js +1 -0
- package/dist/components/CycleTimer/useTimerLogic.js.map +1 -0
- package/dist/components/CycleTimer/utils.cjs +2 -1
- package/dist/components/CycleTimer/utils.cjs.map +1 -0
- package/dist/components/CycleTimer/utils.d.ts +1 -0
- package/dist/components/CycleTimer/utils.d.ts.map +1 -0
- package/dist/components/CycleTimer/utils.js +11 -19
- package/dist/components/CycleTimer/utils.js.map +1 -0
- package/dist/components/CycleTimer.cjs +1 -0
- package/dist/components/CycleTimer.cjs.map +1 -0
- package/dist/components/CycleTimer.d.ts +1 -0
- package/dist/components/CycleTimer.d.ts.map +1 -0
- package/dist/components/CycleTimer.js +1 -0
- package/dist/components/CycleTimer.js.map +1 -0
- package/dist/components/DataGrid.cjs +2 -1
- package/dist/components/DataGrid.cjs.map +1 -0
- package/dist/components/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid.d.ts.map +1 -0
- package/dist/components/DataGrid.js +2 -1
- package/dist/components/DataGrid.js.map +1 -0
- package/dist/components/LoadingCover.cjs +2 -1
- package/dist/components/LoadingCover.cjs.map +1 -0
- package/dist/components/LoadingCover.d.ts +1 -0
- package/dist/components/LoadingCover.d.ts.map +1 -0
- package/dist/components/LoadingCover.js +1 -0
- package/dist/components/LoadingCover.js.map +1 -0
- package/dist/components/LogPanel.cjs +2 -1
- package/dist/components/LogPanel.cjs.map +1 -0
- package/dist/components/LogPanel.d.ts +1 -0
- package/dist/components/LogPanel.d.ts.map +1 -0
- package/dist/components/LogPanel.js +2 -1
- package/dist/components/LogPanel.js.map +1 -0
- package/dist/components/LogStore.cjs +1 -0
- package/dist/components/LogStore.cjs.map +1 -0
- package/dist/components/LogStore.d.ts +1 -0
- package/dist/components/LogStore.d.ts.map +1 -0
- package/dist/components/LogStore.js +1 -0
- package/dist/components/LogStore.js.map +1 -0
- package/dist/components/LogViewer.cjs +2 -1
- package/dist/components/LogViewer.cjs.map +1 -0
- package/dist/components/LogViewer.d.ts +1 -0
- package/dist/components/LogViewer.d.ts.map +1 -0
- package/dist/components/LogViewer.js +2 -1
- package/dist/components/LogViewer.js.map +1 -0
- package/dist/components/ProgramControl.cjs +2 -1
- package/dist/components/ProgramControl.cjs.map +1 -0
- package/dist/components/ProgramControl.d.ts +1 -0
- package/dist/components/ProgramControl.d.ts.map +1 -0
- package/dist/components/ProgramControl.js +7 -6
- package/dist/components/ProgramControl.js.map +1 -0
- package/dist/components/ProgramStateIndicator.cjs +2 -1
- package/dist/components/ProgramStateIndicator.cjs.map +1 -0
- package/dist/components/ProgramStateIndicator.d.ts +1 -0
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -0
- package/dist/components/ProgramStateIndicator.js +29 -28
- package/dist/components/ProgramStateIndicator.js.map +1 -0
- package/dist/components/RobotCard.cjs +2 -1
- package/dist/components/RobotCard.cjs.map +1 -0
- package/dist/components/RobotCard.d.ts +1 -0
- package/dist/components/RobotCard.d.ts.map +1 -0
- package/dist/components/RobotCard.js +2 -1
- package/dist/components/RobotCard.js.map +1 -0
- package/dist/components/RobotListItem.cjs +2 -1
- package/dist/components/RobotListItem.cjs.map +1 -0
- package/dist/components/RobotListItem.d.ts +1 -0
- package/dist/components/RobotListItem.d.ts.map +1 -0
- package/dist/components/RobotListItem.js +26 -25
- package/dist/components/RobotListItem.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.cjs +2 -1
- package/dist/components/RobotSetupReadinessIndicator.cjs.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts +1 -0
- package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.js +2 -1
- package/dist/components/RobotSetupReadinessIndicator.js.map +1 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts +2 -0
- package/dist/components/RobotSetupReadinessIndicator.test.d.ts.map +1 -0
- package/dist/components/SelectableFab.cjs +1 -0
- package/dist/components/SelectableFab.cjs.map +1 -0
- package/dist/components/SelectableFab.d.ts +1 -0
- package/dist/components/SelectableFab.d.ts.map +1 -0
- package/dist/components/SelectableFab.js +1 -0
- package/dist/components/SelectableFab.js.map +1 -0
- package/dist/components/TabBar.cjs +2 -1
- package/dist/components/TabBar.cjs.map +1 -0
- package/dist/components/TabBar.d.ts +1 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +2 -1
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/ThemeSelect.d.ts +1 -0
- package/dist/components/ThemeSelect.d.ts.map +1 -0
- package/dist/components/Timer/Timer.d.ts +1 -0
- package/dist/components/Timer/Timer.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs +1 -0
- package/dist/components/Timer/TimerDefaultVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts +1 -0
- package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js +1 -0
- package/dist/components/Timer/TimerDefaultVariant.js.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs +1 -0
- package/dist/components/Timer/TimerSmallVariant.cjs.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts +1 -0
- package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -0
- package/dist/components/Timer/TimerSmallVariant.js +1 -0
- package/dist/components/Timer/TimerSmallVariant.js.map +1 -0
- package/dist/components/Timer/index.cjs +2 -1
- package/dist/components/Timer/index.cjs.map +1 -0
- package/dist/components/Timer/index.d.ts +1 -0
- package/dist/components/Timer/index.d.ts.map +1 -0
- package/dist/components/Timer/index.js +12 -11
- package/dist/components/Timer/index.js.map +1 -0
- package/dist/components/Timer/types.d.ts +1 -0
- package/dist/components/Timer/types.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs +1 -0
- package/dist/components/Timer/useTimerAnimations.cjs.map +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts +1 -0
- package/dist/components/Timer/useTimerAnimations.d.ts.map +1 -0
- package/dist/components/Timer/useTimerAnimations.js +2 -5
- package/dist/components/Timer/useTimerAnimations.js.map +1 -0
- package/dist/components/Timer/useTimerLogic.cjs +1 -0
- package/dist/components/Timer/useTimerLogic.cjs.map +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts +1 -0
- package/dist/components/Timer/useTimerLogic.d.ts.map +1 -0
- package/dist/components/Timer/useTimerLogic.js +1 -0
- package/dist/components/Timer/useTimerLogic.js.map +1 -0
- package/dist/components/Timer/utils.cjs +2 -1
- package/dist/components/Timer/utils.cjs.map +1 -0
- package/dist/components/Timer/utils.d.ts +1 -0
- package/dist/components/Timer/utils.d.ts.map +1 -0
- package/dist/components/Timer/utils.js +10 -10
- package/dist/components/Timer/utils.js.map +1 -0
- package/dist/components/Timer.cjs +1 -0
- package/dist/components/Timer.cjs.map +1 -0
- package/dist/components/Timer.d.ts +1 -0
- package/dist/components/Timer.d.ts.map +1 -0
- package/dist/components/Timer.js +1 -0
- package/dist/components/Timer.js.map +1 -0
- package/dist/components/TransparentOverlay.d.ts +1 -0
- package/dist/components/TransparentOverlay.d.ts.map +1 -0
- package/dist/components/VelocitySlider.cjs +1 -0
- package/dist/components/VelocitySlider.cjs.map +1 -0
- package/dist/components/VelocitySlider.d.ts +1 -0
- package/dist/components/VelocitySlider.d.ts.map +1 -0
- package/dist/components/VelocitySlider.js +1 -0
- package/dist/components/VelocitySlider.js.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs +1 -0
- package/dist/components/experimental/utils/AdornedSelect.cjs.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -0
- package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js +1 -0
- package/dist/components/experimental/utils/AdornedSelect.js.map +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs +1 -0
- package/dist/components/jogging/JoggingBlocked.cjs.map +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts +1 -0
- package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
- package/dist/components/jogging/JoggingBlocked.js +1 -0
- package/dist/components/jogging/JoggingBlocked.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianAxisControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.js +20 -18
- package/dist/components/jogging/JoggingCartesianAxisControl.js.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.cjs +2 -1
- package/dist/components/jogging/JoggingCartesianTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.js +41 -37
- package/dist/components/jogging/JoggingCartesianTab.js.map +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.js.map +1 -0
- package/dist/components/jogging/JoggingJointTab.cjs +2 -1
- package/dist/components/jogging/JoggingJointTab.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointTab.js +1 -0
- package/dist/components/jogging/JoggingJointTab.js.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.cjs +2 -1
- package/dist/components/jogging/JoggingJointValueControl.cjs.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts +1 -0
- package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointValueControl.js +2 -1
- package/dist/components/jogging/JoggingJointValueControl.js.map +1 -0
- package/dist/components/jogging/JoggingOptions.cjs +2 -1
- package/dist/components/jogging/JoggingOptions.cjs.map +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
- package/dist/components/jogging/JoggingOptions.js +1 -0
- package/dist/components/jogging/JoggingOptions.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.cjs +2 -1
- package/dist/components/jogging/JoggingPanel.cjs.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.js +119 -21
- package/dist/components/jogging/JoggingPanel.js.map +1 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts +2 -0
- package/dist/components/jogging/JoggingPanel.test.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.cjs +1 -0
- package/dist/components/jogging/JoggingStore.cjs.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +1 -0
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.js +1 -0
- package/dist/components/jogging/JoggingStore.js.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.cjs.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js +1 -0
- package/dist/components/jogging/JoggingToggleButtonGroup.js.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.cjs.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.js.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.cjs +2 -1
- package/dist/components/jogging/PoseCartesianValues.cjs.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts +1 -0
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseCartesianValues.js +5 -4
- package/dist/components/jogging/PoseCartesianValues.js.map +1 -0
- package/dist/components/jogging/PoseJointValues.cjs +2 -1
- package/dist/components/jogging/PoseJointValues.cjs.map +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts +1 -0
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -0
- package/dist/components/jogging/PoseJointValues.js +2 -1
- package/dist/components/jogging/PoseJointValues.js.map +1 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts +11 -0
- package/dist/components/jogging/__fixtures__/motionStreamMockData.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs +1 -0
- package/dist/components/modal/NoMotionGroupModal.cjs.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts +1 -0
- package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -0
- package/dist/components/modal/NoMotionGroupModal.js +1 -0
- package/dist/components/modal/NoMotionGroupModal.js.map +1 -0
- package/dist/components/robots/AxisConfig.cjs +1 -0
- package/dist/components/robots/AxisConfig.cjs.map +1 -0
- package/dist/components/robots/AxisConfig.d.ts +1 -0
- package/dist/components/robots/AxisConfig.d.ts.map +1 -0
- package/dist/components/robots/AxisConfig.js +1 -0
- package/dist/components/robots/AxisConfig.js.map +1 -0
- package/dist/components/robots/DHLinearAxis.cjs +2 -1
- package/dist/components/robots/DHLinearAxis.cjs.map +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts +1 -0
- package/dist/components/robots/DHLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/DHLinearAxis.js +1 -0
- package/dist/components/robots/DHLinearAxis.js.map +1 -0
- package/dist/components/robots/DHRobot.cjs +2 -1
- package/dist/components/robots/DHRobot.cjs.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +1 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -0
- package/dist/components/robots/DHRobot.js +1 -0
- package/dist/components/robots/DHRobot.js.map +1 -0
- package/dist/components/robots/GenericRobot.cjs +1 -0
- package/dist/components/robots/GenericRobot.cjs.map +1 -0
- package/dist/components/robots/GenericRobot.d.ts +1 -0
- package/dist/components/robots/GenericRobot.d.ts.map +1 -0
- package/dist/components/robots/GenericRobot.js +1 -0
- package/dist/components/robots/GenericRobot.js.map +1 -0
- package/dist/components/robots/LinearAxis.cjs +2 -1
- package/dist/components/robots/LinearAxis.cjs.map +1 -0
- package/dist/components/robots/LinearAxis.d.ts +1 -0
- package/dist/components/robots/LinearAxis.d.ts.map +1 -0
- package/dist/components/robots/LinearAxis.js +1 -0
- package/dist/components/robots/LinearAxis.js.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.cjs +2 -1
- package/dist/components/robots/LinearAxisAnimator.cjs.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts +1 -0
- package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -0
- package/dist/components/robots/LinearAxisAnimator.js +1 -0
- package/dist/components/robots/LinearAxisAnimator.js.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.cjs +2 -1
- package/dist/components/robots/MotionGroupVisualizer.cjs.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts +1 -0
- package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -0
- package/dist/components/robots/MotionGroupVisualizer.js +5 -4
- package/dist/components/robots/MotionGroupVisualizer.js.map +1 -0
- package/dist/components/robots/Robot.cjs +2 -1
- package/dist/components/robots/Robot.cjs.map +1 -0
- package/dist/components/robots/Robot.d.ts +1 -0
- package/dist/components/robots/Robot.d.ts.map +1 -0
- package/dist/components/robots/Robot.js +1 -0
- package/dist/components/robots/Robot.js.map +1 -0
- package/dist/components/robots/RobotAnimator.cjs +2 -1
- package/dist/components/robots/RobotAnimator.cjs.map +1 -0
- package/dist/components/robots/RobotAnimator.d.ts +1 -0
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
- package/dist/components/robots/RobotAnimator.js +1 -0
- package/dist/components/robots/RobotAnimator.js.map +1 -0
- package/dist/components/robots/RobotAnimator.test.d.ts +2 -0
- package/dist/components/robots/RobotAnimator.test.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.cjs +2 -1
- package/dist/components/robots/SupportedLinearAxis.cjs.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts +1 -0
- package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -0
- package/dist/components/robots/SupportedLinearAxis.js +8 -7
- package/dist/components/robots/SupportedLinearAxis.js.map +1 -0
- package/dist/components/robots/SupportedRobot.cjs +2 -1
- package/dist/components/robots/SupportedRobot.cjs.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +1 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
- package/dist/components/robots/SupportedRobot.js +7 -6
- package/dist/components/robots/SupportedRobot.js.map +1 -0
- package/dist/components/robots/ghostStyle.cjs +1 -0
- package/dist/components/robots/ghostStyle.cjs.map +1 -0
- package/dist/components/robots/ghostStyle.d.ts +1 -0
- package/dist/components/robots/ghostStyle.d.ts.map +1 -0
- package/dist/components/robots/ghostStyle.js +1 -0
- package/dist/components/robots/ghostStyle.js.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs +1 -0
- package/dist/components/robots/manufacturerHomePositions.cjs.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts +1 -0
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -0
- package/dist/components/robots/manufacturerHomePositions.js +1 -0
- package/dist/components/robots/manufacturerHomePositions.js.map +1 -0
- package/dist/components/robots/robotModelLogic.cjs +2 -1
- package/dist/components/robots/robotModelLogic.cjs.map +1 -0
- package/dist/components/robots/robotModelLogic.d.ts +1 -0
- package/dist/components/robots/robotModelLogic.d.ts.map +1 -0
- package/dist/components/robots/robotModelLogic.js +34 -58
- package/dist/components/robots/robotModelLogic.js.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs +2 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/ControllerTypeIndicator.js +12 -10
- package/dist/components/safetyBar/ControllerTypeIndicator.js.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.cjs.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js +1 -0
- package/dist/components/safetyBar/IndicatorWithExplanation.js.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.cjs +2 -1
- package/dist/components/safetyBar/OperationModeIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/OperationModeIndicator.js +24 -21
- package/dist/components/safetyBar/OperationModeIndicator.js.map +1 -0
- package/dist/components/safetyBar/SafetyBar.cjs +2 -1
- package/dist/components/safetyBar/SafetyBar.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts +1 -0
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyBar.js +16 -15
- package/dist/components/safetyBar/SafetyBar.js.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.cjs +2 -1
- package/dist/components/safetyBar/SafetyStateIndicator.cjs.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -0
- package/dist/components/safetyBar/SafetyStateIndicator.js +30 -25
- package/dist/components/safetyBar/SafetyStateIndicator.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-physical.svg.d.ts +3 -0
- package/dist/{chunks/controller-type-virtual-CWOoMRfl.js → components/safetyBar/icons/controller-type-physical.svg.js} +6 -10
- package/dist/components/safetyBar/icons/controller-type-physical.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js +11 -0
- package/dist/components/safetyBar/icons/controller-type-virtual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/index.d.ts +1 -0
- package/dist/components/safetyBar/icons/index.d.ts.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-automatic.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js +11 -0
- package/dist/components/safetyBar/icons/operation-mode-manual.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-error.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-estop.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-manual-action-required.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-normal.svg.js.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs +2 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.cjs.map +1 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.d.ts +3 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js +11 -0
- package/dist/components/safetyBar/icons/safety-state-stop.svg.js.map +1 -0
- package/dist/components/utils/converters.cjs +2 -1
- package/dist/components/utils/converters.cjs.map +1 -0
- package/dist/components/utils/converters.d.ts +1 -0
- package/dist/components/utils/converters.d.ts.map +1 -0
- package/dist/components/utils/converters.js +11 -26
- package/dist/components/utils/converters.js.map +1 -0
- package/dist/components/utils/errorHandling.cjs +2 -1
- package/dist/components/utils/errorHandling.cjs.map +1 -0
- package/dist/components/utils/errorHandling.d.ts +1 -0
- package/dist/components/utils/errorHandling.d.ts.map +1 -0
- package/dist/components/utils/errorHandling.js +9 -17
- package/dist/components/utils/errorHandling.js.map +1 -0
- package/dist/components/utils/errorHandling.test.d.ts +2 -0
- package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
- package/dist/components/utils/hooks.cjs +1 -0
- package/dist/components/utils/hooks.cjs.map +1 -0
- package/dist/components/utils/hooks.d.ts +1 -0
- package/dist/components/utils/hooks.d.ts.map +1 -0
- package/dist/components/utils/hooks.js +4 -3
- package/dist/components/utils/hooks.js.map +1 -0
- package/dist/components/utils/interpolation.cjs +1 -0
- package/dist/components/utils/interpolation.cjs.map +1 -0
- package/dist/components/utils/interpolation.d.ts +1 -0
- package/dist/components/utils/interpolation.d.ts.map +1 -0
- package/dist/components/utils/interpolation.js +1 -0
- package/dist/components/utils/interpolation.js.map +1 -0
- package/dist/components/utils/interpolation.test.d.ts +2 -0
- package/dist/components/utils/interpolation.test.d.ts.map +1 -0
- package/dist/core.cjs +2 -1
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +75 -70
- package/dist/core.js.map +1 -0
- package/dist/externalizeComponent.cjs +2 -0
- package/dist/externalizeComponent.cjs.map +1 -0
- package/dist/externalizeComponent.d.ts +1 -0
- package/dist/externalizeComponent.d.ts.map +1 -0
- package/dist/externalizeComponent.js +13 -0
- package/dist/externalizeComponent.js.map +1 -0
- package/dist/i18n/config.cjs +2 -0
- package/dist/i18n/config.cjs.map +1 -0
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/i18n/config.js +25 -0
- package/dist/i18n/config.js.map +1 -0
- package/dist/i18n/locales/de/translations.json.cjs +3 -0
- package/dist/i18n/locales/de/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/de/translations.json.js +94 -0
- package/dist/i18n/locales/de/translations.json.js.map +1 -0
- package/dist/i18n/locales/en/translations.json.cjs +2 -0
- package/dist/i18n/locales/en/translations.json.cjs.map +1 -0
- package/dist/i18n/locales/en/translations.json.js +94 -0
- package/dist/i18n/locales/en/translations.json.js.map +1 -0
- package/dist/icons/DropdownArrowIcon.cjs +2 -0
- package/dist/icons/DropdownArrowIcon.cjs.map +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts +1 -0
- package/dist/icons/DropdownArrowIcon.d.ts.map +1 -0
- package/dist/icons/DropdownArrowIcon.js +14 -0
- package/dist/icons/DropdownArrowIcon.js.map +1 -0
- package/dist/icons/axis-x.svg.cjs +2 -0
- package/dist/icons/axis-x.svg.cjs.map +1 -0
- package/dist/icons/axis-x.svg.d.ts +3 -0
- package/dist/icons/axis-x.svg.js +11 -0
- package/dist/icons/axis-x.svg.js.map +1 -0
- package/dist/icons/axis-y.svg.cjs +2 -0
- package/dist/icons/axis-y.svg.cjs.map +1 -0
- package/dist/icons/axis-y.svg.d.ts +3 -0
- package/dist/icons/axis-y.svg.js +11 -0
- package/dist/icons/axis-y.svg.js.map +1 -0
- package/dist/icons/axis-z.svg.cjs +2 -0
- package/dist/icons/axis-z.svg.cjs.map +1 -0
- package/dist/icons/axis-z.svg.d.ts +3 -0
- package/dist/icons/axis-z.svg.js +11 -0
- package/dist/icons/axis-z.svg.js.map +1 -0
- package/dist/icons/home.svg.cjs +2 -0
- package/dist/icons/home.svg.cjs.map +1 -0
- package/dist/icons/home.svg.d.ts +3 -0
- package/dist/icons/home.svg.js +11 -0
- package/dist/icons/home.svg.js.map +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/jog-minus.svg.cjs +2 -0
- package/dist/icons/jog-minus.svg.cjs.map +1 -0
- package/dist/icons/jog-minus.svg.d.ts +3 -0
- package/dist/icons/jog-minus.svg.js +11 -0
- package/dist/icons/jog-minus.svg.js.map +1 -0
- package/dist/icons/jog-plus.svg.cjs +2 -0
- package/dist/icons/jog-plus.svg.cjs.map +1 -0
- package/dist/icons/jog-plus.svg.d.ts +3 -0
- package/dist/icons/jog-plus.svg.js +11 -0
- package/dist/icons/jog-plus.svg.js.map +1 -0
- package/dist/icons/jogging.svg.cjs +2 -0
- package/dist/icons/jogging.svg.cjs.map +1 -0
- package/dist/icons/jogging.svg.d.ts +3 -0
- package/dist/icons/jogging.svg.js +11 -0
- package/dist/icons/jogging.svg.js.map +1 -0
- package/dist/icons/orientation-coord-system.svg.cjs +2 -0
- package/dist/icons/orientation-coord-system.svg.cjs.map +1 -0
- package/dist/icons/orientation-coord-system.svg.d.ts +3 -0
- package/dist/icons/orientation-coord-system.svg.js +11 -0
- package/dist/icons/orientation-coord-system.svg.js.map +1 -0
- package/dist/icons/orientation-tool.svg.cjs +2 -0
- package/dist/icons/orientation-tool.svg.cjs.map +1 -0
- package/dist/icons/orientation-tool.svg.d.ts +3 -0
- package/dist/icons/orientation-tool.svg.js +11 -0
- package/dist/icons/orientation-tool.svg.js.map +1 -0
- package/dist/icons/robot.svg.cjs +2 -0
- package/dist/icons/robot.svg.cjs.map +1 -0
- package/dist/icons/robot.svg.d.ts +3 -0
- package/dist/{chunks/robot-D97QEl_l.js → icons/robot.svg.js} +3 -2
- package/dist/icons/robot.svg.js.map +1 -0
- package/dist/icons/rotation.svg.cjs +2 -0
- package/dist/icons/rotation.svg.cjs.map +1 -0
- package/dist/icons/rotation.svg.d.ts +3 -0
- package/dist/icons/rotation.svg.js +11 -0
- package/dist/icons/rotation.svg.js.map +1 -0
- package/dist/icons/wbLogo.svg.cjs +2 -0
- package/dist/icons/wbLogo.svg.cjs.map +1 -0
- package/dist/icons/wbLogo.svg.d.ts +3 -0
- package/dist/icons/wbLogo.svg.js +11 -0
- package/dist/icons/wbLogo.svg.js.map +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -120
- package/dist/index.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.cjs +4 -0
- package/dist/lib/ConnectedMotionGroup.cjs.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
- package/dist/lib/ConnectedMotionGroup.js +250 -0
- package/dist/lib/ConnectedMotionGroup.js.map +1 -0
- package/dist/lib/JoggerConnection.cjs +2 -0
- package/dist/lib/JoggerConnection.cjs.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +1 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.js +342 -0
- package/dist/lib/JoggerConnection.js.map +1 -0
- package/dist/lib/JoggerConnection.test.d.ts +2 -0
- package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.cjs +3 -0
- package/dist/lib/MotionStreamConnection.cjs.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +1 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.js +94 -0
- package/dist/lib/MotionStreamConnection.js.map +1 -0
- package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
- package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.cjs +2 -0
- package/dist/lib/motionStateUpdate.cjs.map +1 -0
- package/dist/lib/motionStateUpdate.d.ts +1 -0
- package/dist/lib/motionStateUpdate.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.js +49 -0
- package/dist/lib/motionStateUpdate.js.map +1 -0
- package/dist/lib/motionStateUpdate.test.d.ts +2 -0
- package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
- package/dist/test/consumer.test.d.ts +2 -0
- package/dist/test/consumer.test.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.cjs +2 -0
- package/dist/themes/createDarkTheme.cjs.map +1 -0
- package/dist/themes/createDarkTheme.d.ts +1 -0
- package/dist/themes/createDarkTheme.d.ts.map +1 -0
- package/dist/themes/createDarkTheme.js +344 -0
- package/dist/themes/createDarkTheme.js.map +1 -0
- package/dist/themes/createLightTheme.cjs +2 -0
- package/dist/themes/createLightTheme.cjs.map +1 -0
- package/dist/themes/createLightTheme.d.ts +1 -0
- package/dist/themes/createLightTheme.d.ts.map +1 -0
- package/dist/themes/createLightTheme.js +9 -0
- package/dist/themes/createLightTheme.js.map +1 -0
- package/dist/themes/themeTypes.d.ts +1 -0
- package/dist/themes/themeTypes.d.ts.map +1 -0
- package/dist/themes/theming.cjs +2 -0
- package/dist/themes/theming.cjs.map +1 -0
- package/dist/themes/theming.d.ts +1 -0
- package/dist/themes/theming.d.ts.map +1 -0
- package/dist/themes/theming.js +14 -0
- package/dist/themes/theming.js.map +1 -0
- package/dist/wb-icons.cjs +2 -1
- package/dist/wb-icons.cjs.map +1 -0
- package/dist/wb-icons.d.ts +1 -0
- package/dist/wb-icons.d.ts.map +1 -0
- package/dist/wb-icons.js +44 -28
- package/dist/wb-icons.js.map +1 -0
- package/package.json +6 -5
- package/src/3d.ts +18 -0
- package/src/Setup.tsx +33 -0
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +57 -0
- package/src/components/3d-viewport/PresetEnvironment.tsx +81 -0
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +198 -0
- package/src/components/3d-viewport/TrajectoryRenderer.tsx +41 -0
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +35 -0
- package/src/components/3d-viewport/collider/ColliderElement.tsx +36 -0
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +26 -0
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +48 -0
- package/src/components/AppHeader.md +84 -0
- package/src/components/AppHeader.tsx +197 -0
- package/src/components/ConsoleFilter.tsx +24 -0
- package/src/components/CopyableText.tsx +89 -0
- package/src/components/CycleTimer/CycleTimer.ts +8 -0
- package/src/components/CycleTimer/DefaultVariant.tsx +326 -0
- package/src/components/CycleTimer/SmallVariant.tsx +229 -0
- package/src/components/CycleTimer/index.tsx +158 -0
- package/src/components/CycleTimer/types.ts +58 -0
- package/src/components/CycleTimer/useAnimations.ts +202 -0
- package/src/components/CycleTimer/useTimerLogic.ts +330 -0
- package/src/components/CycleTimer/utils.ts +122 -0
- package/src/components/CycleTimer.tsx +8 -0
- package/src/components/DataGrid.tsx +664 -0
- package/src/components/LoadingCover.tsx +91 -0
- package/src/components/LogPanel.tsx +71 -0
- package/src/components/LogStore.ts +46 -0
- package/src/components/LogViewer.tsx +368 -0
- package/src/components/ProgramControl.tsx +267 -0
- package/src/components/ProgramStateIndicator.tsx +195 -0
- package/src/components/RobotCard.tsx +495 -0
- package/src/components/RobotListItem.tsx +155 -0
- package/src/components/RobotSetupReadinessIndicator.test.tsx +60 -0
- package/src/components/RobotSetupReadinessIndicator.tsx +161 -0
- package/src/components/SelectableFab.tsx +52 -0
- package/src/components/TabBar.tsx +325 -0
- package/src/components/ThemeSelect.tsx +51 -0
- package/src/components/Timer/Timer.ts +4 -0
- package/src/components/Timer/TimerDefaultVariant.tsx +143 -0
- package/src/components/Timer/TimerSmallVariant.tsx +141 -0
- package/src/components/Timer/index.tsx +103 -0
- package/src/components/Timer/types.ts +38 -0
- package/src/components/Timer/useTimerAnimations.ts +94 -0
- package/src/components/Timer/useTimerLogic.ts +214 -0
- package/src/components/Timer/utils.ts +87 -0
- package/src/components/Timer.ts +4 -0
- package/src/components/TransparentOverlay.tsx +28 -0
- package/src/components/VelocitySlider.tsx +117 -0
- package/src/components/experimental/utils/AdornedSelect.tsx +38 -0
- package/src/components/jogging/JoggingBlocked.tsx +43 -0
- package/src/components/jogging/JoggingCartesianAxisControl.tsx +237 -0
- package/src/components/jogging/JoggingCartesianTab.tsx +349 -0
- package/src/components/jogging/JoggingFreedriveTab.tsx +8 -0
- package/src/components/jogging/JoggingJointLimitDetector.tsx +57 -0
- package/src/components/jogging/JoggingJointTab.tsx +126 -0
- package/src/components/jogging/JoggingJointValueControl.tsx +293 -0
- package/src/components/jogging/JoggingOptions.tsx +163 -0
- package/src/components/jogging/JoggingPanel.test.tsx +645 -0
- package/src/components/jogging/JoggingPanel.tsx +204 -0
- package/src/components/jogging/JoggingStore.ts +485 -0
- package/src/components/jogging/JoggingToggleButtonGroup.tsx +25 -0
- package/src/components/jogging/JoggingVelocitySlider.tsx +39 -0
- package/src/components/jogging/PoseCartesianValues.tsx +55 -0
- package/src/components/jogging/PoseJointValues.tsx +54 -0
- package/src/components/jogging/__fixtures__/motionStreamMockData.ts +136 -0
- package/src/components/modal/NoMotionGroupModal.tsx +91 -0
- package/src/components/robots/AxisConfig.ts +3 -0
- package/src/components/robots/DHLinearAxis.tsx +147 -0
- package/src/components/robots/DHRobot.tsx +152 -0
- package/src/components/robots/GenericRobot.tsx +137 -0
- package/src/components/robots/LinearAxis.tsx +74 -0
- package/src/components/robots/LinearAxisAnimator.tsx +118 -0
- package/src/components/robots/MotionGroupVisualizer.tsx +73 -0
- package/src/components/robots/Robot.tsx +57 -0
- package/src/components/robots/RobotAnimator.test.tsx +98 -0
- package/src/components/robots/RobotAnimator.tsx +116 -0
- package/src/components/robots/SupportedLinearAxis.tsx +110 -0
- package/src/components/robots/SupportedRobot.tsx +111 -0
- package/src/components/robots/ghostStyle.ts +71 -0
- package/src/components/robots/manufacturerHomePositions.ts +76 -0
- package/src/components/robots/robotModelLogic.ts +158 -0
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +79 -0
- package/src/components/safetyBar/IndicatorWithExplanation.tsx +137 -0
- package/src/components/safetyBar/OperationModeIndicator.tsx +98 -0
- package/src/components/safetyBar/SafetyBar.tsx +72 -0
- package/src/components/safetyBar/SafetyStateIndicator.tsx +163 -0
- package/src/components/safetyBar/icons/controller-type-physical.svg +1 -0
- package/src/components/safetyBar/icons/controller-type-virtual.svg +1 -0
- package/src/components/safetyBar/icons/index.ts +10 -0
- package/src/components/safetyBar/icons/operation-mode-automatic.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-error.svg +1 -0
- package/src/components/safetyBar/icons/operation-mode-manual.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-error.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-estop.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-manual-action-required.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-normal.svg +1 -0
- package/src/components/safetyBar/icons/safety-state-stop.svg +1 -0
- package/src/components/utils/converters.ts +90 -0
- package/src/components/utils/errorHandling.test.ts +41 -0
- package/src/components/utils/errorHandling.ts +38 -0
- package/src/components/utils/hooks.tsx +55 -0
- package/src/components/utils/interpolation.test.ts +1138 -0
- package/src/components/utils/interpolation.ts +380 -0
- package/src/core.ts +33 -0
- package/src/declarations.d.ts +10 -0
- package/src/env.d.ts +3 -0
- package/src/externalizeComponent.tsx +28 -0
- package/src/i18n/config.ts +26 -0
- package/src/i18n/locales/de/translations.json +89 -0
- package/src/i18n/locales/en/translations.json +90 -0
- package/src/icons/DropdownArrowIcon.tsx +12 -0
- package/src/icons/axis-x.svg +1 -0
- package/src/icons/axis-y.svg +1 -0
- package/src/icons/axis-z.svg +1 -0
- package/src/icons/home.svg +1 -0
- package/src/icons/index.ts +12 -0
- package/src/icons/jog-minus.svg +5 -0
- package/src/icons/jog-plus.svg +9 -0
- package/src/icons/jogging.svg +1 -0
- package/src/icons/orientation-coord-system.svg +1 -0
- package/src/icons/orientation-tool.svg +1 -0
- package/src/icons/robot.svg +1 -0
- package/src/icons/rotation.svg +3 -0
- package/src/icons/wbLogo.svg +1 -0
- package/src/index.ts +4 -0
- package/src/lib/ConnectedMotionGroup.ts +441 -0
- package/src/lib/JoggerConnection.test.ts +122 -0
- package/src/lib/JoggerConnection.ts +694 -0
- package/src/lib/MotionStreamConnection.test.ts +23 -0
- package/src/lib/MotionStreamConnection.ts +186 -0
- package/src/lib/motionStateUpdate.test.ts +28 -0
- package/src/lib/motionStateUpdate.ts +117 -0
- package/src/test/consumer.test.ts +257 -0
- package/src/test/setup.ts +111 -0
- package/src/themes/createDarkTheme.ts +343 -0
- package/src/themes/createLightTheme.ts +8 -0
- package/src/themes/themeTypes.ts +96 -0
- package/src/themes/theming.ts +29 -0
- package/src/wb-icons.ts +3 -0
- package/dist/chunks/JoggingPanel-CQH_oXTB.js +0 -586
- package/dist/chunks/JoggingPanel-DZN2Y39k.cjs +0 -2
- package/dist/chunks/controller-type-virtual-BuJWQOvV.cjs +0 -1
- package/dist/chunks/externalizeComponent-DOwkaDcw.cjs +0 -2
- package/dist/chunks/externalizeComponent-eiCc5DIh.js +0 -209
- package/dist/chunks/jog-plus-CAUurv4S.js +0 -15
- package/dist/chunks/jog-plus-Dy1r7-r5.cjs +0 -1
- package/dist/chunks/operation-mode-manual-Di4Z1KM1.js +0 -20
- package/dist/chunks/operation-mode-manual-eHwVILeI.cjs +0 -1
- package/dist/chunks/robot-CrNbCELh.cjs +0 -1
- package/dist/chunks/rotation-CIOAnn9q.cjs +0 -1
- package/dist/chunks/rotation-Dm5YL3NM.js +0 -25
- package/dist/chunks/safety-state-stop-Bg0VUsM4.js +0 -30
- package/dist/chunks/safety-state-stop-CNxVYiap.cjs +0 -1
- package/dist/chunks/theming-Chx_tewl.cjs +0 -3
- package/dist/chunks/theming-Cw6qwBM7.js +0 -600
- package/dist/chunks/wbLogo-CObCmqTw.js +0 -30
- package/dist/chunks/wbLogo-G_IfZ03l.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.cjs +0 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.js +0 -37
- package/dist/components/CycleTimer/CycleTimer.cjs +0 -1
- package/dist/components/CycleTimer/CycleTimer.js +0 -5
- package/dist/components/CycleTimer/types.cjs +0 -1
- package/dist/components/CycleTimer/types.js +0 -1
- package/dist/components/ThemeSelect.cjs +0 -1
- package/dist/components/ThemeSelect.js +0 -38
- package/dist/components/Timer/Timer.cjs +0 -1
- package/dist/components/Timer/Timer.js +0 -5
- package/dist/components/Timer/types.cjs +0 -1
- package/dist/components/Timer/types.js +0 -1
- package/dist/components/TransparentOverlay.cjs +0 -1
- package/dist/components/TransparentOverlay.js +0 -26
- package/dist/components/jogging/JoggingFreedriveTab.cjs +0 -1
- package/dist/components/jogging/JoggingFreedriveTab.js +0 -6
- package/dist/components/safetyBar/icons/index.cjs +0 -1
- 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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"}
|
|
@@ -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 {
|
|
8
|
-
import { ProgramState as
|
|
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
|
|
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:
|
|
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:
|
|
26
|
+
color: o.palette.error.main
|
|
27
27
|
};
|
|
28
28
|
if (a === "SAFETY_STATE_NORMAL")
|
|
29
29
|
switch (n) {
|
|
30
|
-
case
|
|
30
|
+
case e.PREPARING:
|
|
31
31
|
return {
|
|
32
32
|
label: r("ProgramStateIndicator.Preparing.lb"),
|
|
33
|
-
color:
|
|
33
|
+
color: o.palette.warning.main
|
|
34
34
|
};
|
|
35
|
-
case
|
|
35
|
+
case e.STARTING:
|
|
36
36
|
return {
|
|
37
37
|
label: r("ProgramStateIndicator.Starting.lb"),
|
|
38
|
-
color:
|
|
38
|
+
color: o.palette.warning.main
|
|
39
39
|
};
|
|
40
|
-
case
|
|
40
|
+
case e.RUNNING:
|
|
41
41
|
return {
|
|
42
42
|
label: r("ProgramStateIndicator.Running.lb"),
|
|
43
|
-
color:
|
|
43
|
+
color: o.palette.success.main
|
|
44
44
|
};
|
|
45
|
-
case
|
|
45
|
+
case e.PAUSING:
|
|
46
46
|
return {
|
|
47
47
|
label: r("ProgramStateIndicator.Pausing.lb"),
|
|
48
|
-
color:
|
|
48
|
+
color: o.palette.warning.main
|
|
49
49
|
};
|
|
50
|
-
case
|
|
50
|
+
case e.PAUSED:
|
|
51
51
|
return {
|
|
52
52
|
label: r("ProgramStateIndicator.Paused.lb"),
|
|
53
|
-
color:
|
|
53
|
+
color: o.palette.grey[600]
|
|
54
54
|
};
|
|
55
|
-
case
|
|
55
|
+
case e.STOPPING:
|
|
56
56
|
return {
|
|
57
57
|
label: r("ProgramStateIndicator.Stopping.lb"),
|
|
58
|
-
color:
|
|
58
|
+
color: o.palette.warning.main
|
|
59
59
|
};
|
|
60
|
-
case
|
|
60
|
+
case e.COMPLETED:
|
|
61
61
|
return {
|
|
62
62
|
label: r("ProgramStateIndicator.Completed.lb"),
|
|
63
|
-
color:
|
|
63
|
+
color: o.palette.success.main
|
|
64
64
|
};
|
|
65
|
-
case
|
|
65
|
+
case e.FAILED:
|
|
66
66
|
return {
|
|
67
67
|
label: r("ProgramStateIndicator.Failed.lb"),
|
|
68
|
-
color:
|
|
68
|
+
color: o.palette.error.main
|
|
69
69
|
};
|
|
70
|
-
case
|
|
70
|
+
case e.STOPPED:
|
|
71
71
|
return {
|
|
72
72
|
label: r("ProgramStateIndicator.Stopped.lb"),
|
|
73
|
-
color:
|
|
73
|
+
color: o.palette.warning.main
|
|
74
74
|
};
|
|
75
|
-
case
|
|
75
|
+
case e.ERROR:
|
|
76
76
|
return {
|
|
77
77
|
label: r("ProgramStateIndicator.Error.lb"),
|
|
78
|
-
color:
|
|
78
|
+
color: o.palette.error.main
|
|
79
79
|
};
|
|
80
80
|
default:
|
|
81
81
|
return {
|
|
82
82
|
label: r("ProgramStateIndicator.Ready.lb"),
|
|
83
|
-
color:
|
|
83
|
+
color: o.palette.success.main
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
return {
|
|
87
87
|
label: r("ProgramStateIndicator.Idle.lb"),
|
|
88
|
-
color:
|
|
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:
|
|
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")
|
|
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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"}
|
|
@@ -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 {
|
|
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"),
|
|
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"}
|
|
@@ -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
|
|
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 {
|
|
8
|
+
import { externalizeComponent as h } from "../externalizeComponent.js";
|
|
9
9
|
import { RobotSetupReadinessState as g, RobotSetupReadinessIndicator as u } from "./RobotSetupReadinessIndicator.js";
|
|
10
|
-
import
|
|
11
|
-
const
|
|
10
|
+
import R from "../icons/robot.svg.js";
|
|
11
|
+
const $ = h(
|
|
12
12
|
b(
|
|
13
13
|
({
|
|
14
|
-
robotName:
|
|
15
|
-
robotType:
|
|
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
|
|
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 ${
|
|
28
|
-
background: ((a =
|
|
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__ */
|
|
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: `${
|
|
58
|
+
fill: `${t.palette.primary.main} !important`
|
|
59
59
|
},
|
|
60
60
|
"& svg path": {
|
|
61
|
-
fill: `${
|
|
61
|
+
fill: `${t.palette.primary.main} !important`
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
|
-
children: /* @__PURE__ */
|
|
64
|
+
children: /* @__PURE__ */ e(R, {})
|
|
65
65
|
}
|
|
66
|
-
) : /* @__PURE__ */
|
|
66
|
+
) : /* @__PURE__ */ e(
|
|
67
67
|
f,
|
|
68
68
|
{
|
|
69
69
|
sx: {
|
|
70
|
-
color:
|
|
70
|
+
color: t.palette.error.main,
|
|
71
71
|
fontSize: 24
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
),
|
|
75
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ e(
|
|
76
76
|
p,
|
|
77
77
|
{
|
|
78
78
|
variant: "body1",
|
|
79
79
|
sx: {
|
|
80
80
|
fontWeight: 500,
|
|
81
|
-
color:
|
|
81
|
+
color: t.palette.text.primary
|
|
82
82
|
},
|
|
83
|
-
children:
|
|
83
|
+
children: l
|
|
84
84
|
}
|
|
85
85
|
),
|
|
86
|
-
/* @__PURE__ */
|
|
86
|
+
/* @__PURE__ */ e(
|
|
87
87
|
y,
|
|
88
88
|
{
|
|
89
89
|
orientation: "vertical",
|
|
90
90
|
flexItem: !0,
|
|
91
91
|
sx: {
|
|
92
|
-
backgroundColor:
|
|
92
|
+
backgroundColor: t.palette.text.secondary,
|
|
93
93
|
opacity: 0.3,
|
|
94
94
|
width: "1px"
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
),
|
|
98
|
-
/* @__PURE__ */
|
|
98
|
+
/* @__PURE__ */ e(
|
|
99
99
|
p,
|
|
100
100
|
{
|
|
101
101
|
variant: "body2",
|
|
102
102
|
sx: {
|
|
103
|
-
color:
|
|
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__ */
|
|
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
|
-
|
|
120
|
-
|
|
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("../
|
|
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
|