import type { CSSVariables } from '../utils/types.js';

export type DividerOrientation = 'horizontal' | 'vertical';

export type DividerAlignment = 'stretch' | 'start' | 'center' | 'end';

export type DividerBorderStyle = 'solid' | 'dotted' | 'dashed' | 'double';

type PixelValue = `${number}px`;

export type DividerProps = {
  orientation?: DividerOrientation;
  alignment?: DividerAlignment;
  spacing?: PixelValue;
  borderStyle?: DividerBorderStyle;
  length?: number;
  thickness?: number;
  variant?: 'primary' | 'secondary' | 'tertiary';
  className?: string;
  style?: CSSVariables;
};

export type ContentFieldsProps = {
  orientationLabel?: string;
  orientationName?: string;
  orientationDefault?: string;
  alignmentLabel?: string;
  alignmentName?: string;
  alignmentDefault?: string;
  lengthLabel?: string;
  lengthName?: string;
  lengthDefault?: number;
  thicknessLabel?: string;
  thicknessName?: string;
  thicknessDefault?: number;
};

export type StyleFieldsProps = {
  spacingLabel?: string;
  spacingName?: string;
  spacingDefault?: string;
  borderStyleLabel?: string;
  borderStyleName?: string;
  borderStyleDefault?: string;
};
