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