/** * @fileoverview Toggle — two-state button with pressed/unpressed styling, size variants, and outline mode. * @module packages/ui/components/ui/toggle * @layer core * * @component * @example * import { Toggle } from '@saasflare/ui'; * * * */ import * as React from "react"; import { type VariantProps } from "class-variance-authority"; import * as TogglePrimitive from "@radix-ui/react-toggle"; import { type SaasflareComponentProps } from "../../providers"; /** * Toggle variant definitions (cva): `variant` (default | outline) × `size` * (sm | md | lg). Consumed by {@link Toggle} and shared with ToggleGroupItem * so grouped items match standalone toggles. */ declare const toggleVariants: (props?: ({ variant?: "outline" | "default" | null | undefined; size?: "sm" | "md" | "lg" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * Props for {@link Toggle}. * * Extends the Radix Toggle root props with {@link SaasflareComponentProps}, * so `surface`, `radius`, `animated`, and `iconWeight` can be supplied * per-instance or inherited from . */ interface ToggleProps extends Omit, keyof SaasflareComponentProps>, Omit, "size">, SaasflareComponentProps { /** Visual size. (`"default"` is a deprecated alias for `"md"`.) */ size?: VariantProps["size"] | "default"; } /** * Two-state button that switches between pressed and unpressed — e.g. toolbar * formatting controls like bold or italic. Icon-only usage requires an * `aria-label` for an accessible name. * * @component * @layer core * * @example * * * */ declare function Toggle({ className, variant, size, surface, radius, animated, iconWeight, ...props }: ToggleProps): import("react/jsx-runtime").JSX.Element; export { Toggle, toggleVariants, type ToggleProps };