<!-- 04_VISUAL/xwui/xwui-lib/xwui-lib-super/src/layout/XWUILayoutMorph/XWUILayoutMorph.md -->
# XWUILayoutMorph

TODO(agent): one paragraph: what it shows, what the user can do, and which existing XWUI contracts it composes (REF_06 section 2.2).

## Basic Usage

```example
file: examples/BasicUsage.ts
html: examples/BasicUsage.html
title: Basic Usage
description: Four items, one selected and one disabled.
```

## Data

`items[]`: `{ id, label, value?, disabled? }`. `selectedId`: the selected id or null (host-owned; `onSelect` reports a change).

## Options

| Option | Default | What it does |
| --- | --- | --- |
| `title` | locale pack `xwui.layout_morph.title` | Heading. |
| `ariaLabel` | the title | Accessible name of the list. |
| `emptyText` | locale pack `xwui.layout_morph.empty` | Text of the empty state. |
| `density` | `'comfortable'` | `'compact'` tightens the rows. |
| `locale`, `numberingSystem` | page language, `'latn'` | Number formatting. |

## Events and methods

`onSelect(id)`; `select(id)`, `getSelectedId()`, `updateData(patch)`, `updateConfig(patch)`, `getElement()`, `destroy()`.

## The 3D space (extrude)

The keyed world of every layout lives in an `@exonware/xw3d/css3d` stage (a second view mount in the view's host-owned surface), so
a tile is the same element in every layout and the table-to-3D morph stays a morph. Flat layouts draw at the identity camera; the
3D space flies the camera to the floor pose (yaw -28, pitch 52, zoom 0.86, perspective 70rem at a 16 px root) while the tiles morph,
and mirrors it on a right-to-left page unless the layout sets `mirrorInRtl: false`. xw3d writes every perspective, transform and
`transform-style`, including each block's lift; the sheet has no CSS 3D. The pointer lean (`tilt: 'pointer'`, mouse only, never
under reduced motion) is a camera offset of up to 5 degrees, eased by the stage. Removed with the move: the
`--xwui-layout-morph-perspective` knob and the `--_tilt-x`, `--_tilt-z`, `--_lift` and `--_world` custom properties.
`projectView` draws the world flat.

## Accessibility and RTL

A labelled region holding a `listbox` of `option`s with a roving tab stop: ArrowDown and ArrowUp move it (disabled items are skipped, the ends wrap), Home and End jump, Enter and Space select. Selection is `aria-selected` plus a weight change and an inline-start bar, never colour alone. Logical properties only; direction comes from the parent `dir`; numbers use Western digits unless `numberingSystem` says otherwise.

```api
```
