# Item

Public Collection.Item behavioral model.

## Signatures

```ts
export interface Item<Value = unknown, Element extends object = globalThis.Element> {
    readonly id: string;
    readonly element?: Element;
    readonly disabled?: boolean;
    readonly submenu?: boolean;
    readonly textValue?: string;
    readonly value?: Value;
}
```

## Why

The public model lets custom composites reuse Collection'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 { Item } from "@typed/ui/Collection";` Extend the [Collection.makeState
runnable setup](https://tylors.github.io/typed-smol/reference/symbols/QHR5cGVkL3VpL0NvbGxlY3Rpb24jbWFrZVN0YXRl/). A registered value can retain
its real DOM identity:
`const item: Item<string> = { id: "save", value: "save", element: document.createElement("button") }`.

## Property: disabled

Flag used by collection movement and widget handlers to skip activation by default.

## Property: element

Mounted element handle used for DOM ordering, focus, and scrolling.

## Property: id

Stable id used for collection identity and ARIA relationships.

## Property: submenu

Whether the item participates as a submenu entry.

## Property: textValue

Search text used by typeahead independently of rendered markup.

## Property: value

Current semantic value selected or edited by the widget.
