@wandelbots/wandelbots-js-react-components 5.4.1 → 5.4.2-pr.ci-pr-preview.586.f684aae

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/3d.cjs.js +1 -1
  2. package/dist/3d.d.ts +1 -1
  3. package/dist/3d.d.ts.map +1 -1
  4. package/dist/3d.es.js +1 -1
  5. package/dist/MotionGroupVisualizer-B-e22qXF.cjs +2 -0
  6. package/dist/MotionGroupVisualizer-B-e22qXF.cjs.map +1 -0
  7. package/dist/MotionGroupVisualizer-CIASsBC6.js +1433 -0
  8. package/dist/MotionGroupVisualizer-CIASsBC6.js.map +1 -0
  9. package/dist/Setup.d.ts +1 -1
  10. package/dist/Setup.d.ts.map +1 -1
  11. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +1 -1
  12. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
  13. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -1
  14. package/dist/components/AppHeader.d.ts +1 -1
  15. package/dist/components/AppHeader.d.ts.map +1 -1
  16. package/dist/components/ConsoleFilter.d.ts +1 -1
  17. package/dist/components/ConsoleFilter.d.ts.map +1 -1
  18. package/dist/components/CopyableText.d.ts.map +1 -1
  19. package/dist/components/CycleTimer/DefaultVariant.d.ts.map +1 -1
  20. package/dist/components/CycleTimer/SmallVariant.d.ts.map +1 -1
  21. package/dist/components/DataGrid.d.ts +1 -1
  22. package/dist/components/DataGrid.d.ts.map +1 -1
  23. package/dist/components/LoadingCover.d.ts.map +1 -1
  24. package/dist/components/LogPanel.d.ts +1 -1
  25. package/dist/components/LogPanel.d.ts.map +1 -1
  26. package/dist/components/LogViewer.d.ts +1 -1
  27. package/dist/components/LogViewer.d.ts.map +1 -1
  28. package/dist/components/ProgramControl.d.ts.map +1 -1
  29. package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
  30. package/dist/components/RobotCard.d.ts.map +1 -1
  31. package/dist/components/RobotListItem.d.ts.map +1 -1
  32. package/dist/components/RobotSetupReadinessIndicator.d.ts.map +1 -1
  33. package/dist/components/SelectableFab.d.ts +1 -1
  34. package/dist/components/SelectableFab.d.ts.map +1 -1
  35. package/dist/components/TabBar.d.ts +1 -1
  36. package/dist/components/TabBar.d.ts.map +1 -1
  37. package/dist/components/ThemeSelect.d.ts +1 -1
  38. package/dist/components/ThemeSelect.d.ts.map +1 -1
  39. package/dist/components/Timer/TimerDefaultVariant.d.ts.map +1 -1
  40. package/dist/components/Timer/TimerSmallVariant.d.ts.map +1 -1
  41. package/dist/components/TransparentOverlay.d.ts +2 -2
  42. package/dist/components/TransparentOverlay.d.ts.map +1 -1
  43. package/dist/components/VelocitySlider.d.ts +1 -1
  44. package/dist/components/VelocitySlider.d.ts.map +1 -1
  45. package/dist/components/experimental/utils/AdornedSelect.d.ts +1 -1
  46. package/dist/components/experimental/utils/AdornedSelect.d.ts.map +1 -1
  47. package/dist/components/jogging/JoggingBlocked.d.ts +1 -1
  48. package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -1
  49. package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -1
  50. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -1
  51. package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -1
  52. package/dist/components/jogging/JoggingJointLimitDetector.d.ts +1 -1
  53. package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -1
  54. package/dist/components/jogging/JoggingJointTab.d.ts +2 -2
  55. package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -1
  56. package/dist/components/jogging/JoggingJointValueControl.d.ts.map +1 -1
  57. package/dist/components/jogging/JoggingOptions.d.ts.map +1 -1
  58. package/dist/components/jogging/JoggingPanel.d.ts +1 -1
  59. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
  60. package/dist/components/jogging/JoggingStore.d.ts +1 -1
  61. package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
  62. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts +1 -1
  63. package/dist/components/jogging/JoggingToggleButtonGroup.d.ts.map +1 -1
  64. package/dist/components/jogging/JoggingVelocitySlider.d.ts +1 -1
  65. package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -1
  66. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
  67. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
  68. package/dist/components/modal/NoMotionGroupModal.d.ts.map +1 -1
  69. package/dist/components/robots/DHLinearAxis.d.ts.map +1 -1
  70. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  71. package/dist/components/robots/GenericRobot.d.ts +1 -1
  72. package/dist/components/robots/GenericRobot.d.ts.map +1 -1
  73. package/dist/components/robots/LinearAxisAnimator.d.ts +1 -1
  74. package/dist/components/robots/LinearAxisAnimator.d.ts.map +1 -1
  75. package/dist/components/robots/MotionGroupVisualizer.d.ts +2 -2
  76. package/dist/components/robots/MotionGroupVisualizer.d.ts.map +1 -1
  77. package/dist/components/robots/RobotAnimator.d.ts +1 -1
  78. package/dist/components/robots/RobotAnimator.d.ts.map +1 -1
  79. package/dist/components/robots/SupportedLinearAxis.d.ts.map +1 -1
  80. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  81. package/dist/components/robots/robotModelLogic.d.ts.map +1 -1
  82. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts +1 -1
  83. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
  84. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts +2 -1
  85. package/dist/components/safetyBar/IndicatorWithExplanation.d.ts.map +1 -1
  86. package/dist/components/safetyBar/OperationModeIndicator.d.ts +1 -1
  87. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
  88. package/dist/components/safetyBar/SafetyBar.d.ts +1 -1
  89. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
  90. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +1 -1
  91. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
  92. package/dist/components/utils/converters.d.ts +2 -2
  93. package/dist/components/utils/converters.d.ts.map +1 -1
  94. package/dist/components/utils/hooks.d.ts.map +1 -1
  95. package/dist/components/utils/interpolation.d.ts.map +1 -1
  96. package/dist/core.cjs.js +1 -1
  97. package/dist/core.es.js +2 -2
  98. package/dist/externalizeComponent.d.ts.map +1 -1
  99. package/dist/icons/DropdownArrowIcon.d.ts +1 -1
  100. package/dist/icons/DropdownArrowIcon.d.ts.map +1 -1
  101. package/dist/index.cjs.js +1 -1
  102. package/dist/index.es.js +3 -3
  103. package/dist/interpolation-BIB6FC35.cjs +198 -0
  104. package/dist/interpolation-BIB6FC35.cjs.map +1 -0
  105. package/dist/interpolation-lSTX6ZXZ.js +14559 -0
  106. package/dist/interpolation-lSTX6ZXZ.js.map +1 -0
  107. package/dist/lib/JoggerConnection.d.ts +1 -1
  108. package/dist/lib/JoggerConnection.d.ts.map +1 -1
  109. package/dist/themes/createDarkTheme.d.ts +1 -1
  110. package/dist/themes/createDarkTheme.d.ts.map +1 -1
  111. package/dist/themes/createLightTheme.d.ts +1 -1
  112. package/dist/themes/createLightTheme.d.ts.map +1 -1
  113. package/dist/theming-D_pShDEg.js +32236 -0
  114. package/dist/theming-D_pShDEg.js.map +1 -0
  115. package/dist/theming-L5E8VSae.cjs +84 -0
  116. package/dist/theming-L5E8VSae.cjs.map +1 -0
  117. package/package.json +4 -3
  118. package/src/3d.ts +2 -2
  119. package/src/Setup.tsx +2 -6
  120. package/src/components/3d-viewport/PresetEnvironment.tsx +1 -0
  121. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +43 -23
  122. package/src/components/3d-viewport/TrajectoryRenderer.tsx +1 -1
  123. package/src/components/3d-viewport/collider/ColliderCollection.tsx +3 -2
  124. package/src/components/AppHeader.tsx +9 -12
  125. package/src/components/ConsoleFilter.tsx +1 -1
  126. package/src/components/CopyableText.tsx +4 -1
  127. package/src/components/CycleTimer/DefaultVariant.tsx +8 -5
  128. package/src/components/CycleTimer/SmallVariant.tsx +3 -1
  129. package/src/components/DataGrid.tsx +4 -1
  130. package/src/components/LoadingCover.tsx +4 -1
  131. package/src/components/LogPanel.tsx +1 -1
  132. package/src/components/LogViewer.tsx +13 -17
  133. package/src/components/ProgramControl.tsx +7 -2
  134. package/src/components/ProgramStateIndicator.tsx +3 -2
  135. package/src/components/RobotCard.tsx +6 -1
  136. package/src/components/RobotListItem.tsx +4 -1
  137. package/src/components/RobotSetupReadinessIndicator.tsx +4 -2
  138. package/src/components/SelectableFab.tsx +2 -2
  139. package/src/components/TabBar.tsx +7 -3
  140. package/src/components/ThemeSelect.tsx +2 -1
  141. package/src/components/Timer/TimerDefaultVariant.tsx +9 -6
  142. package/src/components/Timer/TimerSmallVariant.tsx +2 -1
  143. package/src/components/Timer/useTimerLogic.ts +9 -9
  144. package/src/components/TransparentOverlay.tsx +2 -2
  145. package/src/components/VelocitySlider.tsx +3 -1
  146. package/src/components/experimental/utils/AdornedSelect.tsx +4 -8
  147. package/src/components/jogging/JoggingBlocked.tsx +6 -2
  148. package/src/components/jogging/JoggingCartesianAxisControl.tsx +5 -7
  149. package/src/components/jogging/JoggingCartesianTab.tsx +6 -8
  150. package/src/components/jogging/JoggingFreedriveTab.tsx +1 -2
  151. package/src/components/jogging/JoggingJointLimitDetector.tsx +41 -43
  152. package/src/components/jogging/JoggingJointTab.tsx +12 -20
  153. package/src/components/jogging/JoggingJointValueControl.tsx +44 -30
  154. package/src/components/jogging/JoggingOptions.tsx +143 -139
  155. package/src/components/jogging/JoggingPanel.test.tsx +77 -85
  156. package/src/components/jogging/JoggingPanel.tsx +10 -13
  157. package/src/components/jogging/JoggingStore.ts +18 -13
  158. package/src/components/jogging/JoggingToggleButtonGroup.tsx +3 -3
  159. package/src/components/jogging/JoggingVelocitySlider.tsx +2 -10
  160. package/src/components/jogging/PoseCartesianValues.tsx +2 -1
  161. package/src/components/jogging/PoseJointValues.tsx +2 -1
  162. package/src/components/jogging/__fixtures__/motionStreamMockData.ts +0 -1
  163. package/src/components/modal/NoMotionGroupModal.tsx +7 -10
  164. package/src/components/robots/DHLinearAxis.tsx +62 -45
  165. package/src/components/robots/DHRobot.tsx +47 -45
  166. package/src/components/robots/GenericRobot.tsx +24 -24
  167. package/src/components/robots/LinearAxis.tsx +0 -1
  168. package/src/components/robots/LinearAxisAnimator.tsx +4 -1
  169. package/src/components/robots/MotionGroupVisualizer.tsx +53 -53
  170. package/src/components/robots/RobotAnimator.test.tsx +2 -2
  171. package/src/components/robots/RobotAnimator.tsx +4 -1
  172. package/src/components/robots/SupportedLinearAxis.tsx +10 -3
  173. package/src/components/robots/SupportedRobot.tsx +10 -3
  174. package/src/components/robots/robotModelLogic.ts +22 -11
  175. package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -1
  176. package/src/components/safetyBar/IndicatorWithExplanation.tsx +13 -11
  177. package/src/components/safetyBar/OperationModeIndicator.tsx +2 -1
  178. package/src/components/safetyBar/SafetyBar.tsx +3 -1
  179. package/src/components/safetyBar/SafetyStateIndicator.tsx +2 -1
  180. package/src/components/utils/converters.ts +10 -7
  181. package/src/components/utils/errorHandling.ts +1 -1
  182. package/src/components/utils/hooks.tsx +1 -0
  183. package/src/components/utils/interpolation.test.ts +53 -38
  184. package/src/components/utils/interpolation.ts +1 -0
  185. package/src/externalizeComponent.tsx +3 -1
  186. package/src/icons/DropdownArrowIcon.tsx +1 -2
  187. package/src/lib/JoggerConnection.ts +24 -24
  188. package/src/themes/createDarkTheme.ts +2 -3
  189. package/dist/MotionGroupVisualizer-1twp8wG6.js +0 -1328
  190. package/dist/MotionGroupVisualizer-1twp8wG6.js.map +0 -1
  191. package/dist/MotionGroupVisualizer-Dq_KWGsa.cjs +0 -2
  192. package/dist/MotionGroupVisualizer-Dq_KWGsa.cjs.map +0 -1
  193. package/dist/interpolation-B3pbgXYX.cjs +0 -42
  194. package/dist/interpolation-B3pbgXYX.cjs.map +0 -1
  195. package/dist/interpolation-D4ATdkEg.js +0 -7912
  196. package/dist/interpolation-D4ATdkEg.js.map +0 -1
  197. package/dist/theming-BJ6pB6jG.cjs +0 -115
  198. package/dist/theming-BJ6pB6jG.cjs.map +0 -1
  199. package/dist/theming-LwkvEF-K.js +0 -22417
  200. package/dist/theming-LwkvEF-K.js.map +0 -1
@@ -578,7 +578,9 @@ describe("ValueInterpolator", () => {
578
578
  })
579
579
 
580
580
  // Clean up
581
- interpolators.forEach((interpolator) => interpolator.destroy())
581
+ interpolators.forEach((interpolator) => {
582
+ interpolator.destroy()
583
+ })
582
584
  })
583
585
 
584
586
  it("should handle multiple interpolators using auto-interpolation without interference", async () => {
@@ -613,14 +615,14 @@ describe("ValueInterpolator", () => {
613
615
  interpolator3.startAutoInterpolation()
614
616
 
615
617
  // Wait for automatic interpolation to progress
616
- await new Promise(resolve => setTimeout(resolve, 500))
618
+ await new Promise((resolve) => setTimeout(resolve, 500))
617
619
 
618
620
  // Check that all interpolators are moving independently
619
621
  const values1 = interpolator1.getCurrentValues()
620
622
  const values2 = interpolator2.getCurrentValues()
621
623
  const values3 = interpolator3.getCurrentValues()
622
624
 
623
- console.log('Auto-interpolation values:', { values1, values2, values3 })
625
+ console.log("Auto-interpolation values:", { values1, values2, values3 })
624
626
 
625
627
  // All should have made significant progress toward their targets
626
628
  expect(values1[0]).toBeGreaterThan(1) // Moving toward 10
@@ -668,13 +670,18 @@ describe("ValueInterpolator", () => {
668
670
  for (let frame = 0; frame < 30; frame++) {
669
671
  manualInterpolator.update(1 / 60)
670
672
  manualValues.push(manualInterpolator.getCurrentValues()[0])
671
- await new Promise(resolve => setTimeout(resolve, 16)) // ~60fps
673
+ await new Promise((resolve) => setTimeout(resolve, 16)) // ~60fps
672
674
  }
673
675
 
674
676
  // Check auto interpolator after same time
675
677
  const autoValue = autoInterpolator.getCurrentValues()[0]
676
678
 
677
- console.log('Mixed mode - Manual final:', manualValues[manualValues.length - 1], 'Auto final:', autoValue)
679
+ console.log(
680
+ "Mixed mode - Manual final:",
681
+ manualValues[manualValues.length - 1],
682
+ "Auto final:",
683
+ autoValue,
684
+ )
678
685
 
679
686
  // Both should have made progress
680
687
  expect(manualValues[manualValues.length - 1]).toBeGreaterThan(0.5)
@@ -703,16 +710,16 @@ describe("ValueInterpolator", () => {
703
710
  for (let i = 0; i < 5; i++) {
704
711
  interpolator.startAutoInterpolation()
705
712
  expect(interpolator.isInterpolating()).toBe(true)
706
-
713
+
707
714
  interpolator.stop()
708
715
  expect(interpolator.isInterpolating()).toBe(false)
709
-
710
- await new Promise(resolve => setTimeout(resolve, 10))
716
+
717
+ await new Promise((resolve) => setTimeout(resolve, 10))
711
718
  }
712
719
 
713
720
  // Final start
714
721
  interpolator.startAutoInterpolation()
715
- await new Promise(resolve => setTimeout(resolve, 200))
722
+ await new Promise((resolve) => setTimeout(resolve, 200))
716
723
 
717
724
  // Should still be working correctly
718
725
  const finalValue = interpolator.getCurrentValues()[0]
@@ -728,7 +735,7 @@ describe("ValueInterpolator", () => {
728
735
  // useAutorun(() => {
729
736
  // requestAnimationFrame(() => updateJoints(newJointValues))
730
737
  // })
731
-
738
+
732
739
  const interpolator1 = new ValueInterpolator([0, 0, 0], {
733
740
  tension: 120,
734
741
  friction: 20,
@@ -749,12 +756,12 @@ describe("ValueInterpolator", () => {
749
756
 
750
757
  const interpolators = [interpolator1, interpolator2, interpolator3]
751
758
 
752
- // Simulate the RobotAnimator pattern where multiple components
759
+ // Simulate the RobotAnimator pattern where multiple components
753
760
  // schedule setTarget calls via requestAnimationFrame
754
761
  const targetSets = [
755
762
  [1, 2, 3],
756
- [4, 5, 6],
757
- [7, 8, 9]
763
+ [4, 5, 6],
764
+ [7, 8, 9],
758
765
  ]
759
766
 
760
767
  // Schedule all setTarget calls via requestAnimationFrame (like RobotAnimator does)
@@ -765,20 +772,22 @@ describe("ValueInterpolator", () => {
765
772
  })
766
773
 
767
774
  // Wait for requestAnimationFrame calls to execute
768
- await new Promise(resolve => setTimeout(resolve, 50))
775
+ await new Promise((resolve) => setTimeout(resolve, 50))
769
776
 
770
777
  // Now manually update all interpolators for several frames
771
778
  for (let frame = 0; frame < 30; frame++) {
772
- interpolators.forEach(interpolator => {
779
+ interpolators.forEach((interpolator) => {
773
780
  interpolator.update(1 / 60)
774
781
  })
775
- await new Promise(resolve => setTimeout(resolve, 16))
782
+ await new Promise((resolve) => setTimeout(resolve, 16))
776
783
  }
777
784
 
778
785
  // Check the results
779
- const finalValues = interpolators.map(interpolator => interpolator.getCurrentValues())
780
-
781
- console.log('RAF setTarget pattern results:', finalValues)
786
+ const finalValues = interpolators.map((interpolator) =>
787
+ interpolator.getCurrentValues(),
788
+ )
789
+
790
+ console.log("RAF setTarget pattern results:", finalValues)
782
791
 
783
792
  // All should have made progress toward their respective targets
784
793
  expect(finalValues[0][0]).toBeGreaterThan(0.3) // Moving toward 1
@@ -790,13 +799,15 @@ describe("ValueInterpolator", () => {
790
799
  expect(finalValues[1][0]).not.toBeCloseTo(finalValues[2][0], 0)
791
800
 
792
801
  // Clean up
793
- interpolators.forEach(interpolator => interpolator.destroy())
802
+ interpolators.forEach((interpolator) => {
803
+ interpolator.destroy()
804
+ })
794
805
  })
795
806
 
796
807
  it("should handle simultaneous setTarget calls without target blending interference", () => {
797
808
  // Test the specific case where setTarget is called on multiple interpolators
798
809
  // at nearly the same time (which could trigger the target blending bug)
799
-
810
+
800
811
  const interpolator1 = new ValueInterpolator([0], {
801
812
  tension: 120,
802
813
  friction: 20,
@@ -813,7 +824,7 @@ describe("ValueInterpolator", () => {
813
824
  const now = performance.now()
814
825
  interpolator1.setTarget([10])
815
826
  interpolator2.setTarget([20])
816
-
827
+
817
828
  // Verify the targets were set correctly (not blended)
818
829
  expect(interpolator1.getCurrentValues()[0]).toBe(0) // Should start at 0
819
830
  expect(interpolator2.getCurrentValues()[0]).toBe(0) // Should start at 0
@@ -825,12 +836,15 @@ describe("ValueInterpolator", () => {
825
836
  const values1 = interpolator1.getCurrentValues()[0]
826
837
  const values2 = interpolator2.getCurrentValues()[0]
827
838
 
828
- console.log('Simultaneous setTarget - Values after 1 frame:', { values1, values2 })
839
+ console.log("Simultaneous setTarget - Values after 1 frame:", {
840
+ values1,
841
+ values2,
842
+ })
829
843
 
830
844
  // Both should be moving in the right direction
831
845
  expect(values1).toBeGreaterThan(0) // Moving toward 10
832
846
  expect(values2).toBeGreaterThan(0) // Moving toward 20
833
-
847
+
834
848
  // Interpolator2 should be moving faster (higher target)
835
849
  expect(values2).toBeGreaterThan(values1)
836
850
 
@@ -873,11 +887,12 @@ describe("ValueInterpolator", () => {
873
887
  interpolator3.startAutoInterpolation()
874
888
 
875
889
  // Wait for REAL animation frames to process
876
- await new Promise(resolve => {
890
+ await new Promise((resolve) => {
877
891
  let frameCount = 0
878
892
  const checkProgress = () => {
879
893
  frameCount++
880
- if (frameCount >= 30) { // Wait for ~30 real frames
894
+ if (frameCount >= 30) {
895
+ // Wait for ~30 real frames
881
896
  resolve(undefined)
882
897
  } else {
883
898
  requestAnimationFrame(checkProgress)
@@ -891,7 +906,7 @@ describe("ValueInterpolator", () => {
891
906
  const values2 = interpolator2.getCurrentValues()[0]
892
907
  const values3 = interpolator3.getCurrentValues()[0]
893
908
 
894
- console.log('Real RAF test results:', { values1, values2, values3 })
909
+ console.log("Real RAF test results:", { values1, values2, values3 })
895
910
 
896
911
  // All should have made significant progress
897
912
  expect(values1).toBeGreaterThan(1)
@@ -970,7 +985,7 @@ describe("ValueInterpolator", () => {
970
985
  const values1 = interpolator1.getCurrentValues()
971
986
  const values2 = interpolator2.getCurrentValues()
972
987
 
973
- console.log('useFrame simulation results:', { values1, values2 })
988
+ console.log("useFrame simulation results:", { values1, values2 })
974
989
 
975
990
  // Both should have made good progress
976
991
  expect(values1[0]).toBeGreaterThan(0.5) // Moving toward 1
@@ -993,7 +1008,7 @@ describe("ValueInterpolator", () => {
993
1008
  it("should handle CartesianJoggingAxisVisualization pattern with multiple components", async () => {
994
1009
  // This test replicates the exact pattern from CartesianJoggingAxisVisualization
995
1010
  // where multiple components watch the same MobX observable and call setTarget via RAF
996
-
1011
+
997
1012
  const interpolator1 = new ValueInterpolator([0, 0, 0, 0, 0, 0, 1], {
998
1013
  tension: 120,
999
1014
  friction: 20,
@@ -1035,7 +1050,7 @@ describe("ValueInterpolator", () => {
1035
1050
  requestAnimationFrame(() => updateFlangePose3(pose3))
1036
1051
 
1037
1052
  // Wait for RAF calls to execute
1038
- await new Promise(resolve => setTimeout(resolve, 32))
1053
+ await new Promise((resolve) => setTimeout(resolve, 32))
1039
1054
 
1040
1055
  // Now simulate useFrame updates for all three interpolators
1041
1056
  for (let frame = 0; frame < 30; frame++) {
@@ -1043,17 +1058,17 @@ describe("ValueInterpolator", () => {
1043
1058
  interpolator1.update(delta)
1044
1059
  interpolator2.update(delta)
1045
1060
  interpolator3.update(delta)
1046
- await new Promise(resolve => setTimeout(resolve, 16))
1061
+ await new Promise((resolve) => setTimeout(resolve, 16))
1047
1062
  }
1048
1063
 
1049
1064
  const values1 = interpolator1.getCurrentValues()
1050
1065
  const values2 = interpolator2.getCurrentValues()
1051
1066
  const values3 = interpolator3.getCurrentValues()
1052
1067
 
1053
- console.log('CartesianJoggingAxisVisualization pattern results:')
1054
- console.log('Component 1:', values1.slice(0, 3))
1055
- console.log('Component 2:', values2.slice(0, 3))
1056
- console.log('Component 3:', values3.slice(0, 3))
1068
+ console.log("CartesianJoggingAxisVisualization pattern results:")
1069
+ console.log("Component 1:", values1.slice(0, 3))
1070
+ console.log("Component 2:", values2.slice(0, 3))
1071
+ console.log("Component 3:", values3.slice(0, 3))
1057
1072
 
1058
1073
  // Each interpolator should be moving toward its own target
1059
1074
  expect(values1[0]).toBeCloseTo(0.1, 1) // Should be close to target 0.1
@@ -1101,16 +1116,16 @@ describe("ValueInterpolator", () => {
1101
1116
  })
1102
1117
 
1103
1118
  // Wait for all RAF calls to execute
1104
- await new Promise(resolve => setTimeout(resolve, 100))
1119
+ await new Promise((resolve) => setTimeout(resolve, 100))
1105
1120
 
1106
1121
  // Run interpolation for a while
1107
1122
  for (let frame = 0; frame < 50; frame++) {
1108
1123
  interpolator.update(1 / 60)
1109
- await new Promise(resolve => setTimeout(resolve, 16))
1124
+ await new Promise((resolve) => setTimeout(resolve, 16))
1110
1125
  }
1111
1126
 
1112
1127
  const finalValues = interpolator.getCurrentValues()
1113
- console.log('Rapid pose updates result:', finalValues.slice(0, 3))
1128
+ console.log("Rapid pose updates result:", finalValues.slice(0, 3))
1114
1129
 
1115
1130
  // Should converge toward the final target [0.15, 0.15, 0.15]
1116
1131
  expect(finalValues[0]).toBeCloseTo(0.15, 1)
@@ -375,5 +375,6 @@ export function useInterpolation(
375
375
  }
376
376
  }, [])
377
377
 
378
+ // biome-ignore lint/style/noNonNullAssertion: pre-biome code
378
379
  return [interpolatorRef.current!]
379
380
  }
@@ -1,4 +1,6 @@
1
- import { type FC } from "react"
1
+ /* biome-ignore-all lint/suspicious/noExplicitAny: pre-biome code */
2
+
3
+ import type { FC } from "react"
2
4
  import { I18nextProvider } from "react-i18next"
3
5
  import { i18n } from "./i18n/config"
4
6
 
@@ -1,5 +1,4 @@
1
- import { SvgIcon, type SvgIconProps } from "@mui/material"
2
-
1
+ import SvgIcon, { type SvgIconProps } from "@mui/material/SvgIcon"
3
2
  export const DropdownArrowIcon = (props: SvgIconProps) => {
4
3
  return (
5
4
  <SvgIcon {...props} viewBox="0 0 10 8">
@@ -57,7 +57,7 @@ export class JoggerConnection {
57
57
  ENDPOINT_TRAJECTORY = "/execution/trajectory"
58
58
  DEFAULT_MODE = "off" as JoggerMode
59
59
  DEFAULT_TCP: string | undefined = "Flange"
60
- NO_TCP: string | undefined = undefined;
60
+ NO_TCP: string | undefined = undefined
61
61
  // DEFAULT_COORDINATE_SYSTEM = "world"
62
62
  DEFAULT_INIT_TIMEOUT = 5000
63
63
  DEFAULT_ORIENTATION = "coordsys" as JoggerOrientation
@@ -97,7 +97,6 @@ export class JoggerConnection {
97
97
  // Get matching motion stream
98
98
  const motionStream = await MotionStreamConnection.open(nova, motionGroupId)
99
99
 
100
-
101
100
  // Initialize jogger with options
102
101
  const jogger = new JoggerConnection(motionStream, options)
103
102
 
@@ -112,7 +111,10 @@ export class JoggerConnection {
112
111
  readonly motionStream: MotionStreamConnection,
113
112
  readonly options: JoggerConnectionOptions | undefined = {},
114
113
  ) {
115
- this.tcp = options?.tcp || motionStream.motionGroup.tcp || this.getDefaultTcp(motionStream)
114
+ this.tcp =
115
+ options?.tcp ||
116
+ motionStream.motionGroup.tcp ||
117
+ this.getDefaultTcp(motionStream)
116
118
  // this.coordinateSystem = options?.coordinateSystem || this.DEFAULT_COORDINATE_SYSTEM
117
119
  this.orientation = options?.orientation || this.DEFAULT_ORIENTATION
118
120
  this.timeout = options?.timeout || this.DEFAULT_INIT_TIMEOUT
@@ -120,15 +122,16 @@ export class JoggerConnection {
120
122
  this.onError = options?.onError
121
123
  }
122
124
 
123
- getDefaultTcp(motionStream: MotionStreamConnection){
125
+ getDefaultTcp(motionStream: MotionStreamConnection) {
124
126
  const firstJointType = motionStream.description.dh_parameters?.[0]?.type
125
- if(
127
+ if (
126
128
  motionStream.joints.length < 6 &&
127
- (firstJointType === JointTypeEnum.RevoluteJoint || firstJointType === JointTypeEnum.PrismaticJoint)
128
- ){
129
- return this.NO_TCP;
129
+ (firstJointType === JointTypeEnum.RevoluteJoint ||
130
+ firstJointType === JointTypeEnum.PrismaticJoint)
131
+ ) {
132
+ return this.NO_TCP
130
133
  }
131
- return this.DEFAULT_TCP;
134
+ return this.DEFAULT_TCP
132
135
  }
133
136
 
134
137
  // Set a new tcp or other options. If current mode is jogging, will reinitialize the jogging websocket
@@ -297,8 +300,7 @@ export class JoggerConnection {
297
300
  joint,
298
301
  direction,
299
302
  velocityValue,
300
- velocityUnit
301
-
303
+ velocityUnit,
302
304
  }: {
303
305
  /** Index of the joint to rotate */
304
306
  joint: number
@@ -307,7 +309,6 @@ export class JoggerConnection {
307
309
  /** Speed of the rotation, unit is currently unused, but i wanted it there to raise awareness that not everything here is rad/s*/
308
310
  velocityValue: number
309
311
  velocityUnit: "mm/s" | "rad/s"
310
-
311
312
  }) {
312
313
  if (!this.joggingSocket || this.mode !== "jogging") {
313
314
  throw new Error(
@@ -317,8 +318,7 @@ export class JoggerConnection {
317
318
 
318
319
  const velocity = new Array(this.numJoints).fill(0)
319
320
 
320
- velocity[joint] =
321
- direction === "-" ? - velocityValue : velocityValue
321
+ velocity[joint] = direction === "-" ? -velocityValue : velocityValue
322
322
 
323
323
  this.joggingSocket.sendJson({
324
324
  message_type: "JointVelocityRequest",
@@ -408,14 +408,14 @@ export class JoggerConnection {
408
408
  axis: "x" | "y" | "z"
409
409
  direction: "-" | "+"
410
410
  motion:
411
- | {
412
- type: "rotate"
413
- distanceRads: number
414
- }
415
- | {
416
- type: "translate"
417
- distanceMm: number
418
- }
411
+ | {
412
+ type: "rotate"
413
+ distanceRads: number
414
+ }
415
+ | {
416
+ type: "translate"
417
+ distanceMm: number
418
+ }
419
419
  }) {
420
420
  const commands: MotionCommand[] = []
421
421
 
@@ -577,8 +577,8 @@ export class JoggerConnection {
577
577
  } else {
578
578
  throw new Error(
579
579
  result?.add_trajectory_error?.message ||
580
- result?.message ||
581
- "Failed to execute trajectory, unknown error",
580
+ result?.message ||
581
+ "Failed to execute trajectory, unknown error",
582
582
  )
583
583
  }
584
584
  }
@@ -1,5 +1,4 @@
1
- import { createTheme, rgbToHex, type Theme } from "@mui/material"
2
-
1
+ import { createTheme, type Theme } from "@mui/material/styles"
3
2
  export function createDarkTheme(): Theme {
4
3
  const baseTheme = createTheme({
5
4
  palette: {
@@ -338,7 +337,7 @@ export function createDarkTheme(): Theme {
338
337
  VelocitySlider: {
339
338
  sliderLegendColor: baseTheme.palette.text.primary,
340
339
  },
341
- }
340
+ },
342
341
  },
343
342
  } as Theme
344
343
  }