/**
 * `<row-ui>` — Flex row layout primitive — horizontal stack of children with
[gap] / [align] / [justify] / [grow] / [wrap]. The horizontal
counterpart to <col-ui>. Use <row-ui> for horizontal toolbars,
inline-control clusters, button groups, table cells. For action
clusters inside chrome containers (<header-ui> / <footer-ui>) use
the parent's [slot="action"] convention instead — the chrome scope
already lays out actions correctly without wrapping in row-ui.

 *
 * @see https://ui-kit.exe.xyz/site/components/row
 *
 * Type declarations generated by scripts/build/dts-codegen.mjs from
 * the component's `.a2ui.json` sidecar(s). Edit the source `.yaml`,
 * run `npm run build:components`, then `npm run codegen:dts` to
 * regenerate; or hand-author this file fully if rich event types are
 * needed beyond what the yaml `events:` block can express.
 */

import { UIElement } from '../../core/element.js';

export class UIRow extends UIElement {
  /** Cross-axis alignment (start/center/end/stretch/baseline). Accepts `@bp` notation: align="start center@sm". */
  align: string;
  /** Enables drag handle + cursor:grab. Wires the draggable trait; dispatches drag-end. */
  draggable: boolean;
  /** Gap between children. Two grammars: a NAMED scale (xs/sm/md/lg/xl, parametric via --a-gap-k — 4/8/12/16/20px at k=1) and an integer space-rung ("0"…"10", "12", "16", literal). At k=1 they coincide: xs=1, sm=2, md=3, lg=4, xl=5. Accepts `@bp` notation: gap="2 4@md". */
  gap: string;
  /** Fills remaining space in a flex parent. CSS-only attribute via :scope[grow] in row.css. */
  grow: boolean;
  /** Main-axis justify (start/center/end/between/space-between/space-around). Accepts `@bp` notation: justify="start between@md". */
  justify: string;
  /** Enable flex-wrap unconditionally. For viewport-responsive wrapping use [wrap-at] instead. */
  wrap: boolean;
  /** Enable flex-wrap from the named breakpoint upward (xs/sm/md/lg/xl). `wrap-at="sm"` = no-wrap on xs, wrap from sm up. Complements the boolean [wrap] (always-wrap) without conflicting with it. */
  wrapAt: string;
}
