Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Sync from huggingface/lerobot-dataset-visualizer via hub-sync
Browse files
src/app/globals.css
CHANGED
|
@@ -23,6 +23,11 @@
|
|
| 23 |
--accent-ring: rgba(56, 189, 248, 0.55);
|
| 24 |
|
| 25 |
--radius: 6px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
}
|
| 27 |
|
| 28 |
@theme inline {
|
|
|
|
| 23 |
--accent-ring: rgba(56, 189, 248, 0.55);
|
| 24 |
|
| 25 |
--radius: 6px;
|
| 26 |
+
|
| 27 |
+
/* Playback position, wherever it is drawn (chart cursor, annotation
|
| 28 |
+
timeline). Neutral, so it never reads as a series, a role or a flag. */
|
| 29 |
+
--playhead: #f1f5f9;
|
| 30 |
+
--playhead-glow: rgba(241, 245, 249, 0.45);
|
| 31 |
}
|
| 32 |
|
| 33 |
@theme inline {
|
src/components/annotations-panel.tsx
CHANGED
|
@@ -583,14 +583,14 @@ export const AnnotationsPanel: React.FC<Props> = ({ cameraKeys }) => {
|
|
| 583 |
<button
|
| 584 |
disabled={saving || !dirty}
|
| 585 |
onClick={handleSave}
|
| 586 |
-
className="text-xs h-7 px-3 rounded border border-cyan-
|
| 587 |
>
|
| 588 |
{saving ? "Saving…" : "Save episode"}
|
| 589 |
</button>
|
| 590 |
<button
|
| 591 |
disabled={!backendEnabled}
|
| 592 |
onClick={handleSaveDataset}
|
| 593 |
-
className="text-xs h-7 px-3 rounded border border-
|
| 594 |
>
|
| 595 |
Save dataset
|
| 596 |
</button>
|
|
|
|
| 583 |
<button
|
| 584 |
disabled={saving || !dirty}
|
| 585 |
onClick={handleSave}
|
| 586 |
+
className="text-xs h-7 px-3 rounded-md border border-cyan-400/30 bg-cyan-400/10 text-cyan-300 hover:bg-cyan-400/15 disabled:opacity-40"
|
| 587 |
>
|
| 588 |
{saving ? "Saving…" : "Save episode"}
|
| 589 |
</button>
|
| 590 |
<button
|
| 591 |
disabled={!backendEnabled}
|
| 592 |
onClick={handleSaveDataset}
|
| 593 |
+
className="text-xs h-7 px-3 rounded-md border border-white/10 bg-white/5 text-slate-300 hover:bg-white/10 hover:text-slate-100 disabled:opacity-40"
|
| 594 |
>
|
| 595 |
Save dataset
|
| 596 |
</button>
|
src/components/annotations-skin.css
CHANGED
|
@@ -56,9 +56,9 @@
|
|
| 56 |
.annotations-skin input:focus,
|
| 57 |
.annotations-skin textarea:focus,
|
| 58 |
.annotations-skin select:focus {
|
| 59 |
-
outline: 2px solid var(--
|
| 60 |
outline-offset: -1px;
|
| 61 |
-
border-color: var(--
|
| 62 |
}
|
| 63 |
|
| 64 |
.annotations-skin kbd {
|
|
@@ -203,7 +203,7 @@
|
|
| 203 |
height: 22px;
|
| 204 |
border: 1px solid var(--border-1);
|
| 205 |
background: var(--surface-1);
|
| 206 |
-
color: var(--
|
| 207 |
border-radius: var(--radius-xs);
|
| 208 |
cursor: pointer;
|
| 209 |
display: inline-flex;
|
|
@@ -213,9 +213,9 @@
|
|
| 213 |
flex: none;
|
| 214 |
}
|
| 215 |
.annotations-skin .jump:hover {
|
| 216 |
-
background: var(--
|
| 217 |
color: #0b0e14;
|
| 218 |
-
border-color: var(--
|
| 219 |
}
|
| 220 |
|
| 221 |
/* ----- Section heads ----- */
|
|
@@ -453,10 +453,10 @@
|
|
| 453 |
top: 0;
|
| 454 |
bottom: 0;
|
| 455 |
width: 0;
|
| 456 |
-
border-left: 2px solid var(--
|
| 457 |
pointer-events: none;
|
| 458 |
z-index: 5;
|
| 459 |
-
box-shadow: 0 0 8px
|
| 460 |
}
|
| 461 |
.annotations-skin .tl-playhead::before {
|
| 462 |
content: "";
|
|
@@ -465,7 +465,7 @@
|
|
| 465 |
left: -6px;
|
| 466 |
width: 10px;
|
| 467 |
height: 10px;
|
| 468 |
-
background: var(--
|
| 469 |
transform: rotate(45deg);
|
| 470 |
}
|
| 471 |
.annotations-skin .tl-ruler {
|
|
@@ -690,11 +690,11 @@
|
|
| 690 |
line-height: 1.3;
|
| 691 |
}
|
| 692 |
.annotations-skin .rail.annotation-list .rail-row.selected {
|
| 693 |
-
background:
|
| 694 |
-
box-shadow: inset 3px 0 0 var(--
|
| 695 |
}
|
| 696 |
.annotations-skin .rail.annotation-list .rail-row.active-now:not(.selected) {
|
| 697 |
-
border-color:
|
| 698 |
outline: none;
|
| 699 |
}
|
| 700 |
.annotations-skin .inspector {
|
|
@@ -773,9 +773,9 @@
|
|
| 773 |
min-width: 200px;
|
| 774 |
}
|
| 775 |
.annotations-skin .quick-add .add-btn {
|
| 776 |
-
background:
|
| 777 |
-
color: #
|
| 778 |
-
border: 1px solid
|
| 779 |
border-radius: var(--radius-sm);
|
| 780 |
padding: 6px 14px;
|
| 781 |
font-size: 13px;
|
|
@@ -784,7 +784,7 @@
|
|
| 784 |
white-space: nowrap;
|
| 785 |
}
|
| 786 |
.annotations-skin .quick-add .add-btn:hover {
|
| 787 |
-
|
| 788 |
}
|
| 789 |
.annotations-skin .quick-add .add-btn:disabled {
|
| 790 |
opacity: 0.4;
|
|
@@ -850,8 +850,8 @@
|
|
| 850 |
background: var(--surface-1);
|
| 851 |
}
|
| 852 |
.annotations-skin .rail-row.selected {
|
| 853 |
-
background:
|
| 854 |
-
border-color: var(--
|
| 855 |
}
|
| 856 |
.annotations-skin .rail-row .ts {
|
| 857 |
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
@@ -869,7 +869,7 @@
|
|
| 869 |
text-overflow: ellipsis;
|
| 870 |
}
|
| 871 |
.annotations-skin .rail-row.active-now {
|
| 872 |
-
outline: 2px solid var(--
|
| 873 |
outline-offset: -1px;
|
| 874 |
}
|
| 875 |
|
|
@@ -976,18 +976,18 @@
|
|
| 976 |
}
|
| 977 |
.annotations-skin .tl-seg.dragging {
|
| 978 |
opacity: 0.85;
|
| 979 |
-
outline: 2px solid var(--
|
| 980 |
outline-offset: -1px;
|
| 981 |
}
|
| 982 |
.annotations-skin .tl-row .track.creating {
|
| 983 |
-
outline: 1px dashed var(--
|
| 984 |
}
|
| 985 |
.annotations-skin .tl-create-preview {
|
| 986 |
position: absolute;
|
| 987 |
top: 1px;
|
| 988 |
bottom: 1px;
|
| 989 |
-
background:
|
| 990 |
-
border: 1px dashed var(--
|
| 991 |
border-radius: 2px;
|
| 992 |
pointer-events: none;
|
| 993 |
z-index: 4;
|
|
@@ -997,7 +997,7 @@
|
|
| 997 |
top: -6px;
|
| 998 |
width: 14px;
|
| 999 |
height: 14px;
|
| 1000 |
-
background: var(--
|
| 1001 |
border: 2px solid #0b0e14;
|
| 1002 |
border-radius: 999px;
|
| 1003 |
transform: translate(-7px, 0);
|
|
|
|
| 56 |
.annotations-skin input:focus,
|
| 57 |
.annotations-skin textarea:focus,
|
| 58 |
.annotations-skin select:focus {
|
| 59 |
+
outline: 2px solid var(--accent) !important;
|
| 60 |
outline-offset: -1px;
|
| 61 |
+
border-color: var(--accent) !important;
|
| 62 |
}
|
| 63 |
|
| 64 |
.annotations-skin kbd {
|
|
|
|
| 203 |
height: 22px;
|
| 204 |
border: 1px solid var(--border-1);
|
| 205 |
background: var(--surface-1);
|
| 206 |
+
color: var(--accent);
|
| 207 |
border-radius: var(--radius-xs);
|
| 208 |
cursor: pointer;
|
| 209 |
display: inline-flex;
|
|
|
|
| 213 |
flex: none;
|
| 214 |
}
|
| 215 |
.annotations-skin .jump:hover {
|
| 216 |
+
background: var(--accent);
|
| 217 |
color: #0b0e14;
|
| 218 |
+
border-color: var(--accent);
|
| 219 |
}
|
| 220 |
|
| 221 |
/* ----- Section heads ----- */
|
|
|
|
| 453 |
top: 0;
|
| 454 |
bottom: 0;
|
| 455 |
width: 0;
|
| 456 |
+
border-left: 2px solid var(--playhead);
|
| 457 |
pointer-events: none;
|
| 458 |
z-index: 5;
|
| 459 |
+
box-shadow: 0 0 8px var(--playhead-glow);
|
| 460 |
}
|
| 461 |
.annotations-skin .tl-playhead::before {
|
| 462 |
content: "";
|
|
|
|
| 465 |
left: -6px;
|
| 466 |
width: 10px;
|
| 467 |
height: 10px;
|
| 468 |
+
background: var(--playhead);
|
| 469 |
transform: rotate(45deg);
|
| 470 |
}
|
| 471 |
.annotations-skin .tl-ruler {
|
|
|
|
| 690 |
line-height: 1.3;
|
| 691 |
}
|
| 692 |
.annotations-skin .rail.annotation-list .rail-row.selected {
|
| 693 |
+
background: var(--accent-soft);
|
| 694 |
+
box-shadow: inset 3px 0 0 var(--accent);
|
| 695 |
}
|
| 696 |
.annotations-skin .rail.annotation-list .rail-row.active-now:not(.selected) {
|
| 697 |
+
border-color: var(--playhead-glow);
|
| 698 |
outline: none;
|
| 699 |
}
|
| 700 |
.annotations-skin .inspector {
|
|
|
|
| 773 |
min-width: 200px;
|
| 774 |
}
|
| 775 |
.annotations-skin .quick-add .add-btn {
|
| 776 |
+
background: rgba(56, 189, 248, 0.1);
|
| 777 |
+
color: #67e8f9;
|
| 778 |
+
border: 1px solid rgba(56, 189, 248, 0.3);
|
| 779 |
border-radius: var(--radius-sm);
|
| 780 |
padding: 6px 14px;
|
| 781 |
font-size: 13px;
|
|
|
|
| 784 |
white-space: nowrap;
|
| 785 |
}
|
| 786 |
.annotations-skin .quick-add .add-btn:hover {
|
| 787 |
+
background: rgba(56, 189, 248, 0.15);
|
| 788 |
}
|
| 789 |
.annotations-skin .quick-add .add-btn:disabled {
|
| 790 |
opacity: 0.4;
|
|
|
|
| 850 |
background: var(--surface-1);
|
| 851 |
}
|
| 852 |
.annotations-skin .rail-row.selected {
|
| 853 |
+
background: var(--accent-soft);
|
| 854 |
+
border-color: var(--accent);
|
| 855 |
}
|
| 856 |
.annotations-skin .rail-row .ts {
|
| 857 |
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
|
|
| 869 |
text-overflow: ellipsis;
|
| 870 |
}
|
| 871 |
.annotations-skin .rail-row.active-now {
|
| 872 |
+
outline: 2px solid var(--playhead-glow);
|
| 873 |
outline-offset: -1px;
|
| 874 |
}
|
| 875 |
|
|
|
|
| 976 |
}
|
| 977 |
.annotations-skin .tl-seg.dragging {
|
| 978 |
opacity: 0.85;
|
| 979 |
+
outline: 2px solid var(--accent);
|
| 980 |
outline-offset: -1px;
|
| 981 |
}
|
| 982 |
.annotations-skin .tl-row .track.creating {
|
| 983 |
+
outline: 1px dashed var(--accent);
|
| 984 |
}
|
| 985 |
.annotations-skin .tl-create-preview {
|
| 986 |
position: absolute;
|
| 987 |
top: 1px;
|
| 988 |
bottom: 1px;
|
| 989 |
+
background: var(--accent-soft);
|
| 990 |
+
border: 1px dashed var(--accent);
|
| 991 |
border-radius: 2px;
|
| 992 |
pointer-events: none;
|
| 993 |
z-index: 4;
|
|
|
|
| 997 |
top: -6px;
|
| 998 |
width: 14px;
|
| 999 |
height: 14px;
|
| 1000 |
+
background: var(--playhead);
|
| 1001 |
border: 2px solid #0b0e14;
|
| 1002 |
border-radius: 999px;
|
| 1003 |
transform: translate(-7px, 0);
|
src/components/data-recharts.tsx
CHANGED
|
@@ -94,7 +94,7 @@ function PlaybackCursor({ start, end }: { start: number; end: number }) {
|
|
| 94 |
const left = CHART_MARGIN.left + Y_AXIS_WIDTH;
|
| 95 |
return (
|
| 96 |
<div
|
| 97 |
-
className="pointer-events-none absolute w-[1.5px] bg-
|
| 98 |
style={{
|
| 99 |
top: CHART_MARGIN.top,
|
| 100 |
bottom: CHART_MARGIN.bottom + X_AXIS_HEIGHT,
|
|
|
|
| 94 |
const left = CHART_MARGIN.left + Y_AXIS_WIDTH;
|
| 95 |
return (
|
| 96 |
<div
|
| 97 |
+
className="pointer-events-none absolute w-[1.5px] bg-[var(--playhead)] opacity-70"
|
| 98 |
style={{
|
| 99 |
top: CHART_MARGIN.top,
|
| 100 |
bottom: CHART_MARGIN.bottom + X_AXIS_HEIGHT,
|