@zeyos/zx 2.3.0 → 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 (105) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/DESIGN-SYSTEM.md +136 -0
  3. package/MIGRATION.md +155 -4
  4. package/README.md +24 -13
  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 +7 -1
  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/sheet/sheet-stack.d.ts +167 -0
  27. package/dist/types/components/sheet/sheet.d.ts +294 -0
  28. package/dist/types/components/split-view/split-view.d.ts +2 -21
  29. package/dist/types/components/table/table.d.ts +219 -12
  30. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  31. package/dist/types/components/value-list/value-list.d.ts +24 -3
  32. package/dist/types/core/dom.d.ts +114 -0
  33. package/dist/types/core/drag-axis.d.ts +111 -0
  34. package/dist/types/core/position.d.ts +4 -2
  35. package/dist/types/index.d.ts +12 -2
  36. package/dist/zx-compat.esm.js +641 -277
  37. package/dist/zx-compat.esm.min.js +1 -1
  38. package/dist/zx-compat.global.js +7609 -2236
  39. package/dist/zx-compat.global.min.js +3 -3
  40. package/dist/zx-zeyos.esm.js +546 -87
  41. package/dist/zx-zeyos.esm.min.js +1 -1
  42. package/dist/zx.css +1452 -101
  43. package/dist/zx.esm.js +7952 -2592
  44. package/dist/zx.esm.min.js +3 -3
  45. package/dist/zx.global.js +7952 -2592
  46. package/dist/zx.global.min.js +3 -3
  47. package/dist/zx.min.css +1 -1
  48. package/docs/api.json +2276 -337
  49. package/docs/llms.md +426 -30
  50. package/docs/llms.txt +21 -9
  51. package/package.json +4 -2
  52. package/src/compat/globals.js +3 -1
  53. package/src/compat/map/data.js +31 -9
  54. package/src/components/account-menu/account-menu.css +70 -0
  55. package/src/components/account-menu/account-menu.js +208 -0
  56. package/src/components/app-rail/app-rail.css +107 -0
  57. package/src/components/app-rail/app-rail.js +668 -0
  58. package/src/components/app-sidebar/app-sidebar.css +68 -0
  59. package/src/components/app-sidebar/app-sidebar.js +388 -0
  60. package/src/components/avatar/avatar.css +61 -0
  61. package/src/components/avatar/avatar.js +222 -0
  62. package/src/components/button/button.css +0 -1
  63. package/src/components/chart/chart.css +61 -0
  64. package/src/components/chart/chart.js +518 -0
  65. package/src/components/date-picker/month-picker.js +9 -0
  66. package/src/components/dialog/dialog.js +11 -4
  67. package/src/components/dock/dock.css +228 -0
  68. package/src/components/dock/dock.js +977 -0
  69. package/src/components/dropdown/dropdown.js +1 -1
  70. package/src/components/field/field.js +2 -0
  71. package/src/components/field-upload/field-upload.js +9 -4
  72. package/src/components/form/form.js +6 -3
  73. package/src/components/grid/grid.css +6 -0
  74. package/src/components/grid/grid.js +213 -0
  75. package/src/components/launcher/launcher.css +100 -0
  76. package/src/components/launcher/launcher.js +557 -0
  77. package/src/components/layout/layout.js +2 -2
  78. package/src/components/menu-button/menu-button.js +27 -2
  79. package/src/components/modal/modal.css +5 -1
  80. package/src/components/modal/modal.js +37 -2
  81. package/src/components/multi-value-editor/multi-value-editor.js +2 -1
  82. package/src/components/questionnaire/items.js +370 -0
  83. package/src/components/questionnaire/questionnaire.css +387 -0
  84. package/src/components/questionnaire/questionnaire.js +1033 -0
  85. package/src/components/select/select.css +0 -1
  86. package/src/components/sheet/sheet-stack.js +304 -0
  87. package/src/components/sheet/sheet.css +351 -0
  88. package/src/components/sheet/sheet.js +551 -0
  89. package/src/components/split-view/split-view.js +76 -161
  90. package/src/components/table/table.css +43 -0
  91. package/src/components/table/table.js +523 -45
  92. package/src/components/tooltip/tooltip.js +5 -2
  93. package/src/components/value-list/value-list.js +6 -3
  94. package/src/core/dom.js +302 -0
  95. package/src/core/drag-axis.js +203 -0
  96. package/src/core/position.js +68 -22
  97. package/src/index.js +19 -2
  98. package/styles/tokens/dark.css +2 -3
  99. package/styles/tokens/global.css +5 -5
  100. package/styles/tokens/semantic.css +5 -3
  101. package/styles/tokens/themes.css +1 -1
  102. package/styles/zx.css +10 -1
  103. package/dist/types/components/permission/permission.d.ts +0 -96
  104. package/src/components/permission/permission.css +0 -47
  105. package/src/components/permission/permission.js +0 -201
package/docs/api.json CHANGED
@@ -1,4 +1,410 @@
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
  {
@@ -23,6 +429,85 @@
23
429
  "events": [],
24
430
  "methods": []
25
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."
457
+ },
458
+ {
459
+ "name": "size",
460
+ "type": "string|number",
461
+ "default": "'md'",
462
+ "description": "Preset (`sm`, `md`, `lg`) or pixel size."
463
+ },
464
+ {
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."
481
+ }
482
+ ],
483
+ "events": [],
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
+ ]
510
+ },
26
511
  "Badge": {
27
512
  "options": [
28
513
  {
@@ -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
  {
@@ -183,20 +740,198 @@
183
740
  "description": "Whether the button is disabled."
184
741
  },
185
742
  {
186
- "name": "title",
187
- "type": "string",
188
- "default": null,
189
- "description": "Native title text."
743
+ "name": "title",
744
+ "type": "string",
745
+ "default": null,
746
+ "description": "Native title text."
747
+ }
748
+ ],
749
+ "events": [
750
+ {
751
+ "name": "click",
752
+ "payload": null,
753
+ "description": "Click callback."
754
+ }
755
+ ],
756
+ "methods": []
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."
190
921
  }
191
- ],
192
- "events": [
922
+ ]
923
+ },
924
+ "ChartJsAdapter": {
925
+ "options": [],
926
+ "events": [],
927
+ "methods": [
193
928
  {
194
- "name": "click",
195
- "payload": null,
196
- "description": "Click callback."
929
+ "name": "create",
930
+ "signature": "create(canvas, spec)",
931
+ "returns": "ChartHandle",
932
+ "description": "Creates one Chart.js lifecycle handle."
197
933
  }
198
- ],
199
- "methods": []
934
+ ]
200
935
  },
201
936
  "CheckButton": {
202
937
  "options": [
@@ -350,8 +1085,8 @@
350
1085
  {
351
1086
  "name": "getValues",
352
1087
  "signature": "getValues()",
353
- "returns": null,
354
- "description": "Returns checked IDs in item order. @returns {unknown[]}"
1088
+ "returns": "unknown[]",
1089
+ "description": "Returns checked IDs in item order."
355
1090
  },
356
1091
  {
357
1092
  "name": "setValues",
@@ -362,14 +1097,14 @@
362
1097
  {
363
1098
  "name": "checkAll",
364
1099
  "signature": "checkAll()",
365
- "returns": null,
366
- "description": "Checks every item. @returns {this} @fires Checklist#change"
1100
+ "returns": "this",
1101
+ "description": "Checks every item."
367
1102
  },
368
1103
  {
369
1104
  "name": "uncheckAll",
370
1105
  "signature": "uncheckAll()",
371
- "returns": null,
372
- "description": "Unchecks every item. @returns {this} @fires Checklist#change"
1106
+ "returns": "this",
1107
+ "description": "Unchecks every item."
373
1108
  },
374
1109
  {
375
1110
  "name": "search",
@@ -386,11 +1121,47 @@
386
1121
  {
387
1122
  "name": "destroy",
388
1123
  "signature": "destroy()",
389
- "returns": null,
390
- "description": "Restores an enhanced target and invalidates pending loads. @returns {void}"
1124
+ "returns": "void",
1125
+ "description": "Restores an enhanced target and invalidates pending loads."
391
1126
  }
392
1127
  ]
393
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
+ },
394
1165
  "ContextMenu": {
395
1166
  "options": [
396
1167
  {
@@ -590,8 +1361,8 @@
590
1361
  {
591
1362
  "name": "destroy",
592
1363
  "signature": "destroy()",
593
- "returns": null,
594
- "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."
595
1366
  }
596
1367
  ]
597
1368
  },
@@ -663,8 +1434,8 @@
663
1434
  {
664
1435
  "name": "destroy",
665
1436
  "signature": "destroy()",
666
- "returns": null,
667
- "description": "Restores enhanced content and user-owned custom controls. @returns {void}"
1437
+ "returns": "void",
1438
+ "description": "Restores enhanced content and user-owned custom controls."
668
1439
  }
669
1440
  ]
670
1441
  },
@@ -741,8 +1512,8 @@
741
1512
  {
742
1513
  "name": "destroy",
743
1514
  "signature": "destroy()",
744
- "returns": null,
745
- "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."
746
1517
  }
747
1518
  ]
748
1519
  },
@@ -895,26 +1666,26 @@
895
1666
  {
896
1667
  "name": "enable",
897
1668
  "signature": "enable()",
898
- "returns": null,
899
- "description": "Enables the box. @returns {this}"
1669
+ "returns": "this",
1670
+ "description": "Enables the box."
900
1671
  },
901
1672
  {
902
1673
  "name": "disable",
903
1674
  "signature": "disable()",
904
- "returns": null,
905
- "description": "Disables the box and closes its popover. @returns {this}"
1675
+ "returns": "this",
1676
+ "description": "Disables the box and closes its popover."
906
1677
  },
907
1678
  {
908
1679
  "name": "focus",
909
1680
  "signature": "focus()",
910
- "returns": null,
911
- "description": "Moves focus to the text input. @returns {this}"
1681
+ "returns": "this",
1682
+ "description": "Moves focus to the text input."
912
1683
  },
913
1684
  {
914
1685
  "name": "destroy",
915
1686
  "signature": "destroy()",
916
- "returns": null,
917
- "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."
918
1689
  }
919
1690
  ]
920
1691
  },
@@ -1032,20 +1803,20 @@
1032
1803
  {
1033
1804
  "name": "enable",
1034
1805
  "signature": "enable()",
1035
- "returns": null,
1036
- "description": "Enables every control. @returns {this}"
1806
+ "returns": "this",
1807
+ "description": "Enables every control."
1037
1808
  },
1038
1809
  {
1039
1810
  "name": "disable",
1040
1811
  "signature": "disable()",
1041
- "returns": null,
1042
- "description": "Disables every control. @returns {this}"
1812
+ "returns": "this",
1813
+ "description": "Disables every control."
1043
1814
  },
1044
1815
  {
1045
1816
  "name": "destroy",
1046
1817
  "signature": "destroy()",
1047
- "returns": null,
1048
- "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."
1049
1820
  }
1050
1821
  ]
1051
1822
  },
@@ -1150,26 +1921,26 @@
1150
1921
  {
1151
1922
  "name": "enable",
1152
1923
  "signature": "enable()",
1153
- "returns": null,
1154
- "description": "Enables the datebox. @returns {this}"
1924
+ "returns": "this",
1925
+ "description": "Enables the datebox."
1155
1926
  },
1156
1927
  {
1157
1928
  "name": "disable",
1158
1929
  "signature": "disable()",
1159
- "returns": null,
1160
- "description": "Disables the datebox and closes its popover. @returns {this}"
1930
+ "returns": "this",
1931
+ "description": "Disables the datebox and closes its popover."
1161
1932
  },
1162
1933
  {
1163
1934
  "name": "focus",
1164
1935
  "signature": "focus()",
1165
- "returns": null,
1166
- "description": "Moves focus to the text input. @returns {this}"
1936
+ "returns": "this",
1937
+ "description": "Moves focus to the text input."
1167
1938
  },
1168
1939
  {
1169
1940
  "name": "destroy",
1170
1941
  "signature": "destroy()",
1171
- "returns": null,
1172
- "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."
1173
1944
  }
1174
1945
  ]
1175
1946
  },
@@ -1179,28 +1950,50 @@
1179
1950
  "name": "title",
1180
1951
  "type": "string",
1181
1952
  "default": "''",
1182
- "description": "Prompt title."
1953
+ "description": "Dialog title."
1183
1954
  },
1184
1955
  {
1185
- "name": "message",
1186
- "type": "Node|string|number|null",
1187
- "default": "''",
1188
- "description": "Prompt message."
1956
+ "name": "size",
1957
+ "type": "'sm'|'md'|'lg'|number",
1958
+ "default": "'md'",
1959
+ "description": "Preset or pixel width."
1189
1960
  },
1190
1961
  {
1191
- "name": "value",
1192
- "type": "string",
1193
- "default": "''",
1194
- "description": "Initial input value."
1962
+ "name": "buttons",
1963
+ "type": "DialogButton[]",
1964
+ "default": "[]",
1965
+ "description": "Footer buttons."
1195
1966
  },
1196
1967
  {
1197
- "name": "placeholder",
1198
- "type": "string",
1199
- "default": "''",
1200
- "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."
1201
1995
  }
1202
1996
  ],
1203
- "events": [],
1204
1997
  "methods": [
1205
1998
  {
1206
1999
  "name": "open",
@@ -1251,16 +2044,229 @@
1251
2044
  "description": "Opens an alert and resolves after it is dismissed."
1252
2045
  },
1253
2046
  {
1254
- "name": "confirm",
1255
- "signature": "confirm([options])",
1256
- "returns": "Promise<boolean>",
1257
- "description": "Opens a confirmation dialog."
2047
+ "name": "confirm",
2048
+ "signature": "confirm([options])",
2049
+ "returns": "Promise<boolean>",
2050
+ "description": "Opens a confirmation dialog."
2051
+ },
2052
+ {
2053
+ "name": "prompt",
2054
+ "signature": "prompt([options])",
2055
+ "returns": "Promise<string|null>",
2056
+ "description": "Opens a single-line text prompt."
2057
+ }
2058
+ ]
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."
1258
2264
  },
1259
2265
  {
1260
- "name": "prompt",
1261
- "signature": "prompt([options])",
1262
- "returns": "Promise<string|null>",
1263
- "description": "Opens a single-line text prompt."
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."
1264
2270
  }
1265
2271
  ]
1266
2272
  },
@@ -1274,7 +2280,7 @@
1274
2280
  },
1275
2281
  {
1276
2282
  "name": "placement",
1277
- "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'",
1278
2284
  "default": "'bottom-start'",
1279
2285
  "description": "Panel placement."
1280
2286
  },
@@ -1477,7 +2483,18 @@
1477
2483
  "description": "Adapter used by the `custom` type."
1478
2484
  }
1479
2485
  ],
1480
- "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
+ ],
1481
2498
  "methods": [
1482
2499
  {
1483
2500
  "name": "register",
@@ -1610,7 +2627,33 @@
1610
2627
  "description": "Injected Http-compatible or stub upload transport."
1611
2628
  }
1612
2629
  ],
1613
- "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
+ ],
1614
2657
  "methods": [
1615
2658
  {
1616
2659
  "name": "upload",
@@ -1885,14 +2928,14 @@
1885
2928
  {
1886
2929
  "name": "focus",
1887
2930
  "signature": "focus()",
1888
- "returns": null,
1889
- "description": "Focuses the active column. @returns {this}"
2931
+ "returns": "this",
2932
+ "description": "Focuses the active column."
1890
2933
  },
1891
2934
  {
1892
2935
  "name": "destroy",
1893
2936
  "signature": "destroy()",
1894
- "returns": null,
1895
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
2937
+ "returns": "void",
2938
+ "description": "Restores an enhanced target to the markup it had before the takeover."
1896
2939
  }
1897
2940
  ]
1898
2941
  },
@@ -1917,7 +2960,23 @@
1917
2960
  "description": "Native `novalidate` state."
1918
2961
  }
1919
2962
  ],
1920
- "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
+ ],
1921
2980
  "methods": [
1922
2981
  {
1923
2982
  "name": "addFieldset",
@@ -1988,40 +3047,16 @@
1988
3047
  ]
1989
3048
  },
1990
3049
  "Grid": {
1991
- "options": [
1992
- {
1993
- "name": "columns",
1994
- "type": "number|null",
1995
- "default": "null",
1996
- "description": "Column count at full width. Null fills the row with as many tracks of `min` width as fit."
1997
- },
1998
- {
1999
- "name": "min",
2000
- "type": "number|string",
2001
- "default": "'16rem'",
2002
- "description": "Narrowest a track may get before the grid drops a column. A number is read as pixels."
2003
- },
2004
- {
2005
- "name": "gap",
2006
- "type": "number|string",
2007
- "default": "4",
2008
- "description": "Space between cells, as in `stack`."
2009
- },
2010
- {
2011
- "name": "align",
2012
- "type": "'start'|'center'|'end'|'stretch'",
2013
- "default": null,
2014
- "description": "Block-axis alignment of each cell."
2015
- },
3050
+ "options": [],
3051
+ "events": [],
3052
+ "methods": [
2016
3053
  {
2017
- "name": "class",
2018
- "type": "string",
2019
- "default": "''",
2020
- "description": "Extra class names."
3054
+ "name": "BillingItems",
3055
+ "signature": "BillingItems(target, [options])",
3056
+ "returns": "Grid",
3057
+ "description": "Creates an editable hierarchical billing-line grid."
2021
3058
  }
2022
- ],
2023
- "events": [],
2024
- "methods": []
3059
+ ]
2025
3060
  },
2026
3061
  "Groupbox": {
2027
3062
  "options": [
@@ -2151,11 +3186,206 @@
2151
3186
  {
2152
3187
  "name": "destroy",
2153
3188
  "signature": "destroy()",
2154
- "returns": null,
2155
- "description": "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."
2156
3350
  }
2157
3351
  ]
2158
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
+ },
2159
3389
  "MasterPanel": {
2160
3390
  "options": [
2161
3391
  {
@@ -2245,7 +3475,7 @@
2245
3475
  },
2246
3476
  {
2247
3477
  "name": "placement",
2248
- "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'",
2249
3479
  "default": "'bottom-start'",
2250
3480
  "description": "Menu placement."
2251
3481
  }
@@ -2284,13 +3514,37 @@
2284
3514
  "name": "close",
2285
3515
  "signature": "close()",
2286
3516
  "returns": "this",
2287
- "description": "Closes the menu."
3517
+ "description": "Closes the menu."
3518
+ },
3519
+ {
3520
+ "name": "isOpen",
3521
+ "signature": "isOpen()",
3522
+ "returns": "boolean",
3523
+ "description": "Reports whether the menu is open."
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."
2288
3542
  },
2289
3543
  {
2290
- "name": "isOpen",
2291
- "signature": "isOpen()",
2292
- "returns": "boolean",
2293
- "description": "Reports whether the menu is open."
3544
+ "name": "focusLast",
3545
+ "signature": "focusLast()",
3546
+ "returns": "this",
3547
+ "description": "Opens the menu and focuses its last enabled item."
2294
3548
  },
2295
3549
  {
2296
3550
  "name": "setLabel",
@@ -2436,6 +3690,12 @@
2436
3690
  }
2437
3691
  ],
2438
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
+ },
2439
3699
  {
2440
3700
  "name": "open",
2441
3701
  "signature": "open()",
@@ -2506,8 +3766,8 @@
2506
3766
  {
2507
3767
  "name": "destroy",
2508
3768
  "signature": "destroy()",
2509
- "returns": null,
2510
- "description": "Removes generated content from an enhanced target. @returns {void}"
3769
+ "returns": "void",
3770
+ "description": "Removes generated content from an enhanced target."
2511
3771
  }
2512
3772
  ]
2513
3773
  },
@@ -2538,7 +3798,13 @@
2538
3798
  "description": "Reordering affordances each row gets: a drag handle, the up/down buttons, both, or neither."
2539
3799
  }
2540
3800
  ],
2541
- "events": [],
3801
+ "events": [
3802
+ {
3803
+ "name": "change",
3804
+ "payload": "{values: string[]}",
3805
+ "description": "Values change listener."
3806
+ }
3807
+ ],
2542
3808
  "methods": [
2543
3809
  {
2544
3810
  "name": "getValues",
@@ -2772,26 +4038,26 @@
2772
4038
  {
2773
4039
  "name": "focus",
2774
4040
  "signature": "focus()",
2775
- "returns": null,
2776
- "description": "Focuses the input. @returns {this}"
4041
+ "returns": "this",
4042
+ "description": "Focuses the input."
2777
4043
  },
2778
4044
  {
2779
4045
  "name": "getInput",
2780
4046
  "signature": "getInput()",
2781
- "returns": null,
2782
- "description": "Returns the underlying input element. @returns {HTMLInputElement}"
4047
+ "returns": "HTMLInputElement",
4048
+ "description": "Returns the underlying input element."
2783
4049
  },
2784
4050
  {
2785
4051
  "name": "enable",
2786
4052
  "signature": "enable()",
2787
- "returns": null,
2788
- "description": "Enables user interaction. @returns {this}"
4053
+ "returns": "this",
4054
+ "description": "Enables user interaction."
2789
4055
  },
2790
4056
  {
2791
4057
  "name": "disable",
2792
4058
  "signature": "disable()",
2793
- "returns": null,
2794
- "description": "Disables user interaction. @returns {this}"
4059
+ "returns": "this",
4060
+ "description": "Disables user interaction."
2795
4061
  },
2796
4062
  {
2797
4063
  "name": "setReadonly",
@@ -2808,8 +4074,8 @@
2808
4074
  {
2809
4075
  "name": "destroy",
2810
4076
  "signature": "destroy()",
2811
- "returns": null,
2812
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
4077
+ "returns": "void",
4078
+ "description": "Restores an enhanced target to the markup it had before the takeover."
2813
4079
  }
2814
4080
  ]
2815
4081
  },
@@ -2940,6 +4206,36 @@
2940
4206
  }
2941
4207
  ]
2942
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
+ },
2943
4239
  "Panel": {
2944
4240
  "options": [
2945
4241
  {
@@ -3054,67 +4350,6 @@
3054
4350
  }
3055
4351
  ]
3056
4352
  },
3057
- "Permission": {
3058
- "options": [
3059
- {
3060
- "name": "value",
3061
- "type": "boolean|string|number|symbol|bigint|null",
3062
- "default": "true",
3063
- "description": "Public, private, or group ID."
3064
- },
3065
- {
3066
- "name": "groups",
3067
- "type": "PermissionGroup[]",
3068
- "default": "[]",
3069
- "description": "Available groups."
3070
- },
3071
- {
3072
- "name": "groupsValueKey",
3073
- "type": "string|((item: PermissionGroup) => unknown)",
3074
- "default": "'ID'",
3075
- "description": "Group ID property or reader."
3076
- },
3077
- {
3078
- "name": "groupsLabelKey",
3079
- "type": "string|((item: PermissionGroup) => string)",
3080
- "default": "'name'",
3081
- "description": "Group label property or reader."
3082
- },
3083
- {
3084
- "name": "msg",
3085
- "type": "Record<string, string>|Record<string, Record<string, string>>",
3086
- "default": null,
3087
- "description": "Localized messages."
3088
- }
3089
- ],
3090
- "events": [
3091
- {
3092
- "name": "change",
3093
- "payload": "{value}",
3094
- "description": "Change listener."
3095
- }
3096
- ],
3097
- "methods": [
3098
- {
3099
- "name": "get",
3100
- "signature": "get()",
3101
- "returns": null,
3102
- "description": "Returns the normalized permission value. @returns {'private'|'public'|unknown}"
3103
- },
3104
- {
3105
- "name": "set",
3106
- "signature": "set(value, [options])",
3107
- "returns": "this",
3108
- "description": "Sets a public, private, or group permission."
3109
- },
3110
- {
3111
- "name": "destroy",
3112
- "signature": "destroy()",
3113
- "returns": null,
3114
- "description": "Destroys the embedded Select and restores an enhanced target. @returns {void}"
3115
- }
3116
- ]
3117
- },
3118
4353
  "ProgressBar": {
3119
4354
  "options": [
3120
4355
  {
@@ -3242,8 +4477,238 @@
3242
4477
  {
3243
4478
  "name": "destroy",
3244
4479
  "signature": "destroy()",
3245
- "returns": null,
3246
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
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."
3247
4712
  }
3248
4713
  ]
3249
4714
  },
@@ -3374,20 +4839,20 @@
3374
4839
  {
3375
4840
  "name": "focus",
3376
4841
  "signature": "focus()",
3377
- "returns": null,
3378
- "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."
3379
4844
  },
3380
4845
  {
3381
4846
  "name": "enable",
3382
4847
  "signature": "enable()",
3383
- "returns": null,
3384
- "description": "Enables user interaction. @returns {this}"
4848
+ "returns": "this",
4849
+ "description": "Enables user interaction."
3385
4850
  },
3386
4851
  {
3387
4852
  "name": "disable",
3388
4853
  "signature": "disable()",
3389
- "returns": null,
3390
- "description": "Disables user interaction. @returns {this}"
4854
+ "returns": "this",
4855
+ "description": "Disables user interaction."
3391
4856
  },
3392
4857
  {
3393
4858
  "name": "setReadonly",
@@ -3398,8 +4863,8 @@
3398
4863
  {
3399
4864
  "name": "destroy",
3400
4865
  "signature": "destroy()",
3401
- "returns": null,
3402
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
4866
+ "returns": "void",
4867
+ "description": "Restores an enhanced target to the markup it had before the takeover."
3403
4868
  }
3404
4869
  ]
3405
4870
  },
@@ -3531,153 +4996,462 @@
3531
4996
  "description": "Empty control text."
3532
4997
  },
3533
4998
  {
3534
- "name": "clearable",
3535
- "type": "boolean",
3536
- "default": "false",
3537
- "description": "Whether selection may be cleared."
4999
+ "name": "clearable",
5000
+ "type": "boolean",
5001
+ "default": "false",
5002
+ "description": "Whether selection may be cleared."
5003
+ },
5004
+ {
5005
+ "name": "filter",
5006
+ "type": "false|'local'|((query: string) => Promise<SelectItem[]>|SelectItem[])",
5007
+ "default": "false",
5008
+ "description": "Filtering mode."
5009
+ },
5010
+ {
5011
+ "name": "searchKeys",
5012
+ "type": "Array<SelectValueReader>|null",
5013
+ "default": "null",
5014
+ "description": "Fields searched by local filtering."
5015
+ },
5016
+ {
5017
+ "name": "minQuery",
5018
+ "type": "number",
5019
+ "default": "0",
5020
+ "description": "Minimum async query length."
5021
+ },
5022
+ {
5023
+ "name": "debounce",
5024
+ "type": "number",
5025
+ "default": "200",
5026
+ "description": "Async query delay in milliseconds."
5027
+ },
5028
+ {
5029
+ "name": "listHeight",
5030
+ "type": "number",
5031
+ "default": "280",
5032
+ "description": "Maximum list height in pixels."
5033
+ },
5034
+ {
5035
+ "name": "groupKey",
5036
+ "type": "SelectValueReader|null",
5037
+ "default": "null",
5038
+ "description": "Optional group reader."
5039
+ },
5040
+ {
5041
+ "name": "msg",
5042
+ "type": "Record<string, string>|Record<string, Record<string, string>>",
5043
+ "default": null,
5044
+ "description": "Localized messages."
5045
+ }
5046
+ ],
5047
+ "events": [
5048
+ {
5049
+ "name": "change",
5050
+ "payload": "{value, item}",
5051
+ "description": "Change listener."
5052
+ },
5053
+ {
5054
+ "name": "open",
5055
+ "payload": "Record<string, never>",
5056
+ "description": "Open listener."
5057
+ },
5058
+ {
5059
+ "name": "close",
5060
+ "payload": "Record<string, never>",
5061
+ "description": "Close listener."
5062
+ },
5063
+ {
5064
+ "name": "query",
5065
+ "payload": "{query}",
5066
+ "description": "Async-query listener."
5067
+ },
5068
+ {
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."
3538
5299
  },
3539
5300
  {
3540
- "name": "filter",
3541
- "type": "false|'local'|((query: string) => Promise<SelectItem[]>|SelectItem[])",
3542
- "default": "false",
3543
- "description": "Filtering mode."
5301
+ "name": "open",
5302
+ "signature": "open()",
5303
+ "returns": "this",
5304
+ "description": "Opens the sheet, trapping focus first where the modality asks for it."
3544
5305
  },
3545
5306
  {
3546
- "name": "searchKeys",
3547
- "type": "Array<SelectValueReader>|null",
3548
- "default": "null",
3549
- "description": "Fields searched by local filtering."
5307
+ "name": "close",
5308
+ "signature": "close([result])",
5309
+ "returns": "this",
5310
+ "description": "Closes the sheet with an optional result."
3550
5311
  },
3551
5312
  {
3552
- "name": "minQuery",
3553
- "type": "number",
3554
- "default": "0",
3555
- "description": "Minimum async query length."
5313
+ "name": "setSide",
5314
+ "signature": "setSide(side)",
5315
+ "returns": "this",
5316
+ "description": "Moves the sheet to another edge. Takes effect immediately, open or closed."
3556
5317
  },
3557
5318
  {
3558
- "name": "debounce",
3559
- "type": "number",
3560
- "default": "200",
3561
- "description": "Async query delay in milliseconds."
5319
+ "name": "getSide",
5320
+ "signature": "getSide()",
5321
+ "returns": "SheetSide",
5322
+ "description": "Returns the edge the sheet is anchored to."
3562
5323
  },
3563
5324
  {
3564
- "name": "listHeight",
3565
- "type": "number",
3566
- "default": "280",
3567
- "description": "Maximum list height in pixels."
5325
+ "name": "setSize",
5326
+ "signature": "setSize(size)",
5327
+ "returns": "this",
5328
+ "description": "Resizes the sheet along its own axis."
3568
5329
  },
3569
5330
  {
3570
- "name": "groupKey",
3571
- "type": "SelectValueReader|null",
3572
- "default": "null",
3573
- "description": "Optional group reader."
5331
+ "name": "isModal",
5332
+ "signature": "isModal()",
5333
+ "returns": "boolean",
5334
+ "description": "Reports whether focus containment is active."
3574
5335
  },
3575
5336
  {
3576
- "name": "msg",
3577
- "type": "Record<string, string>|Record<string, Record<string, string>>",
3578
- "default": null,
3579
- "description": "Localized messages."
5337
+ "name": "destroy",
5338
+ "signature": "destroy()",
5339
+ "returns": "void",
5340
+ "description": "Releases the focus trap and the owned dialog."
3580
5341
  }
3581
- ],
3582
- "events": [
5342
+ ]
5343
+ },
5344
+ "SheetStack": {
5345
+ "options": [
3583
5346
  {
3584
- "name": "change",
3585
- "payload": "{value, item}",
3586
- "description": "Change listener."
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."
3587
5351
  },
3588
5352
  {
3589
- "name": "open",
3590
- "payload": "Record<string, never>",
3591
- "description": "Open listener."
5353
+ "name": "offset",
5354
+ "type": "number",
5355
+ "default": "24",
5356
+ "description": "Pixels a `stack` layout moves per depth step."
3592
5357
  },
3593
5358
  {
3594
- "name": "close",
3595
- "payload": "Record<string, never>",
3596
- "description": "Close listener."
5359
+ "name": "scale",
5360
+ "type": "number",
5361
+ "default": "0.04",
5362
+ "description": "How much a `stack` layout shrinks per depth step, as a fraction."
3597
5363
  },
3598
5364
  {
3599
- "name": "query",
3600
- "payload": "{query}",
3601
- "description": "Async-query listener."
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."
3602
5376
  },
3603
5377
  {
3604
- "name": "loaded",
3605
- "payload": "{items}",
3606
- "description": "Async-loaded listener."
5378
+ "name": "pop",
5379
+ "payload": "{sheet: Sheet}",
5380
+ "description": "Pop listener."
3607
5381
  }
3608
5382
  ],
3609
5383
  "methods": [
3610
5384
  {
3611
- "name": "set",
3612
- "signature": "set(idOrItem, [options])",
5385
+ "name": "push",
5386
+ "signature": "push(sheet)",
3613
5387
  "returns": "this",
3614
- "description": "Selects an item or item ID."
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."
3615
5389
  },
3616
5390
  {
3617
- "name": "setItems",
3618
- "signature": "setItems(items)",
3619
- "returns": "this",
3620
- "description": "Replaces the available items and preserves selection by ID when possible."
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."
3621
5395
  },
3622
5396
  {
3623
- "name": "setFixedItems",
3624
- "signature": "setFixedItems(items)",
5397
+ "name": "popTo",
5398
+ "signature": "popTo(sheet)",
3625
5399
  "returns": "this",
3626
- "description": "Replaces the pinned choices and preserves selection by ID when possible."
5400
+ "description": "Closes everything above a sheet, leaving it on top."
3627
5401
  },
3628
5402
  {
3629
- "name": "reset",
3630
- "signature": "reset([options])",
5403
+ "name": "clear",
5404
+ "signature": "clear()",
3631
5405
  "returns": "this",
3632
- "description": "Restores the configured initial value."
5406
+ "description": "Closes every sheet, from the top down."
3633
5407
  },
3634
5408
  {
3635
- "name": "open",
3636
- "signature": "open()",
3637
- "returns": null,
3638
- "description": "Opens the option panel. @returns {this} @fires Select#open"
5409
+ "name": "top",
5410
+ "signature": "top()",
5411
+ "returns": "Sheet|null",
5412
+ "description": "The sheet currently on top."
3639
5413
  },
3640
5414
  {
3641
- "name": "close",
3642
- "signature": "close()",
3643
- "returns": null,
3644
- "description": "Closes the option panel and restores the selected label. @returns {this} @fires Select#close"
5415
+ "name": "size",
5416
+ "signature": "size()",
5417
+ "returns": "number",
5418
+ "description": "How many sheets the stack holds."
3645
5419
  },
3646
5420
  {
3647
- "name": "enable",
3648
- "signature": "enable()",
3649
- "returns": null,
3650
- "description": "Enables user interaction. @returns {this}"
5421
+ "name": "sheets",
5422
+ "signature": "sheets()",
5423
+ "returns": "Sheet[]",
5424
+ "description": "The sheets, bottom first."
3651
5425
  },
3652
5426
  {
3653
- "name": "disable",
3654
- "signature": "disable()",
3655
- "returns": null,
3656
- "description": "Disables user interaction and closes the panel. @returns {this}"
5427
+ "name": "has",
5428
+ "signature": "has(sheet)",
5429
+ "returns": "boolean",
5430
+ "description": "Whether a sheet is in this stack."
3657
5431
  },
3658
5432
  {
3659
- "name": "focus",
3660
- "signature": "focus()",
3661
- "returns": null,
3662
- "description": "Moves focus to the combobox input. @returns {this}"
5433
+ "name": "on",
5434
+ "signature": "on(type, fn)",
5435
+ "returns": "this",
5436
+ "description": "Subscribes to a stack event."
3663
5437
  },
3664
5438
  {
3665
- "name": "priority",
3666
- "signature": "priority(target, [options])",
3667
- "returns": "Select",
3668
- "description": "Creates the five-level priority preset."
5439
+ "name": "off",
5440
+ "signature": "off(type, fn)",
5441
+ "returns": "this",
5442
+ "description": "Removes a stack event listener."
3669
5443
  },
3670
5444
  {
3671
- "name": "permission",
3672
- "signature": "permission(target, [options])",
3673
- "returns": "Select",
3674
- "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."
5445
+ "name": "once",
5446
+ "signature": "once(type, fn)",
5447
+ "returns": "this",
5448
+ "description": "Subscribes to one occurrence of a stack event."
3675
5449
  },
3676
5450
  {
3677
5451
  "name": "destroy",
3678
5452
  "signature": "destroy()",
3679
- "returns": null,
3680
- "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."
3681
5455
  }
3682
5456
  ]
3683
5457
  },
@@ -3886,20 +5660,20 @@
3886
5660
  {
3887
5661
  "name": "focus",
3888
5662
  "signature": "focus()",
3889
- "returns": null,
3890
- "description": "Focuses the track. @returns {this}"
5663
+ "returns": "this",
5664
+ "description": "Focuses the track."
3891
5665
  },
3892
5666
  {
3893
5667
  "name": "enable",
3894
5668
  "signature": "enable()",
3895
- "returns": null,
3896
- "description": "Enables user interaction. @returns {this}"
5669
+ "returns": "this",
5670
+ "description": "Enables user interaction."
3897
5671
  },
3898
5672
  {
3899
5673
  "name": "disable",
3900
5674
  "signature": "disable()",
3901
- "returns": null,
3902
- "description": "Disables user interaction. @returns {this}"
5675
+ "returns": "this",
5676
+ "description": "Disables user interaction."
3903
5677
  },
3904
5678
  {
3905
5679
  "name": "setReadonly",
@@ -3916,8 +5690,8 @@
3916
5690
  {
3917
5691
  "name": "destroy",
3918
5692
  "signature": "destroy()",
3919
- "returns": null,
3920
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
5693
+ "returns": "void",
5694
+ "description": "Restores an enhanced target to the markup it had before the takeover."
3921
5695
  }
3922
5696
  ]
3923
5697
  },
@@ -4298,6 +6072,18 @@
4298
6072
  }
4299
6073
  ]
4300
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
+ },
4301
6087
  "Tabbox": {
4302
6088
  "options": [
4303
6089
  {
@@ -4479,6 +6265,12 @@
4479
6265
  "type": "TableEditMode",
4480
6266
  "default": "false",
4481
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."
4482
6274
  }
4483
6275
  ],
4484
6276
  "events": [
@@ -4536,6 +6328,11 @@
4536
6328
  "name": "editinvalid",
4537
6329
  "payload": "{row, id, column, columnId, value, message}",
4538
6330
  "description": ""
6331
+ },
6332
+ {
6333
+ "name": "rowtoggle",
6334
+ "payload": "{row, id, expanded}",
6335
+ "description": ""
4539
6336
  }
4540
6337
  ],
4541
6338
  "methods": [
@@ -4575,6 +6372,12 @@
4575
6372
  "returns": "TableRow|null",
4576
6373
  "description": "Returns a row by id."
4577
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
+ },
4578
6381
  {
4579
6382
  "name": "empty",
4580
6383
  "signature": "empty()",
@@ -4587,6 +6390,12 @@
4587
6390
  "returns": "this",
4588
6391
  "description": "Activates a column sort. Local mode stably reorders data; server mode only updates the header state and emits the request event."
4589
6392
  },
6393
+ {
6394
+ "name": "getSelection",
6395
+ "signature": "getSelection()",
6396
+ "returns": "TableRow[]",
6397
+ "description": "Returns selected rows in current display order."
6398
+ },
4590
6399
  {
4591
6400
  "name": "setSelection",
4592
6401
  "signature": "setSelection(ids)",
@@ -4599,6 +6408,42 @@
4599
6408
  "returns": "this",
4600
6409
  "description": "Clears all selected rows."
4601
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
+ },
4602
6447
  {
4603
6448
  "name": "startEdit",
4604
6449
  "signature": "startEdit(rowId, columnId)",
@@ -4617,6 +6462,18 @@
4617
6462
  "returns": "this",
4618
6463
  "description": "Closes the open edit without writing anything back and returns focus to the cell."
4619
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
+ },
4620
6477
  {
4621
6478
  "name": "growBy",
4622
6479
  "signature": "growBy([count])",
@@ -4644,11 +6501,35 @@
4644
6501
  {
4645
6502
  "name": "destroy",
4646
6503
  "signature": "destroy()",
4647
- "returns": null,
4648
- "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."
4649
6506
  }
4650
6507
  ]
4651
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
+ },
4652
6533
  "TagPicker": {
4653
6534
  "options": [
4654
6535
  {
@@ -4854,38 +6735,38 @@
4854
6735
  {
4855
6736
  "name": "isFull",
4856
6737
  "signature": "isFull()",
4857
- "returns": null,
4858
- "description": "Reports whether the configured maximum is reached. @returns {boolean}"
6738
+ "returns": "boolean",
6739
+ "description": "Reports whether the configured maximum is reached."
4859
6740
  },
4860
6741
  {
4861
6742
  "name": "open",
4862
6743
  "signature": "open()",
4863
- "returns": null,
4864
- "description": "Opens the option list. @returns {this}"
6744
+ "returns": "this",
6745
+ "description": "Opens the option list."
4865
6746
  },
4866
6747
  {
4867
6748
  "name": "close",
4868
6749
  "signature": "close()",
4869
- "returns": null,
4870
- "description": "Closes the option list. @returns {this}"
6750
+ "returns": "this",
6751
+ "description": "Closes the option list."
4871
6752
  },
4872
6753
  {
4873
6754
  "name": "focus",
4874
6755
  "signature": "focus()",
4875
- "returns": null,
4876
- "description": "Focuses the text input. @returns {this}"
6756
+ "returns": "this",
6757
+ "description": "Focuses the text input."
4877
6758
  },
4878
6759
  {
4879
6760
  "name": "enable",
4880
6761
  "signature": "enable()",
4881
- "returns": null,
4882
- "description": "Enables user interaction. @returns {this}"
6762
+ "returns": "this",
6763
+ "description": "Enables user interaction."
4883
6764
  },
4884
6765
  {
4885
6766
  "name": "disable",
4886
6767
  "signature": "disable()",
4887
- "returns": null,
4888
- "description": "Disables user interaction and closes the list. @returns {this}"
6768
+ "returns": "this",
6769
+ "description": "Disables user interaction and closes the list."
4889
6770
  },
4890
6771
  {
4891
6772
  "name": "setReadonly",
@@ -4896,8 +6777,8 @@
4896
6777
  {
4897
6778
  "name": "destroy",
4898
6779
  "signature": "destroy()",
4899
- "returns": null,
4900
- "description": "Cancels pending work and restores an enhanced target. @returns {void}"
6780
+ "returns": "void",
6781
+ "description": "Cancels pending work and restores an enhanced target."
4901
6782
  }
4902
6783
  ]
4903
6784
  },
@@ -4957,20 +6838,20 @@
4957
6838
  {
4958
6839
  "name": "closeClock",
4959
6840
  "signature": "closeClock()",
4960
- "returns": null,
4961
- "description": "Closes the clock face. @returns {this}"
6841
+ "returns": "this",
6842
+ "description": "Closes the clock face."
4962
6843
  },
4963
6844
  {
4964
6845
  "name": "toggleClock",
4965
6846
  "signature": "toggleClock()",
4966
- "returns": null,
4967
- "description": "Toggles the clock face. @returns {this}"
6847
+ "returns": "this",
6848
+ "description": "Toggles the clock face."
4968
6849
  },
4969
6850
  {
4970
6851
  "name": "destroy",
4971
6852
  "signature": "destroy()",
4972
- "returns": null,
4973
- "description": "Removes generated content from an enhanced target. @returns {void}"
6853
+ "returns": "void",
6854
+ "description": "Removes generated content from an enhanced target."
4974
6855
  }
4975
6856
  ]
4976
6857
  },
@@ -5030,20 +6911,20 @@
5030
6911
  {
5031
6912
  "name": "enable",
5032
6913
  "signature": "enable()",
5033
- "returns": null,
5034
- "description": "Enables the timebox. @returns {this}"
6914
+ "returns": "this",
6915
+ "description": "Enables the timebox."
5035
6916
  },
5036
6917
  {
5037
6918
  "name": "disable",
5038
6919
  "signature": "disable()",
5039
- "returns": null,
5040
- "description": "Disables the timebox. @returns {this}"
6920
+ "returns": "this",
6921
+ "description": "Disables the timebox."
5041
6922
  },
5042
6923
  {
5043
6924
  "name": "destroy",
5044
6925
  "signature": "destroy()",
5045
- "returns": null,
5046
- "description": "Removes generated content from an enhanced target. @returns {void}"
6926
+ "returns": "void",
6927
+ "description": "Removes generated content from an enhanced target."
5047
6928
  }
5048
6929
  ]
5049
6930
  },
@@ -5215,7 +7096,7 @@
5215
7096
  },
5216
7097
  {
5217
7098
  "name": "placement",
5218
- "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'",
5219
7100
  "default": "'top'",
5220
7101
  "description": "Preferred side; flips when it would overflow."
5221
7102
  },
@@ -5526,8 +7407,8 @@
5526
7407
  {
5527
7408
  "name": "collapseAll",
5528
7409
  "signature": "collapseAll()",
5529
- "returns": null,
5530
- "description": "Collapses every branch. @returns {this}"
7410
+ "returns": "this",
7411
+ "description": "Collapses every branch."
5531
7412
  },
5532
7413
  {
5533
7414
  "name": "reveal",
@@ -5556,8 +7437,8 @@
5556
7437
  {
5557
7438
  "name": "clearSelection",
5558
7439
  "signature": "clearSelection()",
5559
- "returns": null,
5560
- "description": "Clears the selection. @returns {this}"
7440
+ "returns": "this",
7441
+ "description": "Clears the selection."
5561
7442
  },
5562
7443
  {
5563
7444
  "name": "getChecked",
@@ -5586,8 +7467,8 @@
5586
7467
  {
5587
7468
  "name": "destroy",
5588
7469
  "signature": "destroy()",
5589
- "returns": null,
5590
- "description": "Restores an enhanced target to the markup it had before the takeover. @returns {void}"
7470
+ "returns": "void",
7471
+ "description": "Restores an enhanced target to the markup it had before the takeover."
5591
7472
  }
5592
7473
  ]
5593
7474
  },
@@ -5609,6 +7490,48 @@
5609
7490
  "events": [],
5610
7491
  "methods": []
5611
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
+ },
5612
7535
  "ValueList": {
5613
7536
  "options": [
5614
7537
  {
@@ -5648,7 +7571,23 @@
5648
7571
  "description": "Value validator."
5649
7572
  }
5650
7573
  ],
5651
- "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
+ ],
5652
7591
  "methods": [
5653
7592
  {
5654
7593
  "name": "getValues",