@cascivo/react 0.18.0 → 1.1.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 (645) hide show
  1. package/README.md +9 -7
  2. package/dist/accordion/accordion.js +1 -114
  3. package/dist/accordion/accordion.module.js +1 -10
  4. package/dist/action-sheet/action-sheet.css +1 -1
  5. package/dist/action-sheet/action-sheet.js +1 -91
  6. package/dist/action-sheet/action-sheet.module.js +1 -12
  7. package/dist/alert/alert.js +1 -55
  8. package/dist/alert/alert.module.js +1 -11
  9. package/dist/alert-dialog/alert-dialog.css +1 -1
  10. package/dist/alert-dialog/alert-dialog.js +1 -66
  11. package/dist/alert-dialog/alert-dialog.module.js +1 -11
  12. package/dist/app-shell/app-shell.css +1 -1
  13. package/dist/app-shell/app-shell.js +1 -85
  14. package/dist/app-shell/app-shell.module.js +1 -12
  15. package/dist/aspect-ratio/aspect-ratio.js +1 -20
  16. package/dist/aspect-ratio/aspect-ratio.module.js +1 -6
  17. package/dist/avatar/avatar.js +1 -57
  18. package/dist/avatar/avatar.module.js +1 -8
  19. package/dist/avatar-group/avatar-group.js +1 -24
  20. package/dist/avatar-group/avatar-group.module.js +1 -6
  21. package/dist/badge/badge.js +1 -22
  22. package/dist/badge/badge.module.js +1 -3
  23. package/dist/blockquote/blockquote.js +1 -16
  24. package/dist/blockquote/blockquote.module.js +1 -6
  25. package/dist/bottom-sheet/bottom-sheet.js +1 -111
  26. package/dist/bottom-sheet/bottom-sheet.module.js +1 -14
  27. package/dist/brand/logo/logo.css +1 -0
  28. package/dist/brand/logo/logo.js +1 -0
  29. package/dist/brand/logo/logo.module.js +2 -0
  30. package/dist/breadcrumb/breadcrumb.js +1 -28
  31. package/dist/breadcrumb/breadcrumb.module.js +1 -3
  32. package/dist/button/button.css +1 -1
  33. package/dist/button/button.js +1 -35
  34. package/dist/button/button.module.js +1 -6
  35. package/dist/button-group/button-group.js +1 -39
  36. package/dist/button-group/button-group.module.js +1 -3
  37. package/dist/calendar/calendar-date.js +1 -0
  38. package/dist/calendar/calendar.css +1 -1
  39. package/dist/calendar/calendar.js +1 -199
  40. package/dist/calendar/calendar.module.js +1 -14
  41. package/dist/card/card.js +1 -53
  42. package/dist/card/card.module.js +1 -12
  43. package/dist/carousel/carousel.css +1 -1
  44. package/dist/carousel/carousel.js +1 -138
  45. package/dist/carousel/carousel.module.js +1 -13
  46. package/dist/chat-bubble/chat-bubble.js +1 -31
  47. package/dist/chat-bubble/chat-bubble.module.js +1 -11
  48. package/dist/checkbox/checkbox.js +1 -38
  49. package/dist/checkbox/checkbox.module.js +1 -8
  50. package/dist/checkbox-card/checkbox-card.css +1 -1
  51. package/dist/checkbox-card/checkbox-card.js +1 -50
  52. package/dist/checkbox-card/checkbox-card.module.js +1 -11
  53. package/dist/code/code.js +1 -14
  54. package/dist/code/code.module.js +1 -3
  55. package/dist/code-snippet/code-snippet.js +2 -121
  56. package/dist/code-snippet/code-snippet.module.js +1 -17
  57. package/dist/code-snippet/highlight.js +1 -67
  58. package/dist/collapsible/collapsible.js +1 -47
  59. package/dist/collapsible/collapsible.module.js +1 -7
  60. package/dist/color-picker/color-picker.css +1 -1
  61. package/dist/color-picker/color-picker.js +1 -268
  62. package/dist/color-picker/color-picker.module.js +1 -18
  63. package/dist/color-picker/color.js +1 -0
  64. package/dist/combobox/combobox.css +1 -1
  65. package/dist/combobox/combobox.js +1 -165
  66. package/dist/combobox/combobox.module.js +1 -19
  67. package/dist/combobox/list-nav.js +1 -0
  68. package/dist/combobox/option-list.js +1 -0
  69. package/dist/command-menu/command-menu.js +1 -421
  70. package/dist/command-menu/command-menu.module.js +1 -34
  71. package/dist/comparison/comparison.js +1 -69
  72. package/dist/comparison/comparison.module.js +1 -9
  73. package/dist/contained-list/contained-list.js +1 -41
  74. package/dist/contained-list/contained-list.module.js +1 -11
  75. package/dist/context-menu/context-menu.js +1 -93
  76. package/dist/context-menu/context-menu.module.js +1 -7
  77. package/dist/copy-button/copy-button.js +1 -60
  78. package/dist/copy-button/copy-button.module.js +1 -6
  79. package/dist/data-list/data-list.js +1 -25
  80. package/dist/data-list/data-list.module.js +1 -8
  81. package/dist/data-table/column-filter.js +1 -0
  82. package/dist/data-table/column-layout.js +1 -0
  83. package/dist/data-table/data-table.css +1 -1
  84. package/dist/data-table/data-table.js +1 -371
  85. package/dist/data-table/data-table.module.js +1 -33
  86. package/dist/data-table/grid-keys.js +1 -0
  87. package/dist/data-table/row-group.js +1 -0
  88. package/dist/data-table/row-search.js +1 -0
  89. package/dist/data-table/row-sort.js +1 -0
  90. package/dist/data-table/to-csv.js +3 -0
  91. package/dist/data-table/virtual-window.js +1 -0
  92. package/dist/date-picker/date-picker.css +1 -1
  93. package/dist/date-picker/date-picker.js +1 -219
  94. package/dist/date-picker/date-picker.module.js +1 -23
  95. package/dist/date-picker/parse-date.js +1 -0
  96. package/dist/date-range-picker/date-range-picker.js +1 -196
  97. package/dist/date-range-picker/date-range-picker.module.js +1 -18
  98. package/dist/dock/dock.css +1 -1
  99. package/dist/dock/dock.js +1 -34
  100. package/dist/dock/dock.module.js +1 -8
  101. package/dist/drawer/drawer.js +1 -96
  102. package/dist/drawer/drawer.module.js +1 -13
  103. package/dist/dropdown/dropdown.css +1 -1
  104. package/dist/dropdown/dropdown.js +1 -107
  105. package/dist/dropdown/dropdown.module.js +1 -9
  106. package/dist/editable/editable.js +1 -67
  107. package/dist/editable/editable.module.js +1 -11
  108. package/dist/empty-state/empty-state.js +1 -32
  109. package/dist/empty-state/empty-state.module.js +1 -9
  110. package/dist/fab/fab.css +1 -1
  111. package/dist/fab/fab.js +1 -93
  112. package/dist/fab/fab.module.js +1 -12
  113. package/dist/field/field.css +1 -1
  114. package/dist/field/field.js +1 -46
  115. package/dist/field/field.module.js +1 -7
  116. package/dist/file-uploader/file-uploader.css +1 -1
  117. package/dist/file-uploader/file-uploader.js +1 -122
  118. package/dist/file-uploader/file-uploader.module.js +1 -18
  119. package/dist/filter/filter.css +1 -1
  120. package/dist/filter/filter.js +1 -35
  121. package/dist/filter/filter.module.js +1 -6
  122. package/dist/form/form.js +1 -95
  123. package/dist/form/form.module.js +1 -3
  124. package/dist/header/header.js +1 -44
  125. package/dist/header/header.module.js +1 -11
  126. package/dist/header-panel/header-panel.js +1 -72
  127. package/dist/header-panel/header-panel.module.js +1 -9
  128. package/dist/heading/heading.css +1 -1
  129. package/dist/heading/heading.js +1 -22
  130. package/dist/heading/heading.module.js +1 -3
  131. package/dist/hover-card/hover-card.css +1 -1
  132. package/dist/hover-card/hover-card.js +1 -84
  133. package/dist/hover-card/hover-card.module.js +1 -6
  134. package/dist/icon-button/icon-button.js +1 -19
  135. package/dist/icon-button/icon-button.module.js +1 -3
  136. package/dist/image/image.css +1 -1
  137. package/dist/image/image.js +1 -64
  138. package/dist/image/image.module.js +1 -9
  139. package/dist/index.d.ts +2084 -120
  140. package/dist/indicator/indicator.js +1 -16
  141. package/dist/indicator/indicator.module.js +1 -6
  142. package/dist/infinite-scroll/infinite-scroll.js +1 -49
  143. package/dist/infinite-scroll/infinite-scroll.module.js +1 -7
  144. package/dist/inline-loading/inline-loading.js +1 -74
  145. package/dist/inline-loading/inline-loading.module.js +1 -9
  146. package/dist/input/input.css +1 -1
  147. package/dist/input/input.js +1 -55
  148. package/dist/input/input.module.js +1 -9
  149. package/dist/input-group/input-group.css +1 -1
  150. package/dist/input-group/input-group.js +1 -39
  151. package/dist/input-group/input-group.module.js +1 -9
  152. package/dist/item/item.js +1 -50
  153. package/dist/item/item.module.js +1 -10
  154. package/dist/join/join.js +1 -12
  155. package/dist/join/join.module.js +1 -3
  156. package/dist/kbd/kbd.js +1 -14
  157. package/dist/kbd/kbd.module.js +1 -3
  158. package/dist/label/label.js +1 -23
  159. package/dist/label/label.module.js +1 -7
  160. package/dist/large-title-header/large-title-header.js +1 -38
  161. package/dist/large-title-header/large-title-header.module.js +1 -12
  162. package/dist/layouts/src/auto-grid/auto-grid.js +1 -17
  163. package/dist/layouts/src/auto-grid/auto-grid.module.js +1 -4
  164. package/dist/layouts/src/center/center.js +1 -16
  165. package/dist/layouts/src/center/center.module.js +1 -3
  166. package/dist/layouts/src/columns/columns.js +1 -21
  167. package/dist/layouts/src/columns/columns.module.js +1 -6
  168. package/dist/layouts/src/flex/flex.js +1 -20
  169. package/dist/layouts/src/flex/flex.module.js +1 -3
  170. package/dist/layouts/src/grid/grid.css +1 -1
  171. package/dist/layouts/src/grid/grid.js +1 -55
  172. package/dist/layouts/src/grid/grid.module.js +1 -7
  173. package/dist/layouts/src/page-header/page-header.js +1 -31
  174. package/dist/layouts/src/page-header/page-header.module.js +1 -10
  175. package/dist/layouts/src/spacer/spacer.js +1 -17
  176. package/dist/layouts/src/spacer/spacer.module.js +1 -3
  177. package/dist/link/link.css +1 -1
  178. package/dist/link/link.js +1 -22
  179. package/dist/link/link.module.js +1 -3
  180. package/dist/list/list.js +1 -21
  181. package/dist/list/list.module.js +1 -6
  182. package/dist/log-viewer/log-viewer.css +1 -1
  183. package/dist/log-viewer/log-viewer.js +2 -184
  184. package/dist/log-viewer/log-viewer.module.js +1 -16
  185. package/dist/menu/menu.js +1 -126
  186. package/dist/menu/menu.module.js +1 -8
  187. package/dist/menu-button/menu-button.js +1 -92
  188. package/dist/menu-button/menu-button.module.js +1 -8
  189. package/dist/menubar/menubar.js +1 -103
  190. package/dist/menubar/menubar.module.js +1 -8
  191. package/dist/modal/modal.css +1 -1
  192. package/dist/modal/modal.js +1 -76
  193. package/dist/modal/modal.module.js +1 -12
  194. package/dist/multi-select/list-nav.js +1 -0
  195. package/dist/multi-select/multi-select.css +1 -1
  196. package/dist/multi-select/multi-select.js +1 -106
  197. package/dist/multi-select/multi-select.module.js +1 -15
  198. package/dist/multi-select/option-list.js +1 -0
  199. package/dist/native-select/native-select.css +1 -1
  200. package/dist/native-select/native-select.js +1 -37
  201. package/dist/native-select/native-select.module.js +1 -7
  202. package/dist/navigation-menu/navigation-menu.js +1 -99
  203. package/dist/navigation-menu/navigation-menu.module.js +1 -10
  204. package/dist/node/accordion/accordion.js +1 -114
  205. package/dist/node/accordion/accordion.module.js +1 -10
  206. package/dist/node/action-sheet/action-sheet.js +1 -91
  207. package/dist/node/action-sheet/action-sheet.module.js +1 -12
  208. package/dist/node/alert/alert.js +1 -55
  209. package/dist/node/alert/alert.module.js +1 -11
  210. package/dist/node/alert-dialog/alert-dialog.js +1 -66
  211. package/dist/node/alert-dialog/alert-dialog.module.js +1 -11
  212. package/dist/node/app-shell/app-shell.js +1 -85
  213. package/dist/node/app-shell/app-shell.module.js +1 -12
  214. package/dist/node/aspect-ratio/aspect-ratio.js +1 -20
  215. package/dist/node/aspect-ratio/aspect-ratio.module.js +1 -6
  216. package/dist/node/avatar/avatar.js +1 -57
  217. package/dist/node/avatar/avatar.module.js +1 -8
  218. package/dist/node/avatar-group/avatar-group.js +1 -24
  219. package/dist/node/avatar-group/avatar-group.module.js +1 -6
  220. package/dist/node/badge/badge.js +1 -22
  221. package/dist/node/badge/badge.module.js +1 -3
  222. package/dist/node/blockquote/blockquote.js +1 -16
  223. package/dist/node/blockquote/blockquote.module.js +1 -6
  224. package/dist/node/bottom-sheet/bottom-sheet.js +1 -111
  225. package/dist/node/bottom-sheet/bottom-sheet.module.js +1 -14
  226. package/dist/node/brand/logo/logo.js +1 -0
  227. package/dist/node/brand/logo/logo.module.js +1 -0
  228. package/dist/node/breadcrumb/breadcrumb.js +1 -28
  229. package/dist/node/breadcrumb/breadcrumb.module.js +1 -3
  230. package/dist/node/button/button.js +1 -35
  231. package/dist/node/button/button.module.js +1 -6
  232. package/dist/node/button-group/button-group.js +1 -39
  233. package/dist/node/button-group/button-group.module.js +1 -3
  234. package/dist/node/calendar/calendar-date.js +1 -0
  235. package/dist/node/calendar/calendar.js +1 -199
  236. package/dist/node/calendar/calendar.module.js +1 -14
  237. package/dist/node/card/card.js +1 -53
  238. package/dist/node/card/card.module.js +1 -12
  239. package/dist/node/carousel/carousel.js +1 -138
  240. package/dist/node/carousel/carousel.module.js +1 -13
  241. package/dist/node/chat-bubble/chat-bubble.js +1 -31
  242. package/dist/node/chat-bubble/chat-bubble.module.js +1 -11
  243. package/dist/node/checkbox/checkbox.js +1 -38
  244. package/dist/node/checkbox/checkbox.module.js +1 -8
  245. package/dist/node/checkbox-card/checkbox-card.js +1 -50
  246. package/dist/node/checkbox-card/checkbox-card.module.js +1 -11
  247. package/dist/node/code/code.js +1 -14
  248. package/dist/node/code/code.module.js +1 -3
  249. package/dist/node/code-snippet/code-snippet.js +2 -121
  250. package/dist/node/code-snippet/code-snippet.module.js +1 -17
  251. package/dist/node/code-snippet/highlight.js +1 -67
  252. package/dist/node/collapsible/collapsible.js +1 -47
  253. package/dist/node/collapsible/collapsible.module.js +1 -7
  254. package/dist/node/color-picker/color-picker.js +1 -268
  255. package/dist/node/color-picker/color-picker.module.js +1 -18
  256. package/dist/node/color-picker/color.js +1 -0
  257. package/dist/node/combobox/combobox.js +1 -165
  258. package/dist/node/combobox/combobox.module.js +1 -19
  259. package/dist/node/combobox/list-nav.js +1 -0
  260. package/dist/node/combobox/option-list.js +1 -0
  261. package/dist/node/command-menu/command-menu.js +1 -421
  262. package/dist/node/command-menu/command-menu.module.js +1 -34
  263. package/dist/node/comparison/comparison.js +1 -69
  264. package/dist/node/comparison/comparison.module.js +1 -9
  265. package/dist/node/contained-list/contained-list.js +1 -41
  266. package/dist/node/contained-list/contained-list.module.js +1 -11
  267. package/dist/node/context-menu/context-menu.js +1 -93
  268. package/dist/node/context-menu/context-menu.module.js +1 -7
  269. package/dist/node/copy-button/copy-button.js +1 -60
  270. package/dist/node/copy-button/copy-button.module.js +1 -6
  271. package/dist/node/data-list/data-list.js +1 -25
  272. package/dist/node/data-list/data-list.module.js +1 -8
  273. package/dist/node/data-table/column-filter.js +1 -0
  274. package/dist/node/data-table/column-layout.js +1 -0
  275. package/dist/node/data-table/data-table.js +1 -371
  276. package/dist/node/data-table/data-table.module.js +1 -33
  277. package/dist/node/data-table/grid-keys.js +1 -0
  278. package/dist/node/data-table/row-group.js +1 -0
  279. package/dist/node/data-table/row-search.js +1 -0
  280. package/dist/node/data-table/row-sort.js +1 -0
  281. package/dist/node/data-table/to-csv.js +3 -0
  282. package/dist/node/data-table/virtual-window.js +1 -0
  283. package/dist/node/date-picker/date-picker.js +1 -219
  284. package/dist/node/date-picker/date-picker.module.js +1 -23
  285. package/dist/node/date-picker/parse-date.js +1 -0
  286. package/dist/node/date-range-picker/date-range-picker.js +1 -196
  287. package/dist/node/date-range-picker/date-range-picker.module.js +1 -18
  288. package/dist/node/dock/dock.js +1 -34
  289. package/dist/node/dock/dock.module.js +1 -8
  290. package/dist/node/drawer/drawer.js +1 -96
  291. package/dist/node/drawer/drawer.module.js +1 -13
  292. package/dist/node/dropdown/dropdown.js +1 -107
  293. package/dist/node/dropdown/dropdown.module.js +1 -9
  294. package/dist/node/editable/editable.js +1 -67
  295. package/dist/node/editable/editable.module.js +1 -11
  296. package/dist/node/empty-state/empty-state.js +1 -32
  297. package/dist/node/empty-state/empty-state.module.js +1 -9
  298. package/dist/node/fab/fab.js +1 -93
  299. package/dist/node/fab/fab.module.js +1 -12
  300. package/dist/node/field/field.js +1 -46
  301. package/dist/node/field/field.module.js +1 -7
  302. package/dist/node/file-uploader/file-uploader.js +1 -122
  303. package/dist/node/file-uploader/file-uploader.module.js +1 -18
  304. package/dist/node/filter/filter.js +1 -35
  305. package/dist/node/filter/filter.module.js +1 -6
  306. package/dist/node/form/form.js +1 -95
  307. package/dist/node/form/form.module.js +1 -3
  308. package/dist/node/header/header.js +1 -44
  309. package/dist/node/header/header.module.js +1 -11
  310. package/dist/node/header-panel/header-panel.js +1 -72
  311. package/dist/node/header-panel/header-panel.module.js +1 -9
  312. package/dist/node/heading/heading.js +1 -22
  313. package/dist/node/heading/heading.module.js +1 -3
  314. package/dist/node/hover-card/hover-card.js +1 -84
  315. package/dist/node/hover-card/hover-card.module.js +1 -6
  316. package/dist/node/icon-button/icon-button.js +1 -19
  317. package/dist/node/icon-button/icon-button.module.js +1 -3
  318. package/dist/node/image/image.js +1 -64
  319. package/dist/node/image/image.module.js +1 -9
  320. package/dist/node/indicator/indicator.js +1 -16
  321. package/dist/node/indicator/indicator.module.js +1 -6
  322. package/dist/node/infinite-scroll/infinite-scroll.js +1 -49
  323. package/dist/node/infinite-scroll/infinite-scroll.module.js +1 -7
  324. package/dist/node/inline-loading/inline-loading.js +1 -74
  325. package/dist/node/inline-loading/inline-loading.module.js +1 -9
  326. package/dist/node/input/input.js +1 -55
  327. package/dist/node/input/input.module.js +1 -9
  328. package/dist/node/input-group/input-group.js +1 -39
  329. package/dist/node/input-group/input-group.module.js +1 -9
  330. package/dist/node/item/item.js +1 -50
  331. package/dist/node/item/item.module.js +1 -10
  332. package/dist/node/join/join.js +1 -12
  333. package/dist/node/join/join.module.js +1 -3
  334. package/dist/node/kbd/kbd.js +1 -14
  335. package/dist/node/kbd/kbd.module.js +1 -3
  336. package/dist/node/label/label.js +1 -23
  337. package/dist/node/label/label.module.js +1 -7
  338. package/dist/node/large-title-header/large-title-header.js +1 -38
  339. package/dist/node/large-title-header/large-title-header.module.js +1 -12
  340. package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -17
  341. package/dist/node/layouts/src/auto-grid/auto-grid.module.js +1 -4
  342. package/dist/node/layouts/src/center/center.js +1 -16
  343. package/dist/node/layouts/src/center/center.module.js +1 -3
  344. package/dist/node/layouts/src/columns/columns.js +1 -21
  345. package/dist/node/layouts/src/columns/columns.module.js +1 -6
  346. package/dist/node/layouts/src/flex/flex.js +1 -20
  347. package/dist/node/layouts/src/flex/flex.module.js +1 -3
  348. package/dist/node/layouts/src/grid/grid.js +1 -55
  349. package/dist/node/layouts/src/grid/grid.module.js +1 -7
  350. package/dist/node/layouts/src/page-header/page-header.js +1 -31
  351. package/dist/node/layouts/src/page-header/page-header.module.js +1 -10
  352. package/dist/node/layouts/src/spacer/spacer.js +1 -17
  353. package/dist/node/layouts/src/spacer/spacer.module.js +1 -3
  354. package/dist/node/link/link.js +1 -22
  355. package/dist/node/link/link.module.js +1 -3
  356. package/dist/node/list/list.js +1 -21
  357. package/dist/node/list/list.module.js +1 -6
  358. package/dist/node/log-viewer/log-viewer.js +2 -184
  359. package/dist/node/log-viewer/log-viewer.module.js +1 -16
  360. package/dist/node/menu/menu.js +1 -126
  361. package/dist/node/menu/menu.module.js +1 -8
  362. package/dist/node/menu-button/menu-button.js +1 -92
  363. package/dist/node/menu-button/menu-button.module.js +1 -8
  364. package/dist/node/menubar/menubar.js +1 -103
  365. package/dist/node/menubar/menubar.module.js +1 -8
  366. package/dist/node/modal/modal.js +1 -76
  367. package/dist/node/modal/modal.module.js +1 -12
  368. package/dist/node/multi-select/list-nav.js +1 -0
  369. package/dist/node/multi-select/multi-select.js +1 -106
  370. package/dist/node/multi-select/multi-select.module.js +1 -15
  371. package/dist/node/multi-select/option-list.js +1 -0
  372. package/dist/node/native-select/native-select.js +1 -37
  373. package/dist/node/native-select/native-select.module.js +1 -7
  374. package/dist/node/navigation-menu/navigation-menu.js +1 -99
  375. package/dist/node/navigation-menu/navigation-menu.module.js +1 -10
  376. package/dist/node/notification/notification.js +1 -140
  377. package/dist/node/notification/notification.module.js +1 -11
  378. package/dist/node/number-input/number-input.js +1 -147
  379. package/dist/node/number-input/number-input.module.js +1 -12
  380. package/dist/node/otp-input/otp-input.js +1 -70
  381. package/dist/node/otp-input/otp-input.module.js +1 -6
  382. package/dist/node/overflow-menu/overflow-menu.js +1 -70
  383. package/dist/node/overflow-menu/overflow-menu.module.js +1 -7
  384. package/dist/node/pagination/pagination.js +1 -92
  385. package/dist/node/pagination/pagination.module.js +1 -11
  386. package/dist/node/password-input/password-input.js +1 -81
  387. package/dist/node/password-input/password-input.module.js +1 -11
  388. package/dist/node/popover/popover.js +1 -51
  389. package/dist/node/popover/popover.module.js +1 -6
  390. package/dist/node/popover/use-popover.js +1 -55
  391. package/dist/node/progress/progress.js +1 -16
  392. package/dist/node/progress/progress.module.js +1 -6
  393. package/dist/node/progress-bar/progress-bar.js +1 -42
  394. package/dist/node/progress-bar/progress-bar.module.js +1 -11
  395. package/dist/node/progress-circle/progress-circle.js +1 -46
  396. package/dist/node/progress-circle/progress-circle.module.js +1 -9
  397. package/dist/node/progress-indicator/progress-indicator.js +1 -34
  398. package/dist/node/progress-indicator/progress-indicator.module.js +1 -10
  399. package/dist/node/prose/prose.js +1 -13
  400. package/dist/node/prose/prose.module.js +1 -3
  401. package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -82
  402. package/dist/node/pull-to-refresh/pull-to-refresh.module.js +1 -9
  403. package/dist/node/qr-code/encode.js +1 -583
  404. package/dist/node/qr-code/qr-code.js +1 -41
  405. package/dist/node/qr-code/qr-code.module.js +1 -6
  406. package/dist/node/radial-progress/radial-progress.js +1 -27
  407. package/dist/node/radial-progress/radial-progress.module.js +1 -6
  408. package/dist/node/radio/radio.js +1 -48
  409. package/dist/node/radio/radio.module.js +1 -9
  410. package/dist/node/radio-card/radio-card.js +1 -64
  411. package/dist/node/radio-card/radio-card.module.js +1 -11
  412. package/dist/node/rating-group/rating-group.js +1 -37
  413. package/dist/node/rating-group/rating-group.module.js +1 -6
  414. package/dist/node/react/src/index.js +1 -141
  415. package/dist/node/relative-time/relative-time.js +1 -66
  416. package/dist/node/relative-time/relative-time.module.js +1 -3
  417. package/dist/node/reorder-list/reorder-list.js +1 -143
  418. package/dist/node/reorder-list/reorder-list.module.js +1 -11
  419. package/dist/node/resizable/resizable.js +1 -80
  420. package/dist/node/resizable/resizable.module.js +1 -8
  421. package/dist/node/scroll-area/scroll-area.js +1 -38
  422. package/dist/node/scroll-area/scroll-area.module.js +1 -3
  423. package/dist/node/search/search.js +1 -92
  424. package/dist/node/search/search.module.js +1 -9
  425. package/dist/node/segmented-control/segmented-control.js +1 -43
  426. package/dist/node/segmented-control/segmented-control.module.js +1 -6
  427. package/dist/node/select/select.js +1 -72
  428. package/dist/node/select/select.module.js +1 -11
  429. package/dist/node/separator/separator.js +1 -19
  430. package/dist/node/separator/separator.module.js +1 -3
  431. package/dist/node/sheet/sheet.js +1 -49
  432. package/dist/node/sheet/sheet.module.js +1 -9
  433. package/dist/node/shell-header/shell-header.js +1 -169
  434. package/dist/node/shell-header/shell-header.module.js +1 -24
  435. package/dist/node/side-nav/side-nav.js +1 -334
  436. package/dist/node/side-nav/side-nav.module.js +1 -31
  437. package/dist/node/skeleton/skeleton.js +1 -23
  438. package/dist/node/skeleton/skeleton.module.js +1 -7
  439. package/dist/node/skip-nav/skip-nav.js +1 -28
  440. package/dist/node/skip-nav/skip-nav.module.js +1 -3
  441. package/dist/node/slider/slider.js +1 -29
  442. package/dist/node/slider/slider.module.js +1 -7
  443. package/dist/node/spinner/spinner.js +1 -18
  444. package/dist/node/spinner/spinner.module.js +1 -6
  445. package/dist/node/stack/stack.js +1 -17
  446. package/dist/node/stack/stack.module.js +1 -6
  447. package/dist/node/stat/stat.js +1 -41
  448. package/dist/node/stat/stat.module.js +1 -11
  449. package/dist/node/status/status.js +1 -25
  450. package/dist/node/status/status.module.js +1 -7
  451. package/dist/node/steps/steps.js +1 -35
  452. package/dist/node/steps/steps.module.js +1 -8
  453. package/dist/node/structured-list/structured-list.js +1 -102
  454. package/dist/node/structured-list/structured-list.module.js +1 -12
  455. package/dist/node/swap/swap.js +1 -36
  456. package/dist/node/swap/swap.module.js +1 -7
  457. package/dist/node/swipe-item/swipe-item.js +1 -62
  458. package/dist/node/swipe-item/swipe-item.module.js +1 -12
  459. package/dist/node/switcher/switcher.js +1 -32
  460. package/dist/node/switcher/switcher.module.js +1 -8
  461. package/dist/node/tabs/tabs.js +1 -98
  462. package/dist/node/tabs/tabs.module.js +1 -8
  463. package/dist/node/tag/tag.js +1 -33
  464. package/dist/node/tag/tag.module.js +1 -6
  465. package/dist/node/tags-input/tags-input.js +1 -64
  466. package/dist/node/tags-input/tags-input.module.js +1 -8
  467. package/dist/node/text/text.js +1 -16
  468. package/dist/node/text/text.module.js +1 -3
  469. package/dist/node/textarea/textarea.js +1 -57
  470. package/dist/node/textarea/textarea.module.js +1 -9
  471. package/dist/node/tile/tile.js +1 -39
  472. package/dist/node/tile/tile.module.js +1 -7
  473. package/dist/node/time-picker/time-picker.js +1 -63
  474. package/dist/node/time-picker/time-picker.module.js +1 -9
  475. package/dist/node/timeline/timeline.js +1 -55
  476. package/dist/node/timeline/timeline.module.js +1 -11
  477. package/dist/node/toast/toast.js +1 -85
  478. package/dist/node/toast/toast.module.js +1 -11
  479. package/dist/node/toc/toc.js +1 -43
  480. package/dist/node/toc/toc.module.js +1 -3
  481. package/dist/node/toc/use-toc-from-region.js +1 -18
  482. package/dist/node/toggle/toggle.js +1 -41
  483. package/dist/node/toggle/toggle.module.js +1 -8
  484. package/dist/node/toggle-group/toggle-group.js +1 -55
  485. package/dist/node/toggle-group/toggle-group.module.js +1 -6
  486. package/dist/node/toggletip/toggletip.js +1 -49
  487. package/dist/node/toggletip/toggletip.module.js +1 -7
  488. package/dist/node/tooltip/tooltip.js +1 -58
  489. package/dist/node/tooltip/tooltip.module.js +1 -6
  490. package/dist/node/tree-view/tree-view.js +1 -201
  491. package/dist/node/tree-view/tree-view.module.js +1 -13
  492. package/dist/node/user/user.js +1 -35
  493. package/dist/node/user/user.module.js +1 -9
  494. package/dist/node/virtual-list/virtual-list.js +1 -40
  495. package/dist/node/virtual-list/virtual-list.module.js +1 -7
  496. package/dist/node/visually-hidden/visually-hidden.js +1 -2
  497. package/dist/node/wheel-picker/wheel-picker.js +1 -84
  498. package/dist/node/wheel-picker/wheel-picker.module.js +1 -8
  499. package/dist/notification/notification.js +1 -140
  500. package/dist/notification/notification.module.js +1 -11
  501. package/dist/number-input/number-input.js +1 -147
  502. package/dist/number-input/number-input.module.js +1 -12
  503. package/dist/otp-input/otp-input.js +1 -70
  504. package/dist/otp-input/otp-input.module.js +1 -6
  505. package/dist/overflow-menu/overflow-menu.js +1 -70
  506. package/dist/overflow-menu/overflow-menu.module.js +1 -7
  507. package/dist/pagination/pagination.js +1 -92
  508. package/dist/pagination/pagination.module.js +1 -11
  509. package/dist/password-input/password-input.js +1 -81
  510. package/dist/password-input/password-input.module.js +1 -11
  511. package/dist/popover/popover.js +1 -51
  512. package/dist/popover/popover.module.js +1 -6
  513. package/dist/popover/use-popover.js +1 -55
  514. package/dist/progress/progress.css +1 -1
  515. package/dist/progress/progress.js +1 -16
  516. package/dist/progress/progress.module.js +1 -6
  517. package/dist/progress-bar/progress-bar.css +1 -1
  518. package/dist/progress-bar/progress-bar.js +1 -42
  519. package/dist/progress-bar/progress-bar.module.js +1 -11
  520. package/dist/progress-circle/progress-circle.js +1 -46
  521. package/dist/progress-circle/progress-circle.module.js +1 -9
  522. package/dist/progress-indicator/progress-indicator.css +1 -1
  523. package/dist/progress-indicator/progress-indicator.js +1 -34
  524. package/dist/progress-indicator/progress-indicator.module.js +1 -10
  525. package/dist/prose/prose.css +1 -1
  526. package/dist/prose/prose.js +1 -13
  527. package/dist/prose/prose.module.js +1 -3
  528. package/dist/pull-to-refresh/pull-to-refresh.js +1 -82
  529. package/dist/pull-to-refresh/pull-to-refresh.module.js +1 -9
  530. package/dist/qr-code/encode.js +1 -583
  531. package/dist/qr-code/qr-code.js +1 -41
  532. package/dist/qr-code/qr-code.module.js +1 -6
  533. package/dist/radial-progress/radial-progress.js +1 -27
  534. package/dist/radial-progress/radial-progress.module.js +1 -6
  535. package/dist/radio/radio.js +1 -48
  536. package/dist/radio/radio.module.js +1 -9
  537. package/dist/radio-card/radio-card.css +1 -1
  538. package/dist/radio-card/radio-card.js +1 -64
  539. package/dist/radio-card/radio-card.module.js +1 -11
  540. package/dist/rating-group/rating-group.js +1 -37
  541. package/dist/rating-group/rating-group.module.js +1 -6
  542. package/dist/react/src/index.js +1 -141
  543. package/dist/relative-time/relative-time.js +1 -66
  544. package/dist/relative-time/relative-time.module.js +1 -3
  545. package/dist/reorder-list/reorder-list.css +1 -1
  546. package/dist/reorder-list/reorder-list.js +1 -143
  547. package/dist/reorder-list/reorder-list.module.js +1 -11
  548. package/dist/resizable/resizable.js +1 -80
  549. package/dist/resizable/resizable.module.js +1 -8
  550. package/dist/scroll-area/scroll-area.css +1 -1
  551. package/dist/scroll-area/scroll-area.js +1 -38
  552. package/dist/scroll-area/scroll-area.module.js +1 -3
  553. package/dist/search/search.js +1 -92
  554. package/dist/search/search.module.js +1 -9
  555. package/dist/segmented-control/segmented-control.js +1 -43
  556. package/dist/segmented-control/segmented-control.module.js +1 -6
  557. package/dist/select/select.js +1 -72
  558. package/dist/select/select.module.js +1 -11
  559. package/dist/separator/separator.js +1 -19
  560. package/dist/separator/separator.module.js +1 -3
  561. package/dist/sheet/sheet.js +1 -49
  562. package/dist/sheet/sheet.module.js +1 -9
  563. package/dist/shell-header/shell-header.css +1 -1
  564. package/dist/shell-header/shell-header.js +1 -169
  565. package/dist/shell-header/shell-header.module.js +1 -24
  566. package/dist/side-nav/side-nav.css +1 -1
  567. package/dist/side-nav/side-nav.js +1 -334
  568. package/dist/side-nav/side-nav.module.js +1 -31
  569. package/dist/skeleton/skeleton.css +1 -1
  570. package/dist/skeleton/skeleton.js +1 -23
  571. package/dist/skeleton/skeleton.module.js +1 -7
  572. package/dist/skip-nav/skip-nav.js +1 -28
  573. package/dist/skip-nav/skip-nav.module.js +1 -3
  574. package/dist/slider/slider.js +1 -29
  575. package/dist/slider/slider.module.js +1 -7
  576. package/dist/spinner/spinner.css +1 -1
  577. package/dist/spinner/spinner.js +1 -18
  578. package/dist/spinner/spinner.module.js +1 -6
  579. package/dist/stack/stack.js +1 -17
  580. package/dist/stack/stack.module.js +1 -6
  581. package/dist/stat/stat.js +1 -41
  582. package/dist/stat/stat.module.js +1 -11
  583. package/dist/status/status.css +1 -1
  584. package/dist/status/status.js +1 -25
  585. package/dist/status/status.module.js +1 -7
  586. package/dist/steps/steps.css +1 -1
  587. package/dist/steps/steps.js +1 -35
  588. package/dist/steps/steps.module.js +1 -8
  589. package/dist/structured-list/structured-list.js +1 -102
  590. package/dist/structured-list/structured-list.module.js +1 -12
  591. package/dist/styles.css +395 -53
  592. package/dist/swap/swap.css +1 -1
  593. package/dist/swap/swap.js +1 -36
  594. package/dist/swap/swap.module.js +1 -7
  595. package/dist/swipe-item/swipe-item.js +1 -62
  596. package/dist/swipe-item/swipe-item.module.js +1 -12
  597. package/dist/switcher/switcher.js +1 -32
  598. package/dist/switcher/switcher.module.js +1 -8
  599. package/dist/tabs/tabs.js +1 -98
  600. package/dist/tabs/tabs.module.js +1 -8
  601. package/dist/tag/tag.js +1 -33
  602. package/dist/tag/tag.module.js +1 -6
  603. package/dist/tags-input/tags-input.js +1 -64
  604. package/dist/tags-input/tags-input.module.js +1 -8
  605. package/dist/text/text.css +1 -1
  606. package/dist/text/text.js +1 -16
  607. package/dist/text/text.module.js +1 -3
  608. package/dist/textarea/textarea.css +1 -1
  609. package/dist/textarea/textarea.js +1 -57
  610. package/dist/textarea/textarea.module.js +1 -9
  611. package/dist/tile/tile.css +1 -1
  612. package/dist/tile/tile.js +1 -39
  613. package/dist/tile/tile.module.js +1 -7
  614. package/dist/time-picker/time-picker.js +1 -63
  615. package/dist/time-picker/time-picker.module.js +1 -9
  616. package/dist/timeline/timeline.js +1 -55
  617. package/dist/timeline/timeline.module.js +1 -11
  618. package/dist/toast/toast.css +1 -1
  619. package/dist/toast/toast.js +1 -85
  620. package/dist/toast/toast.module.js +1 -11
  621. package/dist/toc/toc.css +1 -1
  622. package/dist/toc/toc.js +1 -43
  623. package/dist/toc/toc.module.js +1 -3
  624. package/dist/toc/use-toc-from-region.js +1 -18
  625. package/dist/toggle/toggle.js +1 -41
  626. package/dist/toggle/toggle.module.js +1 -8
  627. package/dist/toggle-group/toggle-group.js +1 -55
  628. package/dist/toggle-group/toggle-group.module.js +1 -6
  629. package/dist/toggletip/toggletip.js +1 -49
  630. package/dist/toggletip/toggletip.module.js +1 -7
  631. package/dist/tooltip/tooltip.css +1 -1
  632. package/dist/tooltip/tooltip.js +1 -58
  633. package/dist/tooltip/tooltip.module.js +1 -6
  634. package/dist/tree-view/tree-view.css +1 -1
  635. package/dist/tree-view/tree-view.js +1 -201
  636. package/dist/tree-view/tree-view.module.js +1 -13
  637. package/dist/user/user.js +1 -35
  638. package/dist/user/user.module.js +1 -9
  639. package/dist/virtual-list/virtual-list.js +1 -40
  640. package/dist/virtual-list/virtual-list.module.js +1 -7
  641. package/dist/visually-hidden/visually-hidden.js +1 -2
  642. package/dist/wheel-picker/wheel-picker.js +1 -84
  643. package/dist/wheel-picker/wheel-picker.module.js +1 -8
  644. package/package.json +4 -4
  645. package/readme.body.md +7 -5
package/dist/index.d.ts CHANGED
@@ -4,7 +4,8 @@
4
4
  * Quickstart:
5
5
  * pnpm add @cascivo/react @preact/signals-react
6
6
  * // @cascivo/themes is installed with @cascivo/react. Once, in your entry file:
7
- * import '@cascivo/themes/all.css' // tokens + base + light & dark — REQUIRED for color
7
+ * import '@cascivo/themes/light-dark.css' // tokens + base + light & dark — REQUIRED for color
8
+ * // all.css is all TWELVE themes (~2x the CSS) — use it only if you ship a theme picker
8
9
  * // No-bundler / single-file alternative (themes bundled in): '@cascivo/react/styles.css'
9
10
  * import { Button, Card } from '@cascivo/react'
10
11
  *
@@ -21,8 +22,87 @@
21
22
  * Docs: https://cascivo.com/llms.txt — or fully offline, no website needed:
22
23
  * npx -y @cascivo/docs (index; `npx @cascivo/docs <component>` for one doc)
23
24
  */
24
- import { AnchorHTMLAttributes, ButtonHTMLAttributes, FormHTMLAttributes, HTMLAttributes, ImgHTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, LiHTMLAttributes, MouseEvent, ReactElement, ReactNode, RefObject, SelectHTMLAttributes, TextareaHTMLAttributes, TimeHTMLAttributes } from "react";
25
- import { DismissableLayer, DismissableLayerProps, ErrorBoundary, FocusScope, LinkComponent, LinkComponentProps, Machine, MachineConfig, Portal, Presence, ProgressInput, RovingOrientation, Signal, Slot, SlotProps, SpaceStep, SuspenseBoundary, ThemeProvider, ThemeProviderProps, ToneInput, UseClipboardOptions, UseClipboardReturn, UseControllableSignalOptions, UseDisclosureOptions, UseDisclosureReturn, VisuallyHidden, VisuallyHiddenProps, applyTheme, batch, cn, composeRefs, computePosition, computed, createMachine, createScope, createStreamBuffer, effect, getLinkComponent, mergeProps, setLinkComponent, setTheme, signal, themePreloadScript, themeSignal, useAnchorPosition, useClipboard, useComputed, useControllableSignal, useDisclosure, useEffectPropSignal, useId, useMachine, useMediaQuery, useRovingFocus, useScope, useScrollLock, useSignal, useSignalEffect, useSignals, useStreamBuffer, useTheme, useTypeahead } from "@cascivo/core";
25
+ import {
26
+ AnchorHTMLAttributes,
27
+ ButtonHTMLAttributes,
28
+ FormHTMLAttributes,
29
+ HTMLAttributes,
30
+ ImgHTMLAttributes,
31
+ InputHTMLAttributes,
32
+ LabelHTMLAttributes,
33
+ LiHTMLAttributes,
34
+ MouseEvent,
35
+ ReactElement,
36
+ ReactNode,
37
+ RefObject,
38
+ SelectHTMLAttributes,
39
+ TextareaHTMLAttributes,
40
+ TimeHTMLAttributes,
41
+ } from "react";
42
+ import {
43
+ DismissableLayer,
44
+ DismissableLayerProps,
45
+ ErrorBoundary,
46
+ FocusScope,
47
+ LinkComponent,
48
+ LinkComponentProps,
49
+ Machine,
50
+ MachineConfig,
51
+ Portal,
52
+ Presence,
53
+ ProgressInput,
54
+ RovingOrientation,
55
+ Signal,
56
+ Slot,
57
+ SlotProps,
58
+ SpaceStep,
59
+ SuspenseBoundary,
60
+ ThemeProvider,
61
+ ThemeProviderProps,
62
+ ToneInput,
63
+ UseClipboardOptions,
64
+ UseClipboardReturn,
65
+ UseControllableSignalOptions,
66
+ UseDisclosureOptions,
67
+ UseDisclosureReturn,
68
+ VisuallyHidden,
69
+ VisuallyHiddenProps,
70
+ applyTheme,
71
+ batch,
72
+ cn,
73
+ composeRefs,
74
+ computePosition,
75
+ computed,
76
+ createMachine,
77
+ createScope,
78
+ createStreamBuffer,
79
+ effect,
80
+ getLinkComponent,
81
+ mergeProps,
82
+ setLinkComponent,
83
+ setTheme,
84
+ signal,
85
+ themePreloadScript,
86
+ themeSignal,
87
+ useAnchorPosition,
88
+ useClipboard,
89
+ useComputed,
90
+ useControllableSignal,
91
+ useDisclosure,
92
+ useEffectPropSignal,
93
+ useId,
94
+ useMachine,
95
+ useMediaQuery,
96
+ useRovingFocus,
97
+ useScope,
98
+ useScrollLock,
99
+ useSignal,
100
+ useSignalEffect,
101
+ useSignals,
102
+ useStreamBuffer,
103
+ useTheme,
104
+ useTypeahead,
105
+ } from "@cascivo/core";
26
106
 
27
107
  /**
28
108
  * Button.
@@ -36,7 +116,8 @@ import { DismissableLayer, DismissableLayerProps, ErrorBoundary, FocusScope, Lin
36
116
  */
37
117
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
38
118
  /**
39
- * Selects the visual style variant.
119
+ * `primary` for the main action, `secondary` for a supporting one, `ghost` for a
120
+ * borderless action in dense UI, `destructive` for anything that deletes.
40
121
  *
41
122
  * @defaultValue `primary`
42
123
  * @see the component manifest
@@ -66,6 +147,20 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
66
147
  */
67
148
  declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
68
149
  interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
150
+ /**
151
+ * Invisible accessible name, for when a visible element outside this component already
152
+ * labels it (a heading in a settings row, a table column header) and `label` would render
153
+ * that text a second time.
154
+ *
155
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
156
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
157
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
158
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
159
+ * is, which is the only thing that interrupts a confident wrong guess.
160
+ *
161
+ * The raw DOM `aria-label` is still accepted and wins over this.
162
+ */
163
+ ariaLabel?: string;
69
164
  label?: string;
70
165
  hint?: string;
71
166
  error?: string;
@@ -81,7 +176,8 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>
81
176
  declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
82
177
  interface CardProps extends HTMLAttributes<HTMLDivElement> {
83
178
  /**
84
- * Selects the visual style variant.
179
+ * `default` draws a 1px border, `outlined` a heavier one, `elevated` drops the border for
180
+ * a shadow.
85
181
  *
86
182
  * @defaultValue `default`
87
183
  * @see the component manifest
@@ -233,16 +329,26 @@ interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
233
329
  * @see the component manifest
234
330
  */
235
331
  label?: string;
332
+ /**
333
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
334
+ *
335
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
336
+ * makes after reading one other component (2026-08-21 report item 1). This component
337
+ * predates the convention and shipped `label`; both work and neither is deprecated.
338
+ */
339
+ ariaLabel?: string;
236
340
  }
237
341
  declare function Spinner({
238
342
  size,
239
343
  label,
344
+ ariaLabel,
240
345
  className,
241
346
  ...props
242
347
  }: SpinnerProps): import("react").JSX.Element;
243
348
  interface SeparatorProps extends HTMLAttributes<HTMLElement> {
244
349
  /**
245
- * Layout orientation of the component.
350
+ * Direction the rule runs: `horizontal` draws a full-width line, `vertical` a full-height
351
+ * one that stretches to its flex row.
246
352
  *
247
353
  * @defaultValue `horizontal`
248
354
  * @see the component manifest
@@ -262,9 +368,50 @@ declare function Separator({
262
368
  className,
263
369
  ...props
264
370
  }: SeparatorProps): import("react").JSX.Element;
371
+ type LogoVariant = 'mark' | 'mark-accent' | 'horizontal' | 'stacked' | 'nav';
372
+ interface LogoProps extends HTMLAttributes<HTMLSpanElement> {
373
+ /**
374
+ * The logo renders the mark and, in a lockup, the wordmark — there is no slot for
375
+ * anything else. `never` rather than `Omit<>` because omitting a key off
376
+ * `HTMLAttributes` loses the `style` widening that the signals JSX augmentation
377
+ * applies in an adopter's project, and the spread below then fails to compile there.
378
+ */
379
+ children?: never;
380
+ /**
381
+ * `mark` and `mark-accent` render the square alone; `horizontal`, `stacked` and `nav`
382
+ * add the wordmark. `nav` is the only lockup permitted below 24px.
383
+ *
384
+ * @defaultValue `mark`
385
+ * @see the component manifest
386
+ */
387
+ variant?: LogoVariant;
388
+ /**
389
+ * Mark height in px. Clamped to a 16px floor — below that the notch closes optically.
390
+ *
391
+ * @defaultValue `18` for `nav`, `32` otherwise
392
+ * @see the component manifest
393
+ */
394
+ size?: number;
395
+ }
396
+ /**
397
+ * The cascivo logo: the mark on its own, or one of the three sanctioned lockups.
398
+ *
399
+ * Renders inline SVG rather than an `<img>` on purpose — `currentColor` and
400
+ * `--cascivo-color-accent` only resolve when the SVG is part of the document, which is
401
+ * what lets the logo repaint with whatever `data-theme` subtree it is dropped into.
402
+ */
403
+ declare function Logo({
404
+ variant,
405
+ size,
406
+ className,
407
+ style,
408
+ ...props
409
+ }: LogoProps): import("react").JSX.Element;
265
410
  interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
266
411
  /**
267
- * Selects the visual style variant.
412
+ * Severity tone: `default` (neutral), `info`, `success`, `warning` or `destructive`. Sets
413
+ * the icon and the accent colour. Unlike Badge/Tag/Notification this is a private union,
414
+ * not `ToneInput` — the canonical `danger`/`neutral` spellings are not accepted here.
268
415
  *
269
416
  * @defaultValue `default`
270
417
  * @see the component manifest
@@ -430,10 +577,34 @@ declare function Image({
430
577
  ...rest
431
578
  }: ImageProps): import("react").JSX.Element;
432
579
  interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
580
+ /**
581
+ * Invisible accessible name, for when a visible element outside this component already
582
+ * labels it (a heading in a settings row, a table column header) and `label` would render
583
+ * that text a second time.
584
+ *
585
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
586
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
587
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
588
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
589
+ * is, which is the only thing that interrupts a confident wrong guess.
590
+ *
591
+ * The raw DOM `aria-label` is still accepted and wins over this.
592
+ */
593
+ ariaLabel?: string;
433
594
  label?: string;
434
595
  hint?: string;
435
596
  error?: string;
436
597
  resize?: 'none' | 'vertical' | 'both';
598
+ /**
599
+ * Grow the control with its content instead of holding the fixed rows height. rows becomes
600
+ * the minimum and --cascivo-textarea-max-block-size (default 20lh) the ceiling. Pure CSS
601
+ * (field-sizing: content) — no measurement and no listener; where unsupported the fixed
602
+ * rows height is kept.
603
+ *
604
+ * @defaultValue `false`
605
+ * @see the component manifest
606
+ */
607
+ autosize?: boolean;
437
608
  }
438
609
  /**
439
610
  * `forwardRef` so `ref` reaches the underlying `<textarea>` — and so it is TYPED.
@@ -471,6 +642,20 @@ interface SelectOption {
471
642
  * `NativeSelect`, spreads onto a real element and inherits that element's event.
472
643
  */
473
644
  interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
645
+ /**
646
+ * Invisible accessible name, for when a visible element outside this component already
647
+ * labels it (a heading in a settings row, a table column header) and `label` would render
648
+ * that text a second time.
649
+ *
650
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
651
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
652
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
653
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
654
+ * is, which is the only thing that interrupts a confident wrong guess.
655
+ *
656
+ * The raw DOM `aria-label` is still accepted and wins over this.
657
+ */
658
+ ariaLabel?: string;
474
659
  label?: string;
475
660
  hint?: string;
476
661
  error?: string;
@@ -486,6 +671,20 @@ interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'siz
486
671
  */
487
672
  declare const Select: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLSelectElement>>;
488
673
  interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
674
+ /**
675
+ * Invisible accessible name, for when a visible element outside this component already
676
+ * labels it (a heading in a settings row, a table column header) and `label` would render
677
+ * that text a second time.
678
+ *
679
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
680
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
681
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
682
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
683
+ * is, which is the only thing that interrupts a confident wrong guess.
684
+ *
685
+ * The raw DOM `aria-label` is still accepted and wins over this.
686
+ */
687
+ ariaLabel?: string;
489
688
  label?: string;
490
689
  /**
491
690
  * When true, renders the mixed/indeterminate state.
@@ -504,6 +703,20 @@ interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
504
703
  */
505
704
  declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
506
705
  interface RadioProps extends InputHTMLAttributes<HTMLInputElement> {
706
+ /**
707
+ * Invisible accessible name, for when a visible element outside this component already
708
+ * labels it (a heading in a settings row, a table column header) and `label` would render
709
+ * that text a second time.
710
+ *
711
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
712
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
713
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
714
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
715
+ * is, which is the only thing that interrupts a confident wrong guess.
716
+ *
717
+ * The raw DOM `aria-label` is still accepted and wins over this.
718
+ */
719
+ ariaLabel?: string;
507
720
  label?: string;
508
721
  value: string;
509
722
  }
@@ -535,6 +748,20 @@ declare function RadioGroup({
535
748
  children
536
749
  }: RadioGroupProps): import("react").JSX.Element;
537
750
  interface ToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
751
+ /**
752
+ * Invisible accessible name, for when a visible element outside this component already
753
+ * labels it (a heading in a settings row, a table column header) and `label` would render
754
+ * that text a second time.
755
+ *
756
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
757
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
758
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
759
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
760
+ * is, which is the only thing that interrupts a confident wrong guess.
761
+ *
762
+ * The raw DOM `aria-label` is still accepted and wins over this.
763
+ */
764
+ ariaLabel?: string;
538
765
  checked?: boolean;
539
766
  /**
540
767
  * Whether the control is checked on first render (uncontrolled).
@@ -545,8 +772,6 @@ interface ToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onC
545
772
  defaultChecked?: boolean;
546
773
  /** Called with the new checked state when the switch is toggled. */
547
774
  onValueChange?: (checked: boolean) => void;
548
- /** @deprecated Use `onValueChange` — it receives the same `checked` boolean. */
549
- onChange?: (checked: boolean) => void;
550
775
  /**
551
776
  * Renders a **visible** text label beside the switch that also becomes its
552
777
  * accessible name. When a visible heading already labels the control, omit
@@ -571,6 +796,20 @@ declare const Toggle: import("react").ForwardRefExoticComponent<ToggleProps & im
571
796
  * while this one inherits the underlying element's event.
572
797
  */
573
798
  interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
799
+ /**
800
+ * Invisible accessible name, for when a visible element outside this component already
801
+ * labels it (a heading in a settings row, a table column header) and `label` would render
802
+ * that text a second time.
803
+ *
804
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
805
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
806
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
807
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
808
+ * is, which is the only thing that interrupts a confident wrong guess.
809
+ *
810
+ * The raw DOM `aria-label` is still accepted and wins over this.
811
+ */
812
+ ariaLabel?: string;
574
813
  label?: string;
575
814
  }
576
815
  /**
@@ -583,7 +822,7 @@ declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & im
583
822
  interface TooltipProps {
584
823
  content: ReactNode;
585
824
  /**
586
- * Placement relative to the trigger.
825
+ * Side of the trigger the tip opens on: `top`, `right`, `bottom` or `left`.
587
826
  *
588
827
  * @defaultValue `top`
589
828
  * @see the component manifest
@@ -604,19 +843,35 @@ declare function Tooltip({
604
843
  children,
605
844
  delay
606
845
  }: TooltipProps): import("react").JSX.Element;
607
- interface DropdownItem {
846
+ /** A selectable row in a `Dropdown` menu. */
847
+ interface DropdownMenuItem {
608
848
  label: string;
609
849
  value: string;
610
850
  icon?: ReactNode;
611
851
  disabled?: boolean;
612
- separator?: boolean;
613
852
  }
853
+ /**
854
+ * A horizontal rule between groups of items. Carries no data, takes no `label`/`value`, and
855
+ * is skipped by keyboard navigation and selection.
856
+ */
857
+ interface DropdownSeparatorItem {
858
+ kind: 'separator';
859
+ }
860
+ /**
861
+ * A `Dropdown` entry: either a selectable item or a separator.
862
+ *
863
+ * The union is tagged on `kind` (the catalog convention — `type` is reserved for HTML-ish
864
+ * meanings), so a separator cannot carry data that would be silently discarded.
865
+ */
866
+ type DropdownItem = DropdownMenuItem | DropdownSeparatorItem;
614
867
  interface DropdownProps {
615
868
  trigger: ReactElement;
616
869
  items: DropdownItem[];
617
870
  onSelect?: (value: string) => void;
618
871
  /**
619
- * Placement relative to the trigger.
872
+ * Which trigger edge the menu aligns to. `bottom-start` hangs it from the trigger's start
873
+ * edge, `bottom-end` from its end edge — use `bottom-end` for a trigger near the end of
874
+ * the viewport.
620
875
  *
621
876
  * @defaultValue `bottom-start`
622
877
  * @see the component manifest
@@ -638,7 +893,9 @@ interface ToastOptions {
638
893
  title: string;
639
894
  description?: string;
640
895
  /**
641
- * Selects the visual style variant.
896
+ * Severity tone: `default` (neutral), `success`, `warning` or `destructive`. Sets the icon
897
+ * and the accent colour. Unlike Badge/Tag/Notification this is a private union, not
898
+ * `ToneInput` — the canonical `danger`/`neutral` spellings are not accepted here.
642
899
  *
643
900
  * @defaultValue `default`
644
901
  * @see the component manifest
@@ -767,6 +1024,13 @@ declare function AccordionItem({
767
1024
  declare const AccordionTrigger: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
768
1025
  declare function AccordionContent(props: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
769
1026
  interface ActionSheetAction {
1027
+ /**
1028
+ * Stable identity, used as the React key. Without it the array index (or a repeatable
1029
+ * `label`) is the key, so inserting or reordering entries re-uses the wrong DOM node — the
1030
+ * defect `link-item-id-parity` exists to prevent, extended past link-shaped items on
1031
+ * 2026-08-22.
1032
+ */
1033
+ id?: string;
770
1034
  label: ReactNode;
771
1035
  onSelect: () => void;
772
1036
  /** Render in the destructive (danger) style. */
@@ -828,8 +1092,12 @@ declare function Kbd({
828
1092
  }: KbdProps): import("react").JSX.Element;
829
1093
  interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
830
1094
  /**
831
- * `standalone` (default) owns its own typography and underlines on hover;
832
- * `inline` inherits the surrounding prose font and is always underlined.
1095
+ * `standalone` uses the system's own type and underlines on hover — for a link that stands
1096
+ * on its own. `inline` inherits the surrounding prose font and stays underlined — for a
1097
+ * link inside a paragraph.
1098
+ *
1099
+ * @defaultValue `standalone`
1100
+ * @see the component manifest
833
1101
  */
834
1102
  variant?: 'standalone' | 'inline';
835
1103
  size?: 'sm' | 'md' | 'lg';
@@ -887,12 +1155,21 @@ interface BreadcrumbProps {
887
1155
  * @see the component manifest
888
1156
  */
889
1157
  ariaLabel?: string;
1158
+ /**
1159
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
1160
+ *
1161
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
1162
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
1163
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
1164
+ */
1165
+ label?: string;
890
1166
  }
891
1167
  declare function Breadcrumb({
892
1168
  items,
893
1169
  maxVisible,
894
1170
  className,
895
- ariaLabel
1171
+ ariaLabel,
1172
+ label
896
1173
  }: BreadcrumbProps): import("react").JSX.Element;
897
1174
  interface TocItem {
898
1175
  /** id of the heading/section this entry links to (without the leading `#`) */
@@ -1045,6 +1322,13 @@ interface SideNavItem {
1045
1322
  }) => ReactNode;
1046
1323
  }
1047
1324
  interface SideNavGroup {
1325
+ /**
1326
+ * Stable identity, used as the React key. Without it the array index (or a repeatable
1327
+ * `label`) is the key, so inserting or reordering entries re-uses the wrong DOM node — the
1328
+ * defect `link-item-id-parity` exists to prevent, extended past link-shaped items on
1329
+ * 2026-08-22.
1330
+ */
1331
+ id?: string;
1048
1332
  label?: string;
1049
1333
  items: SideNavItem[];
1050
1334
  }
@@ -1067,6 +1351,14 @@ interface SideNavProps {
1067
1351
  * @see the component manifest
1068
1352
  */
1069
1353
  ariaLabel?: string;
1354
+ /**
1355
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
1356
+ *
1357
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
1358
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
1359
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
1360
+ */
1361
+ label?: string;
1070
1362
  /**
1071
1363
  * Accessible label for the collapse control.
1072
1364
  *
@@ -1097,6 +1389,8 @@ interface SideNavProps {
1097
1389
  showCollapseToggle?: boolean;
1098
1390
  /** Content rendered above the items, inside the item padding context. */
1099
1391
  header?: ReactNode;
1392
+ /** Content rendered above the collapse toggle, inside the item padding context —
1393
+ * it lines up with the nav items above it, exactly as `header` does. */
1100
1394
  footer?: ReactNode;
1101
1395
  className?: string;
1102
1396
  }
@@ -1107,6 +1401,7 @@ declare function SideNav({
1107
1401
  defaultCollapsed,
1108
1402
  onCollapsedChange,
1109
1403
  ariaLabel,
1404
+ label,
1110
1405
  collapseLabel,
1111
1406
  expandLabel,
1112
1407
  expandOnHover,
@@ -1150,6 +1445,13 @@ declare function Pagination({
1150
1445
  className
1151
1446
  }: PaginationProps): import("react").JSX.Element;
1152
1447
  interface ProgressStep {
1448
+ /**
1449
+ * Stable identity, used as the React key. Without it the array index (or a repeatable
1450
+ * `label`) is the key, so inserting or reordering entries re-uses the wrong DOM node — the
1451
+ * defect `link-item-id-parity` exists to prevent, extended past link-shaped items on
1452
+ * 2026-08-22.
1453
+ */
1454
+ id?: string;
1153
1455
  label: string;
1154
1456
  description?: string;
1155
1457
  }
@@ -1173,9 +1475,12 @@ declare function ProgressIndicator({
1173
1475
  }: ProgressIndicatorProps): import("react").JSX.Element;
1174
1476
  interface TagProps extends HTMLAttributes<HTMLSpanElement> {
1175
1477
  /**
1176
- * Severity tone. Accepts the catalog-wide `Tone` vocabulary
1177
- * (`neutral | info | success | warning | danger`) plus Tag's historical spellings
1178
- * (`default`, `error`, `destructive`).
1478
+ * Severity tone. Accepts the catalog-wide `Tone` vocabulary (`neutral | info | success |
1479
+ * warning | danger`) plus Tag's historical spellings (`default` → neutral,
1480
+ * `error`/`destructive` → danger).
1481
+ *
1482
+ * @defaultValue `default`
1483
+ * @see the component manifest
1179
1484
  */
1180
1485
  variant?: ToneInput;
1181
1486
  size?: 'sm' | 'md';
@@ -1199,7 +1504,8 @@ declare function Tag({
1199
1504
  }: TagProps): import("react").JSX.Element;
1200
1505
  interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
1201
1506
  /**
1202
- * Selects the visual style variant.
1507
+ * Shape of the placeholder: `text` (stacked lines), `circle` (an avatar), `rect` (a
1508
+ * block).
1203
1509
  *
1204
1510
  * @defaultValue `text`
1205
1511
  * @see the component manifest
@@ -1280,17 +1586,16 @@ interface FabAction {
1280
1586
  onSelect: () => void;
1281
1587
  disabled?: boolean;
1282
1588
  }
1283
- interface FabProps {
1589
+ interface FabBaseProps {
1284
1590
  /** The main button icon. */
1285
1591
  children: ReactNode;
1286
- /** Accessible name for the main button (it is icon-only). */
1287
- label: string;
1288
1592
  /** Called on press when there is no speed-dial. Ignored when `actions` is set. */
1289
1593
  onClick?: () => void;
1290
1594
  /** Speed-dial actions revealed above the button when opened. */
1291
1595
  actions?: FabAction[];
1292
1596
  /**
1293
- * Position of the component.
1597
+ * Screen corner the button is pinned to: `bottom-end` or `bottom-start`. Safe-area insets
1598
+ * are honoured either way.
1294
1599
  *
1295
1600
  * @defaultValue `bottom-end`
1296
1601
  * @see the component manifest
@@ -1304,6 +1609,20 @@ interface FabProps {
1304
1609
  onOpenChange?: (open: boolean) => void;
1305
1610
  className?: string;
1306
1611
  }
1612
+ /**
1613
+ * Exactly one of `label` / `ariaLabel` is required — the main button is icon-only, so a
1614
+ * missing accessible name is a bug and stays enforced by the type rather than a dev warning.
1615
+ * `ariaLabel` is the catalog's name for a string nothing paints; `Fab` predates the
1616
+ * convention and shipped `label`, so both work and neither is deprecated. Same shape as
1617
+ * `IconButton`.
1618
+ */
1619
+ type FabProps = FabBaseProps & ({
1620
+ label: string;
1621
+ ariaLabel?: never;
1622
+ } | {
1623
+ ariaLabel: string;
1624
+ label?: never;
1625
+ });
1307
1626
  /**
1308
1627
  * Floating action button anchored to a screen corner. On its own it is a single
1309
1628
  * fixed button; given `actions` it becomes a speed-dial whose main button toggles a
@@ -1313,6 +1632,7 @@ interface FabProps {
1313
1632
  */
1314
1633
  declare function Fab({
1315
1634
  children,
1635
+ ariaLabel,
1316
1636
  label,
1317
1637
  onClick,
1318
1638
  actions,
@@ -1347,7 +1667,8 @@ interface OverflowMenuProps {
1347
1667
  items: OverflowMenuItem[];
1348
1668
  onSelect?: (value: string) => void;
1349
1669
  /**
1350
- * Placement relative to the trigger.
1670
+ * Which trigger edge the menu aligns to. `bottom-end` hangs it from the trigger's end edge
1671
+ * (right in LTR), `bottom-start` from its start edge.
1351
1672
  *
1352
1673
  * @defaultValue `bottom-end`
1353
1674
  * @see the component manifest
@@ -1360,8 +1681,28 @@ interface OverflowMenuProps {
1360
1681
  * @see the component manifest
1361
1682
  */
1362
1683
  ariaLabel?: string;
1684
+ /**
1685
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
1686
+ *
1687
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
1688
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
1689
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
1690
+ */
1691
+ label?: string;
1363
1692
  size?: 'sm' | 'md';
1693
+ /**
1694
+ * When true, disables the control and removes it from the tab order.
1695
+ *
1696
+ * @defaultValue `false`
1697
+ * @see the component manifest
1698
+ */
1364
1699
  disabled?: boolean;
1700
+ /**
1701
+ * Tab-order position of the trigger. A composite widget that manages its own focus (a
1702
+ * `DataTable` in grid keyboard mode) passes `-1` so the menu stays reachable by Enter on
1703
+ * its cell without becoming an extra Tab stop.
1704
+ */
1705
+ tabIndex?: number;
1365
1706
  className?: string;
1366
1707
  }
1367
1708
  declare function OverflowMenu({
@@ -1369,17 +1710,29 @@ declare function OverflowMenu({
1369
1710
  onSelect,
1370
1711
  placement,
1371
1712
  ariaLabel,
1713
+ label,
1372
1714
  size,
1373
1715
  disabled,
1716
+ tabIndex,
1374
1717
  className
1375
1718
  }: OverflowMenuProps): import("react").JSX.Element;
1376
1719
  interface SearchProps {
1720
+ /**
1721
+ * Wired automatically by a wrapping `Field` — its label id. When present the control is
1722
+ * already named from outside, so the built-in fallback name is not applied.
1723
+ */
1724
+ 'aria-labelledby'?: string;
1725
+ /**
1726
+ * Wired automatically by a wrapping `Field` — the ids of its hint/error text. Forwarded to
1727
+ * the focusable control so the supporting text is announced, not just displayed.
1728
+ */
1729
+ 'aria-describedby'?: string;
1730
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
1731
+ 'aria-invalid'?: boolean;
1377
1732
  value?: string;
1378
1733
  defaultValue?: string;
1379
1734
  /** Called with the current text on every keystroke. */
1380
1735
  onValueChange?: (value: string) => void;
1381
- /** @deprecated Use `onValueChange` — it receives the same string. */
1382
- onChange?: (value: string) => void;
1383
1736
  onSearch?: (value: string) => void;
1384
1737
  /**
1385
1738
  * Debounce delay (ms) before onSearch fires.
@@ -1406,6 +1759,16 @@ interface SearchProps {
1406
1759
  * @see the component manifest
1407
1760
  */
1408
1761
  label?: string;
1762
+ /**
1763
+ * Invisible accessible name, for when a visible element outside this component already
1764
+ * labels it and `label` would render that text a second time.
1765
+ *
1766
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
1767
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
1768
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
1769
+ * which it is.
1770
+ */
1771
+ ariaLabel?: string;
1409
1772
  /**
1410
1773
  * When true, disables the control and removes it from the tab order.
1411
1774
  *
@@ -1427,24 +1790,39 @@ declare function Search({
1427
1790
  value,
1428
1791
  defaultValue,
1429
1792
  onValueChange,
1430
- onChange,
1431
1793
  onSearch,
1432
1794
  debounceMs,
1433
1795
  placeholder,
1434
1796
  size,
1435
1797
  label,
1798
+ ariaLabel,
1436
1799
  disabled,
1437
1800
  clearLabel,
1438
1801
  id,
1802
+ 'aria-labelledby': ariaLabelledBy,
1803
+ 'aria-describedby': ariaDescribedBy,
1804
+ 'aria-invalid': ariaInvalid,
1439
1805
  className
1440
1806
  }: SearchProps): import("react").JSX.Element;
1441
1807
  interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'step'> {
1808
+ /**
1809
+ * Invisible accessible name, for when a visible element outside this component already
1810
+ * labels it (a heading in a settings row, a table column header) and `label` would render
1811
+ * that text a second time.
1812
+ *
1813
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
1814
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
1815
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
1816
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
1817
+ * is, which is the only thing that interrupts a confident wrong guess.
1818
+ *
1819
+ * The raw DOM `aria-label` is still accepted and wins over this.
1820
+ */
1821
+ ariaLabel?: string;
1442
1822
  value?: number | null;
1443
1823
  defaultValue?: number;
1444
1824
  /** Called with the new numeric value (or null when cleared). */
1445
1825
  onValueChange?: (value: number | null) => void;
1446
- /** @deprecated Use `onValueChange` — it receives the same `number | null`. */
1447
- onChange?: (value: number | null) => void;
1448
1826
  min?: number;
1449
1827
  max?: number;
1450
1828
  /**
@@ -1482,12 +1860,94 @@ interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, '
1482
1860
  * incomplete, which is why the rule is a guard and not a checklist.
1483
1861
  */
1484
1862
  declare const NumberInput: import("react").ForwardRefExoticComponent<NumberInputProps & import("react").RefAttributes<HTMLInputElement>>;
1863
+ /**
1864
+ * Per-column filtering, kept pure so the table's filter pipeline is testable without a DOM
1865
+ * and stays O(rows) per change — never per render.
1866
+ *
1867
+ * Three filter shapes cover what dashboards actually ask for (the same three TanStack's
1868
+ * column-filtering guide leads with): a substring on text, a set of allowed values on an
1869
+ * enumerated column, and a numeric range. Values arrive from the table's own inputs or from
1870
+ * a controlled `filters` prop, so the shape is a plain serialisable object — it round-trips
1871
+ * through a URL or storage unchanged.
1872
+ */
1873
+ /** The kind of filter control a column offers. */
1874
+ type ColumnFilterKind = 'text' | 'select' | 'range';
1875
+ /** The current value of one column's filter. An inactive filter is simply absent. */
1876
+ type ColumnFilterValue = {
1877
+ kind: 'text';
1878
+ value: string;
1879
+ } | {
1880
+ kind: 'select';
1881
+ values: string[];
1882
+ } | {
1883
+ kind: 'range';
1884
+ min?: number;
1885
+ max?: number;
1886
+ };
1887
+ /** Active filters by column key. */
1888
+ type ColumnFilters = Record<string, ColumnFilterValue>;
1889
+ /**
1890
+ * Column layout as data: which columns show, in what order, how wide, and which stick to
1891
+ * an edge. Every transition the header menu and the resize handle perform is a pure
1892
+ * function here, so the table never reasons about layout in JSX and each rule is
1893
+ * testable on its own.
1894
+ *
1895
+ * The shape is deliberately a plain object of keys (`ColumnState`): it round-trips through
1896
+ * storage or a URL, and it survives the column definitions changing underneath it — a key
1897
+ * that no longer exists is ignored, a new column simply takes its definition position.
1898
+ */
1899
+ /** Which edge a pinned column sticks to. */
1900
+ type PinSide = 'start' | 'end';
1901
+ /** User-adjustable column layout. All fields optional; an absent field means "as defined". */
1902
+ interface ColumnState {
1903
+ /** Keys of hidden columns. At least one column always stays visible. */
1904
+ hidden?: string[];
1905
+ /** Display order of column keys; keys not listed follow in definition order. */
1906
+ order?: string[];
1907
+ /** Explicit widths in px, by key — what the resize handle writes. */
1908
+ widths?: Record<string, number>;
1909
+ /** Pinned columns by key. Pinned-start columns render first, pinned-end last. */
1910
+ pinned?: Record<string, PinSide>;
1911
+ }
1912
+ /**
1913
+ * Row grouping, aggregation and column-group spans as data. The table's body is a flat
1914
+ * list either way — grouping just interleaves group rows with the leaf rows they own, so
1915
+ * paging, the virtual window and the grid keyboard model need no notion of a tree.
1916
+ */
1917
+ /** Built-in aggregations for `Column.aggregate`. */
1918
+ type AggregateKind = 'sum' | 'avg' | 'min' | 'max' | 'count';
1919
+ /** A band of columns under one header (`columnGroups`). */
1920
+ interface ColumnGroup {
1921
+ header: string;
1922
+ /** Column keys in the band. Non-adjacent keys render as separate spans. */
1923
+ columns: string[];
1924
+ }
1485
1925
  interface Column<Row> {
1486
1926
  key: string;
1487
1927
  header: string;
1488
1928
  sortable?: boolean;
1489
1929
  render?: (row: Row) => ReactNode;
1490
1930
  align?: 'start' | 'end';
1931
+ /**
1932
+ * Offer a per-column filter in a row under the header: `'text'` is a substring input,
1933
+ * `'select'` a faceted checklist of the column's distinct values with counts, `'range'` a
1934
+ * numeric min/max pair. Filters AND together and combine with the global search; the
1935
+ * current values are readable and controllable through the `filters` props.
1936
+ */
1937
+ filter?: ColumnFilterKind;
1938
+ /**
1939
+ * Let the user edit this column's cells in place. Each cell renders an `Editable`
1940
+ * (click, Enter or F2 to start; Enter commits, Escape cancels) and commits through the
1941
+ * table's `onCellEdit`. Ignored when the column has a `render` — a custom cell brings its
1942
+ * own control — or the table has no `onCellEdit`.
1943
+ */
1944
+ editable?: boolean;
1945
+ /**
1946
+ * What a group row and the `totals` row show for this column: a built-in reduction over
1947
+ * the numeric cell values (`'count'` counts rows), or a function of the rows for anything
1948
+ * else — a formatted currency, a distinct count, a sparkline.
1949
+ */
1950
+ aggregate?: AggregateKind | ((rows: Row[]) => ReactNode);
1491
1951
  /**
1492
1952
  * Preferred column width, any CSS length (`'8rem'`, `'120px'`, `'12%'`). Set it on
1493
1953
  * identifier-shaped columns (ids, statuses, dates) so they stop stealing space from the
@@ -1503,6 +1963,11 @@ interface Column<Row> {
1503
1963
  * dropped. Leave at least one free-form column unsized unless you specifically want
1504
1964
  * page-stable widths.
1505
1965
  *
1966
+ * You do not have to get this right by arithmetic: the table **measures** its own overflow
1967
+ * and warns in dev with the real `scrollWidth`/`clientWidth` and the sized columns to
1968
+ * change. In production a scrolling shadow marks the cut edge. The rules of thumb below are
1969
+ * a starting point, not something to compute against a container width you cannot see.
1970
+ *
1506
1971
  * ⚠ **"Leave one unsized" is necessary, not sufficient.** The leftover width is split
1507
1972
  * between the unsized columns by `table-layout: auto`, which weighs them by content — so
1508
1973
  * if the sized columns nearly fill the table, what remains can be narrower than the
@@ -1520,10 +1985,64 @@ interface Column<Row> {
1520
1985
  minWidth?: string;
1521
1986
  }
1522
1987
  type SortDirection = 'asc' | 'desc';
1523
- interface SortState {
1988
+ /** One sorted column. */
1989
+ interface SortKey {
1524
1990
  key: string;
1525
1991
  direction: SortDirection;
1526
1992
  }
1993
+ /**
1994
+ * The active sort. `thenBy` lists the secondary columns that break ties, in order — set
1995
+ * by Shift-clicking headers when `multiSort` is on, or passed directly.
1996
+ */
1997
+ interface SortState extends SortKey {
1998
+ thenBy?: SortKey[];
1999
+ }
2000
+ /** One entry in a row's actions menu (`rowActions`). */
2001
+ interface RowAction<Row> {
2002
+ id: string;
2003
+ label: string;
2004
+ /** Activation handler; receives the row the menu belongs to. */
2005
+ onSelect: (row: Row) => void;
2006
+ destructive?: boolean;
2007
+ disabled?: boolean;
2008
+ icon?: ReactNode;
2009
+ }
2010
+ /** Everything the table needs the server to apply, when `server` is set. */
2011
+ interface TableQuery {
2012
+ sort: SortState | undefined;
2013
+ /** Trimmed global search text; empty when the box is blank. */
2014
+ search: string;
2015
+ filters: ColumnFilters;
2016
+ /** 1-based page. */
2017
+ page: number;
2018
+ pageSize: number;
2019
+ }
2020
+ /**
2021
+ * Server-driven mode: the table renders `rows` as the current page verbatim and asks the
2022
+ * server for anything that would change them. Sort, search, per-column filters and paging
2023
+ * all stop running on the client at once — one switch, not four.
2024
+ */
2025
+ interface DataTableServer {
2026
+ /** Total rows across every page; drives the pager and the range label. */
2027
+ totalItems?: number;
2028
+ /**
2029
+ * Called with the full query whenever sort, search, a filter, the page or the page size
2030
+ * changes. Not called on mount: the rows you passed for the initial render are the first
2031
+ * page.
2032
+ */
2033
+ onQueryChange: (query: TableQuery) => void;
2034
+ }
2035
+ /** Which column-layout controls the table offers. All off by default. */
2036
+ interface ColumnSettings {
2037
+ /** A "Columns" menu in the toolbar that shows and hides columns. */
2038
+ visibility?: boolean;
2039
+ /** A drag handle on each header's trailing edge; arrow keys nudge it, Home resets to auto. */
2040
+ resizable?: boolean;
2041
+ /** "Move left" / "Move right" in each column's header menu. */
2042
+ reorderable?: boolean;
2043
+ /** "Pin to start" / "Pin to end" in each column's header menu; pinned columns stay put while the rest scroll. */
2044
+ pinnable?: boolean;
2045
+ }
1527
2046
  interface DataTableLabels {
1528
2047
  search?: string;
1529
2048
  empty?: string;
@@ -1533,6 +2052,31 @@ interface DataTableLabels {
1533
2052
  expandRow?: string;
1534
2053
  previousPage?: string;
1535
2054
  nextPage?: string;
2055
+ columns?: string;
2056
+ actions?: string;
2057
+ noResults?: string;
2058
+ clearFilters?: string;
2059
+ filterColumn?: (column: string) => string;
2060
+ min?: string;
2061
+ max?: string;
2062
+ all?: string;
2063
+ columnMenu?: (column: string) => string;
2064
+ sortAscending?: string;
2065
+ sortDescending?: string;
2066
+ clearSort?: string;
2067
+ moveLeft?: string;
2068
+ moveRight?: string;
2069
+ pinStart?: string;
2070
+ pinEnd?: string;
2071
+ unpin?: string;
2072
+ hideColumn?: string;
2073
+ resizeColumn?: (column: string) => string;
2074
+ /** Accessible name of an editable cell's control; receives the column header. */
2075
+ editCell?: (column: string) => string;
2076
+ /** Label of the `totals` row. */
2077
+ totals?: string;
2078
+ /** The export button. */
2079
+ exportCsv?: string;
1536
2080
  }
1537
2081
  interface DataTableProps<Row> {
1538
2082
  columns: Column<Row>[];
@@ -1549,9 +2093,15 @@ interface DataTableProps<Row> {
1549
2093
  * @see the component manifest
1550
2094
  */
1551
2095
  searchable?: boolean;
2096
+ /**
2097
+ * Client-side paging, or the pager for a `server`-driven table. `page` makes the current
2098
+ * page controlled; with `server`, `pageSize`/`page` are echoed back in every `TableQuery`.
2099
+ */
1552
2100
  pagination?: {
1553
2101
  pageSize: number;
1554
2102
  pageSizeOptions?: number[];
2103
+ page?: number;
2104
+ onPageChange?: (page: number) => void;
1555
2105
  };
1556
2106
  selection?: {
1557
2107
  mode: 'single' | 'multi';
@@ -1564,6 +2114,109 @@ interface DataTableProps<Row> {
1564
2114
  onClick: (selectedIds: string[]) => void;
1565
2115
  }[];
1566
2116
  renderExpandedRow?: (row: Row) => ReactNode;
2117
+ /** Per-column filter values (controlled). Columns opt in with `Column.filter`. */
2118
+ filters?: ColumnFilters;
2119
+ /** Initial per-column filter values (uncontrolled). */
2120
+ defaultFilters?: ColumnFilters;
2121
+ /** Called with the full filter map whenever any column filter changes. */
2122
+ onFiltersChange?: (filters: ColumnFilters) => void;
2123
+ /**
2124
+ * Shown instead of `emptyState` when there ARE rows but the search or filters match none
2125
+ * of them — a different message from "no data", and the moment to offer a reset.
2126
+ */
2127
+ noResultsState?: ReactNode;
2128
+ /** Extra controls rendered in the toolbar, next to the search box (exports, primary actions). */
2129
+ toolbar?: ReactNode;
2130
+ /**
2131
+ * Per-row actions. Returns the menu entries for a row; the table renders them as a
2132
+ * trailing "⋯" overflow menu column, keyboard-reachable like every other cell control.
2133
+ */
2134
+ rowActions?: (row: Row) => RowAction<Row>[];
2135
+ /** Column layout (controlled): hidden, order, widths, pinned. See {@link ColumnState}. */
2136
+ columnState?: ColumnState;
2137
+ /** Initial column layout (uncontrolled). */
2138
+ defaultColumnState?: ColumnState;
2139
+ /** Called with the full column layout whenever the user changes it. */
2140
+ onColumnStateChange?: (state: ColumnState) => void;
2141
+ /** Which column-layout controls to offer; see {@link ColumnSettings}. */
2142
+ columnSettings?: ColumnSettings;
2143
+ /** Hand sort, search, filters and paging to the server; see {@link DataTableServer}. */
2144
+ server?: DataTableServer;
2145
+ /**
2146
+ * Allow sorting by more than one column: Shift-click a header adds it as a tie-breaker
2147
+ * (`SortState.thenBy`); a plain click replaces the whole sort. Sorted headers show their
2148
+ * level.
2149
+ *
2150
+ * @defaultValue `false`
2151
+ * @see the component manifest
2152
+ */
2153
+ multiSort?: boolean;
2154
+ /**
2155
+ * Remember the user's column layout and sort across reloads, in local storage under this
2156
+ * key. Applies when the corresponding props are uncontrolled; a controlled `columnState`
2157
+ * or `sort` still wins. Two tables with the same key share the preference.
2158
+ */
2159
+ stateKey?: string;
2160
+ /**
2161
+ * How the keyboard moves through the table. `'row'` keeps every control in the Tab order
2162
+ * and lets the arrows step between them. `'grid'` is the APG data-grid pattern: the table
2163
+ * is ONE Tab stop, the arrows move a focused cell, Home/End jump within the row,
2164
+ * Ctrl+Home/End to the corners, PageUp/PageDown by a screenful, Enter or F2 enters the
2165
+ * cell's control and Escape returns to the cell. Cells outside the virtualized window are
2166
+ * scrolled to. Prefer `'grid'` for wide or editable tables, where tabbing through every
2167
+ * control is the complaint.
2168
+ *
2169
+ * @defaultValue `row`
2170
+ * @see the component manifest
2171
+ */
2172
+ keyboardNavigation?: 'row' | 'grid';
2173
+ /**
2174
+ * Commits an inline edit: the row, the edited column's key and the new text. Enables
2175
+ * editing for every column marked `editable`; the table does not mutate `rows` itself.
2176
+ */
2177
+ onCellEdit?: (row: Row, key: string, value: string) => void;
2178
+ /**
2179
+ * Group the rows by one or more columns, in order. Each group is a collapsible row
2180
+ * showing its value, its row count and every `aggregate` column's reduction; leaves keep
2181
+ * the current sort inside their group. Groups appear in order of first occurrence, so
2182
+ * sort by the grouped column to order them.
2183
+ */
2184
+ groupBy?: string | string[];
2185
+ /**
2186
+ * Show a totals row under the body with each `aggregate` column's reduction over every
2187
+ * row that passes the search and filters (not just the page). Sticks to the bottom of
2188
+ * the scroller.
2189
+ *
2190
+ * @defaultValue `false`
2191
+ * @see the component manifest
2192
+ */
2193
+ totals?: boolean;
2194
+ /**
2195
+ * Rows kept in view outside sort, search, filters, paging and the virtual window: `top`
2196
+ * rows sit under the header (stuck there with `stickyHeader`), `bottom` rows above the
2197
+ * totals. Rendered with the same columns as the body.
2198
+ */
2199
+ pinnedRows?: {
2200
+ top?: Row[];
2201
+ bottom?: Row[];
2202
+ };
2203
+ /**
2204
+ * Bands of columns under a shared header, rendered as a row above the column headers.
2205
+ * A band's columns should be adjacent; reordering them apart splits the band.
2206
+ */
2207
+ columnGroups?: ColumnGroup[];
2208
+ /**
2209
+ * An "Export CSV" button in the toolbar: every row passing the search and filters (all
2210
+ * pages; with `server`, the rows given), in the current sort, visible columns as headers,
2211
+ * raw cell values as fields (RFC 4180, UTF-8 with BOM). Pass `{ filename }` to name the
2212
+ * file; it defaults to the `title`.
2213
+ *
2214
+ * @defaultValue `false`
2215
+ * @see the component manifest
2216
+ */
2217
+ exportable?: boolean | {
2218
+ filename?: string;
2219
+ };
1567
2220
  /**
1568
2221
  * Row height preset.
1569
2222
  *
@@ -1599,7 +2252,16 @@ interface DataTableProps<Row> {
1599
2252
  */
1600
2253
  loading?: boolean;
1601
2254
  emptyState?: ReactNode;
2255
+ /** Visible caption above the table; it also becomes the table's accessible name. */
1602
2256
  title?: string;
2257
+ /**
2258
+ * Invisible accessible name for the `<table>`, used when there is no visible `title`.
2259
+ *
2260
+ * A table with neither is an unnamed landmark for a screen reader — a real WCAG 1.3.1 /
2261
+ * 4.1.2 gap, and until 0.19 there was no way to fix it without rendering a caption you did
2262
+ * not want. Dev-warns when both are absent.
2263
+ */
2264
+ ariaLabel?: string;
1603
2265
  description?: string;
1604
2266
  labels?: DataTableLabels;
1605
2267
  className?: string;
@@ -1611,17 +2273,16 @@ interface DataTableProps<Row> {
1611
2273
  */
1612
2274
  virtualized?: boolean;
1613
2275
  /**
1614
- * Fixed row height in px, used to compute the virtualized window.
2276
+ * Row height in px for the virtualized window.
1615
2277
  *
1616
- * @defaultValue `40`
1617
- * @see the component manifest
2278
+ * Measured from the first rendered row when omitted, so the density presets stay correct
2279
+ * the old fixed default of 40 never matched them (rows are 36/48/60 px plus a border),
2280
+ * and a wrong value scales the whole scrollbar. Set it only for custom-sized rows.
1618
2281
  */
1619
2282
  rowHeight?: number;
1620
2283
  /**
1621
- * Number of rows rendered in the virtualized window.
1622
- *
1623
- * @defaultValue `20`
1624
- * @see the component manifest
2284
+ * Rows rendered per window. Derived from the scroller's height when omitted; set it only
2285
+ * to render a fixed count regardless of height.
1625
2286
  */
1626
2287
  windowSize?: number;
1627
2288
  /**
@@ -1645,12 +2306,33 @@ declare function DataTable<Row>({
1645
2306
  selection,
1646
2307
  batchActions,
1647
2308
  renderExpandedRow,
2309
+ filters,
2310
+ defaultFilters,
2311
+ onFiltersChange,
2312
+ noResultsState,
2313
+ toolbar,
2314
+ rowActions,
2315
+ columnState,
2316
+ defaultColumnState,
2317
+ onColumnStateChange,
2318
+ columnSettings,
2319
+ server,
2320
+ multiSort,
2321
+ stateKey,
2322
+ keyboardNavigation,
2323
+ onCellEdit,
2324
+ groupBy,
2325
+ totals,
2326
+ pinnedRows,
2327
+ columnGroups,
2328
+ exportable,
1648
2329
  density,
1649
2330
  zebra,
1650
2331
  stickyHeader,
1651
2332
  loading,
1652
2333
  emptyState,
1653
2334
  title,
2335
+ ariaLabel,
1654
2336
  description,
1655
2337
  labels,
1656
2338
  className,
@@ -1719,6 +2401,12 @@ interface CommandMenuProps {
1719
2401
  open: boolean;
1720
2402
  onOpenChange: (open: boolean) => void;
1721
2403
  groups: CommandGroup[];
2404
+ /**
2405
+ * Placeholder text shown when the field is empty.
2406
+ *
2407
+ * @defaultValue `Type a command or search…`
2408
+ * @see the component manifest
2409
+ */
1722
2410
  placeholder?: string;
1723
2411
  /**
1724
2412
  * Text shown when no commands match the query.
@@ -1735,12 +2423,20 @@ interface CommandMenuProps {
1735
2423
  */
1736
2424
  hotkey?: boolean;
1737
2425
  /**
1738
- * Text label for the control.
2426
+ * Accessible name for the command dialog. Not rendered — screen readers only.
1739
2427
  *
1740
2428
  * @defaultValue `Command menu`
1741
2429
  * @see the component manifest
1742
2430
  */
1743
2431
  label?: string;
2432
+ /**
2433
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
2434
+ *
2435
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
2436
+ * makes after reading one other component (2026-08-21 report item 1). This component
2437
+ * predates the convention and shipped `label`; both work and neither is deprecated.
2438
+ */
2439
+ ariaLabel?: string;
1744
2440
  /**
1745
2441
  * Shows a loading spinner in place of the empty state (for async items)
1746
2442
  *
@@ -1782,6 +2478,7 @@ declare function CommandMenu({
1782
2478
  emptyLabel,
1783
2479
  hotkey,
1784
2480
  label,
2481
+ ariaLabel,
1785
2482
  loading,
1786
2483
  onQueryChange,
1787
2484
  scopes,
@@ -1856,31 +2553,69 @@ declare function Form<T extends Record<string, unknown>>({
1856
2553
  className,
1857
2554
  ...props
1858
2555
  }: FormProps<T>): import("react").JSX.Element;
2556
+ /**
2557
+ * Option filtering, grouping and match highlighting for `Combobox`, kept pure so the list
2558
+ * pipeline is testable without a DOM and runs once per query change rather than per render.
2559
+ *
2560
+ * Matching folds diacritics: a user typing `zurich` expects `Zürich`, and a filtered option
2561
+ * list is exactly where that gap bites, because the user cannot see why their query returns
2562
+ * nothing. Folding is done per code point so the folded string stays index-aligned with the
2563
+ * original — that alignment is what lets `highlightSegments` mark the match on the label the
2564
+ * user actually reads rather than on a normalised copy of it.
2565
+ *
2566
+ * `MultiSelect` carries the same four operations against its own option type. They are
2567
+ * deliberately not shared: a registry component is copied into an adopter's project as a
2568
+ * self-contained folder, so a cross-component import would make `cascivo add combobox`
2569
+ * drag in a sibling component's files. The catalog already accepts this for the menu /
2570
+ * context-menu navigation pair.
2571
+ */
2572
+ /** One selectable option. A list mixing grouped and ungrouped options renders the ungrouped ones first. */
1859
2573
  interface ComboboxOption {
1860
- value: string;
1861
2574
  label: string;
2575
+ value: string;
1862
2576
  /**
1863
- * When true, disables the control and removes it from the tab order.
2577
+ * When true, the option cannot be selected and is skipped by keyboard navigation.
1864
2578
  *
1865
2579
  * @defaultValue `false`
1866
2580
  * @see the component manifest
1867
2581
  */
1868
2582
  disabled?: boolean;
2583
+ /** Optional group heading this option belongs to. */
2584
+ group?: string;
1869
2585
  }
1870
2586
  interface ComboboxLabels {
1871
2587
  placeholder?: string;
1872
2588
  empty?: string;
1873
2589
  clear?: string;
2590
+ /**
2591
+ * @deprecated Named the in-popup search input, which no longer exists — the field itself is
2592
+ * the combobox. Ignored; removed in 2.0.
2593
+ */
1874
2594
  search?: string;
2595
+ /** Text shown in place of the empty message while `loading` is true. */
2596
+ loading?: string;
2597
+ /** Template for the "create" row; `{label}` is replaced with the typed text. */
2598
+ create?: string;
1875
2599
  }
1876
2600
  interface ComboboxProps {
2601
+ /**
2602
+ * Wired automatically by a wrapping `Field` — its label id. Forwarded to the focusable
2603
+ * control so the Field's label names it.
2604
+ */
2605
+ 'aria-labelledby'?: string;
2606
+ /**
2607
+ * Wired automatically by a wrapping `Field` — the ids of its hint/error text. **Merged**
2608
+ * with this component's own `hint`/`error` ids rather than replacing them, so both are
2609
+ * announced.
2610
+ */
2611
+ 'aria-describedby'?: string;
2612
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
2613
+ 'aria-invalid'?: boolean;
1877
2614
  options: ComboboxOption[];
1878
2615
  value?: string;
1879
2616
  defaultValue?: string;
1880
2617
  /** Called with the selected option value (or undefined when cleared). */
1881
2618
  onValueChange?: (value: string | undefined) => void;
1882
- /** @deprecated Use `onValueChange` — it receives the same `string | undefined`. */
1883
- onChange?: (value: string | undefined) => void;
1884
2619
  /**
1885
2620
  * When true, shows a control to clear the selected value.
1886
2621
  *
@@ -1889,17 +2624,71 @@ interface ComboboxProps {
1889
2624
  */
1890
2625
  clearable?: boolean;
1891
2626
  /**
1892
- * When true, shows a search/filter input.
2627
+ * When true the field is a text input that filters the list as the user types (the APG
2628
+ * editable combobox). When false it is a button that opens the list, and type-to-select
2629
+ * jumps to a matching option (the APG select-only combobox).
1893
2630
  *
1894
2631
  * @defaultValue `true`
1895
2632
  * @see the component manifest
1896
2633
  */
1897
2634
  searchable?: boolean;
1898
2635
  label?: string;
2636
+ /**
2637
+ * Invisible accessible name, for when a visible element outside this component already
2638
+ * labels it and `label` would render that text a second time.
2639
+ *
2640
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
2641
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
2642
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
2643
+ * which it is.
2644
+ */
2645
+ ariaLabel?: string;
1899
2646
  hint?: string;
1900
2647
  error?: string;
1901
2648
  size?: 'sm' | 'md' | 'lg';
2649
+ /**
2650
+ * When true, disables the control and removes it from the tab order.
2651
+ *
2652
+ * @defaultValue `false`
2653
+ * @see the component manifest
2654
+ */
1902
2655
  disabled?: boolean;
2656
+ /**
2657
+ * When true, the list reports itself as busy and shows a loading row instead of the empty
2658
+ * message.
2659
+ *
2660
+ * @defaultValue `false`
2661
+ * @see the component manifest
2662
+ */
2663
+ loading?: boolean;
2664
+ /** Called with the search text on every keystroke. Pair it with `filter={() => true}` for a server-driven list. */
2665
+ onSearchChange?: (query: string) => void;
2666
+ /** Replaces the built-in diacritic-insensitive matcher. */
2667
+ filter?: (option: ComboboxOption, query: string) => boolean;
2668
+ /**
2669
+ * When true, offers the current search text as a new option.
2670
+ *
2671
+ * @defaultValue `false`
2672
+ * @see the component manifest
2673
+ */
2674
+ creatable?: boolean;
2675
+ /** Called with the typed label when the user picks the "create" row. */
2676
+ onCreate?: (label: string) => void;
2677
+ /** Submitted with a surrounding form — a hidden input carrying the selected value. */
2678
+ name?: string;
2679
+ /** Marks the control as required for assistive technology. */
2680
+ required?: boolean;
2681
+ /** Controlled open state of the listbox. */
2682
+ open?: boolean;
2683
+ /**
2684
+ * The initial open state when uncontrolled.
2685
+ *
2686
+ * @defaultValue `false`
2687
+ * @see the component manifest
2688
+ */
2689
+ defaultOpen?: boolean;
2690
+ /** Called when the listbox opens or closes. */
2691
+ onOpenChange?: (open: boolean) => void;
1903
2692
  labels?: ComboboxLabels;
1904
2693
  className?: string;
1905
2694
  id?: string;
@@ -1909,33 +2698,61 @@ declare function Combobox({
1909
2698
  value,
1910
2699
  defaultValue,
1911
2700
  onValueChange,
1912
- onChange,
1913
2701
  clearable,
1914
2702
  searchable,
1915
2703
  label,
2704
+ ariaLabel,
1916
2705
  hint,
1917
2706
  error,
1918
2707
  size,
1919
2708
  disabled,
2709
+ loading,
2710
+ onSearchChange,
2711
+ filter,
2712
+ creatable,
2713
+ onCreate,
2714
+ name,
2715
+ required,
2716
+ open,
2717
+ defaultOpen,
2718
+ onOpenChange,
1920
2719
  labels,
1921
2720
  className,
1922
- id
2721
+ id,
2722
+ 'aria-labelledby': ariaLabelledBy,
2723
+ 'aria-describedby': ariaDescribedBy,
2724
+ 'aria-invalid': ariaInvalid
1923
2725
  }: ComboboxProps): import("react").JSX.Element;
1924
2726
  interface DatePickerLabels {
1925
2727
  placeholder?: string;
1926
2728
  previousMonth?: string;
1927
2729
  nextMonth?: string;
1928
2730
  clear?: string;
2731
+ open?: string;
2732
+ today?: string;
1929
2733
  }
1930
2734
  interface DatePickerProps {
2735
+ /**
2736
+ * Wired automatically by a wrapping `Field` — its label id. Forwarded to the focusable
2737
+ * control so the Field's label names it.
2738
+ */
2739
+ 'aria-labelledby'?: string;
2740
+ /**
2741
+ * Wired automatically by a wrapping `Field` — the ids of its hint/error text. **Merged**
2742
+ * with this component's own `hint`/`error` ids rather than replacing them, so both are
2743
+ * announced.
2744
+ */
2745
+ 'aria-describedby'?: string;
2746
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
2747
+ 'aria-invalid'?: boolean;
1931
2748
  value?: string;
1932
2749
  defaultValue?: string;
1933
2750
  /** Called with the selected ISO date string (or undefined when cleared). */
1934
2751
  onValueChange?: (value: string | undefined) => void;
1935
- /** @deprecated Use `onValueChange` — it receives the same ISO `string | undefined`. */
1936
- onChange?: (value: string | undefined) => void;
1937
2752
  min?: string;
1938
2753
  max?: string;
2754
+ /** Rejects individual dates the bounds allow — holidays, weekends, taken slots. */
2755
+ disabledDate?: (date: Date) => boolean;
1939
2756
  /**
1940
2757
  * Shows a clear button
1941
2758
  *
@@ -1944,6 +2761,16 @@ interface DatePickerProps {
1944
2761
  */
1945
2762
  clearable?: boolean;
1946
2763
  label?: string;
2764
+ /**
2765
+ * Invisible accessible name, for when a visible element outside this component already
2766
+ * labels it and `label` would render that text a second time.
2767
+ *
2768
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
2769
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
2770
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
2771
+ * which it is.
2772
+ */
2773
+ ariaLabel?: string;
1947
2774
  hint?: string;
1948
2775
  error?: string;
1949
2776
  /**
@@ -1960,6 +2787,30 @@ interface DatePickerProps {
1960
2787
  * @see the component manifest
1961
2788
  */
1962
2789
  disabled?: boolean;
2790
+ /**
2791
+ * When true, the field accepts a typed date as well as one picked from the calendar.
2792
+ *
2793
+ * @defaultValue `true`
2794
+ * @see the component manifest
2795
+ */
2796
+ typeable?: boolean;
2797
+ /** Formatting options for the displayed date. Defaults to the locale's numeric form. */
2798
+ format?: Intl.DateTimeFormatOptions;
2799
+ /**
2800
+ * When true, the calendar offers a button that jumps to the current month.
2801
+ *
2802
+ * @defaultValue `false`
2803
+ * @see the component manifest
2804
+ */
2805
+ showToday?: boolean;
2806
+ /** Submitted with a surrounding form — a hidden input carrying the ISO value. */
2807
+ name?: string;
2808
+ /** Marks the control as required for assistive technology. */
2809
+ required?: boolean;
2810
+ /** Controlled open state of the calendar popup. */
2811
+ open?: boolean;
2812
+ /** Called when the popup opens or closes. */
2813
+ onOpenChange?: (open: boolean) => void;
1963
2814
  labels?: DatePickerLabels;
1964
2815
  className?: string;
1965
2816
  id?: string;
@@ -1968,18 +2819,29 @@ declare function DatePicker({
1968
2819
  value,
1969
2820
  defaultValue,
1970
2821
  onValueChange,
1971
- onChange,
1972
2822
  min,
1973
2823
  max,
2824
+ disabledDate,
1974
2825
  clearable,
1975
2826
  label,
2827
+ ariaLabel,
1976
2828
  hint,
1977
2829
  error,
1978
2830
  size,
1979
2831
  disabled,
2832
+ typeable,
2833
+ format,
2834
+ showToday,
2835
+ name,
2836
+ required,
2837
+ open,
2838
+ onOpenChange,
1980
2839
  labels,
1981
2840
  className,
1982
- id
2841
+ id,
2842
+ 'aria-labelledby': ariaLabelledBy,
2843
+ 'aria-describedby': ariaDescribedBy,
2844
+ 'aria-invalid': ariaInvalid
1983
2845
  }: DatePickerProps): import("react").JSX.Element;
1984
2846
  interface UploaderFile {
1985
2847
  id: string;
@@ -2017,6 +2879,16 @@ interface FileUploaderProps {
2017
2879
  maxSize?: number;
2018
2880
  onRejected?: (files: File[], reason: 'size' | 'type') => void;
2019
2881
  label?: string;
2882
+ /**
2883
+ * Invisible accessible name, for when a visible element outside this component already
2884
+ * labels it and `label` would render that text a second time.
2885
+ *
2886
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
2887
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
2888
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
2889
+ * which it is.
2890
+ */
2891
+ ariaLabel?: string;
2020
2892
  hint?: string;
2021
2893
  labels?: FileUploaderLabels;
2022
2894
  /**
@@ -2037,18 +2909,31 @@ declare function FileUploader({
2037
2909
  maxSize,
2038
2910
  onRejected,
2039
2911
  label,
2912
+ ariaLabel,
2040
2913
  hint,
2041
2914
  labels,
2042
2915
  disabled,
2043
2916
  className
2044
2917
  }: FileUploaderProps): import("react").JSX.Element;
2045
2918
  interface TimePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'step'> {
2919
+ /**
2920
+ * Invisible accessible name, for when a visible element outside this component already
2921
+ * labels it (a heading in a settings row, a table column header) and `label` would render
2922
+ * that text a second time.
2923
+ *
2924
+ * `label` on this component is **visible** — it is painted next to the control. The catalog
2925
+ * splits that way deliberately, but `IconButton.label` and `Sparkline.label` are invisible
2926
+ * names, so an adopter arriving with that prior writes `label` here and gets the text twice
2927
+ * (2026-08-22 report item 13). Both props are now listed side by side, each saying which it
2928
+ * is, which is the only thing that interrupts a confident wrong guess.
2929
+ *
2930
+ * The raw DOM `aria-label` is still accepted and wins over this.
2931
+ */
2932
+ ariaLabel?: string;
2046
2933
  value?: string;
2047
2934
  defaultValue?: string;
2048
2935
  /** Called with the new `HH:MM` time string when the value changes. */
2049
2936
  onValueChange?: (value: string) => void;
2050
- /** @deprecated Use `onValueChange` — it receives the same time string. */
2051
- onChange?: (value: string) => void;
2052
2937
  min?: string;
2053
2938
  max?: string;
2054
2939
  step?: number;
@@ -2159,7 +3044,8 @@ interface AlertDialogProps {
2159
3044
  onCancel: () => void;
2160
3045
  labels?: AlertDialogLabels;
2161
3046
  /**
2162
- * Selects the visual style variant.
3047
+ * `destructive` styles the confirm button as a danger action; `default` styles it as the
3048
+ * primary action. Use `destructive` for anything that deletes.
2163
3049
  *
2164
3050
  * @defaultValue `default`
2165
3051
  * @see the component manifest
@@ -2182,7 +3068,8 @@ interface SheetProps {
2182
3068
  title?: ReactNode;
2183
3069
  children: ReactNode;
2184
3070
  /**
2185
- * Edge the component is anchored to.
3071
+ * Edge the sheet slides in from: `end` (the inline end — right in LTR), `start`, `top` or
3072
+ * `bottom`.
2186
3073
  *
2187
3074
  * @defaultValue `end`
2188
3075
  * @see the component manifest
@@ -2283,7 +3170,8 @@ interface ComparisonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange
2283
3170
  defaultPosition?: number;
2284
3171
  onPositionChange?: (position: number) => void;
2285
3172
  /**
2286
- * Layout orientation of the component.
3173
+ * Axis you drag along. `horizontal` splits the two images left and right with a vertical
3174
+ * divider; `vertical` splits them top and bottom with a horizontal one.
2287
3175
  *
2288
3176
  * @defaultValue `horizontal`
2289
3177
  * @see the component manifest
@@ -2296,8 +3184,16 @@ interface ComparisonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange
2296
3184
  * @see the component manifest
2297
3185
  */
2298
3186
  keyboardStep?: number;
2299
- /** Accessible label for the divider slider. */
3187
+ /** Accessible name for the divider slider — **not rendered**. */
2300
3188
  label?: string;
3189
+ /**
3190
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
3191
+ *
3192
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
3193
+ * makes after reading one other component (2026-08-21 report item 1). This component
3194
+ * predates the convention and shipped `label`; both work and neither is deprecated.
3195
+ */
3196
+ ariaLabel?: string;
2301
3197
  }
2302
3198
  declare function Comparison({
2303
3199
  after,
@@ -2308,6 +3204,7 @@ declare function Comparison({
2308
3204
  orientation,
2309
3205
  keyboardStep,
2310
3206
  label,
3207
+ ariaLabel,
2311
3208
  className,
2312
3209
  ...props
2313
3210
  }: ComparisonProps): import("react").JSX.Element;
@@ -2370,40 +3267,185 @@ interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
2370
3267
  * incomplete, which is why the rule is a guard and not a checklist.
2371
3268
  */
2372
3269
  declare const PasswordInput: import("react").ForwardRefExoticComponent<PasswordInputProps & import("react").RefAttributes<HTMLInputElement>>;
3270
+ /**
3271
+ * Option filtering, grouping and match highlighting, kept pure so the list pipeline is
3272
+ * testable without a DOM and runs once per query change rather than per render.
3273
+ *
3274
+ * Matching folds diacritics because a German user typing `zurich` expects `Zürich`, and an
3275
+ * option list is exactly where that gap bites: the user cannot see why their query returns
3276
+ * nothing. Folding is done per code point so the folded string stays index-aligned with the
3277
+ * original — that alignment is what lets `highlightSegments` mark the match on the label the
3278
+ * user actually reads rather than on a normalised copy of it.
3279
+ */
3280
+ /** One selectable option. `group` is optional; a list mixing grouped and ungrouped options renders the ungrouped ones first. */
2373
3281
  interface MultiSelectOption {
2374
3282
  label: string;
2375
3283
  value: string;
2376
3284
  /**
2377
- * When true, disables the control and removes it from the tab order.
3285
+ * When true, the option cannot be selected and is skipped by keyboard navigation.
3286
+ *
3287
+ * @defaultValue `false`
3288
+ * @see the component manifest
3289
+ */
3290
+ disabled?: boolean;
3291
+ /** Optional group heading this option belongs to. */
3292
+ group?: string;
3293
+ }
3294
+ interface MultiSelectLabels {
3295
+ label?: string;
3296
+ placeholder?: string;
3297
+ selected?: (count: number) => string;
3298
+ search?: string;
3299
+ noResults?: string;
3300
+ /** Text shown in place of the no-results message while `loading` is true. */
3301
+ loading?: string;
3302
+ clear?: string;
3303
+ remove?: string;
3304
+ /** Text on the select-all row while nothing is selected. */
3305
+ selectAll?: string;
3306
+ clearAll?: string;
3307
+ create?: string;
3308
+ }
3309
+ interface MultiSelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
3310
+ /**
3311
+ * Wired automatically by a wrapping `Field` — its label id. Forwarded to the focusable
3312
+ * control so the Field's label names it.
3313
+ */
3314
+ 'aria-labelledby'?: string;
3315
+ /**
3316
+ * Wired automatically by a wrapping `Field` — the ids of its hint/error text. **Merged**
3317
+ * with this component's own `hint`/`error` ids rather than replacing them, so both are
3318
+ * announced.
3319
+ */
3320
+ 'aria-describedby'?: string;
3321
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
3322
+ 'aria-invalid'?: boolean;
3323
+ options: MultiSelectOption[];
3324
+ /** The controlled value. Omit it and pass `defaultValue` to let the component own the selection. */
3325
+ value?: string[];
3326
+ /**
3327
+ * The initial value when uncontrolled.
3328
+ *
3329
+ * @defaultValue `[]`
3330
+ * @see the component manifest
3331
+ */
3332
+ defaultValue?: string[];
3333
+ /** Called with the new value when it changes. */
3334
+ onValueChange?: (value: string[]) => void;
3335
+ placeholder?: string;
3336
+ /** Visible field label. */
3337
+ label?: string;
3338
+ /**
3339
+ * Invisible accessible name, for when a visible element outside this component already
3340
+ * labels it and `label` would render that text a second time.
3341
+ *
3342
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
3343
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
3344
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
3345
+ * which it is.
3346
+ */
3347
+ ariaLabel?: string;
3348
+ hint?: string;
3349
+ error?: string;
3350
+ /**
3351
+ * How the trigger summarises the selection: a count, or one removable chip per value.
3352
+ *
3353
+ * @defaultValue `'count'`
3354
+ * @see the component manifest
3355
+ */
3356
+ display?: 'count' | 'chips';
3357
+ /**
3358
+ * When true, disables the control and removes it from the tab order.
3359
+ *
3360
+ * @defaultValue `false`
3361
+ * @see the component manifest
3362
+ */
3363
+ disabled?: boolean;
3364
+ /**
3365
+ * When true, shows a control that clears every selected value.
3366
+ *
3367
+ * @defaultValue `false`
3368
+ * @see the component manifest
3369
+ */
3370
+ clearable?: boolean;
3371
+ /**
3372
+ * When true, shows a row that selects or clears every enabled option at once.
3373
+ *
3374
+ * @defaultValue `false`
3375
+ * @see the component manifest
3376
+ */
3377
+ selectAll?: boolean;
3378
+ /** Maximum number of values that may be selected. Further options become unselectable once reached. */
3379
+ max?: number;
3380
+ /**
3381
+ * When true, offers the current search text as a new option.
3382
+ *
3383
+ * @defaultValue `false`
3384
+ * @see the component manifest
3385
+ */
3386
+ creatable?: boolean;
3387
+ /** Called with the typed label when the user picks the "create" row. */
3388
+ onCreate?: (label: string) => void;
3389
+ /**
3390
+ * When true, the list reports itself as busy and shows a loading row instead of the
3391
+ * no-results message.
3392
+ *
3393
+ * @defaultValue `false`
3394
+ * @see the component manifest
3395
+ */
3396
+ loading?: boolean;
3397
+ /** Called with the search text on every keystroke. Pair it with `filter={() => true}` for a server-driven list. */
3398
+ onSearchChange?: (query: string) => void;
3399
+ /** Replaces the built-in diacritic-insensitive matcher. */
3400
+ filter?: (option: MultiSelectOption, query: string) => boolean;
3401
+ /**
3402
+ * When true, shows the search field. The list is keyboard-navigable either way.
3403
+ *
3404
+ * @defaultValue `true`
3405
+ * @see the component manifest
3406
+ */
3407
+ searchable?: boolean;
3408
+ /**
3409
+ * Field height.
2378
3410
  *
2379
- * @defaultValue `false`
3411
+ * @defaultValue `'md'`
2380
3412
  * @see the component manifest
2381
3413
  */
2382
- disabled?: boolean;
2383
- }
2384
- interface MultiSelectLabels {
2385
- label?: string;
2386
- placeholder?: string;
2387
- selected?: (count: number) => string;
2388
- search?: string;
2389
- noResults?: string;
2390
- }
2391
- interface MultiSelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
2392
- options: MultiSelectOption[];
2393
- value: string[];
2394
- onValueChange: (v: string[]) => void;
2395
- placeholder?: string;
2396
- disabled?: boolean;
3414
+ size?: 'sm' | 'md' | 'lg';
3415
+ /** Submitted with a surrounding form — one hidden input per selected value. */
3416
+ name?: string;
2397
3417
  labels?: MultiSelectLabels;
3418
+ id?: string;
2398
3419
  }
2399
3420
  declare function MultiSelect({
2400
3421
  options,
2401
3422
  value,
3423
+ defaultValue,
2402
3424
  onValueChange,
2403
3425
  placeholder,
3426
+ label,
3427
+ ariaLabel,
3428
+ hint,
3429
+ error,
3430
+ display,
2404
3431
  disabled,
3432
+ clearable,
3433
+ selectAll,
3434
+ max,
3435
+ creatable,
3436
+ onCreate,
3437
+ loading,
3438
+ onSearchChange,
3439
+ filter,
3440
+ searchable,
3441
+ size,
3442
+ name,
2405
3443
  labels,
2406
3444
  className,
3445
+ id,
3446
+ 'aria-labelledby': ariaLabelledBy,
3447
+ 'aria-describedby': ariaDescribedBy,
3448
+ 'aria-invalid': ariaInvalid,
2407
3449
  ...props
2408
3450
  }: MultiSelectProps): import("react").JSX.Element;
2409
3451
  interface TagsInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
@@ -2419,6 +3461,28 @@ interface TagsInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'
2419
3461
  * @see the component manifest
2420
3462
  */
2421
3463
  disabled?: boolean;
3464
+ /**
3465
+ * Id for the **inner text input** — the focusable control, so a `<label for>` names the
3466
+ * thing that actually takes focus. `Field` supplies this automatically.
3467
+ *
3468
+ * Naming is unaffected by this: the built-in name is dropped only when something actually
3469
+ * names the control (an `ariaLabel`/`label` prop, or the `aria-labelledby` a `Field`
3470
+ * supplies), so a standalone `<TagsInput id="x"/>` keeps its built-in name.
3471
+ */
3472
+ id?: string;
3473
+ /**
3474
+ * Invisible accessible name for the tag entry field. Use when no visible label names it.
3475
+ *
3476
+ * Inside a `Field` you do not need this — the Field's label is wired through automatically.
3477
+ */
3478
+ ariaLabel?: string;
3479
+ /**
3480
+ * Alias of `ariaLabel` — the same invisible accessible name under the other spelling. Not
3481
+ * rendered. `ariaLabel` is the catalog convention and stays preferred; `label` is the guess
3482
+ * an adopter makes when they have not read the convention, and an unaccepted guess costs a
3483
+ * compile cycle for nothing.
3484
+ */
3485
+ label?: string;
2422
3486
  }
2423
3487
  declare function TagsInput({
2424
3488
  value,
@@ -2428,6 +3492,12 @@ declare function TagsInput({
2428
3492
  max,
2429
3493
  disabled,
2430
3494
  className,
3495
+ id,
3496
+ ariaLabel,
3497
+ label,
3498
+ 'aria-labelledby': ariaLabelledBy,
3499
+ 'aria-describedby': ariaDescribedBy,
3500
+ 'aria-invalid': ariaInvalid,
2431
3501
  ...props
2432
3502
  }: TagsInputProps): import("react").JSX.Element;
2433
3503
  interface OtpInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
@@ -2474,6 +3544,12 @@ interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
2474
3544
  value: string;
2475
3545
  onValueChange: (v: string) => void;
2476
3546
  size?: 'sm' | 'md' | 'lg';
3547
+ /**
3548
+ * When true, disables the control and removes it from the tab order.
3549
+ *
3550
+ * @defaultValue `false`
3551
+ * @see the component manifest
3552
+ */
2477
3553
  disabled?: boolean;
2478
3554
  }
2479
3555
  declare function SegmentedControl({
@@ -2569,6 +3645,18 @@ interface EditableProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>
2569
3645
  */
2570
3646
  submitOnBlur?: boolean;
2571
3647
  onCancel?: () => void;
3648
+ /**
3649
+ * Id for the **focusable control** — the preview button when idle, the text input while
3650
+ * editing — rather than the wrapper, so a `<label for>` names what actually takes focus.
3651
+ * `Field` supplies this automatically.
3652
+ */
3653
+ id?: string;
3654
+ /** Wired automatically by a wrapping `Field` — its label id. */
3655
+ 'aria-labelledby'?: string;
3656
+ /** Wired automatically by a wrapping `Field` — the ids of its hint/error text. */
3657
+ 'aria-describedby'?: string;
3658
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
3659
+ 'aria-invalid'?: boolean;
2572
3660
  }
2573
3661
  declare function Editable({
2574
3662
  value,
@@ -2578,6 +3666,12 @@ declare function Editable({
2578
3666
  submitOnBlur,
2579
3667
  onCancel,
2580
3668
  className,
3669
+ id,
3670
+ 'aria-label': ariaLabel,
3671
+ 'aria-labelledby': ariaLabelledBy,
3672
+ 'aria-describedby': ariaDescribedBy,
3673
+ 'aria-invalid': ariaInvalid,
3674
+ tabIndex,
2581
3675
  ...props
2582
3676
  }: EditableProps): import("react").JSX.Element;
2583
3677
  interface RadioCardGroupProps {
@@ -2732,17 +3826,34 @@ type SwitcherEntry = SwitcherLink | {
2732
3826
  interface SwitcherProps {
2733
3827
  items: SwitcherEntry[];
2734
3828
  /**
2735
- * Text label for the control.
3829
+ * Accessible name for the switcher list. Not rendered — screen readers only.
2736
3830
  *
2737
3831
  * @defaultValue `Switch application`
2738
3832
  * @see the component manifest
2739
3833
  */
2740
3834
  label?: string;
3835
+ /**
3836
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
3837
+ *
3838
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
3839
+ * makes after reading one other component (2026-08-21 report item 1). This component
3840
+ * predates the convention and shipped `label`; both work and neither is deprecated.
3841
+ */
3842
+ ariaLabel?: string;
2741
3843
  className?: string | undefined;
2742
3844
  }
3845
+ /**
3846
+ * An **always-visible** list of apps/workspaces. Every entry renders at once and stays on
3847
+ * screen — despite the name, nothing collapses and there is no trigger.
3848
+ *
3849
+ * For the shape most consoles want — one row showing the current workspace, a menu on click
3850
+ * — use `Dropdown`. An adopter picked `Switcher` from its name for a Vercel-style team
3851
+ * switcher and got both teams stacked permanently in the sidebar (2026-08-21 report item 5).
3852
+ */
2743
3853
  declare function Switcher({
2744
3854
  items,
2745
3855
  label,
3856
+ ariaLabel,
2746
3857
  className
2747
3858
  }: SwitcherProps): import("react").JSX.Element;
2748
3859
  interface CheckboxCardProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'title' | 'onChange'> {
@@ -2894,7 +4005,8 @@ interface ProgressProps {
2894
4005
  /** 0–100. Omit for indeterminate state. */
2895
4006
  value?: number;
2896
4007
  /**
2897
- * Selects the visual style variant.
4008
+ * Colour of the fill: `primary` (the accent) or a severity tone — `info`, `success`,
4009
+ * `warning`, `error`.
2898
4010
  *
2899
4011
  * @defaultValue `primary`
2900
4012
  * @see the component manifest
@@ -2908,6 +4020,14 @@ interface ProgressProps {
2908
4020
  * flip on every component.
2909
4021
  */
2910
4022
  ariaLabel?: string;
4023
+ /**
4024
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
4025
+ *
4026
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
4027
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
4028
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
4029
+ */
4030
+ label?: string;
2911
4031
  /** DOM-spelled alias of {@link ariaLabel}. */
2912
4032
  'aria-label'?: string;
2913
4033
  'aria-describedby'?: string;
@@ -2919,6 +4039,7 @@ declare function Progress({
2919
4039
  size,
2920
4040
  className,
2921
4041
  ariaLabel,
4042
+ label,
2922
4043
  ...aria
2923
4044
  }: ProgressProps): import("react").JSX.Element;
2924
4045
  interface ProgressCircleProps extends HTMLAttributes<HTMLDivElement> {
@@ -2941,6 +4062,14 @@ interface ProgressCircleProps extends HTMLAttributes<HTMLDivElement> {
2941
4062
  showValue?: boolean;
2942
4063
  /** Accessible name for the progressbar. */
2943
4064
  label?: string;
4065
+ /**
4066
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
4067
+ *
4068
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
4069
+ * makes after reading one other component (2026-08-21 report item 1). This component
4070
+ * predates the convention and shipped `label`; both work and neither is deprecated.
4071
+ */
4072
+ ariaLabel?: string;
2944
4073
  }
2945
4074
  declare function ProgressCircle({
2946
4075
  value,
@@ -2948,6 +4077,7 @@ declare function ProgressCircle({
2948
4077
  size,
2949
4078
  showValue,
2950
4079
  label,
4080
+ ariaLabel,
2951
4081
  className,
2952
4082
  ...props
2953
4083
  }: ProgressCircleProps): import("react").JSX.Element;
@@ -2972,7 +4102,8 @@ declare function Heading({
2972
4102
  }: HeadingProps): import("react").JSX.Element;
2973
4103
  interface TextProps extends HTMLAttributes<HTMLElement> {
2974
4104
  /**
2975
- * The HTML element to render as.
4105
+ * `p` for a paragraph, `span` for inline text, `div` for a block that imposes no semantics
4106
+ * of its own.
2976
4107
  *
2977
4108
  * @defaultValue `p`
2978
4109
  * @see the component manifest
@@ -2981,7 +4112,8 @@ interface TextProps extends HTMLAttributes<HTMLElement> {
2981
4112
  size?: 'sm' | 'md' | 'lg';
2982
4113
  weight?: 'normal' | 'medium' | 'semibold';
2983
4114
  /**
2984
- * When true, renders in a muted/subtle color.
4115
+ * When true, renders in a muted/subtle color. `Text` has no `tone` prop: `tone` is the
4116
+ * severity vocabulary (Status, Badge, Timeline, SideNav); text emphasis is `muted`.
2985
4117
  *
2986
4118
  * @defaultValue `false`
2987
4119
  * @see the component manifest
@@ -3023,7 +4155,8 @@ declare function Blockquote({
3023
4155
  }: BlockquoteProps): import("react").JSX.Element;
3024
4156
  interface ListProps extends HTMLAttributes<HTMLElement> {
3025
4157
  /**
3026
- * The HTML element to render as.
4158
+ * `ul` for an unordered list, `ol` for a numbered one. Changes the element and its marker,
4159
+ * not the styling.
3027
4160
  *
3028
4161
  * @defaultValue `ul`
3029
4162
  * @see the component manifest
@@ -3200,8 +4333,17 @@ interface QrCodeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3200
4333
  * @see the component manifest
3201
4334
  */
3202
4335
  background?: string;
3203
- /** Accessible label. Defaults to the i18n built-in "QR code". */
4336
+ /** Accessible name for the QR image — **not rendered**. Defaults to the i18n built-in
4337
+ * "QR code". */
3204
4338
  label?: string;
4339
+ /**
4340
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
4341
+ *
4342
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
4343
+ * makes after reading one other component (2026-08-21 report item 1). This component
4344
+ * predates the convention and shipped `label`; both work and neither is deprecated.
4345
+ */
4346
+ ariaLabel?: string;
3205
4347
  }
3206
4348
  declare function QrCode({
3207
4349
  value,
@@ -3211,6 +4353,7 @@ declare function QrCode({
3211
4353
  fill,
3212
4354
  background,
3213
4355
  label,
4356
+ ariaLabel,
3214
4357
  className,
3215
4358
  style,
3216
4359
  ...props
@@ -3279,8 +4422,18 @@ declare function Label({
3279
4422
  interface FieldProps {
3280
4423
  /** Label text for the control. */
3281
4424
  label?: ReactNode;
3282
- /** Helper text describing the control, wired via aria-describedby. */
4425
+ /**
4426
+ * Helper text under the control, wired via `aria-describedby`.
4427
+ *
4428
+ * `hint` is the same thing under the name the eight form controls use (`Input.hint`,
4429
+ * `Select.hint`, …); `Field` predates that split and shipped `description`, which is the
4430
+ * catalog's word for the body text of a *feedback* component (`Alert`, `Notification`).
4431
+ * Both work here and neither is deprecated (2026-08-21 report item 4). When both are
4432
+ * passed, `description` wins.
4433
+ */
3283
4434
  description?: ReactNode;
4435
+ /** Alias of `description` — the name the form controls use for the same text. */
4436
+ hint?: ReactNode;
3284
4437
  /** Error message; sets aria-invalid on the control and is announced via role="alert". */
3285
4438
  error?: ReactNode;
3286
4439
  /**
@@ -3302,6 +4455,7 @@ interface FieldProps {
3302
4455
  /** The single form control element. */
3303
4456
  children: ReactElement<{
3304
4457
  id?: string;
4458
+ 'aria-labelledby'?: string;
3305
4459
  'aria-describedby'?: string;
3306
4460
  'aria-invalid'?: boolean;
3307
4461
  disabled?: boolean;
@@ -3311,6 +4465,7 @@ interface FieldProps {
3311
4465
  declare function Field({
3312
4466
  label,
3313
4467
  description,
4468
+ hint,
3314
4469
  error,
3315
4470
  required,
3316
4471
  disabled,
@@ -3335,8 +4490,6 @@ interface FilterProps {
3335
4490
  defaultValue?: string[];
3336
4491
  /** Called with the selected values whenever the selection changes. */
3337
4492
  onValueChange?: (selected: string[]) => void;
3338
- /** @deprecated Use `onValueChange` — it receives the same `string[]`. */
3339
- onChange?: (selected: string[]) => void;
3340
4493
  /**
3341
4494
  * Allow multiple items to be selected simultaneously
3342
4495
  *
@@ -3345,7 +4498,17 @@ interface FilterProps {
3345
4498
  */
3346
4499
  multi?: boolean;
3347
4500
  /**
3348
- * Selects the visual style variant.
4501
+ * Alias of `multi` — the HTML spelling, accepted because it is the guess.
4502
+ *
4503
+ * `multiple` is what `<select multiple>` and `<input multiple>` are called, so an adopter
4504
+ * reaches for it first and pays a compile cycle on a prop whose doc comment they never see:
4505
+ * you cannot read the documentation of a prop you do not know exists (2026-08-22 report
4506
+ * item 14). `multi` stays canonical.
4507
+ */
4508
+ multiple?: boolean;
4509
+ /**
4510
+ * `pill` fills the selected chip with the accent colour; `outline` marks it with an accent
4511
+ * border and text instead, leaving the fill transparent.
3349
4512
  *
3350
4513
  * @defaultValue `pill`
3351
4514
  * @see the component manifest
@@ -3358,6 +4521,14 @@ interface FilterProps {
3358
4521
  * flip on every component.
3359
4522
  */
3360
4523
  ariaLabel?: string;
4524
+ /**
4525
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
4526
+ *
4527
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
4528
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
4529
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
4530
+ */
4531
+ label?: string;
3361
4532
  /** DOM-spelled alias of {@link ariaLabel}. */
3362
4533
  'aria-label'?: string;
3363
4534
  className?: string;
@@ -3367,11 +4538,12 @@ declare function Filter({
3367
4538
  value,
3368
4539
  defaultValue,
3369
4540
  onValueChange,
3370
- onChange,
3371
4541
  multi,
4542
+ multiple,
3372
4543
  variant,
3373
4544
  className,
3374
4545
  ariaLabel,
4546
+ label,
3375
4547
  ...aria
3376
4548
  }: FilterProps): import("react").JSX.Element;
3377
4549
  interface IconButtonBaseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
@@ -3380,7 +4552,8 @@ interface IconButtonBaseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3380
4552
  icon?: ReactNode;
3381
4553
  size?: 'sm' | 'md' | 'lg';
3382
4554
  /**
3383
- * Selects the visual style variant.
4555
+ * `ghost` is transparent until hover, `outline` adds a border, `filled` gives the button a
4556
+ * solid surface.
3384
4557
  *
3385
4558
  * @defaultValue `ghost`
3386
4559
  * @see the component manifest
@@ -3411,7 +4584,8 @@ type IconButtonProps = IconButtonBaseProps & ({
3411
4584
  declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
3412
4585
  interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
3413
4586
  /**
3414
- * Layout orientation of the component.
4587
+ * Axis the buttons flow along: `horizontal` puts them in a row, `vertical` stacks them in
4588
+ * a column. The seams between them are collapsed either way.
3415
4589
  *
3416
4590
  * @defaultValue `horizontal`
3417
4591
  * @see the component manifest
@@ -3453,13 +4627,20 @@ interface ToggleGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChang
3453
4627
  onValueChange?: (value: string | string[]) => void;
3454
4628
  items: ToggleGroupItem[];
3455
4629
  /**
3456
- * Layout orientation of the component.
4630
+ * Axis the options flow along: `horizontal` for a segmented row, `vertical` for a stacked
4631
+ * column.
3457
4632
  *
3458
4633
  * @defaultValue `horizontal`
3459
4634
  * @see the component manifest
3460
4635
  */
3461
4636
  orientation?: 'horizontal' | 'vertical';
3462
4637
  size?: 'sm' | 'md' | 'lg';
4638
+ /**
4639
+ * When true, disables the control and removes it from the tab order.
4640
+ *
4641
+ * @defaultValue `false`
4642
+ * @see the component manifest
4643
+ */
3463
4644
  disabled?: boolean;
3464
4645
  }
3465
4646
  declare const ToggleGroup: import("react").ForwardRefExoticComponent<ToggleGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -3486,9 +4667,12 @@ interface NotificationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'
3486
4667
  title: ReactNode;
3487
4668
  description?: ReactNode;
3488
4669
  /**
3489
- * Severity tone. Accepts the catalog-wide `Tone` vocabulary
3490
- * (`neutral | info | success | warning | danger`) plus Notification's historical
3491
- * spellings (`error`, `destructive`).
4670
+ * Severity tone. Accepts the catalog-wide `Tone` vocabulary (`neutral | info | success |
4671
+ * warning | danger`) plus Notification's historical spellings (`error`, `destructive` →
4672
+ * danger).
4673
+ *
4674
+ * @defaultValue `info`
4675
+ * @see the component manifest
3492
4676
  */
3493
4677
  variant?: ToneInput;
3494
4678
  /**
@@ -3616,6 +4800,12 @@ interface MenuButtonProps {
3616
4800
  items: MenuButtonItem[];
3617
4801
  variant?: 'primary' | 'secondary' | 'ghost';
3618
4802
  size?: 'sm' | 'md' | 'lg';
4803
+ /**
4804
+ * Disables the trigger
4805
+ *
4806
+ * @defaultValue `false`
4807
+ * @see the component manifest
4808
+ */
3619
4809
  disabled?: boolean;
3620
4810
  align?: 'start' | 'end';
3621
4811
  labels?: {
@@ -3711,9 +4901,18 @@ interface NavigationMenuProps {
3711
4901
  * `docs/AI-RULES.md`); `aria-label` is accepted as an alias for the DOM spelling.
3712
4902
  */
3713
4903
  ariaLabel?: string;
4904
+ /**
4905
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
4906
+ *
4907
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
4908
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
4909
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
4910
+ */
4911
+ label?: string;
3714
4912
  'aria-label'?: string;
3715
4913
  /**
3716
- * Layout orientation of the component.
4914
+ * Which arrow keys move focus, and the axis the items lay out on: `horizontal`
4915
+ * (Left/Right), `vertical` (Up/Down), or `both` (all four).
3717
4916
  *
3718
4917
  * @defaultValue `horizontal`
3719
4918
  * @see the component manifest
@@ -3725,6 +4924,7 @@ declare function NavigationMenu({
3725
4924
  items,
3726
4925
  'aria-label': ariaLabelDom,
3727
4926
  ariaLabel,
4927
+ label,
3728
4928
  orientation,
3729
4929
  className
3730
4930
  }: NavigationMenuProps): import("react").JSX.Element;
@@ -3733,13 +4933,34 @@ interface TreeNode {
3733
4933
  label: ReactNode;
3734
4934
  icon?: ReactNode;
3735
4935
  children?: TreeNode[];
4936
+ /**
4937
+ * When true, the node cannot be selected and is skipped by keyboard navigation and
4938
+ * type-to-select.
4939
+ *
4940
+ * @defaultValue `false`
4941
+ * @see the component manifest
4942
+ */
4943
+ disabled?: boolean;
4944
+ /**
4945
+ * Plain-text form of `label`, for type-to-select when the label is JSX.
4946
+ *
4947
+ * Typeahead matched `typeof label === 'string'`, so it silently did nothing for any node
4948
+ * rendering an icon beside its text — the common case.
4949
+ */
4950
+ textValue?: string;
3736
4951
  }
3737
4952
  interface TreeViewProps {
3738
4953
  items: TreeNode[];
3739
4954
  selectionMode?: 'single' | 'multi';
3740
4955
  selected?: string | string[];
3741
4956
  defaultSelected?: string | string[];
4957
+ /**
4958
+ * @deprecated Use `onValueChange`. The catalog names a value-carrying handler
4959
+ * `onValueChange`; `onSelectChange` appears on this component alone. Still honoured.
4960
+ */
3742
4961
  onSelectChange?: (selected: string | string[]) => void;
4962
+ /** Called with the new selection. */
4963
+ onValueChange?: (selected: string | string[]) => void;
3743
4964
  expanded?: string[];
3744
4965
  defaultExpanded?: string[];
3745
4966
  onExpandedChange?: (expanded: string[]) => void;
@@ -3749,6 +4970,14 @@ interface TreeViewProps {
3749
4970
  * `docs/AI-RULES.md`); `aria-label` is accepted as an alias for the DOM spelling.
3750
4971
  */
3751
4972
  ariaLabel?: string;
4973
+ /**
4974
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
4975
+ *
4976
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
4977
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
4978
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
4979
+ */
4980
+ label?: string;
3752
4981
  'aria-label'?: string;
3753
4982
  }
3754
4983
  declare function TreeView({
@@ -3757,12 +4986,14 @@ declare function TreeView({
3757
4986
  selected,
3758
4987
  defaultSelected,
3759
4988
  onSelectChange,
4989
+ onValueChange,
3760
4990
  expanded,
3761
4991
  defaultExpanded,
3762
4992
  onExpandedChange,
3763
4993
  className,
3764
4994
  'aria-label': ariaLabelDom,
3765
- ariaLabel
4995
+ ariaLabel,
4996
+ label
3766
4997
  }: TreeViewProps): import("react").JSX.Element;
3767
4998
  declare const treeViewMessages: {
3768
4999
  loading: () => string;
@@ -3805,6 +5036,14 @@ interface StructuredListProps {
3805
5036
  * flip on every component.
3806
5037
  */
3807
5038
  ariaLabel?: string;
5039
+ /**
5040
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
5041
+ *
5042
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
5043
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
5044
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
5045
+ */
5046
+ label?: string;
3808
5047
  /** DOM-spelled alias of {@link ariaLabel}. */
3809
5048
  'aria-label'?: string;
3810
5049
  }
@@ -3840,7 +5079,13 @@ interface DataListItem {
3840
5079
  interface DataListProps extends HTMLAttributes<HTMLDListElement> {
3841
5080
  items: DataListItem[];
3842
5081
  /**
3843
- * Layout orientation of the component.
5082
+ * Where each **value** sits relative to its own label — not the axis of the list.
5083
+ *
5084
+ * `'horizontal'` puts the value beside its label; `'vertical'` puts it underneath. Items
5085
+ * are stacked vertically either way, which is the part the name does not say: an adopter
5086
+ * read `orientation="vertical"` as "lay the items out vertically" and got a very tall
5087
+ * block from six rows (2026-08-21 report item 9). In a summary card, prefer
5088
+ * `'horizontal'`.
3844
5089
  *
3845
5090
  * @defaultValue `horizontal`
3846
5091
  * @see the component manifest
@@ -3896,7 +5141,8 @@ interface TimelineItem {
3896
5141
  interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
3897
5142
  items: TimelineItem[];
3898
5143
  /**
3899
- * Layout orientation of the component.
5144
+ * Axis the entries flow along: `vertical` stacks them down the page (the usual reading
5145
+ * order), `horizontal` runs them across.
3900
5146
  *
3901
5147
  * @defaultValue `vertical`
3902
5148
  * @see the component manifest
@@ -3919,7 +5165,8 @@ interface ItemProps extends HTMLAttributes<HTMLDivElement> {
3919
5165
  */
3920
5166
  asChild?: boolean;
3921
5167
  /**
3922
- * Selects the visual style variant.
5168
+ * `muted` gives the row a subtle background — for a selected or highlighted item;
5169
+ * `default` leaves it transparent.
3923
5170
  *
3924
5171
  * @defaultValue `default`
3925
5172
  * @see the component manifest
@@ -3968,6 +5215,8 @@ declare function ItemActions({
3968
5215
  interface CalendarLabels {
3969
5216
  previousMonth?: string;
3970
5217
  nextMonth?: string;
5218
+ today?: string;
5219
+ weekNumber?: string;
3971
5220
  }
3972
5221
  interface CalendarProps {
3973
5222
  value?: Date | null;
@@ -3986,6 +5235,15 @@ interface CalendarProps {
3986
5235
  size?: 'sm' | 'md' | 'lg';
3987
5236
  labels?: CalendarLabels;
3988
5237
  className?: string;
5238
+ /**
5239
+ * Accessible name for the grid. Defaults to the visible month label.
5240
+ *
5241
+ * Calendar has no visible label slot — the month heading is its own — so `label` and
5242
+ * `ariaLabel` are aliases for the same invisible name. `ariaLabel` wins if both are given.
5243
+ */
5244
+ ariaLabel?: string;
5245
+ /** Alias for `ariaLabel`. See the note there. */
5246
+ label?: string;
3989
5247
  /** Highlight predicate for range previews (date-range-picker). */
3990
5248
  isInRange?: (date: Date) => boolean;
3991
5249
  /** Range endpoint markers for styling. */
@@ -4009,6 +5267,20 @@ interface CalendarProps {
4009
5267
  * @see the component manifest
4010
5268
  */
4011
5269
  hideNav?: boolean;
5270
+ /**
5271
+ * When true, shows a button that jumps the view to the current month and focuses today.
5272
+ *
5273
+ * @defaultValue `false`
5274
+ * @see the component manifest
5275
+ */
5276
+ showToday?: boolean;
5277
+ /**
5278
+ * When true, prefixes each row with its ISO-8601 week number.
5279
+ *
5280
+ * @defaultValue `false`
5281
+ * @see the component manifest
5282
+ */
5283
+ showWeekNumbers?: boolean;
4012
5284
  }
4013
5285
  declare function Calendar({
4014
5286
  value,
@@ -4021,6 +5293,8 @@ declare function Calendar({
4021
5293
  size,
4022
5294
  labels,
4023
5295
  className,
5296
+ ariaLabel,
5297
+ label,
4024
5298
  isInRange,
4025
5299
  isRangeStart,
4026
5300
  isRangeEnd,
@@ -4028,13 +5302,22 @@ declare function Calendar({
4028
5302
  month,
4029
5303
  year,
4030
5304
  onViewChange,
4031
- hideNav
5305
+ hideNav,
5306
+ showToday,
5307
+ showWeekNumbers
4032
5308
  }: CalendarProps): import("react").JSX.Element;
4033
5309
  interface DateRange {
4034
5310
  start: Date;
4035
5311
  end: Date;
4036
5312
  }
4037
5313
  interface DateRangePreset {
5314
+ /**
5315
+ * Stable identity, used as the React key. Without it the array index (or a repeatable
5316
+ * `label`) is the key, so inserting or reordering entries re-uses the wrong DOM node — the
5317
+ * defect `link-item-id-parity` exists to prevent, extended past link-shaped items on
5318
+ * 2026-08-22.
5319
+ */
5320
+ id?: string;
4038
5321
  label: string;
4039
5322
  range: DateRange;
4040
5323
  }
@@ -4082,19 +5365,34 @@ declare function DateRangePicker({
4082
5365
  labels,
4083
5366
  className
4084
5367
  }: DateRangePickerProps): import("react").JSX.Element;
5368
+ /** The output formats an adopter can ask for. */
5369
+ type ColorFormat = 'hex' | 'rgb' | 'hsl';
4085
5370
  interface ColorPickerLabels {
4086
5371
  hue?: string;
4087
- /**
4088
- * When true, enables alpha (opacity) selection.
4089
- *
4090
- * @defaultValue `true`
4091
- * @see the component manifest
4092
- */
5372
+ /** Accessible name for the alpha slider. */
4093
5373
  alpha?: string;
4094
5374
  colorArea?: string;
5375
+ saturation?: string;
5376
+ brightness?: string;
4095
5377
  eyedropper?: string;
5378
+ presets?: string;
5379
+ hex?: string;
4096
5380
  }
4097
5381
  interface ColorPickerProps {
5382
+ /**
5383
+ * Wired automatically by a wrapping `Field` — its label id. Forwarded to the text input so
5384
+ * the Field's label names it; the built-in fallback name is then not applied.
5385
+ */
5386
+ 'aria-labelledby'?: string;
5387
+ /**
5388
+ * Wired automatically by a wrapping `Field` — the ids of its hint/error text. Forwarded to
5389
+ * the text input so the supporting text is announced, not just displayed.
5390
+ */
5391
+ 'aria-describedby'?: string;
5392
+ /** Wired automatically by a wrapping `Field` when it is in an error state. */
5393
+ 'aria-invalid'?: boolean;
5394
+ /** Id for the focusable text input. `Field` supplies this automatically. */
5395
+ id?: string;
4098
5396
  value?: string;
4099
5397
  /**
4100
5398
  * The initial value when uncontrolled.
@@ -4105,8 +5403,32 @@ interface ColorPickerProps {
4105
5403
  defaultValue?: string;
4106
5404
  onValueChange?: (value: string) => void;
4107
5405
  presets?: string[];
5406
+ /**
5407
+ * When true, enables alpha (opacity) selection.
5408
+ *
5409
+ * @defaultValue `true`
5410
+ * @see the component manifest
5411
+ */
4108
5412
  alpha?: boolean;
5413
+ /**
5414
+ * Notation for the emitted value. Alpha is included whenever `alpha` is on, so the width
5415
+ * of the emitted string is stable.
5416
+ *
5417
+ * @defaultValue `'hex'`
5418
+ * @see the component manifest
5419
+ */
5420
+ format?: ColorFormat;
4109
5421
  label?: string;
5422
+ /**
5423
+ * Invisible accessible name, for when a visible element outside this component already
5424
+ * labels it and `label` would render that text a second time.
5425
+ *
5426
+ * `label` on this component is **visible**. `IconButton.label` and `Sparkline.label` are
5427
+ * invisible names, so an adopter arriving with that prior writes `label` here and gets the
5428
+ * text twice (2026-08-22 report item 13). Both props are listed side by side, each saying
5429
+ * which it is.
5430
+ */
5431
+ ariaLabel?: string;
4110
5432
  /**
4111
5433
  * When true, disables the control and removes it from the tab order.
4112
5434
  *
@@ -4114,26 +5436,37 @@ interface ColorPickerProps {
4114
5436
  * @see the component manifest
4115
5437
  */
4116
5438
  disabled?: boolean;
5439
+ /** Submitted with a surrounding form — a hidden input carrying the current value. */
5440
+ name?: string;
4117
5441
  size?: 'sm' | 'md' | 'lg';
4118
5442
  className?: string;
4119
5443
  labels?: ColorPickerLabels;
4120
5444
  }
4121
5445
  declare function ColorPicker({
5446
+ id,
4122
5447
  value,
4123
5448
  defaultValue,
4124
5449
  onValueChange,
4125
5450
  presets,
4126
5451
  alpha,
5452
+ format,
4127
5453
  label,
5454
+ ariaLabel,
4128
5455
  disabled,
5456
+ name,
4129
5457
  size,
4130
5458
  className,
4131
- labels
5459
+ labels,
5460
+ 'aria-labelledby': ariaLabelledBy,
5461
+ 'aria-describedby': ariaDescribedBy,
5462
+ 'aria-invalid': ariaInvalid
4132
5463
  }: ColorPickerProps): import("react").JSX.Element;
4133
5464
  interface CarouselLabels {
4134
5465
  region?: string;
4135
5466
  previous?: string;
4136
5467
  next?: string;
5468
+ play?: string;
5469
+ pause?: string;
4137
5470
  }
4138
5471
  interface CarouselProps {
4139
5472
  children?: ReactNode;
@@ -4154,6 +5487,14 @@ interface CarouselProps {
4154
5487
  * @see the component manifest
4155
5488
  */
4156
5489
  loop?: boolean;
5490
+ /**
5491
+ * Milliseconds between automatic advances. Omit or set 0 to leave rotation off.
5492
+ *
5493
+ * Auto-rotation pauses on hover, on focus within the carousel, while the tab is hidden and
5494
+ * under `prefers-reduced-motion`, and always renders a play/pause control — APG requires
5495
+ * one for any carousel that rotates on its own.
5496
+ */
5497
+ autoplay?: number;
4157
5498
  className?: string;
4158
5499
  labels?: CarouselLabels;
4159
5500
  }
@@ -4164,13 +5505,15 @@ declare function Carousel({
4164
5505
  defaultIndex,
4165
5506
  onIndexChange,
4166
5507
  loop,
5508
+ autoplay,
4167
5509
  className,
4168
5510
  labels
4169
5511
  }: CarouselProps): import("react").JSX.Element;
4170
5512
  interface ResizableProps {
4171
5513
  children: ReactNode;
4172
5514
  /**
4173
- * Layout orientation of the component.
5515
+ * Axis the panes are split along. `horizontal` puts them side by side with a handle you
5516
+ * drag left and right; `vertical` stacks them with a handle you drag up and down.
4174
5517
  *
4175
5518
  * @defaultValue `horizontal`
4176
5519
  * @see the component manifest
@@ -4201,6 +5544,14 @@ interface ResizableProps {
4201
5544
  onRatioChange?: (ratio: number) => void;
4202
5545
  className?: string;
4203
5546
  label?: string;
5547
+ /**
5548
+ * Alias of `label` — the same invisible accessible name under the catalog's own spelling.
5549
+ *
5550
+ * `ariaLabel` is what the catalog calls a name nothing paints, so it is the guess an agent
5551
+ * makes after reading one other component (2026-08-21 report item 1). This component
5552
+ * predates the convention and shipped `label`; both work and neither is deprecated.
5553
+ */
5554
+ ariaLabel?: string;
4204
5555
  }
4205
5556
  declare function Resizable({
4206
5557
  children,
@@ -4211,7 +5562,8 @@ declare function Resizable({
4211
5562
  maxRatio,
4212
5563
  onRatioChange,
4213
5564
  className,
4214
- label
5565
+ label,
5566
+ ariaLabel
4215
5567
  }: ResizableProps): import("react").JSX.Element;
4216
5568
  interface DockItem {
4217
5569
  /**
@@ -4235,12 +5587,21 @@ interface DockProps {
4235
5587
  className?: string;
4236
5588
  /** Accessible label for the nav landmark */
4237
5589
  ariaLabel?: string;
5590
+ /**
5591
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
5592
+ *
5593
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
5594
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
5595
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
5596
+ */
5597
+ label?: string;
4238
5598
  }
4239
5599
  declare function Dock({
4240
5600
  items,
4241
5601
  activeIndex,
4242
5602
  className,
4243
- ariaLabel
5603
+ ariaLabel,
5604
+ label
4244
5605
  }: DockProps): import("react").JSX.Element;
4245
5606
  interface LargeTitleHeaderProps {
4246
5607
  /** The page title. Rendered as the large heading and mirrored in the collapsed bar. */
@@ -4390,6 +5751,14 @@ interface VirtualListProps<Item> {
4390
5751
  overscan?: number;
4391
5752
  /** Accessible label for the list; defaults to none, so label it when standalone. */
4392
5753
  ariaLabel?: string;
5754
+ /**
5755
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
5756
+ *
5757
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
5758
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
5759
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
5760
+ */
5761
+ label?: string;
4393
5762
  className?: string;
4394
5763
  }
4395
5764
  /**
@@ -4408,6 +5777,7 @@ declare function VirtualList<Item>({
4408
5777
  renderItem,
4409
5778
  overscan,
4410
5779
  ariaLabel,
5780
+ label,
4411
5781
  className
4412
5782
  }: VirtualListProps<Item>): import("react").JSX.Element;
4413
5783
  interface WheelPickerOption {
@@ -4433,6 +5803,14 @@ interface WheelPickerProps {
4433
5803
  */
4434
5804
  itemHeight?: number;
4435
5805
  ariaLabel?: string;
5806
+ /**
5807
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
5808
+ *
5809
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
5810
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
5811
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
5812
+ */
5813
+ label?: string;
4436
5814
  className?: string;
4437
5815
  }
4438
5816
  /**
@@ -4453,6 +5831,7 @@ declare function WheelPicker({
4453
5831
  visibleCount,
4454
5832
  itemHeight,
4455
5833
  ariaLabel,
5834
+ label,
4456
5835
  className
4457
5836
  }: WheelPickerProps): import("react").JSX.Element;
4458
5837
  interface DrawerProps {
@@ -4527,6 +5906,10 @@ interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>
4527
5906
  * A styled native `<select>` — keeps the platform's open/close, keyboard, and form behavior, and
4528
5907
  * layers on a custom chevron and focus/invalid rings via CSS only. No JS interactivity, so no
4529
5908
  * signals: the browser owns all state. Distinct from the custom-rendered `Select` listbox.
5909
+ *
5910
+ * Where `appearance: base-select` is supported the dropdown surface is themed from
5911
+ * `[data-theme]` too, matching `Dropdown` — see the `@supports` block in the stylesheet. It is
5912
+ * progressive enhancement: elsewhere the OS draws the option list, exactly as before.
4530
5913
  */
4531
5914
  /**
4532
5915
  * `forwardRef` so `ref` reaches the underlying `<select>` — and so it is TYPED. See
@@ -4612,11 +5995,23 @@ declare function CodeSnippet({
4612
5995
  type StepState = 'pending' | 'active' | 'complete' | 'error';
4613
5996
  interface Step {
4614
5997
  label: string;
4615
- /** Accepts `StepState` plus Timeline's `current` / `upcoming` aliases. */
4616
- state?: ProgressInput;
5998
+ /**
5999
+ * Stable identity for the step, used as its React key.
6000
+ *
6001
+ * Every other config-item type in the catalog (`TimelineItem`, `SideNavItem`,
6002
+ * `DataListItem`, `BreadcrumbItem`) carries one; `Step` was missed because the sweep that
6003
+ * added them looked for a `label` **and an `href`** (2026-08-22 report item 10). Without it
6004
+ * the index is the key, so reordering or inserting a step re-uses the wrong DOM node.
6005
+ */
6006
+ id?: string;
6007
+ /**
6008
+ * Step status. `StepState` is the canonical enum; `ProgressInput` additionally accepts
6009
+ * Timeline's `current` / `upcoming` aliases so one status value drives both components.
6010
+ */
6011
+ state?: StepState | ProgressInput;
4617
6012
  }
4618
- interface StepsProps {
4619
- steps: Step[];
6013
+ /** Props shared by both spellings of the collection. */
6014
+ interface StepsBaseProps {
4620
6015
  /**
4621
6016
  * Index of the currently active step (0-based)
4622
6017
  *
@@ -4628,13 +6023,40 @@ interface StepsProps {
4628
6023
  className?: string;
4629
6024
  /** Accessible label for the steps list */
4630
6025
  ariaLabel?: string;
6026
+ /**
6027
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
6028
+ *
6029
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
6030
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
6031
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
6032
+ */
6033
+ label?: string;
4631
6034
  }
6035
+ /**
6036
+ * The collection, under either spelling — exactly one is required.
6037
+ *
6038
+ * `steps` is the domain word and stays canonical. `items` is accepted because the catalog's
6039
+ * published data-prop vocabulary says a config-driven collection is `items`, and an adopter
6040
+ * who followed that rule hit a type error on the one component the rule named wrongly
6041
+ * (2026-08-22 report item 10). The XOR keeps "pass neither" and "pass both" compile errors
6042
+ * rather than silent no-ops, the same shape `Menubar` uses for its name props.
6043
+ */
6044
+ type StepsCollection = {
6045
+ steps: Step[];
6046
+ items?: never;
6047
+ } | {
6048
+ items: Step[];
6049
+ steps?: never;
6050
+ };
6051
+ type StepsProps = StepsBaseProps & StepsCollection;
4632
6052
  declare function Steps({
4633
6053
  steps,
6054
+ items,
4634
6055
  activeStep: controlledActiveStep,
4635
6056
  orientation,
4636
6057
  className,
4637
- ariaLabel
6058
+ ariaLabel,
6059
+ label
4638
6060
  }: StepsProps): import("react").JSX.Element;
4639
6061
  interface TileProps {
4640
6062
  /** Identifies this tile within a group. */
@@ -4681,7 +6103,8 @@ interface IndicatorProps {
4681
6103
  children: React.ReactNode;
4682
6104
  overlay: React.ReactNode;
4683
6105
  /**
4684
- * Placement relative to the trigger.
6106
+ * Corner of the wrapped element the dot or count sits on: `top-end`, `top-start`,
6107
+ * `bottom-start` or `bottom-end`.
4685
6108
  *
4686
6109
  * @defaultValue `top-end`
4687
6110
  * @see the component manifest
@@ -4699,7 +6122,8 @@ type JoinOrientation = 'horizontal' | 'vertical';
4699
6122
  interface JoinProps {
4700
6123
  children: React.ReactNode;
4701
6124
  /**
4702
- * Layout orientation of the component.
6125
+ * Axis the joined children flow along: `horizontal` for a row, `vertical` for a column.
6126
+ * Inner corners are squared off either way.
4703
6127
  *
4704
6128
  * @defaultValue `horizontal`
4705
6129
  * @see the component manifest
@@ -4808,7 +6232,8 @@ type ChatBubbleSide = 'start' | 'end';
4808
6232
  interface ChatBubbleProps {
4809
6233
  children: React.ReactNode;
4810
6234
  /**
4811
- * Edge the component is anchored to.
6235
+ * Which side of the thread the bubble sits on: `start` for an incoming message (avatar
6236
+ * first), `end` for an outgoing one (right-aligned, avatar last).
4812
6237
  *
4813
6238
  * @defaultValue `start`
4814
6239
  * @see the component manifest
@@ -4833,7 +6258,8 @@ interface RadialProgressProps {
4833
6258
  value: number;
4834
6259
  size?: RadialProgressSize;
4835
6260
  /**
4836
- * Selects the visual style variant.
6261
+ * Colour of the ring: `primary` (the accent) or a severity tone — `info`, `success`,
6262
+ * `warning`, `error`.
4837
6263
  *
4838
6264
  * @defaultValue `primary`
4839
6265
  * @see the component manifest
@@ -4845,6 +6271,14 @@ interface RadialProgressProps {
4845
6271
  * `docs/AI-RULES.md`); `aria-label` is accepted as an alias for the DOM spelling.
4846
6272
  */
4847
6273
  ariaLabel?: string;
6274
+ /**
6275
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
6276
+ *
6277
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
6278
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
6279
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
6280
+ */
6281
+ label?: string;
4848
6282
  'aria-label'?: string;
4849
6283
  className?: string;
4850
6284
  }
@@ -4855,6 +6289,7 @@ declare function RadialProgress({
4855
6289
  children,
4856
6290
  className,
4857
6291
  ariaLabel,
6292
+ label: labelProp,
4858
6293
  ...aria
4859
6294
  }: RadialProgressProps): import("react").JSX.Element;
4860
6295
  type SwapMode = 'rotate' | 'flip';
@@ -4870,14 +6305,20 @@ interface SwapProps {
4870
6305
  checked?: boolean;
4871
6306
  /** Called with the new checked state when the swap is toggled. */
4872
6307
  onValueChange?: (checked: boolean) => void;
4873
- /** @deprecated Use `onValueChange` — it receives the same `checked` boolean. */
4874
- onChange?: (checked: boolean) => void;
4875
6308
  mode?: SwapMode;
4876
6309
  /**
4877
6310
  * Invisible accessible name. The catalog convention (see the item-identity table in
4878
6311
  * `docs/AI-RULES.md`); `aria-label` is accepted as an alias for the DOM spelling.
4879
6312
  */
4880
6313
  ariaLabel?: string;
6314
+ /**
6315
+ * Alias of `ariaLabel` — same invisible accessible name, the other spelling. Not rendered.
6316
+ *
6317
+ * `ariaLabel` is the catalog convention and stays preferred, but `label` is the guess an
6318
+ * adopter makes when they have not read the convention, and an unaccepted guess costs a
6319
+ * compile cycle for nothing (2026-08-21 report item 1). Pass either.
6320
+ */
6321
+ label?: string;
4881
6322
  'aria-label'?: string;
4882
6323
  className?: string;
4883
6324
  }
@@ -4886,10 +6327,10 @@ declare function Swap({
4886
6327
  off,
4887
6328
  checked,
4888
6329
  onValueChange,
4889
- onChange,
4890
6330
  mode,
4891
6331
  className,
4892
6332
  ariaLabel,
6333
+ label,
4893
6334
  ...aria
4894
6335
  }: SwapProps): import("react").JSX.Element;
4895
6336
  interface SwipeAction {
@@ -4959,12 +6400,22 @@ interface GridProps extends HTMLAttributes<HTMLDivElement> {
4959
6400
  align?: GridAlign;
4960
6401
  /** Inline-axis alignment of items within their cells (`justify-items`). Defaults to `stretch`. */
4961
6402
  justify?: GridAlign;
6403
+ /**
6404
+ * Align the internal bands of adjacent children via CSS subgrid — every CardHeader in a
6405
+ * row shares one row track, every CardContent the next, every CardFooter the last. Where
6406
+ * subgrid is unsupported the grid renders as it does without this prop.
6407
+ *
6408
+ * @defaultValue `false`
6409
+ * @see the component manifest
6410
+ */
6411
+ alignRows?: boolean;
4962
6412
  }
4963
6413
  declare function Grid({
4964
6414
  cols,
4965
6415
  gap,
4966
6416
  align,
4967
6417
  justify,
6418
+ alignRows,
4968
6419
  className,
4969
6420
  style,
4970
6421
  children,
@@ -5129,4 +6580,517 @@ declare function PageHeader({
5129
6580
  actions,
5130
6581
  className
5131
6582
  }: PageHeaderProps): import("react").JSX.Element;
5132
- export { Accordion, AccordionContent, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, ActionSheet, ActionSheetAction, ActionSheetProps, Alert, AlertDialog, AlertDialogLabels, AlertDialogProps, AlertProps, AppShell, AppShellProps, AspectRatio, AspectRatioProps, AutoGrid, AutoGridProps, Avatar, AvatarGroup, AvatarGroupLabels, AvatarGroupProps, AvatarProps, Badge, BadgeProps, Blockquote, BlockquoteProps, BottomSheet, BottomSheetProps, Breadcrumb, BreadcrumbItem, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarLabels, CalendarProps, Card, CardContent, CardContentProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselLabels, CarouselProps, Center, CenterProps, ChatBubble, ChatBubbleProps, ChatBubbleSide, Checkbox, CheckboxCard, CheckboxCardProps, CheckboxProps, Code, type CodeLang, CodeProps, CodeSnippet, CodeSnippetProps, Collapsible, CollapsibleProps, ColorPicker, ColorPickerLabels, ColorPickerProps, Column, Columns, ColumnsProps, Combobox, ComboboxLabels, ComboboxOption, ComboboxProps, CommandAction, CommandGroup, CommandItem, CommandMenu, CommandMenuProps, CommandPage, CommandScope, CommandStatus, Comparison, ComparisonProps, ContainedList, ContainedListItem, ContainedListItemProps, ContainedListProps, ContextMenu, ContextMenuItem, ContextMenuItemProps, ContextMenuProps, CopyButton, CopyButtonProps, DataList, DataListItem, DataListProps, DataTable, DataTableLabels, DataTableProps, DatePicker, DatePickerLabels, DatePickerProps, DateRange, DateRangePicker, DateRangePickerLabels, DateRangePickerProps, DateRangePreset, DismissableLayer, type DismissableLayerProps, Dock, DockItem, DockProps, Drawer, DrawerProps, Dropdown, DropdownItem, DropdownProps, Editable, EditableProps, EmptyState, EmptyStateProps, ErrorBoundary, Fab, FabAction, FabProps, Field, FieldProps, FileUploader, FileUploaderLabels, FileUploaderProps, Filter, FilterOption, FilterProps, FilterVariant, Flex, FlexProps, FocusScope, Form, FormConfig, FormProps, FormStore, FuzzyMatch, Grid, GridAlign, GridItem, GridItemProps, GridProps, Header, HeaderLabels, HeaderLink, HeaderPanel, HeaderPanelLabels, HeaderPanelProps, HeaderProps, Heading, HeadingLevel, HeadingProps, HeadingSize, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, IconButton, IconButtonProps, Image, ImageProps, Indicator, IndicatorPlacement, IndicatorProps, InfiniteScroll, InfiniteScrollProps, InlineLoading, InlineLoadingProps, InlineLoadingStatus, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, type InputGroupProps, InputProps, Item, ItemActions, ItemActionsProps, ItemContent, ItemContentProps, ItemDescription, ItemDescriptionProps, ItemMedia, ItemMediaProps, ItemProps, ItemTitle, ItemTitleProps, Join, JoinOrientation, JoinProps, Kbd, KbdProps, Label, LabelProps, LargeTitleHeader, LargeTitleHeaderProps, Link, type LinkComponent, type LinkComponentProps, LinkProps, List, ListItem, ListItemProps, ListProps, LogLevel, LogLine, LogViewer, LogViewerLabels, LogViewerProps, type Machine, type MachineConfig, Menu, MenuButton, MenuButtonItem, MenuButtonProps, MenuItem, MenuItemProps, MenuProps, MenuSeparator, MenuTrigger, MenuTriggerProps, Menubar, MenubarBaseProps, MenubarItem, MenubarMenu, MenubarProps, Modal, ModalProps, MultiSelect, MultiSelectLabels, MultiSelectOption, MultiSelectProps, NativeSelect, NativeSelectOption, NativeSelectProps, NavigationMenu, NavigationMenuItem, NavigationMenuProps, Notification, NotificationProps, NotificationVariant, NumberInput, NumberInputProps, OtpInput, OtpInputProps, OverflowMenu, OverflowMenuItem, OverflowMenuProps, PageHeader, PageHeaderProps, Pagination, PaginationLabels, PaginationProps, PasswordInput, PasswordInputLabels, PasswordInputProps, Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps, Portal, Presence, Progress, ProgressBar, ProgressBarProps, ProgressCircle, ProgressCircleProps, ProgressIndicator, ProgressIndicatorProps, ProgressProps, ProgressSize, ProgressStep, ProgressVariant, Prose, ProseProps, PullToRefresh, PullToRefreshProps, QrCode, QrCodeProps, RadialProgress, RadialProgressProps, RadialProgressSize, RadialProgressVariant, Radio, RadioCard, RadioCardGroup, RadioCardGroupProps, RadioCardProps, RadioGroup, RadioGroupProps, RadioProps, RatingGroup, RatingGroupLabels, RatingGroupProps, RelativeTime, RelativeTimeProps, ReorderItem, ReorderList, ReorderListProps, Resizable, ResizableProps, Responsive, ScrollArea, ScrollAreaProps, Search, SearchProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, ShellHeader, ShellHeaderAction, ShellHeaderBrand, ShellHeaderLabels, ShellHeaderNavItem, ShellHeaderNavLink, ShellHeaderNavMenu, ShellHeaderNavMenuItem, ShellHeaderProps, SideNav, SideNavGroup, SideNavItem, SideNavLinkProps, SideNavLinkSubItem, SideNavProps, SideNavSubItem, SideNavTone, Skeleton, SkeletonProps, SkipNavLink, SkipNavLinkProps, SkipNavTarget, SkipNavTargetProps, Slider, SliderProps, Slot, type SlotProps, SortDirection, SortState, Spacer, SpacerProps, Spinner, SpinnerProps, Stack, StackProps, type StandardSchemaV1, Stat, StatProps, Status, StatusProps, Step, StepState, Steps, StepsProps, StructuredList, StructuredListItem, StructuredListProps, SuspenseBoundary, Swap, SwapMode, SwapProps, SwipeAction, SwipeItem, SwipeItemProps, Switcher, SwitcherEntry, SwitcherLink, SwitcherProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsProps, TabsTrigger, TabsTriggerProps, Tag, TagProps, TagsInput, TagsInputProps, Text, TextProps, Textarea, TextareaProps, ThemeProvider, type ThemeProviderProps, Tile, TileProps, TimePicker, TimePickerProps, Timeline, TimelineItem, TimelineProps, ToastOptions, ToastProvider, ToastVariant, Toc, TocItem, TocProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupProps, ToggleProps, Toggletip, ToggletipPlacement, ToggletipProps, Tooltip, TooltipProps, TreeNode, TreeView, TreeViewProps, UploaderFile, type UseClipboardOptions, type UseClipboardReturn, type UseControllableSignalOptions, type UseDisclosureOptions, type UseDisclosureReturn, type UsePopoverOptions, type UsePopoverReturn, type UseTocFromRegionOptions, User, UserProps, VirtualList, VirtualListProps, VisuallyHidden, VisuallyHiddenProps, WheelPicker, WheelPickerOption, WheelPickerProps, applyTheme, batch, cn, composeRefs, computePosition, computed, createForm, createMachine, createScope, createStreamBuffer, dismissAllToasts, effect, fuzzyMatch, fuzzyScore, getLinkComponent, mergeProps, setLinkComponent, setTheme, signal, themePreloadScript, themeSignal, treeViewMessages, useAnchorPosition, useClipboard, useComputed, useControllableSignal, useDisclosure, useEffectPropSignal, useForm, useId, useMachine, useMediaQuery, usePopover, useRovingFocus, useScope, useScrollLock, useSignal, useSignalEffect, useSignals, useStreamBuffer, useTheme, useToast, useTocFromRegion, useTypeahead };
6583
+ export {
6584
+ Accordion,
6585
+ AccordionContent,
6586
+ AccordionItem,
6587
+ AccordionItemProps,
6588
+ AccordionProps,
6589
+ AccordionTrigger,
6590
+ ActionSheet,
6591
+ ActionSheetAction,
6592
+ ActionSheetProps,
6593
+ type AggregateKind,
6594
+ Alert,
6595
+ AlertDialog,
6596
+ AlertDialogLabels,
6597
+ AlertDialogProps,
6598
+ AlertProps,
6599
+ AppShell,
6600
+ AppShellProps,
6601
+ AspectRatio,
6602
+ AspectRatioProps,
6603
+ AutoGrid,
6604
+ AutoGridProps,
6605
+ Avatar,
6606
+ AvatarGroup,
6607
+ AvatarGroupLabels,
6608
+ AvatarGroupProps,
6609
+ AvatarProps,
6610
+ Badge,
6611
+ BadgeProps,
6612
+ Blockquote,
6613
+ BlockquoteProps,
6614
+ BottomSheet,
6615
+ BottomSheetProps,
6616
+ Breadcrumb,
6617
+ BreadcrumbItem,
6618
+ BreadcrumbProps,
6619
+ Button,
6620
+ ButtonGroup,
6621
+ ButtonGroupProps,
6622
+ ButtonProps,
6623
+ Calendar,
6624
+ CalendarLabels,
6625
+ CalendarProps,
6626
+ Card,
6627
+ CardContent,
6628
+ CardContentProps,
6629
+ CardFooter,
6630
+ CardFooterProps,
6631
+ CardHeader,
6632
+ CardHeaderProps,
6633
+ CardProps,
6634
+ CardTitle,
6635
+ CardTitleProps,
6636
+ Carousel,
6637
+ CarouselLabels,
6638
+ CarouselProps,
6639
+ Center,
6640
+ CenterProps,
6641
+ ChatBubble,
6642
+ ChatBubbleProps,
6643
+ ChatBubbleSide,
6644
+ Checkbox,
6645
+ CheckboxCard,
6646
+ CheckboxCardProps,
6647
+ CheckboxProps,
6648
+ Code,
6649
+ type CodeLang,
6650
+ CodeProps,
6651
+ CodeSnippet,
6652
+ CodeSnippetProps,
6653
+ Collapsible,
6654
+ CollapsibleProps,
6655
+ type ColorFormat,
6656
+ ColorPicker,
6657
+ ColorPickerLabels,
6658
+ ColorPickerProps,
6659
+ Column,
6660
+ type ColumnGroup,
6661
+ ColumnSettings,
6662
+ type ColumnState,
6663
+ Columns,
6664
+ ColumnsProps,
6665
+ Combobox,
6666
+ ComboboxLabels,
6667
+ type ComboboxOption,
6668
+ ComboboxProps,
6669
+ CommandAction,
6670
+ CommandGroup,
6671
+ CommandItem,
6672
+ CommandMenu,
6673
+ CommandMenuProps,
6674
+ CommandPage,
6675
+ CommandScope,
6676
+ CommandStatus,
6677
+ Comparison,
6678
+ ComparisonProps,
6679
+ ContainedList,
6680
+ ContainedListItem,
6681
+ ContainedListItemProps,
6682
+ ContainedListProps,
6683
+ ContextMenu,
6684
+ ContextMenuItem,
6685
+ ContextMenuItemProps,
6686
+ ContextMenuProps,
6687
+ CopyButton,
6688
+ CopyButtonProps,
6689
+ DataList,
6690
+ DataListItem,
6691
+ DataListProps,
6692
+ DataTable,
6693
+ DataTableLabels,
6694
+ DataTableProps,
6695
+ DataTableServer,
6696
+ DatePicker,
6697
+ DatePickerLabels,
6698
+ DatePickerProps,
6699
+ DateRange,
6700
+ DateRangePicker,
6701
+ DateRangePickerLabels,
6702
+ DateRangePickerProps,
6703
+ DateRangePreset,
6704
+ DismissableLayer,
6705
+ type DismissableLayerProps,
6706
+ Dock,
6707
+ DockItem,
6708
+ DockProps,
6709
+ Drawer,
6710
+ DrawerProps,
6711
+ Dropdown,
6712
+ DropdownItem,
6713
+ DropdownMenuItem,
6714
+ DropdownProps,
6715
+ DropdownSeparatorItem,
6716
+ Editable,
6717
+ EditableProps,
6718
+ EmptyState,
6719
+ EmptyStateProps,
6720
+ ErrorBoundary,
6721
+ Fab,
6722
+ FabAction,
6723
+ FabProps,
6724
+ Field,
6725
+ FieldProps,
6726
+ FileUploader,
6727
+ FileUploaderLabels,
6728
+ FileUploaderProps,
6729
+ Filter,
6730
+ FilterOption,
6731
+ FilterProps,
6732
+ FilterVariant,
6733
+ Flex,
6734
+ FlexProps,
6735
+ FocusScope,
6736
+ Form,
6737
+ FormConfig,
6738
+ FormProps,
6739
+ FormStore,
6740
+ FuzzyMatch,
6741
+ Grid,
6742
+ GridAlign,
6743
+ GridItem,
6744
+ GridItemProps,
6745
+ GridProps,
6746
+ Header,
6747
+ HeaderLabels,
6748
+ HeaderLink,
6749
+ HeaderPanel,
6750
+ HeaderPanelLabels,
6751
+ HeaderPanelProps,
6752
+ HeaderProps,
6753
+ Heading,
6754
+ HeadingLevel,
6755
+ HeadingProps,
6756
+ HeadingSize,
6757
+ HoverCard,
6758
+ HoverCardContent,
6759
+ HoverCardContentProps,
6760
+ HoverCardProps,
6761
+ HoverCardTrigger,
6762
+ HoverCardTriggerProps,
6763
+ IconButton,
6764
+ IconButtonProps,
6765
+ Image,
6766
+ ImageProps,
6767
+ Indicator,
6768
+ IndicatorPlacement,
6769
+ IndicatorProps,
6770
+ InfiniteScroll,
6771
+ InfiniteScrollProps,
6772
+ InlineLoading,
6773
+ InlineLoadingProps,
6774
+ InlineLoadingStatus,
6775
+ Input,
6776
+ InputGroup,
6777
+ InputGroupAddon,
6778
+ type InputGroupAddonProps,
6779
+ type InputGroupProps,
6780
+ InputProps,
6781
+ Item,
6782
+ ItemActions,
6783
+ ItemActionsProps,
6784
+ ItemContent,
6785
+ ItemContentProps,
6786
+ ItemDescription,
6787
+ ItemDescriptionProps,
6788
+ ItemMedia,
6789
+ ItemMediaProps,
6790
+ ItemProps,
6791
+ ItemTitle,
6792
+ ItemTitleProps,
6793
+ Join,
6794
+ JoinOrientation,
6795
+ JoinProps,
6796
+ Kbd,
6797
+ KbdProps,
6798
+ Label,
6799
+ LabelProps,
6800
+ LargeTitleHeader,
6801
+ LargeTitleHeaderProps,
6802
+ Link,
6803
+ type LinkComponent,
6804
+ type LinkComponentProps,
6805
+ LinkProps,
6806
+ List,
6807
+ ListItem,
6808
+ ListItemProps,
6809
+ ListProps,
6810
+ LogLevel,
6811
+ LogLine,
6812
+ LogViewer,
6813
+ LogViewerLabels,
6814
+ LogViewerProps,
6815
+ Logo,
6816
+ LogoProps,
6817
+ LogoVariant,
6818
+ type Machine,
6819
+ type MachineConfig,
6820
+ Menu,
6821
+ MenuButton,
6822
+ MenuButtonItem,
6823
+ MenuButtonProps,
6824
+ MenuItem,
6825
+ MenuItemProps,
6826
+ MenuProps,
6827
+ MenuSeparator,
6828
+ MenuTrigger,
6829
+ MenuTriggerProps,
6830
+ Menubar,
6831
+ MenubarBaseProps,
6832
+ MenubarItem,
6833
+ MenubarMenu,
6834
+ MenubarProps,
6835
+ Modal,
6836
+ ModalProps,
6837
+ MultiSelect,
6838
+ MultiSelectLabels,
6839
+ type MultiSelectOption,
6840
+ MultiSelectProps,
6841
+ NativeSelect,
6842
+ NativeSelectOption,
6843
+ NativeSelectProps,
6844
+ NavigationMenu,
6845
+ NavigationMenuItem,
6846
+ NavigationMenuProps,
6847
+ Notification,
6848
+ NotificationProps,
6849
+ NotificationVariant,
6850
+ NumberInput,
6851
+ NumberInputProps,
6852
+ OtpInput,
6853
+ OtpInputProps,
6854
+ OverflowMenu,
6855
+ OverflowMenuItem,
6856
+ OverflowMenuProps,
6857
+ PageHeader,
6858
+ PageHeaderProps,
6859
+ Pagination,
6860
+ PaginationLabels,
6861
+ PaginationProps,
6862
+ PasswordInput,
6863
+ PasswordInputLabels,
6864
+ PasswordInputProps,
6865
+ type PinSide,
6866
+ Popover,
6867
+ PopoverContent,
6868
+ PopoverContentProps,
6869
+ PopoverProps,
6870
+ PopoverTrigger,
6871
+ PopoverTriggerProps,
6872
+ Portal,
6873
+ Presence,
6874
+ Progress,
6875
+ ProgressBar,
6876
+ ProgressBarProps,
6877
+ ProgressCircle,
6878
+ ProgressCircleProps,
6879
+ ProgressIndicator,
6880
+ ProgressIndicatorProps,
6881
+ ProgressProps,
6882
+ ProgressSize,
6883
+ ProgressStep,
6884
+ ProgressVariant,
6885
+ Prose,
6886
+ ProseProps,
6887
+ PullToRefresh,
6888
+ PullToRefreshProps,
6889
+ QrCode,
6890
+ QrCodeProps,
6891
+ RadialProgress,
6892
+ RadialProgressProps,
6893
+ RadialProgressSize,
6894
+ RadialProgressVariant,
6895
+ Radio,
6896
+ RadioCard,
6897
+ RadioCardGroup,
6898
+ RadioCardGroupProps,
6899
+ RadioCardProps,
6900
+ RadioGroup,
6901
+ RadioGroupProps,
6902
+ RadioProps,
6903
+ RatingGroup,
6904
+ RatingGroupLabels,
6905
+ RatingGroupProps,
6906
+ RelativeTime,
6907
+ RelativeTimeProps,
6908
+ ReorderItem,
6909
+ ReorderList,
6910
+ ReorderListProps,
6911
+ Resizable,
6912
+ ResizableProps,
6913
+ Responsive,
6914
+ RowAction,
6915
+ ScrollArea,
6916
+ ScrollAreaProps,
6917
+ Search,
6918
+ SearchProps,
6919
+ SegmentedControl,
6920
+ SegmentedControlOption,
6921
+ SegmentedControlProps,
6922
+ Select,
6923
+ SelectOption,
6924
+ SelectProps,
6925
+ Separator,
6926
+ SeparatorProps,
6927
+ Sheet,
6928
+ SheetProps,
6929
+ ShellHeader,
6930
+ ShellHeaderAction,
6931
+ ShellHeaderBrand,
6932
+ ShellHeaderLabels,
6933
+ ShellHeaderNavItem,
6934
+ ShellHeaderNavLink,
6935
+ ShellHeaderNavMenu,
6936
+ ShellHeaderNavMenuItem,
6937
+ ShellHeaderProps,
6938
+ SideNav,
6939
+ SideNavGroup,
6940
+ SideNavItem,
6941
+ SideNavLinkProps,
6942
+ SideNavLinkSubItem,
6943
+ SideNavProps,
6944
+ SideNavSubItem,
6945
+ SideNavTone,
6946
+ Skeleton,
6947
+ SkeletonProps,
6948
+ SkipNavLink,
6949
+ SkipNavLinkProps,
6950
+ SkipNavTarget,
6951
+ SkipNavTargetProps,
6952
+ Slider,
6953
+ SliderProps,
6954
+ Slot,
6955
+ type SlotProps,
6956
+ SortDirection,
6957
+ SortKey,
6958
+ SortState,
6959
+ Spacer,
6960
+ SpacerProps,
6961
+ Spinner,
6962
+ SpinnerProps,
6963
+ Stack,
6964
+ StackProps,
6965
+ type StandardSchemaV1,
6966
+ Stat,
6967
+ StatProps,
6968
+ Status,
6969
+ StatusProps,
6970
+ Step,
6971
+ StepState,
6972
+ Steps,
6973
+ StepsProps,
6974
+ StructuredList,
6975
+ StructuredListItem,
6976
+ StructuredListProps,
6977
+ SuspenseBoundary,
6978
+ Swap,
6979
+ SwapMode,
6980
+ SwapProps,
6981
+ SwipeAction,
6982
+ SwipeItem,
6983
+ SwipeItemProps,
6984
+ Toggle as Switch,
6985
+ Toggle,
6986
+ type ToggleProps as SwitchProps,
6987
+ ToggleProps,
6988
+ Switcher,
6989
+ SwitcherEntry,
6990
+ SwitcherLink,
6991
+ SwitcherProps,
6992
+ TableQuery,
6993
+ Tabs,
6994
+ TabsContent,
6995
+ TabsContentProps,
6996
+ TabsList,
6997
+ TabsProps,
6998
+ TabsTrigger,
6999
+ TabsTriggerProps,
7000
+ Tag,
7001
+ TagProps,
7002
+ TagsInput,
7003
+ TagsInputProps,
7004
+ Text,
7005
+ TextProps,
7006
+ Textarea,
7007
+ TextareaProps,
7008
+ ThemeProvider,
7009
+ type ThemeProviderProps,
7010
+ Tile,
7011
+ TileProps,
7012
+ TimePicker,
7013
+ TimePickerProps,
7014
+ Timeline,
7015
+ TimelineItem,
7016
+ TimelineProps,
7017
+ ToastOptions,
7018
+ ToastProvider,
7019
+ ToastVariant,
7020
+ Toc,
7021
+ TocItem,
7022
+ TocProps,
7023
+ ToggleGroup,
7024
+ ToggleGroupItem,
7025
+ ToggleGroupProps,
7026
+ Toggletip,
7027
+ ToggletipPlacement,
7028
+ ToggletipProps,
7029
+ Tooltip,
7030
+ TooltipProps,
7031
+ TreeNode,
7032
+ TreeView,
7033
+ TreeViewProps,
7034
+ UploaderFile,
7035
+ type UseClipboardOptions,
7036
+ type UseClipboardReturn,
7037
+ type UseControllableSignalOptions,
7038
+ type UseDisclosureOptions,
7039
+ type UseDisclosureReturn,
7040
+ type UsePopoverOptions,
7041
+ type UsePopoverReturn,
7042
+ type UseTocFromRegionOptions,
7043
+ User,
7044
+ UserProps,
7045
+ VirtualList,
7046
+ VirtualListProps,
7047
+ VisuallyHidden,
7048
+ VisuallyHiddenProps,
7049
+ WheelPicker,
7050
+ WheelPickerOption,
7051
+ WheelPickerProps,
7052
+ applyTheme,
7053
+ batch,
7054
+ cn,
7055
+ composeRefs,
7056
+ computePosition,
7057
+ computed,
7058
+ createForm,
7059
+ createMachine,
7060
+ createScope,
7061
+ createStreamBuffer,
7062
+ dismissAllToasts,
7063
+ effect,
7064
+ fuzzyMatch,
7065
+ fuzzyScore,
7066
+ getLinkComponent,
7067
+ mergeProps,
7068
+ setLinkComponent,
7069
+ setTheme,
7070
+ signal,
7071
+ themePreloadScript,
7072
+ themeSignal,
7073
+ treeViewMessages,
7074
+ useAnchorPosition,
7075
+ useClipboard,
7076
+ useComputed,
7077
+ useControllableSignal,
7078
+ useDisclosure,
7079
+ useEffectPropSignal,
7080
+ useForm,
7081
+ useId,
7082
+ useMachine,
7083
+ useMediaQuery,
7084
+ usePopover,
7085
+ useRovingFocus,
7086
+ useScope,
7087
+ useScrollLock,
7088
+ useSignal,
7089
+ useSignalEffect,
7090
+ useSignals,
7091
+ useStreamBuffer,
7092
+ useTheme,
7093
+ useToast,
7094
+ useTocFromRegion,
7095
+ useTypeahead,
7096
+ };