@zeyos/zx 2.2.1 → 3.0.0

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 (117) hide show
  1. package/CHANGELOG.md +197 -0
  2. package/DESIGN-SYSTEM.md +136 -0
  3. package/MIGRATION.md +155 -4
  4. package/README.md +51 -14
  5. package/dist/types/compat/map/data.d.ts +3 -2
  6. package/dist/types/components/account-menu/account-menu.d.ts +144 -0
  7. package/dist/types/components/app-rail/app-rail.d.ts +250 -0
  8. package/dist/types/components/app-sidebar/app-sidebar.d.ts +169 -0
  9. package/dist/types/components/avatar/avatar.d.ts +100 -0
  10. package/dist/types/components/chart/chart.d.ts +321 -0
  11. package/dist/types/components/date-picker/month-picker.d.ts +6 -0
  12. package/dist/types/components/dialog/dialog.d.ts +9 -0
  13. package/dist/types/components/dock/dock.d.ts +495 -0
  14. package/dist/types/components/dropdown/dropdown.d.ts +2 -2
  15. package/dist/types/components/field/field.d.ts +14 -0
  16. package/dist/types/components/field-upload/field-upload.d.ts +37 -4
  17. package/dist/types/components/form/form.d.ts +25 -3
  18. package/dist/types/components/grid/grid.d.ts +172 -0
  19. package/dist/types/components/launcher/launcher.d.ts +300 -0
  20. package/dist/types/components/layout/layout.d.ts +4 -4
  21. package/dist/types/components/menu-button/menu-button.d.ts +10 -2
  22. package/dist/types/components/modal/modal.d.ts +25 -0
  23. package/dist/types/components/multi-value-editor/multi-value-editor.d.ts +74 -9
  24. package/dist/types/components/questionnaire/items.d.ts +327 -0
  25. package/dist/types/components/questionnaire/questionnaire.d.ts +449 -0
  26. package/dist/types/components/select/select.d.ts +36 -1
  27. package/dist/types/components/sheet/sheet-stack.d.ts +167 -0
  28. package/dist/types/components/sheet/sheet.d.ts +294 -0
  29. package/dist/types/components/split-view/split-view.d.ts +2 -21
  30. package/dist/types/components/tabbox/tabbox.d.ts +12 -3
  31. package/dist/types/components/table/table.d.ts +219 -12
  32. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  33. package/dist/types/components/value-list/value-list.d.ts +24 -3
  34. package/dist/types/core/dom.d.ts +114 -0
  35. package/dist/types/core/drag-axis.d.ts +111 -0
  36. package/dist/types/core/position.d.ts +4 -2
  37. package/dist/types/index.d.ts +12 -2
  38. package/dist/zx-compat.esm.js +943 -311
  39. package/dist/zx-compat.esm.min.js +1 -1
  40. package/dist/zx-compat.global.js +7893 -2252
  41. package/dist/zx-compat.global.min.js +3 -3
  42. package/dist/zx-zeyos.esm.js +826 -114
  43. package/dist/zx-zeyos.esm.min.js +1 -1
  44. package/dist/zx.css +1720 -243
  45. package/dist/zx.esm.js +8227 -2599
  46. package/dist/zx.esm.min.js +3 -3
  47. package/dist/zx.global.js +8227 -2599
  48. package/dist/zx.global.min.js +3 -3
  49. package/dist/zx.min.css +1 -1
  50. package/docs/api.json +2597 -255
  51. package/docs/llms.md +475 -37
  52. package/docs/llms.txt +21 -9
  53. package/package.json +4 -2
  54. package/src/compat/globals.js +3 -1
  55. package/src/compat/map/data.js +31 -9
  56. package/src/components/account-menu/account-menu.css +70 -0
  57. package/src/components/account-menu/account-menu.js +208 -0
  58. package/src/components/app-rail/app-rail.css +107 -0
  59. package/src/components/app-rail/app-rail.js +668 -0
  60. package/src/components/app-sidebar/app-sidebar.css +68 -0
  61. package/src/components/app-sidebar/app-sidebar.js +388 -0
  62. package/src/components/avatar/avatar.css +61 -0
  63. package/src/components/avatar/avatar.js +222 -0
  64. package/src/components/button/button.css +0 -1
  65. package/src/components/chart/chart.css +61 -0
  66. package/src/components/chart/chart.js +518 -0
  67. package/src/components/date-picker/date-range-picker.css +7 -0
  68. package/src/components/date-picker/month-picker.js +9 -0
  69. package/src/components/dialog/dialog.js +11 -4
  70. package/src/components/dock/dock.css +228 -0
  71. package/src/components/dock/dock.js +977 -0
  72. package/src/components/dropdown/dropdown.js +1 -1
  73. package/src/components/field/field.js +2 -0
  74. package/src/components/field-upload/field-upload.js +9 -4
  75. package/src/components/fieldset/fieldset.css +7 -0
  76. package/src/components/form/form.css +7 -0
  77. package/src/components/form/form.js +6 -3
  78. package/src/components/grid/grid.css +6 -0
  79. package/src/components/grid/grid.js +213 -0
  80. package/src/components/launcher/launcher.css +100 -0
  81. package/src/components/launcher/launcher.js +557 -0
  82. package/src/components/layout/layout.js +2 -2
  83. package/src/components/menu-button/menu-button.js +27 -2
  84. package/src/components/modal/modal.css +5 -1
  85. package/src/components/modal/modal.js +37 -2
  86. package/src/components/multi-value-editor/multi-value-editor.css +99 -15
  87. package/src/components/multi-value-editor/multi-value-editor.js +237 -19
  88. package/src/components/navigation-bar/navigation-bar.css +7 -0
  89. package/src/components/questionnaire/items.js +370 -0
  90. package/src/components/questionnaire/questionnaire.css +387 -0
  91. package/src/components/questionnaire/questionnaire.js +1033 -0
  92. package/src/components/search/search.css +10 -2
  93. package/src/components/select/select.css +6 -1
  94. package/src/components/select/select.js +99 -11
  95. package/src/components/sheet/sheet-stack.js +304 -0
  96. package/src/components/sheet/sheet.css +351 -0
  97. package/src/components/sheet/sheet.js +551 -0
  98. package/src/components/split-view/split-view.js +76 -161
  99. package/src/components/stepper/stepper.css +12 -2
  100. package/src/components/tabbox/tabbox.css +13 -3
  101. package/src/components/tabbox/tabbox.js +34 -10
  102. package/src/components/table/table.css +43 -0
  103. package/src/components/table/table.js +523 -45
  104. package/src/components/tooltip/tooltip.js +5 -2
  105. package/src/components/value-list/value-list.js +6 -3
  106. package/src/core/dom.js +302 -0
  107. package/src/core/drag-axis.js +203 -0
  108. package/src/core/position.js +68 -22
  109. package/src/index.js +19 -2
  110. package/styles/tokens/dark.css +15 -13
  111. package/styles/tokens/global.css +17 -5
  112. package/styles/tokens/semantic.css +14 -8
  113. package/styles/tokens/themes.css +72 -0
  114. package/styles/zx.css +11 -1
  115. package/dist/types/components/permission/permission.d.ts +0 -93
  116. package/src/components/permission/permission.css +0 -47
  117. package/src/components/permission/permission.js +0 -198
package/docs/api.json CHANGED
@@ -1,27 +1,512 @@
1
1
  {
2
+ "AccountMenu": {
3
+ "options": [
4
+ {
5
+ "name": "account",
6
+ "type": "AccountIdentity",
7
+ "default": "{}",
8
+ "description": "Account presentation supplied by the application."
9
+ },
10
+ {
11
+ "name": "items",
12
+ "type": "MenuButtonItem[]",
13
+ "default": "[]",
14
+ "description": "Account actions and `'-'` separators."
15
+ },
16
+ {
17
+ "name": "compact",
18
+ "type": "boolean",
19
+ "default": "false",
20
+ "description": "Whether only the avatar is visually shown in the trigger."
21
+ },
22
+ {
23
+ "name": "label",
24
+ "type": "string|null",
25
+ "default": "null",
26
+ "description": "Trigger label; defaults to `Account menu for <name>`."
27
+ },
28
+ {
29
+ "name": "placement",
30
+ "type": "'bottom-start'|'bottom-end'|'top-start'|'top-end'|'bottom'|'top'|'right-start'|'right-end'|'left-start'|'left-end'|'right'|'left'",
31
+ "default": "'top-start'",
32
+ "description": "Popup placement."
33
+ }
34
+ ],
35
+ "events": [
36
+ {
37
+ "name": "select",
38
+ "payload": "{value: unknown, item: object}",
39
+ "description": "Preventable action listener."
40
+ },
41
+ {
42
+ "name": "open",
43
+ "payload": "Record<string, never>",
44
+ "description": "Open listener."
45
+ },
46
+ {
47
+ "name": "close",
48
+ "payload": "Record<string, never>",
49
+ "description": "Close listener."
50
+ }
51
+ ],
52
+ "methods": [
53
+ {
54
+ "name": "open",
55
+ "signature": "open()",
56
+ "returns": "this",
57
+ "description": "Opens the account menu."
58
+ },
59
+ {
60
+ "name": "close",
61
+ "signature": "close()",
62
+ "returns": "this",
63
+ "description": "Closes the account menu."
64
+ },
65
+ {
66
+ "name": "toggle",
67
+ "signature": "toggle()",
68
+ "returns": "this",
69
+ "description": "Toggles the account menu."
70
+ },
71
+ {
72
+ "name": "isOpen",
73
+ "signature": "isOpen()",
74
+ "returns": "boolean",
75
+ "description": "Reports whether the menu is open."
76
+ },
77
+ {
78
+ "name": "setAccount",
79
+ "signature": "setAccount(account)",
80
+ "returns": "this",
81
+ "description": "Replaces account presentation without touching session state."
82
+ },
83
+ {
84
+ "name": "setItems",
85
+ "signature": "setItems(items)",
86
+ "returns": "this",
87
+ "description": "Replaces account actions."
88
+ },
89
+ {
90
+ "name": "focus",
91
+ "signature": "focus()",
92
+ "returns": "this",
93
+ "description": "Focuses the account trigger."
94
+ },
95
+ {
96
+ "name": "getPanel",
97
+ "signature": "getPanel()",
98
+ "returns": "HTMLElement",
99
+ "description": "Returns the underlying menu panel for shell hover/focus coordination."
100
+ },
101
+ {
102
+ "name": "destroy",
103
+ "signature": "destroy()",
104
+ "returns": "void",
105
+ "description": "Destroys child components and restores/removes the host."
106
+ }
107
+ ]
108
+ },
109
+ "Alert": {
110
+ "options": [
111
+ {
112
+ "name": "title",
113
+ "type": "string",
114
+ "default": "''",
115
+ "description": "Alert title."
116
+ },
117
+ {
118
+ "name": "message",
119
+ "type": "Node|string|number|null",
120
+ "default": "''",
121
+ "description": "Alert message."
122
+ },
123
+ {
124
+ "name": "okLabel",
125
+ "type": "string",
126
+ "default": "'OK'",
127
+ "description": "Confirmation label."
128
+ }
129
+ ],
130
+ "events": [],
131
+ "methods": []
132
+ },
133
+ "AppRail": {
134
+ "options": [
135
+ {
136
+ "name": "items",
137
+ "type": "AppNavItem[]",
138
+ "default": "[]",
139
+ "description": "Application navigation tree."
140
+ },
141
+ {
142
+ "name": "active",
143
+ "type": "string|number|null",
144
+ "default": "null",
145
+ "description": "Active item id."
146
+ },
147
+ {
148
+ "name": "orientation",
149
+ "type": "'vertical'|'horizontal'",
150
+ "default": "'vertical'",
151
+ "description": "Rail flow."
152
+ },
153
+ {
154
+ "name": "side",
155
+ "type": "'left'|'right'|'top'|'bottom'",
156
+ "default": "'left'",
157
+ "description": "Workspace edge occupied by the rail."
158
+ },
159
+ {
160
+ "name": "label",
161
+ "type": "string",
162
+ "default": "'Applications'",
163
+ "description": "Navigation accessible label."
164
+ },
165
+ {
166
+ "name": "header",
167
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
168
+ "default": "null",
169
+ "description": "Leading rail content."
170
+ },
171
+ {
172
+ "name": "footer",
173
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
174
+ "default": "null",
175
+ "description": "Trailing rail content."
176
+ },
177
+ {
178
+ "name": "openDelay",
179
+ "type": "number",
180
+ "default": "80",
181
+ "description": "Hover-open delay in milliseconds."
182
+ },
183
+ {
184
+ "name": "closeDelay",
185
+ "type": "number",
186
+ "default": "160",
187
+ "description": "Pointer/focus crossing grace in milliseconds."
188
+ }
189
+ ],
190
+ "events": [
191
+ {
192
+ "name": "select",
193
+ "payload": "{item, id, value, href, event}",
194
+ "description": "Preventable action listener."
195
+ },
196
+ {
197
+ "name": "flyoutchange",
198
+ "payload": "{item: AppNavItem, id: string|number, open: boolean}",
199
+ "description": "Flyout-state listener."
200
+ }
201
+ ],
202
+ "methods": [
203
+ {
204
+ "name": "setItems",
205
+ "signature": "setItems(items)",
206
+ "returns": "this",
207
+ "description": "Replaces navigation items and closes removed flyouts."
208
+ },
209
+ {
210
+ "name": "setActive",
211
+ "signature": "setActive(id)",
212
+ "returns": "this",
213
+ "description": "Sets the active item without routing."
214
+ },
215
+ {
216
+ "name": "getItems",
217
+ "signature": "getItems()",
218
+ "returns": "AppNavItem[]",
219
+ "description": "Returns a shallow copy of normalized items."
220
+ },
221
+ {
222
+ "name": "openFlyout",
223
+ "signature": "openFlyout(id, [options])",
224
+ "returns": "this",
225
+ "description": "Opens one item's flyout, optionally focusing its first action."
226
+ },
227
+ {
228
+ "name": "closeFlyout",
229
+ "signature": "closeFlyout(id)",
230
+ "returns": "this",
231
+ "description": "Closes one flyout."
232
+ },
233
+ {
234
+ "name": "closeAllFlyouts",
235
+ "signature": "closeAllFlyouts()",
236
+ "returns": "this",
237
+ "description": "Closes every flyout and cancels pending hover/focus transitions."
238
+ },
239
+ {
240
+ "name": "isFlyoutOpen",
241
+ "signature": "isFlyoutOpen(id)",
242
+ "returns": "boolean",
243
+ "description": "Reports whether an item's flyout is open."
244
+ },
245
+ {
246
+ "name": "focus",
247
+ "signature": "focus()",
248
+ "returns": "this",
249
+ "description": "Focuses the first top-level rail item."
250
+ },
251
+ {
252
+ "name": "destroy",
253
+ "signature": "destroy()",
254
+ "returns": "void",
255
+ "description": "Destroys body popovers/tooltips and restores or removes the root."
256
+ }
257
+ ]
258
+ },
259
+ "AppSidebar": {
260
+ "options": [
261
+ {
262
+ "name": "items",
263
+ "type": "AppNavItem[]",
264
+ "default": "[]",
265
+ "description": "Application navigation tree."
266
+ },
267
+ {
268
+ "name": "active",
269
+ "type": "string|number|null",
270
+ "default": "null",
271
+ "description": "Active item id."
272
+ },
273
+ {
274
+ "name": "expanded",
275
+ "type": "Array<string|number>",
276
+ "default": "[]",
277
+ "description": "Initially expanded branch ids."
278
+ },
279
+ {
280
+ "name": "collapsed",
281
+ "type": "boolean",
282
+ "default": "false",
283
+ "description": "Whether the minimized AppRail is shown."
284
+ },
285
+ {
286
+ "name": "side",
287
+ "type": "'left'|'right'",
288
+ "default": "'left'",
289
+ "description": "Workspace side."
290
+ },
291
+ {
292
+ "name": "label",
293
+ "type": "string",
294
+ "default": "'Applications'",
295
+ "description": "Navigation accessible label."
296
+ },
297
+ {
298
+ "name": "header",
299
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
300
+ "default": "null",
301
+ "description": "Expanded header content."
302
+ },
303
+ {
304
+ "name": "footer",
305
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
306
+ "default": "null",
307
+ "description": "Expanded sticky footer content."
308
+ },
309
+ {
310
+ "name": "railHeader",
311
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
312
+ "default": "null",
313
+ "description": "Minimized rail header content."
314
+ },
315
+ {
316
+ "name": "railFooter",
317
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
318
+ "default": "null",
319
+ "description": "Minimized rail footer content."
320
+ }
321
+ ],
322
+ "events": [
323
+ {
324
+ "name": "select",
325
+ "payload": "{item, id, value, href, event}",
326
+ "description": "Preventable action listener."
327
+ },
328
+ {
329
+ "name": "branchchange",
330
+ "payload": "{item: AppNavItem|null, id: string|number|null, expanded: boolean|null, ids: Array<string|number>}",
331
+ "description": "Branch-state listener; bulk replacement reports null state."
332
+ },
333
+ {
334
+ "name": "collapsechange",
335
+ "payload": "{collapsed: boolean}",
336
+ "description": "Presentation-state listener."
337
+ }
338
+ ],
339
+ "methods": [
340
+ {
341
+ "name": "setItems",
342
+ "signature": "setItems(items)",
343
+ "returns": "this",
344
+ "description": "Replaces the navigation tree in both expanded and rail presentations."
345
+ },
346
+ {
347
+ "name": "setActive",
348
+ "signature": "setActive(id)",
349
+ "returns": "this",
350
+ "description": "Sets the active id in both presentations without routing."
351
+ },
352
+ {
353
+ "name": "setExpanded",
354
+ "signature": "setExpanded(ids, [options])",
355
+ "returns": "this",
356
+ "description": "Replaces expanded branch ids."
357
+ },
358
+ {
359
+ "name": "getExpanded",
360
+ "signature": "getExpanded()",
361
+ "returns": "Array<string|number>",
362
+ "description": "Returns expanded branch ids in navigation order."
363
+ },
364
+ {
365
+ "name": "toggleBranch",
366
+ "signature": "toggleBranch(id, [options])",
367
+ "returns": "this",
368
+ "description": "Toggles one inline branch."
369
+ },
370
+ {
371
+ "name": "expand",
372
+ "signature": "expand([options])",
373
+ "returns": "this",
374
+ "description": "Shows the expanded sidebar presentation."
375
+ },
376
+ {
377
+ "name": "collapse",
378
+ "signature": "collapse([options])",
379
+ "returns": "this",
380
+ "description": "Shows the minimized AppRail presentation."
381
+ },
382
+ {
383
+ "name": "setCollapsed",
384
+ "signature": "setCollapsed(collapsed, [options])",
385
+ "returns": "this",
386
+ "description": "Sets expanded/minimized presentation while preserving branch state."
387
+ },
388
+ {
389
+ "name": "isCollapsed",
390
+ "signature": "isCollapsed()",
391
+ "returns": "boolean",
392
+ "description": "Reports whether the rail presentation is active."
393
+ },
394
+ {
395
+ "name": "getRail",
396
+ "signature": "getRail()",
397
+ "returns": "AppRail",
398
+ "description": "Returns the composed minimized rail."
399
+ },
400
+ {
401
+ "name": "destroy",
402
+ "signature": "destroy()",
403
+ "returns": "void",
404
+ "description": "Destroys the rail and restores/removes the sidebar host."
405
+ }
406
+ ]
407
+ },
2
408
  "Aspect": {
3
409
  "options": [
4
410
  {
5
- "name": "ratio",
6
- "type": "string",
7
- "default": "'16 / 9'",
8
- "description": "Aspect ratio of the box."
411
+ "name": "ratio",
412
+ "type": "string",
413
+ "default": "'16 / 9'",
414
+ "description": "Aspect ratio of the box."
415
+ },
416
+ {
417
+ "name": "fit",
418
+ "type": "'cover'|'contain'|'fill'",
419
+ "default": "'cover'",
420
+ "description": "How the single child fills the box."
421
+ },
422
+ {
423
+ "name": "class",
424
+ "type": "string",
425
+ "default": "''",
426
+ "description": "Extra class names."
427
+ }
428
+ ],
429
+ "events": [],
430
+ "methods": []
431
+ },
432
+ "Avatar": {
433
+ "options": [
434
+ {
435
+ "name": "src",
436
+ "type": "string|null",
437
+ "default": "null",
438
+ "description": "Image URL."
439
+ },
440
+ {
441
+ "name": "name",
442
+ "type": "string",
443
+ "default": "''",
444
+ "description": "Name used to derive fallback initials."
445
+ },
446
+ {
447
+ "name": "initials",
448
+ "type": "string|null",
449
+ "default": "null",
450
+ "description": "Explicit fallback initials."
451
+ },
452
+ {
453
+ "name": "label",
454
+ "type": "string|null",
455
+ "default": "null",
456
+ "description": "Accessible label; null makes the avatar decorative."
9
457
  },
10
458
  {
11
- "name": "fit",
12
- "type": "'cover'|'contain'|'fill'",
13
- "default": "'cover'",
14
- "description": "How the single child fills the box."
459
+ "name": "size",
460
+ "type": "string|number",
461
+ "default": "'md'",
462
+ "description": "Preset (`sm`, `md`, `lg`) or pixel size."
15
463
  },
16
464
  {
17
- "name": "class",
18
- "type": "string",
19
- "default": "''",
20
- "description": "Extra class names."
465
+ "name": "shape",
466
+ "type": "'circle'|'rounded'|'square'",
467
+ "default": "'circle'",
468
+ "description": "Avatar shape."
469
+ },
470
+ {
471
+ "name": "status",
472
+ "type": "'online'|'away'|'busy'|'offline'|null",
473
+ "default": "null",
474
+ "description": "Optional presence state."
475
+ },
476
+ {
477
+ "name": "statusLabel",
478
+ "type": "string|null",
479
+ "default": "null",
480
+ "description": "Text alternative for the presence state."
21
481
  }
22
482
  ],
23
483
  "events": [],
24
- "methods": []
484
+ "methods": [
485
+ {
486
+ "name": "set",
487
+ "signature": "set(values)",
488
+ "returns": "this",
489
+ "description": "Replaces avatar identity and presentation values."
490
+ },
491
+ {
492
+ "name": "setStatus",
493
+ "signature": "setStatus(status, [label])",
494
+ "returns": "this",
495
+ "description": "Sets the presence state and its text alternative."
496
+ },
497
+ {
498
+ "name": "hasImage",
499
+ "signature": "hasImage()",
500
+ "returns": "boolean",
501
+ "description": "Returns whether the image is currently visible."
502
+ },
503
+ {
504
+ "name": "destroy",
505
+ "signature": "destroy()",
506
+ "returns": "void",
507
+ "description": "Restores an enhanced target or removes an owned root."
508
+ }
509
+ ]
25
510
  },
26
511
  "Badge": {
27
512
  "options": [
@@ -71,6 +556,78 @@
71
556
  "events": [],
72
557
  "methods": []
73
558
  },
559
+ "BillingItems": {
560
+ "options": [
561
+ {
562
+ "name": "data",
563
+ "type": "BillingRow[]",
564
+ "default": "[]",
565
+ "description": "Billing rows."
566
+ },
567
+ {
568
+ "name": "fields",
569
+ "type": "Partial<BillingFields>",
570
+ "default": "{}",
571
+ "description": "Schema field overrides."
572
+ },
573
+ {
574
+ "name": "units",
575
+ "type": "Array<{value: unknown, label: string}>|Record<string, string>",
576
+ "default": "[]",
577
+ "description": "Unit choices."
578
+ },
579
+ {
580
+ "name": "currencies",
581
+ "type": "Array<{value: unknown, label: string}>|Record<string, string>",
582
+ "default": "[]",
583
+ "description": "Currency choices."
584
+ },
585
+ {
586
+ "name": "currency",
587
+ "type": "string",
588
+ "default": "'EUR'",
589
+ "description": "Fallback currency."
590
+ },
591
+ {
592
+ "name": "locale",
593
+ "type": "string",
594
+ "default": null,
595
+ "description": "Number/currency locale."
596
+ },
597
+ {
598
+ "name": "decimals",
599
+ "type": "number",
600
+ "default": "2",
601
+ "description": "Currency fraction digits."
602
+ },
603
+ {
604
+ "name": "columnOverrides",
605
+ "type": "Record<string, object>",
606
+ "default": "{}",
607
+ "description": "Per-canonical-column overrides."
608
+ },
609
+ {
610
+ "name": "lineTotal",
611
+ "type": "(row: BillingRow, changes: Record<string, unknown>) => number|null|undefined",
612
+ "default": null,
613
+ "description": "Optional total calculation; defaults to quantity × unit price."
614
+ },
615
+ {
616
+ "name": "columns",
617
+ "type": "import('../table/table.js').TableColumn[]",
618
+ "default": null,
619
+ "description": "Complete column replacement."
620
+ }
621
+ ],
622
+ "events": [
623
+ {
624
+ "name": "editcommit",
625
+ "payload": "import('../table/table.js').TableEditCommitDetail",
626
+ "description": "Caller edit listener, invoked after total calculation."
627
+ }
628
+ ],
629
+ "methods": []
630
+ },
74
631
  "Breadcrumb": {
75
632
  "options": [
76
633
  {
@@ -112,6 +669,12 @@
112
669
  }
113
670
  ],
114
671
  "methods": [
672
+ {
673
+ "name": "setItems",
674
+ "signature": "setItems(list)",
675
+ "returns": "this",
676
+ "description": "Replaces the whole trail."
677
+ },
115
678
  {
116
679
  "name": "getItems",
117
680
  "signature": "getItems()",
@@ -192,6 +755,184 @@
192
755
  ],
193
756
  "methods": []
194
757
  },
758
+ "Chart": {
759
+ "options": [
760
+ {
761
+ "name": "adapter",
762
+ "type": "ChartAdapter|null",
763
+ "default": "null",
764
+ "description": "Injected engine adapter."
765
+ },
766
+ {
767
+ "name": "type",
768
+ "type": "string",
769
+ "default": "'bar'",
770
+ "description": "Chart type passed to the adapter."
771
+ },
772
+ {
773
+ "name": "data",
774
+ "type": "ChartData",
775
+ "default": "{labels: [], datasets: []}",
776
+ "description": "Chart data."
777
+ },
778
+ {
779
+ "name": "chartOptions",
780
+ "type": "Record<string, unknown>",
781
+ "default": "{}",
782
+ "description": "Engine-specific options."
783
+ },
784
+ {
785
+ "name": "label",
786
+ "type": "string",
787
+ "default": "'Chart'",
788
+ "description": "Accessible canvas and summary label; blank text falls back to `Chart`."
789
+ },
790
+ {
791
+ "name": "description",
792
+ "type": "string",
793
+ "default": "''",
794
+ "description": "Accessible description."
795
+ },
796
+ {
797
+ "name": "summary",
798
+ "type": "'hidden'|'visible'",
799
+ "default": "'hidden'",
800
+ "description": "Semantic data-table presentation."
801
+ },
802
+ {
803
+ "name": "loading",
804
+ "type": "boolean",
805
+ "default": "false",
806
+ "description": "Initial loading state."
807
+ },
808
+ {
809
+ "name": "emptyText",
810
+ "type": "string",
811
+ "default": "'No chart data'",
812
+ "description": "Empty-state text."
813
+ },
814
+ {
815
+ "name": "loadingText",
816
+ "type": "string",
817
+ "default": "'Loading chart…'",
818
+ "description": "Loading-state text."
819
+ },
820
+ {
821
+ "name": "errorText",
822
+ "type": "string",
823
+ "default": "'Unable to render chart'",
824
+ "description": "Error fallback text."
825
+ },
826
+ {
827
+ "name": "aspectRatio",
828
+ "type": "string",
829
+ "default": "'16 / 9'",
830
+ "description": "Responsive container aspect ratio."
831
+ }
832
+ ],
833
+ "events": [
834
+ {
835
+ "name": "ready",
836
+ "payload": "{instance: unknown}",
837
+ "description": "Engine-ready listener."
838
+ },
839
+ {
840
+ "name": "update",
841
+ "payload": "{data: ChartData, type: string}",
842
+ "description": "Update listener."
843
+ },
844
+ {
845
+ "name": "select",
846
+ "payload": "{datasetIndex, index, dataset, label, value, nativeEvent}",
847
+ "description": "Point-selection listener."
848
+ },
849
+ {
850
+ "name": "error",
851
+ "payload": "{error: unknown}",
852
+ "description": "Engine error listener."
853
+ }
854
+ ],
855
+ "methods": [
856
+ {
857
+ "name": "setData",
858
+ "signature": "setData(data)",
859
+ "returns": "this",
860
+ "description": "Replaces chart data and updates or mounts the engine."
861
+ },
862
+ {
863
+ "name": "setType",
864
+ "signature": "setType(type)",
865
+ "returns": "this",
866
+ "description": "Changes the chart type and updates/recreates the engine as needed."
867
+ },
868
+ {
869
+ "name": "update",
870
+ "signature": "update(options)",
871
+ "returns": "this",
872
+ "description": "Replaces engine-specific options."
873
+ },
874
+ {
875
+ "name": "setAdapter",
876
+ "signature": "setAdapter(adapter)",
877
+ "returns": "this",
878
+ "description": "Replaces the engine adapter."
879
+ },
880
+ {
881
+ "name": "setLoading",
882
+ "signature": "setLoading([loading])",
883
+ "returns": "this",
884
+ "description": "Toggles loading state. Loading charts do not keep an engine instance alive."
885
+ },
886
+ {
887
+ "name": "setError",
888
+ "signature": "setError(error)",
889
+ "returns": "this",
890
+ "description": "Shows an error and destroys the current engine."
891
+ },
892
+ {
893
+ "name": "clearError",
894
+ "signature": "clearError()",
895
+ "returns": "this",
896
+ "description": "Clears the error and remounts when data and an adapter are available."
897
+ },
898
+ {
899
+ "name": "resize",
900
+ "signature": "resize()",
901
+ "returns": "this",
902
+ "description": "Requests an engine resize."
903
+ },
904
+ {
905
+ "name": "refreshTheme",
906
+ "signature": "refreshTheme()",
907
+ "returns": "this",
908
+ "description": "Re-applies computed theme defaults through the adapter update path."
909
+ },
910
+ {
911
+ "name": "getInstance",
912
+ "signature": "getInstance()",
913
+ "returns": "unknown",
914
+ "description": "Returns the underlying engine instance when the adapter exposes it."
915
+ },
916
+ {
917
+ "name": "destroy",
918
+ "signature": "destroy()",
919
+ "returns": "void",
920
+ "description": "Destroys the engine/observer and restores or removes the host."
921
+ }
922
+ ]
923
+ },
924
+ "ChartJsAdapter": {
925
+ "options": [],
926
+ "events": [],
927
+ "methods": [
928
+ {
929
+ "name": "create",
930
+ "signature": "create(canvas, spec)",
931
+ "returns": "ChartHandle",
932
+ "description": "Creates one Chart.js lifecycle handle."
933
+ }
934
+ ]
935
+ },
195
936
  "CheckButton": {
196
937
  "options": [
197
938
  {
@@ -227,6 +968,12 @@
227
968
  }
228
969
  ],
229
970
  "methods": [
971
+ {
972
+ "name": "get",
973
+ "signature": "get()",
974
+ "returns": "boolean",
975
+ "description": "Returns the current pressed state."
976
+ },
230
977
  {
231
978
  "name": "set",
232
979
  "signature": "set(checked, [options])",
@@ -329,11 +1076,17 @@
329
1076
  }
330
1077
  ],
331
1078
  "methods": [
1079
+ {
1080
+ "name": "setItems",
1081
+ "signature": "setItems(items)",
1082
+ "returns": "this",
1083
+ "description": "Replaces items and derives checked state from `checkedKey` and `defaultChecked`."
1084
+ },
332
1085
  {
333
1086
  "name": "getValues",
334
1087
  "signature": "getValues()",
335
- "returns": null,
336
- "description": "Returns checked IDs in item order. @returns {unknown[]}"
1088
+ "returns": "unknown[]",
1089
+ "description": "Returns checked IDs in item order."
337
1090
  },
338
1091
  {
339
1092
  "name": "setValues",
@@ -344,14 +1097,14 @@
344
1097
  {
345
1098
  "name": "checkAll",
346
1099
  "signature": "checkAll()",
347
- "returns": null,
348
- "description": "Checks every item. @returns {this} @fires Checklist#change"
1100
+ "returns": "this",
1101
+ "description": "Checks every item."
349
1102
  },
350
1103
  {
351
1104
  "name": "uncheckAll",
352
1105
  "signature": "uncheckAll()",
353
- "returns": null,
354
- "description": "Unchecks every item. @returns {this} @fires Checklist#change"
1106
+ "returns": "this",
1107
+ "description": "Unchecks every item."
355
1108
  },
356
1109
  {
357
1110
  "name": "search",
@@ -359,14 +1112,56 @@
359
1112
  "returns": "this",
360
1113
  "description": "Filters visible items by label."
361
1114
  },
1115
+ {
1116
+ "name": "reload",
1117
+ "signature": "reload()",
1118
+ "returns": "Promise<this>",
1119
+ "description": "Reloads items through the configured async loader."
1120
+ },
362
1121
  {
363
1122
  "name": "destroy",
364
1123
  "signature": "destroy()",
365
- "returns": null,
366
- "description": "Restores an enhanced target and invalidates pending loads. @returns {void}"
1124
+ "returns": "void",
1125
+ "description": "Restores an enhanced target and invalidates pending loads."
367
1126
  }
368
1127
  ]
369
1128
  },
1129
+ "Confirm": {
1130
+ "options": [
1131
+ {
1132
+ "name": "title",
1133
+ "type": "string",
1134
+ "default": "''",
1135
+ "description": "Confirmation title."
1136
+ },
1137
+ {
1138
+ "name": "message",
1139
+ "type": "Node|string|number|null",
1140
+ "default": "''",
1141
+ "description": "Confirmation message."
1142
+ },
1143
+ {
1144
+ "name": "okLabel",
1145
+ "type": "string",
1146
+ "default": "'OK'",
1147
+ "description": "Confirmation label."
1148
+ },
1149
+ {
1150
+ "name": "cancelLabel",
1151
+ "type": "string",
1152
+ "default": "'Cancel'",
1153
+ "description": "Cancellation label."
1154
+ },
1155
+ {
1156
+ "name": "danger",
1157
+ "type": "boolean",
1158
+ "default": "false",
1159
+ "description": "Whether the confirmation action is dangerous."
1160
+ }
1161
+ ],
1162
+ "events": [],
1163
+ "methods": []
1164
+ },
370
1165
  "ContextMenu": {
371
1166
  "options": [
372
1167
  {
@@ -545,6 +1340,12 @@
545
1340
  }
546
1341
  ],
547
1342
  "methods": [
1343
+ {
1344
+ "name": "get",
1345
+ "signature": "get()",
1346
+ "returns": "string",
1347
+ "description": "Returns the current value."
1348
+ },
548
1349
  {
549
1350
  "name": "set",
550
1351
  "signature": "set(value)",
@@ -560,8 +1361,8 @@
560
1361
  {
561
1362
  "name": "destroy",
562
1363
  "signature": "destroy()",
563
- "returns": null,
564
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
1364
+ "returns": "void",
1365
+ "description": "Restores an enhanced target to the markup it had before the takeover."
565
1366
  }
566
1367
  ]
567
1368
  },
@@ -600,6 +1401,12 @@
600
1401
  }
601
1402
  ],
602
1403
  "methods": [
1404
+ {
1405
+ "name": "setData",
1406
+ "signature": "setData(rows)",
1407
+ "returns": "this",
1408
+ "description": "Replaces source rows and refreshes auto-derived select options."
1409
+ },
603
1410
  {
604
1411
  "name": "apply",
605
1412
  "signature": "apply()",
@@ -627,8 +1434,8 @@
627
1434
  {
628
1435
  "name": "destroy",
629
1436
  "signature": "destroy()",
630
- "returns": null,
631
- "description": "Restores enhanced content and user-owned custom controls. @returns {void}"
1437
+ "returns": "void",
1438
+ "description": "Restores enhanced content and user-owned custom controls."
632
1439
  }
633
1440
  ]
634
1441
  },
@@ -684,6 +1491,12 @@
684
1491
  }
685
1492
  ],
686
1493
  "methods": [
1494
+ {
1495
+ "name": "get",
1496
+ "signature": "get()",
1497
+ "returns": "Date|null",
1498
+ "description": "Returns a copy of the selected date."
1499
+ },
687
1500
  {
688
1501
  "name": "set",
689
1502
  "signature": "set(date, [options])",
@@ -699,8 +1512,8 @@
699
1512
  {
700
1513
  "name": "destroy",
701
1514
  "signature": "destroy()",
702
- "returns": null,
703
- "description": "Cleans up an appended time picker and generated host content. @returns {void}"
1515
+ "returns": "void",
1516
+ "description": "Cleans up an appended time picker and generated host content."
704
1517
  }
705
1518
  ]
706
1519
  },
@@ -820,6 +1633,12 @@
820
1633
  }
821
1634
  ],
822
1635
  "methods": [
1636
+ {
1637
+ "name": "get",
1638
+ "signature": "get([unit])",
1639
+ "returns": "DateRange|DateRangeSeconds",
1640
+ "description": "Returns the selected range as dates or as Unix timestamps."
1641
+ },
823
1642
  {
824
1643
  "name": "set",
825
1644
  "signature": "set(range, [options])",
@@ -847,26 +1666,26 @@
847
1666
  {
848
1667
  "name": "enable",
849
1668
  "signature": "enable()",
850
- "returns": null,
851
- "description": "Enables the box. @returns {this}"
1669
+ "returns": "this",
1670
+ "description": "Enables the box."
852
1671
  },
853
1672
  {
854
1673
  "name": "disable",
855
1674
  "signature": "disable()",
856
- "returns": null,
857
- "description": "Disables the box and closes its popover. @returns {this}"
1675
+ "returns": "this",
1676
+ "description": "Disables the box and closes its popover."
858
1677
  },
859
1678
  {
860
1679
  "name": "focus",
861
1680
  "signature": "focus()",
862
- "returns": null,
863
- "description": "Moves focus to the text input. @returns {this}"
1681
+ "returns": "this",
1682
+ "description": "Moves focus to the text input."
864
1683
  },
865
1684
  {
866
1685
  "name": "destroy",
867
1686
  "signature": "destroy()",
868
- "returns": null,
869
- "description": "Cleans up the open popover, child picker, and generated host content. @returns {void}"
1687
+ "returns": "void",
1688
+ "description": "Cleans up the open popover, child picker, and generated host content."
870
1689
  }
871
1690
  ]
872
1691
  },
@@ -957,6 +1776,12 @@
957
1776
  }
958
1777
  ],
959
1778
  "methods": [
1779
+ {
1780
+ "name": "get",
1781
+ "signature": "get()",
1782
+ "returns": "DateRange",
1783
+ "description": "Returns copies of the selected endpoints; the internal dates are never handed out."
1784
+ },
960
1785
  {
961
1786
  "name": "set",
962
1787
  "signature": "set([range], [options])",
@@ -978,20 +1803,20 @@
978
1803
  {
979
1804
  "name": "enable",
980
1805
  "signature": "enable()",
981
- "returns": null,
982
- "description": "Enables every control. @returns {this}"
1806
+ "returns": "this",
1807
+ "description": "Enables every control."
983
1808
  },
984
1809
  {
985
1810
  "name": "disable",
986
1811
  "signature": "disable()",
987
- "returns": null,
988
- "description": "Disables every control. @returns {this}"
1812
+ "returns": "this",
1813
+ "description": "Disables every control."
989
1814
  },
990
1815
  {
991
1816
  "name": "destroy",
992
1817
  "signature": "destroy()",
993
- "returns": null,
994
- "description": "Removes generated content and restores the host element's attributes. @returns {void}"
1818
+ "returns": "void",
1819
+ "description": "Removes generated content and restores the host element's attributes."
995
1820
  }
996
1821
  ]
997
1822
  },
@@ -1069,6 +1894,12 @@
1069
1894
  }
1070
1895
  ],
1071
1896
  "methods": [
1897
+ {
1898
+ "name": "get",
1899
+ "signature": "get([unit])",
1900
+ "returns": "Date|number|null",
1901
+ "description": "Returns the selected date or Unix timestamp."
1902
+ },
1072
1903
  {
1073
1904
  "name": "set",
1074
1905
  "signature": "set(value, [options])",
@@ -1090,26 +1921,26 @@
1090
1921
  {
1091
1922
  "name": "enable",
1092
1923
  "signature": "enable()",
1093
- "returns": null,
1094
- "description": "Enables the datebox. @returns {this}"
1924
+ "returns": "this",
1925
+ "description": "Enables the datebox."
1095
1926
  },
1096
1927
  {
1097
1928
  "name": "disable",
1098
1929
  "signature": "disable()",
1099
- "returns": null,
1100
- "description": "Disables the datebox and closes its popover. @returns {this}"
1930
+ "returns": "this",
1931
+ "description": "Disables the datebox and closes its popover."
1101
1932
  },
1102
1933
  {
1103
1934
  "name": "focus",
1104
1935
  "signature": "focus()",
1105
- "returns": null,
1106
- "description": "Moves focus to the text input. @returns {this}"
1936
+ "returns": "this",
1937
+ "description": "Moves focus to the text input."
1107
1938
  },
1108
1939
  {
1109
1940
  "name": "destroy",
1110
1941
  "signature": "destroy()",
1111
- "returns": null,
1112
- "description": "Cleans up the open popover, child picker, and generated host content. @returns {void}"
1942
+ "returns": "void",
1943
+ "description": "Cleans up the open popover, child picker, and generated host content."
1113
1944
  }
1114
1945
  ]
1115
1946
  },
@@ -1119,29 +1950,57 @@
1119
1950
  "name": "title",
1120
1951
  "type": "string",
1121
1952
  "default": "''",
1122
- "description": "Prompt title."
1953
+ "description": "Dialog title."
1123
1954
  },
1124
1955
  {
1125
- "name": "message",
1126
- "type": "Node|string|number|null",
1127
- "default": "''",
1128
- "description": "Prompt message."
1956
+ "name": "size",
1957
+ "type": "'sm'|'md'|'lg'|number",
1958
+ "default": "'md'",
1959
+ "description": "Preset or pixel width."
1129
1960
  },
1130
1961
  {
1131
- "name": "value",
1132
- "type": "string",
1133
- "default": "''",
1134
- "description": "Initial input value."
1962
+ "name": "buttons",
1963
+ "type": "DialogButton[]",
1964
+ "default": "[]",
1965
+ "description": "Footer buttons."
1135
1966
  },
1136
1967
  {
1137
- "name": "placeholder",
1138
- "type": "string",
1139
- "default": "''",
1140
- "description": "Input placeholder."
1968
+ "name": "closable",
1969
+ "type": "boolean",
1970
+ "default": "true",
1971
+ "description": "Whether Escape and the header button may close the dialog."
1972
+ },
1973
+ {
1974
+ "name": "content",
1975
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
1976
+ "default": "null",
1977
+ "description": "Body content."
1978
+ }
1979
+ ],
1980
+ "events": [
1981
+ {
1982
+ "name": "open",
1983
+ "payload": "Record<string, never>",
1984
+ "description": "Open event listener."
1985
+ },
1986
+ {
1987
+ "name": "close",
1988
+ "payload": "{result: unknown}",
1989
+ "description": "Close event listener."
1990
+ },
1991
+ {
1992
+ "name": "cancel",
1993
+ "payload": "Record<string, never>",
1994
+ "description": "Cancel event listener."
1141
1995
  }
1142
1996
  ],
1143
- "events": [],
1144
1997
  "methods": [
1998
+ {
1999
+ "name": "open",
2000
+ "signature": "open()",
2001
+ "returns": "this",
2002
+ "description": "Opens the dialog and focuses its autofocus control or first focusable descendant."
2003
+ },
1145
2004
  {
1146
2005
  "name": "setTitle",
1147
2006
  "signature": "setTitle(title)",
@@ -1198,6 +2057,219 @@
1198
2057
  }
1199
2058
  ]
1200
2059
  },
2060
+ "DialogView": {
2061
+ "options": [
2062
+ {
2063
+ "name": "content",
2064
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
2065
+ "default": null,
2066
+ "description": "View content."
2067
+ },
2068
+ {
2069
+ "name": "buttons",
2070
+ "type": "DialogButton[]",
2071
+ "default": null,
2072
+ "description": "View-specific footer buttons."
2073
+ },
2074
+ {
2075
+ "name": "title",
2076
+ "type": "string",
2077
+ "default": null,
2078
+ "description": "View-specific title."
2079
+ }
2080
+ ],
2081
+ "events": [],
2082
+ "methods": []
2083
+ },
2084
+ "Dock": {
2085
+ "options": [
2086
+ {
2087
+ "name": "orientation",
2088
+ "type": "'vertical'|'horizontal'",
2089
+ "default": "'vertical'",
2090
+ "description": "Axis the panes stack along. `vertical` stacks them top to bottom behind horizontal dividers."
2091
+ },
2092
+ {
2093
+ "name": "content",
2094
+ "type": "DockContent",
2095
+ "default": "null",
2096
+ "description": "Optional flexible middle. With it the dock is a region and panes sit on either `side` of it; without it the panes fill the dock."
2097
+ },
2098
+ {
2099
+ "name": "panes",
2100
+ "type": "DockPane[]",
2101
+ "default": "[]",
2102
+ "description": "Panes, in order."
2103
+ },
2104
+ {
2105
+ "name": "resizable",
2106
+ "type": "boolean",
2107
+ "default": "true",
2108
+ "description": "Whether dividers may be dragged."
2109
+ },
2110
+ {
2111
+ "name": "collapsible",
2112
+ "type": "boolean",
2113
+ "default": "true",
2114
+ "description": "Default for `pane.collapsible`."
2115
+ },
2116
+ {
2117
+ "name": "lazy",
2118
+ "type": "boolean",
2119
+ "default": "true",
2120
+ "description": "Whether content factories run on first reveal rather than up front."
2121
+ },
2122
+ {
2123
+ "name": "storageKey",
2124
+ "type": "string|null",
2125
+ "default": "null",
2126
+ "description": "Key under which sizes, collapsed panes, and active tabs are remembered. Storage failures degrade to memory rather than throwing."
2127
+ },
2128
+ {
2129
+ "name": "label",
2130
+ "type": "string",
2131
+ "default": "'Resize panes'",
2132
+ "description": "Accessible name given to every divider."
2133
+ }
2134
+ ],
2135
+ "events": [
2136
+ {
2137
+ "name": "collapse",
2138
+ "payload": "{name: string}",
2139
+ "description": "Collapse listener."
2140
+ },
2141
+ {
2142
+ "name": "expand",
2143
+ "payload": "{name: string}",
2144
+ "description": "Expand listener."
2145
+ },
2146
+ {
2147
+ "name": "resize",
2148
+ "payload": "{name: string, size: number}",
2149
+ "description": "Resize listener."
2150
+ },
2151
+ {
2152
+ "name": "tabchange",
2153
+ "payload": "{pane: string, tab: string, previous: string|null}",
2154
+ "description": "Tab listener."
2155
+ },
2156
+ {
2157
+ "name": "reveal",
2158
+ "payload": "{name: string}",
2159
+ "description": "Reveal listener."
2160
+ }
2161
+ ],
2162
+ "methods": [
2163
+ {
2164
+ "name": "pane",
2165
+ "signature": "pane(name)",
2166
+ "returns": "Record<string, any>|null",
2167
+ "description": "Returns a pane's record."
2168
+ },
2169
+ {
2170
+ "name": "names",
2171
+ "signature": "names()",
2172
+ "returns": "string[]",
2173
+ "description": "Lists pane names in visual order."
2174
+ },
2175
+ {
2176
+ "name": "add",
2177
+ "signature": "add(definition, [options])",
2178
+ "returns": "Record<string, any>",
2179
+ "description": "Adds a pane."
2180
+ },
2181
+ {
2182
+ "name": "remove",
2183
+ "signature": "remove(name)",
2184
+ "returns": "this",
2185
+ "description": "Removes a pane and its element."
2186
+ },
2187
+ {
2188
+ "name": "collapse",
2189
+ "signature": "collapse(name)",
2190
+ "returns": "this",
2191
+ "description": "Collapses a pane to its header."
2192
+ },
2193
+ {
2194
+ "name": "expand",
2195
+ "signature": "expand(name)",
2196
+ "returns": "this",
2197
+ "description": "Expands a pane."
2198
+ },
2199
+ {
2200
+ "name": "toggle",
2201
+ "signature": "toggle(name)",
2202
+ "returns": "this",
2203
+ "description": "Toggles a pane's collapsed state."
2204
+ },
2205
+ {
2206
+ "name": "isCollapsed",
2207
+ "signature": "isCollapsed(name)",
2208
+ "returns": "boolean",
2209
+ "description": "Reports whether a pane is collapsed."
2210
+ },
2211
+ {
2212
+ "name": "reveal",
2213
+ "signature": "reveal(name)",
2214
+ "returns": "this",
2215
+ "description": "Brings something into view by name — a pane, or a tab in one of them. Expands the pane, activates the tab where the name is a tab's, and scrolls the pane into view."
2216
+ },
2217
+ {
2218
+ "name": "setSize",
2219
+ "signature": "setSize(name, size)",
2220
+ "returns": "this",
2221
+ "description": "Sets a pane's size along the dock's axis."
2222
+ },
2223
+ {
2224
+ "name": "getSize",
2225
+ "signature": "getSize(name)",
2226
+ "returns": "number",
2227
+ "description": "Returns a pane's current size in pixels."
2228
+ },
2229
+ {
2230
+ "name": "activate",
2231
+ "signature": "activate(paneName, tabName)",
2232
+ "returns": "this",
2233
+ "description": "Activates a tab inside a tab-group pane."
2234
+ },
2235
+ {
2236
+ "name": "getActive",
2237
+ "signature": "getActive(paneName)",
2238
+ "returns": "string|null",
2239
+ "description": "Returns the active tab name of a tab-group pane."
2240
+ },
2241
+ {
2242
+ "name": "state",
2243
+ "signature": "state()",
2244
+ "returns": "DockState",
2245
+ "description": "Captures the layout as a serialisable object."
2246
+ },
2247
+ {
2248
+ "name": "setState",
2249
+ "signature": "setState(state)",
2250
+ "returns": "this",
2251
+ "description": "Restores a layout captured by `state()`. Unknown pane names are ignored, so a stored layout survives a release that added or removed panes."
2252
+ },
2253
+ {
2254
+ "name": "destroy",
2255
+ "signature": "destroy()",
2256
+ "returns": "void",
2257
+ "description": "Removes created nodes and restores an enhanced target."
2258
+ },
2259
+ {
2260
+ "name": "adopt",
2261
+ "signature": "adopt(sheet, [options])",
2262
+ "returns": "Record<string, any>",
2263
+ "description": "Hands a Sheet's positioning to this dock. The sheet becomes a track in the dock's flow: the dock owns its side, size, and resizing, while the sheet keeps its own content and lifecycle. Nothing about the sheet is rebuilt — adoption moves the element and reopens it in place, so listeners and DOM state survive the handoff."
2264
+ },
2265
+ {
2266
+ "name": "release",
2267
+ "signature": "release(sheet)",
2268
+ "returns": "this",
2269
+ "description": "Hands a sheet back. It becomes a free overlay again, still open if it was open."
2270
+ }
2271
+ ]
2272
+ },
1201
2273
  "Dropdown": {
1202
2274
  "options": [
1203
2275
  {
@@ -1208,7 +2280,7 @@
1208
2280
  },
1209
2281
  {
1210
2282
  "name": "placement",
1211
- "type": "'bottom-start'|'bottom-end'|'top-start'|'top-end'|'bottom'|'top'",
2283
+ "type": "'bottom-start'|'bottom-end'|'top-start'|'top-end'|'bottom'|'top'|'right-start'|'right-end'|'left-start'|'left-end'|'right'|'left'",
1212
2284
  "default": "'bottom-start'",
1213
2285
  "description": "Panel placement."
1214
2286
  },
@@ -1411,14 +2483,37 @@
1411
2483
  "description": "Adapter used by the `custom` type."
1412
2484
  }
1413
2485
  ],
1414
- "events": [],
2486
+ "events": [
2487
+ {
2488
+ "name": "change",
2489
+ "payload": "{value: unknown}",
2490
+ "description": "Value change listener."
2491
+ },
2492
+ {
2493
+ "name": "invalid",
2494
+ "payload": "{message: string}",
2495
+ "description": "Validation failure listener."
2496
+ }
2497
+ ],
1415
2498
  "methods": [
2499
+ {
2500
+ "name": "register",
2501
+ "signature": "register(type, adapter)",
2502
+ "returns": "typeof Field",
2503
+ "description": "Registers or replaces a field adapter."
2504
+ },
1416
2505
  {
1417
2506
  "name": "has",
1418
2507
  "signature": "has(type)",
1419
2508
  "returns": "boolean",
1420
2509
  "description": "Reports whether a field adapter is registered."
1421
2510
  },
2511
+ {
2512
+ "name": "getValue",
2513
+ "signature": "getValue()",
2514
+ "returns": "unknown",
2515
+ "description": "Returns the adapter value."
2516
+ },
1422
2517
  {
1423
2518
  "name": "setValue",
1424
2519
  "signature": "setValue(value, [options])",
@@ -1532,8 +2627,40 @@
1532
2627
  "description": "Injected Http-compatible or stub upload transport."
1533
2628
  }
1534
2629
  ],
1535
- "events": [],
2630
+ "events": [
2631
+ {
2632
+ "name": "select",
2633
+ "payload": "{files: File[]}",
2634
+ "description": "File selection listener."
2635
+ },
2636
+ {
2637
+ "name": "progress",
2638
+ "payload": "{percent: number}",
2639
+ "description": "Upload progress listener."
2640
+ },
2641
+ {
2642
+ "name": "success",
2643
+ "payload": "{response: unknown}",
2644
+ "description": "Upload success listener."
2645
+ },
2646
+ {
2647
+ "name": "error",
2648
+ "payload": "{error: Error}",
2649
+ "description": "Upload failure listener."
2650
+ },
2651
+ {
2652
+ "name": "abort",
2653
+ "payload": "Record<string, never>",
2654
+ "description": "Upload abort listener."
2655
+ }
2656
+ ],
1536
2657
  "methods": [
2658
+ {
2659
+ "name": "upload",
2660
+ "signature": "upload([files])",
2661
+ "returns": "Promise<unknown|null>",
2662
+ "description": "Uploads supplied files, or the current selection when omitted."
2663
+ },
1537
2664
  {
1538
2665
  "name": "abort",
1539
2666
  "signature": "abort()",
@@ -1577,6 +2704,12 @@
1577
2704
  ],
1578
2705
  "events": [],
1579
2706
  "methods": [
2707
+ {
2708
+ "name": "addField",
2709
+ "signature": "addField(id, field)",
2710
+ "returns": "Field",
2711
+ "description": "Adds a field from options, an existing field, an element, or a component."
2712
+ },
1580
2713
  {
1581
2714
  "name": "getField",
1582
2715
  "signature": "getField(id)",
@@ -1756,6 +2889,12 @@
1756
2889
  }
1757
2890
  ],
1758
2891
  "methods": [
2892
+ {
2893
+ "name": "getPath",
2894
+ "signature": "getPath()",
2895
+ "returns": "unknown[]",
2896
+ "description": "Returns the selected IDs from the root down."
2897
+ },
1759
2898
  {
1760
2899
  "name": "getNodes",
1761
2900
  "signature": "getNodes()",
@@ -1789,14 +2928,14 @@
1789
2928
  {
1790
2929
  "name": "focus",
1791
2930
  "signature": "focus()",
1792
- "returns": null,
1793
- "description": "Focuses the active column. @returns {this}"
2931
+ "returns": "this",
2932
+ "description": "Focuses the active column."
1794
2933
  },
1795
2934
  {
1796
2935
  "name": "destroy",
1797
- "signature": "destroy(options, column, index, column, index, [options], column, index, node)",
2936
+ "signature": "destroy()",
1798
2937
  "returns": "void",
1799
- "description": "Rebuilds every column from the current path."
2938
+ "description": "Restores an enhanced target to the markup it had before the takeover."
1800
2939
  }
1801
2940
  ]
1802
2941
  },
@@ -1821,8 +2960,30 @@
1821
2960
  "description": "Native `novalidate` state."
1822
2961
  }
1823
2962
  ],
1824
- "events": [],
2963
+ "events": [
2964
+ {
2965
+ "name": "submit",
2966
+ "payload": "{values: Record<string, unknown>}",
2967
+ "description": "Submit listener."
2968
+ },
2969
+ {
2970
+ "name": "invalid",
2971
+ "payload": "{errors: Record<string, string>}",
2972
+ "description": "Invalid listener."
2973
+ },
2974
+ {
2975
+ "name": "change",
2976
+ "payload": "{id: string, value: unknown}",
2977
+ "description": "Field change listener."
2978
+ }
2979
+ ],
1825
2980
  "methods": [
2981
+ {
2982
+ "name": "addFieldset",
2983
+ "signature": "addFieldset(fieldset)",
2984
+ "returns": "Fieldset",
2985
+ "description": "Adds an existing fieldset or constructs one from options."
2986
+ },
1826
2987
  {
1827
2988
  "name": "setActions",
1828
2989
  "signature": "setActions(list)",
@@ -1886,40 +3047,16 @@
1886
3047
  ]
1887
3048
  },
1888
3049
  "Grid": {
1889
- "options": [
1890
- {
1891
- "name": "columns",
1892
- "type": "number|null",
1893
- "default": "null",
1894
- "description": "Column count at full width. Null fills the row with as many tracks of `min` width as fit."
1895
- },
1896
- {
1897
- "name": "min",
1898
- "type": "number|string",
1899
- "default": "'16rem'",
1900
- "description": "Narrowest a track may get before the grid drops a column. A number is read as pixels."
1901
- },
1902
- {
1903
- "name": "gap",
1904
- "type": "number|string",
1905
- "default": "4",
1906
- "description": "Space between cells, as in `stack`."
1907
- },
1908
- {
1909
- "name": "align",
1910
- "type": "'start'|'center'|'end'|'stretch'",
1911
- "default": null,
1912
- "description": "Block-axis alignment of each cell."
1913
- },
3050
+ "options": [],
3051
+ "events": [],
3052
+ "methods": [
1914
3053
  {
1915
- "name": "class",
1916
- "type": "string",
1917
- "default": "''",
1918
- "description": "Extra class names."
3054
+ "name": "BillingItems",
3055
+ "signature": "BillingItems(target, [options])",
3056
+ "returns": "Grid",
3057
+ "description": "Creates an editable hierarchical billing-line grid."
1919
3058
  }
1920
- ],
1921
- "events": [],
1922
- "methods": []
3059
+ ]
1923
3060
  },
1924
3061
  "Groupbox": {
1925
3062
  "options": [
@@ -1949,6 +3086,12 @@
1949
3086
  }
1950
3087
  ],
1951
3088
  "methods": [
3089
+ {
3090
+ "name": "open",
3091
+ "signature": "open()",
3092
+ "returns": "this",
3093
+ "description": "Expands the section."
3094
+ },
1952
3095
  {
1953
3096
  "name": "close",
1954
3097
  "signature": "close()",
@@ -1967,6 +3110,12 @@
1967
3110
  "returns": "boolean",
1968
3111
  "description": "Reports whether the section is expanded."
1969
3112
  },
3113
+ {
3114
+ "name": "setTitle",
3115
+ "signature": "setTitle(title)",
3116
+ "returns": "this",
3117
+ "description": "Replaces the visible title."
3118
+ },
1970
3119
  {
1971
3120
  "name": "setContent",
1972
3121
  "signature": "setContent(content)",
@@ -2010,6 +3159,12 @@
2010
3159
  }
2011
3160
  ],
2012
3161
  "methods": [
3162
+ {
3163
+ "name": "get",
3164
+ "signature": "get()",
3165
+ "returns": "'inactive'|'active'|'success'|'error'",
3166
+ "description": "Returns the current state."
3167
+ },
2013
3168
  {
2014
3169
  "name": "getDescription",
2015
3170
  "signature": "getDescription()",
@@ -2031,11 +3186,206 @@
2031
3186
  {
2032
3187
  "name": "destroy",
2033
3188
  "signature": "destroy()",
2034
- "returns": null,
2035
- "description": "Paints the indicator and the description for the current state. @returns {void} */ _sync() { this.el.dataset.status = this._status; this.refs.description.textContent = this._description; this.refs.indicator.replaceChildren(...this._indicator()); } /** @returns {Node[]} */ _indicator() { const size = this.el.dataset.size === 'md' ? 18 : 16; if (this._status === 'active') return [spinner({ size: 'sm', kind: 'current' })]; if (this._status === 'success') return [createIcon('success', { size })]; if (this._status === 'error') return [createIcon('error', { size })]; return []; } /** Restores an enhanced target to the markup it had before the takeover. @returns {void}"
3189
+ "returns": "void",
3190
+ "description": "Restores an enhanced target to the markup it had before the takeover."
3191
+ }
3192
+ ]
3193
+ },
3194
+ "Launcher": {
3195
+ "options": [
3196
+ {
3197
+ "name": "items",
3198
+ "type": "LauncherItem[]",
3199
+ "default": "[]",
3200
+ "description": "Local application/action catalogue."
3201
+ },
3202
+ {
3203
+ "name": "sources",
3204
+ "type": "LauncherSource[]",
3205
+ "default": "[]",
3206
+ "description": "Abortable asynchronous result sources."
3207
+ },
3208
+ {
3209
+ "name": "query",
3210
+ "type": "string",
3211
+ "default": "''",
3212
+ "description": "Initial query."
3213
+ },
3214
+ {
3215
+ "name": "debounce",
3216
+ "type": "number",
3217
+ "default": "250",
3218
+ "description": "Source-query delay in milliseconds."
3219
+ },
3220
+ {
3221
+ "name": "minQuery",
3222
+ "type": "number",
3223
+ "default": "0",
3224
+ "description": "Global source minimum query length."
3225
+ },
3226
+ {
3227
+ "name": "maxResults",
3228
+ "type": "number",
3229
+ "default": "100",
3230
+ "description": "Maximum combined results."
3231
+ },
3232
+ {
3233
+ "name": "placeholder",
3234
+ "type": "string",
3235
+ "default": "'Search applications and records'",
3236
+ "description": "Search-field placeholder."
3237
+ },
3238
+ {
3239
+ "name": "label",
3240
+ "type": "string",
3241
+ "default": "'Launcher'",
3242
+ "description": "Dialog and field label."
3243
+ },
3244
+ {
3245
+ "name": "emptyText",
3246
+ "type": "string",
3247
+ "default": "'No results'",
3248
+ "description": "Empty-state text."
3249
+ },
3250
+ {
3251
+ "name": "loadingText",
3252
+ "type": "string",
3253
+ "default": "'Searching…'",
3254
+ "description": "Loading-state text."
3255
+ },
3256
+ {
3257
+ "name": "shortcut",
3258
+ "type": "'mod+k'|false",
3259
+ "default": "'mod+k'",
3260
+ "description": "Optional global keyboard shortcut."
3261
+ }
3262
+ ],
3263
+ "events": [
3264
+ {
3265
+ "name": "select",
3266
+ "payload": "{item, value, source, query}",
3267
+ "description": "Preventable selection listener."
3268
+ },
3269
+ {
3270
+ "name": "query",
3271
+ "payload": "{query: string}",
3272
+ "description": "Query-change listener."
3273
+ },
3274
+ {
3275
+ "name": "open",
3276
+ "payload": "Record<string, never>",
3277
+ "description": "Open listener."
3278
+ },
3279
+ {
3280
+ "name": "close",
3281
+ "payload": "Record<string, never>",
3282
+ "description": "Close listener."
3283
+ },
3284
+ {
3285
+ "name": "error",
3286
+ "payload": "{source: LauncherSource, error: unknown}",
3287
+ "description": "Source error listener."
3288
+ }
3289
+ ],
3290
+ "methods": [
3291
+ {
3292
+ "name": "open",
3293
+ "signature": "open()",
3294
+ "returns": "this",
3295
+ "description": "Opens the launcher and focuses/selects its query."
3296
+ },
3297
+ {
3298
+ "name": "close",
3299
+ "signature": "close()",
3300
+ "returns": "this",
3301
+ "description": "Closes the launcher."
3302
+ },
3303
+ {
3304
+ "name": "toggle",
3305
+ "signature": "toggle()",
3306
+ "returns": "this",
3307
+ "description": "Toggles the launcher."
3308
+ },
3309
+ {
3310
+ "name": "isOpen",
3311
+ "signature": "isOpen()",
3312
+ "returns": "boolean",
3313
+ "description": "Reports whether the launcher is open."
3314
+ },
3315
+ {
3316
+ "name": "focus",
3317
+ "signature": "focus()",
3318
+ "returns": "this",
3319
+ "description": "Focuses and selects the query field."
3320
+ },
3321
+ {
3322
+ "name": "setQuery",
3323
+ "signature": "setQuery(query)",
3324
+ "returns": "this",
3325
+ "description": "Replaces the query and refreshes local and remote results."
3326
+ },
3327
+ {
3328
+ "name": "getQuery",
3329
+ "signature": "getQuery()",
3330
+ "returns": "string",
3331
+ "description": "Returns the untrimmed query."
3332
+ },
3333
+ {
3334
+ "name": "setItems",
3335
+ "signature": "setItems(items)",
3336
+ "returns": "this",
3337
+ "description": "Replaces local catalogue items."
3338
+ },
3339
+ {
3340
+ "name": "setSources",
3341
+ "signature": "setSources(sources)",
3342
+ "returns": "this",
3343
+ "description": "Replaces asynchronous sources and aborts work from the old set."
3344
+ },
3345
+ {
3346
+ "name": "destroy",
3347
+ "signature": "destroy()",
3348
+ "returns": "void",
3349
+ "description": "Aborts sources and removes the owned dialog."
2036
3350
  }
2037
3351
  ]
2038
3352
  },
3353
+ "LayoutGrid": {
3354
+ "options": [
3355
+ {
3356
+ "name": "columns",
3357
+ "type": "number|null",
3358
+ "default": "null",
3359
+ "description": "Column count at full width. Null fills the row with as many tracks of `min` width as fit."
3360
+ },
3361
+ {
3362
+ "name": "min",
3363
+ "type": "number|string",
3364
+ "default": "'16rem'",
3365
+ "description": "Narrowest a track may get before the grid drops a column. A number is read as pixels."
3366
+ },
3367
+ {
3368
+ "name": "gap",
3369
+ "type": "number|string",
3370
+ "default": "4",
3371
+ "description": "Space between cells, as in `stack`."
3372
+ },
3373
+ {
3374
+ "name": "align",
3375
+ "type": "'start'|'center'|'end'|'stretch'",
3376
+ "default": null,
3377
+ "description": "Block-axis alignment of each cell."
3378
+ },
3379
+ {
3380
+ "name": "class",
3381
+ "type": "string",
3382
+ "default": "''",
3383
+ "description": "Extra class names."
3384
+ }
3385
+ ],
3386
+ "events": [],
3387
+ "methods": []
3388
+ },
2039
3389
  "MasterPanel": {
2040
3390
  "options": [
2041
3391
  {
@@ -2071,6 +3421,12 @@
2071
3421
  ],
2072
3422
  "events": [],
2073
3423
  "methods": [
3424
+ {
3425
+ "name": "setTitle",
3426
+ "signature": "setTitle(title)",
3427
+ "returns": "this",
3428
+ "description": "Replaces the header title."
3429
+ },
2074
3430
  {
2075
3431
  "name": "setContent",
2076
3432
  "signature": "setContent(content)",
@@ -2119,7 +3475,7 @@
2119
3475
  },
2120
3476
  {
2121
3477
  "name": "placement",
2122
- "type": "'bottom-start'|'bottom-end'|'top-start'|'top-end'|'bottom'|'top'",
3478
+ "type": "'bottom-start'|'bottom-end'|'top-start'|'top-end'|'bottom'|'top'|'right-start'|'right-end'|'left-start'|'left-end'|'right'|'left'",
2123
3479
  "default": "'bottom-start'",
2124
3480
  "description": "Menu placement."
2125
3481
  }
@@ -2142,6 +3498,12 @@
2142
3498
  }
2143
3499
  ],
2144
3500
  "methods": [
3501
+ {
3502
+ "name": "setItems",
3503
+ "signature": "setItems(items)",
3504
+ "returns": "this",
3505
+ "description": "Replaces menu items and separators."
3506
+ },
2145
3507
  {
2146
3508
  "name": "open",
2147
3509
  "signature": "open()",
@@ -2160,6 +3522,30 @@
2160
3522
  "returns": "boolean",
2161
3523
  "description": "Reports whether the menu is open."
2162
3524
  },
3525
+ {
3526
+ "name": "getTrigger",
3527
+ "signature": "getTrigger()",
3528
+ "returns": "HTMLElement",
3529
+ "description": "Returns the trigger button."
3530
+ },
3531
+ {
3532
+ "name": "getPanel",
3533
+ "signature": "getPanel()",
3534
+ "returns": "HTMLElement",
3535
+ "description": "Returns the owned menu panel."
3536
+ },
3537
+ {
3538
+ "name": "focusFirst",
3539
+ "signature": "focusFirst()",
3540
+ "returns": "this",
3541
+ "description": "Opens the menu and focuses its first enabled item."
3542
+ },
3543
+ {
3544
+ "name": "focusLast",
3545
+ "signature": "focusLast()",
3546
+ "returns": "this",
3547
+ "description": "Opens the menu and focuses its last enabled item."
3548
+ },
2163
3549
  {
2164
3550
  "name": "setLabel",
2165
3551
  "signature": "setLabel(label)",
@@ -2215,6 +3601,12 @@
2215
3601
  "returns": "'active'|'pending'|null",
2216
3602
  "description": "Removes an item and promotes the oldest pending item when needed."
2217
3603
  },
3604
+ {
3605
+ "name": "isActive",
3606
+ "signature": "isActive(item)",
3607
+ "returns": "boolean",
3608
+ "description": "Reports whether an item is active."
3609
+ },
2218
3610
  {
2219
3611
  "name": "clear",
2220
3612
  "signature": "clear()",
@@ -2298,6 +3690,18 @@
2298
3690
  }
2299
3691
  ],
2300
3692
  "methods": [
3693
+ {
3694
+ "name": "mountTarget",
3695
+ "signature": "mountTarget()",
3696
+ "returns": "Element",
3697
+ "description": "Element the owned dialog is appended to. Overridden by subclasses that live inside a host rather than at the document level. Called from `render()`, which the base constructor runs before any subclass field initializers, so an override may read `this.options` but must not touch instance state."
3698
+ },
3699
+ {
3700
+ "name": "open",
3701
+ "signature": "open()",
3702
+ "returns": "this",
3703
+ "description": "Opens the modal in the browser top layer."
3704
+ },
2301
3705
  {
2302
3706
  "name": "close",
2303
3707
  "signature": "close([result])",
@@ -2362,8 +3766,8 @@
2362
3766
  {
2363
3767
  "name": "destroy",
2364
3768
  "signature": "destroy()",
2365
- "returns": null,
2366
- "description": "Removes generated content from an enhanced target. @returns {void}"
3769
+ "returns": "void",
3770
+ "description": "Removes generated content from an enhanced target."
2367
3771
  }
2368
3772
  ]
2369
3773
  },
@@ -2386,10 +3790,28 @@
2386
3790
  "type": "string",
2387
3791
  "default": "'Add value'",
2388
3792
  "description": "Add-row button text."
3793
+ },
3794
+ {
3795
+ "name": "reorder",
3796
+ "type": "'both'|'buttons'|'drag'|'none'",
3797
+ "default": "'both'",
3798
+ "description": "Reordering affordances each row gets: a drag handle, the up/down buttons, both, or neither."
3799
+ }
3800
+ ],
3801
+ "events": [
3802
+ {
3803
+ "name": "change",
3804
+ "payload": "{values: string[]}",
3805
+ "description": "Values change listener."
2389
3806
  }
2390
3807
  ],
2391
- "events": [],
2392
3808
  "methods": [
3809
+ {
3810
+ "name": "getValues",
3811
+ "signature": "getValues()",
3812
+ "returns": "string[]",
3813
+ "description": "Returns a copy of the ordered values."
3814
+ },
2393
3815
  {
2394
3816
  "name": "setValues",
2395
3817
  "signature": "setValues(values, [options])",
@@ -2433,6 +3855,12 @@
2433
3855
  }
2434
3856
  ],
2435
3857
  "methods": [
3858
+ {
3859
+ "name": "setTitle",
3860
+ "signature": "setTitle(title)",
3861
+ "returns": "this",
3862
+ "description": "Replaces the brand or application title."
3863
+ },
2436
3864
  {
2437
3865
  "name": "setItems",
2438
3866
  "signature": "setItems(list)",
@@ -2577,6 +4005,12 @@
2577
4005
  }
2578
4006
  ],
2579
4007
  "methods": [
4008
+ {
4009
+ "name": "get",
4010
+ "signature": "get()",
4011
+ "returns": "number|null",
4012
+ "description": "Returns the current value."
4013
+ },
2580
4014
  {
2581
4015
  "name": "set",
2582
4016
  "signature": "set(next, [options])",
@@ -2604,20 +4038,26 @@
2604
4038
  {
2605
4039
  "name": "focus",
2606
4040
  "signature": "focus()",
2607
- "returns": null,
2608
- "description": "Focuses the input. @returns {this}"
4041
+ "returns": "this",
4042
+ "description": "Focuses the input."
2609
4043
  },
2610
4044
  {
2611
4045
  "name": "getInput",
2612
4046
  "signature": "getInput()",
2613
- "returns": null,
2614
- "description": "Returns the underlying input element. @returns {HTMLInputElement}"
4047
+ "returns": "HTMLInputElement",
4048
+ "description": "Returns the underlying input element."
4049
+ },
4050
+ {
4051
+ "name": "enable",
4052
+ "signature": "enable()",
4053
+ "returns": "this",
4054
+ "description": "Enables user interaction."
2615
4055
  },
2616
4056
  {
2617
4057
  "name": "disable",
2618
4058
  "signature": "disable()",
2619
- "returns": null,
2620
- "description": "Disables user interaction. @returns {this}"
4059
+ "returns": "this",
4060
+ "description": "Disables user interaction."
2621
4061
  },
2622
4062
  {
2623
4063
  "name": "setReadonly",
@@ -2630,6 +4070,12 @@
2630
4070
  "signature": "setRange(min, max)",
2631
4071
  "returns": "this",
2632
4072
  "description": "Replaces the accepted range."
4073
+ },
4074
+ {
4075
+ "name": "destroy",
4076
+ "signature": "destroy()",
4077
+ "returns": "void",
4078
+ "description": "Restores an enhanced target to the markup it had before the takeover."
2633
4079
  }
2634
4080
  ]
2635
4081
  },
@@ -2710,6 +4156,12 @@
2710
4156
  }
2711
4157
  ],
2712
4158
  "methods": [
4159
+ {
4160
+ "name": "setPage",
4161
+ "signature": "setPage(page)",
4162
+ "returns": "this",
4163
+ "description": "Moves to a page, clamped into `[1, pages]`."
4164
+ },
2713
4165
  {
2714
4166
  "name": "setTotal",
2715
4167
  "signature": "setTotal(total)",
@@ -2754,6 +4206,36 @@
2754
4206
  }
2755
4207
  ]
2756
4208
  },
4209
+ "PaginationRange": {
4210
+ "options": [
4211
+ {
4212
+ "name": "page",
4213
+ "type": "number",
4214
+ "default": null,
4215
+ "description": "One-based current page."
4216
+ },
4217
+ {
4218
+ "name": "pages",
4219
+ "type": "number",
4220
+ "default": null,
4221
+ "description": "Total number of pages."
4222
+ },
4223
+ {
4224
+ "name": "siblings",
4225
+ "type": "number",
4226
+ "default": "1",
4227
+ "description": "Pages shown either side of the current one."
4228
+ },
4229
+ {
4230
+ "name": "boundaries",
4231
+ "type": "number",
4232
+ "default": "1",
4233
+ "description": "Pages pinned at each end of the range."
4234
+ }
4235
+ ],
4236
+ "events": [],
4237
+ "methods": []
4238
+ },
2757
4239
  "Panel": {
2758
4240
  "options": [
2759
4241
  {
@@ -2812,6 +4294,12 @@
2812
4294
  }
2813
4295
  ],
2814
4296
  "methods": [
4297
+ {
4298
+ "name": "setTitle",
4299
+ "signature": "setTitle(title)",
4300
+ "returns": "this",
4301
+ "description": "Replaces the visible title."
4302
+ },
2815
4303
  {
2816
4304
  "name": "setContent",
2817
4305
  "signature": "setContent(content)",
@@ -2862,61 +4350,6 @@
2862
4350
  }
2863
4351
  ]
2864
4352
  },
2865
- "Permission": {
2866
- "options": [
2867
- {
2868
- "name": "value",
2869
- "type": "boolean|string|number|symbol|bigint|null",
2870
- "default": "true",
2871
- "description": "Public, private, or group ID."
2872
- },
2873
- {
2874
- "name": "groups",
2875
- "type": "PermissionGroup[]",
2876
- "default": "[]",
2877
- "description": "Available groups."
2878
- },
2879
- {
2880
- "name": "groupsValueKey",
2881
- "type": "string|((item: PermissionGroup) => unknown)",
2882
- "default": "'ID'",
2883
- "description": "Group ID property or reader."
2884
- },
2885
- {
2886
- "name": "groupsLabelKey",
2887
- "type": "string|((item: PermissionGroup) => string)",
2888
- "default": "'name'",
2889
- "description": "Group label property or reader."
2890
- },
2891
- {
2892
- "name": "msg",
2893
- "type": "Record<string, string>|Record<string, Record<string, string>>",
2894
- "default": null,
2895
- "description": "Localized messages."
2896
- }
2897
- ],
2898
- "events": [
2899
- {
2900
- "name": "change",
2901
- "payload": "{value}",
2902
- "description": "Change listener."
2903
- }
2904
- ],
2905
- "methods": [
2906
- {
2907
- "name": "set",
2908
- "signature": "set(value, [options])",
2909
- "returns": "this",
2910
- "description": "Sets a public, private, or group permission."
2911
- },
2912
- {
2913
- "name": "destroy",
2914
- "signature": "destroy()",
2915
- "returns": null,
2916
- "description": "Destroys the embedded Select and restores an enhanced target. @returns {void}"
2917
- }
2918
- ]
2919
- },
2920
4353
  "ProgressBar": {
2921
4354
  "options": [
2922
4355
  {
@@ -2993,6 +4426,12 @@
2993
4426
  }
2994
4427
  ],
2995
4428
  "methods": [
4429
+ {
4430
+ "name": "get",
4431
+ "signature": "get()",
4432
+ "returns": "number",
4433
+ "description": "Returns the current value."
4434
+ },
2996
4435
  {
2997
4436
  "name": "set",
2998
4437
  "signature": "set(next, [options])",
@@ -3036,10 +4475,240 @@
3036
4475
  "description": "Switches between a known and an unknown completed share."
3037
4476
  },
3038
4477
  {
3039
- "name": "destroy",
3040
- "signature": "destroy(text)",
3041
- "returns": "Node[]",
3042
- "description": "Paints the track, the readout, and the ARIA value attributes. @returns {void} */ _sync() { const { track, fill, value } = this.refs; this.el.dataset.status = this._status; this.el.toggleAttribute('data-indeterminate', this._indeterminate); if (this._indeterminate) { track.removeAttribute('aria-valuenow'); track.removeAttribute('aria-valuetext'); fill.style.removeProperty('--zx-progress-fill'); value.textContent = ''; return; } const text = this._format(); track.setAttribute('aria-valuenow', String(this._value)); track.setAttribute('aria-valuetext', text); fill.style.setProperty('--zx-progress-fill', `${this.percent()}%`); value.replaceChildren(...this._readout(text)); } /** @returns {string} */ _format() { const formatter = this.options.formatValue; if (typeof formatter === 'function') return String(formatter(this._value, this._max)); return `${Math.round(this.percent())}%`; } /** The readout beside the label: the formatted value, prefixed by a status glyph once the run has finished one way or the other."
4478
+ "name": "destroy",
4479
+ "signature": "destroy()",
4480
+ "returns": "void",
4481
+ "description": "Restores an enhanced target to the markup it had before the takeover."
4482
+ }
4483
+ ]
4484
+ },
4485
+ "Prompt": {
4486
+ "options": [
4487
+ {
4488
+ "name": "title",
4489
+ "type": "string",
4490
+ "default": "''",
4491
+ "description": "Prompt title."
4492
+ },
4493
+ {
4494
+ "name": "message",
4495
+ "type": "Node|string|number|null",
4496
+ "default": "''",
4497
+ "description": "Prompt message."
4498
+ },
4499
+ {
4500
+ "name": "value",
4501
+ "type": "string",
4502
+ "default": "''",
4503
+ "description": "Initial input value."
4504
+ },
4505
+ {
4506
+ "name": "placeholder",
4507
+ "type": "string",
4508
+ "default": "''",
4509
+ "description": "Input placeholder."
4510
+ }
4511
+ ],
4512
+ "events": [],
4513
+ "methods": []
4514
+ },
4515
+ "Questionnaire": {
4516
+ "options": [
4517
+ {
4518
+ "name": "items",
4519
+ "type": "QuestionnaireItem[]",
4520
+ "default": "[]",
4521
+ "description": "Ordered question definitions."
4522
+ },
4523
+ {
4524
+ "name": "answers",
4525
+ "type": "Record<string, unknown>",
4526
+ "default": "{}",
4527
+ "description": "Answers to start from. Together with `active` this is the resume pair: hand back what a previous session collected."
4528
+ },
4529
+ {
4530
+ "name": "active",
4531
+ "type": "string|null",
4532
+ "default": "null",
4533
+ "description": "Item to open, defaulting to the first visible one."
4534
+ },
4535
+ {
4536
+ "name": "progress",
4537
+ "type": "boolean",
4538
+ "default": "true",
4539
+ "description": "Whether the progress bar and counter are shown."
4540
+ },
4541
+ {
4542
+ "name": "review",
4543
+ "type": "boolean",
4544
+ "default": "false",
4545
+ "description": "Whether a summary of every answer is shown before submitting."
4546
+ },
4547
+ {
4548
+ "name": "advance",
4549
+ "type": "QuestionnaireAdvance",
4550
+ "default": "'manual'",
4551
+ "description": "`auto` moves on by itself once a single-choice question is answered."
4552
+ },
4553
+ {
4554
+ "name": "shortcuts",
4555
+ "type": "boolean",
4556
+ "default": "true",
4557
+ "description": "Whether `1`–`9` and `a`–`z` pick an answer."
4558
+ },
4559
+ {
4560
+ "name": "allowBack",
4561
+ "type": "boolean",
4562
+ "default": "true",
4563
+ "description": "Whether the Back action is offered."
4564
+ },
4565
+ {
4566
+ "name": "msg",
4567
+ "type": "Record<string, string>|Record<string, Record<string, string>>",
4568
+ "default": null,
4569
+ "description": "Localized messages."
4570
+ }
4571
+ ],
4572
+ "events": [
4573
+ {
4574
+ "name": "change",
4575
+ "payload": "{name, value, answers}",
4576
+ "description": "Answer listener."
4577
+ },
4578
+ {
4579
+ "name": "navigate",
4580
+ "payload": "{from, to, reason}",
4581
+ "description": "Navigation listener."
4582
+ },
4583
+ {
4584
+ "name": "skip",
4585
+ "payload": "{name}",
4586
+ "description": "Skip listener."
4587
+ },
4588
+ {
4589
+ "name": "invalid",
4590
+ "payload": "{name, message}",
4591
+ "description": "Validation listener."
4592
+ },
4593
+ {
4594
+ "name": "submit",
4595
+ "payload": "{answers, unknown>, path}",
4596
+ "description": "Submit listener."
4597
+ },
4598
+ {
4599
+ "name": "complete",
4600
+ "payload": "{answers, unknown>, path}",
4601
+ "description": "Completion listener."
4602
+ }
4603
+ ],
4604
+ "methods": [
4605
+ {
4606
+ "name": "setItems",
4607
+ "signature": "setItems(list)",
4608
+ "returns": "this",
4609
+ "description": "Replaces the whole item list. Answers survive for items that are still present, and so does the active item; when it is gone the first visible item takes over. This is a structural change, so it never emits `navigate`."
4610
+ },
4611
+ {
4612
+ "name": "getItems",
4613
+ "signature": "getItems()",
4614
+ "returns": "NormalizedItem[]",
4615
+ "description": "Returns the normalized items, including ones currently conditioned out."
4616
+ },
4617
+ {
4618
+ "name": "goTo",
4619
+ "signature": "goTo(name)",
4620
+ "returns": "boolean",
4621
+ "description": "Opens an item without validating the one being left — what the review screen's Edit action does. An item already on the path truncates it, so Back keeps working; a new one is appended."
4622
+ },
4623
+ {
4624
+ "name": "next",
4625
+ "signature": "next()",
4626
+ "returns": "Promise<boolean>",
4627
+ "description": "Validates the active item and moves on: to the branch target, then the review screen, then submission. Returns a promise because an item's `validate` may be asynchronous."
4628
+ },
4629
+ {
4630
+ "name": "previous",
4631
+ "signature": "previous()",
4632
+ "returns": "boolean",
4633
+ "description": "Steps back along the path actually walked — which is not `index - 1` once a branch has been taken. From the review screen it reopens the last question."
4634
+ },
4635
+ {
4636
+ "name": "skip",
4637
+ "signature": "skip()",
4638
+ "returns": "Promise<boolean>",
4639
+ "description": "Clears the active item's answer and moves on without validating it. Skipping the last question submits, so this is a promise for the same reason `submit()` is."
4640
+ },
4641
+ {
4642
+ "name": "submit",
4643
+ "signature": "submit()",
4644
+ "returns": "Promise<boolean>",
4645
+ "description": "Validates the active item (unless already on the review screen) and submits."
4646
+ },
4647
+ {
4648
+ "name": "getAnswers",
4649
+ "signature": "getAnswers()",
4650
+ "returns": "Record<string, unknown>",
4651
+ "description": "Returns the answers of every visible question that carries one, in declaration order. Questions conditioned out are left out, so an abandoned branch never submits stale data."
4652
+ },
4653
+ {
4654
+ "name": "getAnswer",
4655
+ "signature": "getAnswer(name)",
4656
+ "returns": "unknown",
4657
+ "description": "Returns one answer, whether or not its question is currently visible."
4658
+ },
4659
+ {
4660
+ "name": "setAnswers",
4661
+ "signature": "setAnswers(values, [options])",
4662
+ "returns": "this",
4663
+ "description": "Sets several answers at once."
4664
+ },
4665
+ {
4666
+ "name": "setAnswer",
4667
+ "signature": "setAnswer(name, value, [options])",
4668
+ "returns": "this",
4669
+ "description": "Sets one answer. A value matching a choice selects it; anything else lands in the freeform input when the item has one."
4670
+ },
4671
+ {
4672
+ "name": "getActive",
4673
+ "signature": "getActive()",
4674
+ "returns": "string|null",
4675
+ "description": "Returns the active item name, or null on the review or completion screen."
4676
+ },
4677
+ {
4678
+ "name": "getPath",
4679
+ "signature": "getPath()",
4680
+ "returns": "string[]",
4681
+ "description": "Returns the item names visited so far, active last. This is the questionnaire's memory of the route through the branches."
4682
+ },
4683
+ {
4684
+ "name": "getProgress",
4685
+ "signature": "getProgress()",
4686
+ "returns": "QuestionnaireProgress",
4687
+ "description": "Returns progress along the path walked. `total` is exact while the flow is static and an estimate once a function `next` can jump somewhere the forward walk cannot predict."
4688
+ },
4689
+ {
4690
+ "name": "getState",
4691
+ "signature": "getState()",
4692
+ "returns": "{active: string|null, status: QuestionnaireStatus, answers: Record<string, unknown>, path: string[], progress: QuestionnaireProgress}",
4693
+ "description": "Returns everything a caller needs to resume this questionnaire later."
4694
+ },
4695
+ {
4696
+ "name": "toFormData",
4697
+ "signature": "toFormData()",
4698
+ "returns": "FormData",
4699
+ "description": "Returns the visible answers as form data, with one entry per value of a multiple-choice item — the same shape `new FormData(questionnaire.toElement())` produces."
4700
+ },
4701
+ {
4702
+ "name": "reset",
4703
+ "signature": "reset()",
4704
+ "returns": "this",
4705
+ "description": "Clears every answer and returns to the first visible question."
4706
+ },
4707
+ {
4708
+ "name": "focus",
4709
+ "signature": "focus()",
4710
+ "returns": "this",
4711
+ "description": "Moves focus to the active question, which is what a screen reader announces after a move."
3043
4712
  }
3044
4713
  ]
3045
4714
  },
@@ -3137,6 +4806,12 @@
3137
4806
  }
3138
4807
  ],
3139
4808
  "methods": [
4809
+ {
4810
+ "name": "get",
4811
+ "signature": "get()",
4812
+ "returns": "number",
4813
+ "description": "Returns the current rating."
4814
+ },
3140
4815
  {
3141
4816
  "name": "set",
3142
4817
  "signature": "set(next, [options])",
@@ -3164,20 +4839,20 @@
3164
4839
  {
3165
4840
  "name": "focus",
3166
4841
  "signature": "focus()",
3167
- "returns": null,
3168
- "description": "Focuses the selected step, or the first one when unrated. @returns {this}"
4842
+ "returns": "this",
4843
+ "description": "Focuses the selected step, or the first one when unrated."
3169
4844
  },
3170
4845
  {
3171
4846
  "name": "enable",
3172
4847
  "signature": "enable()",
3173
- "returns": null,
3174
- "description": "Enables user interaction. @returns {this}"
4848
+ "returns": "this",
4849
+ "description": "Enables user interaction."
3175
4850
  },
3176
4851
  {
3177
4852
  "name": "disable",
3178
4853
  "signature": "disable()",
3179
- "returns": null,
3180
- "description": "Disables user interaction. @returns {this}"
4854
+ "returns": "this",
4855
+ "description": "Disables user interaction."
3181
4856
  },
3182
4857
  {
3183
4858
  "name": "setReadonly",
@@ -3187,9 +4862,9 @@
3187
4862
  },
3188
4863
  {
3189
4864
  "name": "destroy",
3190
- "signature": "destroy(value, part, value, key, fallback, args, value, allowClear, value)",
3191
- "returns": "HTMLButtonElement",
3192
- "description": "Builds one selectable step."
4865
+ "signature": "destroy()",
4866
+ "returns": "void",
4867
+ "description": "Restores an enhanced target to the markup it had before the takeover."
3193
4868
  }
3194
4869
  ]
3195
4870
  },
@@ -3237,7 +4912,32 @@
3237
4912
  "description": "Clear callback."
3238
4913
  }
3239
4914
  ],
3240
- "methods": []
4915
+ "methods": [
4916
+ {
4917
+ "name": "get",
4918
+ "signature": "get()",
4919
+ "returns": "string",
4920
+ "description": "Returns the current query."
4921
+ },
4922
+ {
4923
+ "name": "set",
4924
+ "signature": "set(value, [options])",
4925
+ "returns": "this",
4926
+ "description": "Sets the current query."
4927
+ },
4928
+ {
4929
+ "name": "focus",
4930
+ "signature": "focus()",
4931
+ "returns": "this",
4932
+ "description": "Focuses the input."
4933
+ },
4934
+ {
4935
+ "name": "clear",
4936
+ "signature": "clear()",
4937
+ "returns": "this",
4938
+ "description": "Clears the query and reports both the value update and clear action."
4939
+ }
4940
+ ]
3241
4941
  },
3242
4942
  "Select": {
3243
4943
  "options": [
@@ -3247,6 +4947,12 @@
3247
4947
  "default": "[]",
3248
4948
  "description": "Available values."
3249
4949
  },
4950
+ {
4951
+ "name": "fixedItems",
4952
+ "type": "SelectItem[]",
4953
+ "default": "[]",
4954
+ "description": "Choices pinned above the list, kept through filtering and async loads."
4955
+ },
3250
4956
  {
3251
4957
  "name": "valueKey",
3252
4958
  "type": "SelectValueReader",
@@ -3360,53 +5066,392 @@
3360
5066
  "description": "Async-query listener."
3361
5067
  },
3362
5068
  {
3363
- "name": "loaded",
3364
- "payload": "{items}",
3365
- "description": "Async-loaded listener."
5069
+ "name": "loaded",
5070
+ "payload": "{items}",
5071
+ "description": "Async-loaded listener."
5072
+ }
5073
+ ],
5074
+ "methods": [
5075
+ {
5076
+ "name": "set",
5077
+ "signature": "set(idOrItem, [options])",
5078
+ "returns": "this",
5079
+ "description": "Selects an item or item ID."
5080
+ },
5081
+ {
5082
+ "name": "setItems",
5083
+ "signature": "setItems(items)",
5084
+ "returns": "this",
5085
+ "description": "Replaces the available items and preserves selection by ID when possible."
5086
+ },
5087
+ {
5088
+ "name": "setFixedItems",
5089
+ "signature": "setFixedItems(items)",
5090
+ "returns": "this",
5091
+ "description": "Replaces the pinned choices and preserves selection by ID when possible."
5092
+ },
5093
+ {
5094
+ "name": "reset",
5095
+ "signature": "reset([options])",
5096
+ "returns": "this",
5097
+ "description": "Restores the configured initial value."
5098
+ },
5099
+ {
5100
+ "name": "open",
5101
+ "signature": "open()",
5102
+ "returns": "this",
5103
+ "description": "Opens the option panel."
5104
+ },
5105
+ {
5106
+ "name": "close",
5107
+ "signature": "close()",
5108
+ "returns": "this",
5109
+ "description": "Closes the option panel and restores the selected label."
5110
+ },
5111
+ {
5112
+ "name": "enable",
5113
+ "signature": "enable()",
5114
+ "returns": "this",
5115
+ "description": "Enables user interaction."
5116
+ },
5117
+ {
5118
+ "name": "disable",
5119
+ "signature": "disable()",
5120
+ "returns": "this",
5121
+ "description": "Disables user interaction and closes the panel."
5122
+ },
5123
+ {
5124
+ "name": "focus",
5125
+ "signature": "focus()",
5126
+ "returns": "this",
5127
+ "description": "Moves focus to the combobox input."
5128
+ },
5129
+ {
5130
+ "name": "priority",
5131
+ "signature": "priority(target, [options])",
5132
+ "returns": "Select",
5133
+ "description": "Creates the five-level priority preset."
5134
+ },
5135
+ {
5136
+ "name": "permission",
5137
+ "signature": "permission(target, [options])",
5138
+ "returns": "Select",
5139
+ "description": "Creates the record-permission picker: the fixed Private and Public choices above the groups a record can be shared with. The value is the tri-state ZeyOS stores — `false` for private, `true` for public, or a group ID — so the control binds straight to the record field."
5140
+ },
5141
+ {
5142
+ "name": "destroy",
5143
+ "signature": "destroy()",
5144
+ "returns": "void",
5145
+ "description": "Cleans up the panel, pending async work, and enhanced target contents."
5146
+ }
5147
+ ]
5148
+ },
5149
+ "Sheet": {
5150
+ "options": [
5151
+ {
5152
+ "name": "side",
5153
+ "type": "SheetSide",
5154
+ "default": "'end'",
5155
+ "description": "Edge the sheet is anchored to. Logical, so `start` and `end` follow the writing direction."
5156
+ },
5157
+ {
5158
+ "name": "modal",
5159
+ "type": "SheetModality",
5160
+ "default": "true",
5161
+ "description": "`true` traps focus, locks page scroll, and blocks pointer interaction behind a backdrop; `'trap-focus'` traps focus only; `false` leaves the page fully interactive. Only `true` renders a backdrop — that is what makes the other two non-modal."
5162
+ },
5163
+ {
5164
+ "name": "backdrop",
5165
+ "type": "SheetBackdrop",
5166
+ "default": "'dim'",
5167
+ "description": "Backdrop treatment, applied only when `modal` is `true`. `'blur'` reads `--zx-overlay-blur`."
5168
+ },
5169
+ {
5170
+ "name": "size",
5171
+ "type": "string|number|null",
5172
+ "default": "null",
5173
+ "description": "Size along the sheet's own axis — width for `start`/`end`, height for `top`/`bottom`. A number is pixels, a string is any CSS length. Null keeps the per-side default."
5174
+ },
5175
+ {
5176
+ "name": "closeButton",
5177
+ "type": "boolean",
5178
+ "default": "true",
5179
+ "description": "Whether the header shows its close control. Independent of `closable`, so a sheet can offer Escape without an ✕, or the reverse."
5180
+ },
5181
+ {
5182
+ "name": "resizable",
5183
+ "type": "boolean",
5184
+ "default": "false",
5185
+ "description": "Whether the inner edge may be dragged to resize the sheet."
5186
+ },
5187
+ {
5188
+ "name": "min",
5189
+ "type": "number",
5190
+ "default": "160",
5191
+ "description": "Smallest the sheet may be dragged to, in pixels."
5192
+ },
5193
+ {
5194
+ "name": "max",
5195
+ "type": "number|null",
5196
+ "default": "null",
5197
+ "description": "Largest it may be dragged to; null means the viewport."
5198
+ },
5199
+ {
5200
+ "name": "handle",
5201
+ "type": "boolean|'auto'",
5202
+ "default": "'auto'",
5203
+ "description": "Whether to show a grab handle on the inner edge. `'auto'` shows one for `top` and `bottom` sheets, which is what makes them read as drawers."
5204
+ },
5205
+ {
5206
+ "name": "snap",
5207
+ "type": "Array<number|string>|null",
5208
+ "default": "null",
5209
+ "description": "Detents the sheet settles on. A number at or below 1 is a fraction of the viewport along the sheet's axis, anything larger is pixels, and a string is any CSS length `resolveSize` understands (`'320px'`, `'90%'`)."
5210
+ },
5211
+ {
5212
+ "name": "title",
5213
+ "type": "string",
5214
+ "default": "''",
5215
+ "description": "Header title."
5216
+ },
5217
+ {
5218
+ "name": "content",
5219
+ "type": "Node|string|number|{toElement: () => Node|null}|null",
5220
+ "default": "null",
5221
+ "description": "Body content."
5222
+ },
5223
+ {
5224
+ "name": "buttons",
5225
+ "type": "import('../dialog/dialog.js').DialogButton[]",
5226
+ "default": "[]",
5227
+ "description": "Footer buttons."
5228
+ },
5229
+ {
5230
+ "name": "closable",
5231
+ "type": "boolean",
5232
+ "default": "true",
5233
+ "description": "Whether Escape may close the sheet."
5234
+ },
5235
+ {
5236
+ "name": "lightDismiss",
5237
+ "type": "boolean",
5238
+ "default": "true",
5239
+ "description": "Whether a click outside closes the sheet — the backdrop when modal, a document-level pointer press when not."
5240
+ },
5241
+ {
5242
+ "name": "destroyOnClose",
5243
+ "type": "boolean",
5244
+ "default": "false",
5245
+ "description": "Whether to destroy the sheet after it closes."
5246
+ }
5247
+ ],
5248
+ "events": [
5249
+ {
5250
+ "name": "open",
5251
+ "payload": "Record<string, never>",
5252
+ "description": "Open event listener."
5253
+ },
5254
+ {
5255
+ "name": "close",
5256
+ "payload": "{result: unknown}",
5257
+ "description": "Close event listener."
5258
+ },
5259
+ {
5260
+ "name": "cancel",
5261
+ "payload": "Record<string, never>",
5262
+ "description": "Cancel event listener."
5263
+ },
5264
+ {
5265
+ "name": "resize",
5266
+ "payload": "{size: number, ratio: number}",
5267
+ "description": "Resize listener."
5268
+ },
5269
+ {
5270
+ "name": "dockchange",
5271
+ "payload": "{docked: boolean, dock: import('../dock/dock.js').Dock|null}",
5272
+ "description": "Dock-state listener."
5273
+ }
5274
+ ],
5275
+ "methods": [
5276
+ {
5277
+ "name": "snapTo",
5278
+ "signature": "snapTo(target)",
5279
+ "returns": "this",
5280
+ "description": "Moves to one of the configured detents."
5281
+ },
5282
+ {
5283
+ "name": "getSize",
5284
+ "signature": "getSize()",
5285
+ "returns": "number",
5286
+ "description": "Returns the sheet's current size along its own axis, in pixels."
5287
+ },
5288
+ {
5289
+ "name": "mountTarget",
5290
+ "signature": "mountTarget()",
5291
+ "returns": "Element",
5292
+ "description": "Where the dialog lives: the owning dock while adopted, the document otherwise."
5293
+ },
5294
+ {
5295
+ "name": "isDocked",
5296
+ "signature": "isDocked()",
5297
+ "returns": "boolean",
5298
+ "description": "Reports whether a dock currently owns this sheet's positioning."
5299
+ },
5300
+ {
5301
+ "name": "open",
5302
+ "signature": "open()",
5303
+ "returns": "this",
5304
+ "description": "Opens the sheet, trapping focus first where the modality asks for it."
5305
+ },
5306
+ {
5307
+ "name": "close",
5308
+ "signature": "close([result])",
5309
+ "returns": "this",
5310
+ "description": "Closes the sheet with an optional result."
5311
+ },
5312
+ {
5313
+ "name": "setSide",
5314
+ "signature": "setSide(side)",
5315
+ "returns": "this",
5316
+ "description": "Moves the sheet to another edge. Takes effect immediately, open or closed."
5317
+ },
5318
+ {
5319
+ "name": "getSide",
5320
+ "signature": "getSide()",
5321
+ "returns": "SheetSide",
5322
+ "description": "Returns the edge the sheet is anchored to."
5323
+ },
5324
+ {
5325
+ "name": "setSize",
5326
+ "signature": "setSize(size)",
5327
+ "returns": "this",
5328
+ "description": "Resizes the sheet along its own axis."
5329
+ },
5330
+ {
5331
+ "name": "isModal",
5332
+ "signature": "isModal()",
5333
+ "returns": "boolean",
5334
+ "description": "Reports whether focus containment is active."
5335
+ },
5336
+ {
5337
+ "name": "destroy",
5338
+ "signature": "destroy()",
5339
+ "returns": "void",
5340
+ "description": "Releases the focus trap and the owned dialog."
5341
+ }
5342
+ ]
5343
+ },
5344
+ "SheetStack": {
5345
+ "options": [
5346
+ {
5347
+ "name": "layout",
5348
+ "type": "'stack'|'cascade'",
5349
+ "default": "'stack'",
5350
+ "description": "How depth is expressed. `stack` slides each covered sheet back toward its edge and scales it down, leaving only the top one usable — the drill-down feel. `cascade` shifts each covered sheet clear of the ones in front so they sit side by side and all stay usable, which is what an ERP screen usually wants: the parent record stays readable while a line item is edited."
5351
+ },
5352
+ {
5353
+ "name": "offset",
5354
+ "type": "number",
5355
+ "default": "24",
5356
+ "description": "Pixels a `stack` layout moves per depth step."
5357
+ },
5358
+ {
5359
+ "name": "scale",
5360
+ "type": "number",
5361
+ "default": "0.04",
5362
+ "description": "How much a `stack` layout shrinks per depth step, as a fraction."
5363
+ },
5364
+ {
5365
+ "name": "max",
5366
+ "type": "number",
5367
+ "default": "3",
5368
+ "description": "Depth at which a sheet stops being drawn. Deeper sheets stay open and in the stack; they are simply no longer visible behind the ones in front."
5369
+ }
5370
+ ],
5371
+ "events": [
5372
+ {
5373
+ "name": "push",
5374
+ "payload": "{sheet: Sheet, depth: number}",
5375
+ "description": "Push listener."
5376
+ },
5377
+ {
5378
+ "name": "pop",
5379
+ "payload": "{sheet: Sheet}",
5380
+ "description": "Pop listener."
3366
5381
  }
3367
5382
  ],
3368
5383
  "methods": [
3369
5384
  {
3370
- "name": "setItems",
3371
- "signature": "setItems(items)",
5385
+ "name": "push",
5386
+ "signature": "push(sheet)",
3372
5387
  "returns": "this",
3373
- "description": "Replaces the available items and preserves selection by ID when possible."
5388
+ "description": "Adds a sheet to the top of the stack, opening it if it is closed. A sheet already in the stack is raised rather than added twice."
3374
5389
  },
3375
5390
  {
3376
- "name": "reset",
3377
- "signature": "reset([options])",
5391
+ "name": "pop",
5392
+ "signature": "pop()",
5393
+ "returns": "Sheet|null",
5394
+ "description": "Closes the top sheet and removes it from the stack. The removal is synchronous while the close is not — a dialog dispatches `close` in a queued task — so the stack updates itself here rather than waiting for the event. The close listener is left to handle the other direction: a sheet dismissed by Escape or its own button."
5395
+ },
5396
+ {
5397
+ "name": "popTo",
5398
+ "signature": "popTo(sheet)",
3378
5399
  "returns": "this",
3379
- "description": "Restores the configured initial value."
5400
+ "description": "Closes everything above a sheet, leaving it on top."
3380
5401
  },
3381
5402
  {
3382
- "name": "open",
3383
- "signature": "open()",
3384
- "returns": null,
3385
- "description": "Opens the option panel. @returns {this} @fires Select#open"
5403
+ "name": "clear",
5404
+ "signature": "clear()",
5405
+ "returns": "this",
5406
+ "description": "Closes every sheet, from the top down."
3386
5407
  },
3387
5408
  {
3388
- "name": "enable",
3389
- "signature": "enable()",
3390
- "returns": null,
3391
- "description": "Enables user interaction. @returns {this}"
5409
+ "name": "top",
5410
+ "signature": "top()",
5411
+ "returns": "Sheet|null",
5412
+ "description": "The sheet currently on top."
3392
5413
  },
3393
5414
  {
3394
- "name": "disable",
3395
- "signature": "disable()",
3396
- "returns": null,
3397
- "description": "Disables user interaction and closes the panel. @returns {this}"
5415
+ "name": "size",
5416
+ "signature": "size()",
5417
+ "returns": "number",
5418
+ "description": "How many sheets the stack holds."
3398
5419
  },
3399
5420
  {
3400
- "name": "focus",
3401
- "signature": "focus()",
3402
- "returns": null,
3403
- "description": "Moves focus to the combobox input. @returns {this}"
5421
+ "name": "sheets",
5422
+ "signature": "sheets()",
5423
+ "returns": "Sheet[]",
5424
+ "description": "The sheets, bottom first."
5425
+ },
5426
+ {
5427
+ "name": "has",
5428
+ "signature": "has(sheet)",
5429
+ "returns": "boolean",
5430
+ "description": "Whether a sheet is in this stack."
5431
+ },
5432
+ {
5433
+ "name": "on",
5434
+ "signature": "on(type, fn)",
5435
+ "returns": "this",
5436
+ "description": "Subscribes to a stack event."
5437
+ },
5438
+ {
5439
+ "name": "off",
5440
+ "signature": "off(type, fn)",
5441
+ "returns": "this",
5442
+ "description": "Removes a stack event listener."
5443
+ },
5444
+ {
5445
+ "name": "once",
5446
+ "signature": "once(type, fn)",
5447
+ "returns": "this",
5448
+ "description": "Subscribes to one occurrence of a stack event."
3404
5449
  },
3405
5450
  {
3406
5451
  "name": "destroy",
3407
5452
  "signature": "destroy()",
3408
- "returns": null,
3409
- "description": "Cleans up the panel, pending async work, and enhanced target contents. @returns {void}"
5453
+ "returns": "void",
5454
+ "description": "Empties the stack without closing anything. The sheets are not the stack's to destroy, so they are simply released with their depth styling removed."
3410
5455
  }
3411
5456
  ]
3412
5457
  },
@@ -3594,6 +5639,12 @@
3594
5639
  }
3595
5640
  ],
3596
5641
  "methods": [
5642
+ {
5643
+ "name": "get",
5644
+ "signature": "get()",
5645
+ "returns": "number",
5646
+ "description": "Returns the current value."
5647
+ },
3597
5648
  {
3598
5649
  "name": "set",
3599
5650
  "signature": "set(next, [options])",
@@ -3609,20 +5660,20 @@
3609
5660
  {
3610
5661
  "name": "focus",
3611
5662
  "signature": "focus()",
3612
- "returns": null,
3613
- "description": "Focuses the track. @returns {this}"
5663
+ "returns": "this",
5664
+ "description": "Focuses the track."
3614
5665
  },
3615
5666
  {
3616
5667
  "name": "enable",
3617
5668
  "signature": "enable()",
3618
- "returns": null,
3619
- "description": "Enables user interaction. @returns {this}"
5669
+ "returns": "this",
5670
+ "description": "Enables user interaction."
3620
5671
  },
3621
5672
  {
3622
5673
  "name": "disable",
3623
5674
  "signature": "disable()",
3624
- "returns": null,
3625
- "description": "Disables user interaction. @returns {this}"
5675
+ "returns": "this",
5676
+ "description": "Disables user interaction."
3626
5677
  },
3627
5678
  {
3628
5679
  "name": "setReadonly",
@@ -3635,6 +5686,12 @@
3635
5686
  "signature": "setLabel(label)",
3636
5687
  "returns": "this",
3637
5688
  "description": "Replaces the visible label."
5689
+ },
5690
+ {
5691
+ "name": "destroy",
5692
+ "signature": "destroy()",
5693
+ "returns": "void",
5694
+ "description": "Restores an enhanced target to the markup it had before the takeover."
3638
5695
  }
3639
5696
  ]
3640
5697
  },
@@ -3766,6 +5823,18 @@
3766
5823
  }
3767
5824
  ],
3768
5825
  "methods": [
5826
+ {
5827
+ "name": "setSize",
5828
+ "signature": "setSize(value)",
5829
+ "returns": "this",
5830
+ "description": "Sets the start pane size. Pixels and percentages are clamped against `min`, `max`, and the container immediately; any other CSS length is handed to the browser unclamped. Programmatic, so it emits nothing."
5831
+ },
5832
+ {
5833
+ "name": "getSize",
5834
+ "signature": "getSize()",
5835
+ "returns": "number",
5836
+ "description": "Returns the start pane's current size in pixels: `0` while the start pane is collapsed, and everything but the divider while the end pane is."
5837
+ },
3769
5838
  {
3770
5839
  "name": "getRatio",
3771
5840
  "signature": "getRatio()",
@@ -3796,6 +5865,12 @@
3796
5865
  "returns": "this",
3797
5866
  "description": "Restores a collapsed pane to the size it had."
3798
5867
  },
5868
+ {
5869
+ "name": "isCollapsed",
5870
+ "signature": "isCollapsed()",
5871
+ "returns": "'start'|'end'|false",
5872
+ "description": "Reports which pane is collapsed, if any."
5873
+ },
3799
5874
  {
3800
5875
  "name": "enable",
3801
5876
  "signature": "enable()",
@@ -3923,6 +5998,12 @@
3923
5998
  }
3924
5999
  ],
3925
6000
  "methods": [
6001
+ {
6002
+ "name": "setSteps",
6003
+ "signature": "setSteps(list)",
6004
+ "returns": "this",
6005
+ "description": "Replaces the whole step list. Completion and error flags survive for steps that are still present, and so does the active step; when it is gone the first enabled step takes over. This is a structural change, so it never emits `change`."
6006
+ },
3926
6007
  {
3927
6008
  "name": "goTo",
3928
6009
  "signature": "goTo(name)",
@@ -3991,6 +6072,18 @@
3991
6072
  }
3992
6073
  ]
3993
6074
  },
6075
+ "TabInsert": {
6076
+ "options": [
6077
+ {
6078
+ "name": "index",
6079
+ "type": "number",
6080
+ "default": null,
6081
+ "description": "Zero-based insertion index; omitted appends."
6082
+ }
6083
+ ],
6084
+ "events": [],
6085
+ "methods": []
6086
+ },
3994
6087
  "Tabbox": {
3995
6088
  "options": [
3996
6089
  {
@@ -4027,10 +6120,22 @@
4027
6120
  {
4028
6121
  "name": "close",
4029
6122
  "payload": "{name: string}",
4030
- "description": "Close callback."
6123
+ "description": "Close callback, fired when the user dismisses a closable tab."
4031
6124
  }
4032
6125
  ],
4033
6126
  "methods": [
6127
+ {
6128
+ "name": "addTab",
6129
+ "signature": "addTab(definition, [insert])",
6130
+ "returns": "this",
6131
+ "description": "Adds a tab."
6132
+ },
6133
+ {
6134
+ "name": "removeTab",
6135
+ "signature": "removeTab(name)",
6136
+ "returns": "this",
6137
+ "description": "Removes a tab by name."
6138
+ },
4034
6139
  {
4035
6140
  "name": "openTab",
4036
6141
  "signature": "openTab(name)",
@@ -4160,6 +6265,12 @@
4160
6265
  "type": "TableEditMode",
4161
6266
  "default": "false",
4162
6267
  "description": "Inline editing mode. `'cell'` edits one cell, `'row'` opens every editable cell of the row together and commits them as a unit. Editing is completely inert while this is `false`."
6268
+ },
6269
+ {
6270
+ "name": "hierarchy",
6271
+ "type": "false|TableHierarchyOptions",
6272
+ "default": "false",
6273
+ "description": "Flat parent references projected as an expandable treegrid. Row data and mutation APIs remain flat."
4163
6274
  }
4164
6275
  ],
4165
6276
  "events": [
@@ -4217,9 +6328,20 @@
4217
6328
  "name": "editinvalid",
4218
6329
  "payload": "{row, id, column, columnId, value, message}",
4219
6330
  "description": ""
6331
+ },
6332
+ {
6333
+ "name": "rowtoggle",
6334
+ "payload": "{row, id, expanded}",
6335
+ "description": ""
4220
6336
  }
4221
6337
  ],
4222
6338
  "methods": [
6339
+ {
6340
+ "name": "setLoading",
6341
+ "signature": "setLoading([loading])",
6342
+ "returns": "this",
6343
+ "description": "Toggles a loading state. While loading, the body is dimmed, an indeterminate progress bar is shown, and `aria-busy` is set — a lightweight take on the busy/skeleton pattern used by enterprise tables (SAP UI5, Salesforce SLDS). Call `setLoading(false)` (or `setData`) when done."
6344
+ },
4223
6345
  {
4224
6346
  "name": "setData",
4225
6347
  "signature": "setData(rows)",
@@ -4250,6 +6372,12 @@
4250
6372
  "returns": "TableRow|null",
4251
6373
  "description": "Returns a row by id."
4252
6374
  },
6375
+ {
6376
+ "name": "getData",
6377
+ "signature": "getData()",
6378
+ "returns": "TableRow[]",
6379
+ "description": "Returns a shallow copy of the current rows in display order."
6380
+ },
4253
6381
  {
4254
6382
  "name": "empty",
4255
6383
  "signature": "empty()",
@@ -4262,6 +6390,12 @@
4262
6390
  "returns": "this",
4263
6391
  "description": "Activates a column sort. Local mode stably reorders data; server mode only updates the header state and emits the request event."
4264
6392
  },
6393
+ {
6394
+ "name": "getSelection",
6395
+ "signature": "getSelection()",
6396
+ "returns": "TableRow[]",
6397
+ "description": "Returns selected rows in current display order."
6398
+ },
4265
6399
  {
4266
6400
  "name": "setSelection",
4267
6401
  "signature": "setSelection(ids)",
@@ -4274,17 +6408,77 @@
4274
6408
  "returns": "this",
4275
6409
  "description": "Clears all selected rows."
4276
6410
  },
6411
+ {
6412
+ "name": "toggleRow",
6413
+ "signature": "toggleRow(id, [options])",
6414
+ "returns": "this",
6415
+ "description": "Toggles one hierarchy branch. A leaf or an id absent from the table is a no-op."
6416
+ },
6417
+ {
6418
+ "name": "expandRow",
6419
+ "signature": "expandRow(id, [options])",
6420
+ "returns": "this",
6421
+ "description": "Expands one hierarchy branch."
6422
+ },
6423
+ {
6424
+ "name": "collapseRow",
6425
+ "signature": "collapseRow(id, [options])",
6426
+ "returns": "this",
6427
+ "description": "Collapses one hierarchy branch without discarding its descendants or their expansion state."
6428
+ },
6429
+ {
6430
+ "name": "expandAll",
6431
+ "signature": "expandAll([options])",
6432
+ "returns": "this",
6433
+ "description": "Expands every row that currently has children."
6434
+ },
6435
+ {
6436
+ "name": "collapseAll",
6437
+ "signature": "collapseAll([options])",
6438
+ "returns": "this",
6439
+ "description": "Collapses every hierarchy branch."
6440
+ },
6441
+ {
6442
+ "name": "getExpanded",
6443
+ "signature": "getExpanded()",
6444
+ "returns": "unknown[]",
6445
+ "description": "Returns expanded branch ids in current flat-data order."
6446
+ },
4277
6447
  {
4278
6448
  "name": "startEdit",
4279
6449
  "signature": "startEdit(rowId, columnId)",
4280
6450
  "returns": "this",
4281
6451
  "description": "Opens the editor for a cell. No-op unless the table runs with `editMode` and the column resolves to an editable type for that row. In `'row'` mode every editable cell of the row is opened and `columnId` only decides which editor receives focus. Any other open edit is committed first."
4282
6452
  },
6453
+ {
6454
+ "name": "commitEdit",
6455
+ "signature": "commitEdit()",
6456
+ "returns": "this",
6457
+ "description": "Commits the open edit. Validation runs first: the first column whose `validate` rejects marks its cell invalid, emits `editinvalid`, and leaves the editor open. A listener may `preventDefault()` the `editcommit` event — e.g. while a server round-trip is pending — which also keeps the editor open. Otherwise every changed cell is written back through `updateRow()`, so `datachange` fires exactly as it does for a programmatic row update."
6458
+ },
6459
+ {
6460
+ "name": "cancelEdit",
6461
+ "signature": "cancelEdit()",
6462
+ "returns": "this",
6463
+ "description": "Closes the open edit without writing anything back and returns focus to the cell."
6464
+ },
6465
+ {
6466
+ "name": "isEditing",
6467
+ "signature": "isEditing()",
6468
+ "returns": "boolean",
6469
+ "description": "Reports whether a cell or row is currently open for editing."
6470
+ },
6471
+ {
6472
+ "name": "getEditing",
6473
+ "signature": "getEditing()",
6474
+ "returns": "{id: unknown, columnId: string}|null",
6475
+ "description": "Returns the row id and focused column id for the open edit."
6476
+ },
4283
6477
  {
4284
6478
  "name": "growBy",
4285
6479
  "signature": "growBy([count])",
4286
- "returns": "TableRow[]",
4287
- "description": "The rows currently rendered — all of them unless `growing` is on."
6480
+ "returns": "this",
6481
+ "description": "Renders the next batch of rows."
4288
6482
  },
4289
6483
  {
4290
6484
  "name": "showAll",
@@ -4300,18 +6494,42 @@
4300
6494
  },
4301
6495
  {
4302
6496
  "name": "isStacked",
4303
- "signature": "isStacked(key, fallback, args, stacked, stacked)",
4304
- "returns": "void",
4305
- "description": "Keeps the \"show more\" control in step with what is rendered. The control sits outside the table rather than in a `<tfoot>` row spanning every column: it is a command, not data, and a button inside the grid would be reachable by the row navigation keys as though it were a cell."
6497
+ "signature": "isStacked()",
6498
+ "returns": "boolean",
6499
+ "description": "Reports whether the rows are currently stacked."
4306
6500
  },
4307
6501
  {
4308
6502
  "name": "destroy",
4309
6503
  "signature": "destroy()",
4310
- "returns": null,
4311
- "description": "Restores an enhanced target and releases all component listeners. @returns {void}"
6504
+ "returns": "void",
6505
+ "description": "Restores an enhanced target and releases all component listeners."
4312
6506
  }
4313
6507
  ]
4314
6508
  },
6509
+ "TableHierarchy": {
6510
+ "options": [
6511
+ {
6512
+ "name": "parentId",
6513
+ "type": "string|((row: TableRow) => unknown)",
6514
+ "default": null,
6515
+ "description": "Row property or callback returning its parent row id. Null and undefined identify a root row."
6516
+ },
6517
+ {
6518
+ "name": "column",
6519
+ "type": "string",
6520
+ "default": null,
6521
+ "description": "Column that receives indentation and the disclosure control; the first column is used when omitted."
6522
+ },
6523
+ {
6524
+ "name": "expanded",
6525
+ "type": "boolean|unknown[]",
6526
+ "default": "false",
6527
+ "description": "Initially expanded branches: all, none, or ids."
6528
+ }
6529
+ ],
6530
+ "events": [],
6531
+ "methods": []
6532
+ },
4315
6533
  "TagPicker": {
4316
6534
  "options": [
4317
6535
  {
@@ -4466,6 +6684,12 @@
4466
6684
  }
4467
6685
  ],
4468
6686
  "methods": [
6687
+ {
6688
+ "name": "getValues",
6689
+ "signature": "getValues()",
6690
+ "returns": "unknown[]",
6691
+ "description": "Returns the selected IDs in selection order."
6692
+ },
4469
6693
  {
4470
6694
  "name": "getItems",
4471
6695
  "signature": "getItems()",
@@ -4511,32 +6735,38 @@
4511
6735
  {
4512
6736
  "name": "isFull",
4513
6737
  "signature": "isFull()",
4514
- "returns": null,
4515
- "description": "Reports whether the configured maximum is reached. @returns {boolean}"
6738
+ "returns": "boolean",
6739
+ "description": "Reports whether the configured maximum is reached."
4516
6740
  },
4517
6741
  {
4518
6742
  "name": "open",
4519
6743
  "signature": "open()",
4520
- "returns": null,
4521
- "description": "Opens the option list. @returns {this}"
6744
+ "returns": "this",
6745
+ "description": "Opens the option list."
6746
+ },
6747
+ {
6748
+ "name": "close",
6749
+ "signature": "close()",
6750
+ "returns": "this",
6751
+ "description": "Closes the option list."
4522
6752
  },
4523
6753
  {
4524
6754
  "name": "focus",
4525
6755
  "signature": "focus()",
4526
- "returns": null,
4527
- "description": "Focuses the text input. @returns {this}"
6756
+ "returns": "this",
6757
+ "description": "Focuses the text input."
4528
6758
  },
4529
6759
  {
4530
6760
  "name": "enable",
4531
6761
  "signature": "enable()",
4532
- "returns": null,
4533
- "description": "Enables user interaction. @returns {this}"
6762
+ "returns": "this",
6763
+ "description": "Enables user interaction."
4534
6764
  },
4535
6765
  {
4536
6766
  "name": "disable",
4537
6767
  "signature": "disable()",
4538
- "returns": null,
4539
- "description": "Disables user interaction and closes the list. @returns {this}"
6768
+ "returns": "this",
6769
+ "description": "Disables user interaction and closes the list."
4540
6770
  },
4541
6771
  {
4542
6772
  "name": "setReadonly",
@@ -4547,8 +6777,8 @@
4547
6777
  {
4548
6778
  "name": "destroy",
4549
6779
  "signature": "destroy()",
4550
- "returns": null,
4551
- "description": "Cancels pending work and restores an enhanced target. @returns {void}"
6780
+ "returns": "void",
6781
+ "description": "Cancels pending work and restores an enhanced target."
4552
6782
  }
4553
6783
  ]
4554
6784
  },
@@ -4587,6 +6817,12 @@
4587
6817
  }
4588
6818
  ],
4589
6819
  "methods": [
6820
+ {
6821
+ "name": "get",
6822
+ "signature": "get()",
6823
+ "returns": "TimePickerValue|null",
6824
+ "description": "Returns a copy of the selected time, or null when no initial value has been committed."
6825
+ },
4590
6826
  {
4591
6827
  "name": "set",
4592
6828
  "signature": "set(value, [options])",
@@ -4602,20 +6838,20 @@
4602
6838
  {
4603
6839
  "name": "closeClock",
4604
6840
  "signature": "closeClock()",
4605
- "returns": null,
4606
- "description": "Closes the clock face. @returns {this}"
6841
+ "returns": "this",
6842
+ "description": "Closes the clock face."
4607
6843
  },
4608
6844
  {
4609
6845
  "name": "toggleClock",
4610
6846
  "signature": "toggleClock()",
4611
- "returns": null,
4612
- "description": "Toggles the clock face. @returns {this}"
6847
+ "returns": "this",
6848
+ "description": "Toggles the clock face."
4613
6849
  },
4614
6850
  {
4615
6851
  "name": "destroy",
4616
6852
  "signature": "destroy()",
4617
- "returns": null,
4618
- "description": "Removes generated content from an enhanced target. @returns {void}"
6853
+ "returns": "void",
6854
+ "description": "Removes generated content from an enhanced target."
4619
6855
  }
4620
6856
  ]
4621
6857
  },
@@ -4660,6 +6896,12 @@
4660
6896
  }
4661
6897
  ],
4662
6898
  "methods": [
6899
+ {
6900
+ "name": "get",
6901
+ "signature": "get([unit])",
6902
+ "returns": "number",
6903
+ "description": "Returns the current duration."
6904
+ },
4663
6905
  {
4664
6906
  "name": "set",
4665
6907
  "signature": "set(value, [unit], [options])",
@@ -4669,20 +6911,20 @@
4669
6911
  {
4670
6912
  "name": "enable",
4671
6913
  "signature": "enable()",
4672
- "returns": null,
4673
- "description": "Enables the timebox. @returns {this}"
6914
+ "returns": "this",
6915
+ "description": "Enables the timebox."
4674
6916
  },
4675
6917
  {
4676
6918
  "name": "disable",
4677
6919
  "signature": "disable()",
4678
- "returns": null,
4679
- "description": "Disables the timebox. @returns {this}"
6920
+ "returns": "this",
6921
+ "description": "Disables the timebox."
4680
6922
  },
4681
6923
  {
4682
6924
  "name": "destroy",
4683
6925
  "signature": "destroy()",
4684
- "returns": null,
4685
- "description": "Removes generated content from an enhanced target. @returns {void}"
6926
+ "returns": "void",
6927
+ "description": "Removes generated content from an enhanced target."
4686
6928
  }
4687
6929
  ]
4688
6930
  },
@@ -4721,6 +6963,12 @@
4721
6963
  }
4722
6964
  ],
4723
6965
  "methods": [
6966
+ {
6967
+ "name": "get",
6968
+ "signature": "get()",
6969
+ "returns": "boolean",
6970
+ "description": "Returns the current switch state."
6971
+ },
4724
6972
  {
4725
6973
  "name": "set",
4726
6974
  "signature": "set(checked, [options])",
@@ -4800,6 +7048,18 @@
4800
7048
  }
4801
7049
  ],
4802
7050
  "methods": [
7051
+ {
7052
+ "name": "setItems",
7053
+ "signature": "setItems(list)",
7054
+ "returns": "this",
7055
+ "description": "Replaces every item and remeasures the overflow."
7056
+ },
7057
+ {
7058
+ "name": "getItem",
7059
+ "signature": "getItem(name)",
7060
+ "returns": "Element|null",
7061
+ "description": "Looks up an item element by name."
7062
+ },
4803
7063
  {
4804
7064
  "name": "enable",
4805
7065
  "signature": "enable(name)",
@@ -4836,7 +7096,7 @@
4836
7096
  },
4837
7097
  {
4838
7098
  "name": "placement",
4839
- "type": "'top'|'bottom'|'top-start'|'top-end'|'bottom-start'|'bottom-end'",
7099
+ "type": "'top'|'bottom'|'top-start'|'top-end'|'bottom-start'|'bottom-end'|'left'|'right'|'left-start'|'left-end'|'right-start'|'right-end'",
4840
7100
  "default": "'top'",
4841
7101
  "description": "Preferred side; flips when it would overflow."
4842
7102
  },
@@ -4896,6 +7156,12 @@
4896
7156
  "returns": "this",
4897
7157
  "description": "Opens the tooltip, evaluating the content first. Does nothing while disabled, already open, or when the content resolves to nothing."
4898
7158
  },
7159
+ {
7160
+ "name": "hide",
7161
+ "signature": "hide()",
7162
+ "returns": "this",
7163
+ "description": "Closes the tooltip and restores the anchor's original `aria-describedby`."
7164
+ },
4899
7165
  {
4900
7166
  "name": "toggle",
4901
7167
  "signature": "toggle()",
@@ -5084,6 +7350,12 @@
5084
7350
  }
5085
7351
  ],
5086
7352
  "methods": [
7353
+ {
7354
+ "name": "setItems",
7355
+ "signature": "setItems(items)",
7356
+ "returns": "this",
7357
+ "description": "Replaces the whole tree."
7358
+ },
5087
7359
  {
5088
7360
  "name": "getItems",
5089
7361
  "signature": "getItems()",
@@ -5135,8 +7407,8 @@
5135
7407
  {
5136
7408
  "name": "collapseAll",
5137
7409
  "signature": "collapseAll()",
5138
- "returns": null,
5139
- "description": "Collapses every branch. @returns {this}"
7410
+ "returns": "this",
7411
+ "description": "Collapses every branch."
5140
7412
  },
5141
7413
  {
5142
7414
  "name": "reveal",
@@ -5165,8 +7437,8 @@
5165
7437
  {
5166
7438
  "name": "clearSelection",
5167
7439
  "signature": "clearSelection()",
5168
- "returns": null,
5169
- "description": "Clears the selection. @returns {this}"
7440
+ "returns": "this",
7441
+ "description": "Clears the selection."
5170
7442
  },
5171
7443
  {
5172
7444
  "name": "getChecked",
@@ -5191,6 +7463,12 @@
5191
7463
  "signature": "focusNode(id)",
5192
7464
  "returns": "this",
5193
7465
  "description": "Moves DOM focus to a node, revealing it first."
7466
+ },
7467
+ {
7468
+ "name": "destroy",
7469
+ "signature": "destroy()",
7470
+ "returns": "void",
7471
+ "description": "Restores an enhanced target to the markup it had before the takeover."
5194
7472
  }
5195
7473
  ]
5196
7474
  },
@@ -5212,6 +7490,48 @@
5212
7490
  "events": [],
5213
7491
  "methods": []
5214
7492
  },
7493
+ "UploadTransport": {
7494
+ "options": [
7495
+ {
7496
+ "name": "files",
7497
+ "type": "File[]",
7498
+ "default": null,
7499
+ "description": "Selected files."
7500
+ },
7501
+ {
7502
+ "name": "paramName",
7503
+ "type": "string",
7504
+ "default": null,
7505
+ "description": "Multipart field name."
7506
+ },
7507
+ {
7508
+ "name": "params",
7509
+ "type": "Record<string, unknown>",
7510
+ "default": null,
7511
+ "description": "Extra form values."
7512
+ },
7513
+ {
7514
+ "name": "headers",
7515
+ "type": "Record<string, string>",
7516
+ "default": null,
7517
+ "description": "Request headers."
7518
+ },
7519
+ {
7520
+ "name": "signal",
7521
+ "type": "AbortSignal",
7522
+ "default": null,
7523
+ "description": "Abort signal."
7524
+ },
7525
+ {
7526
+ "name": "onProgress",
7527
+ "type": "(percent: number) => void",
7528
+ "default": null,
7529
+ "description": "Progress callback."
7530
+ }
7531
+ ],
7532
+ "events": [],
7533
+ "methods": []
7534
+ },
5215
7535
  "ValueList": {
5216
7536
  "options": [
5217
7537
  {
@@ -5251,8 +7571,30 @@
5251
7571
  "description": "Value validator."
5252
7572
  }
5253
7573
  ],
5254
- "events": [],
7574
+ "events": [
7575
+ {
7576
+ "name": "change",
7577
+ "payload": "{values: string[]}",
7578
+ "description": "Values change listener."
7579
+ },
7580
+ {
7581
+ "name": "add",
7582
+ "payload": "{value: string}",
7583
+ "description": "Value added listener."
7584
+ },
7585
+ {
7586
+ "name": "remove",
7587
+ "payload": "{value: string}",
7588
+ "description": "Value removed listener."
7589
+ }
7590
+ ],
5255
7591
  "methods": [
7592
+ {
7593
+ "name": "getValues",
7594
+ "signature": "getValues()",
7595
+ "returns": "string[]",
7596
+ "description": "Returns a copy of the ordered values."
7597
+ },
5256
7598
  {
5257
7599
  "name": "setValues",
5258
7600
  "signature": "setValues(values, [options])",