'use client';

import * as React from 'react';
import * as SeparatorPrimitive from '@radix-ui/react-separator';

import { cn } from '../../shared/utils';

/**
 * Themed visual divider line.
 *
 * @description
 * Renders a horizontal or vertical separator using the `bg-border` design token,
 * ensuring consistent appearance across light and dark modes.
 *
 * @ai-rules
 * 1. NEVER use a raw `<hr>` element — it lacks the required ARIA roles and design token styling.
 * 2. Use `orientation="vertical"` within flex containers to create vertical dividers.
 */
function Separator({
  className,
  orientation = 'horizontal',
  decorative = true,
  ...props
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
  return (
    <SeparatorPrimitive.Root
      data-slot="separator-root"
      decorative={decorative}
      orientation={orientation}
      className={cn(
        'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',
        className
      )}
      {...props}
    />
  );
}

export { Separator };
