
import { UniversalDividerProps, UniversalStackProps } from "../../types/dist/index.js";
import { BoxProps } from "../Box.js";
import { Text, TextProps } from "../Text.js";
import { ComponentProps, HTMLAttributes, ReactNode } from "react";

//#region src/components/Divider/types.d.ts
type DataAttributes = {
  [name: `data-${string}`]: string;
};
type DividerVariant = NonNullable<UniversalDividerProps['variant']>;
type DividerVariantWithInherit = DividerVariant | 'inherit';
interface DividerProps extends Omit<BoxProps, 'color' | 'borderColor' | 'borderWidth'>, Omit<UniversalStackProps, 'separator' | 'asChild'>, Omit<UniversalDividerProps, 'variant'> {
  /** The visual style variant of the divider. @default 'primary' */
  variant?: DividerVariantWithInherit;
  /** Optional label or manual DividerLine/DividerLabel composition. */
  children?: ReactNode;
  /** Props to be passed into various slots within the convenience component. */
  slotProps?: {
    root?: Partial<HTMLAttributes<HTMLDivElement> & DataAttributes>;
    label?: Partial<ComponentProps<typeof Text> & DataAttributes>;
    line?: Partial<HTMLAttributes<HTMLDivElement> & DataAttributes>;
  };
}
interface DividerLineProps extends Omit<BoxProps, 'borderColor' | 'borderWidth' | 'children'> {
  /** The visual style variant of the divider line. Inherits from Divider when composed. */
  variant?: DividerVariantWithInherit;
  /** Whether to render as a vertical line. Inherits from Divider when composed. */
  vertical?: boolean;
}
interface DividerLabelProps extends Omit<TextProps, 'variant'> {
  /** The visual style variant of the divider label. Inherits from Divider when composed. */
  variant?: DividerVariantWithInherit;
  /** Optional text style override. Defaults to the configured divider label typography. */
  textVariant?: TextProps['variant'];
}
//#endregion
export { type DividerLabelProps, type DividerLineProps, type DividerProps, type DividerVariant };