Animated, multi-row "brick wall" of quick-action chips built on `MarqueeWall`, supporting skeleton loading, adaptive padding, interleaved chip streams, and per-agent row caps. ## Key Components ### Exports | Export | Type | Description | |---|---|---| | `QuickActionWall` | Component | Primary wall component rendering themed chips on a scrolling/static marquee | | `QuickActionWallProps` | Interface | Full prop surface for the wall | | `WALL_SKELETON_LABEL_CH` | `number[]` | Cycled skeleton chip widths (in `ch`) shared across surfaces | | `interleave` | Function | Deterministic index-alternating merge of two chip arrays | ### Internal Constants | Constant | Purpose | |---|---| | `DEFAULT_MIN_CHIPS_PER_ROW` | Fallback pad target (14 chips) before geometry is measured | | `ADAPTIVE_PAD_MARGIN` | Extra repeat buffer added after measured overflow count | | `AGENT_MAX_ROWS` | Brick-stack cap (2 rows) for `fae`/`mingo` agent walls | ## Usage Example ```typescript import { QuickActionWall, interleave } from './quick-action-wall' // Basic animated wall // Interleaved IT + SEC chip stream (deck slide 3 / mixed wall) const blended = interleave(itChips, secChips) // Skeleton loading state ``` ## Behavior Notes - **Adaptive padding**: measures container + narrowest chip via `ResizeObserver`; pads rows to `ceil(width / chipWidth) + 2` so the marquee loop always engages - **Brick mode**: `rows` splits chips evenly across stacked single-row marquees; each row pads independently - **Agent cap**: `agentSlug="fae"` or `"mingo"` clamps brick rows to 2 regardless of `rows` - **Accessibility**: clone copies are `aria-hidden` with focus suppressed; interactive chips remain clickable in clones ## Source [`quick-action-wall.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/quick-action-wall.tsx)