# ExpandableBarRegion

**Maturity:** experimental

Reveal arbitrary bar controls without imposing their action behavior.

## Import

```tsx
import { ExpandableBarRegion } from "@liquidify/react/expandable-bar-region"
```

## Props

- `animated`: `boolean | undefined`. 
- `arrangement`: `"stack" | "row" | undefined`. 
- `asChild`: `undefined`. Multiple owned elements cannot be merged onto one child.
- `className`: `string | undefined`. Optional additional CSS class merged into the glass surface class. The supported per-instance customisation seam: override any `--lq-*` custom property from this class's CSS — the token cascade the engine reads (ADR-0004). No raw inline style is involved, so this stays ADR-0003 clean.
- `closeOnEscape`: `boolean | undefined`. 
- `defaultOpen`: `boolean | undefined`. 
- `items`: `readonly { id: string; content: ReactNode | ((actions: ExpandableBarRegionActions) => ReactNode); }[]` (required). One registered glass surface per item. Child actions never implicitly close the region.
- `label`: `string` (required). 
- `onCloseAutoFocus`: `((event: Event) => void) | undefined`. Prevent the default to choose your own focus destination after closing.
- `onOpenChange`: `((open: boolean) => void) | undefined`. 
- `open`: `boolean | undefined`. 
- `ref`: `Ref<HTMLDivElement> | undefined`. Forwarded ref to the rendered element — the component's native root (or the merged child element on a component that opts into {@link SlottableProps}). Generic over `E` (charter `docs/api-conventions.md` §4 rule 1, default `HTMLElement`) so a component with a polymorphic root (Link's navigation / action mode union, Text's `as`) can instantiate the concrete element per variant instead of leaving every consumer with a widened `Ref<HTMLElement>`. A component that does not narrow simply inherits the `HTMLElement` default — source-compatible with every pre-existing non-generic `extends ControlProps`.
- `side`: `"top" | "bottom" | undefined`. 
- `trigger`: `((props: AdaptiveRegionTriggerProps, actions: ExpandableBarRegionActions) => ReactNode) | undefined`. 

## SwiftUI mapping

- `*(web-only, no direct SwiftUI analogue)*` → ``items / trigger`` (web-only): Web disclosure composition of caller-owned controls and an accessible trigger.
- `*(web-only, no direct SwiftUI analogue)*` → ``open / defaultOpen / onOpenChange`` (web-only): Controlled or uncontrolled web disclosure state.
- `*(web-only, no direct SwiftUI analogue)*` → ``side / arrangement`` (web-only): Web placement and arrangement of disclosed controls.
