feat(ui): добавить плотные контролы для viewer

This commit is contained in:
Codex
2026-08-30 13:28:20 +03:00
parent c8f4916423
commit d51d8bb7f6
8 changed files with 82 additions and 5 deletions
+10 -2
View File
@@ -8,10 +8,13 @@ export interface SegmentedItem<T extends string> {
disabled?: boolean;
}
export type SegmentedControlSize = "default" | "dense";
export interface SegmentedControlProps<T extends string> {
value: T;
items: Array<SegmentedItem<T>>;
label: string;
size?: SegmentedControlSize;
className?: string;
onChange: (value: T) => void;
}
@@ -20,11 +23,17 @@ export function SegmentedControl<T extends string>({
value,
items,
label,
size = "default",
className,
onChange,
}: SegmentedControlProps<T>) {
return (
<div className={cn("nodedc-segmented", className)} role="tablist" aria-label={label}>
<div
className={cn("nodedc-segmented", className)}
role="tablist"
aria-label={label}
data-size={size === "default" ? undefined : size}
>
{items.map((item) => (
<button
key={item.value}
@@ -43,4 +52,3 @@ export function SegmentedControl<T extends string>({
</div>
);
}