@viamrobotics/test-widgets 0.6.0 → 0.7.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.
- package/README.md +1 -1
- package/dist/api-docs-href.d.ts +8 -0
- package/dist/api-docs-href.js +17 -0
- package/dist/components/angle-unit-toggle.svelte +1 -4
- package/dist/components/api-section.svelte +21 -23
- package/dist/components/api-section.svelte.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/is-moving.svelte +3 -1
- package/dist/components/is-moving.svelte.d.ts +1 -0
- package/dist/components/mutation-section.svelte +19 -22
- package/dist/components/mutation-section.svelte.d.ts +2 -0
- package/dist/components/section-title.svelte +63 -0
- package/dist/components/section-title.svelte.d.ts +14 -0
- package/dist/components/widgets/arm/arm.svelte +17 -24
- package/dist/components/widgets/arm/joint-position-editor.svelte +89 -0
- package/dist/components/widgets/arm/joint-position-editor.svelte.d.ts +11 -0
- package/dist/components/widgets/arm/joint-position-quick-move.svelte +85 -0
- package/dist/components/widgets/arm/joint-position-quick-move.svelte.d.ts +9 -0
- package/dist/components/widgets/arm/joint-position-slider.svelte +36 -0
- package/dist/components/widgets/arm/joint-position-slider.svelte.d.ts +9 -0
- package/dist/components/widgets/arm/move-to-joint-positions.svelte +73 -127
- package/dist/components/widgets/arm/move-to-joint-positions.svelte.d.ts +1 -0
- package/dist/components/widgets/audio-input/audio-input.svelte +2 -0
- package/dist/components/widgets/audio-output/audio-output.svelte +2 -0
- package/dist/components/widgets/base/base.svelte +9 -1
- package/dist/components/widgets/camera/camera.svelte +184 -135
- package/dist/components/widgets/camera/get-pano-coverage-from-xmp.d.ts +31 -0
- package/dist/components/widgets/camera/get-pano-coverage-from-xmp.js +56 -0
- package/dist/components/widgets/camera/live-or-polling-video.svelte +1 -0
- package/dist/components/widgets/camera/live-three-sixty-camera-view.svelte +61 -0
- package/dist/components/widgets/camera/live-three-sixty-camera-view.svelte.d.ts +9 -0
- package/dist/components/widgets/camera/pano-sphere-scene.svelte +54 -0
- package/dist/components/widgets/camera/pano-sphere-scene.svelte.d.ts +10 -0
- package/dist/components/widgets/camera/three-sixty-camera-view.svelte +33 -43
- package/dist/components/widgets/camera/three-sixty-camera-view.svelte.d.ts +5 -3
- package/dist/components/widgets/discovery/discovery.svelte +1 -0
- package/dist/components/widgets/encoder/encoder.svelte +2 -0
- package/dist/components/widgets/gantry/gantry.svelte +28 -5
- package/dist/components/widgets/generic/generic.svelte +8 -1
- package/dist/components/widgets/gripper/gripper.svelte +11 -5
- package/dist/components/widgets/gripper/is-holding-something.svelte +1 -0
- package/dist/components/widgets/input-controller/input-controller.svelte +2 -1
- package/dist/components/widgets/motor/motor.svelte +11 -1
- package/dist/components/widgets/movement-sensor/movement-sensor.svelte +53 -26
- package/dist/components/widgets/power-sensor/power-sensor.svelte +4 -0
- package/dist/components/widgets/sensor/sensor.svelte +1 -0
- package/dist/components/widgets/servo/servo.svelte +10 -2
- package/dist/components/widgets/slam/move-on-map.svelte +4 -1
- package/dist/components/widgets/slam/slam.svelte +4 -1
- package/dist/components/widgets/vision-service/context.svelte.d.ts +1 -0
- package/dist/components/widgets/vision-service/context.svelte.js +7 -0
- package/dist/components/widgets/vision-service/detection-row.svelte +38 -0
- package/dist/components/widgets/vision-service/detection-row.svelte.d.ts +8 -0
- package/dist/components/widgets/vision-service/detection.svelte +7 -4
- package/dist/components/widgets/vision-service/legend.svelte +14 -11
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Detection } from './context.svelte.js'
|
|
3
|
+
|
|
4
|
+
import { useDetections } from './context.svelte.js'
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
detection: Detection
|
|
8
|
+
label: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { detection, label }: Props = $props()
|
|
12
|
+
|
|
13
|
+
const context = useDetections()
|
|
14
|
+
|
|
15
|
+
let node: HTMLElement | undefined
|
|
16
|
+
|
|
17
|
+
$effect(() => {
|
|
18
|
+
if (context.selected === detection.id && node) {
|
|
19
|
+
node.scrollIntoView({ block: 'nearest' })
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<button
|
|
25
|
+
bind:this={node}
|
|
26
|
+
class={[
|
|
27
|
+
'hover:bg-light w-full py-1 pl-11 text-left',
|
|
28
|
+
(context.hovered.has(detection.id) || context.selected === detection.id) && 'bg-light',
|
|
29
|
+
]}
|
|
30
|
+
onpointerenter={() => context.hovered.add(detection.id)}
|
|
31
|
+
onpointerleave={() => context.hovered.delete(detection.id)}
|
|
32
|
+
onclick={() => {
|
|
33
|
+
context.selected = context.selected === detection.id ? null : detection.id
|
|
34
|
+
}}
|
|
35
|
+
>
|
|
36
|
+
{label}
|
|
37
|
+
<span class="text-subtle-2 pl-1">{detection.confidence}%</span>
|
|
38
|
+
</button>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Detection } from './context.svelte.ts';
|
|
2
|
+
interface Props {
|
|
3
|
+
detection: Detection;
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
declare const DetectionRow: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type DetectionRow = ReturnType<typeof DetectionRow>;
|
|
8
|
+
export default DetectionRow;
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
let hovering = $state(false)
|
|
25
25
|
|
|
26
|
+
const isSelected = $derived(context.selected === detection.id)
|
|
27
|
+
const isActive = $derived(isSelected || context.hovered.has(detection.id))
|
|
28
|
+
|
|
26
29
|
// These are ballparking, but seem good enough for nearly all cases
|
|
27
30
|
const isDetectionNearTop = $derived(factoredyMin < 30)
|
|
28
31
|
const isDetectionNearRight = $derived(factoredxMin > $size.width * 0.66)
|
|
@@ -32,10 +35,7 @@
|
|
|
32
35
|
positionType="absolute"
|
|
33
36
|
positionLeft={factoredxMin}
|
|
34
37
|
positionTop={factoredyMin}
|
|
35
|
-
borderColor=
|
|
36
|
-
hover={{
|
|
37
|
-
borderColor: detection.color,
|
|
38
|
-
}}
|
|
38
|
+
borderColor={isActive ? detection.color : '#aaa'}
|
|
39
39
|
borderWidth={2}
|
|
40
40
|
width={factoredxMax - factoredxMin}
|
|
41
41
|
height={factoredyMax - factoredyMin}
|
|
@@ -47,6 +47,9 @@
|
|
|
47
47
|
context.hovered.delete(detection.id)
|
|
48
48
|
hovering = false
|
|
49
49
|
}}
|
|
50
|
+
onclick={() => {
|
|
51
|
+
context.selected = context.selected === detection.id ? null : detection.id
|
|
52
|
+
}}
|
|
50
53
|
>
|
|
51
54
|
{#if hovering}
|
|
52
55
|
<Text
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { SvelteSet } from 'svelte/reactivity'
|
|
6
6
|
|
|
7
7
|
import { useDetections } from './context.svelte'
|
|
8
|
+
import DetectionRow from './detection-row.svelte'
|
|
8
9
|
|
|
9
10
|
interface Props {
|
|
10
11
|
classifications?: Classification[]
|
|
@@ -46,6 +47,16 @@
|
|
|
46
47
|
}
|
|
47
48
|
})
|
|
48
49
|
|
|
50
|
+
$effect.pre(() => {
|
|
51
|
+
if (context.selected === undefined) return
|
|
52
|
+
for (const [label, { detections }] of Object.entries(context.byLabel)) {
|
|
53
|
+
if (detections.some((d) => d.id === context.selected)) {
|
|
54
|
+
expandedLabels.add(label)
|
|
55
|
+
break
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
|
|
49
60
|
const compareConfidence = (a: Classification, b: Classification) => {
|
|
50
61
|
return b.confidence - a.confidence
|
|
51
62
|
}
|
|
@@ -113,18 +124,10 @@
|
|
|
113
124
|
<ul>
|
|
114
125
|
{#each detections as detection (detection.id)}
|
|
115
126
|
<li>
|
|
116
|
-
<
|
|
117
|
-
|
|
118
|
-
detection.id
|
|
119
|
-
)
|
|
120
|
-
? 'bg-light'
|
|
121
|
-
: ''}"
|
|
122
|
-
onpointerenter={() => context.hovered.add(detection.id)}
|
|
123
|
-
onpointerleave={() => context.hovered.delete(detection.id)}
|
|
124
|
-
>
|
|
127
|
+
<DetectionRow
|
|
128
|
+
{detection}
|
|
125
129
|
{label}
|
|
126
|
-
|
|
127
|
-
</button>
|
|
130
|
+
/>
|
|
128
131
|
</li>
|
|
129
132
|
{/each}
|
|
130
133
|
</ul>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { createAddImageToDatasetContext, type ImageData, useAddImageToDataset, } from './add-image-to-dataset';
|
|
2
|
+
export { apiDocsHref } from './api-docs-href';
|
|
2
3
|
export { clientForResource } from './client-map';
|
|
3
4
|
export * from './components';
|
|
4
5
|
export { getResourceAPI } from './get-resource-api';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { createAddImageToDatasetContext, useAddImageToDataset, } from './add-image-to-dataset';
|
|
2
|
+
export { apiDocsHref } from './api-docs-href';
|
|
2
3
|
export { clientForResource } from './client-map';
|
|
3
4
|
export * from './components';
|
|
4
5
|
export { getResourceAPI } from './get-resource-api';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viamrobotics/test-widgets",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"prettier-plugin-tailwindcss": "^0.7.4",
|
|
91
91
|
"publint": "^0.3.18",
|
|
92
92
|
"runed": "^0.37.1",
|
|
93
|
-
"svelte": "^5.
|
|
93
|
+
"svelte": "^5.56.3",
|
|
94
94
|
"svelte-check": "^4.4.6",
|
|
95
95
|
"svelte-splitpanes": "^8.0.12",
|
|
96
96
|
"tailwind-merge": "^3.5.0",
|
|
@@ -109,6 +109,9 @@
|
|
|
109
109
|
"engines": {
|
|
110
110
|
"node": ">=22.12.0"
|
|
111
111
|
},
|
|
112
|
+
"dependencies": {
|
|
113
|
+
"svelte-tweakpane-ui": "^1.5.17"
|
|
114
|
+
},
|
|
112
115
|
"scripts": {
|
|
113
116
|
"dev": "vite dev",
|
|
114
117
|
"build": "vite build && pnpm prepack",
|