@wandelbots/wandelbots-js-react-components 2.59.0-pr.dev-fix-flaky-task.488.1957fef → 2.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +10 -107
  2. package/dist/auth0-spa-js.production.esm-1QXzndwB.js +950 -0
  3. package/dist/auth0-spa-js.production.esm-1QXzndwB.js.map +1 -0
  4. package/dist/auth0-spa-js.production.esm-BLRAk7Yh.cjs +5 -0
  5. package/dist/auth0-spa-js.production.esm-BLRAk7Yh.cjs.map +1 -0
  6. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -1
  7. package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
  8. package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
  9. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -1
  10. package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -1
  11. package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -1
  12. package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -1
  13. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -1
  14. package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -1
  15. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -1
  16. package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -1
  17. package/dist/components/ProgramStateIndicator.d.ts +3 -3
  18. package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
  19. package/dist/components/RobotCard.d.ts +4 -5
  20. package/dist/components/RobotCard.d.ts.map +1 -1
  21. package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -1
  22. package/dist/components/jogging/JoggingOptions.d.ts.map +1 -1
  23. package/dist/components/jogging/JoggingPanel.d.ts +1 -1
  24. package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
  25. package/dist/components/jogging/JoggingStore.d.ts +5 -10
  26. package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
  27. package/dist/components/jogging/PoseCartesianValues.d.ts +2 -2
  28. package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
  29. package/dist/components/jogging/PoseJointValues.d.ts +2 -1
  30. package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
  31. package/dist/components/robots/DHRobot.d.ts.map +1 -1
  32. package/dist/components/robots/GenericRobot.d.ts +2 -2
  33. package/dist/components/robots/GenericRobot.d.ts.map +1 -1
  34. package/dist/components/robots/Robot.d.ts +2 -4
  35. package/dist/components/robots/Robot.d.ts.map +1 -1
  36. package/dist/components/robots/RobotAnimator.d.ts +2 -2
  37. package/dist/components/robots/RobotAnimator.d.ts.map +1 -1
  38. package/dist/components/robots/SupportedRobot.d.ts +4 -4
  39. package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
  40. package/dist/components/robots/manufacturerHomePositions.d.ts +1 -1
  41. package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -1
  42. package/dist/components/robots/robotModelLogic.d.ts +1 -11
  43. package/dist/components/robots/robotModelLogic.d.ts.map +1 -1
  44. package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
  45. package/dist/components/safetyBar/OperationModeIndicator.d.ts +2 -2
  46. package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
  47. package/dist/components/safetyBar/SafetyBar.d.ts +3 -3
  48. package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
  49. package/dist/components/safetyBar/SafetyStateIndicator.d.ts +2 -2
  50. package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
  51. package/dist/components/utils/errorHandling.d.ts.map +1 -1
  52. package/dist/index.cjs +160 -0
  53. package/dist/index.cjs.map +1 -0
  54. package/dist/index.d.ts +39 -3
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +36825 -0
  57. package/dist/index.js.map +1 -0
  58. package/package.json +32 -70
  59. package/src/components/3d-viewport/CoordinateSystemTransform.tsx +1 -1
  60. package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -1
  61. package/src/components/3d-viewport/collider/ColliderCollection.tsx +1 -1
  62. package/src/components/3d-viewport/collider/ColliderElement.tsx +1 -1
  63. package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +1 -1
  64. package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +1 -1
  65. package/src/components/AppHeader.md +1 -1
  66. package/src/components/ProgramStateIndicator.tsx +6 -3
  67. package/src/components/RobotCard.tsx +8 -5
  68. package/src/components/jogging/JoggingCartesianTab.tsx +11 -13
  69. package/src/components/jogging/JoggingJointLimitDetector.tsx +2 -2
  70. package/src/components/jogging/JoggingJointTab.tsx +4 -4
  71. package/src/components/jogging/JoggingOptions.tsx +5 -6
  72. package/src/components/jogging/JoggingPanel.tsx +3 -6
  73. package/src/components/jogging/JoggingStore.ts +39 -66
  74. package/src/components/jogging/PoseCartesianValues.tsx +4 -3
  75. package/src/components/jogging/PoseJointValues.tsx +4 -3
  76. package/src/components/robots/DHRobot.tsx +3 -2
  77. package/src/components/robots/GenericRobot.tsx +36 -97
  78. package/src/components/robots/Robot.tsx +2 -4
  79. package/src/components/robots/RobotAnimator.test.tsx +22 -7
  80. package/src/components/robots/RobotAnimator.tsx +14 -9
  81. package/src/components/robots/SupportedRobot.tsx +9 -14
  82. package/src/components/robots/manufacturerHomePositions.ts +1 -1
  83. package/src/components/robots/robotModelLogic.ts +6 -75
  84. package/src/components/safetyBar/ControllerTypeIndicator.tsx +2 -4
  85. package/src/components/safetyBar/OperationModeIndicator.tsx +5 -7
  86. package/src/components/safetyBar/SafetyBar.tsx +6 -3
  87. package/src/components/safetyBar/SafetyStateIndicator.tsx +7 -9
  88. package/src/components/utils/errorHandling.ts +0 -4
  89. package/src/i18n/locales/de/translations.json +0 -3
  90. package/src/i18n/locales/en/translations.json +0 -3
  91. package/src/index.ts +43 -4
  92. package/dist/3d.cjs.js +0 -2
  93. package/dist/3d.cjs.js.map +0 -1
  94. package/dist/3d.d.ts +0 -11
  95. package/dist/3d.d.ts.map +0 -1
  96. package/dist/3d.es.js +0 -16
  97. package/dist/3d.es.js.map +0 -1
  98. package/dist/LoadingCover-6gWr11KP.js +0 -88
  99. package/dist/LoadingCover-6gWr11KP.js.map +0 -1
  100. package/dist/LoadingCover-CukpS_aj.cjs +0 -2
  101. package/dist/LoadingCover-CukpS_aj.cjs.map +0 -1
  102. package/dist/WandelscriptEditor-7eN-Yw7m.js +0 -140
  103. package/dist/WandelscriptEditor-7eN-Yw7m.js.map +0 -1
  104. package/dist/WandelscriptEditor-D6_vS5Uk.cjs +0 -2
  105. package/dist/WandelscriptEditor-D6_vS5Uk.cjs.map +0 -1
  106. package/dist/auth0-spa-js.production.esm-BMSlxZC5.js +0 -3877
  107. package/dist/auth0-spa-js.production.esm-BMSlxZC5.js.map +0 -1
  108. package/dist/auth0-spa-js.production.esm-DZ6lsBvD.cjs +0 -5
  109. package/dist/auth0-spa-js.production.esm-DZ6lsBvD.cjs.map +0 -1
  110. package/dist/components/jogging/JoggingBlocked.d.ts +0 -7
  111. package/dist/components/jogging/JoggingBlocked.d.ts.map +0 -1
  112. package/dist/components/utils/errorHandling.test.d.ts +0 -2
  113. package/dist/components/utils/errorHandling.test.d.ts.map +0 -1
  114. package/dist/core.cjs.js +0 -2
  115. package/dist/core.cjs.js.map +0 -1
  116. package/dist/core.d.ts +0 -33
  117. package/dist/core.d.ts.map +0 -1
  118. package/dist/core.es.js +0 -54
  119. package/dist/core.es.js.map +0 -1
  120. package/dist/externalizeComponent-CkVWk2F_.cjs +0 -24
  121. package/dist/externalizeComponent-CkVWk2F_.cjs.map +0 -1
  122. package/dist/externalizeComponent-Dc3fViZA.js +0 -489
  123. package/dist/externalizeComponent-Dc3fViZA.js.map +0 -1
  124. package/dist/index.cjs.js +0 -2
  125. package/dist/index.cjs.js.map +0 -1
  126. package/dist/index.es.js +0 -69
  127. package/dist/index.es.js.map +0 -1
  128. package/dist/interpolation-DAXKfoDS.cjs +0 -20
  129. package/dist/interpolation-DAXKfoDS.cjs.map +0 -1
  130. package/dist/interpolation-DcPbemBD.js +0 -6924
  131. package/dist/interpolation-DcPbemBD.js.map +0 -1
  132. package/dist/lib/ConnectedMotionGroup.d.ts +0 -90
  133. package/dist/lib/ConnectedMotionGroup.d.ts.map +0 -1
  134. package/dist/lib/JoggerConnection.d.ts +0 -113
  135. package/dist/lib/JoggerConnection.d.ts.map +0 -1
  136. package/dist/lib/JoggerConnection.test.d.ts +0 -2
  137. package/dist/lib/JoggerConnection.test.d.ts.map +0 -1
  138. package/dist/lib/MotionStreamConnection.d.ts +0 -24
  139. package/dist/lib/MotionStreamConnection.d.ts.map +0 -1
  140. package/dist/lib/MotionStreamConnection.test.d.ts +0 -2
  141. package/dist/lib/MotionStreamConnection.test.d.ts.map +0 -1
  142. package/dist/lib/motionStateUpdate.d.ts +0 -7
  143. package/dist/lib/motionStateUpdate.d.ts.map +0 -1
  144. package/dist/lib/motionStateUpdate.test.d.ts +0 -2
  145. package/dist/lib/motionStateUpdate.test.d.ts.map +0 -1
  146. package/dist/manufacturerHomePositions-BD6C5qZJ.js +0 -1040
  147. package/dist/manufacturerHomePositions-BD6C5qZJ.js.map +0 -1
  148. package/dist/manufacturerHomePositions-DRNjU1pU.cjs +0 -2
  149. package/dist/manufacturerHomePositions-DRNjU1pU.cjs.map +0 -1
  150. package/dist/theming-CPShzNuV.cjs +0 -115
  151. package/dist/theming-CPShzNuV.cjs.map +0 -1
  152. package/dist/theming-Hr605E6v.js +0 -22336
  153. package/dist/theming-Hr605E6v.js.map +0 -1
  154. package/dist/wandelscript.cjs.js +0 -2
  155. package/dist/wandelscript.cjs.js.map +0 -1
  156. package/dist/wandelscript.d.ts +0 -2
  157. package/dist/wandelscript.d.ts.map +0 -1
  158. package/dist/wandelscript.es.js +0 -5
  159. package/dist/wandelscript.es.js.map +0 -1
  160. package/src/3d.ts +0 -15
  161. package/src/components/jogging/JoggingBlocked.tsx +0 -37
  162. package/src/components/utils/errorHandling.test.ts +0 -41
  163. package/src/core.ts +0 -33
  164. package/src/env.d.ts +0 -3
  165. package/src/lib/ConnectedMotionGroup.ts +0 -444
  166. package/src/lib/JoggerConnection.test.ts +0 -120
  167. package/src/lib/JoggerConnection.ts +0 -674
  168. package/src/lib/MotionStreamConnection.test.ts +0 -23
  169. package/src/lib/MotionStreamConnection.ts +0 -189
  170. package/src/lib/motionStateUpdate.test.ts +0 -28
  171. package/src/lib/motionStateUpdate.ts +0 -117
  172. package/src/wandelscript.ts +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wandelbots/wandelbots-js-react-components",
3
- "version": "2.59.0-pr.dev-fix-flaky-task.488.1957fef",
3
+ "version": "2.59.0",
4
4
  "description": "React UI toolkit for building applications on top of the Wandelbots platform",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -13,24 +13,8 @@
13
13
  "main": "./dist/index.cjs",
14
14
  "exports": {
15
15
  ".": {
16
- "types": "./dist/index.d.ts",
17
- "import": "./dist/index.es.js",
18
- "require": "./dist/index.cjs.js"
19
- },
20
- "./core": {
21
- "types": "./dist/core.d.ts",
22
- "import": "./dist/core.es.js",
23
- "require": "./dist/core.cjs.js"
24
- },
25
- "./3d": {
26
- "types": "./dist/3d.d.ts",
27
- "import": "./dist/3d.es.js",
28
- "require": "./dist/3d.cjs.js"
29
- },
30
- "./wandelscript": {
31
- "types": "./dist/wandelscript.d.ts",
32
- "import": "./dist/wandelscript.es.js",
33
- "require": "./dist/wandelscript.cjs.js"
16
+ "import": "./dist/index.js",
17
+ "require": "./dist/index.cjs"
34
18
  }
35
19
  },
36
20
  "types": "./dist/index.d.ts",
@@ -50,8 +34,7 @@
50
34
  "ci:test:runner": "wait-on tcp:127.0.0.1:9009 && test-storybook --url http://127.0.0.1:9009 --index-json --browsers chromium",
51
35
  "build": "rimraf dist && vite build && tsc --declaration --emitDeclarationOnly",
52
36
  "build-storybook": "storybook build",
53
- "prepare": "husky || true",
54
- "td": "tsx scripts/td-wrapper.ts"
37
+ "prepare": "husky || true"
55
38
  },
56
39
  "repository": {
57
40
  "type": "git",
@@ -64,46 +47,40 @@
64
47
  ],
65
48
  "author": "Wandelbots",
66
49
  "license": "Apache-2.0",
67
- "engines": {
68
- "node": ">=18.14.0",
69
- "npm": ">=8.0.0"
70
- },
71
50
  "devDependencies": {
72
51
  "@emotion/react": "^11.14.0",
73
52
  "@emotion/styled": "^11.14.0",
74
- "@monaco-editor/react": "^4.7.0",
75
- "@mui/icons-material": "^7.3.7",
76
- "@mui/material": "^7.3.7",
53
+ "@mui/icons-material": "^7.1.1",
54
+ "@mui/material": "^7.1.1",
77
55
  "@react-three/drei": "^10.2.0",
78
56
  "@react-three/fiber": "^9.1.2",
79
- "@rollup/plugin-commonjs": "^29.0.0",
57
+ "@rollup/plugin-commonjs": "^28.0.2",
80
58
  "@rollup/plugin-json": "^6.1.0",
81
59
  "@rollup/plugin-node-resolve": "^16.0.0",
82
60
  "@rollup/plugin-terser": "^0.4.4",
83
61
  "@rollup/plugin-typescript": "^12.1.2",
84
- "@shikijs/monaco": "^3.1.0",
85
- "@storybook/addon-docs": "^10.2.3",
86
- "@storybook/react-vite": "^10.2.3",
62
+ "@storybook/addon-docs": "^10.0.1",
63
+ "@storybook/react-vite": "^10.0.1",
87
64
  "@storybook/test-runner": "^0.24.1",
88
65
  "@svgr/rollup": "^8.1.0",
89
66
  "@testing-library/jest-dom": "^6.6.3",
90
- "@testing-library/react": "^16.3.2",
67
+ "@testing-library/react": "^16.3.0",
91
68
  "@testing-library/user-event": "^14.6.1",
92
69
  "@types/lodash-es": "^4.17.12",
93
70
  "@types/react": "^19.1.8",
94
- "@types/three": "^0.182.0",
71
+ "@types/three": "^0.174.0",
95
72
  "@vitejs/plugin-react": "^4.3.4",
96
- "@wandelbots/nova-js": "^3.5.0",
73
+ "@wandelbots/nova-js": "^2.1.0",
97
74
  "add": "^2.0.6",
98
- "eslint-plugin-storybook": "^10.1.10",
99
- "glob": "^13.0.0",
75
+ "eslint-plugin-storybook": "^10.0.1",
76
+ "glob": "^11.0.1",
100
77
  "http-server": "^14.1.1",
101
78
  "husky": "^9.1.7",
102
- "i18next": "^25.7.4",
79
+ "i18next": "^25.2.1",
103
80
  "jest-simple-dot-reporter": "^1.0.5",
104
81
  "jest-summary-reporter": "^0.0.2",
105
- "jsdom": "^27.4.0",
106
- "monaco-editor": "^0.55.1",
82
+ "jsdom": "^26.1.0",
83
+ "monaco-editor": "^0.52.2",
107
84
  "nodemon": "^3.1.9",
108
85
  "npm-run-all": "^4.1.5",
109
86
  "postcss": "^8.5.3",
@@ -112,54 +89,40 @@
112
89
  "react": "^19.1.0",
113
90
  "react-dom": "^19.1.0",
114
91
  "rimraf": "^6.0.1",
115
- "rollup": "^4.55.1",
92
+ "rollup": "^4.34.9",
116
93
  "rollup-plugin-dts": "^6.1.1",
117
94
  "rollup-plugin-gltf": "^4.0.0",
118
95
  "rollup-plugin-peer-deps-external": "^2.2.4",
119
96
  "rollup-plugin-postcss": "^4.0.2",
120
- "semantic-release": "^25.0.2",
121
- "shiki": "^3.1.0",
122
- "storybook": "^10.2.3",
123
- "storybook-preset-inline-svg": "^2.0.0",
124
- "three": "^0.182.0",
97
+ "semantic-release": "^24.2.3",
98
+ "storybook": "^10.0.1",
99
+ "storybook-preset-inline-svg": "^1.0.1",
100
+ "three": "^0.174.0",
125
101
  "three-stdlib": "^2.35.14",
126
102
  "ts-dedent": "^2.2.0",
127
- "tsx": "^4.21.0",
128
103
  "typescript": "^5.8.2",
129
104
  "unplugin": "^1.15.0",
130
105
  "vite": "^6.2.0",
131
106
  "vite-plugin-svgr": "^4.3.0",
132
107
  "vitest": "^3.0.7",
133
- "wait-on": "^9.0.3"
108
+ "wait-on": "^8.0.2"
134
109
  },
135
110
  "peerDependencies": {
136
111
  "@emotion/react": "^11.11.1",
137
112
  "@emotion/styled": "^11.11.0",
138
- "@monaco-editor/react": "^4.7.0",
139
113
  "@mui/icons-material": "^6 || ^7",
140
114
  "@mui/material": "^6 || ^7",
141
115
  "@react-three/drei": "^9.122.0 || ^10",
142
116
  "@react-three/fiber": "^8 || ^9",
143
- "@shikijs/monaco": "^3.1.0",
144
117
  "react": "^18.0.0 || ^19.0.0",
145
118
  "react-dom": "^18.0.0 || ^19.0.0",
146
- "shiki": "^3.1.0",
147
- "three": ">=0.182",
119
+ "three": ">=0.174",
148
120
  "three-stdlib": ">=2"
149
121
  },
150
122
  "peerDependenciesMeta": {
151
123
  "react-dom": {
152
124
  "optional": true
153
125
  },
154
- "@monaco-editor/react": {
155
- "optional": true
156
- },
157
- "@shikijs/monaco": {
158
- "optional": true
159
- },
160
- "shiki": {
161
- "optional": true
162
- },
163
126
  "@react-three/drei": {
164
127
  "optional": true
165
128
  },
@@ -174,18 +137,17 @@
174
137
  }
175
138
  },
176
139
  "dependencies": {
177
- "@mui/x-charts": "^8.27.0",
178
- "@mui/x-data-grid": "^8.27.0",
179
- "@wandelbots/nova-js": "3.5.0",
180
- "axios": "^1.13.2",
181
- "dotenv": "^17.2.3",
182
- "i18next-browser-languagedetector": "^8.2.0",
140
+ "@monaco-editor/react": "^4.7.0",
141
+ "@mui/x-charts": "^8.9.0",
142
+ "@mui/x-data-grid": "^8.10.1",
143
+ "@shikijs/monaco": "^3.1.0",
144
+ "i18next-browser-languagedetector": "^8.0.4",
183
145
  "lodash-es": "^4.17.21",
184
146
  "mobx": "^6.13.6",
185
147
  "mobx-react-lite": "^4.1.0",
186
- "react-error-boundary": "^6.0.3",
187
- "react-i18next": "^16.5.2",
188
- "username": "^7.0.0"
148
+ "react-error-boundary": "^6.0.0",
149
+ "react-i18next": "^16.5.4",
150
+ "shiki": "^3.1.0"
189
151
  },
190
152
  "overrides": {
191
153
  "storybook": "$storybook"
@@ -1,4 +1,4 @@
1
- import type { CoordinateSystem } from "@wandelbots/nova-js/v1"
1
+ import type { CoordinateSystem } from "@wandelbots/nova-api/v1"
2
2
  import type { ReactNode } from "react"
3
3
  import { Quaternion, Vector3 } from "three"
4
4
 
@@ -1,5 +1,6 @@
1
1
  import { type ThreeElements } from "@react-three/fiber"
2
- import type { Geometry, SafetySetupSafetyZone } from "@wandelbots/nova-js/v1"
2
+ import type { Geometry } from "@wandelbots/nova-api/v1"
3
+ import type { SafetySetupSafetyZone } from "@wandelbots/nova-js/v1"
3
4
  import * as THREE from "three"
4
5
  import { ConvexGeometry } from "three-stdlib"
5
6
 
@@ -1,5 +1,5 @@
1
1
  import type { ThreeElements } from "@react-three/fiber"
2
- import type { Collider } from "@wandelbots/nova-js/v1"
2
+ import type { Collider } from "@wandelbots/nova-api/v1"
3
3
  import ColliderElement from "./ColliderElement"
4
4
 
5
5
  export type MeshChildrenProvider = (
@@ -1,4 +1,4 @@
1
- import type { Collider } from "@wandelbots/nova-js/v1"
1
+ import type { Collider } from "@wandelbots/nova-api/v1"
2
2
  import type React from "react"
3
3
  import * as THREE from "three"
4
4
  import { colliderShapeToBufferGeometry } from "./colliderShapeToBufferGeometry"
@@ -1,4 +1,4 @@
1
- import type { CollisionScene } from "@wandelbots/nova-js/v1"
1
+ import type { CollisionScene } from "@wandelbots/nova-api/v1"
2
2
  import ColliderCollection, {
3
3
  type MeshChildrenProvider,
4
4
  } from "./ColliderCollection"
@@ -1,4 +1,4 @@
1
- import type { ColliderShape } from "@wandelbots/nova-js/v1"
1
+ import type { ColliderShape } from "@wandelbots/nova-api/v1"
2
2
  import * as THREE from "three"
3
3
  import { ConvexGeometry } from "three-stdlib"
4
4
 
@@ -16,7 +16,7 @@ A navigation header component that displays the current application's icon and n
16
16
  import {
17
17
  AppHeader,
18
18
  type AppItem,
19
- } from "@wandelbots/wandelbots-js-react-components/core"
19
+ } from "@wandelbots/wandelbots-js-react-components"
20
20
  import { Home, Settings, Person } from "@mui/icons-material"
21
21
 
22
22
  const apps: AppItem[] = [
@@ -1,5 +1,8 @@
1
1
  import { Chip, Typography, useTheme } from "@mui/material"
2
- import type { OperationMode, SafetyStateType } from "@wandelbots/nova-js/v2"
2
+ import type {
3
+ RobotControllerStateOperationModeEnum,
4
+ RobotControllerStateSafetyStateEnum,
5
+ } from "@wandelbots/nova-js/v1"
3
6
  import { observer } from "mobx-react-lite"
4
7
  import { useTranslation } from "react-i18next"
5
8
  import { externalizeComponent } from "../externalizeComponent"
@@ -9,9 +12,9 @@ export interface ProgramStateIndicatorProps {
9
12
  /** The current state of the program */
10
13
  programState: ProgramState
11
14
  /** The current safety state of the robot controller */
12
- safetyState: SafetyStateType
15
+ safetyState: RobotControllerStateSafetyStateEnum
13
16
  /** The current operation mode of the robot controller */
14
- operationMode: OperationMode
17
+ operationMode: RobotControllerStateOperationModeEnum
15
18
  /** Additional CSS class name */
16
19
  className?: string
17
20
  }
@@ -1,13 +1,16 @@
1
1
  import { Box, Button, Card, Divider, Typography, useTheme } from "@mui/material"
2
2
  import { Bounds } from "@react-three/drei"
3
3
  import { Canvas } from "@react-three/fiber"
4
- import type { OperationMode, SafetyStateType } from "@wandelbots/nova-js/v2"
4
+ import type {
5
+ ConnectedMotionGroup,
6
+ RobotControllerStateOperationModeEnum,
7
+ RobotControllerStateSafetyStateEnum,
8
+ } from "@wandelbots/nova-js/v1"
5
9
  import { observer } from "mobx-react-lite"
6
10
  import { useCallback, useEffect, useRef, useState } from "react"
7
11
  import { useTranslation } from "react-i18next"
8
12
  import type { Group } from "three"
9
13
  import { externalizeComponent } from "../externalizeComponent"
10
- import type { ConnectedMotionGroup } from "../lib/ConnectedMotionGroup"
11
14
  import { PresetEnvironment } from "./3d-viewport/PresetEnvironment"
12
15
  import type { ProgramState } from "./ProgramControl"
13
16
  import { ProgramStateIndicator } from "./ProgramStateIndicator"
@@ -19,9 +22,9 @@ export interface RobotCardProps {
19
22
  /** Current program state */
20
23
  programState: ProgramState
21
24
  /** Current safety state of the robot controller */
22
- safetyState: SafetyStateType
25
+ safetyState: RobotControllerStateSafetyStateEnum
23
26
  /** Current operation mode of the robot controller */
24
- operationMode: OperationMode
27
+ operationMode: RobotControllerStateOperationModeEnum
25
28
  /** Whether the "Drive to Home" button should be enabled */
26
29
  driveToHomeEnabled?: boolean
27
30
  /** Callback fired when "Drive to Home" button is pressed */
@@ -52,7 +55,7 @@ export interface RobotCardProps {
52
55
  flangeRef?: React.Ref<Group>
53
56
  postModelRender?: () => void
54
57
  transparentColor?: string
55
- getModel?: (modelFromController: string) => Promise<string>
58
+ getModel?: (modelFromController: string) => string
56
59
  }>
57
60
  /** Custom component to render in the content area (optional) */
58
61
  customContentComponent?: React.ComponentType<Record<string, unknown>>
@@ -6,18 +6,13 @@ import {
6
6
  useTheme,
7
7
  type Theme,
8
8
  } from "@mui/material"
9
- import {
10
- degreesToRadians,
11
- radiansToDegrees,
12
- XYZ_TO_VECTOR,
13
- } from "@wandelbots/nova-js"
9
+ import { degreesToRadians, radiansToDegrees } from "@wandelbots/nova-js"
14
10
  import { observer } from "mobx-react-lite"
15
11
  import { useTranslation } from "react-i18next"
16
12
  import XAxisIcon from "../../icons/axis-x.svg"
17
13
  import YAxisIcon from "../../icons/axis-y.svg"
18
14
  import ZAxisIcon from "../../icons/axis-z.svg"
19
15
  import RotationIcon from "../../icons/rotation.svg"
20
- import type { Vector3Simple } from "../../lib/JoggerConnection"
21
16
  import { useReaction } from "../utils/hooks"
22
17
  import { JoggingCartesianAxisControl } from "./JoggingCartesianAxisControl"
23
18
  import { JoggingJointLimitDetector } from "./JoggingJointLimitDetector"
@@ -61,7 +56,7 @@ export const JoggingCartesianTab = observer(
61
56
  () => {
62
57
  store.jogger.motionStream.motionStateSocket.changeUrl(
63
58
  store.jogger.nova.makeWebsocketURL(
64
- `/controllers/${store.jogger.motionStream.controllerId}/motion-groups/${store.jogger.motionGroupId}/state-stream?tcp=${store.selectedTcpId}`,
59
+ `/motion-groups/${store.jogger.motionGroupId}/state-stream?tcp=${store.selectedTcpId}&response_coordinate_system=${store.selectedCoordSystemId}`,
65
60
  ),
66
61
  )
67
62
  },
@@ -75,8 +70,8 @@ export const JoggingCartesianTab = observer(
75
70
  const jogger = await store.activate()
76
71
 
77
72
  const tcpPose = jogger.motionStream.rapidlyChangingMotionState.tcp_pose
78
- const jointPosition = jogger.motionStream.rapidlyChangingMotionState
79
- .joint_position as Vector3Simple
73
+ const jointPosition =
74
+ jogger.motionStream.rapidlyChangingMotionState.state.joint_position
80
75
  if (!tcpPose) return
81
76
 
82
77
  await store.withMotionLock(async () => {
@@ -122,13 +117,13 @@ export const JoggingCartesianTab = observer(
122
117
  }
123
118
 
124
119
  if (opts.motionType === "translate") {
125
- await store.jogger.translateTCP({
120
+ await store.jogger.startTCPTranslation({
126
121
  axis: opts.axis,
127
122
  direction: opts.direction,
128
123
  velocityMmPerSec: store.translationVelocityMmPerSec,
129
124
  })
130
125
  } else {
131
- await store.jogger.rotateTCP({
126
+ await store.jogger.startTCPRotation({
132
127
  axis: opts.axis,
133
128
  direction: opts.direction,
134
129
  velocityRadsPerSec: store.rotationVelocityRadsPerSec,
@@ -194,7 +189,10 @@ export const JoggingCartesianTab = observer(
194
189
  return (
195
190
  <Stack flexGrow={1} gap={2} sx={{ padding: "18px 24px" }}>
196
191
  <Stack gap={2}>
192
+ {/* Jogging options */}
197
193
  <JoggingOptions store={store} />
194
+
195
+ {/* Velocity slider */}
198
196
  <JoggingVelocitySlider store={store} />
199
197
  <Divider />
200
198
  </Stack>
@@ -259,7 +257,7 @@ export const JoggingCartesianTab = observer(
259
257
  getDisplayedValue={() =>
260
258
  formatMM(
261
259
  store.jogger.motionStream.rapidlyChangingMotionState
262
- .tcp_pose?.position?.[XYZ_TO_VECTOR[axis.id]] || 0,
260
+ .tcp_pose?.position[axis.id] || 0,
263
261
  )
264
262
  }
265
263
  startJogging={(direction: "-" | "+") =>
@@ -303,7 +301,7 @@ export const JoggingCartesianTab = observer(
303
301
  getDisplayedValue={() =>
304
302
  formatDegrees(
305
303
  store.jogger.motionStream.rapidlyChangingMotionState
306
- .tcp_pose?.orientation?.[XYZ_TO_VECTOR[axis.id]] || 0,
304
+ .tcp_pose?.orientation?.[axis.id] || 0,
307
305
  )
308
306
  }
309
307
  startJogging={(direction: "-" | "+") =>
@@ -17,14 +17,14 @@ export const JoggingJointLimitDetector = ({
17
17
  const { t } = useTranslation()
18
18
 
19
19
  const [jointLimitsReached, setJointLimitsReached] = useState(
20
- store.jogger.motionStream.rapidlyChangingMotionState
20
+ store.jogger.motionStream.rapidlyChangingMotionState.state
21
21
  .joint_limit_reached.limit_reached,
22
22
  )
23
23
  const jointLimitsReachedRef = useRef(jointLimitsReached)
24
24
 
25
25
  useAnimationFrame(() => {
26
26
  const newLimitsReached =
27
- store.jogger.motionStream.rapidlyChangingMotionState
27
+ store.jogger.motionStream.rapidlyChangingMotionState.state
28
28
  .joint_limit_reached.limit_reached
29
29
 
30
30
  if (!isEqual(jointLimitsReachedRef.current, newLimitsReached)) {
@@ -16,7 +16,7 @@ export const JoggingJointTab = observer(
16
16
  }) {
17
17
  await store.activate()
18
18
 
19
- await store.jogger.rotateJoints({
19
+ await store.jogger.startJointRotation({
20
20
  joint: opts.joint,
21
21
  direction: opts.direction,
22
22
  velocityRadsPerSec: store.rotationVelocityRadsPerSec,
@@ -37,12 +37,12 @@ export const JoggingJointTab = observer(
37
37
  justifyContent="center"
38
38
  alignItems="stretch"
39
39
  sx={{ flexGrow: "1" }}
40
+ id="JointControls"
40
41
  >
41
42
  <Stack alignItems="center" gap="24px">
42
43
  {store.jogger.motionStream.joints.map((joint) => {
43
44
  const jointLimits =
44
- store.motionGroupDescription.operation_limits.auto_limits
45
- ?.joints?.[joint.index]?.position
45
+ store.motionGroupSpec.mechanical_joint_limits?.[joint.index]
46
46
  const lowerLimitDegs =
47
47
  jointLimits?.lower_limit !== undefined
48
48
  ? radiansToDegrees(jointLimits.lower_limit)
@@ -80,7 +80,7 @@ export const JoggingJointTab = observer(
80
80
  getValueDegs={() => {
81
81
  const value =
82
82
  store.jogger.motionStream.rapidlyChangingMotionState
83
- .joint_position[joint.index]
83
+ .state.joint_position.joints[joint.index]
84
84
  return value !== undefined
85
85
  ? radiansToDegrees(value)
86
86
  : undefined
@@ -1,6 +1,5 @@
1
1
  import { Box, MenuItem } from "@mui/material"
2
2
  import { observer } from "mobx-react-lite"
3
- import { useId } from "react"
4
3
  import { useTranslation } from "react-i18next"
5
4
  import AdornedSelect from "../experimental/utils/AdornedSelect"
6
5
  import {
@@ -12,7 +11,6 @@ import {
12
11
 
13
12
  export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
14
13
  const { t } = useTranslation()
15
- const componentId = useId()
16
14
  const joggingOptions: React.ReactElement[] = []
17
15
 
18
16
  function translateOrientation(orientation: OrientationId): string {
@@ -30,7 +28,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
30
28
  joggingOptions.push(
31
29
  <AdornedSelect
32
30
  key="coord"
33
- labelId={`jogging-coord-select-${componentId}`}
31
+ labelId="jogging-coord-select"
34
32
  labelValue={t("Jogging.CoordinateSystem.hlb")}
35
33
  value={store.selectedCoordSystemId}
36
34
  size="small"
@@ -56,7 +54,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
56
54
  joggingOptions.push(
57
55
  <AdornedSelect
58
56
  key="tcp"
59
- labelId={`jogging-tcp-select-${componentId}`}
57
+ labelId="jogging-tcp-select"
60
58
  labelValue="TCP"
61
59
  value={store.selectedTcpId}
62
60
  size="small"
@@ -80,7 +78,8 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
80
78
  <AdornedSelect
81
79
  key="orientation"
82
80
  labelValue={t("Jogging.Cartesian.Orientation.lb")}
83
- labelId={`orientation-select-${componentId}`}
81
+ id="orientation-select"
82
+ labelId="orientation-select"
84
83
  value={store.selectedOrientation}
85
84
  onChange={(event) =>
86
85
  store.setSelectedOrientation(event.target.value as OrientationId)
@@ -101,7 +100,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
101
100
  <AdornedSelect
102
101
  key="increment"
103
102
  labelValue={t("Jogging.Increment.hlb")}
104
- labelId={`jogging-increment-select-${componentId}`}
103
+ labelId="jogging-increment-select"
105
104
  size="small"
106
105
  variant="filled"
107
106
  value={store.activeDiscreteIncrement?.id || "continuous"}
@@ -1,16 +1,14 @@
1
1
  import MoveIcon from "@mui/icons-material/OpenWith"
2
2
  import ShareIcon from "@mui/icons-material/Share"
3
3
  import { Stack, Tab, Tabs, type SxProps } from "@mui/material"
4
- import { NovaClient } from "@wandelbots/nova-js/v2"
4
+ import { NovaClient } from "@wandelbots/nova-js/v1"
5
5
  import { isString } from "lodash-es"
6
6
  import { runInAction } from "mobx"
7
7
  import { observer, useLocalObservable } from "mobx-react-lite"
8
8
  import { useEffect } from "react"
9
9
  import { useTranslation } from "react-i18next"
10
10
  import { externalizeComponent } from "../../externalizeComponent"
11
- import { JoggerConnection } from "../../lib/JoggerConnection"
12
11
  import { LoadingCover } from "../LoadingCover"
13
- import { JoggingBlocked } from "./JoggingBlocked"
14
12
  import { JoggingCartesianTab } from "./JoggingCartesianTab"
15
13
  import { JoggingJointTab } from "./JoggingJointTab"
16
14
  import { JoggingStore } from "./JoggingStore"
@@ -60,7 +58,7 @@ export const JoggingPanel = externalizeComponent(
60
58
  try {
61
59
  let joggingStore = props.store
62
60
  if (!joggingStore) {
63
- const jogger = await JoggerConnection.open(nova, props.motionGroupId)
61
+ const jogger = await nova.connectJogger(props.motionGroupId)
64
62
  joggingStore = await JoggingStore.loadFor(jogger)
65
63
  }
66
64
  runInAction(() => {
@@ -183,6 +181,7 @@ const JoggingPanelInner = observer(
183
181
  )
184
182
  })}
185
183
  </Tabs>
184
+
186
185
  {/* Current tab content */}
187
186
  <Stack
188
187
  flexGrow={1}
@@ -191,8 +190,6 @@ const JoggingPanelInner = observer(
191
190
  >
192
191
  {renderTabContent()}
193
192
  </Stack>
194
- {/* Overlay when jogging connection is blocked */}
195
- {store.blocked && <JoggingBlocked store={store} />}
196
193
  </Stack>
197
194
  )
198
195
  },