import { ReactNode } from "react"; import { ClassValue as ClassValue$1 } from "clsx"; //#region src/types/shared.d.ts /** Theme color variants */ type ThemeColor = 'accent' | 'carbon' | 'destructive' | 'info' | 'primary' | 'secondary' | 'success' | 'warning'; /** Theme size variants */ type ThemeSize = '2xl' | 'lg' | 'md' | 'sm' | 'xl' | 'xs'; /** Theme orientation */ type ThemeOrientation = 'horizontal' | 'vertical'; /** Theme alignment */ type ThemeAlign = 'center' | 'end' | 'start'; /** Theme side position */ type ThemeSide = 'bottom' | 'left' | 'right' | 'top'; /** Props with className support */ interface WithClassName { /** CSS class name */ className?: ClassValue$1; } /** HTML element tag types */ type HTMLTag = 'a' | 'button' | 'div' | 'form' | 'h2' | 'h3' | 'img' | 'input' | 'label' | 'li' | 'nav' | 'ol' | 'p' | 'span' | 'svg' | 'ul' | 'template' | ({} & string); /** Props for primitive components with polymorphic rendering */ interface PrimitiveProps { /** * The element or component this component should render as. Can be overwritten by `asChild` * * @defaultValue 'div' */ as?: HTMLTag | ReactNode; /** * Change the default rendered element for the one passed as a child, merging their props and behavior. * * Read our [Composition](https://www.skyroc-ui.com/docs/guides/composition) guide for more details. */ asChild?: boolean; } /** Base props for styled components with className and size support */ type StyledComponentProps = Omit & { /** CSS class name */ className?: ClassValue$1; /** Component size variant */ size?: ThemeSize; }; /** Props for components with leading and trailing slots */ interface SlotProps { /** Leading slot content */ leading?: ReactNode; /** Trailing slot content */ trailing?: ReactNode; } /** Props for HTML intrinsic elements with styling support */ type HTMLComponentProps = StyledComponentProps>; /** Acceptable value types for form inputs and data */ type AcceptableValue = string | number | bigint | Record | null; //#endregion export { AcceptableValue, type ClassValue$1 as ClassValue, HTMLComponentProps, HTMLTag, PrimitiveProps, SlotProps, StyledComponentProps, ThemeAlign, ThemeColor, ThemeOrientation, ThemeSide, ThemeSize, WithClassName };