import { useId } from "react";
import type { HTMLProps } from "../../shared/types";
import { cn } from "../../shared/utils/cn";
import { Typography } from "../typography/Typography";
import { invariant } from "../../shared/utils/invariant";
type ToggleTextProps =
| { onText: string; offText: string }
| { onText?: undefined; offText?: undefined };
export type ToggleProps = HTMLProps<"input"> & {
label?: React.ReactNode;
labelClassName?: string;
} & ToggleTextProps;
export const Toggle = ({
className,
labelClassName,
label,
id: propId,
disabled,
checked,
onChange,
onText,
offText,
...props
}: ToggleProps) => {
invariant(
(onText == null && offText == null) || onText != null || offText != null,
"Both onText and offText must be either defined or undefined"
);
const generatedId = useId();
const id = propId ?? generatedId;
return (
);
};