@agent-native/toolkit 0.11.2 → 0.12.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.
- package/README.md +19 -0
- package/agent-native.eject.json +38 -0
- package/dist/canvas-annotations/CanvasCommentPins.d.ts +68 -0
- package/dist/canvas-annotations/CanvasCommentPins.d.ts.map +1 -0
- package/dist/canvas-annotations/CanvasCommentPins.js +513 -0
- package/dist/canvas-annotations/CanvasCommentPins.js.map +1 -0
- package/dist/canvas-annotations/DrawOverlay.d.ts +108 -0
- package/dist/canvas-annotations/DrawOverlay.d.ts.map +1 -0
- package/dist/canvas-annotations/DrawOverlay.js +746 -0
- package/dist/canvas-annotations/DrawOverlay.js.map +1 -0
- package/dist/canvas-annotations/DrawOverlay.spec.d.ts +2 -0
- package/dist/canvas-annotations/DrawOverlay.spec.d.ts.map +1 -0
- package/dist/canvas-annotations/DrawOverlay.spec.js +111 -0
- package/dist/canvas-annotations/DrawOverlay.spec.js.map +1 -0
- package/dist/canvas-annotations/index.d.ts +4 -0
- package/dist/canvas-annotations/index.d.ts.map +1 -0
- package/dist/canvas-annotations/index.js +3 -0
- package/dist/canvas-annotations/index.js.map +1 -0
- package/dist/canvas-annotations/types.d.ts +8 -0
- package/dist/canvas-annotations/types.d.ts.map +1 -0
- package/dist/canvas-annotations/types.js +2 -0
- package/dist/canvas-annotations/types.js.map +1 -0
- package/dist/canvas-interactions/canvas-interactions.d.ts +334 -0
- package/dist/canvas-interactions/canvas-interactions.d.ts.map +1 -0
- package/dist/canvas-interactions/canvas-interactions.js +451 -0
- package/dist/canvas-interactions/canvas-interactions.js.map +1 -0
- package/dist/canvas-interactions/canvas-interactions.spec.d.ts +2 -0
- package/dist/canvas-interactions/canvas-interactions.spec.d.ts.map +1 -0
- package/dist/canvas-interactions/canvas-interactions.spec.js +538 -0
- package/dist/canvas-interactions/canvas-interactions.spec.js.map +1 -0
- package/dist/canvas-interactions/index.d.ts +2 -0
- package/dist/canvas-interactions/index.d.ts.map +1 -0
- package/dist/canvas-interactions/index.js +2 -0
- package/dist/canvas-interactions/index.js.map +1 -0
- package/dist/composer/runtime-adapters.d.ts.map +1 -1
- package/dist/composer/runtime-adapters.js +13 -10
- package/dist/composer/runtime-adapters.js.map +1 -1
- package/dist/composer/runtime-adapters.spec.d.ts +2 -0
- package/dist/composer/runtime-adapters.spec.d.ts.map +1 -0
- package/dist/composer/runtime-adapters.spec.js +54 -0
- package/dist/composer/runtime-adapters.spec.js.map +1 -0
- package/dist/design-tweaks/scrub-input-utils.d.ts +61 -0
- package/dist/design-tweaks/scrub-input-utils.d.ts.map +1 -0
- package/dist/design-tweaks/scrub-input-utils.js +235 -0
- package/dist/design-tweaks/scrub-input-utils.js.map +1 -0
- package/dist/design-tweaks/scrub-input.d.ts +66 -0
- package/dist/design-tweaks/scrub-input.d.ts.map +1 -0
- package/dist/design-tweaks/scrub-input.js +313 -0
- package/dist/design-tweaks/scrub-input.js.map +1 -0
- package/dist/design-tweaks/visual-style-controls.d.ts +2 -12
- package/dist/design-tweaks/visual-style-controls.d.ts.map +1 -1
- package/dist/design-tweaks/visual-style-controls.js +3 -107
- package/dist/design-tweaks/visual-style-controls.js.map +1 -1
- package/dist/design-tweaks/visual-style-controls.spec.js +26 -0
- package/dist/design-tweaks/visual-style-controls.spec.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +29 -1
- package/src/canvas-annotations/CanvasCommentPins.tsx +861 -0
- package/src/canvas-annotations/DrawOverlay.spec.tsx +145 -0
- package/src/canvas-annotations/DrawOverlay.tsx +1233 -0
- package/src/canvas-annotations/index.ts +15 -0
- package/src/canvas-annotations/types.ts +14 -0
- package/src/canvas-interactions/canvas-interactions.spec.ts +688 -0
- package/src/canvas-interactions/canvas-interactions.ts +933 -0
- package/src/canvas-interactions/index.ts +67 -0
- package/src/composer/runtime-adapters.spec.tsx +83 -0
- package/src/composer/runtime-adapters.tsx +16 -11
- package/src/design-tweaks/scrub-input-utils.ts +311 -0
- package/src/design-tweaks/scrub-input.tsx +491 -0
- package/src/design-tweaks/visual-style-controls.spec.tsx +60 -0
- package/src/design-tweaks/visual-style-controls.tsx +23 -168
- package/src/index.ts +1 -0
|
@@ -13,6 +13,29 @@ import {
|
|
|
13
13
|
import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover.js";
|
|
14
14
|
import { cn } from "../utils.js";
|
|
15
15
|
|
|
16
|
+
export {
|
|
17
|
+
VisualScrubInput,
|
|
18
|
+
resolvePendingScrubCommit,
|
|
19
|
+
type PendingScrubCommit,
|
|
20
|
+
type ScrubInputChangeMeta,
|
|
21
|
+
type ScrubInputProps,
|
|
22
|
+
} from "./scrub-input.js";
|
|
23
|
+
export {
|
|
24
|
+
formatScrubValue,
|
|
25
|
+
getScrubStepFromEvent,
|
|
26
|
+
normalizeScrubNumber,
|
|
27
|
+
parseScrubExpression,
|
|
28
|
+
roundScrubDragValue,
|
|
29
|
+
scrubSnapsToInteger,
|
|
30
|
+
SCRUB_DRAG_THRESHOLD_PX,
|
|
31
|
+
startScrubDrag,
|
|
32
|
+
updateScrubDrag,
|
|
33
|
+
type ParsedScrubExpression,
|
|
34
|
+
type ScrubDragState,
|
|
35
|
+
type ScrubDragTick,
|
|
36
|
+
type ScrubExpressionOptions,
|
|
37
|
+
} from "./scrub-input-utils.js";
|
|
38
|
+
|
|
16
39
|
export type VisualControlValue = string | number | boolean;
|
|
17
40
|
|
|
18
41
|
export interface VisualControlOption {
|
|
@@ -46,13 +69,6 @@ function formatNumber(value: number, unit?: string) {
|
|
|
46
69
|
return unit ? `${rounded}${unit}` : String(rounded);
|
|
47
70
|
}
|
|
48
71
|
|
|
49
|
-
function parseDraftNumber(value: string, fallback: number) {
|
|
50
|
-
const match = value.trim().match(/-?\d+(?:\.\d+)?/);
|
|
51
|
-
if (!match) return fallback;
|
|
52
|
-
const next = Number(match[0]);
|
|
53
|
-
return Number.isFinite(next) ? next : fallback;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
72
|
interface RgbaColor {
|
|
57
73
|
r: number;
|
|
58
74
|
g: number;
|
|
@@ -903,167 +919,6 @@ export function VisualSliderControl({
|
|
|
903
919
|
);
|
|
904
920
|
}
|
|
905
921
|
|
|
906
|
-
export function VisualScrubInput({
|
|
907
|
-
label,
|
|
908
|
-
value,
|
|
909
|
-
onChange,
|
|
910
|
-
min,
|
|
911
|
-
max,
|
|
912
|
-
step = 1,
|
|
913
|
-
unit,
|
|
914
|
-
disabled = false,
|
|
915
|
-
mixed = false,
|
|
916
|
-
mixedLabel = "Mixed",
|
|
917
|
-
}: {
|
|
918
|
-
label: string;
|
|
919
|
-
value: number;
|
|
920
|
-
onChange: (value: number) => void;
|
|
921
|
-
min?: number;
|
|
922
|
-
max?: number;
|
|
923
|
-
step?: number;
|
|
924
|
-
unit?: string;
|
|
925
|
-
disabled?: boolean;
|
|
926
|
-
mixed?: boolean;
|
|
927
|
-
mixedLabel?: string;
|
|
928
|
-
}) {
|
|
929
|
-
const id = useId();
|
|
930
|
-
const [draft, setDraft] = useState(() =>
|
|
931
|
-
mixed ? mixedLabel : formatNumber(value, unit),
|
|
932
|
-
);
|
|
933
|
-
const [focused, setFocused] = useState(false);
|
|
934
|
-
const [hasInteracted, setHasInteracted] = useState(false);
|
|
935
|
-
const dragRef = useRef<{
|
|
936
|
-
pointerId: number;
|
|
937
|
-
prevX: number;
|
|
938
|
-
dragged: boolean;
|
|
939
|
-
} | null>(null);
|
|
940
|
-
|
|
941
|
-
useEffect(() => {
|
|
942
|
-
if (!focused) {
|
|
943
|
-
setDraft(
|
|
944
|
-
mixed && !hasInteracted ? mixedLabel : formatNumber(value, unit),
|
|
945
|
-
);
|
|
946
|
-
}
|
|
947
|
-
}, [focused, hasInteracted, mixed, mixedLabel, unit, value]);
|
|
948
|
-
|
|
949
|
-
useEffect(() => {
|
|
950
|
-
if (mixed) setHasInteracted(false);
|
|
951
|
-
}, [mixed]);
|
|
952
|
-
|
|
953
|
-
const startInteraction = () => {
|
|
954
|
-
if (!hasInteracted) {
|
|
955
|
-
setHasInteracted(true);
|
|
956
|
-
setDraft(formatNumber(value, unit));
|
|
957
|
-
}
|
|
958
|
-
};
|
|
959
|
-
|
|
960
|
-
const commit = (nextDraft = draft) => {
|
|
961
|
-
const parsed = parseDraftNumber(nextDraft, value);
|
|
962
|
-
const next = clampNumber(parsed, min, max);
|
|
963
|
-
onChange(next);
|
|
964
|
-
setDraft(formatNumber(next, unit));
|
|
965
|
-
};
|
|
966
|
-
|
|
967
|
-
const setNext = (next: number) => {
|
|
968
|
-
const clamped = clampNumber(next, min, max);
|
|
969
|
-
onChange(clamped);
|
|
970
|
-
setDraft(formatNumber(clamped, unit));
|
|
971
|
-
};
|
|
972
|
-
|
|
973
|
-
const onKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
|
|
974
|
-
startInteraction();
|
|
975
|
-
if (event.key === "Enter") {
|
|
976
|
-
event.preventDefault();
|
|
977
|
-
commit();
|
|
978
|
-
event.currentTarget.blur();
|
|
979
|
-
return;
|
|
980
|
-
}
|
|
981
|
-
if (event.key === "Escape") {
|
|
982
|
-
event.preventDefault();
|
|
983
|
-
setDraft(formatNumber(value, unit));
|
|
984
|
-
event.currentTarget.blur();
|
|
985
|
-
return;
|
|
986
|
-
}
|
|
987
|
-
if (event.key === "ArrowUp" || event.key === "ArrowDown") {
|
|
988
|
-
event.preventDefault();
|
|
989
|
-
const mult =
|
|
990
|
-
event.shiftKey || event.metaKey ? 10 : event.altKey ? 0.1 : 1;
|
|
991
|
-
const direction = event.key === "ArrowUp" ? 1 : -1;
|
|
992
|
-
const base = parseDraftNumber(draft, value);
|
|
993
|
-
setNext(base + direction * step * mult);
|
|
994
|
-
}
|
|
995
|
-
};
|
|
996
|
-
|
|
997
|
-
const onPointerDown = (event: PointerEvent<HTMLLabelElement>) => {
|
|
998
|
-
if (disabled || event.button !== 0) return;
|
|
999
|
-
event.preventDefault();
|
|
1000
|
-
startInteraction();
|
|
1001
|
-
dragRef.current = {
|
|
1002
|
-
pointerId: event.pointerId,
|
|
1003
|
-
prevX: event.clientX,
|
|
1004
|
-
dragged: false,
|
|
1005
|
-
};
|
|
1006
|
-
event.currentTarget.setPointerCapture(event.pointerId);
|
|
1007
|
-
};
|
|
1008
|
-
|
|
1009
|
-
const onPointerMove = (event: PointerEvent<HTMLLabelElement>) => {
|
|
1010
|
-
const drag = dragRef.current;
|
|
1011
|
-
if (!drag || drag.pointerId !== event.pointerId) return;
|
|
1012
|
-
const delta = event.clientX - drag.prevX;
|
|
1013
|
-
if (delta === 0) return;
|
|
1014
|
-
drag.prevX = event.clientX;
|
|
1015
|
-
drag.dragged = true;
|
|
1016
|
-
const mult = event.shiftKey || event.metaKey ? 10 : event.altKey ? 0.1 : 1;
|
|
1017
|
-
setNext(value + delta * step * mult);
|
|
1018
|
-
};
|
|
1019
|
-
|
|
1020
|
-
const onPointerUp = (event: PointerEvent<HTMLLabelElement>) => {
|
|
1021
|
-
const drag = dragRef.current;
|
|
1022
|
-
if (!drag || drag.pointerId !== event.pointerId) return;
|
|
1023
|
-
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
1024
|
-
dragRef.current = null;
|
|
1025
|
-
if (!drag.dragged) {
|
|
1026
|
-
document.getElementById(id)?.focus();
|
|
1027
|
-
}
|
|
1028
|
-
};
|
|
1029
|
-
|
|
1030
|
-
return (
|
|
1031
|
-
<div className="flex items-center gap-1.5">
|
|
1032
|
-
<label
|
|
1033
|
-
htmlFor={id}
|
|
1034
|
-
onPointerDown={onPointerDown}
|
|
1035
|
-
onPointerMove={onPointerMove}
|
|
1036
|
-
onPointerUp={onPointerUp}
|
|
1037
|
-
className={cn(
|
|
1038
|
-
"flex w-8 shrink-0 cursor-ew-resize select-none items-center justify-center rounded border border-transparent px-1 text-[10px] font-semibold text-muted-foreground hover:border-border hover:bg-accent/60",
|
|
1039
|
-
disabled && "cursor-not-allowed opacity-50",
|
|
1040
|
-
)}
|
|
1041
|
-
>
|
|
1042
|
-
{label}
|
|
1043
|
-
</label>
|
|
1044
|
-
<input
|
|
1045
|
-
id={id}
|
|
1046
|
-
value={draft}
|
|
1047
|
-
disabled={disabled}
|
|
1048
|
-
onFocus={() => {
|
|
1049
|
-
setFocused(true);
|
|
1050
|
-
startInteraction();
|
|
1051
|
-
}}
|
|
1052
|
-
onBlur={() => {
|
|
1053
|
-
setFocused(false);
|
|
1054
|
-
commit();
|
|
1055
|
-
}}
|
|
1056
|
-
onChange={(event) => {
|
|
1057
|
-
startInteraction();
|
|
1058
|
-
setDraft(event.currentTarget.value);
|
|
1059
|
-
}}
|
|
1060
|
-
onKeyDown={onKeyDown}
|
|
1061
|
-
className="h-7 min-w-0 flex-1 rounded-md border border-input bg-background/70 px-2 text-right text-[11px] tabular-nums text-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring disabled:opacity-50"
|
|
1062
|
-
/>
|
|
1063
|
-
</div>
|
|
1064
|
-
);
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
922
|
export function VisualTweakControl({
|
|
1068
923
|
tweak,
|
|
1069
924
|
value,
|