@typed/ui 1.0.0-beta.0 → 1.0.0-beta.10

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 (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +78 -26
  3. package/dist/Alert.d.ts +72 -0
  4. package/dist/Alert.d.ts.map +1 -0
  5. package/dist/Alert.js +40 -0
  6. package/dist/Button.d.ts +100 -0
  7. package/dist/Button.d.ts.map +1 -0
  8. package/dist/Button.js +42 -0
  9. package/dist/Carousel.d.ts +346 -0
  10. package/dist/Carousel.d.ts.map +1 -0
  11. package/dist/Carousel.js +264 -0
  12. package/dist/Checkbox.d.ts +168 -0
  13. package/dist/Checkbox.d.ts.map +1 -0
  14. package/dist/Checkbox.js +146 -0
  15. package/dist/Collection.d.ts +254 -0
  16. package/dist/Collection.d.ts.map +1 -0
  17. package/dist/Collection.js +218 -0
  18. package/dist/Combobox.d.ts +367 -0
  19. package/dist/Combobox.d.ts.map +1 -0
  20. package/dist/Combobox.js +300 -0
  21. package/dist/Composite.d.ts +823 -0
  22. package/dist/Composite.d.ts.map +1 -0
  23. package/dist/Composite.js +615 -0
  24. package/dist/Dialog.d.ts +544 -0
  25. package/dist/Dialog.d.ts.map +1 -0
  26. package/dist/Dialog.js +357 -0
  27. package/dist/Disclosure.d.ts +219 -0
  28. package/dist/Disclosure.d.ts.map +1 -0
  29. package/dist/Disclosure.js +128 -0
  30. package/dist/Dom/Events.d.ts +122 -0
  31. package/dist/Dom/Events.d.ts.map +1 -0
  32. package/dist/Dom/Events.js +192 -0
  33. package/dist/Dom/Props.d.ts +161 -0
  34. package/dist/Dom/Props.d.ts.map +1 -0
  35. package/dist/Dom/Props.js +110 -0
  36. package/dist/Dom/Refs.d.ts +58 -0
  37. package/dist/Dom/Refs.d.ts.map +1 -0
  38. package/dist/Dom/Refs.js +61 -0
  39. package/dist/Dom/Render.d.ts +59 -0
  40. package/dist/Dom/Render.d.ts.map +1 -0
  41. package/dist/Dom/Render.js +71 -0
  42. package/dist/Dom/Types.d.ts +570 -0
  43. package/dist/Dom/Types.d.ts.map +1 -0
  44. package/dist/Dom/Types.js +1 -0
  45. package/dist/Dom/index.d.ts +20 -0
  46. package/dist/Dom/index.d.ts.map +1 -0
  47. package/dist/Dom/index.js +8 -0
  48. package/dist/Dom.d.ts +14 -0
  49. package/dist/Dom.d.ts.map +1 -0
  50. package/dist/Dom.js +13 -0
  51. package/dist/Focusable.d.ts +85 -0
  52. package/dist/Focusable.d.ts.map +1 -0
  53. package/dist/Focusable.js +35 -0
  54. package/dist/Form.d.ts +1727 -0
  55. package/dist/Form.d.ts.map +1 -0
  56. package/dist/Form.js +1142 -0
  57. package/dist/Grid.d.ts +388 -0
  58. package/dist/Grid.d.ts.map +1 -0
  59. package/dist/Grid.js +284 -0
  60. package/dist/Group.d.ts +128 -0
  61. package/dist/Group.d.ts.map +1 -0
  62. package/dist/Group.js +71 -0
  63. package/dist/Heading.d.ts +87 -0
  64. package/dist/Heading.d.ts.map +1 -0
  65. package/dist/Heading.js +58 -0
  66. package/dist/Hovercard.d.ts +297 -0
  67. package/dist/Hovercard.d.ts.map +1 -0
  68. package/dist/Hovercard.js +188 -0
  69. package/dist/HttpRouter.d.ts +129 -6
  70. package/dist/HttpRouter.d.ts.map +1 -1
  71. package/dist/HttpRouter.js +199 -56
  72. package/dist/Link.d.ts +63 -28
  73. package/dist/Link.d.ts.map +1 -1
  74. package/dist/Link.js +84 -37
  75. package/dist/Listbox.d.ts +305 -0
  76. package/dist/Listbox.d.ts.map +1 -0
  77. package/dist/Listbox.js +245 -0
  78. package/dist/Menu.d.ts +663 -0
  79. package/dist/Menu.d.ts.map +1 -0
  80. package/dist/Menu.js +569 -0
  81. package/dist/Menubar.d.ts +249 -0
  82. package/dist/Menubar.d.ts.map +1 -0
  83. package/dist/Menubar.js +207 -0
  84. package/dist/Meter.d.ts +157 -0
  85. package/dist/Meter.d.ts.map +1 -0
  86. package/dist/Meter.js +87 -0
  87. package/dist/NativeDetails.d.ts +41 -0
  88. package/dist/NativeDetails.d.ts.map +1 -0
  89. package/dist/NativeDetails.js +40 -0
  90. package/dist/NativeDialog.d.ts +66 -0
  91. package/dist/NativeDialog.d.ts.map +1 -0
  92. package/dist/NativeDialog.js +88 -0
  93. package/dist/NativePopover.d.ts +43 -0
  94. package/dist/NativePopover.d.ts.map +1 -0
  95. package/dist/NativePopover.js +84 -0
  96. package/dist/Popover.d.ts +240 -0
  97. package/dist/Popover.d.ts.map +1 -0
  98. package/dist/Popover.js +140 -0
  99. package/dist/RadioGroup.d.ts +330 -0
  100. package/dist/RadioGroup.d.ts.map +1 -0
  101. package/dist/RadioGroup.js +241 -0
  102. package/dist/Role.d.ts +64 -0
  103. package/dist/Role.d.ts.map +1 -0
  104. package/dist/Role.js +27 -0
  105. package/dist/Select.d.ts +418 -0
  106. package/dist/Select.d.ts.map +1 -0
  107. package/dist/Select.js +357 -0
  108. package/dist/Separator.d.ts +58 -0
  109. package/dist/Separator.d.ts.map +1 -0
  110. package/dist/Separator.js +32 -0
  111. package/dist/Slider.d.ts +141 -0
  112. package/dist/Slider.d.ts.map +1 -0
  113. package/dist/Slider.js +101 -0
  114. package/dist/SpinButton.d.ts +141 -0
  115. package/dist/SpinButton.d.ts.map +1 -0
  116. package/dist/SpinButton.js +101 -0
  117. package/dist/Storybook.d.ts +76 -0
  118. package/dist/Storybook.d.ts.map +1 -0
  119. package/dist/Storybook.js +102 -0
  120. package/dist/Switch.d.ts +148 -0
  121. package/dist/Switch.d.ts.map +1 -0
  122. package/dist/Switch.js +110 -0
  123. package/dist/Tab.d.ts +26 -0
  124. package/dist/Tab.d.ts.map +1 -0
  125. package/dist/Tab.js +25 -0
  126. package/dist/Tabs.d.ts +411 -0
  127. package/dist/Tabs.d.ts.map +1 -0
  128. package/dist/Tabs.js +262 -0
  129. package/dist/Toolbar.d.ts +248 -0
  130. package/dist/Toolbar.d.ts.map +1 -0
  131. package/dist/Toolbar.js +187 -0
  132. package/dist/Tooltip.d.ts +296 -0
  133. package/dist/Tooltip.d.ts.map +1 -0
  134. package/dist/Tooltip.js +172 -0
  135. package/dist/Tree.d.ts +405 -0
  136. package/dist/Tree.d.ts.map +1 -0
  137. package/dist/Tree.js +333 -0
  138. package/dist/TreeGrid.d.ts +426 -0
  139. package/dist/TreeGrid.d.ts.map +1 -0
  140. package/dist/TreeGrid.js +308 -0
  141. package/dist/VisuallyHidden.d.ts +68 -0
  142. package/dist/VisuallyHidden.d.ts.map +1 -0
  143. package/dist/VisuallyHidden.js +44 -0
  144. package/dist/WindowSplitter.d.ts +336 -0
  145. package/dist/WindowSplitter.d.ts.map +1 -0
  146. package/dist/WindowSplitter.js +305 -0
  147. package/dist/index.d.ts +48 -0
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +48 -0
  150. package/package.json +47 -14
  151. package/src/HttpRouter.test.ts +0 -294
  152. package/src/HttpRouter.ts +0 -168
  153. package/src/Link.test.ts +0 -85
  154. package/src/Link.ts +0 -107
  155. package/src/index.ts +0 -2
  156. package/tsconfig.json +0 -6
package/dist/Tree.d.ts ADDED
@@ -0,0 +1,405 @@
1
+ /**
2
+ * Tree stores active item and expanded ids independently. Its key policy follows hierarchical tree
3
+ * navigation, while Item and Group expose explicit levels, expansion, and visibility without
4
+ * reconstructing nodes.
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.
10
+ *
11
+ * Learn the interaction in the [Tree guide](/explore/ui-tree).
12
+ *
13
+ * @since 1.0.0
14
+ * @category modules
15
+ * @packageDocumentation
16
+ */
17
+ import * as Effect from "effect/Effect";
18
+ import type * as Scope from "effect/Scope";
19
+ import * as Schema from "effect/Schema";
20
+ import type { Fx } from "@typed/fx/Fx";
21
+ import { RefSubject } from "@typed/fx";
22
+ import { EventHandler, type Renderable, type RenderEvent, type RenderTemplate } from "@typed/template";
23
+ import * as Collection from "./Collection.js";
24
+ import * as Dom from "./Dom.js";
25
+ import type { HostResult } from "./Dom/Types.js";
26
+ /**
27
+ * The focused node and expanded parent identities.
28
+ * Expansion controls visible traversal; file selection or opening is a separate application action.
29
+ *
30
+ * @since 1.0.0
31
+ * @category Hierarchy state
32
+ */
33
+ export interface State {
34
+ /**
35
+ * Id currently active for keyboard navigation; null means no active item.
36
+ * @since 1.0.0
37
+ * @category Keyboard focus
38
+ */
39
+ readonly activeId: string | null;
40
+ /**
41
+ * Ids whose child tree groups are currently visible.
42
+ * @since 1.0.0
43
+ * @category Expansion
44
+ */
45
+ readonly expandedIds: readonly string[];
46
+ /**
47
+ * Whether movement wraps between the first and last enabled items.
48
+ * @since 1.0.0
49
+ * @category Keyboard navigation
50
+ */
51
+ readonly loop: boolean;
52
+ }
53
+ /**
54
+ * Initial Tree values. activeId defaults null and expandedIds defaults empty.
55
+ *
56
+ * @since 1.0.0
57
+ * @category Hierarchy state
58
+ */
59
+ export interface InitialState {
60
+ /**
61
+ * Id currently active for keyboard navigation; null means no active item.
62
+ * @since 1.0.0
63
+ * @category Keyboard focus
64
+ */
65
+ readonly activeId?: string | null;
66
+ /**
67
+ * Ids whose child tree groups are currently visible.
68
+ * @since 1.0.0
69
+ * @category Expansion
70
+ */
71
+ readonly expandedIds?: readonly string[];
72
+ /**
73
+ * Whether movement wraps between the first and last enabled items.
74
+ * @since 1.0.0
75
+ * @category Keyboard navigation
76
+ */
77
+ readonly loop?: boolean;
78
+ }
79
+ /**
80
+ * Effect Schema used by makeState to encode, decode, and hydrate Tree state.
81
+ *
82
+ * @remarks
83
+ * @example
84
+ * ```ts
85
+ * import * as Schema from "effect/Schema";
86
+ * import * as Tree from "@typed/ui/Tree";
87
+ *
88
+ * const decodeState = Schema.decodeUnknownEffect(Tree.StateSchema);
89
+ * ```
90
+ * @since 1.0.0
91
+ * @category Hierarchy state
92
+ */
93
+ export declare const StateSchema: Schema.Struct<{
94
+ readonly activeId: Schema.NullOr<Schema.String>;
95
+ readonly expandedIds: Schema.$Array<Schema.String>;
96
+ readonly loop: Schema.Boolean;
97
+ }>;
98
+ /**
99
+ * Creates hydrated Tree state. activeId defaults null and expandedIds defaults empty.
100
+ *
101
+ * @remarks
102
+ * The returned Effect creates the RefSubject when run. That state is renderer-independent;
103
+ * collection registrations belong to the separate Scope that runs register or ref, not to state
104
+ * creation.
105
+ *
106
+ * @example
107
+ * ```ts
108
+ * import * as Effect from "effect/Effect";
109
+ * import * as Tree from "@typed/ui/Tree";
110
+ *
111
+ * const program = Effect.scoped(
112
+ * Effect.gen(function* () {
113
+ * const state = yield* Tree.makeState({});
114
+ * const collection = yield* Tree.makeCollection();
115
+ * return { state: yield* state, collection: yield* collection };
116
+ * }),
117
+ * );
118
+ * ```
119
+ * @since 1.0.0
120
+ * @category Hierarchy state
121
+ */
122
+ export declare function makeState(initial?: InitialState): Effect.Effect<RefSubject.HydratedRefSubject<{
123
+ readonly activeId: string | null;
124
+ readonly expandedIds: readonly string[];
125
+ readonly loop: boolean;
126
+ }, Schema.SchemaError, never, never>, never, Scope.Scope>;
127
+ /**
128
+ * Tree collection value recording an item's parent relationship.
129
+ *
130
+ * @remarks
131
+ * The public model lets custom composites reuse Tree's deterministic policy without copying an
132
+ * internal shape.
133
+ *
134
+ * @since 1.0.0
135
+ * @category Node registration
136
+ */
137
+ export interface ItemValue {
138
+ /**
139
+ * Id whose expansion controls this descendant group.
140
+ * @since 1.0.0
141
+ * @category Hierarchy
142
+ */
143
+ readonly parentId?: string;
144
+ /**
145
+ * Whether aria-expanded is emitted and hierarchical keys may open descendants.
146
+ * @since 1.0.0
147
+ * @category Hierarchy
148
+ */
149
+ readonly hasChildren: boolean;
150
+ }
151
+ /**
152
+ * Creates a scoped Collection for Tree items.
153
+ *
154
+ * @remarks
155
+ * The returned Effect allocates the RefSubject in the caller's Scope. Each later registration is
156
+ * owned by the Scope that runs register, independently of this construction Effect.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * import * as Effect from "effect/Effect";
161
+ * import * as Tree from "@typed/ui/Tree";
162
+ *
163
+ * const program = Effect.scoped(
164
+ * Effect.gen(function* () {
165
+ * const collection = yield* Tree.makeCollection();
166
+ * return yield* collection;
167
+ * }),
168
+ * );
169
+ * ```
170
+ * @since 1.0.0
171
+ * @category Node registration
172
+ */
173
+ export declare const makeCollection: (initial?: Collection.State<ItemValue, Element>) => Effect.Effect<RefSubject.RefSubject<Collection.State<ItemValue, Element>, never, never>, never, Scope.Scope>;
174
+ /**
175
+ * Tests membership in expandedIds without touching the DOM.
176
+ *
177
+ * @remarks
178
+ * Separating this deterministic policy from event wiring lets applications test it directly and
179
+ * reuse it in custom composites.
180
+ *
181
+ * This is a synchronous calculation. It acquires no resources and does not mutate the input array,
182
+ * state, event, or DOM.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * import * as Tree from "@typed/ui/Tree";
187
+ *
188
+ * const expanded = Tree.isExpanded({ activeId: null, expandedIds: ["parent"], loop: true }, "parent");
189
+ * ```
190
+ * @since 1.0.0
191
+ * @category Expansion
192
+ */
193
+ export declare function isExpanded(state: State, id: string): boolean;
194
+ /**
195
+ * Adds an id once to expandedIds.
196
+ *
197
+ * @remarks
198
+ * The operation exposes Tree's transition directly so callers can compose it in Effect programs
199
+ * and native event handlers.
200
+ *
201
+ * @since 1.0.0
202
+ * @category Expansion
203
+ */
204
+ export declare function expand<E, R>(state: RefSubject.RefSubject<State, E, R>, id: string): Effect.Effect<State, E, R>;
205
+ /**
206
+ * Removes an id from expandedIds.
207
+ *
208
+ * @remarks
209
+ * The operation exposes Tree's transition directly so callers can compose it in Effect programs
210
+ * and native event handlers.
211
+ *
212
+ * @since 1.0.0
213
+ * @category Expansion
214
+ */
215
+ export declare function collapse<E, R>(state: RefSubject.RefSubject<State, E, R>, id: string): Effect.Effect<State, E, R>;
216
+ /**
217
+ * Sets the active tree item id without changing expansion.
218
+ *
219
+ * @remarks
220
+ * The operation exposes Tree's transition directly so callers can compose it in Effect programs
221
+ * and native event handlers.
222
+ *
223
+ * @since 1.0.0
224
+ * @category Node focus
225
+ */
226
+ export declare function activate<E, R>(state: RefSubject.RefSubject<State, E, R>, activeId: string | null): Effect.Effect<State, E, R>;
227
+ /**
228
+ * Inputs accepted by Tree.Root in addition to the shared DOM host options.
229
+ *
230
+ * @since 1.0.0
231
+ * @category Tree surface
232
+ */
233
+ export interface RootOptions extends Dom.HostOptions<HTMLDivElement> {
234
+ /**
235
+ * Renderer-independent RefSubject state consumed by this component or operation.
236
+ * @since 1.0.0
237
+ * @category State connection
238
+ */
239
+ readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
240
+ /**
241
+ * Item registry used for collection-driven keyboard behavior and mounted ordering.
242
+ * @since 1.0.0
243
+ * @category Item registration
244
+ */
245
+ readonly collection?: RefSubject.RefSubject<Collection.State<ItemValue>>;
246
+ /**
247
+ * Accessible label rendered through aria-label.
248
+ * @since 1.0.0
249
+ * @category Accessible naming
250
+ */
251
+ readonly label: Renderable.Any<string | null | undefined>;
252
+ /**
253
+ * Renderable child content for the component host.
254
+ * @since 1.0.0
255
+ * @category Rendered content
256
+ */
257
+ readonly content: Renderable.Any;
258
+ }
259
+ declare function rootInternalProps<const Options extends RootOptions>(options: Options): ({ property }: Dom.InternalPropsHelpers<Options>) => {
260
+ readonly role: "tree";
261
+ readonly "aria-label": Exclude<Dom.Property<Options, "label">, Dom.Nullish> | undefined;
262
+ readonly tabindex: RefSubject.Computed<-1 | 0, Schema.SchemaError, never>;
263
+ readonly onfocus: Effect.Effect<void, Schema.SchemaError, never> | undefined;
264
+ readonly onkeydown: EventHandler.EventHandler<KeyboardEvent, Schema.SchemaError, never> | undefined;
265
+ readonly ref: RefSubject.HydratedRefSubject<State, Schema.SchemaError, never, never>;
266
+ };
267
+ type RootInternalProps<Options extends RootOptions> = ReturnType<ReturnType<typeof rootInternalProps<Options>>>;
268
+ /**
269
+ * Renders the tree root and applies hierarchy-aware keyboard navigation to registered items.
270
+ *
271
+ * @remarks
272
+ * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
273
+ * collection registrations only when rendered. The rendering Scope removes those resources;
274
+ * unrelated nodes and attributes remain caller-owned.
275
+ *
276
+ * @since 1.0.0
277
+ * @category Tree surface
278
+ */
279
+ export declare function Root<const Options extends RootOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, RootInternalProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
280
+ /**
281
+ * Inputs accepted by Tree.Item in addition to the shared DOM host options.
282
+ *
283
+ * @since 1.0.0
284
+ * @category Tree nodes
285
+ */
286
+ export interface ItemOptions extends Dom.HostOptions<HTMLDivElement> {
287
+ /**
288
+ * Renderer-independent RefSubject state consumed by this component or operation.
289
+ * @since 1.0.0
290
+ * @category State connection
291
+ */
292
+ readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
293
+ /**
294
+ * Item registry used for collection-driven keyboard behavior and mounted ordering.
295
+ * @since 1.0.0
296
+ * @category Item registration
297
+ */
298
+ readonly collection?: RefSubject.RefSubject<Collection.State<ItemValue>>;
299
+ /**
300
+ * Stable id used for collection identity and ARIA relationships.
301
+ * @since 1.0.0
302
+ * @category Identity and relationships
303
+ */
304
+ readonly id: string;
305
+ /**
306
+ * Id whose expansion controls this descendant group.
307
+ * @since 1.0.0
308
+ * @category Hierarchy
309
+ */
310
+ readonly parentId?: string;
311
+ /**
312
+ * One-based hierarchy level exposed through aria-level.
313
+ * @since 1.0.0
314
+ * @category Hierarchy
315
+ */
316
+ readonly level?: number;
317
+ /**
318
+ * Whether aria-expanded is emitted and hierarchical keys may open descendants.
319
+ * @since 1.0.0
320
+ * @category Hierarchy
321
+ */
322
+ readonly hasChildren?: boolean;
323
+ /**
324
+ * Flag used by collection movement and widget handlers to skip activation by default.
325
+ * @since 1.0.0
326
+ * @category Availability
327
+ */
328
+ readonly disabled?: boolean;
329
+ /**
330
+ * Renderable child content for the component host.
331
+ * @since 1.0.0
332
+ * @category Rendered content
333
+ */
334
+ readonly content: Renderable.Any;
335
+ }
336
+ declare function itemInternalProps<const Options extends ItemOptions>(options: Options): ({ property }: Dom.InternalPropsHelpers<Options>) => {
337
+ readonly id: string;
338
+ readonly role: "treeitem";
339
+ readonly "aria-level": 1 | Exclude<Dom.Property<Options, "level">, Dom.Nullish>;
340
+ readonly "aria-expanded": RefSubject.Computed<boolean, Schema.SchemaError, never> | undefined;
341
+ readonly "aria-disabled": boolean;
342
+ readonly tabindex: RefSubject.Computed<-1 | 0, Schema.SchemaError, never>;
343
+ readonly onfocus: Effect.Effect<State, Schema.SchemaError, never>;
344
+ readonly onclick: Effect.Effect<void, never, never> | Effect.Effect<State, Schema.SchemaError, never>;
345
+ readonly ref: ((element: Element & HTMLDivElement & RefSubject.HydrationElement) => Effect.Effect<void, any, any>) | undefined;
346
+ };
347
+ type ItemInternalProps<Options extends ItemOptions> = ReturnType<ReturnType<typeof itemInternalProps<Options>>>;
348
+ /**
349
+ * Renders and optionally registers a treeitem with level, expanded, disabled, and roving-focus
350
+ * state.
351
+ *
352
+ * @remarks
353
+ * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
354
+ * collection registrations only when rendered. The rendering Scope removes those resources;
355
+ * unrelated nodes and attributes remain caller-owned.
356
+ *
357
+ * @since 1.0.0
358
+ * @category Tree nodes
359
+ */
360
+ export declare function Item<const Options extends ItemOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, ItemInternalProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
361
+ /**
362
+ * Inputs accepted by Tree.Group in addition to the shared DOM host options.
363
+ *
364
+ * @since 1.0.0
365
+ * @category Child visibility
366
+ */
367
+ export interface GroupOptions extends Dom.HostOptions<HTMLDivElement> {
368
+ /**
369
+ * Renderer-independent RefSubject state consumed by this component or operation.
370
+ * @since 1.0.0
371
+ * @category State connection
372
+ */
373
+ readonly state: RefSubject.HydratedRefSubject<State, Schema.SchemaError>;
374
+ /**
375
+ * Id whose expansion controls this descendant group.
376
+ * @since 1.0.0
377
+ * @category Hierarchy
378
+ */
379
+ readonly parentId: string;
380
+ /**
381
+ * Renderable child content for the component host.
382
+ * @since 1.0.0
383
+ * @category Rendered content
384
+ */
385
+ readonly content: Renderable.Any;
386
+ }
387
+ declare function groupInternalProps<const Options extends GroupOptions>(options: Options): () => {
388
+ readonly role: "group";
389
+ readonly "?hidden": RefSubject.Computed<boolean, Schema.SchemaError, never>;
390
+ };
391
+ type GroupInternalProps<Options extends GroupOptions> = ReturnType<ReturnType<typeof groupInternalProps<Options>>>;
392
+ /**
393
+ * Renders a child group and hides it while its parent id is not expanded.
394
+ *
395
+ * @remarks
396
+ * The returned Fx installs DOM refs, native listeners, state subscriptions, and optional
397
+ * collection registrations only when rendered. The rendering Scope removes those resources;
398
+ * unrelated nodes and attributes remain caller-owned.
399
+ *
400
+ * @since 1.0.0
401
+ * @category Child visibility
402
+ */
403
+ export declare function Group<const Options extends GroupOptions, const Host extends HostResult = never>(options: Options, host?: Dom.HostOverride<Dom.RenderHostProps<Options, GroupInternalProps<Options>>, Options["content"], Host>): Fx<RenderEvent, Renderable.Error<Options | Host>, Renderable.Services<Options | Host> | Scope.Scope | RenderTemplate>;
404
+ export {};
405
+ //# sourceMappingURL=Tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"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"}