# MinimizableBarRegion

**Maturity:** experimental

Explicitly opt registered surfaces into compact presentation while retaining their React state.

## Import

```tsx
import { MinimizableBarRegion } from "@liquidify/react/minimizable-bar-region"
```

## Props

- `animated`: `boolean | 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.
- `compactIcon`: `ReactNode`. 
- `compactLabel`: `string | undefined`. Omit when the icon alone is enough; expandLabel always supplies the accessible name.
- `defaultMinimized`: `boolean | undefined`. 
- `expandLabel`: `string` (required). Accessible action, for example "Expand navigation".
- `grow`: `boolean | undefined`. Full-width fields and navigation shells may fill their bar region.
- `items`: `readonly { id: string; content: ReactNode; }[]` (required). One registered surface per item: Button, TextField, ControlGroup, Panel or GlassPrimitive.
- `minimized`: `boolean | undefined`. 
- `mode`: `"layout" | "independent" | undefined`. Layout mode follows the containing bar. Independent mode owns a presentation triad.
- `onExpandAutoFocus`: `((event: Event) => void) | undefined`. 
- `onMinimizedChange`: `((minimized: boolean) => void) | undefined`. 
- `placement`: `AdaptiveBarPlacement | undefined`. Overrides AppBar context when composing a custom headless header or footer.
- `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`.
- `trigger`: `((props: AdaptiveRegionTriggerProps) => ReactNode) | undefined`. 

## SwiftUI mapping

- `*(web-only, no direct SwiftUI analogue)*` → ``items / trigger`` (web-only): Web morph-region composition with caller-owned controls.
- `*(web-only, no direct SwiftUI analogue)*` → ``minimized / defaultMinimized / onMinimizedChange`` (web-only): Controlled or uncontrolled web presentation state.
- `*(web-only, no direct SwiftUI analogue)*` → ``mode / placement`` (web-only): Follow containing bar context or own an independent web presentation policy.
