/**
 * `<grid-ui>` — CSS grid layout primitive. Supports [columns="1..6"] for equal columns, [columns="auto-fill"|"auto-fit"] for responsive density, and a per-child [span="2..6"|"full"] attribute for asymmetric layouts. Both [columns] and [gap] accept responsive `@bp` notation for viewport-driven layout: columns="1 2@sm 4@lg" gives 1 column on xs, 2 from sm, 4 from lg/xl. Compose a 2:1 split as columns="3" + span="2"; 3:2 as columns="5" + span="3" + span="2".
 *
 * @see https://ui-kit.exe.xyz/site/components/grid
 *
 * 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 UIGrid extends UIElement {
  /** Block-axis alignment of grid items (start/center/end/stretch) via align-items — e.g. vertically centering a text column against a visual in a 2-column hero. Sets grid-item alignment, NOT text alignment. */
  align: string;
  /** Column gap override */
  columnGap: string;
  /** Number of equal columns (1–6), "auto-fill", or "auto-fit". Accepts responsive `@bp` notation: "1 2@sm 4@lg" = 1 on xs, 2 from sm, 4 from lg/xl. Unannotated value is the mobile-first base. */
  columns: string;
  /** Grid gap (row + column). 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. Responsive `@bp` notation supported: "2 4@md" = 2 below md, 4 from md upward. */
  gap: string;
  /** Inline-axis alignment of grid items (start/center/end/stretch) via justify-items. Default stretch (items fill their column track). */
  justify: string;
  /** Minimum track width for columns="auto-fit"/"auto-fill" (any CSS length, e.g. "240px", "16rem"). Sets the minmax() floor so cards don't shrink below it before wrapping; unset uses the 12rem default. No effect on numeric columns. */
  minColumnWidth: string;
  /** Row gap override */
  rowGap: string;
}
