sherick-ui 2.9.0 → 2.10.1

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 (284) hide show
  1. package/README.md +32 -0
  2. package/dist/cjs/components/Accordion.cjs +14 -26
  3. package/dist/cjs/components/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Alert.cjs +60 -19
  5. package/dist/cjs/components/Alert.cjs.map +1 -1
  6. package/dist/cjs/components/AlertDialog.cjs +5 -3
  7. package/dist/cjs/components/AlertDialog.cjs.map +1 -1
  8. package/dist/cjs/components/Avatar.cjs +12 -3
  9. package/dist/cjs/components/Avatar.cjs.map +1 -1
  10. package/dist/cjs/components/Badge.cjs +5 -3
  11. package/dist/cjs/components/Badge.cjs.map +1 -1
  12. package/dist/cjs/components/Breadcrumb.cjs +8 -4
  13. package/dist/cjs/components/Breadcrumb.cjs.map +1 -1
  14. package/dist/cjs/components/Button.cjs +11 -4
  15. package/dist/cjs/components/Button.cjs.map +1 -1
  16. package/dist/cjs/components/Calendar.cjs +39 -4
  17. package/dist/cjs/components/Calendar.cjs.map +1 -1
  18. package/dist/cjs/components/Card.cjs +10 -6
  19. package/dist/cjs/components/Card.cjs.map +1 -1
  20. package/dist/cjs/components/Checkbox.cjs +15 -3
  21. package/dist/cjs/components/Checkbox.cjs.map +1 -1
  22. package/dist/cjs/components/CheckboxGroup.cjs +3 -2
  23. package/dist/cjs/components/CheckboxGroup.cjs.map +1 -1
  24. package/dist/cjs/components/Chip.cjs +53 -43
  25. package/dist/cjs/components/Chip.cjs.map +1 -1
  26. package/dist/cjs/components/ChipGroup.cjs +17 -0
  27. package/dist/cjs/components/ChipGroup.cjs.map +1 -1
  28. package/dist/cjs/components/Collapsible.cjs +1 -1
  29. package/dist/cjs/components/Collapsible.cjs.map +1 -1
  30. package/dist/cjs/components/Combobox.cjs +58 -14
  31. package/dist/cjs/components/Combobox.cjs.map +1 -1
  32. package/dist/cjs/components/Command.cjs +10 -4
  33. package/dist/cjs/components/Command.cjs.map +1 -1
  34. package/dist/cjs/components/CommandPalette.cjs +5 -2
  35. package/dist/cjs/components/CommandPalette.cjs.map +1 -1
  36. package/dist/cjs/components/DatePicker.cjs +6 -3
  37. package/dist/cjs/components/DatePicker.cjs.map +1 -1
  38. package/dist/cjs/components/DateRangePicker.cjs +3 -2
  39. package/dist/cjs/components/DateRangePicker.cjs.map +1 -1
  40. package/dist/cjs/components/DateTimePicker.cjs +1 -1
  41. package/dist/cjs/components/DateTimePicker.cjs.map +1 -1
  42. package/dist/cjs/components/Dialog.cjs +10 -3
  43. package/dist/cjs/components/Dialog.cjs.map +1 -1
  44. package/dist/cjs/components/DialogContent.cjs +5 -3
  45. package/dist/cjs/components/DialogContent.cjs.map +1 -1
  46. package/dist/cjs/components/DialogDescription.cjs +5 -3
  47. package/dist/cjs/components/DialogDescription.cjs.map +1 -1
  48. package/dist/cjs/components/DialogFooter.cjs +3 -3
  49. package/dist/cjs/components/DialogFooter.cjs.map +1 -1
  50. package/dist/cjs/components/DialogHeader.cjs +5 -3
  51. package/dist/cjs/components/DialogHeader.cjs.map +1 -1
  52. package/dist/cjs/components/DialogSurface.cjs +37 -15
  53. package/dist/cjs/components/DialogSurface.cjs.map +1 -1
  54. package/dist/cjs/components/DismissButton.cjs +24 -0
  55. package/dist/cjs/components/DismissButton.cjs.map +1 -0
  56. package/dist/cjs/components/Divider.cjs +3 -1
  57. package/dist/cjs/components/Divider.cjs.map +1 -1
  58. package/dist/cjs/components/Drawer.cjs +24 -14
  59. package/dist/cjs/components/Drawer.cjs.map +1 -1
  60. package/dist/cjs/components/Field.cjs +47 -2
  61. package/dist/cjs/components/Field.cjs.map +1 -1
  62. package/dist/cjs/components/FieldLabel.cjs +20 -0
  63. package/dist/cjs/components/FieldLabel.cjs.map +1 -0
  64. package/dist/cjs/components/FileUpload.cjs +19 -9
  65. package/dist/cjs/components/FileUpload.cjs.map +1 -1
  66. package/dist/cjs/components/IconButton.cjs +28 -7
  67. package/dist/cjs/components/IconButton.cjs.map +1 -1
  68. package/dist/cjs/components/Input.cjs +14 -5
  69. package/dist/cjs/components/Input.cjs.map +1 -1
  70. package/dist/cjs/components/Menu.cjs +18 -4
  71. package/dist/cjs/components/Menu.cjs.map +1 -1
  72. package/dist/cjs/components/NavGroup.cjs +7 -1
  73. package/dist/cjs/components/NavGroup.cjs.map +1 -1
  74. package/dist/cjs/components/NavItem.cjs +28 -3
  75. package/dist/cjs/components/NavItem.cjs.map +1 -1
  76. package/dist/cjs/components/NumberField.cjs +7 -6
  77. package/dist/cjs/components/NumberField.cjs.map +1 -1
  78. package/dist/cjs/components/Pagination.cjs +42 -8
  79. package/dist/cjs/components/Pagination.cjs.map +1 -1
  80. package/dist/cjs/components/Popover.cjs +13 -5
  81. package/dist/cjs/components/Popover.cjs.map +1 -1
  82. package/dist/cjs/components/Progress.cjs +5 -3
  83. package/dist/cjs/components/Progress.cjs.map +1 -1
  84. package/dist/cjs/components/RadioGroup.cjs +3 -2
  85. package/dist/cjs/components/RadioGroup.cjs.map +1 -1
  86. package/dist/cjs/components/Search.cjs +35 -14
  87. package/dist/cjs/components/Search.cjs.map +1 -1
  88. package/dist/cjs/components/SegmentedControl.cjs +2 -1
  89. package/dist/cjs/components/SegmentedControl.cjs.map +1 -1
  90. package/dist/cjs/components/Select.cjs +14 -4
  91. package/dist/cjs/components/Select.cjs.map +1 -1
  92. package/dist/cjs/components/Skeleton.cjs +5 -3
  93. package/dist/cjs/components/Skeleton.cjs.map +1 -1
  94. package/dist/cjs/components/Slider.cjs +1 -1
  95. package/dist/cjs/components/Slider.cjs.map +1 -1
  96. package/dist/cjs/components/Spinner.cjs +24 -14
  97. package/dist/cjs/components/Spinner.cjs.map +1 -1
  98. package/dist/cjs/components/StatusMark.cjs +43 -0
  99. package/dist/cjs/components/StatusMark.cjs.map +1 -0
  100. package/dist/cjs/components/Stepper.cjs +3 -3
  101. package/dist/cjs/components/Stepper.cjs.map +1 -1
  102. package/dist/cjs/components/Switch.cjs +20 -1
  103. package/dist/cjs/components/Switch.cjs.map +1 -1
  104. package/dist/cjs/components/Table.cjs +15 -7
  105. package/dist/cjs/components/Table.cjs.map +1 -1
  106. package/dist/cjs/components/Tabs.cjs +10 -3
  107. package/dist/cjs/components/Tabs.cjs.map +1 -1
  108. package/dist/cjs/components/Textarea.cjs +8 -4
  109. package/dist/cjs/components/Textarea.cjs.map +1 -1
  110. package/dist/cjs/components/Toast.cjs +47 -34
  111. package/dist/cjs/components/Toast.cjs.map +1 -1
  112. package/dist/cjs/components/ToggleGroup.cjs +14 -3
  113. package/dist/cjs/components/ToggleGroup.cjs.map +1 -1
  114. package/dist/cjs/components/Tooltip.cjs +16 -2
  115. package/dist/cjs/components/Tooltip.cjs.map +1 -1
  116. package/dist/cjs/components/TreeView.cjs +8 -4
  117. package/dist/cjs/components/TreeView.cjs.map +1 -1
  118. package/dist/cjs/components/choice-row.cjs +1 -1
  119. package/dist/cjs/components/choice-row.cjs.map +1 -1
  120. package/dist/cjs/components/date-family.cjs +16 -2
  121. package/dist/cjs/components/date-family.cjs.map +1 -1
  122. package/dist/cjs/components/date-field.cjs +4 -2
  123. package/dist/cjs/components/date-field.cjs.map +1 -1
  124. package/dist/cjs/components/edge-fade.cjs +80 -0
  125. package/dist/cjs/components/edge-fade.cjs.map +1 -0
  126. package/dist/cjs/components/scroll-region.cjs +56 -0
  127. package/dist/cjs/components/scroll-region.cjs.map +1 -0
  128. package/dist/cjs/components/time-panel.cjs +1 -1
  129. package/dist/cjs/components/time-panel.cjs.map +1 -1
  130. package/dist/cjs/components/ui.common.cjs +115 -58
  131. package/dist/cjs/components/ui.common.cjs.map +1 -1
  132. package/dist/cjs/components/ui.motion.cjs +41 -15
  133. package/dist/cjs/components/ui.motion.cjs.map +1 -1
  134. package/dist/cjs/dev.cjs +5 -0
  135. package/dist/cjs/dev.cjs.map +1 -1
  136. package/dist/cjs/index.cjs +1 -0
  137. package/dist/cjs/index.cjs.map +1 -1
  138. package/dist/esm/components/Accordion.js +16 -28
  139. package/dist/esm/components/Accordion.js.map +1 -1
  140. package/dist/esm/components/Alert.js +62 -22
  141. package/dist/esm/components/Alert.js.map +1 -1
  142. package/dist/esm/components/AlertDialog.js +6 -4
  143. package/dist/esm/components/AlertDialog.js.map +1 -1
  144. package/dist/esm/components/Avatar.js +14 -5
  145. package/dist/esm/components/Avatar.js.map +1 -1
  146. package/dist/esm/components/Badge.js +5 -3
  147. package/dist/esm/components/Badge.js.map +1 -1
  148. package/dist/esm/components/Breadcrumb.js +9 -5
  149. package/dist/esm/components/Breadcrumb.js.map +1 -1
  150. package/dist/esm/components/Button.js +11 -4
  151. package/dist/esm/components/Button.js.map +1 -1
  152. package/dist/esm/components/Calendar.js +42 -7
  153. package/dist/esm/components/Calendar.js.map +1 -1
  154. package/dist/esm/components/Card.js +12 -8
  155. package/dist/esm/components/Card.js.map +1 -1
  156. package/dist/esm/components/Checkbox.js +16 -4
  157. package/dist/esm/components/Checkbox.js.map +1 -1
  158. package/dist/esm/components/CheckboxGroup.js +3 -2
  159. package/dist/esm/components/CheckboxGroup.js.map +1 -1
  160. package/dist/esm/components/Chip.js +56 -46
  161. package/dist/esm/components/Chip.js.map +1 -1
  162. package/dist/esm/components/ChipGroup.js +18 -1
  163. package/dist/esm/components/ChipGroup.js.map +1 -1
  164. package/dist/esm/components/CodeBlock.js +58 -28
  165. package/dist/esm/components/CodeBlock.js.map +1 -1
  166. package/dist/esm/components/Collapsible.js +1 -1
  167. package/dist/esm/components/Collapsible.js.map +1 -1
  168. package/dist/esm/components/Combobox.js +62 -18
  169. package/dist/esm/components/Combobox.js.map +1 -1
  170. package/dist/esm/components/Command.js +11 -5
  171. package/dist/esm/components/Command.js.map +1 -1
  172. package/dist/esm/components/CommandPalette.js +7 -4
  173. package/dist/esm/components/CommandPalette.js.map +1 -1
  174. package/dist/esm/components/DatePicker.js +7 -4
  175. package/dist/esm/components/DatePicker.js.map +1 -1
  176. package/dist/esm/components/DateRangePicker.js +4 -3
  177. package/dist/esm/components/DateRangePicker.js.map +1 -1
  178. package/dist/esm/components/DateTimePicker.js +1 -1
  179. package/dist/esm/components/DateTimePicker.js.map +1 -1
  180. package/dist/esm/components/Dialog.js +12 -6
  181. package/dist/esm/components/Dialog.js.map +1 -1
  182. package/dist/esm/components/DialogContent.js +6 -4
  183. package/dist/esm/components/DialogContent.js.map +1 -1
  184. package/dist/esm/components/DialogDescription.js +6 -4
  185. package/dist/esm/components/DialogDescription.js.map +1 -1
  186. package/dist/esm/components/DialogFooter.js +3 -3
  187. package/dist/esm/components/DialogFooter.js.map +1 -1
  188. package/dist/esm/components/DialogHeader.js +5 -3
  189. package/dist/esm/components/DialogHeader.js.map +1 -1
  190. package/dist/esm/components/DialogSurface.js +38 -17
  191. package/dist/esm/components/DialogSurface.js.map +1 -1
  192. package/dist/esm/components/DismissButton.js +20 -0
  193. package/dist/esm/components/DismissButton.js.map +1 -0
  194. package/dist/esm/components/Divider.js +3 -1
  195. package/dist/esm/components/Divider.js.map +1 -1
  196. package/dist/esm/components/Drawer.js +27 -17
  197. package/dist/esm/components/Drawer.js.map +1 -1
  198. package/dist/esm/components/Field.js +49 -6
  199. package/dist/esm/components/Field.js.map +1 -1
  200. package/dist/esm/components/FieldLabel.js +15 -0
  201. package/dist/esm/components/FieldLabel.js.map +1 -0
  202. package/dist/esm/components/FileUpload.js +23 -13
  203. package/dist/esm/components/FileUpload.js.map +1 -1
  204. package/dist/esm/components/IconButton.js +30 -9
  205. package/dist/esm/components/IconButton.js.map +1 -1
  206. package/dist/esm/components/Input.js +15 -6
  207. package/dist/esm/components/Input.js.map +1 -1
  208. package/dist/esm/components/Markdown.js +7 -4
  209. package/dist/esm/components/Markdown.js.map +1 -1
  210. package/dist/esm/components/Menu.js +20 -6
  211. package/dist/esm/components/Menu.js.map +1 -1
  212. package/dist/esm/components/NavGroup.js +8 -2
  213. package/dist/esm/components/NavGroup.js.map +1 -1
  214. package/dist/esm/components/NavItem.js +30 -6
  215. package/dist/esm/components/NavItem.js.map +1 -1
  216. package/dist/esm/components/NumberField.js +8 -7
  217. package/dist/esm/components/NumberField.js.map +1 -1
  218. package/dist/esm/components/Pagination.js +43 -9
  219. package/dist/esm/components/Pagination.js.map +1 -1
  220. package/dist/esm/components/Popover.js +14 -6
  221. package/dist/esm/components/Popover.js.map +1 -1
  222. package/dist/esm/components/Progress.js +5 -3
  223. package/dist/esm/components/Progress.js.map +1 -1
  224. package/dist/esm/components/RadioGroup.js +3 -2
  225. package/dist/esm/components/RadioGroup.js.map +1 -1
  226. package/dist/esm/components/Search.js +36 -15
  227. package/dist/esm/components/Search.js.map +1 -1
  228. package/dist/esm/components/SegmentedControl.js +2 -1
  229. package/dist/esm/components/SegmentedControl.js.map +1 -1
  230. package/dist/esm/components/Select.js +16 -6
  231. package/dist/esm/components/Select.js.map +1 -1
  232. package/dist/esm/components/Skeleton.js +5 -3
  233. package/dist/esm/components/Skeleton.js.map +1 -1
  234. package/dist/esm/components/Slider.js +2 -2
  235. package/dist/esm/components/Slider.js.map +1 -1
  236. package/dist/esm/components/Spinner.js +24 -14
  237. package/dist/esm/components/Spinner.js.map +1 -1
  238. package/dist/esm/components/StatusMark.js +38 -0
  239. package/dist/esm/components/StatusMark.js.map +1 -0
  240. package/dist/esm/components/Stepper.js +4 -4
  241. package/dist/esm/components/Stepper.js.map +1 -1
  242. package/dist/esm/components/Switch.js +21 -2
  243. package/dist/esm/components/Switch.js.map +1 -1
  244. package/dist/esm/components/Table.js +16 -8
  245. package/dist/esm/components/Table.js.map +1 -1
  246. package/dist/esm/components/Tabs.js +11 -4
  247. package/dist/esm/components/Tabs.js.map +1 -1
  248. package/dist/esm/components/Textarea.js +8 -4
  249. package/dist/esm/components/Textarea.js.map +1 -1
  250. package/dist/esm/components/Toast.js +49 -36
  251. package/dist/esm/components/Toast.js.map +1 -1
  252. package/dist/esm/components/ToggleGroup.js +16 -5
  253. package/dist/esm/components/ToggleGroup.js.map +1 -1
  254. package/dist/esm/components/Tooltip.js +17 -4
  255. package/dist/esm/components/Tooltip.js.map +1 -1
  256. package/dist/esm/components/TreeView.js +9 -5
  257. package/dist/esm/components/TreeView.js.map +1 -1
  258. package/dist/esm/components/choice-row.js +1 -1
  259. package/dist/esm/components/choice-row.js.map +1 -1
  260. package/dist/esm/components/date-family.js +15 -3
  261. package/dist/esm/components/date-family.js.map +1 -1
  262. package/dist/esm/components/date-field.js +5 -3
  263. package/dist/esm/components/date-field.js.map +1 -1
  264. package/dist/esm/components/edge-fade.js +77 -0
  265. package/dist/esm/components/edge-fade.js.map +1 -0
  266. package/dist/esm/components/scroll-region.js +52 -0
  267. package/dist/esm/components/scroll-region.js.map +1 -0
  268. package/dist/esm/components/time-panel.js +1 -1
  269. package/dist/esm/components/time-panel.js.map +1 -1
  270. package/dist/esm/components/ui.common.js +115 -60
  271. package/dist/esm/components/ui.common.js.map +1 -1
  272. package/dist/esm/components/ui.motion.js +39 -16
  273. package/dist/esm/components/ui.motion.js.map +1 -1
  274. package/dist/esm/content.js +1 -1
  275. package/dist/esm/dev.js +2 -2
  276. package/dist/esm/index.js +1 -1
  277. package/dist/styles.css +326 -200
  278. package/dist/theme.css +15 -12
  279. package/dist/types/content.d.ts +13 -3
  280. package/dist/types/dev.d.cts +65 -30
  281. package/dist/types/dev.d.ts +65 -30
  282. package/dist/types/index.d.cts +502 -166
  283. package/dist/types/index.d.ts +502 -166
  284. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
2
2
  import * as React from 'react';
3
- import React__default, { ReactNode, ButtonHTMLAttributes, ImgHTMLAttributes, HTMLAttributes, ComponentPropsWithoutRef, AnchorHTMLAttributes, ComponentProps, Ref, ClipboardEvent, ReactElement, InputHTMLAttributes, ForwardRefExoticComponent, RefAttributes, MouseEventHandler, ComponentPropsWithRef, TextareaHTMLAttributes } from 'react';
3
+ import React__default, { ReactNode, ComponentPropsWithoutRef, ElementType, ButtonHTMLAttributes, ReactElement, ForwardRefExoticComponent, RefAttributes, HTMLAttributes, AnchorHTMLAttributes, ComponentProps, Ref, ClipboardEvent, InputHTMLAttributes, MouseEventHandler, ComponentPropsWithRef, Key, TextareaHTMLAttributes } from 'react';
4
4
  import { Collapsible as Collapsible$1 } from '@base-ui/react/collapsible';
5
5
  import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
6
6
  import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
@@ -8,13 +8,14 @@ import { CheckboxGroup as CheckboxGroup$1 } from '@base-ui/react/checkbox-group'
8
8
  import { Toggle } from '@base-ui/react/toggle';
9
9
  import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
10
10
  import { Combobox as Combobox$1 } from '@base-ui/react/combobox';
11
+ import { Field as Field$1 } from '@base-ui/react/field';
11
12
  import { Autocomplete } from '@base-ui/react/autocomplete';
12
13
  import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
13
14
  import { Popover as Popover$1 } from '@base-ui/react/popover';
14
15
  import { Select as Select$1 } from '@base-ui/react/select';
15
- import { Field as Field$1 } from '@base-ui/react/field';
16
16
  import { Form as Form$1 } from '@base-ui/react/form';
17
17
  import { Input as Input$1 } from '@base-ui/react/input';
18
+ import * as _base_ui_react from '@base-ui/react';
18
19
  import { Menu as Menu$1 } from '@base-ui/react/menu';
19
20
  import { NumberField as NumberField$1 } from '@base-ui/react/number-field';
20
21
  import { Progress as Progress$1 } from '@base-ui/react/progress';
@@ -132,6 +133,20 @@ type Variant = "primary" | "secondary" | "danger" | "warning" | "success";
132
133
  */
133
134
  type OverlaySide = "top" | "bottom" | "left" | "right" | "inline-start" | "inline-end";
134
135
  type OverlayAlign = "start" | "center" | "end";
136
+ /**
137
+ * The props a primitive hands to the element it renders in its place (Base's `render`): the
138
+ * button's own attributes, and the event and state wiring Base adds to them. The ref is passed
139
+ * separately, so a trigger that forwards one takes it beside these props rather than inside them.
140
+ *
141
+ * The triggers of Menu, Popover, Drawer, Dialog and AlertDialog take this shape, so a trigger
142
+ * built on any of them accepts the same element.
143
+ */
144
+ type TriggerProps = ComponentPropsWithoutRef<"button">;
145
+ /**
146
+ * The props of the element a part renders, without its ref. A part that forwards a ref takes
147
+ * the ref beside these props; `T` is the element the part is written as.
148
+ */
149
+ type PartProps<T extends ElementType> = ComponentPropsWithoutRef<T>;
135
150
 
136
151
  type ButtonAppearance = "filled" | "tonal" | "text";
137
152
  type ButtonSize = "sm" | "md" | "lg";
@@ -142,17 +157,38 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
142
157
  size?: ButtonSize;
143
158
  icon?: ReactNode;
144
159
  loading?: boolean;
160
+ /**
161
+ * The element the button renders as, such as a router link. The button's classes and its own props
162
+ * are merged onto it, so the link looks and presses like a button and keeps its own navigation.
163
+ */
164
+ render?: ReactElement;
145
165
  }
146
166
  declare const Button: React__default.ForwardRefExoticComponent<ButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
147
167
 
148
- interface AlertProps {
168
+ /** How an alert is announced to assistive technology. `none` leaves it silent. */
169
+ type AlertAnnounce = "none" | "status" | "alert";
170
+ interface AlertProps extends Omit<ComponentPropsWithoutRef<"div">, "role"> {
149
171
  children: ReactNode;
150
172
  variant?: Variant;
151
- className?: string;
173
+ /** Whether the alert has a dismiss control. */
152
174
  closeable?: boolean;
175
+ /** The dismiss control's accessible name. Override it when the surface's language is not the default. */
176
+ dismissLabel?: string;
177
+ /**
178
+ * How the alert is announced. `alert` interrupts the reader, `status` is read politely, and `none`
179
+ * adds no live role. Danger and warning default to `alert`, and every other variant to `status`.
180
+ */
181
+ announce?: AlertAnnounce;
182
+ /** Whether the alert is shown, when the application owns that state. */
183
+ open?: boolean;
184
+ /** Whether the alert starts shown, for one that owns its own dismissal. */
185
+ defaultOpen?: boolean;
186
+ /** Reports `false` when the alert is dismissed, for a controlled alert or to observe an uncontrolled one. */
187
+ onOpenChange?: (open: boolean) => void;
188
+ /** Fires when the alert is dismissed, before its open state changes. */
153
189
  onDismiss?: () => void;
154
190
  }
155
- declare const Alert: ({ children, variant, className, closeable, onDismiss, }: AlertProps) => React__default.JSX.Element | null;
191
+ declare const Alert: React__default.ForwardRefExoticComponent<AlertProps & React__default.RefAttributes<HTMLDivElement>>;
156
192
 
157
193
  interface AlertDialogProps {
158
194
  /** The question the dialog asks. Base makes it the surface's accessible name. */
@@ -179,7 +215,18 @@ interface AlertDialogProps {
179
215
  defaultOpen?: boolean;
180
216
  /** Base's own open-change callback, event details included. */
181
217
  onOpenChange?: AlertDialog$1.Root.Props["onOpenChange"];
218
+ /** The `AlertDialog.Trigger` that opens the dialog. It renders in the page, beside the trigger's own control. */
219
+ children?: ReactNode;
182
220
  }
221
+ /** The control that opens an alert dialog. Base's trigger closes it again through the same root. */
222
+ type AlertDialogTriggerProps = TriggerProps & {
223
+ /** The element the trigger's own props are handed to — usually a Sherick `Button`. */
224
+ render?: ReactElement;
225
+ };
226
+ declare const AlertDialogTrigger: ({ render, ...props }: AlertDialogTriggerProps) => React__default.JSX.Element;
227
+ type AlertDialogComponent = ForwardRefExoticComponent<AlertDialogProps & RefAttributes<HTMLDivElement>> & {
228
+ Trigger: typeof AlertDialogTrigger;
229
+ };
183
230
  /**
184
231
  * A dialog that asks one question and requires one answer. Its interaction contract differs from
185
232
  * `Dialog`: it is always modal, an outside press never dismisses it, and Base's default focus
@@ -187,27 +234,37 @@ interface AlertDialogProps {
187
234
  * anything. Base owns presence, focus restoration, Escape and the `alertdialog` semantics; the
188
235
  * surface, typography and shape are the same ones `Dialog` uses.
189
236
  */
190
- declare const AlertDialog: React__default.ForwardRefExoticComponent<AlertDialogProps & React__default.RefAttributes<HTMLDivElement>>;
237
+ declare const AlertDialog: AlertDialogComponent;
191
238
 
192
- interface AvatarProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src" | "alt" | "width" | "height"> {
239
+ interface AvatarProps extends Omit<ComponentPropsWithoutRef<"span">, "children"> {
193
240
  src: string;
194
241
  alt: string;
195
242
  size?: "sm" | "md" | "lg";
196
243
  shape?: "circle" | "rounded";
244
+ /**
245
+ * What stands in for the picture while it loads and after it fails. Defaults to the initials of `alt`,
246
+ * so an avatar with no picture still says who it is.
247
+ */
248
+ fallback?: ReactNode;
197
249
  }
198
- declare const Avatar: ({ src, alt, size, shape: shapeRole, className, ...props }: AvatarProps) => React__default.JSX.Element;
250
+ declare const Avatar: React__default.ForwardRefExoticComponent<AvatarProps & React__default.RefAttributes<HTMLSpanElement>>;
199
251
 
200
252
  interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
201
253
  children: ReactNode;
202
254
  variant?: Variant;
203
255
  icon?: ReactNode;
204
256
  }
205
- declare const Badge: ({ children, variant, icon, className, ...props }: BadgeProps) => React__default.JSX.Element;
257
+ declare const Badge: React__default.ForwardRefExoticComponent<BadgeProps & React__default.RefAttributes<HTMLSpanElement>>;
206
258
 
207
259
  interface BreadcrumbItem {
208
260
  label: ReactNode;
209
261
  href?: string;
210
262
  }
263
+ /** The English copy a trail names itself with. */
264
+ interface BreadcrumbLabels {
265
+ /** The trail's accessible name. */
266
+ navigation: string;
267
+ }
211
268
  interface BreadcrumbProps extends Omit<ComponentPropsWithoutRef<"nav">, "children"> {
212
269
  items: BreadcrumbItem[];
213
270
  /**
@@ -216,6 +273,8 @@ interface BreadcrumbProps extends Omit<ComponentPropsWithoutRef<"nav">, "childre
216
273
  * spreads them onto its element.
217
274
  */
218
275
  renderLink?: (item: BreadcrumbItem, props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;
276
+ /** The English copy the trail names itself with. `aria-label` takes precedence over it. */
277
+ labels?: Partial<BreadcrumbLabels>;
219
278
  }
220
279
  declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>;
221
280
 
@@ -262,7 +321,10 @@ interface CalendarBaseProps extends Omit<ComponentProps<"div">, "children" | "va
262
321
  locale?: string;
263
322
  /** Which weekday a row starts on: 0 is Sunday. */
264
323
  weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
265
- /** The civil day this application calls today; defaults to the current UTC day. */
324
+ /**
325
+ * The civil day this application calls today. Left unset, it is the viewer's own local day, refreshed at
326
+ * local midnight; an application whose day is elsewhere passes its own.
327
+ */
266
328
  today?: CalendarDate;
267
329
  labels?: Partial<CalendarLabels>;
268
330
  }
@@ -310,9 +372,9 @@ interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
310
372
  headingLevel?: 2 | 3 | 4 | 5 | 6;
311
373
  }
312
374
  type CardDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
313
- type CardComponent = ((props: CardProps) => React__default.JSX.Element) & {
314
- Title: (props: CardTitleProps) => React__default.ReactElement;
315
- Description: (props: CardDescriptionProps) => React__default.JSX.Element;
375
+ type CardComponent = ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> & {
376
+ Title: ForwardRefExoticComponent<CardTitleProps & RefAttributes<HTMLHeadingElement>>;
377
+ Description: ForwardRefExoticComponent<CardDescriptionProps & RefAttributes<HTMLParagraphElement>>;
316
378
  };
317
379
  declare const Card: CardComponent;
318
380
 
@@ -393,19 +455,11 @@ interface ChipAnatomy {
393
455
  className?: string;
394
456
  }
395
457
  /**
396
- * A chip is one of two things, and never both.
397
- *
398
- * * A **toggle chip** holds a selection. Supplying any of `checked`, `defaultChecked`,
399
- * `onCheckedChange` or `value` makes it a toggle button, and it takes the props of one; inside a
400
- * `ChipGroup` the group owns the value, exactly as it does for any grouped control.
401
- * * A **tag** holds no selection and may be dismissed. `onRemove` renders the dismiss control, and
402
- * the tag takes the props of the passive element it is.
403
- *
404
- * The two cannot be combined: a control that both holds a value and deletes itself is one target
405
- * with two meanings, and a toggle is a `<button>` while a tag is a `<span>` containing its dismiss
406
- * control — a button cannot legally nest inside a button.
458
+ * A toggle chip holds a selection. Supplying any of `checked`, `defaultChecked`, `onCheckedChange` or
459
+ * `value` makes it a toggle button, and it takes the props of one; inside a `ChipGroup` the group owns
460
+ * the value, exactly as it does for any grouped control.
407
461
  */
408
- type ChipProps = (ChipAnatomy & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" | "type"> & {
462
+ type ChipToggleProps = ChipAnatomy & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" | "type"> & {
409
463
  /** The controlled counterpart of `defaultChecked`. */
410
464
  checked?: boolean;
411
465
  defaultChecked?: boolean;
@@ -416,12 +470,18 @@ type ChipProps = (ChipAnatomy & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "v
416
470
  /** A toggle is a button; it carries no dismiss control. Give the row a `ChipGroup`. */
417
471
  onRemove?: never;
418
472
  removeLabel?: never;
419
- }) | (ChipAnatomy & HTMLAttributes<HTMLSpanElement> & {
473
+ };
474
+ /**
475
+ * A tag holds no selection and may be dismissed. It is a span, so it has no button role; its only
476
+ * control is the dismiss, which is what `onRemove` renders. A tag is `Chip.Tag`, or a `Chip` with
477
+ * `onRemove` and no value.
478
+ */
479
+ type ChipTagProps = ChipAnatomy & HTMLAttributes<HTMLSpanElement> & {
420
480
  /** Renders a dismiss control. */
421
481
  onRemove?: () => void;
422
482
  /**
423
- * The dismiss control's accessible name. Defaults to `Remove <text>` when the chip's
424
- * children are a string, and to `Remove` otherwise.
483
+ * The dismiss control's accessible name. Defaults to `Remove <text>` when the chip's children are a
484
+ * string, and to `Remove` otherwise.
425
485
  */
426
486
  removeLabel?: string;
427
487
  /** A tag holds nothing to select. */
@@ -430,17 +490,30 @@ type ChipProps = (ChipAnatomy & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "v
430
490
  onCheckedChange?: never;
431
491
  value?: never;
432
492
  disabled?: never;
433
- });
493
+ };
434
494
  /**
435
- * A compact control-sized object: a toggle button that holds a selection, or a tag that carries its
436
- * tone in its fill and can be dismissed.
437
- *
438
- * A toggle is raised and tactile because it is manipulated. A tag is flat because it is only read,
439
- * and it is passive in the markup as well: nothing about its own box is interactive, its copy keeps
440
- * its normal emphasis while its icon carries the semantic tone, and its only control is the dismiss
441
- * one. The ref points at the chip's own element — the button or the tag's span.
495
+ * A chip is one of two things, and never both. A toggle is a `<button>`, and a tag is a `<span>`
496
+ * containing its dismiss control: a button cannot legally nest inside a button, and a control that both
497
+ * holds a value and deletes itself is one target with two meanings.
442
498
  */
443
- declare const Chip: React__default.ForwardRefExoticComponent<ChipProps & React__default.RefAttributes<HTMLElement>>;
499
+ type ChipProps = ChipToggleProps | ChipTagProps;
500
+ declare const Chip: React__default.ForwardRefExoticComponent<ChipProps & React__default.RefAttributes<HTMLElement>> & {
501
+ Tag: React__default.ForwardRefExoticComponent<ChipAnatomy & React__default.HTMLAttributes<HTMLSpanElement> & {
502
+ /** Renders a dismiss control. */
503
+ onRemove?: () => void;
504
+ /**
505
+ * The dismiss control's accessible name. Defaults to `Remove <text>` when the chip's children are a
506
+ * string, and to `Remove` otherwise.
507
+ */
508
+ removeLabel?: string;
509
+ /** A tag holds nothing to select. */
510
+ checked?: never;
511
+ defaultChecked?: never;
512
+ onCheckedChange?: never;
513
+ value?: never;
514
+ disabled?: never;
515
+ } & React__default.RefAttributes<HTMLElement>>;
516
+ };
444
517
 
445
518
  interface ChipGroupProps extends Omit<ToggleGroup$1.Props<string>, "multiple" | "className" | "render"> {
446
519
  children: ReactNode;
@@ -469,6 +542,46 @@ interface OptionGroup<Option> {
469
542
  options: Option[];
470
543
  }
471
544
 
545
+ /** The density a field takes: `sm` for a dense row, `md` the default and `lg` a prominent field. */
546
+ type FieldSize = "sm" | "md" | "lg";
547
+ interface FieldProps extends Omit<ComponentProps<typeof Field$1.Root>, "children" | "className" | "ref"> {
548
+ /** The field's label. Base UI associates it with the control and names the group. */
549
+ label?: ReactNode;
550
+ /** Supporting copy beneath the control. In a horizontal field it sits beneath the label. */
551
+ description?: ReactNode;
552
+ /**
553
+ * The message shown while the field is invalid. Its presence is what makes the field invalid,
554
+ * so an error can never be rendered without the state that explains it. Omit it and Base UI's
555
+ * own validation message is shown instead.
556
+ */
557
+ error?: ReactNode;
558
+ /**
559
+ * Renders the required mark beside the label. This is presentational only: the requirement
560
+ * itself can only be declared by the control, so pass `required` to the control as well —
561
+ * every example, fixture and test in this repository does.
562
+ */
563
+ required?: boolean;
564
+ /**
565
+ * `vertical` stacks the label, the control, the description and the error in one column. `horizontal`
566
+ * is a setting row: the label and its description sit at the start and the control at the end.
567
+ */
568
+ orientation?: "vertical" | "horizontal";
569
+ /** Styles the field's own column. The control inside styles itself. */
570
+ className?: string;
571
+ /**
572
+ * A Base-backed control that is one control: `Checkbox`, `Switch`, `Slider`, `NumberField`, `Select`
573
+ * or `Combobox`. A group of controls names itself — `RadioGroup` carries its own label — because
574
+ * the field's label belongs to the single control it validates.
575
+ */
576
+ children: ReactNode;
577
+ }
578
+ /**
579
+ * Labels and validates one form control. Base UI owns the generated IDs and the
580
+ * `aria-describedby` / `aria-invalid` wiring; this component owns only the order and the
581
+ * typography of label, control, description and error.
582
+ */
583
+ declare const Field: React__default.ForwardRefExoticComponent<FieldProps & React__default.RefAttributes<HTMLDivElement>>;
584
+
472
585
  interface ComboboxOption {
473
586
  label: string;
474
587
  value: string;
@@ -476,6 +589,19 @@ interface ComboboxOption {
476
589
  }
477
590
  /** Options filed under one heading, such as channels under their category. */
478
591
  type ComboboxOptionGroup = OptionGroup<ComboboxOption>;
592
+ /** The copy of the control's own parts. Each default is the text the control has always shown. */
593
+ interface ComboboxLabels {
594
+ /** The accessible name of one chip's dismiss control. */
595
+ removeChip: (label: string) => string;
596
+ /** The clear control of a multiple combobox. */
597
+ clearAll: string;
598
+ /** The clear control of a single combobox. */
599
+ clearSelection: string;
600
+ /** The trigger that opens the list. */
601
+ showOptions: string;
602
+ /** Shown in the list when the query matches nothing. `emptyMessage` replaces it. */
603
+ noResults: string;
604
+ }
479
605
  type ComboboxRootProps = Combobox$1.Root.Props<ComboboxOption>;
480
606
  type ComboboxChangeDetails = Parameters<NonNullable<ComboboxRootProps["onValueChange"]>>[1];
481
607
  /**
@@ -495,8 +621,16 @@ interface ComboboxCommonProps {
495
621
  placeholder?: string;
496
622
  /** Shown in place of the list when the query matches no option. */
497
623
  emptyMessage?: ReactNode;
624
+ /** Waiting for its options: a spinner takes the chevron's place and the trigger reports itself busy. */
625
+ loading?: boolean;
626
+ /** The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. */
627
+ size?: FieldSize;
628
+ /** The copy of the control's own parts, for a locale or a product's wording. */
629
+ labels?: Partial<ComboboxLabels>;
498
630
  /** Styles the control's own box. The popup and its rows style themselves. */
499
631
  className?: string;
632
+ /** Styles the list's own sheet. The rows style themselves. */
633
+ popupClassName?: string;
500
634
  /** Custom matching, when the default label search is not what the list needs. */
501
635
  filter?: ((option: ComboboxOption, query: string) => boolean) | null;
502
636
  open?: boolean;
@@ -568,6 +702,15 @@ type ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps;
568
702
  */
569
703
  declare const Combobox: React__default.ForwardRefExoticComponent<ComboboxProps & React__default.RefAttributes<HTMLInputElement>>;
570
704
 
705
+ /** The English copy a command list names itself and its parts with. */
706
+ interface CommandLabels {
707
+ /** The search field's accessible name, when the caller does not give one. */
708
+ search: string;
709
+ /** The search field's placeholder. */
710
+ placeholder: string;
711
+ /** Shown in place of the list when the query matches no command. */
712
+ empty: string;
713
+ }
571
714
  interface CommandItem {
572
715
  /** The action's own identity. Values are unique across the list. */
573
716
  value: string;
@@ -597,9 +740,9 @@ interface CommandProps {
597
740
  items: CommandItem[];
598
741
  /**
599
742
  * Names the search field for assistive technology. It is the field's own name — a palette's
600
- * heading names the surface — so it is not rendered as visible copy.
743
+ * heading names the surface — so it is not rendered as visible copy. Defaults to "Search commands".
601
744
  */
602
- label: string;
745
+ label?: string;
603
746
  /**
604
747
  * What choosing a command does. A command performs an action rather than holding a value, so
605
748
  * this is the next domain value rather than an event, and activating one leaves the query and
@@ -612,9 +755,12 @@ interface CommandProps {
612
755
  defaultValue?: string;
613
756
  /** Base's own query-change callback, event details included. */
614
757
  onValueChange?: (value: string, eventDetails: CommandQueryChangeDetails) => void;
758
+ /** The search field's placeholder. Defaults to the placeholder in `labels`. */
615
759
  placeholder?: string;
616
- /** Shown in place of the list when the query matches no command. */
760
+ /** Shown in place of the list when the query matches no command. Defaults to the empty text in `labels`. */
617
761
  emptyMessage?: ReactNode;
762
+ /** The English copy the list names itself and its parts with. The props above take precedence over it. */
763
+ labels?: Partial<CommandLabels>;
618
764
  disabled?: boolean;
619
765
  /** A string comparison locale for the default matching. */
620
766
  locale?: string;
@@ -648,6 +794,23 @@ interface CommandProps {
648
794
  */
649
795
  declare const Command: React__default.ForwardRefExoticComponent<CommandProps & React__default.RefAttributes<HTMLInputElement>>;
650
796
 
797
+ /**
798
+ * Where a viewport-owning surface is attached. `center` is a dialog: it has no edge, so it rises
799
+ * into the middle of the viewport and takes the modal presence. Every other value is a sheet
800
+ * attached to that edge of the viewport, and slides out of it.
801
+ */
802
+ type DialogAttachment = "center" | "bottom" | "top" | "left" | "right";
803
+ type DialogTriggerProps = TriggerProps & {
804
+ /** The element the trigger's own props are handed to — usually a Sherick `Button`. */
805
+ render?: ReactElement;
806
+ };
807
+ /**
808
+ * The control that opens a dialog-family surface. It renders in the page rather than in the portal,
809
+ * so the reader sees the control they pressed and the surface arrives from it. Base's trigger closes
810
+ * the surface through its own root, so no open state is needed beside it.
811
+ */
812
+ declare const DialogTrigger: ({ render, ...props }: DialogTriggerProps) => React__default.JSX.Element;
813
+
651
814
  interface CommandPaletteProps extends Omit<CommandProps, "className" | "id"> {
652
815
  /** The surface's own heading. It names the dialog. */
653
816
  title: string;
@@ -656,15 +819,23 @@ interface CommandPaletteProps extends Omit<CommandProps, "className" | "id"> {
656
819
  /**
657
820
  * The element the trigger's own props are handed to — usually a Sherick `Button`. The palette
658
821
  * opens from whatever this renders, so the control that opens it looks like the control it is.
822
+ * It is a convenience over `CommandPalette.Trigger`, which does the same thing as a part.
659
823
  */
660
824
  trigger?: ReactElement;
825
+ /** `CommandPalette.Trigger` parts that open the palette. They render in the page, beside the trigger. */
826
+ children?: ReactNode;
661
827
  open?: boolean;
662
828
  defaultOpen?: boolean;
663
829
  /** Base's own open-change callback, event details included. */
664
830
  onOpenChange?: Dialog$1.Root.Props["onOpenChange"];
665
831
  /** Adds to the dialog surface's own shell. */
666
832
  className?: string;
833
+ /** The accessible name of the dismissal control. Defaults to "Close command palette". */
834
+ closeLabel?: string;
667
835
  }
836
+ type CommandPaletteComponent = ForwardRefExoticComponent<CommandPaletteProps & RefAttributes<HTMLInputElement>> & {
837
+ Trigger: typeof DialogTrigger;
838
+ };
668
839
  /**
669
840
  * The same command list as a surface that owns the viewport: a palette. It is a `Dialog` — Base's
670
841
  * dialog root, the shared `DialogSurface` and dismissal, with a compact command header — with one
@@ -681,7 +852,7 @@ interface CommandPaletteProps extends Omit<CommandProps, "className" | "id"> {
681
852
  * focus, and a run command closes the surface through Base's own actions instead of through an
682
853
  * open state kept here.
683
854
  */
684
- declare const CommandPalette: React__default.ForwardRefExoticComponent<CommandPaletteProps & React__default.RefAttributes<HTMLInputElement>>;
855
+ declare const CommandPalette: CommandPaletteComponent;
685
856
 
686
857
  interface DatePickerProps {
687
858
  /** The selected date, or `null` for no selection. Undefined makes the picker uncontrolled. */
@@ -690,7 +861,11 @@ interface DatePickerProps {
690
861
  /** Receives the next date, or `null` when the field is cleared. */
691
862
  onValueChange?: (value: CalendarDate | null) => void;
692
863
  /** The field's label. It names the native field, its control and the calendar popup. */
693
- label: string;
864
+ label?: ReactNode;
865
+ /** Names the field when `label` is absent or is not text, since the popup and its control need words. */
866
+ "aria-label"?: string;
867
+ /** The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. */
868
+ size?: FieldSize;
694
869
  description?: ReactNode;
695
870
  error?: ReactNode;
696
871
  required?: boolean;
@@ -868,13 +1043,13 @@ declare const edgeTone: {
868
1043
  * column header — so a caller names the join it is drawing rather than picking an opacity.
869
1044
  */
870
1045
  type DividerWeight = keyof typeof edgeTone;
871
- interface DividerProps {
1046
+ interface DividerProps extends Omit<ComponentPropsWithoutRef<"div">, "className"> {
872
1047
  className?: string;
873
1048
  orientation?: "horizontal" | "vertical";
874
1049
  /** The weight of the line. `rule` is the general section break. */
875
1050
  weight?: DividerWeight;
876
1051
  }
877
- declare const Divider: ({ className, orientation, weight }: DividerProps) => React__default.JSX.Element;
1052
+ declare const Divider: React__default.ForwardRefExoticComponent<DividerProps & React__default.RefAttributes<HTMLDivElement>>;
878
1053
 
879
1054
  interface SelectOption {
880
1055
  label: string;
@@ -897,43 +1072,21 @@ interface SelectProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "val
897
1072
  /** Base's value-change event details are passed through unchanged. */
898
1073
  onValueChange?: (value: string | null, eventDetails: SelectChangeDetails) => void;
899
1074
  placeholder?: string;
900
- readOnly?: boolean;
901
- required?: boolean;
902
- }
903
- declare const Select: React__default.ForwardRefExoticComponent<SelectProps & React__default.RefAttributes<HTMLButtonElement>>;
904
-
905
- interface FieldProps extends Omit<ComponentProps<typeof Field$1.Root>, "children" | "className" | "ref"> {
906
- /** The field's label. Base UI associates it with the control and names the group. */
907
- label?: ReactNode;
908
- /** Supporting copy beneath the control. */
909
- description?: ReactNode;
910
1075
  /**
911
- * The message shown while the field is invalid. Its presence is what makes the field invalid,
912
- * so an error can never be rendered without the state that explains it. Omit it and Base UI's
913
- * own validation message is shown instead.
914
- */
915
- error?: ReactNode;
916
- /**
917
- * Renders the required mark beside the label. This is presentational only: the requirement
918
- * itself can only be declared by the control, so pass `required` to the control as well —
919
- * every example, fixture and test in this repository does.
1076
+ * Shown in the list when there are no options. With no message either, the list does not open at all,
1077
+ * so an empty select never shows an empty sheet.
920
1078
  */
1079
+ emptyMessage?: ReactNode;
1080
+ /** Waiting for its options: a spinner takes the chevron's place and the trigger reports itself busy. */
1081
+ loading?: boolean;
1082
+ /** The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. */
1083
+ size?: FieldSize;
1084
+ /** Styles the list's own sheet. The trigger is styled through `className`, and the rows style themselves. */
1085
+ popupClassName?: string;
1086
+ readOnly?: boolean;
921
1087
  required?: boolean;
922
- /** Styles the field's own column. The control inside styles itself. */
923
- className?: string;
924
- /**
925
- * A Base-backed control that is one control: `Checkbox`, `Slider` or `NumberField`. A
926
- * group of controls names itself — `RadioGroup` carries its own label — because the
927
- * field's label belongs to the single control it validates.
928
- */
929
- children: ReactNode;
930
1088
  }
931
- /**
932
- * Labels and validates one form control. Base UI owns the generated IDs and the
933
- * `aria-describedby` / `aria-invalid` wiring; this component owns only the order and the
934
- * typography of label, control, description and error.
935
- */
936
- declare const Field: React__default.ForwardRefExoticComponent<FieldProps & React__default.RefAttributes<HTMLDivElement>>;
1089
+ declare const Select: React__default.ForwardRefExoticComponent<SelectProps & React__default.RefAttributes<HTMLButtonElement>>;
937
1090
 
938
1091
  type RejectionCode = "type" | "size" | "count";
939
1092
  /** One file a selection operation refused, with the reason it was refused. */
@@ -943,6 +1096,15 @@ interface FileRejection {
943
1096
  message: string;
944
1097
  }
945
1098
 
1099
+ /** The copy of the selection's announcements. Each default is the text the field has always announced. */
1100
+ interface FileUploadLabels {
1101
+ /** Announced when one file is removed. */
1102
+ removedFile: (name: string) => string;
1103
+ /** Announced when several files are removed. */
1104
+ removedFiles: (count: number) => string;
1105
+ /** Announced when files are added. */
1106
+ addedFiles: (count: number) => string;
1107
+ }
946
1108
  /**
947
1109
  * A labelled field that selects files from the native picker or by dropping them on its zone.
948
1110
  *
@@ -958,8 +1120,8 @@ interface FileRejection {
958
1120
  * drop, and a mixed batch keeps whatever was valid.
959
1121
  */
960
1122
  interface FileUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "onChange" | "defaultValue"> {
961
- /** The field's label. It names the picker. */
962
- label: string;
1123
+ /** The field's label. It names the picker when it is text, and is absent when the zone speaks for itself. */
1124
+ label?: ReactNode;
963
1125
  /** Supporting copy beneath the field. */
964
1126
  description?: ReactNode;
965
1127
  /**
@@ -994,6 +1156,8 @@ interface FileUploadProps extends Omit<HTMLAttributes<HTMLDivElement>, "children
994
1156
  removeLabel?: (file: File) => string;
995
1157
  /** The accessible name of the control that empties the selection. */
996
1158
  clearLabel?: string;
1159
+ /** The copy of the selection's announcements, for a locale or a product's wording. */
1160
+ labels?: Partial<FileUploadLabels>;
997
1161
  }
998
1162
  declare const FileUpload: React__default.ForwardRefExoticComponent<FileUploadProps & React__default.RefAttributes<HTMLInputElement>>;
999
1163
 
@@ -1023,19 +1187,31 @@ interface FormProps extends Omit<ComponentProps<typeof Form$1>, "className" | "r
1023
1187
  */
1024
1188
  declare const Form: React__default.ForwardRefExoticComponent<FormProps & React__default.RefAttributes<HTMLFormElement>>;
1025
1189
 
1026
- type IconButtonAppearance = "tonal" | "ghost" | "acrylic";
1190
+ type IconButtonAppearance = "tonal" | "filled" | "text" | "ghost" | "acrylic";
1191
+ type IconButtonSize = "target" | "compact";
1027
1192
  interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1028
1193
  variant?: Variant;
1029
1194
  appearance?: IconButtonAppearance;
1195
+ size?: IconButtonSize;
1030
1196
  icon?: ReactNode;
1031
1197
  loading?: boolean;
1198
+ /**
1199
+ * The element the button renders as, such as a router link. The button's classes and its own props
1200
+ * are merged onto it, so the link keeps the button's look and its own navigation.
1201
+ */
1202
+ render?: ReactElement;
1032
1203
  }
1033
1204
  declare const IconButton: React__default.ForwardRefExoticComponent<IconButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
1034
1205
 
1035
- interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "prefix"> {
1206
+ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "prefix" | "size"> {
1036
1207
  label?: ReactNode;
1037
1208
  description?: ReactNode;
1038
- error?: boolean;
1209
+ /**
1210
+ * Marks the field invalid. A message is shown beneath it, so a `ReactNode` here is both the flag and
1211
+ * its message. `true` marks the field without one, and `errorMessage` supplies the message.
1212
+ */
1213
+ error?: ReactNode;
1214
+ /** The message for `error={true}`. A message passed as `error` takes its place. */
1039
1215
  errorMessage?: ReactNode;
1040
1216
  inputClassName?: string;
1041
1217
  /** Base's value-change callback, event details included. */
@@ -1047,26 +1223,29 @@ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "prefix
1047
1223
  prefix?: ReactNode;
1048
1224
  /** Text or a mark at the end of the field, such as `tickets` or `.discord.gg`. Presentation only. */
1049
1225
  suffix?: ReactNode;
1226
+ /**
1227
+ * The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. A number is the
1228
+ * native `size` attribute of the input, as it always was.
1229
+ */
1230
+ size?: FieldSize | number;
1050
1231
  }
1051
1232
  declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement>>;
1052
1233
 
1053
- type DialogContentProps = HTMLAttributes<HTMLDivElement>;
1054
- declare const DialogContent: ({ children, className, ...props }: DialogContentProps) => React__default.JSX.Element;
1234
+ /** The body's own `div`. It keeps the body meaning it has always had. */
1235
+ type DialogContentProps = PartProps<"div">;
1236
+ declare const DialogContent: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1055
1237
 
1238
+ /** The supporting line's own `p`, as Base renders it. */
1056
1239
  type DialogDescriptionProps = ComponentPropsWithoutRef<typeof Dialog$1.Description>;
1057
- declare const DialogDescription: ({ className, ...props }: DialogDescriptionProps) => React__default.JSX.Element;
1240
+ declare const DialogDescription: React__default.ForwardRefExoticComponent<Omit<Omit<_base_ui_react.AlertDialogDescriptionProps, "ref"> & React__default.RefAttributes<HTMLParagraphElement>, "ref"> & React__default.RefAttributes<HTMLParagraphElement>>;
1058
1241
 
1059
- interface DialogFooterProps {
1060
- children: ReactNode;
1061
- className?: string;
1062
- }
1063
- declare const DialogFooter: ({ children, className }: DialogFooterProps) => React__default.JSX.Element;
1242
+ /** The footer's own `div`, which holds the dialog's actions. */
1243
+ type DialogFooterProps = PartProps<"div">;
1244
+ declare const DialogFooter: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1064
1245
 
1065
- interface DialogHeaderProps {
1066
- children: ReactNode;
1067
- className?: string;
1068
- }
1069
- declare const DialogHeader: ({ children, className }: DialogHeaderProps) => React__default.JSX.Element;
1246
+ /** The header's own `div`. Its children are the title: Base names the surface from them. */
1247
+ type DialogHeaderProps = PartProps<"div">;
1248
+ declare const DialogHeader: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1070
1249
 
1071
1250
  interface DialogProps {
1072
1251
  children: ReactNode;
@@ -1075,12 +1254,22 @@ interface DialogProps {
1075
1254
  /** Base's open-change callback, event details included. */
1076
1255
  onOpenChange?: Dialog$1.Root.Props["onOpenChange"];
1077
1256
  className?: string;
1257
+ /** The accessible name of the dismissal control. Defaults to "Close dialog". */
1258
+ closeLabel?: string;
1078
1259
  }
1260
+ /**
1261
+ * The close control of a dialog. It is Base's own close part, so whatever the caller renders closes
1262
+ * the dialog through Base, with no open state of the caller's own.
1263
+ */
1264
+ type DialogCloseProps = ComponentProps<typeof Dialog$1.Close>;
1265
+ declare const DialogClose: (props: DialogCloseProps) => React__default.JSX.Element;
1079
1266
  type DialogComponent = ForwardRefExoticComponent<DialogProps & RefAttributes<HTMLDivElement>> & {
1080
1267
  Header: typeof DialogHeader;
1081
1268
  Description: typeof DialogDescription;
1082
1269
  Content: typeof DialogContent;
1083
1270
  Footer: typeof DialogFooter;
1271
+ Trigger: typeof DialogTrigger;
1272
+ Close: typeof DialogClose;
1084
1273
  };
1085
1274
  declare const Dialog: DialogComponent;
1086
1275
 
@@ -1101,7 +1290,7 @@ interface MenuTriggerProps {
1101
1290
  /** Adds to the rendered element. The trigger writes no visual rules of its own. */
1102
1291
  className?: string;
1103
1292
  }
1104
- interface MenuContentProps {
1293
+ interface MenuContentProps extends Omit<PartProps<"div">, "children" | "className"> {
1105
1294
  children: ReactNode;
1106
1295
  /** Adds to the popup's own shell. The sheet's material, shape and elevation are the recipe's. */
1107
1296
  className?: string;
@@ -1128,10 +1317,23 @@ interface MenuItemProps {
1128
1317
  disabled?: boolean;
1129
1318
  /** What choosing the action does. The menu closes afterwards; that is Base's contract. */
1130
1319
  onClick?: MouseEventHandler<HTMLDivElement>;
1320
+ /** The row's leading mark. It takes the command icon's slot, beside the label. */
1321
+ icon?: ReactNode;
1322
+ /** The gesture that runs this action elsewhere. It is a hint, and the menu registers no shortcut. */
1323
+ shortcut?: ReactNode;
1324
+ /**
1325
+ * Renders the row as another element, such as a link. Base hands the row's own attributes and its
1326
+ * handlers to that element, so the row keeps its menu behaviour.
1327
+ */
1328
+ render?: ReactElement;
1131
1329
  }
1132
1330
  interface MenuSeparatorProps {
1133
1331
  className?: string;
1134
1332
  }
1333
+ /** A group of rows, announced under its label. */
1334
+ type MenuGroupProps = PartProps<"div">;
1335
+ /** The heading of a group. Base names the group from it, so it is read as the group begins. */
1336
+ type MenuLabelProps = PartProps<"div">;
1135
1337
  /**
1136
1338
  * A surface of actions. Each item acts and the menu closes; nothing here holds a value, so a
1137
1339
  * value-selection surface is `Select` or `Combobox` rather than a menu. Base UI owns keyboard
@@ -1147,11 +1349,21 @@ type MenuComponent = ((props: MenuProps) => React__default.JSX.Element) & {
1147
1349
  Content: typeof MenuContent;
1148
1350
  Item: typeof MenuItem;
1149
1351
  Separator: typeof MenuSeparator;
1352
+ Group: typeof MenuGroup;
1353
+ Label: typeof MenuLabel;
1150
1354
  };
1151
- declare const MenuContent: ({ children, className, side, align, sideOffset, alignOffset, }: MenuContentProps) => React__default.JSX.Element;
1355
+ declare const MenuContent: ({ children, className, side, align, sideOffset, alignOffset, ...props }: MenuContentProps) => React__default.JSX.Element;
1152
1356
  declare const MenuTrigger: ({ ...props }: MenuTriggerProps) => React__default.JSX.Element;
1153
1357
  declare const MenuItem: {
1154
- ({ variant, className, children, ...props }: MenuItemProps): React__default.JSX.Element;
1358
+ ({ variant, className, children, icon, shortcut, render, ...props }: MenuItemProps): React__default.JSX.Element;
1359
+ displayName: string;
1360
+ };
1361
+ declare const MenuGroup: {
1362
+ ({ className, ...props }: MenuGroupProps): React__default.JSX.Element;
1363
+ displayName: string;
1364
+ };
1365
+ declare const MenuLabel: {
1366
+ ({ className, ...props }: MenuLabelProps): React__default.JSX.Element;
1155
1367
  displayName: string;
1156
1368
  };
1157
1369
  declare const MenuSeparator: ({ className }: MenuSeparatorProps) => React__default.JSX.Element;
@@ -1207,6 +1419,8 @@ declare const Media: {
1207
1419
  interface NavGroupItem {
1208
1420
  label: string;
1209
1421
  href: string;
1422
+ /** The element this destination renders as, such as a router link. It takes precedence over `renderLink`. */
1423
+ render?: ReactElement;
1210
1424
  }
1211
1425
  /** The heading level a group labels itself with. A navigation group owns a real heading, because
1212
1426
  * that is what makes a column of destinations scannable as groups; which level it is depends on
@@ -1220,17 +1434,28 @@ interface NavGroupProps {
1220
1434
  * in: a group under a page title is a level 2, one in a sidebar section is whatever its
1221
1435
  * neighbours are. The default matches the package's other grouped surfaces. */
1222
1436
  headingLevel?: NavGroupHeadingLevel;
1437
+ /**
1438
+ * Renders each destination as the caller's own link, such as a router link. It receives the item and the
1439
+ * row's attributes — the destination, the current marker, the shared classes and the label — the same way
1440
+ * `Breadcrumb` does. An item's own `render` takes precedence over it.
1441
+ */
1442
+ renderLink?: (item: NavGroupItem, props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;
1223
1443
  className?: string;
1224
1444
  }
1225
- declare const NavGroup: ({ title, items, activeHref, headingLevel, className }: NavGroupProps) => React__default.JSX.Element;
1445
+ declare const NavGroup: ({ title, items, activeHref, headingLevel, renderLink, className }: NavGroupProps) => React__default.JSX.Element;
1226
1446
 
1227
1447
  interface NavItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
1228
1448
  children: ReactNode;
1229
1449
  href: string;
1230
1450
  icon?: ReactNode;
1231
1451
  active?: boolean;
1452
+ /**
1453
+ * The element the row renders as, such as a router link. The row's classes, its current marker and its
1454
+ * own props are merged onto it, so the link is the row and keeps its own navigation.
1455
+ */
1456
+ render?: ReactElement;
1232
1457
  }
1233
- declare const NavItem: ({ children, icon, className, href, active, ...props }: NavItemProps) => React__default.JSX.Element;
1458
+ declare const NavItem: ({ children, icon, className, href, active, render, ...props }: NavItemProps) => React__default.JSX.Element;
1234
1459
 
1235
1460
  interface NumberFieldProps extends Omit<ComponentProps<"input">, "value" | "defaultValue" | "onChange" | "min" | "max" | "step" | "type" | "size" | "ref" | "prefix"> {
1236
1461
  value?: number | null;
@@ -1258,6 +1483,8 @@ interface NumberFieldProps extends Omit<ComponentProps<"input">, "value" | "defa
1258
1483
  * name the unit in the label as well.
1259
1484
  */
1260
1485
  suffix?: ReactNode;
1486
+ /** The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. */
1487
+ size?: FieldSize;
1261
1488
  disabled?: boolean;
1262
1489
  readOnly?: boolean;
1263
1490
  required?: boolean;
@@ -1268,6 +1495,8 @@ interface NumberFieldProps extends Omit<ComponentProps<"input">, "value" | "defa
1268
1495
  inputRef?: Ref<HTMLInputElement>;
1269
1496
  /** Styles the field's own container. The text input is styled through `inputClassName`. */
1270
1497
  className?: string;
1498
+ /** Styles the field's box: the tray that holds the steppers and the value. */
1499
+ fieldClassName?: string;
1271
1500
  inputClassName?: string;
1272
1501
  }
1273
1502
  /**
@@ -1276,6 +1505,19 @@ interface NumberFieldProps extends Omit<ComponentProps<"input">, "value" | "defa
1276
1505
  */
1277
1506
  declare const NumberField: React__default.ForwardRefExoticComponent<NumberFieldProps & React__default.RefAttributes<HTMLInputElement>>;
1278
1507
 
1508
+ /** The English copy a pagination names itself and its parts with. Any of it can be replaced. */
1509
+ interface PaginationLabels {
1510
+ /** The landmark's accessible name. */
1511
+ navigation: string;
1512
+ /** The accessible name of the step back. */
1513
+ previous: string;
1514
+ /** The accessible name of the step forward. */
1515
+ next: string;
1516
+ /** The accessible name of a page control. */
1517
+ page: (page: number) => string;
1518
+ /** Read before the page total, so the current page reads as "3 of 12". */
1519
+ of: string;
1520
+ }
1279
1521
  interface PaginationProps extends Omit<ComponentPropsWithoutRef<"nav">, "children" | "defaultValue" | "onChange"> {
1280
1522
  /** Total number of pages. `0` is a valid pagination with nothing to navigate to. */
1281
1523
  count: number;
@@ -1290,12 +1532,20 @@ interface PaginationProps extends Omit<ComponentPropsWithoutRef<"nav">, "childre
1290
1532
  disabled?: boolean;
1291
1533
  /** Renders every available page as a real anchor to the href this returns. */
1292
1534
  getPageHref?: (page: number) => string;
1535
+ /**
1536
+ * Renders each of those anchors as the caller's own link, such as a router link, in place of the plain
1537
+ * anchor. It receives the page and the anchor's props — the href, the accessible name, the shared classes,
1538
+ * the page's content and the activation handler — and it only applies where `getPageHref` gives an href.
1539
+ */
1540
+ renderLink?: (page: number, props: ComponentPropsWithoutRef<"a">) => ReactNode;
1293
1541
  /** The accessible name of a page control. Defaults to `Page {page}`. */
1294
1542
  getPageLabel?: (page: number) => string;
1295
1543
  /** Defaults to `Previous page`. */
1296
1544
  previousLabel?: string;
1297
1545
  /** Defaults to `Next page`. */
1298
1546
  nextLabel?: string;
1547
+ /** The English copy the pagination names itself with. The props above take precedence over it. */
1548
+ labels?: Partial<PaginationLabels>;
1299
1549
  }
1300
1550
  declare const Pagination: React.ForwardRefExoticComponent<PaginationProps & React.RefAttributes<HTMLElement>>;
1301
1551
 
@@ -1316,15 +1566,13 @@ interface PopoverTriggerProps {
1316
1566
  /** Adds to the rendered element. The trigger writes no visual rules of its own. */
1317
1567
  className?: string;
1318
1568
  }
1319
- interface PopoverTitleProps {
1320
- children: ReactNode;
1321
- className?: string;
1322
- }
1323
- interface PopoverDescriptionProps {
1324
- children: ReactNode;
1325
- className?: string;
1326
- }
1327
- interface PopoverContentProps {
1569
+ /** The close control of a popover, as Base's own close part. It closes the surface through Base. */
1570
+ type PopoverCloseProps = ComponentProps<typeof Popover$1.Close>;
1571
+ /** The heading's own `h2`. Base names the popup from it when it is present. */
1572
+ type PopoverTitleProps = PartProps<"h2">;
1573
+ /** The line under the title, as the element Base wires up as the popup's description. */
1574
+ type PopoverDescriptionProps = PartProps<"p">;
1575
+ interface PopoverContentProps extends Omit<PartProps<"div">, "children" | "className"> {
1328
1576
  children: ReactNode;
1329
1577
  /** Adds to the popup's own shell. The sheet's material, shape and elevation are the recipe's. */
1330
1578
  className?: string;
@@ -1351,11 +1599,13 @@ type PopoverComponent = ((props: PopoverProps) => React__default.JSX.Element) &
1351
1599
  Content: typeof PopoverContent;
1352
1600
  Title: typeof PopoverTitle;
1353
1601
  Description: typeof PopoverDescription;
1602
+ Close: typeof PopoverClose;
1354
1603
  };
1355
1604
  declare const PopoverTrigger: ({ ...props }: PopoverTriggerProps) => React__default.JSX.Element;
1356
- declare const PopoverContent: ({ children, className, side, align, sideOffset, alignOffset, }: PopoverContentProps) => React__default.JSX.Element;
1357
- declare const PopoverTitle: ({ children, className }: PopoverTitleProps) => React__default.JSX.Element;
1358
- declare const PopoverDescription: ({ children, className }: PopoverDescriptionProps) => React__default.JSX.Element;
1605
+ declare const PopoverClose: (props: PopoverCloseProps) => React__default.JSX.Element;
1606
+ declare const PopoverContent: React__default.ForwardRefExoticComponent<PopoverContentProps & React__default.RefAttributes<HTMLDivElement>>;
1607
+ declare const PopoverTitle: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & React__default.RefAttributes<HTMLHeadingElement>>;
1608
+ declare const PopoverDescription: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React__default.RefAttributes<HTMLParagraphElement>>;
1359
1609
  declare const Popover: PopoverComponent;
1360
1610
 
1361
1611
  interface ProgressProps extends Omit<ComponentProps<"div">, "children">, Pick<Progress$1.Root.Props, "min" | "max" | "format" | "locale" | "getAriaValueText"> {
@@ -1423,14 +1673,32 @@ interface RadioGroupProps extends Omit<ComponentProps<"div">, "onChange" | "defa
1423
1673
  */
1424
1674
  declare const RadioGroup: React__default.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1425
1675
 
1426
- interface SearchProps extends InputHTMLAttributes<HTMLInputElement> {
1676
+ interface SearchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
1427
1677
  onSearch: (value: string) => void;
1428
1678
  /** Base's value-change callback, event details included. */
1429
1679
  onValueChange?: Input$1.Props["onValueChange"];
1680
+ /**
1681
+ * The tone of the submit control. It defaults to `secondary`, the neutral tonal control, so the
1682
+ * search field stays quiet beside the page and the one primary action keeps the strong fill.
1683
+ */
1430
1684
  variant?: Variant;
1685
+ /** Waiting for a result: the submit control shows a spinner and cannot be pressed again. */
1431
1686
  loading?: boolean;
1432
1687
  debounceMs?: number;
1688
+ /** Styles the search box itself: the tray that holds the input and its submit control. */
1689
+ className?: string;
1690
+ /** Styles the field's own column, which holds the box, the description and the error. */
1691
+ fieldClassName?: string;
1433
1692
  inputClassName?: string;
1693
+ /** Supporting copy beneath the field. */
1694
+ description?: ReactNode;
1695
+ /**
1696
+ * Marks the field invalid, and a message is shown beneath it. `true` marks it without a message of
1697
+ * its own, so give the field a message that says how to recover.
1698
+ */
1699
+ error?: ReactNode;
1700
+ /** The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. A number is the native `size` attribute. */
1701
+ size?: FieldSize | number;
1434
1702
  }
1435
1703
  declare const Search: React__default.ForwardRefExoticComponent<SearchProps & React__default.RefAttributes<HTMLInputElement>>;
1436
1704
 
@@ -1473,7 +1741,7 @@ interface SegmentedControlProps extends Omit<ComponentProps<"div">, "onChange" |
1473
1741
  declare const SegmentedControl: React__default.ForwardRefExoticComponent<Omit<SegmentedControlProps, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1474
1742
 
1475
1743
  type SkeletonProps = HTMLAttributes<HTMLDivElement>;
1476
- declare const Skeleton: ({ className, "aria-hidden": ariaHidden, ...props }: SkeletonProps) => React__default.JSX.Element;
1744
+ declare const Skeleton: React__default.ForwardRefExoticComponent<SkeletonProps & React__default.RefAttributes<HTMLDivElement>>;
1477
1745
 
1478
1746
  interface SliderProps extends Omit<ComponentProps<"div">, "defaultValue" | "onChange" | "children"> {
1479
1747
  value?: number;
@@ -1508,14 +1776,19 @@ declare const Slider: React__default.ForwardRefExoticComponent<Omit<SliderProps,
1508
1776
  declare const spinnerVariants: (props?: ({
1509
1777
  show?: boolean | null | undefined;
1510
1778
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1511
- declare const loaderVariants: (props?: ({
1512
- size?: "small" | "medium" | "large" | null | undefined;
1513
- } & class_variance_authority_types.ClassProp) | undefined) => string;
1514
- interface SpinnerProps extends VariantProps<typeof spinnerVariants>, VariantProps<typeof loaderVariants> {
1515
- className?: string;
1516
- children?: React__default.ReactNode;
1779
+ type SpinnerSize = "small" | "medium" | "large" | "sm" | "md" | "lg";
1780
+ interface SpinnerProps extends Omit<ComponentPropsWithoutRef<"span">, "children">, VariantProps<typeof spinnerVariants> {
1781
+ /** The loader's size. `sm`, `md` and `lg` are aliases of `small`, `medium` and `large`. */
1782
+ size?: SpinnerSize | null;
1783
+ /**
1784
+ * What the work is, read to a screen reader. A spinner with a label, or with visible children, is a status
1785
+ * that announces itself. A spinner with neither is decoration, and assistive technology skips it.
1786
+ */
1787
+ label?: string;
1788
+ /** Visible copy beside the loader. */
1789
+ children?: ReactNode;
1517
1790
  }
1518
- declare function Spinner({ size, show, children, className }: SpinnerProps): React__default.JSX.Element;
1791
+ declare const Spinner: React__default.ForwardRefExoticComponent<SpinnerProps & React__default.RefAttributes<HTMLSpanElement>>;
1519
1792
 
1520
1793
  interface StepperItem {
1521
1794
  value: string;
@@ -1539,6 +1812,8 @@ interface StepperProps extends Omit<ComponentProps<"nav">, "children" | "default
1539
1812
  /** Horizontal when the container has room; otherwise the same sequence stacks vertically. */
1540
1813
  orientation?: "horizontal" | "vertical";
1541
1814
  disabled?: boolean;
1815
+ /** The name a completed step's mark carries for a screen reader. Defaults to `Complete`. */
1816
+ completeLabel?: string;
1542
1817
  }
1543
1818
  declare const Stepper: React__default.ForwardRefExoticComponent<Omit<StepperProps, "ref"> & React__default.RefAttributes<HTMLElement>>;
1544
1819
 
@@ -1557,9 +1832,17 @@ interface SwitchProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "val
1557
1832
  declare const Switch: React__default.ForwardRefExoticComponent<SwitchProps & React__default.RefAttributes<HTMLButtonElement>>;
1558
1833
 
1559
1834
  type TabsChangeDetails = Parameters<NonNullable<Tabs$1.Root.Props["onValueChange"]>>[1];
1835
+ /** The English copy a tab list names itself with. */
1836
+ interface TabsLabels {
1837
+ /** The tab list's accessible name, when neither `aria-label` nor `aria-labelledby` names it. */
1838
+ list: string;
1839
+ }
1560
1840
  interface Tab {
1561
1841
  id: string;
1562
- label: string;
1842
+ /** The tab's name. The tab is named by its label, so the label may be any content a row can hold. */
1843
+ label: ReactNode;
1844
+ /** A mark before the label. It is decorative: the label alone names the tab. */
1845
+ icon?: ReactNode;
1563
1846
  content: ReactNode;
1564
1847
  disabled?: boolean;
1565
1848
  }
@@ -1571,9 +1854,16 @@ interface TabsProps {
1571
1854
  defaultValue?: string;
1572
1855
  /** Base's value-change event details are passed through unchanged. */
1573
1856
  onValueChange?: (tabId: string, eventDetails: TabsChangeDetails) => void;
1857
+ /** Names the tab list. Left unset, the list takes the name in `labels`. */
1858
+ "aria-label"?: string;
1859
+ /** Names the tab list from an element that already labels it. It takes precedence over a name. */
1860
+ "aria-labelledby"?: string;
1861
+ /** The same name as `aria-label`, kept for callers that already use it. */
1574
1862
  ariaLabel?: string;
1863
+ /** The English copy the tab list names itself with. */
1864
+ labels?: Partial<TabsLabels>;
1575
1865
  }
1576
- declare const Tabs: ({ tabs, variant, className, value, defaultValue, onValueChange, ariaLabel, }: TabsProps) => React__default.JSX.Element | null;
1866
+ declare const Tabs: ({ tabs, variant, className, value, defaultValue, onValueChange, "aria-label": ariaLabelProp, "aria-labelledby": ariaLabelledBy, ariaLabel, labels, }: TabsProps) => React__default.JSX.Element | null;
1577
1867
 
1578
1868
  interface ToggleGroupProps extends Omit<ToggleGroup$1.Props<string>, "className" | "render"> {
1579
1869
  /** Styles the group's own track. The segments style themselves. */
@@ -1606,27 +1896,46 @@ type ToggleGroupComponent = ForwardRefExoticComponent<ToggleGroupProps & RefAttr
1606
1896
  */
1607
1897
  declare const ToggleGroup: ToggleGroupComponent;
1608
1898
 
1609
- interface TableProps {
1610
- headers: Array<string | TableColumn>;
1611
- rows: ReactNode[][];
1612
- /** Classes for the outer scrollable surface. */
1613
- className?: string;
1614
- /** Classes for the native table element. */
1615
- tableClassName?: string;
1616
- }
1617
1899
  interface TableColumn {
1618
1900
  /** Stable identity for this column, shared by its header and body cells. */
1619
1901
  id: string;
1620
1902
  label: string;
1621
1903
  /** Classes applied to this column's header and body cells. */
1622
1904
  className?: string;
1905
+ /**
1906
+ * The column names each row, so its body cells are row headers (`th scope="row"`) rather than data.
1907
+ * A row header is what a screen reader announces with every cell beside it.
1908
+ */
1909
+ rowHeader?: boolean;
1623
1910
  }
1624
- declare const Table: ({ headers, rows, className, tableClassName, }: TableProps) => React__default.JSX.Element;
1911
+ interface TableProps extends Omit<ComponentPropsWithoutRef<"div">, "children" | "role"> {
1912
+ headers: Array<string | TableColumn>;
1913
+ rows: ReactNode[][];
1914
+ /**
1915
+ * The table's visible caption. A string caption also names the scrolling region, so a table with a
1916
+ * caption is never anonymous.
1917
+ */
1918
+ caption?: ReactNode;
1919
+ /** The one row shown when `rows` is empty, spanning every column. */
1920
+ emptyMessage?: ReactNode;
1921
+ /** A stable key for each row. The index is only right for rows that never reorder. */
1922
+ getRowKey?: (row: ReactNode[], index: number) => Key;
1923
+ /** Classes for the outer scrollable surface. */
1924
+ className?: string;
1925
+ /** Classes for the native table element. */
1926
+ tableClassName?: string;
1927
+ }
1928
+ declare const Table: React__default.ForwardRefExoticComponent<TableProps & React__default.RefAttributes<HTMLDivElement>>;
1625
1929
 
1626
1930
  interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
1627
1931
  label?: ReactNode;
1628
1932
  description?: ReactNode;
1629
- error?: boolean;
1933
+ /**
1934
+ * Marks the field invalid. A message is shown beneath it, so a `ReactNode` here is both the flag and
1935
+ * its message. `true` marks the field without one, and `errorMessage` supplies the message.
1936
+ */
1937
+ error?: ReactNode;
1938
+ /** The message for `error={true}`. A message passed as `error` takes its place. */
1630
1939
  errorMessage?: ReactNode;
1631
1940
  textareaClassName?: string;
1632
1941
  /** Base's value-change callback, event details included. */
@@ -1635,12 +1944,31 @@ interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
1635
1944
  declare const Textarea: React__default.ForwardRefExoticComponent<TextareaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
1636
1945
 
1637
1946
  interface TooltipProps {
1947
+ /** The trigger. The hint attaches to this element directly: no wrapper is rendered around it. */
1638
1948
  children: ReactElement;
1639
1949
  content: ReactNode;
1950
+ /** Adds to the trigger element. */
1640
1951
  className?: string;
1641
1952
  position?: "top" | "right" | "bottom" | "left";
1953
+ /** Where the hint sits along its edge. */
1954
+ align?: OverlayAlign;
1642
1955
  }
1643
- declare const Tooltip: ({ children, content, className, position }: TooltipProps) => React__default.JSX.Element;
1956
+ interface TooltipProviderProps {
1957
+ children: ReactNode;
1958
+ /** How long a hint waits on hover before it opens, in milliseconds. */
1959
+ delay?: number;
1960
+ /** How long a hint waits before it closes, in milliseconds. */
1961
+ closeDelay?: number;
1962
+ /** A hint opened within this window after another closes opens at once. Base's own default is 400ms. */
1963
+ timeout?: number;
1964
+ }
1965
+ /**
1966
+ * Shares one warm-up across every tooltip beneath it. Hovering a hint opens it after its delay; once a
1967
+ * hint closes, the next one opens at once while the pointer stays in the group. Four adjacent icon
1968
+ * buttons therefore show their hints without a wait each time.
1969
+ */
1970
+ declare const TooltipProvider: ({ children, delay, closeDelay, timeout }: TooltipProviderProps) => React__default.JSX.Element;
1971
+ declare const Tooltip: ({ children, content, className, position, align }: TooltipProps) => React__default.JSX.Element;
1644
1972
 
1645
1973
  /**
1646
1974
  * The finite static tree a `TreeView` presents.
@@ -1706,13 +2034,6 @@ interface TreeViewProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"
1706
2034
  */
1707
2035
  declare const TreeView: React__default.ForwardRefExoticComponent<TreeViewProps & React__default.RefAttributes<HTMLDivElement>>;
1708
2036
 
1709
- /**
1710
- * Where a viewport-owning surface is attached. `center` is a dialog: it has no edge, so it rises
1711
- * into the middle of the viewport and takes the modal presence. Every other value is a sheet
1712
- * attached to that edge of the viewport, and slides out of it.
1713
- */
1714
- type DialogAttachment = "center" | "bottom" | "top" | "left" | "right";
1715
-
1716
2037
  /**
1717
2038
  * The viewport edge a sheet is attached to. Sides are **physical** rather than logical: the
1718
2039
  * contract places the sheet against that edge of the screen rather than resolving a writing
@@ -1728,6 +2049,8 @@ interface DrawerProps {
1728
2049
  onOpenChange?: Dialog$1.Root.Props["onOpenChange"];
1729
2050
  /** The edge the sheet is attached to. */
1730
2051
  side?: DrawerSide;
2052
+ /** The accessible name of the sheet's dismissal control. Defaults to "Close". */
2053
+ closeLabel?: string;
1731
2054
  }
1732
2055
  interface DrawerTriggerProps {
1733
2056
  /**
@@ -1739,23 +2062,14 @@ interface DrawerTriggerProps {
1739
2062
  /** Adds to the rendered element. The trigger writes no visual rules of its own. */
1740
2063
  className?: string;
1741
2064
  }
1742
- interface DrawerContentProps {
1743
- children: ReactNode;
1744
- /** Adds to the sheet's own surface. Its shell, elevation and presence are the recipe's. */
1745
- className?: string;
1746
- }
1747
- interface DrawerHeaderProps {
1748
- children: ReactNode;
1749
- className?: string;
1750
- }
1751
- interface DrawerDescriptionProps {
1752
- children: ReactNode;
1753
- className?: string;
1754
- }
1755
- interface DrawerFooterProps {
1756
- children: ReactNode;
1757
- className?: string;
1758
- }
2065
+ /** The sheet's own surface element: the popup, which takes the rest props and the ref. */
2066
+ type DrawerContentProps = PartProps<"div">;
2067
+ /** The header's own `div`. */
2068
+ type DrawerHeaderProps = PartProps<"div">;
2069
+ /** The supporting line's own `p`. */
2070
+ type DrawerDescriptionProps = PartProps<"p">;
2071
+ /** The footer's own `div`. */
2072
+ type DrawerFooterProps = PartProps<"div">;
1759
2073
  type DrawerComponent = ((props: DrawerProps) => React__default.JSX.Element) & {
1760
2074
  Trigger: typeof DrawerTrigger;
1761
2075
  Content: typeof DrawerContent;
@@ -1775,10 +2089,10 @@ declare const DrawerTrigger: ({ ...props }: DrawerTriggerProps) => React__defaul
1775
2089
  * traps focus, restores it, locks the page and dismisses exactly as a dialog does. Use a `Dialog`
1776
2090
  * when the surface has no edge.
1777
2091
  */
1778
- declare const DrawerContent: ({ children, className }: DrawerContentProps) => React__default.JSX.Element;
1779
- declare const DrawerHeader: ({ children, className }: DrawerHeaderProps) => React__default.JSX.Element;
1780
- declare const DrawerDescription: ({ children, className }: DrawerDescriptionProps) => React__default.JSX.Element;
1781
- declare const DrawerFooter: ({ children, className }: DrawerFooterProps) => React__default.JSX.Element;
2092
+ declare const DrawerContent: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
2093
+ declare const DrawerHeader: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
2094
+ declare const DrawerDescription: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React__default.RefAttributes<HTMLParagraphElement>>;
2095
+ declare const DrawerFooter: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
1782
2096
  declare const DrawerClose: (props: ComponentProps<typeof Dialog$1.Close>) => React__default.JSX.Element;
1783
2097
  /**
1784
2098
  * A surface attached to one edge of the viewport: a bottom sheet, a side panel, a top drawer. It
@@ -1819,7 +2133,11 @@ interface ToastOptions {
1819
2133
  type?: ToastType;
1820
2134
  title?: ReactNode;
1821
2135
  description?: ReactNode;
1822
- /** How long it stays before dismissing itself. `0` keeps it until it is dismissed. */
2136
+ /**
2137
+ * How long it stays before dismissing itself. `0` keeps it until it is dismissed. Left unset, a
2138
+ * toast with an action or a `danger` type is sticky: its action is a decision to make and its
2139
+ * danger is one to acknowledge, so it waits. Any other toast keeps the provider's timeout.
2140
+ */
1823
2141
  timeout?: number;
1824
2142
  /** How urgently it is announced. `high` interrupts rather than waiting its turn. */
1825
2143
  priority?: "low" | "high";
@@ -1869,9 +2187,27 @@ interface ToastProviderProps {
1869
2187
  /** A manager built with `createToastManager`, for raising a toast from outside React. */
1870
2188
  manager?: ToastManager;
1871
2189
  }
2190
+ /**
2191
+ * The words a toast gives its own status when it has no title, so an assistive technology can name it.
2192
+ * Each one is the English default, and each can be replaced with the application's own wording.
2193
+ */
2194
+ interface ToastLabels {
2195
+ info: string;
2196
+ success: string;
2197
+ warning: string;
2198
+ danger: string;
2199
+ error: string;
2200
+ loading: string;
2201
+ /** The name of a toast that reports no type this library knows. */
2202
+ notification: string;
2203
+ }
1872
2204
  interface ToastViewportProps {
1873
2205
  /** The corner the stack grows from. It is also the edge a toast enters and leaves through. */
1874
2206
  position?: ToastPosition;
2207
+ /** The accessible name of every toast's dismissal control. Defaults to "Dismiss". */
2208
+ dismissLabel?: string;
2209
+ /** The words a toast without a title is named by, one per status. Each one overrides its English default. */
2210
+ labels?: Partial<ToastLabels>;
1875
2211
  /** Adds to the viewport's own layer. The toasts style themselves. */
1876
2212
  className?: string;
1877
2213
  }
@@ -1891,7 +2227,7 @@ declare const ToastProvider: ({ children, manager, ...props }: ToastProviderProp
1891
2227
  * is holding. Base provides F6 entry and focus restoration; the live region remains available
1892
2228
  * while a modal is open. Keep the keyboard shortcut discoverable without reimplementing it.
1893
2229
  */
1894
- declare const ToastViewport: ({ position, className }: ToastViewportProps) => React__default.JSX.Element;
2230
+ declare const ToastViewport: ({ position, dismissLabel, labels, className, }: ToastViewportProps) => React__default.JSX.Element;
1895
2231
  /**
1896
2232
  * Raises, updates and closes toasts from inside the React tree. The handle is stable for as long as
1897
2233
  * the provider is, so it can be listed as a dependency without churning an effect.
@@ -1912,5 +2248,5 @@ interface DirectionProviderProps {
1912
2248
  /** Declares writing direction to the interaction and positioning primitives, including portals. */
1913
2249
  declare const DirectionProvider: ({ direction, children }: DirectionProviderProps) => React__default.JSX.Element;
1914
2250
 
1915
- export { Accordion, Alert, AlertDialog, Avatar, Badge, Breadcrumb, Button, Calendar, Card, Checkbox, CheckboxGroup, Chip, ChipGroup, Collapsible, Combobox, Command, CommandPalette, DatePicker, DateRangePicker, DateTimePicker, Dialog, DirectionProvider, Divider, Drawer, Field, FileUpload, Form, IconButton, Input, Media, Menu, NavGroup, NavItem, NumberField, Pagination, Popover, Progress, RadioGroup, Search, SegmentedControl, Select, Skeleton, Slider, Spinner, Stepper, Switch, Table, Tabs, Textarea, ToastProvider, ToastViewport, ToggleGroup, Tooltip, TreeView, createToastManager, useToast };
1916
- export type { AccordionHeadingLevel, AccordionItemProps, AccordionPanelProps, AccordionProps, AccordionTriggerProps, AlertDialogProps, AlertProps, AvatarProps, BadgeProps, BreadcrumbItem, BreadcrumbProps, ButtonAppearance, ButtonProps, ButtonSize, CalendarDate, CalendarDateTime, CalendarLabels, CalendarProps, CardDescriptionProps, CardProps, CardTitleProps, CheckboxGroupOption, CheckboxGroupProps, CheckboxProps, ChipGroupProps, ChipProps, CollapsiblePanelProps, CollapsibleProps, CollapsibleTriggerProps, ComboboxMultipleProps, ComboboxOption, ComboboxOptionGroup, ComboboxPasteDetails, ComboboxProps, ComboboxSingleProps, CommandItem, CommandPaletteProps, CommandProps, DatePickerProps, DateRange, DateRangePickerProps, DateTimePickerLabels, DateTimePickerProps, DialogContentProps, DialogDescriptionProps, DialogFooterProps, DialogHeaderProps, DialogProps, DirectionProviderProps, DividerProps, DividerWeight, DrawerContentProps, DrawerDescriptionProps, DrawerFooterProps, DrawerHeaderProps, DrawerProps, DrawerSide, DrawerTriggerProps, FieldProps, FileRejection, FileUploadProps, FormErrors, FormProps, IconButtonAppearance, IconButtonProps, InputProps, MediaImageProps, MediaVideoProps, MenuContentProps, MenuItemProps, MenuProps, MenuSeparatorProps, MenuTriggerProps, NavGroupHeadingLevel, NavGroupItem, NavGroupProps, NavItemProps, NumberFieldProps, OverlayAlign, OverlaySide, PaginationProps, PopoverContentProps, PopoverDescriptionProps, PopoverProps, PopoverTitleProps, PopoverTriggerProps, ProgressProps, RadioGroupOption, RadioGroupProps, SearchProps, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectOptionGroup, SelectProps, SkeletonProps, SliderProps, SpinnerProps, StepperItem, StepperProps, SwitchProps, Tab, TableColumn, TableProps, TabsProps, TextareaProps, ToastActionOptions, ToastManager, ToastOptions, ToastPosition, ToastPromiseOptions, ToastProviderProps, ToastType, ToastUpdateOptions, ToastViewportProps, ToggleGroupItemProps, ToggleGroupProps, TooltipProps, TreeViewItem, TreeViewProps, Variant };
2251
+ export { Accordion, Alert, AlertDialog, Avatar, Badge, Breadcrumb, Button, Calendar, Card, Checkbox, CheckboxGroup, Chip, ChipGroup, Collapsible, Combobox, Command, CommandPalette, DatePicker, DateRangePicker, DateTimePicker, Dialog, DirectionProvider, Divider, Drawer, Field, FileUpload, Form, IconButton, Input, Media, Menu, NavGroup, NavItem, NumberField, Pagination, Popover, Progress, RadioGroup, Search, SegmentedControl, Select, Skeleton, Slider, Spinner, Stepper, Switch, Table, Tabs, Textarea, ToastProvider, ToastViewport, ToggleGroup, Tooltip, TooltipProvider, TreeView, createToastManager, useToast };
2252
+ export type { AccordionHeadingLevel, AccordionItemProps, AccordionPanelProps, AccordionProps, AccordionTriggerProps, AlertDialogProps, AlertDialogTriggerProps, AlertProps, AvatarProps, BadgeProps, BreadcrumbItem, BreadcrumbLabels, BreadcrumbProps, ButtonAppearance, ButtonProps, ButtonSize, CalendarDate, CalendarDateTime, CalendarLabels, CalendarProps, CardDescriptionProps, CardProps, CardTitleProps, CheckboxGroupOption, CheckboxGroupProps, CheckboxProps, ChipGroupProps, ChipProps, ChoiceAppearance, CollapsiblePanelProps, CollapsibleProps, CollapsibleTriggerProps, ComboboxLabels, ComboboxMultipleProps, ComboboxOption, ComboboxOptionGroup, ComboboxPasteDetails, ComboboxProps, ComboboxSingleProps, CommandItem, CommandLabels, CommandPaletteProps, CommandProps, DatePickerProps, DateRange, DateRangePickerProps, DateTimePickerLabels, DateTimePickerProps, DialogAttachment, DialogCloseProps, DialogContentProps, DialogDescriptionProps, DialogFooterProps, DialogHeaderProps, DialogProps, DialogTriggerProps, DirectionProviderProps, DividerProps, DividerWeight, DrawerContentProps, DrawerDescriptionProps, DrawerFooterProps, DrawerHeaderProps, DrawerProps, DrawerSide, DrawerTriggerProps, FieldProps, FieldSize, FileRejection, FileUploadLabels, FileUploadProps, FormErrors, FormProps, IconButtonAppearance, IconButtonProps, IconButtonSize, InputProps, MediaImageProps, MediaVideoProps, MenuContentProps, MenuGroupProps, MenuItemProps, MenuLabelProps, MenuProps, MenuSeparatorProps, MenuTriggerProps, NavGroupHeadingLevel, NavGroupItem, NavGroupProps, NavItemProps, NumberFieldProps, OverlayAlign, OverlaySide, PaginationLabels, PaginationProps, PartProps, PopoverCloseProps, PopoverContentProps, PopoverDescriptionProps, PopoverProps, PopoverTitleProps, PopoverTriggerProps, ProgressProps, RadioGroupOption, RadioGroupProps, SearchProps, SegmentedControlOption, SegmentedControlProps, SelectOption, SelectOptionGroup, SelectProps, SkeletonProps, SliderProps, SpinnerProps, StepperItem, StepperProps, SwitchProps, Tab, TableColumn, TableProps, TabsLabels, TabsProps, TextareaProps, ToastActionOptions, ToastLabels, ToastManager, ToastOptions, ToastPosition, ToastPromiseOptions, ToastProviderProps, ToastType, ToastUpdateOptions, ToastViewportProps, ToggleGroupItemProps, ToggleGroupProps, TooltipProps, TooltipProviderProps, TreeViewItem, TreeViewProps, TriggerProps, Variant };