@wix/site-ui 1.29.0 → 1.31.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 (177) hide show
  1. package/dist/1268.js +99 -0
  2. package/dist/1279.js +7 -0
  3. package/dist/1457.js +10 -0
  4. package/dist/1477.js +106 -0
  5. package/dist/1500.js +111 -0
  6. package/dist/167.js +6 -0
  7. package/dist/2274.js +34 -0
  8. package/dist/2287.js +17 -0
  9. package/dist/2418.js +31 -0
  10. package/dist/2801.js +20 -0
  11. package/dist/285.js +86 -0
  12. package/dist/2861.js +6 -0
  13. package/dist/3020.js +7 -0
  14. package/dist/3021.js +72 -0
  15. package/dist/3056.js +229 -0
  16. package/dist/3140.js +4 -0
  17. package/dist/3248.js +307 -0
  18. package/dist/3296.js +4 -0
  19. package/dist/3319.js +400 -0
  20. package/dist/3395.js +4 -0
  21. package/dist/3485.js +854 -0
  22. package/dist/353.js +14 -0
  23. package/dist/3670.js +418 -0
  24. package/dist/3829.js +113 -0
  25. package/dist/4026.js +12 -0
  26. package/dist/4143.js +46 -0
  27. package/dist/42.js +32 -0
  28. package/dist/4281.js +30 -0
  29. package/dist/4346.js +2 -0
  30. package/dist/4388.js +418 -0
  31. package/dist/4490.js +32 -0
  32. package/dist/4495.js +9 -0
  33. package/dist/4549.js +24 -0
  34. package/dist/4586.js +41 -0
  35. package/dist/4586.js.LICENSE.txt +19 -0
  36. package/dist/4707.js +19 -0
  37. package/dist/4723.js +7 -0
  38. package/dist/4745.js +7 -0
  39. package/dist/4768.js +35 -0
  40. package/dist/4922.js +15 -0
  41. package/dist/5036.js +17 -0
  42. package/dist/5085.js +20 -0
  43. package/dist/5299.js +597 -0
  44. package/dist/5659.js +4 -0
  45. package/dist/5778.js +10 -0
  46. package/dist/5864.js +86 -0
  47. package/dist/5992.js +913 -0
  48. package/dist/5992.js.LICENSE.txt +19 -0
  49. package/dist/6003.js +10 -0
  50. package/dist/6046.js +29 -0
  51. package/dist/6089.js +2355 -0
  52. package/dist/6107.js +10 -0
  53. package/dist/6247.js +20 -0
  54. package/dist/6270.js +487 -0
  55. package/dist/6329.js +32 -0
  56. package/dist/6330.js +30 -0
  57. package/dist/6499.js +7 -0
  58. package/dist/6535.js +71 -0
  59. package/dist/6588.js +382 -0
  60. package/dist/6706.js +16 -0
  61. package/dist/6825.js +7 -0
  62. package/dist/6882.js +1562 -0
  63. package/dist/6914.js +30 -0
  64. package/dist/7021.js +13 -0
  65. package/dist/7366.js +83 -0
  66. package/dist/7373.js +25 -0
  67. package/dist/7541.js +25 -0
  68. package/dist/7564.js +10 -0
  69. package/dist/7642.js +20 -0
  70. package/dist/7725.js +10 -0
  71. package/dist/7871.js +38 -0
  72. package/dist/8052.js +352 -0
  73. package/dist/8106.js +238 -0
  74. package/dist/8171.js +346 -0
  75. package/dist/8225.js +21 -0
  76. package/dist/8272.js +333 -0
  77. package/dist/8527.js +58 -0
  78. package/dist/8724.js +10 -0
  79. package/dist/8750.js +1920 -0
  80. package/dist/8758.js +43 -0
  81. package/dist/880.js +149 -0
  82. package/dist/8935.js +8 -0
  83. package/dist/8960.js +22 -0
  84. package/dist/8971.js +40 -0
  85. package/dist/8979.js +10 -0
  86. package/dist/8996.js +71 -0
  87. package/dist/904.js +121 -0
  88. package/dist/9048.js +52 -0
  89. package/dist/9087.js +256 -0
  90. package/dist/9189.js +158 -0
  91. package/dist/9255.js +136 -0
  92. package/dist/9352.js +148 -0
  93. package/dist/951.js +22 -0
  94. package/dist/9635.js +22 -0
  95. package/dist/9829.js +4 -0
  96. package/dist/9863.js +8 -0
  97. package/dist/Accordion/index.d.ts +569 -12
  98. package/dist/Accordion/index.js +423 -8
  99. package/dist/AlertDialog/index.d.ts +1417 -18
  100. package/dist/AlertDialog/index.js +34 -14
  101. package/dist/Autocomplete/index.d.ts +1861 -38
  102. package/dist/Autocomplete/index.js +98 -24
  103. package/dist/Avatar/index.d.ts +129 -7
  104. package/dist/Avatar/index.js +149 -6
  105. package/dist/Badge/index.css +44 -0
  106. package/dist/Badge/index.d.ts +22 -0
  107. package/dist/Badge/index.js +23 -0
  108. package/dist/Breadcrumbs/index.d.ts +960 -7
  109. package/dist/Breadcrumbs/index.js +5 -5
  110. package/dist/Button/index.d.ts +88 -6
  111. package/dist/Button/index.js +27 -3
  112. package/dist/Checkbox/index.d.ts +425 -5
  113. package/dist/Checkbox/index.js +45 -5
  114. package/dist/CheckboxGroup/index.d.ts +318 -3
  115. package/dist/CheckboxGroup/index.js +166 -3
  116. package/dist/Collapsible/index.d.ts +377 -7
  117. package/dist/Collapsible/index.js +160 -6
  118. package/dist/Combobox/index.d.ts +1984 -48
  119. package/dist/Combobox/index.js +352 -29
  120. package/dist/ContextMenu/index.d.ts +2340 -36
  121. package/dist/ContextMenu/index.js +197 -22
  122. package/dist/Dialog/index.d.ts +1355 -18
  123. package/dist/Dialog/index.js +16 -14
  124. package/dist/Drawer/index.d.ts +1653 -18
  125. package/dist/Drawer/index.js +2797 -20
  126. package/dist/Field/index.d.ts +655 -15
  127. package/dist/Field/index.js +677 -10
  128. package/dist/Fieldset/index.d.ts +94 -5
  129. package/dist/Fieldset/index.js +68 -5
  130. package/dist/Form/index.d.ts +331 -2
  131. package/dist/Form/index.js +106 -3
  132. package/dist/Input/index.d.ts +692 -3
  133. package/dist/Input/index.js +10 -3
  134. package/dist/Menu/index.d.ts +2301 -36
  135. package/dist/Menu/index.js +365 -26
  136. package/dist/Menubar/index.d.ts +2301 -3
  137. package/dist/Menubar/index.js +105 -3
  138. package/dist/Meter/index.d.ts +175 -11
  139. package/dist/Meter/index.js +129 -9
  140. package/dist/NavigationMenu/index.d.ts +978 -28
  141. package/dist/NavigationMenu/index.js +1034 -17
  142. package/dist/NumberField/index.d.ts +612 -15
  143. package/dist/NumberField/index.js +1409 -11
  144. package/dist/Popover/index.d.ts +1655 -20
  145. package/dist/Popover/index.js +792 -17
  146. package/dist/PreviewCard/index.d.ts +1523 -14
  147. package/dist/PreviewCard/index.js +679 -14
  148. package/dist/Progress/index.d.ts +183 -11
  149. package/dist/Progress/index.js +181 -9
  150. package/dist/Radio/index.d.ts +185 -6
  151. package/dist/Radio/index.js +253 -6
  152. package/dist/RadioGroup/index.d.ts +341 -2
  153. package/dist/RadioGroup/index.js +154 -3
  154. package/dist/ScrollArea/index.d.ts +265 -13
  155. package/dist/ScrollArea/index.js +892 -10
  156. package/dist/Select/index.d.ts +1493 -38
  157. package/dist/Select/index.js +1824 -23
  158. package/dist/Separator/index.d.ts +80 -6
  159. package/dist/Separator/index.js +3 -3
  160. package/dist/Slider/index.d.ts +678 -16
  161. package/dist/Slider/index.js +1199 -11
  162. package/dist/Switch/index.d.ts +393 -5
  163. package/dist/Switch/index.js +208 -6
  164. package/dist/Tabs/index.d.ts +523 -12
  165. package/dist/Tabs/index.js +685 -9
  166. package/dist/Toggle/index.d.ts +305 -2
  167. package/dist/Toggle/index.js +76 -3
  168. package/dist/ToggleGroup/index.d.ts +316 -2
  169. package/dist/ToggleGroup/index.js +102 -3
  170. package/dist/Toolbar/index.d.ts +282 -13
  171. package/dist/Toolbar/index.js +230 -9
  172. package/dist/Tooltip/index.d.ts +1572 -14
  173. package/dist/Tooltip/index.js +965 -14
  174. package/dist/index.d.ts +12758 -646
  175. package/dist/index.js +1 -0
  176. package/dist/rslib-runtime.js +18 -0
  177. package/package.json +3 -3
@@ -1,79 +1,1534 @@
1
+ import type { InteractionType } from '@base-ui/utils/useEnhancedClickHandler';
2
+ import { Padding } from '@floating-ui/react-dom';
1
3
  import * as React_2 from 'react';
2
- import { Select as Select_2 } from '@base-ui/react/select';
3
- import { SelectArrowProps } from '@base-ui/react/select';
4
- import { SelectBackdropProps } from '@base-ui/react/select';
5
- import { SelectGroupLabelProps } from '@base-ui/react/select';
6
- import { SelectGroupProps } from '@base-ui/react/select';
7
- import { SelectIconProps } from '@base-ui/react/select';
8
- import { SelectItemIndicatorProps } from '@base-ui/react/select';
9
- import { SelectItemProps } from '@base-ui/react/select';
10
- import { SelectItemTextProps } from '@base-ui/react/select';
11
- import { SelectLabelProps } from '@base-ui/react/select';
12
- import { SelectListProps } from '@base-ui/react/select';
13
- import { SelectPopupProps } from '@base-ui/react/select';
14
- import { SelectPortalProps } from '@base-ui/react/select';
15
- import { SelectPositionerProps } from '@base-ui/react/select';
16
- import { SelectScrollDownArrowProps } from '@base-ui/react/select';
17
- import { SelectScrollUpArrowProps } from '@base-ui/react/select';
18
- import { SelectTriggerProps } from '@base-ui/react/select';
19
- import { SelectValueProps } from '@base-ui/react/select';
20
- import { SeparatorProps } from '@base-ui/react';
4
+ import { Rect } from '@floating-ui/utils';
5
+ import { SelectArrowProps as SelectArrowProps_2 } from '@base-ui/react/select';
6
+ import { SelectBackdropProps as SelectBackdropProps_2 } from '@base-ui/react/select';
7
+ import { SelectGroupLabelProps as SelectGroupLabelProps_2 } from '@base-ui/react/select';
8
+ import { SelectGroupProps as SelectGroupProps_2 } from '@base-ui/react/select';
9
+ import { SelectIconProps as SelectIconProps_2 } from '@base-ui/react/select';
10
+ import { SelectItemIndicatorProps as SelectItemIndicatorProps_2 } from '@base-ui/react/select';
11
+ import { SelectItemProps as SelectItemProps_2 } from '@base-ui/react/select';
12
+ import { SelectItemTextProps as SelectItemTextProps_2 } from '@base-ui/react/select';
13
+ import { SelectLabelProps as SelectLabelProps_2 } from '@base-ui/react/select';
14
+ import { SelectListProps as SelectListProps_2 } from '@base-ui/react/select';
15
+ import { SelectPopupProps as SelectPopupProps_2 } from '@base-ui/react/select';
16
+ import { SelectPortalProps as SelectPortalProps_2 } from '@base-ui/react/select';
17
+ import { SelectPositionerProps as SelectPositionerProps_2 } from '@base-ui/react/select';
18
+ import { SelectScrollDownArrowProps as SelectScrollDownArrowProps_2 } from '@base-ui/react/select';
19
+ import { SelectScrollUpArrowProps as SelectScrollUpArrowProps_2 } from '@base-ui/react/select';
20
+ import { SelectTriggerProps as SelectTriggerProps_2 } from '@base-ui/react/select';
21
+ import { SelectValueProps as SelectValueProps_2 } from '@base-ui/react/select';
22
+ import { SeparatorProps as SeparatorProps_2 } from '@base-ui/react';
23
+ import { VirtualElement } from '@floating-ui/react-dom';
24
+
25
+ declare type Align = 'start' | 'center' | 'end';
26
+
27
+ declare type BaseUIChangeEventDetail<Reason extends string, CustomProperties extends object> = {
28
+ /**
29
+ * The reason for the event.
30
+ */
31
+ reason: Reason;
32
+ /**
33
+ * The native event associated with the custom event.
34
+ */
35
+ event: ReasonToEvent<Reason>;
36
+ /**
37
+ * Cancels Base UI from handling the event.
38
+ */
39
+ cancel: () => void;
40
+ /**
41
+ * Allows the event to propagate in cases where Base UI will stop the propagation.
42
+ */
43
+ allowPropagation: () => void;
44
+ /**
45
+ * Indicates whether the event has been canceled.
46
+ */
47
+ isCanceled: boolean;
48
+ /**
49
+ * Indicates whether the event is allowed to propagate.
50
+ */
51
+ isPropagationAllowed: boolean;
52
+ /**
53
+ * The element that triggered the event, if applicable.
54
+ */
55
+ trigger: Element | undefined;
56
+ } & CustomProperties;
57
+
58
+ /**
59
+ * Details of custom change events emitted by Base UI components.
60
+ */
61
+ declare type BaseUIChangeEventDetails<Reason extends string, CustomProperties extends object = {}> = Reason extends string ? BaseUIChangeEventDetail<Reason, CustomProperties> & {} : never;
62
+
63
+ /**
64
+ * Props shared by all Base UI components.
65
+ * Contains `className` (string or callback taking the component's state as an argument) and `render` (function to customize rendering).
66
+ */
67
+ declare type BaseUIComponentProps<ElementType extends React_2.ElementType, State, RenderFunctionProps = HTMLProps> = Omit<WithBaseUIEvent<React_2.ComponentPropsWithRef<ElementType>>, 'className' | 'color' | 'defaultValue' | 'defaultChecked' | 'style'> & {
68
+ /**
69
+ * CSS class applied to the element, or a function that
70
+ * returns a class based on the component's state.
71
+ */
72
+ className?: string | ((state: State) => string | undefined) | undefined;
73
+ /**
74
+ * Allows you to replace the component's HTML element
75
+ * with a different tag, or compose it with another component.
76
+ *
77
+ * Accepts a `ReactElement` or a function that returns the element to render.
78
+ */
79
+ render?: React_2.ReactElement | ComponentRenderFn<RenderFunctionProps, State> | undefined;
80
+ /**
81
+ * Style applied to the element, or a function that
82
+ * returns a style object based on the component's state.
83
+ */
84
+ style?: React_2.CSSProperties | ((state: State) => React_2.CSSProperties | undefined) | undefined;
85
+ };
86
+
87
+ declare type BaseUIEvent<E extends React_2.SyntheticEvent<Element, Event>> = E & {
88
+ preventBaseUIHandler: () => void;
89
+ readonly baseUIHandlerPrevented?: boolean | undefined;
90
+ };
91
+
92
+ /**
93
+ * Details of custom generic events emitted by Base UI components.
94
+ */
95
+ declare type BaseUIGenericEventDetail<Reason extends string, CustomProperties extends object> = {
96
+ /**
97
+ * The reason for the event.
98
+ */
99
+ reason: Reason;
100
+ /**
101
+ * The native event associated with the custom event.
102
+ */
103
+ event: ReasonToEvent<Reason>;
104
+ } & CustomProperties;
105
+
106
+ declare type BaseUIGenericEventDetails<Reason extends string, CustomProperties extends object = {}> = Reason extends string ? BaseUIGenericEventDetail<Reason, CustomProperties> & {} : never;
107
+
108
+ declare type Boundary = 'clipping-ancestors' | Element | Element[] | Rect;
109
+
110
+ declare const cancelOpen: "cancel-open";
111
+
112
+ declare const chipRemovePress: "chip-remove-press";
113
+
114
+ declare const clearPress: "clear-press";
115
+
116
+ declare const closePress: "close-press";
117
+
118
+ declare const closeWatcher: "close-watcher";
119
+
120
+ declare type CollisionAvoidance = SideFlipMode | SideShiftMode;
121
+
122
+ /**
123
+ * Shape of the render prop: a function that takes props to be spread on the element and component's state and returns a React element.
124
+ *
125
+ * @template Props Props to be spread on the rendered element.
126
+ * @template State Component's internal state.
127
+ */
128
+ declare type ComponentRenderFn<Props, State> = (props: Props, state: State) => React_2.ReactElement<unknown>;
129
+
130
+ declare const decrementPress: "decrement-press";
131
+
132
+ declare const disabled: "disabled";
133
+
134
+ declare const drag: "drag";
135
+
136
+ declare type Errors = Record<string, string | string[]>;
137
+
138
+ declare const escapeKey: "escape-key";
139
+
140
+ /**
141
+ * Groups all parts of the field.
142
+ * Renders a `<div>` element.
143
+ *
144
+ * Documentation: [Base UI Field](https://base-ui.com/react/components/field)
145
+ */
146
+ declare const FieldRoot: React_2.ForwardRefExoticComponent<Omit<FieldRootProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
147
+
148
+ declare namespace FieldRoot {
149
+ type State = FieldRootState;
150
+ type Props = FieldRootProps;
151
+ type Actions = FieldRootActions;
152
+ }
153
+
154
+ declare interface FieldRootActions {
155
+ validate: () => void;
156
+ }
157
+
158
+ declare interface FieldRootProps extends BaseUIComponentProps<'div', FieldRootState> {
159
+ /**
160
+ * Whether the component should ignore user interaction.
161
+ * Takes precedence over the `disabled` prop on the `<Field.Control>` component.
162
+ * @default false
163
+ */
164
+ disabled?: boolean | undefined;
165
+ /**
166
+ * Identifies the field when a form is submitted.
167
+ * Takes precedence over the `name` prop on the `<Field.Control>` component.
168
+ */
169
+ name?: string | undefined;
170
+ /**
171
+ * A function for custom validation. Return a string or an array of strings with
172
+ * the error message(s) if the value is invalid, or `null` if the value is valid.
173
+ * Asynchronous functions are supported, but they do not prevent form submission
174
+ * when using `validationMode="onSubmit"`.
175
+ */
176
+ validate?: ((value: unknown, formValues: Form.Values) => string | string[] | null | Promise<string | string[] | null>) | undefined;
177
+ /**
178
+ * Determines when the field should be validated.
179
+ * This takes precedence over the `validationMode` prop on `<Form>`.
180
+ *
181
+ * - `onSubmit`: triggers validation when the form is submitted, and re-validates on change after submission.
182
+ * - `onBlur`: triggers validation when the control loses focus.
183
+ * - `onChange`: triggers validation on every change to the control value.
184
+ *
185
+ * @default 'onSubmit'
186
+ */
187
+ validationMode?: Form.ValidationMode | undefined;
188
+ /**
189
+ * How long to wait between `validate` callbacks if
190
+ * `validationMode="onChange"` is used. Specified in milliseconds.
191
+ * @default 0
192
+ */
193
+ validationDebounceTime?: number | undefined;
194
+ /**
195
+ * Whether the field is invalid.
196
+ * Useful when the field state is controlled by an external library.
197
+ */
198
+ invalid?: boolean | undefined;
199
+ /**
200
+ * Whether the field's value has been changed from its initial value.
201
+ * Useful when the field state is controlled by an external library.
202
+ */
203
+ dirty?: boolean | undefined;
204
+ /**
205
+ * Whether the field has been touched.
206
+ * Useful when the field state is controlled by an external library.
207
+ */
208
+ touched?: boolean | undefined;
209
+ /**
210
+ * A ref to imperative actions.
211
+ * - `validate`: Validates the field when called.
212
+ */
213
+ actionsRef?: React_2.RefObject<FieldRoot.Actions | null> | undefined;
214
+ }
215
+
216
+ declare interface FieldRootState {
217
+ /**
218
+ * Whether the component should ignore user interaction.
219
+ */
220
+ disabled: boolean;
221
+ /**
222
+ * Whether the field has been touched.
223
+ */
224
+ touched: boolean;
225
+ /**
226
+ * Whether the field value has changed from its initial value.
227
+ */
228
+ dirty: boolean;
229
+ /**
230
+ * Whether the field is valid.
231
+ */
232
+ valid: boolean | null;
233
+ /**
234
+ * Whether the field has a value.
235
+ */
236
+ filled: boolean;
237
+ /**
238
+ * Whether the field is focused.
239
+ */
240
+ focused: boolean;
241
+ }
242
+
243
+ declare interface FieldValidityData {
244
+ state: {
245
+ badInput: boolean;
246
+ customError: boolean;
247
+ patternMismatch: boolean;
248
+ rangeOverflow: boolean;
249
+ rangeUnderflow: boolean;
250
+ stepMismatch: boolean;
251
+ tooLong: boolean;
252
+ tooShort: boolean;
253
+ typeMismatch: boolean;
254
+ valueMissing: boolean;
255
+ valid: boolean | null;
256
+ };
257
+ error: string;
258
+ errors: string[];
259
+ value: unknown;
260
+ initialValue: unknown;
261
+ }
262
+
263
+ /**
264
+ * Portals the floating element into a given container element — by default,
265
+ * outside of the app root and into the body.
266
+ * This is necessary to ensure the floating element can appear outside any
267
+ * potential parent containers that cause clipping (such as `overflow: hidden`),
268
+ * while retaining its location in the React tree.
269
+ * @see https://floating-ui.com/docs/FloatingPortal
270
+ * @internal
271
+ */
272
+ declare const FloatingPortal: React_2.ForwardRefExoticComponent<Omit<FloatingPortal.Props<any> & {
273
+ renderGuards?: boolean | undefined;
274
+ }, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
275
+
276
+ declare namespace FloatingPortal {
277
+ type State = FloatingPortalState;
278
+ interface Props<TState> extends BaseUIComponentProps<'div', TState> {
279
+ /**
280
+ * A parent element to render the portal element into.
281
+ */
282
+ container?: UseFloatingPortalNodeProps['container'] | undefined;
283
+ }
284
+ }
285
+
286
+ declare interface FloatingPortalState {}
287
+
288
+ declare const focusOut: "focus-out";
289
+
290
+ /**
291
+ * A native form element with consolidated error handling.
292
+ * Renders a `<form>` element.
293
+ *
294
+ * Documentation: [Base UI Form](https://base-ui.com/react/components/form)
295
+ */
296
+ declare const Form: {
297
+ <FormValues extends Record<string, any> = Record<string, any>>(props: Form.Props<FormValues> & {
298
+ ref?: React_2.Ref<HTMLFormElement> | undefined;
299
+ }): React_2.JSX.Element;
300
+ };
301
+
302
+ declare namespace Form {
303
+ type Props<FormValues extends Record<string, any> = Record<string, any>> = FormProps<FormValues>;
304
+ type State = FormState;
305
+ type Actions = FormActions;
306
+ type ValidationMode = FormValidationMode;
307
+ type SubmitEventReason = FormSubmitEventReason;
308
+ type SubmitEventDetails = FormSubmitEventDetails;
309
+ type Values<FormValues extends Record<string, any> = Record<string, any>> = FormValues;
310
+ }
311
+
312
+ declare interface FormActions {
313
+ validate: (fieldName?: string | undefined) => void;
314
+ }
315
+
316
+ declare interface FormContext {
317
+ errors: Errors;
318
+ clearErrors: (name: string | undefined) => void;
319
+ formRef: React_2.RefObject<{
320
+ fields: Map<string, {
321
+ name: string | undefined;
322
+ /**
323
+ * After this returns, the field registry entry reflects the latest synchronous
324
+ * validity verdict. Async validators do not block submit.
325
+ */
326
+ validate: () => void;
327
+ validityData: FieldValidityData;
328
+ controlRef: React_2.RefObject<HTMLElement | null>;
329
+ getValue: () => unknown;
330
+ }>;
331
+ }>;
332
+ validationMode: Form.ValidationMode;
333
+ submitAttemptedRef: React_2.RefObject<boolean>;
334
+ }
335
+
336
+ declare const FormContext: React_2.Context<FormContext>;
337
+
338
+ declare interface FormProps<FormValues extends Record<string, any> = Record<string, any>> extends BaseUIComponentProps<'form', FormState> {
339
+ /**
340
+ * Determines when the form should be validated.
341
+ * The `validationMode` prop on `<Field.Root>` takes precedence over this.
342
+ *
343
+ * - `onSubmit` (default): validates the field when the form is submitted, afterwards fields will re-validate on change.
344
+ * - `onBlur`: validates a field when it loses focus.
345
+ * - `onChange`: validates the field on every change to its value.
346
+ *
347
+ * @default 'onSubmit'
348
+ */
349
+ validationMode?: FormValidationMode | undefined;
350
+ /**
351
+ * Validation errors returned externally, typically after submission by a server or a form action.
352
+ * This should be an object where keys correspond to the `name` attribute on `<Field.Root>`,
353
+ * and values correspond to error(s) related to that field.
354
+ */
355
+ errors?: FormContext['errors'] | undefined;
356
+ /**
357
+ * Event handler called when the form is submitted.
358
+ * `preventDefault()` is called on the native submit event when used.
359
+ */
360
+ onFormSubmit?: ((formValues: FormValues, eventDetails: Form.SubmitEventDetails) => void) | undefined;
361
+ /**
362
+ * A ref to imperative actions.
363
+ * - `validate`: Validates all fields when called. Optionally pass a field name to validate a single field.
364
+ * @example
365
+ * ```tsx
366
+ * // validate all fields
367
+ * actionsRef.current.validate();
368
+ *
369
+ * // validate one field
370
+ * actionsRef.current.validate('email');
371
+ * ```
372
+ */
373
+ actionsRef?: React_2.RefObject<Form.Actions | null> | undefined;
374
+ }
375
+
376
+ declare interface FormState {}
377
+
378
+ declare type FormSubmitEventDetails = BaseUIGenericEventDetails<Form.SubmitEventReason>;
379
+
380
+ declare type FormSubmitEventReason = typeof REASONS.none;
381
+
382
+ declare type FormValidationMode = 'onSubmit' | 'onBlur' | 'onChange';
383
+
384
+ declare interface Group<Item = any> {
385
+ [key: string]: unknown;
386
+ items: ReadonlyArray<Item>;
387
+ }
388
+
389
+ declare type HTMLProps<T = any> = React_2.HTMLAttributes<T> & {
390
+ ref?: React_2.Ref<T> | undefined;
391
+ };
392
+
393
+ declare const imperativeAction: "imperative-action";
394
+
395
+ declare const incrementPress: "increment-press";
396
+
397
+ declare const initial: "initial";
398
+
399
+ declare const inputBlur: "input-blur";
400
+
401
+ declare const inputChange: "input-change";
402
+
403
+ declare const inputClear: "input-clear";
404
+
405
+ declare const inputPaste: "input-paste";
406
+
407
+ declare const inputPress: "input-press";
408
+
409
+ declare const itemPress: "item-press";
410
+
411
+ declare const keyboard: "keyboard";
412
+
413
+ declare const linkPress: "link-press";
414
+
415
+ declare const listNavigation: "list-navigation";
416
+
417
+ declare const missing: "missing";
418
+
419
+ declare interface NativeButtonProps {
420
+ /**
421
+ * Whether the component renders a native `<button>` element when replacing it
422
+ * via the `render` prop.
423
+ * Set to `false` if the rendered element is not a button (for example, `<div>`).
424
+ * @default true
425
+ */
426
+ nativeButton?: boolean | undefined;
427
+ }
428
+
429
+ declare const none: "none";
430
+
431
+ declare interface NonNativeButtonProps {
432
+ /**
433
+ * Whether the component renders a native `<button>` element when replacing it
434
+ * via the `render` prop.
435
+ * Set to `true` if the rendered element is a native button.
436
+ * @default false
437
+ */
438
+ nativeButton?: boolean | undefined;
439
+ }
440
+
441
+ declare type OffsetFunction = (data: {
442
+ side: Side;
443
+ align: Align;
444
+ anchor: {
445
+ width: number;
446
+ height: number;
447
+ };
448
+ positioner: {
449
+ width: number;
450
+ height: number;
451
+ };
452
+ }) => number;
453
+
454
+ declare type Orientation = 'horizontal' | 'vertical';
455
+
456
+ declare const outsidePress: "outside-press";
457
+
458
+ declare const pointer: "pointer";
459
+
460
+ declare namespace REASONS {
461
+ export {
462
+ none,
463
+ triggerPress,
464
+ triggerHover,
465
+ triggerFocus,
466
+ outsidePress,
467
+ itemPress,
468
+ closePress,
469
+ linkPress,
470
+ clearPress,
471
+ chipRemovePress,
472
+ trackPress,
473
+ incrementPress,
474
+ decrementPress,
475
+ inputChange,
476
+ inputClear,
477
+ inputBlur,
478
+ inputPaste,
479
+ inputPress,
480
+ focusOut,
481
+ escapeKey,
482
+ closeWatcher,
483
+ listNavigation,
484
+ keyboard,
485
+ pointer,
486
+ drag,
487
+ wheel,
488
+ scrub,
489
+ cancelOpen,
490
+ siblingOpen,
491
+ disabled,
492
+ missing,
493
+ initial,
494
+ imperativeAction,
495
+ swipe,
496
+ windowResize
497
+ }
498
+ }
499
+
500
+ /**
501
+ * Maps a change `reason` string to the corresponding native event type.
502
+ */
503
+ declare type ReasonToEvent<Reason extends string> = Reason extends keyof ReasonToEventMap ? ReasonToEventMap[Reason] : Event;
504
+
505
+ declare interface ReasonToEventMap {
506
+ [REASONS.none]: Event;
507
+ [REASONS.triggerPress]: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent;
508
+ [REASONS.triggerHover]: MouseEvent;
509
+ [REASONS.triggerFocus]: FocusEvent;
510
+ [REASONS.outsidePress]: MouseEvent | PointerEvent | TouchEvent;
511
+ [REASONS.itemPress]: MouseEvent | KeyboardEvent | PointerEvent;
512
+ [REASONS.closePress]: MouseEvent | KeyboardEvent | PointerEvent;
513
+ [REASONS.linkPress]: MouseEvent | PointerEvent;
514
+ [REASONS.clearPress]: PointerEvent | MouseEvent | KeyboardEvent;
515
+ [REASONS.chipRemovePress]: PointerEvent | MouseEvent | KeyboardEvent;
516
+ [REASONS.trackPress]: PointerEvent | MouseEvent | TouchEvent;
517
+ [REASONS.incrementPress]: PointerEvent | MouseEvent | TouchEvent;
518
+ [REASONS.decrementPress]: PointerEvent | MouseEvent | TouchEvent;
519
+ [REASONS.inputChange]: InputEvent | Event;
520
+ [REASONS.inputClear]: InputEvent | FocusEvent | Event;
521
+ [REASONS.inputBlur]: FocusEvent;
522
+ [REASONS.inputPaste]: ClipboardEvent;
523
+ [REASONS.inputPress]: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent;
524
+ [REASONS.focusOut]: FocusEvent | KeyboardEvent;
525
+ [REASONS.escapeKey]: KeyboardEvent;
526
+ [REASONS.closeWatcher]: Event;
527
+ [REASONS.listNavigation]: KeyboardEvent;
528
+ [REASONS.keyboard]: KeyboardEvent;
529
+ [REASONS.pointer]: PointerEvent;
530
+ [REASONS.drag]: PointerEvent | TouchEvent;
531
+ [REASONS.swipe]: PointerEvent | TouchEvent;
532
+ [REASONS.wheel]: WheelEvent;
533
+ [REASONS.scrub]: PointerEvent;
534
+ [REASONS.cancelOpen]: MouseEvent;
535
+ [REASONS.siblingOpen]: Event;
536
+ [REASONS.disabled]: Event;
537
+ [REASONS.missing]: Event;
538
+ [REASONS.initial]: Event;
539
+ [REASONS.imperativeAction]: Event;
540
+ [REASONS.windowResize]: UIEvent;
541
+ }
542
+
543
+ declare const scrub: "scrub";
21
544
 
22
545
  export declare const Select: {
23
- Label: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectLabelProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
546
+ Label: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectLabelProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
24
547
  className?: string | undefined;
25
548
  } & React_2.RefAttributes<HTMLDivElement>>;
26
- Trigger: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectTriggerProps, "ref"> & React_2.RefAttributes<HTMLButtonElement>, "ref">, "className"> & {
549
+ Trigger: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectTriggerProps_2, "ref"> & React_2.RefAttributes<HTMLButtonElement>, "ref">, "className"> & {
27
550
  className?: string | undefined;
28
551
  } & React_2.RefAttributes<HTMLButtonElement>>;
29
- Value: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectValueProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
552
+ Value: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectValueProps_2, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
30
553
  className?: string | undefined;
31
554
  } & React_2.RefAttributes<HTMLSpanElement>>;
32
- Icon: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectIconProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
555
+ Icon: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectIconProps_2, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
33
556
  className?: string | undefined;
34
557
  } & React_2.RefAttributes<HTMLSpanElement>>;
35
- Backdrop: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectBackdropProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
558
+ Backdrop: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectBackdropProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
36
559
  className?: string | undefined;
37
560
  } & React_2.RefAttributes<HTMLDivElement>>;
38
- Positioner: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectPositionerProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
561
+ Positioner: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectPositionerProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
39
562
  className?: string | undefined;
40
563
  } & React_2.RefAttributes<HTMLDivElement>>;
41
- Popup: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectPopupProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
564
+ Popup: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectPopupProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
42
565
  className?: string | undefined;
43
566
  } & React_2.RefAttributes<HTMLDivElement>>;
44
- List: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectListProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
567
+ List: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectListProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
45
568
  className?: string | undefined;
46
569
  } & React_2.RefAttributes<HTMLDivElement>>;
47
- Item: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemProps, "ref"> & React_2.RefAttributes<HTMLElement>, "ref">, "className"> & {
570
+ Item: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemProps_2, "ref"> & React_2.RefAttributes<HTMLElement>, "ref">, "className"> & {
48
571
  className?: string | undefined;
49
572
  } & React_2.RefAttributes<HTMLElement>>;
50
- ItemIndicator: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemIndicatorProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
573
+ ItemIndicator: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemIndicatorProps_2, "ref"> & React_2.RefAttributes<HTMLSpanElement>, "ref">, "className"> & {
51
574
  className?: string | undefined;
52
575
  } & React_2.RefAttributes<HTMLSpanElement>>;
53
- ItemText: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemTextProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
576
+ ItemText: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectItemTextProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
54
577
  className?: string | undefined;
55
578
  } & React_2.RefAttributes<HTMLDivElement>>;
56
- Arrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
579
+ Arrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectArrowProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
57
580
  className?: string | undefined;
58
581
  } & React_2.RefAttributes<HTMLDivElement>>;
59
- ScrollDownArrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectScrollDownArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
582
+ ScrollDownArrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectScrollDownArrowProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
60
583
  className?: string | undefined;
61
584
  } & React_2.RefAttributes<HTMLDivElement>>;
62
- ScrollUpArrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectScrollUpArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
585
+ ScrollUpArrow: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectScrollUpArrowProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
63
586
  className?: string | undefined;
64
587
  } & React_2.RefAttributes<HTMLDivElement>>;
65
- Group: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectGroupProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
588
+ Group: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectGroupProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
66
589
  className?: string | undefined;
67
590
  } & React_2.RefAttributes<HTMLDivElement>>;
68
- GroupLabel: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectGroupLabelProps, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
591
+ GroupLabel: React_2.ForwardRefExoticComponent<Omit<Omit<Omit<SelectGroupLabelProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>, "ref">, "className"> & {
69
592
  className?: string | undefined;
70
593
  } & React_2.RefAttributes<HTMLDivElement>>;
71
594
  Root: typeof Select_2.Root;
72
- Portal: React_2.ForwardRefExoticComponent<Omit<SelectPortalProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
73
- Separator: React_2.ForwardRefExoticComponent<Omit<SeparatorProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
595
+ Portal: React_2.ForwardRefExoticComponent<Omit<SelectPortalProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
596
+ Separator: React_2.ForwardRefExoticComponent<Omit<SeparatorProps_2, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
74
597
  };
75
598
 
599
+ export declare namespace Select_2 {
600
+ export {
601
+ SelectRoot as Root,
602
+ SelectLabel as Label,
603
+ SelectTrigger as Trigger,
604
+ SelectValue as Value,
605
+ SelectIcon as Icon,
606
+ SelectPortal as Portal,
607
+ SelectBackdrop as Backdrop,
608
+ SelectPositioner as Positioner,
609
+ SelectPopup as Popup,
610
+ SelectList as List,
611
+ SelectItem as Item,
612
+ SelectItemIndicator as ItemIndicator,
613
+ SelectItemText as ItemText,
614
+ SelectArrow as Arrow,
615
+ SelectScrollDownArrow as ScrollDownArrow,
616
+ SelectScrollUpArrow as ScrollUpArrow,
617
+ SelectGroup as Group,
618
+ SelectGroupLabel as GroupLabel,
619
+ Separator
620
+ }
621
+ }
622
+
623
+ /**
624
+ * Displays an element positioned against the select popup anchor.
625
+ * Renders a `<div>` element.
626
+ *
627
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
628
+ */
629
+ export declare const SelectArrow: React_2.ForwardRefExoticComponent<Omit<SelectArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
630
+
631
+ export declare namespace SelectArrow {
632
+ export type State = SelectArrowState;
633
+ export type Props = SelectArrowProps;
634
+ }
635
+
636
+ export declare interface SelectArrowProps extends BaseUIComponentProps<'div', SelectArrowState> {}
637
+
638
+ export declare interface SelectArrowState {
639
+ /**
640
+ * Whether the select popup is currently open.
641
+ */
642
+ open: boolean;
643
+ /**
644
+ * The side of the anchor the component is placed on.
645
+ */
646
+ side: Side | 'none';
647
+ /**
648
+ * The alignment of the component relative to the anchor.
649
+ */
650
+ align: Align;
651
+ /**
652
+ * Whether the arrow cannot be centered on the anchor.
653
+ */
654
+ uncentered: boolean;
655
+ }
656
+
657
+ /**
658
+ * An overlay displayed beneath the menu popup.
659
+ * Renders a `<div>` element.
660
+ *
661
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
662
+ */
663
+ export declare const SelectBackdrop: React_2.ForwardRefExoticComponent<Omit<SelectBackdropProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
664
+
665
+ export declare namespace SelectBackdrop {
666
+ export type State = SelectBackdropState;
667
+ export type Props = SelectBackdropProps;
668
+ }
669
+
670
+ export declare interface SelectBackdropProps extends BaseUIComponentProps<'div', SelectBackdropState> {}
671
+
672
+ export declare interface SelectBackdropState {
673
+ /**
674
+ * Whether the component is open.
675
+ */
676
+ open: boolean;
677
+ /**
678
+ * The transition status of the component.
679
+ */
680
+ transitionStatus: TransitionStatus;
681
+ }
682
+
683
+ /**
684
+ * Groups related select items with the corresponding label.
685
+ * Renders a `<div>` element.
686
+ *
687
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
688
+ */
689
+ export declare const SelectGroup: React_2.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
690
+
691
+ export declare namespace SelectGroup {
692
+ export type State = SelectGroupState;
693
+ export type Props = SelectGroupProps;
694
+ }
695
+
696
+ /**
697
+ * An accessible label that is automatically associated with its parent group.
698
+ * Renders a `<div>` element.
699
+ *
700
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
701
+ */
702
+ export declare const SelectGroupLabel: React_2.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
703
+
704
+ export declare namespace SelectGroupLabel {
705
+ export type State = SelectGroupLabelState;
706
+ export type Props = SelectGroupLabelProps;
707
+ }
708
+
709
+ export declare interface SelectGroupLabelProps extends BaseUIComponentProps<'div', SelectGroupLabelState> {}
710
+
711
+ export declare interface SelectGroupLabelState {}
712
+
713
+ export declare interface SelectGroupProps extends BaseUIComponentProps<'div', SelectGroupState> {}
714
+
715
+ export declare interface SelectGroupState {}
716
+
717
+ /**
718
+ * An icon that indicates that the trigger button opens a select popup.
719
+ * Renders a `<span>` element.
720
+ *
721
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
722
+ */
723
+ export declare const SelectIcon: React_2.ForwardRefExoticComponent<Omit<SelectIconProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>>;
724
+
725
+ export declare namespace SelectIcon {
726
+ export type State = SelectIconState;
727
+ export type Props = SelectIconProps;
728
+ }
729
+
730
+ export declare interface SelectIconProps extends BaseUIComponentProps<'span', SelectIconState> {}
731
+
732
+ export declare interface SelectIconState {
733
+ /**
734
+ * Whether the select popup is currently open.
735
+ */
736
+ open: boolean;
737
+ }
738
+
739
+ /**
740
+ * An individual option in the select popup.
741
+ * Renders a `<div>` element.
742
+ *
743
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
744
+ */
745
+ export declare const SelectItem: React_2.NamedExoticComponent<Omit<SelectItemProps, "ref"> & React_2.RefAttributes<HTMLElement>>;
746
+
747
+ export declare namespace SelectItem {
748
+ export type State = SelectItemState;
749
+ export type Props = SelectItemProps;
750
+ }
751
+
752
+ /**
753
+ * Indicates whether the select item is selected.
754
+ * Renders a `<span>` element.
755
+ *
756
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
757
+ */
758
+ export declare const SelectItemIndicator: React_2.ForwardRefExoticComponent<Omit<SelectItemIndicatorProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>>;
759
+
760
+ export declare namespace SelectItemIndicator {
761
+ export type State = SelectItemIndicatorState;
762
+ export type Props = SelectItemIndicatorProps;
763
+ }
764
+
765
+ export declare interface SelectItemIndicatorProps extends BaseUIComponentProps<'span', SelectItemIndicatorState> {
766
+ children?: React_2.ReactNode;
767
+ /**
768
+ * Whether to keep the HTML element in the DOM when the item is not selected.
769
+ */
770
+ keepMounted?: boolean | undefined;
771
+ }
772
+
773
+ export declare interface SelectItemIndicatorState {
774
+ /**
775
+ * Whether the item is selected.
776
+ */
777
+ selected: boolean;
778
+ /**
779
+ * The transition status of the component.
780
+ */
781
+ transitionStatus: TransitionStatus;
782
+ }
783
+
784
+ export declare interface SelectItemProps extends NonNativeButtonProps, Omit<BaseUIComponentProps<'div', SelectItemState>, 'id'> {
785
+ children?: React_2.ReactNode;
786
+ /**
787
+ * A unique value that identifies this select item.
788
+ * @default null
789
+ */
790
+ value?: any;
791
+ /**
792
+ * Whether the component should ignore user interaction.
793
+ * @default false
794
+ */
795
+ disabled?: boolean | undefined;
796
+ /**
797
+ * Specifies the text label to use when the item is matched during keyboard text navigation.
798
+ *
799
+ * Defaults to the item text content if not provided.
800
+ */
801
+ label?: string | undefined;
802
+ }
803
+
804
+ export declare interface SelectItemState {
805
+ /**
806
+ * Whether the item should ignore user interaction.
807
+ */
808
+ disabled: boolean;
809
+ /**
810
+ * Whether the item is selected.
811
+ */
812
+ selected: boolean;
813
+ /**
814
+ * Whether the item is highlighted.
815
+ */
816
+ highlighted: boolean;
817
+ }
818
+
819
+ /**
820
+ * A text label of the select item.
821
+ * Renders a `<div>` element.
822
+ *
823
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
824
+ */
825
+ export declare const SelectItemText: React_2.NamedExoticComponent<Omit<SelectItemTextProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
826
+
827
+ export declare namespace SelectItemText {
828
+ export type State = SelectItemTextState;
829
+ export type Props = SelectItemTextProps;
830
+ }
831
+
832
+ export declare interface SelectItemTextProps extends BaseUIComponentProps<'div', SelectItemTextState> {}
833
+
834
+ export declare interface SelectItemTextState {}
835
+
836
+ /**
837
+ * An accessible label that is automatically associated with the select trigger.
838
+ * Renders a `<div>` element.
839
+ *
840
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
841
+ */
842
+ export declare const SelectLabel: React_2.ForwardRefExoticComponent<Omit<SelectLabelProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
843
+
844
+ export declare namespace SelectLabel {
845
+ export type State = SelectLabelState;
846
+ export type Props = SelectLabelProps;
847
+ }
848
+
849
+ export declare interface SelectLabelProps extends Omit<BaseUIComponentProps<'div', SelectLabel.State>, 'id'> {}
850
+
851
+ export declare type SelectLabelState = FieldRoot.State;
852
+
853
+ /**
854
+ * A container for the select items.
855
+ * Renders a `<div>` element.
856
+ *
857
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
858
+ */
859
+ export declare const SelectList: React_2.ForwardRefExoticComponent<Omit<SelectListProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
860
+
861
+ export declare namespace SelectList {
862
+ export type Props = SelectListProps;
863
+ export type State = SelectListState;
864
+ }
865
+
866
+ export declare interface SelectListProps extends BaseUIComponentProps<'div', SelectListState> {}
867
+
868
+ export declare interface SelectListState {}
869
+
870
+ /**
871
+ * A container for the select list.
872
+ * Renders a `<div>` element.
873
+ *
874
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
875
+ */
876
+ export declare const SelectPopup: React_2.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
877
+
878
+ export declare namespace SelectPopup {
879
+ export type Props = SelectPopupProps;
880
+ export type State = SelectPopupState;
881
+ }
882
+
883
+ export declare interface SelectPopupProps extends BaseUIComponentProps<'div', SelectPopupState> {
884
+ children?: React_2.ReactNode;
885
+ /**
886
+ * Determines the element to focus when the select popup is closed.
887
+ *
888
+ * - `false`: Do not move focus.
889
+ * - `true`: Move focus based on the default behavior (trigger or previously focused element).
890
+ * - `RefObject`: Move focus to the ref element.
891
+ * - `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).
892
+ * Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing.
893
+ */
894
+ finalFocus?: boolean | React_2.RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | HTMLElement | null | void) | undefined;
895
+ }
896
+
897
+ export declare interface SelectPopupState {
898
+ /**
899
+ * The side of the anchor the component is placed on.
900
+ */
901
+ side: Side | 'none';
902
+ /**
903
+ * The alignment of the component relative to the anchor.
904
+ */
905
+ align: Align;
906
+ /**
907
+ * Whether the component is open.
908
+ */
909
+ open: boolean;
910
+ /**
911
+ * The transition status of the component.
912
+ */
913
+ transitionStatus: TransitionStatus;
914
+ }
915
+
916
+ /**
917
+ * A portal element that moves the popup to a different part of the DOM.
918
+ * By default, the portal element is appended to `<body>`.
919
+ * Renders a `<div>` element.
920
+ *
921
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
922
+ */
923
+ export declare const SelectPortal: React_2.ForwardRefExoticComponent<Omit<SelectPortalProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
924
+
925
+ export declare namespace SelectPortal {
926
+ export type State = SelectPortalState;
927
+ export type Props = SelectPortalProps;
928
+ }
929
+
930
+ export declare interface SelectPortalProps extends FloatingPortal.Props<SelectPortalState> {}
931
+
932
+ export declare interface SelectPortalState {}
933
+
934
+ /**
935
+ * Positions the select popup.
936
+ * Renders a `<div>` element.
937
+ *
938
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
939
+ */
940
+ export declare const SelectPositioner: React_2.ForwardRefExoticComponent<Omit<SelectPositionerProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
941
+
942
+ export declare namespace SelectPositioner {
943
+ export type State = SelectPositionerState;
944
+ export type Props = SelectPositionerProps;
945
+ }
946
+
947
+ export declare interface SelectPositionerProps extends UseAnchorPositioningSharedParameters, BaseUIComponentProps<'div', SelectPositionerState> {
948
+ /**
949
+ * Whether the positioner overlaps the trigger so the selected item's text is aligned with the trigger's value text. This only applies to mouse input and is automatically disabled if there is not enough space.
950
+ * @default true
951
+ */
952
+ alignItemWithTrigger?: boolean | undefined;
953
+ }
954
+
955
+ export declare interface SelectPositionerState {
956
+ /**
957
+ * Whether the component is open.
958
+ */
959
+ open: boolean;
960
+ /**
961
+ * The side of the anchor the component is placed on.
962
+ */
963
+ side: Side | 'none';
964
+ /**
965
+ * The alignment of the component relative to the anchor.
966
+ */
967
+ align: Align;
968
+ /**
969
+ * Whether the anchor element is hidden.
970
+ */
971
+ anchorHidden: boolean;
972
+ }
973
+
974
+ /**
975
+ * Groups all parts of the select.
976
+ * Doesn't render its own HTML element.
977
+ *
978
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
979
+ */
980
+ export declare function SelectRoot<Value, Multiple extends boolean | undefined = false>(props: SelectRoot.Props<Value, Multiple>): React_2.JSX.Element;
981
+
982
+ export declare namespace SelectRoot {
983
+ export type Props<Value, Multiple extends boolean | undefined = false> = SelectRootProps<Value, Multiple>;
984
+ export type State = SelectRootState;
985
+ export type Actions = SelectRootActions;
986
+ export type ChangeEventReason = SelectRootChangeEventReason;
987
+ export type ChangeEventDetails = SelectRootChangeEventDetails;
988
+ }
989
+
990
+ export declare interface SelectRootActions {
991
+ unmount: () => void;
992
+ }
993
+
994
+ export declare type SelectRootChangeEventDetails = BaseUIChangeEventDetails<SelectRootChangeEventReason>;
995
+
996
+ export declare type SelectRootChangeEventReason = typeof REASONS.triggerPress | typeof REASONS.outsidePress | typeof REASONS.escapeKey | typeof REASONS.windowResize | typeof REASONS.itemPress | typeof REASONS.focusOut | typeof REASONS.listNavigation | typeof REASONS.cancelOpen | typeof REASONS.none;
997
+
998
+ export declare interface SelectRootProps<Value, Multiple extends boolean | undefined = false> {
999
+ children?: React_2.ReactNode;
1000
+ /**
1001
+ * A ref to access the hidden input element.
1002
+ */
1003
+ inputRef?: React_2.Ref<HTMLInputElement> | undefined;
1004
+ /**
1005
+ * Identifies the field when a form is submitted.
1006
+ */
1007
+ name?: string | undefined;
1008
+ /**
1009
+ * Identifies the form that owns the hidden input.
1010
+ * Useful when the select is rendered outside the form.
1011
+ */
1012
+ form?: string | undefined;
1013
+ /**
1014
+ * Provides a hint to the browser for autofill.
1015
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete
1016
+ */
1017
+ autoComplete?: string | undefined;
1018
+ /**
1019
+ * The id of the Select.
1020
+ */
1021
+ id?: string | undefined;
1022
+ /**
1023
+ * Whether the user must choose a value before submitting a form.
1024
+ * @default false
1025
+ */
1026
+ required?: boolean | undefined;
1027
+ /**
1028
+ * Whether the user should be unable to choose a different option from the select popup.
1029
+ * @default false
1030
+ */
1031
+ readOnly?: boolean | undefined;
1032
+ /**
1033
+ * Whether the component should ignore user interaction.
1034
+ * @default false
1035
+ */
1036
+ disabled?: boolean | undefined;
1037
+ /**
1038
+ * Whether multiple items can be selected.
1039
+ * @default false
1040
+ */
1041
+ multiple?: Multiple | undefined;
1042
+ /**
1043
+ * Whether moving the pointer over items should highlight them.
1044
+ * Disabling this prop allows CSS `:hover` to be differentiated from the `:focus` (`data-highlighted`) state.
1045
+ * @default true
1046
+ */
1047
+ highlightItemOnHover?: boolean | undefined;
1048
+ /**
1049
+ * Whether the select popup is initially open.
1050
+ *
1051
+ * To render a controlled select popup, use the `open` prop instead.
1052
+ * @default false
1053
+ */
1054
+ defaultOpen?: boolean | undefined;
1055
+ /**
1056
+ * Event handler called when the select popup is opened or closed.
1057
+ */
1058
+ onOpenChange?: ((open: boolean, eventDetails: SelectRootChangeEventDetails) => void) | undefined;
1059
+ /**
1060
+ * Event handler called after any animations complete when the select popup is opened or closed.
1061
+ */
1062
+ onOpenChangeComplete?: ((open: boolean) => void) | undefined;
1063
+ /**
1064
+ * Whether the select popup is currently open.
1065
+ */
1066
+ open?: boolean | undefined;
1067
+ /**
1068
+ * Determines if the select enters a modal state when open.
1069
+ * - `true`: user interaction is limited to the select: document page scroll is locked and pointer interactions on outside elements are disabled.
1070
+ * - `false`: user interaction with the rest of the document is allowed.
1071
+ * @default true
1072
+ */
1073
+ modal?: boolean | undefined;
1074
+ /**
1075
+ * A ref to imperative actions.
1076
+ * - `unmount`: When specified, the select will not be unmounted when closed.
1077
+ * Instead, the `unmount` function must be called to unmount the select manually.
1078
+ * Useful when the select's animation is controlled by an external library.
1079
+ */
1080
+ actionsRef?: React_2.RefObject<SelectRootActions | null> | undefined;
1081
+ /**
1082
+ * Data structure of the items rendered in the select popup.
1083
+ * When specified, `<Select.Value>` renders the label of the selected item instead of the raw value.
1084
+ * @example
1085
+ * ```tsx
1086
+ * const items = {
1087
+ * sans: 'Sans-serif',
1088
+ * serif: 'Serif',
1089
+ * mono: 'Monospace',
1090
+ * cursive: 'Cursive',
1091
+ * };
1092
+ * <Select.Root items={items} />
1093
+ * ```
1094
+ */
1095
+ items?: Record<string, React_2.ReactNode> | ReadonlyArray<{
1096
+ label: React_2.ReactNode;
1097
+ value: any;
1098
+ }> | ReadonlyArray<Group<any>> | undefined;
1099
+ /**
1100
+ * When the item values are objects (`<Select.Item value={object}>`), this function converts the object value to a string representation for display in the trigger.
1101
+ * If the shape of the object is `{ value, label }`, the label will be used automatically without needing to specify this prop.
1102
+ */
1103
+ itemToStringLabel?: ((itemValue: Value) => string) | undefined;
1104
+ /**
1105
+ * When the item values are objects (`<Select.Item value={object}>`), this function converts the object value to a string representation for form submission.
1106
+ * If the shape of the object is `{ value, label }`, the value will be used automatically without needing to specify this prop.
1107
+ */
1108
+ itemToStringValue?: ((itemValue: Value) => string) | undefined;
1109
+ /**
1110
+ * Custom comparison logic used to determine if a select item value matches the current selected value. Useful when item values are objects without matching referentially.
1111
+ * Defaults to `Object.is` comparison.
1112
+ */
1113
+ isItemEqualToValue?: ((itemValue: Value, value: Value) => boolean) | undefined;
1114
+ /**
1115
+ * The uncontrolled value of the select when it's initially rendered.
1116
+ *
1117
+ * To render a controlled select, use the `value` prop instead.
1118
+ */
1119
+ defaultValue?: SelectValueType<Value, Multiple> | null | undefined;
1120
+ /**
1121
+ * The value of the select. Use when controlled.
1122
+ */
1123
+ value?: SelectValueType<Value, Multiple> | null | undefined;
1124
+ /**
1125
+ * Event handler called when the value of the select changes.
1126
+ */
1127
+ onValueChange?: ((value: SelectValueType<Value, Multiple> | (Multiple extends true ? never : null), eventDetails: SelectRootChangeEventDetails) => void) | undefined;
1128
+ }
1129
+
1130
+ export declare interface SelectRootState {}
1131
+
1132
+ /**
1133
+ * An element that scrolls the select popup down when hovered. Does not render when using touch input.
1134
+ * Renders a `<div>` element.
1135
+ *
1136
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
1137
+ */
1138
+ export declare const SelectScrollDownArrow: React_2.ForwardRefExoticComponent<Omit<SelectScrollDownArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
1139
+
1140
+ export declare namespace SelectScrollDownArrow {
1141
+ export type State = SelectScrollDownArrowState;
1142
+ export type Props = SelectScrollDownArrowProps;
1143
+ }
1144
+
1145
+ export declare interface SelectScrollDownArrowProps extends BaseUIComponentProps<'div', SelectScrollDownArrowState> {
1146
+ /**
1147
+ * Whether to keep the HTML element in the DOM while the select popup is not scrollable.
1148
+ * @default false
1149
+ */
1150
+ keepMounted?: boolean | undefined;
1151
+ }
1152
+
1153
+ export declare interface SelectScrollDownArrowState {}
1154
+
1155
+ /**
1156
+ * An element that scrolls the select popup up when hovered. Does not render when using touch input.
1157
+ * Renders a `<div>` element.
1158
+ *
1159
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
1160
+ */
1161
+ export declare const SelectScrollUpArrow: React_2.ForwardRefExoticComponent<Omit<SelectScrollUpArrowProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
1162
+
1163
+ export declare namespace SelectScrollUpArrow {
1164
+ export type State = SelectScrollUpArrowState;
1165
+ export type Props = SelectScrollUpArrowProps;
1166
+ }
1167
+
1168
+ export declare interface SelectScrollUpArrowProps extends BaseUIComponentProps<'div', SelectScrollUpArrowState> {
1169
+ /**
1170
+ * Whether to keep the HTML element in the DOM while the select popup is not scrollable.
1171
+ * @default false
1172
+ */
1173
+ keepMounted?: boolean | undefined;
1174
+ }
1175
+
1176
+ export declare interface SelectScrollUpArrowState {}
1177
+
1178
+ /**
1179
+ * A button that opens the select popup.
1180
+ * Renders a `<button>` element.
1181
+ *
1182
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
1183
+ */
1184
+ export declare const SelectTrigger: React_2.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
1185
+
1186
+ export declare namespace SelectTrigger {
1187
+ export type State = SelectTriggerState;
1188
+ export type Props = SelectTriggerProps;
1189
+ }
1190
+
1191
+ export declare interface SelectTriggerProps extends NativeButtonProps, BaseUIComponentProps<'button', SelectTriggerState> {
1192
+ children?: React_2.ReactNode;
1193
+ /**
1194
+ * Whether the component should ignore user interaction.
1195
+ */
1196
+ disabled?: boolean | undefined;
1197
+ }
1198
+
1199
+ export declare interface SelectTriggerState extends FieldRootState {
1200
+ /**
1201
+ * Whether the select popup is currently open.
1202
+ */
1203
+ open: boolean;
1204
+ /**
1205
+ * Whether the select popup is readonly.
1206
+ */
1207
+ readOnly: boolean;
1208
+ /**
1209
+ * Indicates which side the corresponding popup is positioned relative to its anchor.
1210
+ */
1211
+ popupSide: Side | null;
1212
+ /**
1213
+ * The value of the currently selected item.
1214
+ */
1215
+ value: any;
1216
+ /**
1217
+ * Whether the select doesn't have a value.
1218
+ */
1219
+ placeholder: boolean;
1220
+ }
1221
+
1222
+ /**
1223
+ * A text label of the currently selected item.
1224
+ * Renders a `<span>` element.
1225
+ *
1226
+ * Documentation: [Base UI Select](https://base-ui.com/react/components/select)
1227
+ */
1228
+ export declare const SelectValue: React_2.ForwardRefExoticComponent<Omit<SelectValueProps, "ref"> & React_2.RefAttributes<HTMLSpanElement>>;
1229
+
1230
+ export declare namespace SelectValue {
1231
+ export type State = SelectValueState;
1232
+ export type Props = SelectValueProps;
1233
+ }
1234
+
1235
+ export declare interface SelectValueProps extends Omit<BaseUIComponentProps<'span', SelectValueState>, 'children'> {
1236
+ /**
1237
+ * Accepts a function that returns a `ReactNode` to format the selected value.
1238
+ * @example
1239
+ * ```tsx
1240
+ * <Select.Value>
1241
+ * {(value: string | null) => value ? labels[value] : 'No value'}
1242
+ * </Select.Value>
1243
+ * ```
1244
+ */
1245
+ children?: React_2.ReactNode | ((value: any) => React_2.ReactNode);
1246
+ /**
1247
+ * The placeholder value to display when no value is selected.
1248
+ * This is overridden by `children` if specified, or by a null item's label in `items`.
1249
+ */
1250
+ placeholder?: React_2.ReactNode;
1251
+ }
1252
+
1253
+ export declare interface SelectValueState {
1254
+ /**
1255
+ * The value of the currently selected item.
1256
+ */
1257
+ value: any;
1258
+ /**
1259
+ * Whether the placeholder is being displayed.
1260
+ */
1261
+ placeholder: boolean;
1262
+ }
1263
+
1264
+ declare type SelectValueType<Value, Multiple extends boolean | undefined> = Multiple extends true ? Value[] : Value;
1265
+
1266
+ /**
1267
+ * A separator element accessible to screen readers.
1268
+ * Renders a `<div>` element.
1269
+ *
1270
+ * Documentation: [Base UI Separator](https://base-ui.com/react/components/separator)
1271
+ */
1272
+ declare const Separator: React_2.ForwardRefExoticComponent<Omit<SeparatorProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
1273
+
1274
+ declare namespace Separator {
1275
+ type Props = SeparatorProps;
1276
+ type State = SeparatorState;
1277
+ }
1278
+
1279
+ declare interface SeparatorProps extends BaseUIComponentProps<'div', SeparatorState> {
1280
+ /**
1281
+ * The orientation of the separator.
1282
+ * @default 'horizontal'
1283
+ */
1284
+ orientation?: Orientation | undefined;
1285
+ }
1286
+
1287
+ declare interface SeparatorState {
1288
+ /**
1289
+ * The orientation of the separator.
1290
+ */
1291
+ orientation: Orientation;
1292
+ }
1293
+
1294
+ declare const siblingOpen: "sibling-open";
1295
+
1296
+ declare type Side = 'top' | 'bottom' | 'left' | 'right' | 'inline-end' | 'inline-start';
1297
+
1298
+ declare interface SideFlipMode {
1299
+ /**
1300
+ * How to avoid collisions on the side axis.
1301
+ * - `'flip'`: If there is not enough space, place the popup on the opposite side.
1302
+ * - `'none'`: Keep the preferred side even if it overflows.
1303
+ */
1304
+ side?: 'flip' | 'none' | undefined;
1305
+ /**
1306
+ * How to avoid collisions on the align axis.
1307
+ * - `'flip'`: If there is not enough space, swap `'start'` and `'end'` alignment.
1308
+ * - `'shift'`: Keep the alignment and shift the popup to fit within the boundary.
1309
+ * - `'none'`: Keep the preferred alignment even if it overflows.
1310
+ */
1311
+ align?: 'flip' | 'shift' | 'none' | undefined;
1312
+ /**
1313
+ * If both sides on the preferred axis do not fit, determines whether to fallback
1314
+ * to a side on the perpendicular axis and which logical side to prefer.
1315
+ * - `'start'`: Prefer the logical start side on the perpendicular axis.
1316
+ * - `'end'`: Prefer the logical end side on the perpendicular axis.
1317
+ * - `'none'`: Do not fallback to the perpendicular axis.
1318
+ */
1319
+ fallbackAxisSide?: 'start' | 'end' | 'none' | undefined;
1320
+ }
1321
+
1322
+ declare interface SideShiftMode {
1323
+ /**
1324
+ * How to avoid collisions on the side axis.
1325
+ * - `'shift'`: Keep the preferred side and shift the popup to fit within the boundary.
1326
+ * - `'none'`: Keep the preferred side even if it overflows.
1327
+ */
1328
+ side?: 'shift' | 'none' | undefined;
1329
+ /**
1330
+ * How to avoid collisions on the align axis.
1331
+ * - `'shift'`: Keep the alignment and shift the popup to fit within the boundary.
1332
+ * - `'none'`: Keep the preferred alignment even if it overflows.
1333
+ */
1334
+ align?: 'shift' | 'none' | undefined;
1335
+ /**
1336
+ * If both sides on the preferred axis do not fit, determines whether to fallback
1337
+ * to a side on the perpendicular axis and which logical side to prefer.
1338
+ * - `'start'`: Prefer the logical start side on the perpendicular axis.
1339
+ * - `'end'`: Prefer the logical end side on the perpendicular axis.
1340
+ * - `'none'`: Do not fallback to the perpendicular axis.
1341
+ */
1342
+ fallbackAxisSide?: 'start' | 'end' | 'none' | undefined;
1343
+ }
1344
+
1345
+ declare const swipe: "swipe";
1346
+
1347
+ declare const trackPress: "track-press";
1348
+
1349
+ declare type TransitionStatus = 'starting' | 'ending' | 'idle' | undefined;
1350
+
1351
+ declare const triggerFocus: "trigger-focus";
1352
+
1353
+ declare const triggerHover: "trigger-hover";
1354
+
1355
+ declare const triggerPress: "trigger-press";
1356
+
1357
+ declare interface UseAnchorPositioningSharedParameters {
1358
+ /**
1359
+ * An element to position the popup against.
1360
+ * By default, the popup will be positioned against the trigger.
1361
+ */
1362
+ anchor?: Element | null | VirtualElement | React_2.RefObject<Element | null> | (() => Element | VirtualElement | null) | undefined;
1363
+ /**
1364
+ * Determines which CSS `position` property to use.
1365
+ * @default 'absolute'
1366
+ */
1367
+ positionMethod?: 'absolute' | 'fixed' | undefined;
1368
+ /**
1369
+ * Which side of the anchor element to align the popup against.
1370
+ * May automatically change to avoid collisions.
1371
+ * @default 'bottom'
1372
+ */
1373
+ side?: Side | undefined;
1374
+ /**
1375
+ * Distance between the anchor and the popup in pixels.
1376
+ * Also accepts a function that returns the distance to read the dimensions of the anchor
1377
+ * and positioner elements, along with its side and alignment.
1378
+ *
1379
+ * The function takes a `data` object parameter with the following properties:
1380
+ * - `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.
1381
+ * - `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.
1382
+ * - `data.side`: which side of the anchor element the positioner is aligned against.
1383
+ * - `data.align`: how the positioner is aligned relative to the specified side.
1384
+ *
1385
+ * @example
1386
+ * ```jsx
1387
+ * <Positioner
1388
+ * sideOffset={({ side, align, anchor, positioner }) => {
1389
+ * return side === 'top' || side === 'bottom'
1390
+ * ? anchor.height
1391
+ * : anchor.width;
1392
+ * }}
1393
+ * />
1394
+ * ```
1395
+ *
1396
+ * @default 0
1397
+ */
1398
+ sideOffset?: number | OffsetFunction | undefined;
1399
+ /**
1400
+ * How to align the popup relative to the specified side.
1401
+ * @default 'center'
1402
+ */
1403
+ align?: Align | undefined;
1404
+ /**
1405
+ * Additional offset along the alignment axis in pixels.
1406
+ * Also accepts a function that returns the offset to read the dimensions of the anchor
1407
+ * and positioner elements, along with its side and alignment.
1408
+ *
1409
+ * The function takes a `data` object parameter with the following properties:
1410
+ * - `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.
1411
+ * - `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.
1412
+ * - `data.side`: which side of the anchor element the positioner is aligned against.
1413
+ * - `data.align`: how the positioner is aligned relative to the specified side.
1414
+ *
1415
+ * @example
1416
+ * ```jsx
1417
+ * <Positioner
1418
+ * alignOffset={({ side, align, anchor, positioner }) => {
1419
+ * return side === 'top' || side === 'bottom'
1420
+ * ? anchor.width
1421
+ * : anchor.height;
1422
+ * }}
1423
+ * />
1424
+ * ```
1425
+ *
1426
+ * @default 0
1427
+ */
1428
+ alignOffset?: number | OffsetFunction | undefined;
1429
+ /**
1430
+ * An element or a rectangle that delimits the area that the popup is confined to.
1431
+ * @default 'clipping-ancestors'
1432
+ */
1433
+ collisionBoundary?: Boundary | undefined;
1434
+ /**
1435
+ * Additional space to maintain from the edge of the collision boundary.
1436
+ * @default 5
1437
+ */
1438
+ collisionPadding?: Padding | undefined;
1439
+ /**
1440
+ * Whether to maintain the popup in the viewport after
1441
+ * the anchor element was scrolled out of view.
1442
+ * @default false
1443
+ */
1444
+ sticky?: boolean | undefined;
1445
+ /**
1446
+ * Minimum distance to maintain between the arrow and the edges of the popup.
1447
+ *
1448
+ * Use it to prevent the arrow element from hanging out of the rounded corners of a popup.
1449
+ * @default 5
1450
+ */
1451
+ arrowPadding?: number | undefined;
1452
+ /**
1453
+ * Whether to disable the popup from tracking any layout shift of its positioning anchor.
1454
+ * @default false
1455
+ */
1456
+ disableAnchorTracking?: boolean | undefined;
1457
+ /**
1458
+ * Determines how to handle collisions when positioning the popup.
1459
+ *
1460
+ * `side` controls overflow on the preferred placement axis (`top`/`bottom` or `left`/`right`):
1461
+ * - `'flip'`: keep the requested side when it fits; otherwise try the opposite side
1462
+ * (`top` and `bottom`, or `left` and `right`).
1463
+ * - `'shift'`: never change side; keep the requested side and move the popup within
1464
+ * the clipping boundary so it stays visible.
1465
+ * - `'none'`: do not correct side-axis overflow.
1466
+ *
1467
+ * `align` controls overflow on the alignment axis (`start`/`center`/`end`):
1468
+ * - `'flip'`: keep side, but swap `start` and `end` when the requested alignment overflows.
1469
+ * - `'shift'`: keep side and requested alignment, then nudge the popup along the
1470
+ * alignment axis to fit.
1471
+ * - `'none'`: do not correct alignment-axis overflow.
1472
+ *
1473
+ * `fallbackAxisSide` controls fallback behavior on the perpendicular axis when the
1474
+ * preferred axis cannot fit:
1475
+ * - `'start'`: allow perpendicular fallback and try the logical start side first
1476
+ * (`top` before `bottom`, or `left` before `right` in LTR).
1477
+ * - `'end'`: allow perpendicular fallback and try the logical end side first
1478
+ * (`bottom` before `top`, or `right` before `left` in LTR).
1479
+ * - `'none'`: do not fallback to the perpendicular axis.
1480
+ *
1481
+ * When `side` is `'shift'`, explicitly setting `align` only supports `'shift'` or `'none'`.
1482
+ * If `align` is omitted, it defaults to `'flip'`.
1483
+ *
1484
+ * @example
1485
+ * ```jsx
1486
+ * <Positioner
1487
+ * collisionAvoidance={{
1488
+ * side: 'shift',
1489
+ * align: 'shift',
1490
+ * fallbackAxisSide: 'none',
1491
+ * }}
1492
+ * />
1493
+ * ```
1494
+ *
1495
+ */
1496
+ collisionAvoidance?: CollisionAvoidance | undefined;
1497
+ }
1498
+
1499
+ declare interface UseFloatingPortalNodeProps {
1500
+ ref?: React_2.Ref<HTMLDivElement> | undefined;
1501
+ container?: HTMLElement | ShadowRoot | null | React_2.RefObject<HTMLElement | ShadowRoot | null> | undefined;
1502
+ componentProps?: UseRenderElementComponentProps<any> | undefined;
1503
+ elementProps?: React_2.HTMLAttributes<HTMLDivElement> | undefined;
1504
+ }
1505
+
1506
+ declare interface UseRenderElementComponentProps<State> {
1507
+ /**
1508
+ * The class name to apply to the rendered element.
1509
+ * Can be a string or a function that accepts the state and returns a string.
1510
+ */
1511
+ className?: string | ((state: State) => string | undefined) | undefined;
1512
+ /**
1513
+ * The render prop or React element to override the default element.
1514
+ */
1515
+ render?: undefined | React_2.ReactElement | ComponentRenderFn<React_2.HTMLAttributes<any>, State>;
1516
+ /**
1517
+ * The style to apply to the rendered element.
1518
+ * Can be a style object or a function that accepts the state and returns a style object.
1519
+ */
1520
+ style?: React_2.CSSProperties | ((state: State) => React_2.CSSProperties | undefined) | undefined;
1521
+ }
1522
+
1523
+ declare const wheel: "wheel";
1524
+
1525
+ declare const windowResize: "window-resize";
1526
+
1527
+ /**
1528
+ * Adds a `preventBaseUIHandler` method to all event handlers.
1529
+ */
1530
+ declare type WithBaseUIEvent<T> = { [K in keyof T]: WithPreventBaseUIHandler<T[K]> };
76
1531
 
77
- export * from "@base-ui/react/select";
1532
+ declare type WithPreventBaseUIHandler<T> = T extends ((event: infer E) => any) ? E extends React_2.SyntheticEvent<Element, Event> ? (event: BaseUIEvent<E>) => ReturnType<T> : T : T extends undefined ? undefined : T;
78
1533
 
79
1534
  export { }