# Composite.ActiveIdState

Public Composite.ActiveIdState behavioral model.

## Signatures

```ts
export interface ActiveIdState {
    readonly activeId: string | null;
    readonly loop: boolean;
}
```

## Why

The public model lets custom composites reuse Composite's deterministic policy without copying
an internal shape.

## Ownership and lifetime

This declaration is data or schema metadata and acquires no resources.

## Example

Import with `import type { ActiveIdState } from "@typed/ui/Composite";` Extend the
[Composite.makeState runnable setup](https://tylors.github.io/typed-smol/reference/symbols/QHR5cGVkL3VpL0NvbXBvc2l0ZSNtYWtlU3RhdGU/). A
compatible focus state is observable directly: `const active: ActiveIdState = yield* state`.

## Property: activeId

Id currently active for keyboard navigation; null means no active item.

## Property: loop

Whether movement wraps between the first and last enabled items.
