"use client"; import { useId, useState } from "react"; import { cn } from "@/lib/utils"; interface BooleanToggleProps { id?: string; name?: string; value?: boolean; defaultValue?: boolean; onChange?: (value: boolean) => void; trueLabel?: string; falseLabel?: string; ariaLabel?: string; className?: string; disabled?: boolean; } export function BooleanToggle({ id, name, value, defaultValue = false, onChange, trueLabel = "开启", falseLabel = "关闭", ariaLabel, className, disabled = false, }: BooleanToggleProps) { const generatedId = useId(); const inputId = id ?? generatedId; const controlled = value != null; const [internalValue, setInternalValue] = useState(defaultValue); const currentValue = controlled ? value : internalValue; function select(nextValue: boolean) { if (disabled) return; if (!controlled) setInternalValue(nextValue); onChange?.(nextValue); } return (