import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import type { InteractiveTier } from '../../utils/index.js'; import type { ToolbarSlots, ToolbarVariants } from './toolbar.variants.js'; /** * Props interface for Toolbar component * * @summary A bar of controls that belong together. * @description Container for grouping related controls in a horizontal or vertical bar. * Renders with role="toolbar" and auto-sets aria-orientation. * * @tag action * @related Button * @related ButtonGroup * * @example * ```svelte * * * * * * * * ``` * * @example * ```svelte * * * * * * * * * ``` */ export interface ToolbarProps extends ToolbarVariants, Omit, 'children'> { /** Toolbar content — typically Buttons, Toggles, Separators, or ButtonGroups. */ children: Snippet; /** Accessible label describing the toolbar's purpose (e.g. "Formatting toolbar"). Required. */ 'aria-label': string; /** * Semantic radius tier propagated to tier-aware children (Buttons, * Badges, Inputs, …). The Toolbar's own surface stays `r-structure` * regardless of this prop. * * Default `modify` — toolbars typically hold compact, icon-only actions * where pill-shaped buttons read as tags. Set to `commit` for marketing * or hero toolbars with full CTAs. * * @default 'modify' * @summary Corner-radius tier, passed on to tier-aware children. */ tier?: InteractiveTier; /** Remove all default tv() classes. Combine with `slotClasses` to restyle from scratch. */ unstyled?: boolean; /** Per-slot class overrides merged with (or replacing when `unstyled`) the default classes. * Slots: base */ 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; /** Additional CSS class applied to the root element. */ class?: string; } export { default as Toolbar } from './Toolbar.svelte'; export { type ToolbarVariants, toolbarVariants } from './toolbar.variants.js';