@typed/ui 1.0.0-beta.6 → 1.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/Alert.d.ts +35 -41
  4. package/dist/Alert.d.ts.map +1 -1
  5. package/dist/Alert.js +23 -20
  6. package/dist/Button.d.ts +34 -78
  7. package/dist/Button.d.ts.map +1 -1
  8. package/dist/Button.js +16 -12
  9. package/dist/Carousel.d.ts +35 -236
  10. package/dist/Carousel.d.ts.map +1 -1
  11. package/dist/Carousel.js +13 -136
  12. package/dist/Checkbox.d.ts +55 -90
  13. package/dist/Checkbox.d.ts.map +1 -1
  14. package/dist/Checkbox.js +44 -38
  15. package/dist/Collection.d.ts +15 -15
  16. package/dist/Collection.js +7 -7
  17. package/dist/Combobox.d.ts +38 -187
  18. package/dist/Combobox.d.ts.map +1 -1
  19. package/dist/Combobox.js +9 -80
  20. package/dist/Component.d.ts +30 -24
  21. package/dist/Component.d.ts.map +1 -1
  22. package/dist/Component.js +23 -12
  23. package/dist/Composite.d.ts +50 -50
  24. package/dist/Composite.js +20 -20
  25. package/dist/Dialog.d.ts +34 -34
  26. package/dist/Dialog.d.ts.map +1 -1
  27. package/dist/Dialog.js +16 -14
  28. package/dist/Disclosure.d.ts +15 -15
  29. package/dist/Disclosure.js +6 -6
  30. package/dist/Dom/Events.d.ts +4 -4
  31. package/dist/Dom/Events.js +4 -4
  32. package/dist/Dom/Props.d.ts +9 -9
  33. package/dist/Dom/Props.js +4 -4
  34. package/dist/Dom/Refs.d.ts +2 -2
  35. package/dist/Dom/Refs.js +1 -1
  36. package/dist/Dom/Render.d.ts +2 -2
  37. package/dist/Dom/Render.js +2 -2
  38. package/dist/Dom/Types.d.ts +33 -33
  39. package/dist/Dom/index.d.ts +5 -5
  40. package/dist/Dom/index.d.ts.map +1 -1
  41. package/dist/Dom/index.js +4 -4
  42. package/dist/Dom.d.ts +1 -1
  43. package/dist/Dom.js +1 -1
  44. package/dist/Focusable.d.ts +5 -5
  45. package/dist/Focusable.js +1 -1
  46. package/dist/Form.d.ts +565 -533
  47. package/dist/Form.d.ts.map +1 -1
  48. package/dist/Form.js +350 -195
  49. package/dist/Grid.d.ts +39 -220
  50. package/dist/Grid.d.ts.map +1 -1
  51. package/dist/Grid.js +12 -107
  52. package/dist/Group.d.ts +50 -69
  53. package/dist/Group.d.ts.map +1 -1
  54. package/dist/Group.js +33 -25
  55. package/dist/Heading.d.ts +41 -40
  56. package/dist/Heading.d.ts.map +1 -1
  57. package/dist/Heading.js +26 -16
  58. package/dist/Hovercard.d.ts +18 -18
  59. package/dist/Hovercard.js +6 -6
  60. package/dist/HttpRouter.d.ts +3 -3
  61. package/dist/HttpRouter.js +5 -5
  62. package/dist/Link.d.ts +17 -21
  63. package/dist/Link.d.ts.map +1 -1
  64. package/dist/Link.js +11 -0
  65. package/dist/Listbox.d.ts +31 -163
  66. package/dist/Listbox.d.ts.map +1 -1
  67. package/dist/Listbox.js +9 -80
  68. package/dist/Menu.d.ts +67 -376
  69. package/dist/Menu.d.ts.map +1 -1
  70. package/dist/Menu.js +17 -179
  71. package/dist/Menubar.d.ts +24 -142
  72. package/dist/Menubar.d.ts.map +1 -1
  73. package/dist/Menubar.js +8 -66
  74. package/dist/Meter.d.ts +72 -132
  75. package/dist/Meter.d.ts.map +1 -1
  76. package/dist/Meter.js +35 -42
  77. package/dist/NativeDetails.d.ts +1 -1
  78. package/dist/NativeDetails.js +1 -1
  79. package/dist/NativeDialog.d.ts +7 -5
  80. package/dist/NativeDialog.d.ts.map +1 -1
  81. package/dist/NativeDialog.js +42 -4
  82. package/dist/NativePopover.d.ts +6 -4
  83. package/dist/NativePopover.d.ts.map +1 -1
  84. package/dist/NativePopover.js +43 -5
  85. package/dist/Popover.d.ts +18 -19
  86. package/dist/Popover.d.ts.map +1 -1
  87. package/dist/Popover.js +7 -8
  88. package/dist/RadioGroup.d.ts +86 -188
  89. package/dist/RadioGroup.d.ts.map +1 -1
  90. package/dist/RadioGroup.js +55 -105
  91. package/dist/Role.d.ts +4 -4
  92. package/dist/Role.js +1 -1
  93. package/dist/Select.d.ts +109 -220
  94. package/dist/Select.d.ts.map +1 -1
  95. package/dist/Select.js +67 -117
  96. package/dist/Separator.d.ts +30 -26
  97. package/dist/Separator.d.ts.map +1 -1
  98. package/dist/Separator.js +16 -10
  99. package/dist/Slider.d.ts +64 -111
  100. package/dist/Slider.d.ts.map +1 -1
  101. package/dist/Slider.js +47 -42
  102. package/dist/SpinButton.d.ts +64 -111
  103. package/dist/SpinButton.d.ts.map +1 -1
  104. package/dist/SpinButton.js +47 -42
  105. package/dist/Storybook.d.ts +2 -2
  106. package/dist/Storybook.js +1 -1
  107. package/dist/Switch.d.ts +52 -91
  108. package/dist/Switch.d.ts.map +1 -1
  109. package/dist/Switch.js +30 -36
  110. package/dist/Tabs.d.ts +44 -224
  111. package/dist/Tabs.d.ts.map +1 -1
  112. package/dist/Tabs.js +10 -94
  113. package/dist/Toolbar.d.ts +24 -142
  114. package/dist/Toolbar.d.ts.map +1 -1
  115. package/dist/Toolbar.js +8 -66
  116. package/dist/Tooltip.d.ts +20 -20
  117. package/dist/Tooltip.js +6 -6
  118. package/dist/Tree.d.ts +43 -229
  119. package/dist/Tree.d.ts.map +1 -1
  120. package/dist/Tree.js +12 -113
  121. package/dist/TreeGrid.d.ts +45 -264
  122. package/dist/TreeGrid.d.ts.map +1 -1
  123. package/dist/TreeGrid.js +13 -125
  124. package/dist/VisuallyHidden.d.ts +41 -27
  125. package/dist/VisuallyHidden.d.ts.map +1 -1
  126. package/dist/VisuallyHidden.js +27 -10
  127. package/dist/WindowSplitter.d.ts +68 -108
  128. package/dist/WindowSplitter.d.ts.map +1 -1
  129. package/dist/WindowSplitter.js +106 -23
  130. package/package.json +13 -12
package/dist/Select.d.ts CHANGED
@@ -1,15 +1,13 @@
1
1
  /**
2
- * Select keeps popover visibility, active option, and selected value separate. A native button
3
- * targets manual-popover listbox content; keyboard movement and typeahead update active state
4
- * before selection closes the popover.
2
+ * A native popover-backed listbox with separate selection, focus, and visibility.
3
+ * Unlike Form.Select, these options are divs rather than native select options.
4
+ * Pass one collection to Content and its Options for registered keyboard navigation.
5
5
  *
6
- * @remarks
7
- * The module keeps policy, state transitions, and DOM rendering separable so applications can use
8
- * the state and pure operations without mounting UI, or supply custom hosts without replacing native
9
- * events and browser-owned focus.
6
+ * Read the [Select guide](/explore/ui-select) for a complete example.
10
7
  *
8
+ * [APG interaction reference](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/).
11
9
  * @since 1.0.0
12
- * @category modules
10
+ * @category Overview
13
11
  * @packageDocumentation
14
12
  */
15
13
  import * as Effect from "effect/Effect";
@@ -23,104 +21,78 @@ import * as Composite from "./Composite.js";
23
21
  import * as Dom from "./Dom.js";
24
22
  import type { HostResult } from "./Dom/Types.js";
25
23
  /**
26
- * Complete renderer-independent state for Select.
24
+ * Popup identity, committed value, visibility, and active option.
27
25
  *
28
26
  * @remarks
29
- * ## Why
30
- *
31
- * Applications can inspect, update, and test Select behavior without mounting or coupling the
32
- * state to a renderer.
33
- *
34
- * ## Ownership and lifetime
35
- *
36
- * This declaration is data or schema metadata and acquires no resources.
37
- *
38
- * ## Example
39
- *
40
- * Import with `import type { State } from "@typed/ui/Select";` Extend the [Select.makeState
41
- * runnable setup](/reference/%40typed%2Fui%2FSelect%23makeState). Inside the linked program,
42
- * `const snapshot: State = yield* state` exposes popup identity, selected value, open state, and
43
- * active option.
27
+ * value and activeId are independent: keyboard movement can change activeId before selection
28
+ * commits a value. Vertical real-focus navigation is fixed by makeState.
44
29
  * @since 1.0.0
45
- * @category models
30
+ * @category State models
46
31
  */
47
32
  export interface State extends Omit<Composite.State, "orientation"> {
48
33
  /**
49
34
  * Axis used to interpret Arrow-key movement.
50
35
  * @since 1.0.0
51
- * @category models
36
+ * @category Keyboard navigation
52
37
  */
53
38
  readonly orientation: "vertical";
54
39
  /**
55
40
  * Stable id used for collection identity and ARIA relationships.
56
41
  * @since 1.0.0
57
- * @category models
42
+ * @category Identity and relationships
58
43
  */
59
44
  readonly id: string;
60
45
  /**
61
46
  * Current semantic value selected or edited by the widget.
62
47
  * @since 1.0.0
63
- * @category models
48
+ * @category Value state
64
49
  */
65
50
  readonly value: string | null;
66
51
  /**
67
52
  * Whether the associated native popover is open.
68
53
  * @since 1.0.0
69
- * @category models
54
+ * @category Visibility
70
55
  */
71
56
  readonly open: boolean;
72
57
  }
73
58
  /**
74
- * Initial Select values. The caller supplies id; value and activeId default null, open false, and
75
- * loop true.
59
+ * Required popup ID with optional initial selection, visibility, focus, and wrap policy.
76
60
  *
77
61
  * @remarks
78
- * ## Why
79
- *
80
- * Making initialization explicit documents hydration-sensitive defaults and lets servers and
81
- * clients construct matching state.
82
- *
83
- * ## Ownership and lifetime
84
- *
85
- * This declaration is data or schema metadata and acquires no resources.
86
- *
87
- * ## Example
88
- *
89
- * Import with `import type { InitialState } from "@typed/ui/Select";` Extend the [Select.makeState
90
- * runnable setup](/reference/%40typed%2Fui%2FSelect%23makeState). Construct state with
91
- * `const initial: InitialState = { id: "timezone", value: null, open: false }; const state = yield* Select.makeState(initial)`.
62
+ * value and activeId default to null, open to false, and loop to true. Use a stable
63
+ * document-unique ID so the native invoker relationship survives hydration.
92
64
  * @since 1.0.0
93
- * @category models
65
+ * @category State models
94
66
  */
95
67
  export interface InitialState {
96
68
  /**
97
69
  * Stable id used for collection identity and ARIA relationships.
98
70
  * @since 1.0.0
99
- * @category models
71
+ * @category Identity and relationships
100
72
  */
101
73
  readonly id: string;
102
74
  /**
103
75
  * Current semantic value selected or edited by the widget.
104
76
  * @since 1.0.0
105
- * @category models
77
+ * @category Value state
106
78
  */
107
79
  readonly value?: string | null;
108
80
  /**
109
81
  * Whether the associated native popover is open.
110
82
  * @since 1.0.0
111
- * @category models
83
+ * @category Visibility
112
84
  */
113
85
  readonly open?: boolean;
114
86
  /**
115
87
  * Id currently active for keyboard navigation; null means no active item.
116
88
  * @since 1.0.0
117
- * @category models
89
+ * @category Keyboard focus
118
90
  */
119
91
  readonly activeId?: string | null;
120
92
  /**
121
93
  * Whether movement wraps between the first and last enabled items.
122
94
  * @since 1.0.0
123
- * @category models
95
+ * @category Keyboard navigation
124
96
  */
125
97
  readonly loop?: boolean;
126
98
  }
@@ -128,15 +100,9 @@ export interface InitialState {
128
100
  * Effect Schema used by makeState to encode, decode, and hydrate Select state.
129
101
  *
130
102
  * @remarks
131
- * ## Why
132
- *
133
103
  * A public schema makes hydration and serialized state use the same runtime validation as direct
134
104
  * construction.
135
105
  *
136
- * ## Ownership and lifetime
137
- *
138
- * This declaration is data or schema metadata and acquires no resources.
139
- *
140
106
  * @example
141
107
  * ```ts
142
108
  * import * as Schema from "effect/Schema";
@@ -145,7 +111,7 @@ export interface InitialState {
145
111
  * const decodeState = Schema.decodeUnknownEffect(Select.StateSchema);
146
112
  * ```
147
113
  * @since 1.0.0
148
- * @category schemas
114
+ * @category Hydration schemas
149
115
  */
150
116
  export declare const StateSchema: Schema.Struct<{
151
117
  readonly id: Schema.String;
@@ -162,12 +128,8 @@ export declare const StateSchema: Schema.Struct<{
162
128
  * false, and loop true.
163
129
  *
164
130
  * @remarks
165
- * ## Why
166
- *
167
131
  * State and collection ownership can be composed and tested independently from any renderer.
168
132
  *
169
- * ## Ownership and lifetime
170
- *
171
133
  * The returned Effect creates the RefSubject when run. That state is renderer-independent;
172
134
  * collection registrations belong to the separate Scope that runs register or ref, not to state
173
135
  * creation.
@@ -186,7 +148,7 @@ export declare const StateSchema: Schema.Struct<{
186
148
  * );
187
149
  * ```
188
150
  * @since 1.0.0
189
- * @category constructors
151
+ * @category State construction
190
152
  */
191
153
  export declare function makeState(initial: InitialState): Effect.Effect<RefSubject.HydratedRefSubject<{
192
154
  readonly id: string;
@@ -202,12 +164,8 @@ export declare function makeState(initial: InitialState): Effect.Effect<RefSubje
202
164
  * Creates a scoped Collection for Select items.
203
165
  *
204
166
  * @remarks
205
- * ## Why
206
- *
207
167
  * State and collection ownership can be composed and tested independently from any renderer.
208
168
  *
209
- * ## Ownership and lifetime
210
- *
211
169
  * The returned Effect allocates the RefSubject in the caller's Scope. Each later registration is
212
170
  * owned by the Scope that runs register, independently of this construction Effect.
213
171
  *
@@ -224,65 +182,40 @@ export declare function makeState(initial: InitialState): Effect.Effect<RefSubje
224
182
  * );
225
183
  * ```
226
184
  * @since 1.0.0
227
- * @category constructors
185
+ * @category State construction
228
186
  */
229
187
  export declare const makeCollection: (initial?: Collection.State<string, Element>) => Effect.Effect<RefSubject.RefSubject<Collection.State<string, Element>, never, never>, never, Scope.Scope>;
230
188
  /**
231
- * Sets selected value and active id, then closes the popover.
189
+ * Commits an option ID and value, then marks the popup closed.
232
190
  *
233
191
  * @remarks
234
- * ## Why
235
- *
236
- * The operation exposes Select's transition directly so callers can compose it in Effect programs
237
- * and native event handlers.
238
- *
239
- * ## Ownership and lifetime
240
- *
241
- * The returned Effect performs the update or DOM side effect only when run, preserves the declared
242
- * error and service channels, and retains no resources after completion.
243
- *
244
- * ## Example
245
- *
246
- * Import with `import { select } from "@typed/ui/Select";` Extend the [Select.makeState runnable
247
- * setup](/reference/%40typed%2Fui%2FSelect%23makeState). Inside the linked Effect program invoke
248
- * `yield* select(state, "utc", "UTC")`, then read state to observe selection and active focus
249
- * update together while the popup closes.
192
+ * This Effect changes state only. It does not check collection membership or move focus itself;
193
+ * the mounted popover observes the visibility change. Keep id and value consistent with the
194
+ * option being selected.
250
195
  * @since 1.0.0
251
- * @category combinators
196
+ * @category State transitions
252
197
  */
253
198
  export declare function select<E, R>(state: RefSubject.RefSubject<State, E, R>, id: string, value: string): Effect.Effect<State, E, R>;
254
199
  /**
255
- * Inputs accepted by Select.Trigger in addition to the shared DOM host options.
200
+ * Shared select state and the button content that names the current choice.
256
201
  *
257
202
  * @remarks
258
- * ## Why
259
- *
260
- * The options type makes required state, content, accessible relationships, and custom-host inputs
261
- * visible before rendering.
262
- *
263
- * ## Ownership and lifetime
264
- *
265
- * This declaration is data or schema metadata and acquires no resources.
266
- *
267
- * ## Example
268
- *
269
- * Import with `import type { TriggerOptions } from "@typed/ui/Select";` Extend the
270
- * [Select.makeState runnable setup](/reference/%40typed%2Fui%2FSelect%23makeState). A native
271
- * popover trigger accepts `const options: TriggerOptions = { state, content: "Choose timezone" }`.
203
+ * The trigger derives its IDs and popover target from state.id. Content may be reactive; selecting
204
+ * a value does not automatically replace the label.
272
205
  * @since 1.0.0
273
- * @category models
206
+ * @category Component options
274
207
  */
275
208
  export interface TriggerOptions extends Dom.HostOptions<HTMLButtonElement> {
276
209
  /**
277
210
  * Renderer-independent RefSubject state consumed by this component or operation.
278
211
  * @since 1.0.0
279
- * @category models
212
+ * @category State connection
280
213
  */
281
214
  readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
282
215
  /**
283
216
  * Renderable child content for the component host.
284
217
  * @since 1.0.0
285
- * @category models
218
+ * @category Rendered content
286
219
  */
287
220
  readonly content: Renderable.Any;
288
221
  }
@@ -298,92 +231,86 @@ declare function triggerProps<const Options extends TriggerOptions>(options: Opt
298
231
  };
299
232
  type TriggerProps<Options extends TriggerOptions> = ReturnType<ReturnType<typeof triggerProps<Options>>>;
300
233
  /**
301
- * Renders the native button that targets listbox popover content and opens it on ArrowDown.
234
+ * Renders the native button that toggles the select listbox popover.
302
235
  *
303
236
  * @remarks
304
- * ## Why
305
- *
306
- * The component applies the family behavior while leaving callers free to supply a custom host
307
- * through the shared DOM boundary.
308
- *
309
- * ## Ownership and lifetime
237
+ * The generated button ID labels Content; popovertarget points to state.id. ArrowDown invokes
238
+ * the native button click. Content synchronizes native toggle events with open state. Render a
239
+ * useful name containing the current choice; the trigger does not format selected values for
240
+ * you.
310
241
  *
311
- * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
312
- * collection registrations only when rendered. The rendering Scope removes those resources;
313
- * unrelated nodes and attributes remain caller-owned.
314
- *
315
- * ## Example
242
+ * @example
243
+ * ```ts
244
+ * import { RefSubject } from "@typed/fx";
245
+ * import { html } from "@typed/template";
246
+ * import { component } from "@typed/ui/Component";
247
+ * import * as Select from "@typed/ui/Select";
316
248
  *
317
- * Import with `import { Trigger } from "@typed/ui/Select";` Extend the [Select.makeState runnable
318
- * setup](/reference/%40typed%2Fui%2FSelect%23makeState). Replace the linked program's final
319
- * snapshot read with `Trigger({ state, content: "Choose timezone" })`; render that Fx before the
320
- * same Scope closes.
249
+ * export const DensityPicker = component(function* () {
250
+ * const state = yield* Select.makeState({ id: "density-options", value: "comfortable" });
251
+ * const collection = yield* Select.makeCollection();
252
+ * const label = RefSubject.map(state, ({ value }) =>
253
+ * value === "compact" ? "Density: compact" : "Density: comfortable",
254
+ * );
255
+ * return html`<div class="density-picker">
256
+ * ${Select.Trigger({ state, content: label })}
257
+ * ${Select.Content({
258
+ * state, collection,
259
+ * content: [
260
+ * Select.Option({
261
+ * state, collection, id: "density-comfortable", value: "comfortable",
262
+ * textValue: "Comfortable", content: "Comfortable",
263
+ * }),
264
+ * Select.Option({
265
+ * state, collection, id: "density-compact", value: "compact",
266
+ * textValue: "Compact", content: "Compact",
267
+ * }),
268
+ * ],
269
+ * })}
270
+ * </div>`;
271
+ * });
272
+ * ```
321
273
  * @since 1.0.0
322
- * @category components
274
+ * @category Controls
323
275
  */
324
276
  export declare function Trigger<const Options extends TriggerOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, TriggerProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
325
277
  /**
326
- * Consumer-facing alias of the canonical Select component with identical behavior and lifetime.
278
+ * Alias of Trigger.
327
279
  *
328
280
  * @remarks
329
- * ## Why
330
- *
331
- * The component applies the family behavior while leaving callers free to supply a custom host
332
- * through the shared DOM boundary.
333
- *
334
- * ## Ownership and lifetime
335
- *
336
- * The alias acquires nothing. Rendering it has exactly the canonical component's Scope and DOM
337
- * ownership contract.
338
- *
339
- * ## Example
340
- *
341
- * Import with `import { Select } from "@typed/ui/Select";` Extend the [Select.makeState runnable
342
- * setup](/reference/%40typed%2Fui%2FSelect%23makeState). Replace the linked program's final
343
- * snapshot read with `Select({ state, content: "Choose timezone" })`; render that Fx before the
344
- * same Scope closes.
281
+ * Calling Select alone creates only the invoker button. Compose Content and Option for the popup
282
+ * choice surface; use Form.Select for a native select element.
345
283
  * @since 1.0.0
346
- * @category components
284
+ * @category Controls
347
285
  */
348
286
  export declare const Select: typeof Trigger;
349
287
  /**
350
- * Inputs accepted by Select.Content in addition to the shared DOM host options.
288
+ * Shared state, registered option collection, and listbox content.
351
289
  *
352
290
  * @remarks
353
- * ## Why
354
- *
355
- * The options type makes required state, content, accessible relationships, and custom-host inputs
356
- * visible before rendering.
357
- *
358
- * ## Ownership and lifetime
359
- *
360
- * This declaration is data or schema metadata and acquires no resources.
361
- *
362
- * ## Example
363
- *
364
- * Import with `import type { ContentOptions } from "@typed/ui/Select";` Extend the
365
- * [Select.makeState runnable setup](/reference/%40typed%2Fui%2FSelect%23makeState). Enable listbox
366
- * movement with `const options: ContentOptions = { state, collection, content: "Timezones" }`.
291
+ * The collection is optional in the type but required for this host’s keyboard navigation and
292
+ * selected-item focus on opening. Render the same registered options represented by that
293
+ * collection.
367
294
  * @since 1.0.0
368
- * @category models
295
+ * @category Component options
369
296
  */
370
297
  export interface ContentOptions extends Dom.HostOptions<HTMLDivElement> {
371
298
  /**
372
299
  * Renderer-independent RefSubject state consumed by this component or operation.
373
300
  * @since 1.0.0
374
- * @category models
301
+ * @category State connection
375
302
  */
376
303
  readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
377
304
  /**
378
305
  * Item registry used for collection-driven keyboard behavior and mounted ordering.
379
306
  * @since 1.0.0
380
- * @category models
307
+ * @category Item registration
381
308
  */
382
309
  readonly collection?: RefSubject.RefSubject<Collection.State<string>>;
383
310
  /**
384
311
  * Renderable child content for the component host.
385
312
  * @since 1.0.0
386
- * @category models
313
+ * @category Rendered content
387
314
  */
388
315
  readonly content: Renderable.Any;
389
316
  }
@@ -399,92 +326,68 @@ declare function contentProps<const Options extends ContentOptions>(options: Opt
399
326
  };
400
327
  type ContentProps<Options extends ContentOptions> = ReturnType<ReturnType<typeof contentProps<Options>>>;
401
328
  /**
402
- * Renders manual-popover listbox content and handles Arrow keys, Enter, Escape, and typeahead.
329
+ * Renders the manual-popover listbox and coordinates registered keyboard movement.
403
330
  *
404
331
  * @remarks
405
- * ## Why
406
- *
407
- * The component applies the family behavior while leaving callers free to supply a custom host
408
- * through the shared DOM boundary.
409
- *
410
- * ## Ownership and lifetime
411
- *
412
- * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
413
- * collection registrations only when rendered. The rendering Scope removes those resources;
414
- * unrelated nodes and attributes remain caller-owned.
415
- *
416
- * ## Example
417
- *
418
- * Import with `import { Content } from "@typed/ui/Select";` Extend the [Select.makeState runnable
419
- * setup](/reference/%40typed%2Fui%2FSelect%23makeState). Replace the linked program's final
420
- * snapshot read with `Content({ state, content: "Timezones" })`; render that Fx before the same
421
- * Scope closes.
332
+ * With a collection, arrows and Home/End move focus, buffered typeahead locates options,
333
+ * Enter/Space commits the active choice, and Escape closes with invoker focus restoration.
334
+ * Opening focuses a registered option matching the selected value; an unmatched or null value
335
+ * does not choose the first option. Manual popover mode does not imply auto-mode outside-click
336
+ * dismissal.
422
337
  * @since 1.0.0
423
- * @category components
338
+ * @category Controls
424
339
  */
425
340
  export declare function Content<const Options extends ContentOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, ContentProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
426
341
  /**
427
- * Inputs accepted by Select.Option in addition to the shared DOM host options.
342
+ * Stable option identity, selection value, rendered content, and optional typeahead text.
428
343
  *
429
344
  * @remarks
430
- * ## Why
431
- *
432
- * The options type makes required state, content, accessible relationships, and custom-host inputs
433
- * visible before rendering.
434
- *
435
- * ## Ownership and lifetime
436
- *
437
- * This declaration is data or schema metadata and acquires no resources.
438
- *
439
- * ## Example
440
- *
441
- * Import with `import type { OptionOptions } from "@typed/ui/Select";` Extend the [Select.makeState
442
- * runnable setup](/reference/%40typed%2Fui%2FSelect%23makeState). A selectable option is
443
- * `const options: OptionOptions = { state, collection, id: "utc", value: "UTC", content: "UTC" }`.
345
+ * Share state and collection with Content. textValue should be the human-readable label when value
346
+ * is an internal code; disabled suppresses activation and participates in navigation.
444
347
  * @since 1.0.0
445
- * @category models
348
+ * @category Component options
446
349
  */
447
350
  export interface OptionOptions extends Dom.HostOptions<HTMLDivElement> {
448
351
  /**
449
352
  * Renderer-independent RefSubject state consumed by this component or operation.
450
353
  * @since 1.0.0
451
- * @category models
354
+ * @category State connection
452
355
  */
453
356
  readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
454
357
  /**
455
358
  * Item registry used for collection-driven keyboard behavior and mounted ordering.
456
359
  * @since 1.0.0
457
- * @category models
360
+ * @category Item registration
458
361
  */
459
362
  readonly collection?: RefSubject.RefSubject<Collection.State<string>>;
460
363
  /**
461
364
  * Stable id used for collection identity and ARIA relationships.
462
365
  * @since 1.0.0
463
- * @category models
366
+ * @category Identity and relationships
464
367
  */
465
368
  readonly id: string;
466
369
  /**
467
370
  * Current semantic value selected or edited by the widget.
468
371
  * @since 1.0.0
469
- * @category models
372
+ * @category Value state
470
373
  */
471
374
  readonly value: string;
472
375
  /**
473
376
  * Renderable child content for the component host.
474
377
  * @since 1.0.0
475
- * @category models
378
+ * @category Rendered content
476
379
  */
477
380
  readonly content: Renderable.Any;
478
381
  /**
479
382
  * Search text used by typeahead independently of rendered markup.
480
383
  * @since 1.0.0
481
- * @category models
384
+ * @category Keyboard navigation
482
385
  */
483
386
  readonly textValue?: string;
484
387
  /**
485
388
  * Flag used by collection movement and widget handlers to skip activation by default.
486
389
  * @since 1.0.0
487
- * @category models
390
+ * @category Availability
488
391
  */
489
392
  readonly disabled?: boolean;
490
393
  }
@@ -500,29 +403,15 @@ declare function optionProps<const Options extends OptionOptions>(options: Optio
500
403
  };
501
404
  type OptionProps<Options extends OptionOptions> = ReturnType<ReturnType<typeof optionProps<Options>>>;
502
405
  /**
503
- * Renders and optionally registers a selectable option; focus updates activeId and click selects
504
- * unless disabled.
406
+ * Renders a selectable listbox option with distinct active and selected state.
505
407
  *
506
408
  * @remarks
507
- * ## Why
508
- *
509
- * The component applies the family behavior while leaving callers free to supply a custom host
510
- * through the shared DOM boundary.
511
- *
512
- * ## Ownership and lifetime
513
- *
514
- * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
515
- * collection registrations only when rendered. The rendering Scope removes those resources;
516
- * unrelated nodes and attributes remain caller-owned.
517
- *
518
- * ## Example
519
- *
520
- * Import with `import { Option } from "@typed/ui/Select";` Extend the [Select.makeState runnable
521
- * setup](/reference/%40typed%2Fui%2FSelect%23makeState). Replace the linked program's final
522
- * snapshot read with `Option({ state, id: "utc", value: "UTC", content: "UTC" })`; render that Fx
523
- * before the same Scope closes.
409
+ * Click commits value and closes the popup; focus updates activeId without committing a new
410
+ * value. Register every option with the same collection used by Content for keyboard navigation.
411
+ * Supply textValue for readable typeahead when value is an internal code. This div is not a
412
+ * native form field.
524
413
  * @since 1.0.0
525
- * @category components
414
+ * @category Controls
526
415
  */
527
416
  export declare function Option<const Options extends OptionOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, OptionProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
528
417
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.ts"],"names":[],"mappings":"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"}