import type { HTMLAttributes } from 'svelte/elements';
import type { SeparatorVariants } from './separator.variants.js';
/**
* @summary A line marking where one thing ends and the next begins.
* @description Visual divider for separating content sections. Supports horizontal and
* vertical orientations with proper ARIA semantics.
*
* @tag layout
*
* @example
* ```svelte
*
* ```
*
* @example
* ```svelte
*
* Item A
*
* Item B
*
* ```
*/
export interface SeparatorProps extends SeparatorVariants, Omit, 'children' | 'class'> {
/** Horizontal renders a full-width line; vertical renders a full-height line (e.g. inside flex rows). */
orientation?: 'horizontal' | 'vertical';
/** Controls margin around the line — sm (0.5 rem), md (1 rem), lg (1.5 rem). */
size?: 'sm' | 'md' | 'lg';
/** When true, the separator is purely visual (role="none"); when false, it uses role="separator" with aria-orientation. */
decorative?: boolean;
/** Additional CSS class merged onto the root element. */
class?: string;
/** Strip all default styles; combine with slotClasses to rebuild from scratch. */
unstyled?: boolean;
/** Per-slot class overrides. */
slotClasses?: Partial>;
/**
* Apply a named preset registered via ``.
* Prefer this over `class` overrides when the requested look falls outside the
* semantic intent palette — presets keep hover/active/dark-mode logic coherent
* and make the custom look reusable across the project.
*/
preset?: string;
}
export { default as Separator } from './Separator.svelte';
export { type SeparatorVariants, separatorVariants } from './separator.variants.js';