@cascivo/react 1.0.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 +5 -4
  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 -39
  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 -272
  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 -170
  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 -398
  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 -224
  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 -110
  105. package/dist/dropdown/dropdown.module.js +1 -9
  106. package/dist/editable/editable.js +1 -76
  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 -53
  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 -123
  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 +772 -25
  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 -56
  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 -39
  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 -272
  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 -170
  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 -398
  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 -224
  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 -110
  293. package/dist/node/dropdown/dropdown.module.js +1 -9
  294. package/dist/node/editable/editable.js +1 -76
  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 -53
  301. package/dist/node/field/field.module.js +1 -7
  302. package/dist/node/file-uploader/file-uploader.js +1 -123
  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 -56
  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 -148
  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 -49
  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 -96
  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 -73
  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 -30
  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 -68
  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 -58
  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 -64
  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 -42
  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 -148
  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 -49
  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 -96
  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 -73
  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 -30
  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 -68
  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 -58
  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 -64
  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 -42
  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 +3 -3
  645. package/readme.body.md +3 -2
package/dist/index.d.ts CHANGED
@@ -368,6 +368,45 @@ declare function Separator({
368
368
  className,
369
369
  ...props
370
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;
371
410
  interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
372
411
  /**
373
412
  * Severity tone: `default` (neutral), `info`, `success`, `warning` or `destructive`. Sets
@@ -556,6 +595,16 @@ interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
556
595
  hint?: string;
557
596
  error?: string;
558
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;
559
608
  }
560
609
  /**
561
610
  * `forwardRef` so `ref` reaches the underlying `<textarea>` — and so it is TYPED.
@@ -1641,7 +1690,19 @@ interface OverflowMenuProps {
1641
1690
  */
1642
1691
  label?: string;
1643
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
+ */
1644
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;
1645
1706
  className?: string;
1646
1707
  }
1647
1708
  declare function OverflowMenu({
@@ -1652,6 +1713,7 @@ declare function OverflowMenu({
1652
1713
  label,
1653
1714
  size,
1654
1715
  disabled,
1716
+ tabIndex,
1655
1717
  className
1656
1718
  }: OverflowMenuProps): import("react").JSX.Element;
1657
1719
  interface SearchProps {
@@ -1798,12 +1860,94 @@ interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, '
1798
1860
  * incomplete, which is why the rule is a guard and not a checklist.
1799
1861
  */
1800
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
+ }
1801
1925
  interface Column<Row> {
1802
1926
  key: string;
1803
1927
  header: string;
1804
1928
  sortable?: boolean;
1805
1929
  render?: (row: Row) => ReactNode;
1806
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);
1807
1951
  /**
1808
1952
  * Preferred column width, any CSS length (`'8rem'`, `'120px'`, `'12%'`). Set it on
1809
1953
  * identifier-shaped columns (ids, statuses, dates) so they stop stealing space from the
@@ -1841,10 +1985,64 @@ interface Column<Row> {
1841
1985
  minWidth?: string;
1842
1986
  }
1843
1987
  type SortDirection = 'asc' | 'desc';
1844
- interface SortState {
1988
+ /** One sorted column. */
1989
+ interface SortKey {
1845
1990
  key: string;
1846
1991
  direction: SortDirection;
1847
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
+ }
1848
2046
  interface DataTableLabels {
1849
2047
  search?: string;
1850
2048
  empty?: string;
@@ -1854,6 +2052,31 @@ interface DataTableLabels {
1854
2052
  expandRow?: string;
1855
2053
  previousPage?: string;
1856
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;
1857
2080
  }
1858
2081
  interface DataTableProps<Row> {
1859
2082
  columns: Column<Row>[];
@@ -1870,9 +2093,15 @@ interface DataTableProps<Row> {
1870
2093
  * @see the component manifest
1871
2094
  */
1872
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
+ */
1873
2100
  pagination?: {
1874
2101
  pageSize: number;
1875
2102
  pageSizeOptions?: number[];
2103
+ page?: number;
2104
+ onPageChange?: (page: number) => void;
1876
2105
  };
1877
2106
  selection?: {
1878
2107
  mode: 'single' | 'multi';
@@ -1885,6 +2114,109 @@ interface DataTableProps<Row> {
1885
2114
  onClick: (selectedIds: string[]) => void;
1886
2115
  }[];
1887
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
+ };
1888
2220
  /**
1889
2221
  * Row height preset.
1890
2222
  *
@@ -1941,17 +2273,16 @@ interface DataTableProps<Row> {
1941
2273
  */
1942
2274
  virtualized?: boolean;
1943
2275
  /**
1944
- * Fixed row height in px, used to compute the virtualized window.
2276
+ * Row height in px for the virtualized window.
1945
2277
  *
1946
- * @defaultValue `40`
1947
- * @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.
1948
2281
  */
1949
2282
  rowHeight?: number;
1950
2283
  /**
1951
- * Number of rows rendered in the virtualized window.
1952
- *
1953
- * @defaultValue `20`
1954
- * @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.
1955
2286
  */
1956
2287
  windowSize?: number;
1957
2288
  /**
@@ -1975,6 +2306,26 @@ declare function DataTable<Row>({
1975
2306
  selection,
1976
2307
  batchActions,
1977
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,
1978
2329
  density,
1979
2330
  zebra,
1980
2331
  stickyHeader,
@@ -2050,6 +2401,12 @@ interface CommandMenuProps {
2050
2401
  open: boolean;
2051
2402
  onOpenChange: (open: boolean) => void;
2052
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
+ */
2053
2410
  placeholder?: string;
2054
2411
  /**
2055
2412
  * Text shown when no commands match the query.
@@ -2196,22 +2553,49 @@ declare function Form<T extends Record<string, unknown>>({
2196
2553
  className,
2197
2554
  ...props
2198
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. */
2199
2573
  interface ComboboxOption {
2200
- value: string;
2201
2574
  label: string;
2575
+ value: string;
2202
2576
  /**
2203
- * 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.
2204
2578
  *
2205
2579
  * @defaultValue `false`
2206
2580
  * @see the component manifest
2207
2581
  */
2208
2582
  disabled?: boolean;
2583
+ /** Optional group heading this option belongs to. */
2584
+ group?: string;
2209
2585
  }
2210
2586
  interface ComboboxLabels {
2211
2587
  placeholder?: string;
2212
2588
  empty?: string;
2213
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
+ */
2214
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;
2215
2599
  }
2216
2600
  interface ComboboxProps {
2217
2601
  /**
@@ -2240,7 +2624,9 @@ interface ComboboxProps {
2240
2624
  */
2241
2625
  clearable?: boolean;
2242
2626
  /**
2243
- * 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).
2244
2630
  *
2245
2631
  * @defaultValue `true`
2246
2632
  * @see the component manifest
@@ -2260,7 +2646,49 @@ interface ComboboxProps {
2260
2646
  hint?: string;
2261
2647
  error?: string;
2262
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
+ */
2263
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;
2264
2692
  labels?: ComboboxLabels;
2265
2693
  className?: string;
2266
2694
  id?: string;
@@ -2278,6 +2706,16 @@ declare function Combobox({
2278
2706
  error,
2279
2707
  size,
2280
2708
  disabled,
2709
+ loading,
2710
+ onSearchChange,
2711
+ filter,
2712
+ creatable,
2713
+ onCreate,
2714
+ name,
2715
+ required,
2716
+ open,
2717
+ defaultOpen,
2718
+ onOpenChange,
2281
2719
  labels,
2282
2720
  className,
2283
2721
  id,
@@ -2290,6 +2728,8 @@ interface DatePickerLabels {
2290
2728
  previousMonth?: string;
2291
2729
  nextMonth?: string;
2292
2730
  clear?: string;
2731
+ open?: string;
2732
+ today?: string;
2293
2733
  }
2294
2734
  interface DatePickerProps {
2295
2735
  /**
@@ -2311,6 +2751,8 @@ interface DatePickerProps {
2311
2751
  onValueChange?: (value: string | undefined) => void;
2312
2752
  min?: string;
2313
2753
  max?: string;
2754
+ /** Rejects individual dates the bounds allow — holidays, weekends, taken slots. */
2755
+ disabledDate?: (date: Date) => boolean;
2314
2756
  /**
2315
2757
  * Shows a clear button
2316
2758
  *
@@ -2345,6 +2787,30 @@ interface DatePickerProps {
2345
2787
  * @see the component manifest
2346
2788
  */
2347
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;
2348
2814
  labels?: DatePickerLabels;
2349
2815
  className?: string;
2350
2816
  id?: string;
@@ -2355,6 +2821,7 @@ declare function DatePicker({
2355
2821
  onValueChange,
2356
2822
  min,
2357
2823
  max,
2824
+ disabledDate,
2358
2825
  clearable,
2359
2826
  label,
2360
2827
  ariaLabel,
@@ -2362,6 +2829,13 @@ declare function DatePicker({
2362
2829
  error,
2363
2830
  size,
2364
2831
  disabled,
2832
+ typeable,
2833
+ format,
2834
+ showToday,
2835
+ name,
2836
+ required,
2837
+ open,
2838
+ onOpenChange,
2365
2839
  labels,
2366
2840
  className,
2367
2841
  id,
@@ -2793,16 +3267,29 @@ interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
2793
3267
  * incomplete, which is why the rule is a guard and not a checklist.
2794
3268
  */
2795
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. */
2796
3281
  interface MultiSelectOption {
2797
3282
  label: string;
2798
3283
  value: string;
2799
3284
  /**
2800
- * 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.
2801
3286
  *
2802
3287
  * @defaultValue `false`
2803
3288
  * @see the component manifest
2804
3289
  */
2805
3290
  disabled?: boolean;
3291
+ /** Optional group heading this option belongs to. */
3292
+ group?: string;
2806
3293
  }
2807
3294
  interface MultiSelectLabels {
2808
3295
  label?: string;
@@ -2810,23 +3297,155 @@ interface MultiSelectLabels {
2810
3297
  selected?: (count: number) => string;
2811
3298
  search?: string;
2812
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;
2813
3308
  }
2814
- interface MultiSelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
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;
2815
3323
  options: MultiSelectOption[];
2816
- value: string[];
2817
- onValueChange: (v: string[]) => void;
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;
2818
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
+ */
2819
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.
3410
+ *
3411
+ * @defaultValue `'md'`
3412
+ * @see the component manifest
3413
+ */
3414
+ size?: 'sm' | 'md' | 'lg';
3415
+ /** Submitted with a surrounding form — one hidden input per selected value. */
3416
+ name?: string;
2820
3417
  labels?: MultiSelectLabels;
3418
+ id?: string;
2821
3419
  }
2822
3420
  declare function MultiSelect({
2823
3421
  options,
2824
3422
  value,
3423
+ defaultValue,
2825
3424
  onValueChange,
2826
3425
  placeholder,
3426
+ label,
3427
+ ariaLabel,
3428
+ hint,
3429
+ error,
3430
+ display,
2827
3431
  disabled,
3432
+ clearable,
3433
+ selectAll,
3434
+ max,
3435
+ creatable,
3436
+ onCreate,
3437
+ loading,
3438
+ onSearchChange,
3439
+ filter,
3440
+ searchable,
3441
+ size,
3442
+ name,
2828
3443
  labels,
2829
3444
  className,
3445
+ id,
3446
+ 'aria-labelledby': ariaLabelledBy,
3447
+ 'aria-describedby': ariaDescribedBy,
3448
+ 'aria-invalid': ariaInvalid,
2830
3449
  ...props
2831
3450
  }: MultiSelectProps): import("react").JSX.Element;
2832
3451
  interface TagsInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
@@ -2925,6 +3544,12 @@ interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
2925
3544
  value: string;
2926
3545
  onValueChange: (v: string) => void;
2927
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
+ */
2928
3553
  disabled?: boolean;
2929
3554
  }
2930
3555
  declare function SegmentedControl({
@@ -3042,9 +3667,11 @@ declare function Editable({
3042
3667
  onCancel,
3043
3668
  className,
3044
3669
  id,
3670
+ 'aria-label': ariaLabel,
3045
3671
  'aria-labelledby': ariaLabelledBy,
3046
3672
  'aria-describedby': ariaDescribedBy,
3047
3673
  'aria-invalid': ariaInvalid,
3674
+ tabIndex,
3048
3675
  ...props
3049
3676
  }: EditableProps): import("react").JSX.Element;
3050
3677
  interface RadioCardGroupProps {
@@ -4008,6 +4635,12 @@ interface ToggleGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChang
4008
4635
  */
4009
4636
  orientation?: 'horizontal' | 'vertical';
4010
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
+ */
4011
4644
  disabled?: boolean;
4012
4645
  }
4013
4646
  declare const ToggleGroup: import("react").ForwardRefExoticComponent<ToggleGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -4167,6 +4800,12 @@ interface MenuButtonProps {
4167
4800
  items: MenuButtonItem[];
4168
4801
  variant?: 'primary' | 'secondary' | 'ghost';
4169
4802
  size?: 'sm' | 'md' | 'lg';
4803
+ /**
4804
+ * Disables the trigger
4805
+ *
4806
+ * @defaultValue `false`
4807
+ * @see the component manifest
4808
+ */
4170
4809
  disabled?: boolean;
4171
4810
  align?: 'start' | 'end';
4172
4811
  labels?: {
@@ -4294,13 +4933,34 @@ interface TreeNode {
4294
4933
  label: ReactNode;
4295
4934
  icon?: ReactNode;
4296
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;
4297
4951
  }
4298
4952
  interface TreeViewProps {
4299
4953
  items: TreeNode[];
4300
4954
  selectionMode?: 'single' | 'multi';
4301
4955
  selected?: string | string[];
4302
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
+ */
4303
4961
  onSelectChange?: (selected: string | string[]) => void;
4962
+ /** Called with the new selection. */
4963
+ onValueChange?: (selected: string | string[]) => void;
4304
4964
  expanded?: string[];
4305
4965
  defaultExpanded?: string[];
4306
4966
  onExpandedChange?: (expanded: string[]) => void;
@@ -4326,6 +4986,7 @@ declare function TreeView({
4326
4986
  selected,
4327
4987
  defaultSelected,
4328
4988
  onSelectChange,
4989
+ onValueChange,
4329
4990
  expanded,
4330
4991
  defaultExpanded,
4331
4992
  onExpandedChange,
@@ -4554,6 +5215,8 @@ declare function ItemActions({
4554
5215
  interface CalendarLabels {
4555
5216
  previousMonth?: string;
4556
5217
  nextMonth?: string;
5218
+ today?: string;
5219
+ weekNumber?: string;
4557
5220
  }
4558
5221
  interface CalendarProps {
4559
5222
  value?: Date | null;
@@ -4572,6 +5235,15 @@ interface CalendarProps {
4572
5235
  size?: 'sm' | 'md' | 'lg';
4573
5236
  labels?: CalendarLabels;
4574
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;
4575
5247
  /** Highlight predicate for range previews (date-range-picker). */
4576
5248
  isInRange?: (date: Date) => boolean;
4577
5249
  /** Range endpoint markers for styling. */
@@ -4595,6 +5267,20 @@ interface CalendarProps {
4595
5267
  * @see the component manifest
4596
5268
  */
4597
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;
4598
5284
  }
4599
5285
  declare function Calendar({
4600
5286
  value,
@@ -4607,6 +5293,8 @@ declare function Calendar({
4607
5293
  size,
4608
5294
  labels,
4609
5295
  className,
5296
+ ariaLabel,
5297
+ label,
4610
5298
  isInRange,
4611
5299
  isRangeStart,
4612
5300
  isRangeEnd,
@@ -4614,7 +5302,9 @@ declare function Calendar({
4614
5302
  month,
4615
5303
  year,
4616
5304
  onViewChange,
4617
- hideNav
5305
+ hideNav,
5306
+ showToday,
5307
+ showWeekNumbers
4618
5308
  }: CalendarProps): import("react").JSX.Element;
4619
5309
  interface DateRange {
4620
5310
  start: Date;
@@ -4675,17 +5365,18 @@ declare function DateRangePicker({
4675
5365
  labels,
4676
5366
  className
4677
5367
  }: DateRangePickerProps): import("react").JSX.Element;
5368
+ /** The output formats an adopter can ask for. */
5369
+ type ColorFormat = 'hex' | 'rgb' | 'hsl';
4678
5370
  interface ColorPickerLabels {
4679
5371
  hue?: string;
4680
- /**
4681
- * When true, enables alpha (opacity) selection.
4682
- *
4683
- * @defaultValue `true`
4684
- * @see the component manifest
4685
- */
5372
+ /** Accessible name for the alpha slider. */
4686
5373
  alpha?: string;
4687
5374
  colorArea?: string;
5375
+ saturation?: string;
5376
+ brightness?: string;
4688
5377
  eyedropper?: string;
5378
+ presets?: string;
5379
+ hex?: string;
4689
5380
  }
4690
5381
  interface ColorPickerProps {
4691
5382
  /**
@@ -4712,7 +5403,21 @@ interface ColorPickerProps {
4712
5403
  defaultValue?: string;
4713
5404
  onValueChange?: (value: string) => void;
4714
5405
  presets?: string[];
5406
+ /**
5407
+ * When true, enables alpha (opacity) selection.
5408
+ *
5409
+ * @defaultValue `true`
5410
+ * @see the component manifest
5411
+ */
4715
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;
4716
5421
  label?: string;
4717
5422
  /**
4718
5423
  * Invisible accessible name, for when a visible element outside this component already
@@ -4731,23 +5436,27 @@ interface ColorPickerProps {
4731
5436
  * @see the component manifest
4732
5437
  */
4733
5438
  disabled?: boolean;
5439
+ /** Submitted with a surrounding form — a hidden input carrying the current value. */
5440
+ name?: string;
4734
5441
  size?: 'sm' | 'md' | 'lg';
4735
5442
  className?: string;
4736
5443
  labels?: ColorPickerLabels;
4737
5444
  }
4738
5445
  declare function ColorPicker({
5446
+ id,
4739
5447
  value,
4740
5448
  defaultValue,
4741
5449
  onValueChange,
4742
5450
  presets,
4743
5451
  alpha,
5452
+ format,
4744
5453
  label,
4745
5454
  ariaLabel,
4746
5455
  disabled,
5456
+ name,
4747
5457
  size,
4748
5458
  className,
4749
5459
  labels,
4750
- id,
4751
5460
  'aria-labelledby': ariaLabelledBy,
4752
5461
  'aria-describedby': ariaDescribedBy,
4753
5462
  'aria-invalid': ariaInvalid
@@ -4756,6 +5465,8 @@ interface CarouselLabels {
4756
5465
  region?: string;
4757
5466
  previous?: string;
4758
5467
  next?: string;
5468
+ play?: string;
5469
+ pause?: string;
4759
5470
  }
4760
5471
  interface CarouselProps {
4761
5472
  children?: ReactNode;
@@ -4776,6 +5487,14 @@ interface CarouselProps {
4776
5487
  * @see the component manifest
4777
5488
  */
4778
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;
4779
5498
  className?: string;
4780
5499
  labels?: CarouselLabels;
4781
5500
  }
@@ -4786,6 +5505,7 @@ declare function Carousel({
4786
5505
  defaultIndex,
4787
5506
  onIndexChange,
4788
5507
  loop,
5508
+ autoplay,
4789
5509
  className,
4790
5510
  labels
4791
5511
  }: CarouselProps): import("react").JSX.Element;
@@ -5186,6 +5906,10 @@ interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>
5186
5906
  * A styled native `<select>` — keeps the platform's open/close, keyboard, and form behavior, and
5187
5907
  * layers on a custom chevron and focus/invalid rings via CSS only. No JS interactivity, so no
5188
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.
5189
5913
  */
5190
5914
  /**
5191
5915
  * `forwardRef` so `ref` reaches the underlying `<select>` — and so it is TYPED. See
@@ -5676,12 +6400,22 @@ interface GridProps extends HTMLAttributes<HTMLDivElement> {
5676
6400
  align?: GridAlign;
5677
6401
  /** Inline-axis alignment of items within their cells (`justify-items`). Defaults to `stretch`. */
5678
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;
5679
6412
  }
5680
6413
  declare function Grid({
5681
6414
  cols,
5682
6415
  gap,
5683
6416
  align,
5684
6417
  justify,
6418
+ alignRows,
5685
6419
  className,
5686
6420
  style,
5687
6421
  children,
@@ -5856,6 +6590,7 @@ export {
5856
6590
  ActionSheet,
5857
6591
  ActionSheetAction,
5858
6592
  ActionSheetProps,
6593
+ type AggregateKind,
5859
6594
  Alert,
5860
6595
  AlertDialog,
5861
6596
  AlertDialogLabels,
@@ -5917,15 +6652,19 @@ export {
5917
6652
  CodeSnippetProps,
5918
6653
  Collapsible,
5919
6654
  CollapsibleProps,
6655
+ type ColorFormat,
5920
6656
  ColorPicker,
5921
6657
  ColorPickerLabels,
5922
6658
  ColorPickerProps,
5923
6659
  Column,
6660
+ type ColumnGroup,
6661
+ ColumnSettings,
6662
+ type ColumnState,
5924
6663
  Columns,
5925
6664
  ColumnsProps,
5926
6665
  Combobox,
5927
6666
  ComboboxLabels,
5928
- ComboboxOption,
6667
+ type ComboboxOption,
5929
6668
  ComboboxProps,
5930
6669
  CommandAction,
5931
6670
  CommandGroup,
@@ -5953,6 +6692,7 @@ export {
5953
6692
  DataTable,
5954
6693
  DataTableLabels,
5955
6694
  DataTableProps,
6695
+ DataTableServer,
5956
6696
  DatePicker,
5957
6697
  DatePickerLabels,
5958
6698
  DatePickerProps,
@@ -6072,6 +6812,9 @@ export {
6072
6812
  LogViewer,
6073
6813
  LogViewerLabels,
6074
6814
  LogViewerProps,
6815
+ Logo,
6816
+ LogoProps,
6817
+ LogoVariant,
6075
6818
  type Machine,
6076
6819
  type MachineConfig,
6077
6820
  Menu,
@@ -6093,7 +6836,7 @@ export {
6093
6836
  ModalProps,
6094
6837
  MultiSelect,
6095
6838
  MultiSelectLabels,
6096
- MultiSelectOption,
6839
+ type MultiSelectOption,
6097
6840
  MultiSelectProps,
6098
6841
  NativeSelect,
6099
6842
  NativeSelectOption,
@@ -6119,6 +6862,7 @@ export {
6119
6862
  PasswordInput,
6120
6863
  PasswordInputLabels,
6121
6864
  PasswordInputProps,
6865
+ type PinSide,
6122
6866
  Popover,
6123
6867
  PopoverContent,
6124
6868
  PopoverContentProps,
@@ -6167,6 +6911,7 @@ export {
6167
6911
  Resizable,
6168
6912
  ResizableProps,
6169
6913
  Responsive,
6914
+ RowAction,
6170
6915
  ScrollArea,
6171
6916
  ScrollAreaProps,
6172
6917
  Search,
@@ -6209,6 +6954,7 @@ export {
6209
6954
  Slot,
6210
6955
  type SlotProps,
6211
6956
  SortDirection,
6957
+ SortKey,
6212
6958
  SortState,
6213
6959
  Spacer,
6214
6960
  SpacerProps,
@@ -6243,6 +6989,7 @@ export {
6243
6989
  SwitcherEntry,
6244
6990
  SwitcherLink,
6245
6991
  SwitcherProps,
6992
+ TableQuery,
6246
6993
  Tabs,
6247
6994
  TabsContent,
6248
6995
  TabsContentProps,