@viamrobotics/test-widgets 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +65 -0
  3. package/dist/add-image-to-dataset.d.ts +18 -0
  4. package/dist/add-image-to-dataset.js +18 -0
  5. package/dist/assert.d.ts +14 -0
  6. package/dist/assert.js +21 -0
  7. package/dist/builtin.js +59 -0
  8. package/dist/components/angle-unit-toggle.svelte +27 -0
  9. package/dist/components/angle-unit-toggle.svelte.d.ts +7 -0
  10. package/dist/components/api-section.svelte +69 -0
  11. package/dist/components/api-section.svelte.d.ts +13 -0
  12. package/dist/components/board/pin-section.svelte +28 -0
  13. package/dist/components/board/pin-section.svelte.d.ts +9 -0
  14. package/dist/components/connection-status.svelte +87 -0
  15. package/dist/components/connection-status.svelte.d.ts +14 -0
  16. package/dist/components/content-rect.svelte +21 -0
  17. package/dist/components/content-rect.svelte.d.ts +9 -0
  18. package/dist/components/copy-button.svelte +37 -0
  19. package/dist/components/copy-button.svelte.d.ts +9 -0
  20. package/dist/components/error.svelte +25 -0
  21. package/dist/components/error.svelte.d.ts +8 -0
  22. package/dist/components/image-annotations/annotation-edit-utils.d.ts +21 -0
  23. package/dist/components/image-annotations/annotation-edit-utils.js +183 -0
  24. package/dist/components/image-annotations/bounding-box-labeler.svelte +521 -0
  25. package/dist/components/image-annotations/bounding-box-labeler.svelte.d.ts +51 -0
  26. package/dist/components/image-annotations/bounding-box-types.d.ts +29 -0
  27. package/dist/components/image-annotations/bounding-box-types.js +17 -0
  28. package/dist/components/image-annotations/bounding-box.svelte +230 -0
  29. package/dist/components/image-annotations/bounding-box.svelte.d.ts +44 -0
  30. package/dist/components/image-annotations/get-image-size.d.ts +7 -0
  31. package/dist/components/image-annotations/get-image-size.js +29 -0
  32. package/dist/components/image-annotations/labeler-constants.d.ts +4 -0
  33. package/dist/components/image-annotations/labeler-constants.js +4 -0
  34. package/dist/components/image-annotations/resize-corner.svelte +47 -0
  35. package/dist/components/image-annotations/resize-corner.svelte.d.ts +9 -0
  36. package/dist/components/image-annotations/resize-edge.svelte +51 -0
  37. package/dist/components/image-annotations/resize-edge.svelte.d.ts +9 -0
  38. package/dist/components/image-annotations/resize-handle-props.d.ts +60 -0
  39. package/dist/components/image-annotations/resize-handle-props.js +66 -0
  40. package/dist/components/image-annotations/resize-handles.svelte +53 -0
  41. package/dist/components/image-annotations/resize-handles.svelte.d.ts +8 -0
  42. package/dist/components/index.d.ts +57 -0
  43. package/dist/components/index.js +56 -0
  44. package/dist/components/is-moving.svelte +66 -0
  45. package/dist/components/is-moving.svelte.d.ts +12 -0
  46. package/dist/components/maplibre/controls/center.svelte +41 -0
  47. package/dist/components/maplibre/controls/center.svelte.d.ts +19 -0
  48. package/dist/components/maplibre/controls/follow.svelte +65 -0
  49. package/dist/components/maplibre/controls/follow.svelte.d.ts +11 -0
  50. package/dist/components/maplibre/controls/navigation.svelte +57 -0
  51. package/dist/components/maplibre/controls/navigation.svelte.d.ts +23 -0
  52. package/dist/components/maplibre/controls/satellite.svelte +31 -0
  53. package/dist/components/maplibre/controls/satellite.svelte.d.ts +19 -0
  54. package/dist/components/maplibre/directional-marker.svelte +34 -0
  55. package/dist/components/maplibre/directional-marker.svelte.d.ts +13 -0
  56. package/dist/components/maplibre/hooks.d.ts +38 -0
  57. package/dist/components/maplibre/hooks.js +45 -0
  58. package/dist/components/maplibre/index.d.ts +13 -0
  59. package/dist/components/maplibre/index.js +13 -0
  60. package/dist/components/maplibre/index.svelte +232 -0
  61. package/dist/components/maplibre/index.svelte.d.ts +75 -0
  62. package/dist/components/maplibre/lnglat-input.svelte +54 -0
  63. package/dist/components/maplibre/lnglat-input.svelte.d.ts +17 -0
  64. package/dist/components/maplibre/marker.svelte +60 -0
  65. package/dist/components/maplibre/marker.svelte.d.ts +29 -0
  66. package/dist/components/maplibre/math.d.ts +12 -0
  67. package/dist/components/maplibre/math.js +18 -0
  68. package/dist/components/maplibre/plugins/google-maps.d.ts +1 -0
  69. package/dist/components/maplibre/plugins/google-maps.js +74 -0
  70. package/dist/components/maplibre/plugins/raycast.d.ts +10 -0
  71. package/dist/components/maplibre/plugins/raycast.js +29 -0
  72. package/dist/components/maplibre/plugins/three.svelte.d.ts +21 -0
  73. package/dist/components/maplibre/plugins/three.svelte.js +73 -0
  74. package/dist/components/maplibre/style.d.ts +4 -0
  75. package/dist/components/maplibre/style.js +88 -0
  76. package/dist/components/maplibre/types.d.ts +14 -0
  77. package/dist/components/maplibre/types.js +19 -0
  78. package/dist/components/maplibre/zoom.d.ts +1 -0
  79. package/dist/components/maplibre/zoom.js +1 -0
  80. package/dist/components/mutation-section.svelte +76 -0
  81. package/dist/components/mutation-section.svelte.d.ts +14 -0
  82. package/dist/components/mutation-view.svelte +29 -0
  83. package/dist/components/mutation-view.svelte.d.ts +10 -0
  84. package/dist/components/navigation-map/components/draw-tool.svelte +139 -0
  85. package/dist/components/navigation-map/components/draw-tool.svelte.d.ts +13 -0
  86. package/dist/components/navigation-map/components/input/geometry.svelte +123 -0
  87. package/dist/components/navigation-map/components/input/geometry.svelte.d.ts +9 -0
  88. package/dist/components/navigation-map/components/input/orientation.svelte +46 -0
  89. package/dist/components/navigation-map/components/input/orientation.svelte.d.ts +10 -0
  90. package/dist/components/navigation-map/components/map.svelte +145 -0
  91. package/dist/components/navigation-map/components/map.svelte.d.ts +20 -0
  92. package/dist/components/navigation-map/components/nav/index.svelte +64 -0
  93. package/dist/components/navigation-map/components/nav/index.svelte.d.ts +12 -0
  94. package/dist/components/navigation-map/components/nav/key.svelte +16 -0
  95. package/dist/components/navigation-map/components/nav/key.svelte.d.ts +8 -0
  96. package/dist/components/navigation-map/components/nav/obstacles-legend.svelte +18 -0
  97. package/dist/components/navigation-map/components/nav/obstacles-legend.svelte.d.ts +26 -0
  98. package/dist/components/navigation-map/components/nav/obstacles.svelte +206 -0
  99. package/dist/components/navigation-map/components/nav/obstacles.svelte.d.ts +7 -0
  100. package/dist/components/navigation-map/components/nav/waypoints.svelte +62 -0
  101. package/dist/components/navigation-map/components/nav/waypoints.svelte.d.ts +8 -0
  102. package/dist/components/navigation-map/components/obstacle.svelte +265 -0
  103. package/dist/components/navigation-map/components/obstacle.svelte.d.ts +10 -0
  104. package/dist/components/navigation-map/components/path.svelte +30 -0
  105. package/dist/components/navigation-map/components/path.svelte.d.ts +9 -0
  106. package/dist/components/navigation-map/components/robot-marker.svelte +18 -0
  107. package/dist/components/navigation-map/components/robot-marker.svelte.d.ts +8 -0
  108. package/dist/components/navigation-map/components/scene-layer.svelte +22 -0
  109. package/dist/components/navigation-map/components/scene-layer.svelte.d.ts +7 -0
  110. package/dist/components/navigation-map/components/scene.svelte +98 -0
  111. package/dist/components/navigation-map/components/scene.svelte.d.ts +7 -0
  112. package/dist/components/navigation-map/components/waypoints.svelte +14 -0
  113. package/dist/components/navigation-map/components/waypoints.svelte.d.ts +18 -0
  114. package/dist/components/navigation-map/index.d.ts +2 -0
  115. package/dist/components/navigation-map/index.js +2 -0
  116. package/dist/components/navigation-map/index.svelte +99 -0
  117. package/dist/components/navigation-map/index.svelte.d.ts +51 -0
  118. package/dist/components/navigation-map/lib/create-geometry.d.ts +2 -0
  119. package/dist/components/navigation-map/lib/create-geometry.js +31 -0
  120. package/dist/components/navigation-map/lib/create-name.d.ts +1 -0
  121. package/dist/components/navigation-map/lib/create-name.js +9 -0
  122. package/dist/components/navigation-map/lib/create-obstacle.d.ts +3 -0
  123. package/dist/components/navigation-map/lib/create-obstacle.js +12 -0
  124. package/dist/components/navigation-map/plugins/compute-bounding.svelte.d.ts +1 -0
  125. package/dist/components/navigation-map/plugins/compute-bounding.svelte.js +33 -0
  126. package/dist/components/navigation-map/plugins/interactivity.d.ts +6 -0
  127. package/dist/components/navigation-map/plugins/interactivity.js +27 -0
  128. package/dist/components/navigation-map/types.d.ts +37 -0
  129. package/dist/components/navigation-map/types.js +5 -0
  130. package/dist/components/navigation-map/use-navigation-map.svelte.d.ts +17 -0
  131. package/dist/components/navigation-map/use-navigation-map.svelte.js +69 -0
  132. package/dist/components/progress.svelte +4 -0
  133. package/dist/components/progress.svelte.d.ts +26 -0
  134. package/dist/components/queries.svelte +73 -0
  135. package/dist/components/queries.svelte.d.ts +12 -0
  136. package/dist/components/query.svelte +21 -0
  137. package/dist/components/query.svelte.d.ts +10 -0
  138. package/dist/components/readings-list.svelte +73 -0
  139. package/dist/components/readings-list.svelte.d.ts +6 -0
  140. package/dist/components/refetch-controller.svelte +122 -0
  141. package/dist/components/refetch-controller.svelte.d.ts +12 -0
  142. package/dist/components/refetch-interval-store.svelte.d.ts +18 -0
  143. package/dist/components/refetch-interval-store.svelte.js +37 -0
  144. package/dist/components/resource-icon.svelte +31 -0
  145. package/dist/components/resource-icon.svelte.d.ts +6 -0
  146. package/dist/components/section-group.svelte +64 -0
  147. package/dist/components/section-group.svelte.d.ts +14 -0
  148. package/dist/components/slam/map2d/base-marker.txt +1 -0
  149. package/dist/components/slam/map2d/color-map.d.ts +2 -0
  150. package/dist/components/slam/map2d/color-map.js +55 -0
  151. package/dist/components/slam/map2d/destination-marker.txt +1 -0
  152. package/dist/components/slam/map2d/helpers.svelte +29 -0
  153. package/dist/components/slam/map2d/helpers.svelte.d.ts +22 -0
  154. package/dist/components/slam/map2d/hooks/use-raycast-click/index.d.ts +9 -0
  155. package/dist/components/slam/map2d/hooks/use-raycast-click/index.js +36 -0
  156. package/dist/components/slam/map2d/hooks/use-raycast-click/normalize-device-coordinates.d.ts +2 -0
  157. package/dist/components/slam/map2d/hooks/use-raycast-click/normalize-device-coordinates.js +9 -0
  158. package/dist/components/slam/map2d/index.svelte +60 -0
  159. package/dist/components/slam/map2d/index.svelte.d.ts +37 -0
  160. package/dist/components/slam/map2d/legend.svelte +67 -0
  161. package/dist/components/slam/map2d/legend.svelte.d.ts +27 -0
  162. package/dist/components/slam/map2d/marker.svelte +41 -0
  163. package/dist/components/slam/map2d/marker.svelte.d.ts +13 -0
  164. package/dist/components/slam/map2d/motion-path.svelte +65 -0
  165. package/dist/components/slam/map2d/motion-path.svelte.d.ts +15 -0
  166. package/dist/components/slam/map2d/points.svelte +60 -0
  167. package/dist/components/slam/map2d/points.svelte.d.ts +23 -0
  168. package/dist/components/slam/map2d/render-order.d.ts +7 -0
  169. package/dist/components/slam/map2d/render-order.js +7 -0
  170. package/dist/components/slam/map2d/scene.svelte +130 -0
  171. package/dist/components/slam/map2d/scene.svelte.d.ts +16 -0
  172. package/dist/components/status-pill.svelte +25 -0
  173. package/dist/components/status-pill.svelte.d.ts +8 -0
  174. package/dist/components/stop-button.svelte +21 -0
  175. package/dist/components/stop-button.svelte.d.ts +7 -0
  176. package/dist/components/stop.svelte +51 -0
  177. package/dist/components/stop.svelte.d.ts +9 -0
  178. package/dist/components/table.svelte +46 -0
  179. package/dist/components/table.svelte.d.ts +7 -0
  180. package/dist/components/three/axes-helper.svelte +79 -0
  181. package/dist/components/three/axes-helper.svelte.d.ts +10 -0
  182. package/dist/components/three/index.d.ts +1 -0
  183. package/dist/components/three/index.js +1 -0
  184. package/dist/components/widgets/arm/arm.svelte +132 -0
  185. package/dist/components/widgets/arm/arm.svelte.d.ts +7 -0
  186. package/dist/components/widgets/arm/get-joint-positions.svelte +53 -0
  187. package/dist/components/widgets/arm/get-joint-positions.svelte.d.ts +6 -0
  188. package/dist/components/widgets/arm/move-to-joint-positions-widget.svelte +45 -0
  189. package/dist/components/widgets/arm/move-to-joint-positions-widget.svelte.d.ts +7 -0
  190. package/dist/components/widgets/arm/move-to-joint-positions.svelte +113 -0
  191. package/dist/components/widgets/arm/move-to-joint-positions.svelte.d.ts +8 -0
  192. package/dist/components/widgets/arm/move-to-position-widget.svelte +43 -0
  193. package/dist/components/widgets/arm/move-to-position-widget.svelte.d.ts +7 -0
  194. package/dist/components/widgets/arm/move-to-position.svelte +143 -0
  195. package/dist/components/widgets/arm/move-to-position.svelte.d.ts +9 -0
  196. package/dist/components/widgets/arm/quick-move-widget.svelte +45 -0
  197. package/dist/components/widgets/arm/quick-move-widget.svelte.d.ts +7 -0
  198. package/dist/components/widgets/arm/quick-move.svelte +62 -0
  199. package/dist/components/widgets/arm/quick-move.svelte.d.ts +8 -0
  200. package/dist/components/widgets/base/base.svelte +130 -0
  201. package/dist/components/widgets/base/base.svelte.d.ts +7 -0
  202. package/dist/components/widgets/base/move-straight-widget.svelte +31 -0
  203. package/dist/components/widgets/base/move-straight-widget.svelte.d.ts +7 -0
  204. package/dist/components/widgets/base/move-straight.svelte +78 -0
  205. package/dist/components/widgets/base/move-straight.svelte.d.ts +6 -0
  206. package/dist/components/widgets/base/quick-move-widget.svelte +49 -0
  207. package/dist/components/widgets/base/quick-move-widget.svelte.d.ts +7 -0
  208. package/dist/components/widgets/base/quick-move.svelte +230 -0
  209. package/dist/components/widgets/base/quick-move.svelte.d.ts +8 -0
  210. package/dist/components/widgets/base/set-power-widget.svelte +31 -0
  211. package/dist/components/widgets/base/set-power-widget.svelte.d.ts +7 -0
  212. package/dist/components/widgets/base/set-power.svelte +43 -0
  213. package/dist/components/widgets/base/set-power.svelte.d.ts +7 -0
  214. package/dist/components/widgets/base/set-velocity-widget.svelte +31 -0
  215. package/dist/components/widgets/base/set-velocity-widget.svelte.d.ts +7 -0
  216. package/dist/components/widgets/base/set-velocity.svelte +41 -0
  217. package/dist/components/widgets/base/set-velocity.svelte.d.ts +7 -0
  218. package/dist/components/widgets/base/spin-widget.svelte +31 -0
  219. package/dist/components/widgets/base/spin-widget.svelte.d.ts +7 -0
  220. package/dist/components/widgets/base/spin.svelte +77 -0
  221. package/dist/components/widgets/base/spin.svelte.d.ts +6 -0
  222. package/dist/components/widgets/base/vec3-builder.svelte +144 -0
  223. package/dist/components/widgets/base/vec3-builder.svelte.d.ts +13 -0
  224. package/dist/components/widgets/board/analog-read-wrapper.svelte +42 -0
  225. package/dist/components/widgets/board/analog-read-wrapper.svelte.d.ts +9 -0
  226. package/dist/components/widgets/board/analog-read.svelte +55 -0
  227. package/dist/components/widgets/board/analog-read.svelte.d.ts +7 -0
  228. package/dist/components/widgets/board/analog-write-wrapper.svelte +33 -0
  229. package/dist/components/widgets/board/analog-write-wrapper.svelte.d.ts +9 -0
  230. package/dist/components/widgets/board/analog-write.svelte +44 -0
  231. package/dist/components/widgets/board/analog-write.svelte.d.ts +6 -0
  232. package/dist/components/widgets/board/board.d.ts +16 -0
  233. package/dist/components/widgets/board/board.js +8 -0
  234. package/dist/components/widgets/board/board.svelte +23 -0
  235. package/dist/components/widgets/board/board.svelte.d.ts +7 -0
  236. package/dist/components/widgets/board/confirming-button.svelte +42 -0
  237. package/dist/components/widgets/board/confirming-button.svelte.d.ts +8 -0
  238. package/dist/components/widgets/board/gpio-read-wrapper.svelte +68 -0
  239. package/dist/components/widgets/board/gpio-read-wrapper.svelte.d.ts +9 -0
  240. package/dist/components/widgets/board/gpio-read.svelte +134 -0
  241. package/dist/components/widgets/board/gpio-read.svelte.d.ts +11 -0
  242. package/dist/components/widgets/board/gpio-write-wrapper.svelte +55 -0
  243. package/dist/components/widgets/board/gpio-write-wrapper.svelte.d.ts +9 -0
  244. package/dist/components/widgets/board/gpio-write.svelte +106 -0
  245. package/dist/components/widgets/board/gpio-write.svelte.d.ts +8 -0
  246. package/dist/components/widgets/board/pin-section.svelte +28 -0
  247. package/dist/components/widgets/board/pin-section.svelte.d.ts +9 -0
  248. package/dist/components/widgets/board/pin-selector.svelte +69 -0
  249. package/dist/components/widgets/board/pin-selector.svelte.d.ts +8 -0
  250. package/dist/components/widgets/board/read-write-pins-widget.svelte +15 -0
  251. package/dist/components/widgets/board/read-write-pins-widget.svelte.d.ts +7 -0
  252. package/dist/components/widgets/board/read-write-pins.svelte +72 -0
  253. package/dist/components/widgets/board/read-write-pins.svelte.d.ts +7 -0
  254. package/dist/components/widgets/button/button.svelte +23 -0
  255. package/dist/components/widgets/button/button.svelte.d.ts +7 -0
  256. package/dist/components/widgets/button/push.svelte +32 -0
  257. package/dist/components/widgets/button/push.svelte.d.ts +7 -0
  258. package/dist/components/widgets/camera/camera.svelte +202 -0
  259. package/dist/components/widgets/camera/camera.svelte.d.ts +7 -0
  260. package/dist/components/widgets/camera/export-screenshot.svelte +68 -0
  261. package/dist/components/widgets/camera/export-screenshot.svelte.d.ts +9 -0
  262. package/dist/components/widgets/camera/live-or-polling-video.svelte +419 -0
  263. package/dist/components/widgets/camera/live-or-polling-video.svelte.d.ts +18 -0
  264. package/dist/components/widgets/camera/picture-in-picture-button.svelte +81 -0
  265. package/dist/components/widgets/camera/picture-in-picture-button.svelte.d.ts +9 -0
  266. package/dist/components/widgets/discovery/component-preview.d.ts +9 -0
  267. package/dist/components/widgets/discovery/component-preview.js +1 -0
  268. package/dist/components/widgets/discovery/discovery.svelte +155 -0
  269. package/dist/components/widgets/discovery/discovery.svelte.d.ts +13 -0
  270. package/dist/components/widgets/discovery/resources-list.svelte +109 -0
  271. package/dist/components/widgets/discovery/resources-list.svelte.d.ts +13 -0
  272. package/dist/components/widgets/discovery/transform-component-config.d.ts +17 -0
  273. package/dist/components/widgets/discovery/transform-component-config.js +32 -0
  274. package/dist/components/widgets/do-command/do-command.svelte +101 -0
  275. package/dist/components/widgets/do-command/do-command.svelte.d.ts +8 -0
  276. package/dist/components/widgets/encoder/encoder.svelte +117 -0
  277. package/dist/components/widgets/encoder/encoder.svelte.d.ts +7 -0
  278. package/dist/components/widgets/encoder/position.svelte +26 -0
  279. package/dist/components/widgets/encoder/position.svelte.d.ts +8 -0
  280. package/dist/components/widgets/gantry/gantry.svelte +135 -0
  281. package/dist/components/widgets/gantry/gantry.svelte.d.ts +7 -0
  282. package/dist/components/widgets/gantry/home.svelte +33 -0
  283. package/dist/components/widgets/gantry/home.svelte.d.ts +7 -0
  284. package/dist/components/widgets/gantry/match-array-length.d.ts +1 -0
  285. package/dist/components/widgets/gantry/match-array-length.js +13 -0
  286. package/dist/components/widgets/gantry/move-to-position-widget.svelte +43 -0
  287. package/dist/components/widgets/gantry/move-to-position-widget.svelte.d.ts +7 -0
  288. package/dist/components/widgets/gantry/move-to-position.svelte +121 -0
  289. package/dist/components/widgets/gantry/move-to-position.svelte.d.ts +8 -0
  290. package/dist/components/widgets/gantry/position-and-lengths.svelte +32 -0
  291. package/dist/components/widgets/gantry/position-and-lengths.svelte.d.ts +7 -0
  292. package/dist/components/widgets/gantry/quick-move-widget.svelte +47 -0
  293. package/dist/components/widgets/gantry/quick-move-widget.svelte.d.ts +7 -0
  294. package/dist/components/widgets/gantry/quick-move.svelte +69 -0
  295. package/dist/components/widgets/gantry/quick-move.svelte.d.ts +8 -0
  296. package/dist/components/widgets/generic/generic.svelte +31 -0
  297. package/dist/components/widgets/generic/generic.svelte.d.ts +8 -0
  298. package/dist/components/widgets/gripper/closed-gripper-svg.svelte +13 -0
  299. package/dist/components/widgets/gripper/closed-gripper-svg.svelte.d.ts +26 -0
  300. package/dist/components/widgets/gripper/grab.svelte +37 -0
  301. package/dist/components/widgets/gripper/grab.svelte.d.ts +7 -0
  302. package/dist/components/widgets/gripper/gripper.svelte +69 -0
  303. package/dist/components/widgets/gripper/gripper.svelte.d.ts +7 -0
  304. package/dist/components/widgets/gripper/open-gripper-svg.svelte +13 -0
  305. package/dist/components/widgets/gripper/open-gripper-svg.svelte.d.ts +26 -0
  306. package/dist/components/widgets/gripper/open.svelte +37 -0
  307. package/dist/components/widgets/gripper/open.svelte.d.ts +7 -0
  308. package/dist/components/widgets/input-controller/input-controller.svelte +74 -0
  309. package/dist/components/widgets/input-controller/input-controller.svelte.d.ts +7 -0
  310. package/dist/components/widgets/input-controller/standard-gamepad-event.d.ts +8 -0
  311. package/dist/components/widgets/input-controller/standard-gamepad-event.js +1 -0
  312. package/dist/components/widgets/input-controller/webgamepad-scene.svelte +22 -0
  313. package/dist/components/widgets/input-controller/webgamepad-scene.svelte.d.ts +8 -0
  314. package/dist/components/widgets/input-controller/webgamepad.svelte +142 -0
  315. package/dist/components/widgets/input-controller/webgamepad.svelte.d.ts +8 -0
  316. package/dist/components/widgets/ml-model-service/ml-model-service.svelte +65 -0
  317. package/dist/components/widgets/ml-model-service/ml-model-service.svelte.d.ts +7 -0
  318. package/dist/components/widgets/ml-model-service/results-table.svelte +49 -0
  319. package/dist/components/widgets/ml-model-service/results-table.svelte.d.ts +7 -0
  320. package/dist/components/widgets/ml-model-service/tensor-row.svelte +33 -0
  321. package/dist/components/widgets/ml-model-service/tensor-row.svelte.d.ts +9 -0
  322. package/dist/components/widgets/motor/go-for-view.svelte +31 -0
  323. package/dist/components/widgets/motor/go-for-view.svelte.d.ts +7 -0
  324. package/dist/components/widgets/motor/go-for.svelte +79 -0
  325. package/dist/components/widgets/motor/go-for.svelte.d.ts +6 -0
  326. package/dist/components/widgets/motor/go-to-view.svelte +31 -0
  327. package/dist/components/widgets/motor/go-to-view.svelte.d.ts +7 -0
  328. package/dist/components/widgets/motor/go-to.svelte +78 -0
  329. package/dist/components/widgets/motor/go-to.svelte.d.ts +6 -0
  330. package/dist/components/widgets/motor/motor.svelte +179 -0
  331. package/dist/components/widgets/motor/motor.svelte.d.ts +7 -0
  332. package/dist/components/widgets/motor/quick-move-widget.svelte +31 -0
  333. package/dist/components/widgets/motor/quick-move-widget.svelte.d.ts +7 -0
  334. package/dist/components/widgets/motor/quick-move.svelte +81 -0
  335. package/dist/components/widgets/motor/quick-move.svelte.d.ts +6 -0
  336. package/dist/components/widgets/motor/set-power-widget.svelte +29 -0
  337. package/dist/components/widgets/motor/set-power-widget.svelte.d.ts +7 -0
  338. package/dist/components/widgets/motor/set-power.svelte +54 -0
  339. package/dist/components/widgets/motor/set-power.svelte.d.ts +6 -0
  340. package/dist/components/widgets/motor/set-rpm-widget.svelte +29 -0
  341. package/dist/components/widgets/motor/set-rpm-widget.svelte.d.ts +7 -0
  342. package/dist/components/widgets/motor/set-rpm.svelte +52 -0
  343. package/dist/components/widgets/motor/set-rpm.svelte.d.ts +6 -0
  344. package/dist/components/widgets/movement-sensor/accuracy.svelte +71 -0
  345. package/dist/components/widgets/movement-sensor/accuracy.svelte.d.ts +7 -0
  346. package/dist/components/widgets/movement-sensor/compass-heading.svelte +44 -0
  347. package/dist/components/widgets/movement-sensor/compass-heading.svelte.d.ts +6 -0
  348. package/dist/components/widgets/movement-sensor/map.svelte +61 -0
  349. package/dist/components/widgets/movement-sensor/map.svelte.d.ts +8 -0
  350. package/dist/components/widgets/movement-sensor/movement-sensor.svelte +255 -0
  351. package/dist/components/widgets/movement-sensor/movement-sensor.svelte.d.ts +7 -0
  352. package/dist/components/widgets/movement-sensor/orientation.svelte +43 -0
  353. package/dist/components/widgets/movement-sensor/orientation.svelte.d.ts +7 -0
  354. package/dist/components/widgets/movement-sensor/position.svelte +32 -0
  355. package/dist/components/widgets/movement-sensor/position.svelte.d.ts +7 -0
  356. package/dist/components/widgets/movement-sensor/safe-read-coordinate.d.ts +1 -0
  357. package/dist/components/widgets/movement-sensor/safe-read-coordinate.js +6 -0
  358. package/dist/components/widgets/movement-sensor/vector3.svelte +36 -0
  359. package/dist/components/widgets/movement-sensor/vector3.svelte.d.ts +7 -0
  360. package/dist/components/widgets/navigation/directional-marker.svelte +26 -0
  361. package/dist/components/widgets/navigation/directional-marker.svelte.d.ts +8 -0
  362. package/dist/components/widgets/navigation/navigation.svelte +236 -0
  363. package/dist/components/widgets/navigation/navigation.svelte.d.ts +7 -0
  364. package/dist/components/widgets/navigation/obstacles/__tests__/__fixtures__/obstacles.d.ts +2 -0
  365. package/dist/components/widgets/navigation/obstacles/__tests__/__fixtures__/obstacles.js +56 -0
  366. package/dist/components/widgets/navigation/obstacles/color.d.ts +1 -0
  367. package/dist/components/widgets/navigation/obstacles/color.js +10 -0
  368. package/dist/components/widgets/navigation/obstacles/legend.svelte +117 -0
  369. package/dist/components/widgets/navigation/obstacles/legend.svelte.d.ts +12 -0
  370. package/dist/components/widgets/navigation/obstacles/meshes.svelte +104 -0
  371. package/dist/components/widgets/navigation/obstacles/meshes.svelte.d.ts +10 -0
  372. package/dist/components/widgets/navigation/obstacles/obstacles.svelte +30 -0
  373. package/dist/components/widgets/navigation/obstacles/obstacles.svelte.d.ts +10 -0
  374. package/dist/components/widgets/navigation/obstacles/scene.svelte +59 -0
  375. package/dist/components/widgets/navigation/obstacles/scene.svelte.d.ts +7 -0
  376. package/dist/components/widgets/navigation/waypoints/__tests__/__fixtures__/waypoints.d.ts +7 -0
  377. package/dist/components/widgets/navigation/waypoints/__tests__/__fixtures__/waypoints.js +23 -0
  378. package/dist/components/widgets/navigation/waypoints/legend.svelte +67 -0
  379. package/dist/components/widgets/navigation/waypoints/legend.svelte.d.ts +13 -0
  380. package/dist/components/widgets/navigation/waypoints/waypoints.svelte +34 -0
  381. package/dist/components/widgets/navigation/waypoints/waypoints.svelte.d.ts +11 -0
  382. package/dist/components/widgets/operations-and-sessions/operations-and-sessions.svelte +115 -0
  383. package/dist/components/widgets/operations-and-sessions/operations-and-sessions.svelte.d.ts +6 -0
  384. package/dist/components/widgets/operations-and-sessions/operations-table.svelte +82 -0
  385. package/dist/components/widgets/operations-and-sessions/operations-table.svelte.d.ts +8 -0
  386. package/dist/components/widgets/operations-and-sessions/rtt-pill.svelte +26 -0
  387. package/dist/components/widgets/operations-and-sessions/rtt-pill.svelte.d.ts +6 -0
  388. package/dist/components/widgets/operations-and-sessions/sessions-table.svelte +78 -0
  389. package/dist/components/widgets/operations-and-sessions/sessions-table.svelte.d.ts +8 -0
  390. package/dist/components/widgets/pcd/__tests__/__fixtures__/pcd.d.ts +1 -0
  391. package/dist/components/widgets/pcd/__tests__/__fixtures__/pcd.js +12 -0
  392. package/dist/components/widgets/pcd/download.svelte +25 -0
  393. package/dist/components/widgets/pcd/download.svelte.d.ts +6 -0
  394. package/dist/components/widgets/pcd/inputs.svelte +70 -0
  395. package/dist/components/widgets/pcd/inputs.svelte.d.ts +11 -0
  396. package/dist/components/widgets/pcd/pcd-widget.svelte +45 -0
  397. package/dist/components/widgets/pcd/pcd-widget.svelte.d.ts +6 -0
  398. package/dist/components/widgets/pcd/point-label.svelte +76 -0
  399. package/dist/components/widgets/pcd/point-label.svelte.d.ts +7 -0
  400. package/dist/components/widgets/pcd/points.svelte +35 -0
  401. package/dist/components/widgets/pcd/points.svelte.d.ts +7 -0
  402. package/dist/components/widgets/pcd/scene.svelte +62 -0
  403. package/dist/components/widgets/pcd/scene.svelte.d.ts +9 -0
  404. package/dist/components/widgets/power-sensor/current-reading.svelte +18 -0
  405. package/dist/components/widgets/power-sensor/current-reading.svelte.d.ts +6 -0
  406. package/dist/components/widgets/power-sensor/power-reading.svelte +14 -0
  407. package/dist/components/widgets/power-sensor/power-reading.svelte.d.ts +6 -0
  408. package/dist/components/widgets/power-sensor/power-sensor.svelte +134 -0
  409. package/dist/components/widgets/power-sensor/power-sensor.svelte.d.ts +7 -0
  410. package/dist/components/widgets/power-sensor/voltage-reading.svelte +18 -0
  411. package/dist/components/widgets/power-sensor/voltage-reading.svelte.d.ts +6 -0
  412. package/dist/components/widgets/sensor/sensor.svelte +59 -0
  413. package/dist/components/widgets/sensor/sensor.svelte.d.ts +7 -0
  414. package/dist/components/widgets/servo/move-widget.svelte +44 -0
  415. package/dist/components/widgets/servo/move-widget.svelte.d.ts +7 -0
  416. package/dist/components/widgets/servo/move.svelte +102 -0
  417. package/dist/components/widgets/servo/move.svelte.d.ts +8 -0
  418. package/dist/components/widgets/servo/quick-move-widget.svelte +44 -0
  419. package/dist/components/widgets/servo/quick-move-widget.svelte.d.ts +7 -0
  420. package/dist/components/widgets/servo/quick-move.svelte +34 -0
  421. package/dist/components/widgets/servo/quick-move.svelte.d.ts +8 -0
  422. package/dist/components/widgets/servo/servo.svelte +111 -0
  423. package/dist/components/widgets/servo/servo.svelte.d.ts +7 -0
  424. package/dist/components/widgets/slam/__fixtures__/position.d.ts +3 -0
  425. package/dist/components/widgets/slam/__fixtures__/position.js +13 -0
  426. package/dist/components/widgets/slam/move-on-map.svelte +101 -0
  427. package/dist/components/widgets/slam/move-on-map.svelte.d.ts +11 -0
  428. package/dist/components/widgets/slam/pose.d.ts +2 -0
  429. package/dist/components/widgets/slam/pose.js +1 -0
  430. package/dist/components/widgets/slam/position.svelte +77 -0
  431. package/dist/components/widgets/slam/position.svelte.d.ts +7 -0
  432. package/dist/components/widgets/slam/slam.svelte +267 -0
  433. package/dist/components/widgets/slam/slam.svelte.d.ts +7 -0
  434. package/dist/components/widgets/switch/position-view.svelte +59 -0
  435. package/dist/components/widgets/switch/position-view.svelte.d.ts +7 -0
  436. package/dist/components/widgets/switch/position.svelte +43 -0
  437. package/dist/components/widgets/switch/position.svelte.d.ts +10 -0
  438. package/dist/components/widgets/switch/switch.svelte +62 -0
  439. package/dist/components/widgets/switch/switch.svelte.d.ts +7 -0
  440. package/dist/components/widgets/vision-service/__tests__/__fixtures__/classifications.d.ts +10 -0
  441. package/dist/components/widgets/vision-service/__tests__/__fixtures__/classifications.js +5 -0
  442. package/dist/components/widgets/vision-service/__tests__/__fixtures__/detections.d.ts +2 -0
  443. package/dist/components/widgets/vision-service/__tests__/__fixtures__/detections.js +9 -0
  444. package/dist/components/widgets/vision-service/color.d.ts +7 -0
  445. package/dist/components/widgets/vision-service/color.js +53 -0
  446. package/dist/components/widgets/vision-service/context.svelte.d.ts +24 -0
  447. package/dist/components/widgets/vision-service/context.svelte.js +50 -0
  448. package/dist/components/widgets/vision-service/detection.svelte +101 -0
  449. package/dist/components/widgets/vision-service/detection.svelte.d.ts +8 -0
  450. package/dist/components/widgets/vision-service/geometry-details.svelte +116 -0
  451. package/dist/components/widgets/vision-service/geometry-details.svelte.d.ts +7 -0
  452. package/dist/components/widgets/vision-service/get-image-size.d.ts +14 -0
  453. package/dist/components/widgets/vision-service/get-image-size.js +28 -0
  454. package/dist/components/widgets/vision-service/image.svelte +133 -0
  455. package/dist/components/widgets/vision-service/image.svelte.d.ts +15 -0
  456. package/dist/components/widgets/vision-service/legend.svelte +135 -0
  457. package/dist/components/widgets/vision-service/legend.svelte.d.ts +9 -0
  458. package/dist/components/widgets/vision-service/object-point-cloud-scene.svelte +74 -0
  459. package/dist/components/widgets/vision-service/object-point-cloud-scene.svelte.d.ts +7 -0
  460. package/dist/components/widgets/vision-service/object-point-clouds.svelte +91 -0
  461. package/dist/components/widgets/vision-service/object-point-clouds.svelte.d.ts +7 -0
  462. package/dist/components/widgets/vision-service/scene.svelte +50 -0
  463. package/dist/components/widgets/vision-service/scene.svelte.d.ts +7 -0
  464. package/dist/components/widgets/vision-service/vision-service.svelte +225 -0
  465. package/dist/components/widgets/vision-service/vision-service.svelte.d.ts +7 -0
  466. package/dist/event-handlers.d.ts +1 -0
  467. package/dist/event-handlers.js +5 -0
  468. package/dist/format.d.ts +13 -0
  469. package/dist/format.js +31 -0
  470. package/dist/fps.svelte.d.ts +4 -0
  471. package/dist/fps.svelte.js +22 -0
  472. package/dist/index.d.ts +2 -0
  473. package/dist/index.js +2 -0
  474. package/dist/resource.js +26 -0
  475. package/dist/scroll-into-view.d.ts +2 -0
  476. package/dist/scroll-into-view.js +17 -0
  477. package/dist/sort.d.ts +21 -0
  478. package/dist/sort.js +31 -0
  479. package/package.json +117 -0
@@ -0,0 +1,15 @@
1
+ interface Props {
2
+ path: Float32Array | undefined;
3
+ }
4
+ /**
5
+ * Renders a motion plan using thick lines.
6
+ *
7
+ * Assumes the motion plan is coming in as a Float32Array in the following format:
8
+ * Float32Array([x1, y1, x2, y2, x3, y3, ...])
9
+ *
10
+ * Units are assumed to be in Meters.
11
+ * Must not contain NaN.
12
+ */
13
+ declare const MotionPath: import("svelte").Component<Props, {}, "">;
14
+ type MotionPath = ReturnType<typeof MotionPath>;
15
+ export default MotionPath;
@@ -0,0 +1,60 @@
1
+ <!--
2
+ @component
3
+ Renders Points from a .pcd file.
4
+ Creates an invisible plane mesh with dimensions matching the diameter of
5
+ the points' bounding sphere.
6
+ Emits click events that intersect this plane.
7
+ -->
8
+ <script lang="ts">
9
+ import { T } from '@threlte/core'
10
+ import { BufferAttribute } from 'three'
11
+ import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader.js'
12
+
13
+ import { mapColorAttributeGrayscale } from './color-map'
14
+ import { renderOrder } from './render-order'
15
+
16
+ interface Props {
17
+ /** A buffer representing a .pcd file */
18
+ pointcloud: Uint8Array
19
+ /** The size of each individual point */
20
+ size: number
21
+ /** Dispatched whenever a new .pcd file is parsed. Emits the radius and center of the cloud's bounding sphere. */
22
+ onUpdate: (payload: { radius: number; center: { x: number; y: number } }) => void
23
+ }
24
+
25
+ const { pointcloud, size, onUpdate }: Props = $props()
26
+
27
+ const loader = new PCDLoader()
28
+
29
+ const points = $derived(loader.parse(pointcloud.buffer as ArrayBuffer))
30
+ </script>
31
+
32
+ {#if points}
33
+ <T
34
+ is={points}
35
+ renderOrder={renderOrder.points}
36
+ frustumCulled={false}
37
+ oncreate={(ref) => {
38
+ const { color } = ref.geometry.attributes
39
+
40
+ if (color instanceof BufferAttribute) {
41
+ mapColorAttributeGrayscale(color)
42
+ }
43
+
44
+ ref.geometry.computeBoundingSphere()
45
+ const { boundingSphere } = ref.geometry
46
+
47
+ if (boundingSphere !== null) {
48
+ const radius = boundingSphere.radius
49
+ const center = boundingSphere.center
50
+ onUpdate({ center, radius })
51
+ }
52
+ }}
53
+ >
54
+ <T
55
+ is={points.material}
56
+ {size}
57
+ sizeAttenuation={false}
58
+ />
59
+ </T>
60
+ {/if}
@@ -0,0 +1,23 @@
1
+ interface Props {
2
+ /** A buffer representing a .pcd file */
3
+ pointcloud: Uint8Array;
4
+ /** The size of each individual point */
5
+ size: number;
6
+ /** Dispatched whenever a new .pcd file is parsed. Emits the radius and center of the cloud's bounding sphere. */
7
+ onUpdate: (payload: {
8
+ radius: number;
9
+ center: {
10
+ x: number;
11
+ y: number;
12
+ };
13
+ }) => void;
14
+ }
15
+ /**
16
+ * Renders Points from a .pcd file.
17
+ * Creates an invisible plane mesh with dimensions matching the diameter of
18
+ * the points' bounding sphere.
19
+ * Emits click events that intersect this plane.
20
+ */
21
+ declare const Points: import("svelte").Component<Props, {}, "">;
22
+ type Points = ReturnType<typeof Points>;
23
+ export default Points;
@@ -0,0 +1,7 @@
1
+ export declare const renderOrder: {
2
+ readonly grid: 0;
3
+ readonly axes: 1;
4
+ readonly points: 2;
5
+ readonly motionPath: 3;
6
+ readonly markers: 4;
7
+ };
@@ -0,0 +1,7 @@
1
+ export const renderOrder = {
2
+ grid: 0,
3
+ axes: 1,
4
+ points: 2,
5
+ motionPath: 3,
6
+ markers: 4,
7
+ };
@@ -0,0 +1,130 @@
1
+ <script lang="ts">
2
+ import { T, useThrelte } from '@threlte/core'
3
+ import { MathUtils, OrthographicCamera, type Vector2, Vector3 } from 'three'
4
+ import { MapControls } from 'three/examples/jsm/controls/MapControls.js'
5
+
6
+ import BaseMarker from './base-marker.txt?raw'
7
+ import DestMarker from './destination-marker.txt?raw'
8
+ import Helpers from './helpers.svelte'
9
+ import { useRaycastClick } from './hooks/use-raycast-click'
10
+ import Marker from './marker.svelte'
11
+ import MotionPath from './motion-path.svelte'
12
+ import Points from './points.svelte'
13
+
14
+ interface Props {
15
+ helpers: boolean
16
+ pointcloud: Uint8Array | undefined
17
+ basePose?: { x: number; y: number; theta: number } | undefined
18
+ destination: Vector2 | undefined
19
+ motionPath?: Float32Array | undefined
20
+ onClick: (value: Vector3) => void
21
+ }
22
+
23
+ const {
24
+ helpers,
25
+ pointcloud,
26
+ basePose = undefined,
27
+ destination,
28
+ motionPath = undefined,
29
+ onClick,
30
+ }: Props = $props()
31
+
32
+ useRaycastClick((vec3) => onClick(vec3))
33
+
34
+ const { renderer, invalidate, dom } = useThrelte()
35
+
36
+ const baseSpriteSize = 15.5
37
+ const defaultPointSize = 0.03
38
+
39
+ const camera = new OrthographicCamera()
40
+ camera.zoom = 10
41
+
42
+ const controls = new MapControls(camera, dom)
43
+
44
+ let userControlling = $state(false)
45
+ let zoom = $state(camera.zoom)
46
+
47
+ const handleControlsChange = () => {
48
+ invalidate()
49
+ zoom = camera.zoom
50
+ }
51
+
52
+ interface UpdateEvent {
53
+ radius: number
54
+ center: { x: number; y: number }
55
+ }
56
+
57
+ const handlePointsUpdate = ({ center, radius }: UpdateEvent) => {
58
+ if (!userControlling) {
59
+ camera.position.set(center.x, center.y, 1)
60
+ camera.lookAt(center.x, center.y, 0)
61
+ controls.target.set(center.x, center.y, 0)
62
+
63
+ const viewHeight = 1
64
+ const viewWidth = viewHeight * 2
65
+ const aspect = renderer.domElement.clientHeight / renderer.domElement.clientWidth
66
+ const aspectInverse = 0.008
67
+
68
+ camera.zoom =
69
+ aspect > 1 ? viewHeight / (radius * aspectInverse) : viewWidth / (radius * aspectInverse)
70
+ camera.updateProjectionMatrix()
71
+
72
+ zoom = camera.zoom
73
+ }
74
+ }
75
+
76
+ const markerScale = $derived(baseSpriteSize / zoom)
77
+ </script>
78
+
79
+ <T
80
+ is={camera}
81
+ makeDefault
82
+ near={0.1}
83
+ far={2}
84
+ zoom={10}
85
+ >
86
+ <T
87
+ is={controls}
88
+ enableRotate={false}
89
+ screenSpacePanning={true}
90
+ onchange={handleControlsChange}
91
+ onstart={() => (userControlling = true)}
92
+ />
93
+ </T>
94
+
95
+ {#if helpers}
96
+ <Helpers />
97
+ {/if}
98
+
99
+ {#if pointcloud}
100
+ <Points
101
+ {pointcloud}
102
+ size={zoom * defaultPointSize * window.devicePixelRatio}
103
+ onUpdate={handlePointsUpdate}
104
+ />
105
+ {/if}
106
+
107
+ <Marker
108
+ name="Base marker"
109
+ url={BaseMarker}
110
+ visible={basePose !== undefined}
111
+ position.x={basePose?.x}
112
+ position.y={basePose?.y}
113
+ scale.x={markerScale}
114
+ scale.y={markerScale}
115
+ rotation={MathUtils.degToRad((basePose?.theta ?? 0) - 90)}
116
+ />
117
+
118
+ <Marker
119
+ name="Destination marker"
120
+ visible={destination !== undefined}
121
+ url={DestMarker}
122
+ position.x={destination?.x}
123
+ position.y={destination?.y}
124
+ scale.x={markerScale}
125
+ scale.y={markerScale}
126
+ center.x={0.5}
127
+ center.y={0.05}
128
+ />
129
+
130
+ <MotionPath path={motionPath} />
@@ -0,0 +1,16 @@
1
+ import { type Vector2, Vector3 } from 'three';
2
+ interface Props {
3
+ helpers: boolean;
4
+ pointcloud: Uint8Array | undefined;
5
+ basePose?: {
6
+ x: number;
7
+ y: number;
8
+ theta: number;
9
+ } | undefined;
10
+ destination: Vector2 | undefined;
11
+ motionPath?: Float32Array | undefined;
12
+ onClick: (value: Vector3) => void;
13
+ }
14
+ declare const Scene: import("svelte").Component<Props, {}, "">;
15
+ type Scene = ReturnType<typeof Scene>;
16
+ export default Scene;
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import { Pill } from '@viamrobotics/prime-core'
3
+
4
+ interface Props {
5
+ isActive: boolean
6
+ activeText?: string
7
+ inactiveText?: string
8
+ }
9
+
10
+ const { isActive, activeText = 'Moving...', inactiveText = 'Idle' }: Props = $props()
11
+ </script>
12
+
13
+ {#if isActive}
14
+ <Pill
15
+ cx="h-[20px] rounded-full border border-[#B9DCBC] bg-[#E0FAE3]! px-2.5 text-[#3D7D3F]"
16
+ removable={false}
17
+ value={activeText}
18
+ />
19
+ {:else}
20
+ <Pill
21
+ cx="border-medium h-[20px] rounded-full border px-2.5"
22
+ removable={false}
23
+ value={inactiveText}
24
+ />
25
+ {/if}
@@ -0,0 +1,8 @@
1
+ interface Props {
2
+ isActive: boolean;
3
+ activeText?: string;
4
+ inactiveText?: string;
5
+ }
6
+ declare const StatusPill: import("svelte").Component<Props, {}, "">;
7
+ type StatusPill = ReturnType<typeof StatusPill>;
8
+ export default StatusPill;
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { Button } from '@viamrobotics/prime-core'
3
+
4
+ import ErrorDisplay from './error.svelte'
5
+
6
+ interface Props {
7
+ onStop: () => void
8
+ error: Error | null
9
+ }
10
+
11
+ const { error, onStop }: Props = $props()
12
+ </script>
13
+
14
+ <Button
15
+ variant="outline-danger"
16
+ class="font-roboto-mono w-fit uppercase"
17
+ onclick={onStop}
18
+ >
19
+ Stop
20
+ </Button>
21
+ <ErrorDisplay lastError={error} />
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ onStop: () => void;
3
+ error: Error | null;
4
+ }
5
+ declare const StopButton: import("svelte").Component<Props, {}, "">;
6
+ type StopButton = ReturnType<typeof StopButton>;
7
+ export default StopButton;
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import type {
3
+ Arm,
4
+ ArmClient,
5
+ Base,
6
+ BaseClient,
7
+ Gantry,
8
+ GantryClient,
9
+ Gripper,
10
+ GripperClient,
11
+ Motor,
12
+ MotorClient,
13
+ Servo,
14
+ ServoClient,
15
+ } from '@viamrobotics/sdk'
16
+
17
+ import { createResourceClient, createResourceMutation } from '@viamrobotics/svelte-sdk'
18
+
19
+ import StopButton from './stop-button.svelte'
20
+
21
+ interface Props {
22
+ partID: string
23
+ resourceName: string
24
+ client:
25
+ | typeof ArmClient
26
+ | typeof BaseClient
27
+ | typeof GantryClient
28
+ | typeof GripperClient
29
+ | typeof MotorClient
30
+ | typeof ServoClient
31
+ }
32
+
33
+ const { partID, resourceName, client: clientClass }: Props = $props()
34
+
35
+ const client = $derived(
36
+ createResourceClient<Arm | Base | Gantry | Gripper | Motor | Servo>(
37
+ clientClass,
38
+ () => partID,
39
+ () => resourceName
40
+ )
41
+ )
42
+
43
+ const stopMutation = $derived(createResourceMutation(client, 'stop'))
44
+ </script>
45
+
46
+ <StopButton
47
+ error={stopMutation.error}
48
+ onStop={() => {
49
+ stopMutation.mutate([])
50
+ }}
51
+ />
@@ -0,0 +1,9 @@
1
+ import type { ArmClient, BaseClient, GantryClient, GripperClient, MotorClient, ServoClient } from '@viamrobotics/sdk';
2
+ interface Props {
3
+ partID: string;
4
+ resourceName: string;
5
+ client: typeof ArmClient | typeof BaseClient | typeof GantryClient | typeof GripperClient | typeof MotorClient | typeof ServoClient;
6
+ }
7
+ declare const Stop: import("svelte").Component<Props, {}, "">;
8
+ type Stop = ReturnType<typeof Stop>;
9
+ export default Stop;
@@ -0,0 +1,46 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+
4
+ interface Props {
5
+ children?: Snippet
6
+ }
7
+
8
+ const { children }: Props = $props()
9
+ </script>
10
+
11
+ <table class="customTable">
12
+ {@render children?.()}
13
+ </table>
14
+
15
+ <style lang="postcss">
16
+ /*
17
+ NOTE(zp, 2024-06-10) Admittedly, this is a bit dangerous;
18
+ However, it does let us use standard html <table> tags like tr, th and tbody which has ergonomic advantages
19
+
20
+ If this is giving us trouble, please feel no hesitation about deleting this
21
+ */
22
+
23
+ /* (:global is a svelte directive specifically for this purpose with slots.)*/
24
+
25
+ @reference "../../app.css";
26
+
27
+ .customTable {
28
+ @apply w-full table-auto;
29
+ }
30
+ .customTable :global(thead) {
31
+ @apply border-light bg-light border;
32
+ }
33
+ .customTable :global(thead th) {
34
+ @apply border-light text-subtle-1 border px-2.5 py-1 text-xs font-normal whitespace-nowrap;
35
+ }
36
+ .customTable :global(thead th abbr) {
37
+ @apply text-disabled;
38
+ }
39
+
40
+ .customTable :global(tbody) {
41
+ @apply border-light border;
42
+ }
43
+ .customTable :global(tbody th) {
44
+ @apply border-light font-roboto-mono text-default h-10 gap-2 border px-1.5 text-center text-xs font-normal;
45
+ }
46
+ </style>
@@ -0,0 +1,7 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface Props {
3
+ children?: Snippet;
4
+ }
5
+ declare const Table: import("svelte").Component<Props, {}, "">;
6
+ type Table = ReturnType<typeof Table>;
7
+ export default Table;
@@ -0,0 +1,79 @@
1
+ <script lang="ts">
2
+ import { T } from '@threlte/core'
3
+ import { Color } from 'three'
4
+ import { Line2 } from 'three/examples/jsm/lines/Line2.js'
5
+ import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry.js'
6
+ import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js'
7
+
8
+ interface Props_1 {
9
+ length?: number
10
+ width?: number
11
+ axesColors?: [x: string, y: string, z: string]
12
+ depthTest?: boolean
13
+ [key: string]: unknown
14
+ }
15
+
16
+ const {
17
+ length = 1,
18
+ width = 1,
19
+ axesColors = ['red', 'green', 'blue'],
20
+ depthTest = true,
21
+ ...rest
22
+ }: Props_1 = $props()
23
+
24
+ const TOTAL_VERTICES = 9
25
+ const VERTEX_COMPONENTS = 3
26
+
27
+ const line = new Line2()
28
+ const material = $state(new LineMaterial())
29
+ const geometry = new LineGeometry()
30
+ const color = new Color()
31
+ const colors = $state(new Float32Array(TOTAL_VERTICES * VERTEX_COMPONENTS))
32
+ const positions = $state(new Float32Array(TOTAL_VERTICES * VERTEX_COMPONENTS))
33
+
34
+ $effect.pre(() => {
35
+ material.linewidth = width
36
+ })
37
+
38
+ // Assign colors per vertex
39
+ $effect.pre(() => {
40
+ for (const [index, axis] of axesColors.entries()) {
41
+ color.set(axis)
42
+
43
+ const axisBufferStart = index * TOTAL_VERTICES
44
+ const axisBufferEnd = axisBufferStart + TOTAL_VERTICES
45
+
46
+ for (let j = axisBufferStart; j < axisBufferEnd; j += VERTEX_COMPONENTS) {
47
+ colors[j + 0] = color.r
48
+ colors[j + 1] = color.g
49
+ colors[j + 2] = color.b
50
+ }
51
+ }
52
+
53
+ geometry.setColors(colors)
54
+ })
55
+
56
+ const X_AXIS_X_COMPONENT_INDEX = 3
57
+ const Y_AXIS_Y_COMPONENT_INDEX = 13
58
+ const Z_AXIS_Z_COMPONENT_INDEX = 23
59
+
60
+ $effect.pre(() => {
61
+ positions[X_AXIS_X_COMPONENT_INDEX] = length
62
+ positions[Y_AXIS_Y_COMPONENT_INDEX] = length
63
+ positions[Z_AXIS_Z_COMPONENT_INDEX] = length
64
+ geometry.setPositions(positions)
65
+ })
66
+ </script>
67
+
68
+ <T
69
+ is={line}
70
+ {...rest}
71
+ raycast={() => null}
72
+ >
73
+ <T is={geometry} />
74
+ <T
75
+ is={material}
76
+ vertexColors
77
+ {depthTest}
78
+ />
79
+ </T>
@@ -0,0 +1,10 @@
1
+ interface Props_1 {
2
+ length?: number;
3
+ width?: number;
4
+ axesColors?: [x: string, y: string, z: string];
5
+ depthTest?: boolean;
6
+ [key: string]: unknown;
7
+ }
8
+ declare const AxesHelper: import("svelte").Component<Props_1, {}, "">;
9
+ type AxesHelper = ReturnType<typeof AxesHelper>;
10
+ export default AxesHelper;
@@ -0,0 +1 @@
1
+ export { default as AxesHelper } from './axes-helper.svelte';
@@ -0,0 +1 @@
1
+ export { default as AxesHelper } from './axes-helper.svelte';
@@ -0,0 +1,132 @@
1
+ <script lang="ts">
2
+ import type { Pose } from '@viamrobotics/sdk'
3
+
4
+ import { ArmClient } from '@viamrobotics/sdk'
5
+ import {
6
+ createResourceClient,
7
+ createResourceMutation,
8
+ createResourceQuery,
9
+ } from '@viamrobotics/svelte-sdk'
10
+
11
+ import ApiSection from '../../api-section.svelte'
12
+ import ConnectionStatus from '../../connection-status.svelte'
13
+ import IsMoving from '../../is-moving.svelte'
14
+ import Query from '../../query.svelte'
15
+ import StopButton from '../../stop-button.svelte'
16
+
17
+ import GetJointPositions from './get-joint-positions.svelte'
18
+ import MoveToJointPositions from './move-to-joint-positions.svelte'
19
+ import MoveToPosition from './move-to-position.svelte'
20
+ import QuickMove from './quick-move.svelte'
21
+
22
+ interface Props {
23
+ partID: string
24
+ resourceName: string
25
+ }
26
+
27
+ const { partID, resourceName }: Props = $props()
28
+
29
+ const client = createResourceClient(
30
+ ArmClient,
31
+ () => partID,
32
+ () => resourceName
33
+ )
34
+
35
+ const options = { refetchInterval: 500 }
36
+ const jointPositionsQuery = createResourceQuery(client, 'getJointPositions', options)
37
+ const endPositionQuery = createResourceQuery(client, 'getEndPosition', options)
38
+
39
+ const moveToJointPosMutation = createResourceMutation(client, 'moveToJointPositions')
40
+ const quickMoveToJointPosMutation = createResourceMutation(client, 'moveToJointPositions')
41
+ const stopMutation = createResourceMutation(client, 'stop')
42
+ const moveToPosMutation = createResourceMutation(client, 'moveToPosition')
43
+
44
+ const moveToJointPositions = (jointPositionsList: number[]) => {
45
+ moveToJointPosMutation.mutate([jointPositionsList], {})
46
+ }
47
+
48
+ const quickMoveToJointPositions = (jointPositionsList: number[]) => {
49
+ quickMoveToJointPosMutation.mutate([jointPositionsList], {})
50
+ }
51
+
52
+ const moveToPosition = (position: Pose) => {
53
+ moveToPosMutation.mutate([position], {})
54
+ }
55
+ </script>
56
+
57
+ <ConnectionStatus {partID}>
58
+ {#snippet connected()}
59
+ <div class="flex flex-col gap-4 lg:flex-row lg:gap-0 lg:divide-x">
60
+ <!-- Main control sections -->
61
+ <div
62
+ class="flex flex-col gap-4 lg:grid lg:grow lg:grid-cols-2 lg:gap-0 lg:divide-x xl:grid-cols-4"
63
+ >
64
+ <ApiSection
65
+ title="GetJointPositions"
66
+ bottomText="Updates automatically"
67
+ >
68
+ <Query query={jointPositionsQuery}>
69
+ {#if jointPositionsQuery.data}
70
+ <GetJointPositions positions={jointPositionsQuery.data.values} />
71
+ {/if}
72
+ </Query>
73
+ </ApiSection>
74
+ <ApiSection title="MoveToJointPositions">
75
+ <Query query={jointPositionsQuery}>
76
+ {#if jointPositionsQuery.data}
77
+ <MoveToJointPositions
78
+ positions={jointPositionsQuery.data.values}
79
+ {moveToJointPositions}
80
+ lastError={moveToJointPosMutation.error}
81
+ />
82
+ {/if}
83
+ </Query>
84
+ </ApiSection>
85
+ <ApiSection title="MoveToPosition">
86
+ <Query query={endPositionQuery}>
87
+ {#if endPositionQuery.data}
88
+ <MoveToPosition
89
+ endPosition={endPositionQuery.data}
90
+ {moveToPosition}
91
+ lastError={moveToPosMutation.error}
92
+ />
93
+ {/if}
94
+ </Query>
95
+ </ApiSection>
96
+ <ApiSection
97
+ title="Quick move"
98
+ bottomText="Press a button to execute"
99
+ >
100
+ <Query query={jointPositionsQuery}>
101
+ {#if jointPositionsQuery.data}
102
+ <QuickMove
103
+ positions={jointPositionsQuery.data.values}
104
+ moveToJointPositions={quickMoveToJointPositions}
105
+ lastError={quickMoveToJointPosMutation.error}
106
+ />
107
+ {/if}
108
+ </Query>
109
+ </ApiSection>
110
+ </div>
111
+
112
+ <!-- Control actions sidebar -->
113
+ <div
114
+ class="flex flex-row gap-4 lg:ml-auto lg:w-full lg:max-w-40 lg:flex-col lg:gap-0 lg:divide-y"
115
+ >
116
+ <ApiSection title="Stop">
117
+ <StopButton
118
+ error={stopMutation.error}
119
+ onStop={() => {
120
+ stopMutation.mutate([], {})
121
+ }}
122
+ />
123
+ </ApiSection>
124
+ <IsMoving
125
+ client={ArmClient}
126
+ {partID}
127
+ {resourceName}
128
+ />
129
+ </div>
130
+ </div>
131
+ {/snippet}
132
+ </ConnectionStatus>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ partID: string;
3
+ resourceName: string;
4
+ }
5
+ declare const Arm: import("svelte").Component<Props, {}, "">;
6
+ type Arm = ReturnType<typeof Arm>;
7
+ export default Arm;