/**
* @fileoverview ButtonGroup primitive — groups multiple buttons or inputs into a
* visually connected strip with shared border radii and separator support.
* Supports horizontal and vertical orientations. Part of the Saasflare base component layer.
* @module packages/ui/components/ui/button-group
* @layer core
*
* @component
* @example
* import { ButtonGroup, ButtonGroupText } from '@saasflare/ui';
*
* Left
* Right
*
*/
import * as React from "react";
import { type VariantProps } from "class-variance-authority";
import { type SaasflareComponentProps } from "../../providers";
import { Separator } from "./separator";
/**
* cva variant builder for {@link ButtonGroup} — the `orientation` axis lays the
* children out horizontally or vertically and flattens the adjacent corners of
* connected children. Exported for consumers composing custom group shells.
*/
declare const buttonGroupVariants: (props?: ({
orientation?: "horizontal" | "vertical" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/**
* Props for {@link ButtonGroup}.
*
* Extends the native div props with the `orientation` variant from
* {@link buttonGroupVariants} and {@link SaasflareComponentProps}.
*/
interface ButtonGroupProps extends Omit, keyof SaasflareComponentProps>, VariantProps, SaasflareComponentProps {
}
/**
* Groups multiple buttons or inputs into a visually connected strip with shared
* border radii. The `radius` axis drives the corner rounding of the whole group;
* connected edges between children have their adjacent corners flattened.
*
* @example
*
*
*
*
*/
declare function ButtonGroup({ className, orientation, surface, radius, animated, iconWeight, ...props }: ButtonGroupProps): import("react/jsx-runtime").JSX.Element;
/** Props for {@link ButtonGroupText}. */
interface ButtonGroupTextProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
/** Render as the child element via Radix Slot instead of a `div`. */
asChild?: boolean;
}
/**
* A bordered, muted-surface text/label cell for use inside a {@link ButtonGroup}
* (e.g. an inline prefix/suffix). Carries its own `surface` and `radius` axes so
* it visually matches the connected controls around it.
*
* @example
*
* https://
*
*
*/
declare function ButtonGroupText({ className, asChild, surface, radius, animated, iconWeight, ...props }: ButtonGroupTextProps): import("react/jsx-runtime").JSX.Element;
/**
* A divider between segments of a {@link ButtonGroup}. Defaults to a vertical
* orientation to suit the default horizontal group layout. Forwards all props to
* the underlying {@link Separator}.
*
* @example
*
*
*
*
*
*/
declare function ButtonGroupSeparator({ className, orientation, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element;
export { ButtonGroup, type ButtonGroupProps, ButtonGroupSeparator, ButtonGroupText, type ButtonGroupTextProps, buttonGroupVariants, };