react-aria-components 3.0.0-nightly-ab9fd5c68-241125 → 3.0.0-nightly-10a43de88-241127

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 (315) hide show
  1. package/dist/Breadcrumbs.main.js +2 -5
  2. package/dist/Breadcrumbs.main.js.map +1 -1
  3. package/dist/Breadcrumbs.mjs +3 -6
  4. package/dist/Breadcrumbs.module.js +3 -6
  5. package/dist/Breadcrumbs.module.js.map +1 -1
  6. package/dist/Button.main.js +2 -5
  7. package/dist/Button.main.js.map +1 -1
  8. package/dist/Button.mjs +2 -5
  9. package/dist/Button.module.js +2 -5
  10. package/dist/Button.module.js.map +1 -1
  11. package/dist/Calendar.main.js +9 -22
  12. package/dist/Calendar.main.js.map +1 -1
  13. package/dist/Calendar.mjs +9 -22
  14. package/dist/Calendar.module.js +9 -22
  15. package/dist/Calendar.module.js.map +1 -1
  16. package/dist/Checkbox.main.js +5 -12
  17. package/dist/Checkbox.main.js.map +1 -1
  18. package/dist/Checkbox.mjs +6 -13
  19. package/dist/Checkbox.module.js +6 -13
  20. package/dist/Checkbox.module.js.map +1 -1
  21. package/dist/ColorArea.main.js +2 -5
  22. package/dist/ColorArea.main.js.map +1 -1
  23. package/dist/ColorArea.mjs +3 -6
  24. package/dist/ColorArea.module.js +3 -6
  25. package/dist/ColorArea.module.js.map +1 -1
  26. package/dist/ColorField.main.js +2 -5
  27. package/dist/ColorField.main.js.map +1 -1
  28. package/dist/ColorField.mjs +2 -5
  29. package/dist/ColorField.module.js +2 -5
  30. package/dist/ColorField.module.js.map +1 -1
  31. package/dist/ColorSlider.main.js +2 -5
  32. package/dist/ColorSlider.main.js.map +1 -1
  33. package/dist/ColorSlider.mjs +2 -5
  34. package/dist/ColorSlider.module.js +2 -5
  35. package/dist/ColorSlider.module.js.map +1 -1
  36. package/dist/ColorSwatch.main.js +2 -5
  37. package/dist/ColorSwatch.main.js.map +1 -1
  38. package/dist/ColorSwatch.mjs +2 -5
  39. package/dist/ColorSwatch.module.js +2 -5
  40. package/dist/ColorSwatch.module.js.map +1 -1
  41. package/dist/ColorSwatchPicker.main.js +4 -8
  42. package/dist/ColorSwatchPicker.main.js.map +1 -1
  43. package/dist/ColorSwatchPicker.mjs +5 -9
  44. package/dist/ColorSwatchPicker.module.js +5 -9
  45. package/dist/ColorSwatchPicker.module.js.map +1 -1
  46. package/dist/ColorThumb.main.js +2 -5
  47. package/dist/ColorThumb.main.js.map +1 -1
  48. package/dist/ColorThumb.mjs +3 -6
  49. package/dist/ColorThumb.module.js +3 -6
  50. package/dist/ColorThumb.module.js.map +1 -1
  51. package/dist/ColorWheel.main.js +5 -11
  52. package/dist/ColorWheel.main.js.map +1 -1
  53. package/dist/ColorWheel.mjs +6 -12
  54. package/dist/ColorWheel.module.js +6 -12
  55. package/dist/ColorWheel.module.js.map +1 -1
  56. package/dist/ComboBox.main.js +2 -5
  57. package/dist/ComboBox.main.js.map +1 -1
  58. package/dist/ComboBox.mjs +3 -6
  59. package/dist/ComboBox.module.js +3 -6
  60. package/dist/ComboBox.module.js.map +1 -1
  61. package/dist/DateField.main.js +8 -23
  62. package/dist/DateField.main.js.map +1 -1
  63. package/dist/DateField.mjs +9 -24
  64. package/dist/DateField.module.js +9 -24
  65. package/dist/DateField.module.js.map +1 -1
  66. package/dist/DatePicker.main.js +4 -11
  67. package/dist/DatePicker.main.js.map +1 -1
  68. package/dist/DatePicker.mjs +5 -12
  69. package/dist/DatePicker.module.js +5 -12
  70. package/dist/DatePicker.module.js.map +1 -1
  71. package/dist/Dialog.main.js +2 -5
  72. package/dist/Dialog.main.js.map +1 -1
  73. package/dist/Dialog.mjs +3 -6
  74. package/dist/Dialog.module.js +3 -6
  75. package/dist/Dialog.module.js.map +1 -1
  76. package/dist/Disclosure.main.js +6 -16
  77. package/dist/Disclosure.main.js.map +1 -1
  78. package/dist/Disclosure.mjs +6 -16
  79. package/dist/Disclosure.module.js +6 -16
  80. package/dist/Disclosure.module.js.map +1 -1
  81. package/dist/DragAndDrop.main.js +2 -5
  82. package/dist/DragAndDrop.main.js.map +1 -1
  83. package/dist/DragAndDrop.mjs +3 -6
  84. package/dist/DragAndDrop.module.js +3 -6
  85. package/dist/DragAndDrop.module.js.map +1 -1
  86. package/dist/DropZone.main.js +2 -5
  87. package/dist/DropZone.main.js.map +1 -1
  88. package/dist/DropZone.mjs +3 -6
  89. package/dist/DropZone.module.js +3 -6
  90. package/dist/DropZone.module.js.map +1 -1
  91. package/dist/FieldError.main.js +2 -5
  92. package/dist/FieldError.main.js.map +1 -1
  93. package/dist/FieldError.mjs +3 -6
  94. package/dist/FieldError.module.js +3 -6
  95. package/dist/FieldError.module.js.map +1 -1
  96. package/dist/FileTrigger.main.js +2 -5
  97. package/dist/FileTrigger.main.js.map +1 -1
  98. package/dist/FileTrigger.mjs +2 -5
  99. package/dist/FileTrigger.module.js +2 -5
  100. package/dist/FileTrigger.module.js.map +1 -1
  101. package/dist/Form.main.js +2 -6
  102. package/dist/Form.main.js.map +1 -1
  103. package/dist/Form.mjs +2 -6
  104. package/dist/Form.module.js +2 -6
  105. package/dist/Form.module.js.map +1 -1
  106. package/dist/GridList.main.js +2 -6
  107. package/dist/GridList.main.js.map +1 -1
  108. package/dist/GridList.mjs +3 -7
  109. package/dist/GridList.module.js +3 -7
  110. package/dist/GridList.module.js.map +1 -1
  111. package/dist/Group.main.js +2 -5
  112. package/dist/Group.main.js.map +1 -1
  113. package/dist/Group.mjs +2 -5
  114. package/dist/Group.module.js +2 -5
  115. package/dist/Group.module.js.map +1 -1
  116. package/dist/Heading.main.js +2 -3
  117. package/dist/Heading.main.js.map +1 -1
  118. package/dist/Heading.mjs +2 -3
  119. package/dist/Heading.module.js +2 -3
  120. package/dist/Heading.module.js.map +1 -1
  121. package/dist/Input.main.js +2 -5
  122. package/dist/Input.main.js.map +1 -1
  123. package/dist/Input.mjs +2 -5
  124. package/dist/Input.module.js +2 -5
  125. package/dist/Input.module.js.map +1 -1
  126. package/dist/Keyboard.main.js +2 -3
  127. package/dist/Keyboard.main.js.map +1 -1
  128. package/dist/Keyboard.mjs +2 -3
  129. package/dist/Keyboard.module.js +2 -3
  130. package/dist/Keyboard.module.js.map +1 -1
  131. package/dist/Label.main.js +2 -3
  132. package/dist/Label.main.js.map +1 -1
  133. package/dist/Label.mjs +2 -3
  134. package/dist/Label.module.js +2 -3
  135. package/dist/Label.module.js.map +1 -1
  136. package/dist/Link.main.js +2 -6
  137. package/dist/Link.main.js.map +1 -1
  138. package/dist/Link.mjs +2 -6
  139. package/dist/Link.module.js +2 -6
  140. package/dist/Link.module.js.map +1 -1
  141. package/dist/ListBox.main.js +5 -10
  142. package/dist/ListBox.main.js.map +1 -1
  143. package/dist/ListBox.mjs +6 -11
  144. package/dist/ListBox.module.js +6 -11
  145. package/dist/ListBox.module.js.map +1 -1
  146. package/dist/Menu.main.js +5 -10
  147. package/dist/Menu.main.js.map +1 -1
  148. package/dist/Menu.mjs +5 -10
  149. package/dist/Menu.module.js +5 -10
  150. package/dist/Menu.module.js.map +1 -1
  151. package/dist/Meter.main.js +2 -5
  152. package/dist/Meter.main.js.map +1 -1
  153. package/dist/Meter.mjs +2 -5
  154. package/dist/Meter.module.js +2 -5
  155. package/dist/Meter.module.js.map +1 -1
  156. package/dist/Modal.main.js +3 -6
  157. package/dist/Modal.main.js.map +1 -1
  158. package/dist/Modal.mjs +4 -7
  159. package/dist/Modal.module.js +4 -7
  160. package/dist/Modal.module.js.map +1 -1
  161. package/dist/NumberField.main.js +2 -5
  162. package/dist/NumberField.main.js.map +1 -1
  163. package/dist/NumberField.mjs +3 -6
  164. package/dist/NumberField.module.js +3 -6
  165. package/dist/NumberField.module.js.map +1 -1
  166. package/dist/OverlayArrow.main.js +2 -6
  167. package/dist/OverlayArrow.main.js.map +1 -1
  168. package/dist/OverlayArrow.mjs +2 -6
  169. package/dist/OverlayArrow.module.js +2 -6
  170. package/dist/OverlayArrow.module.js.map +1 -1
  171. package/dist/Popover.main.js +2 -5
  172. package/dist/Popover.main.js.map +1 -1
  173. package/dist/Popover.mjs +3 -6
  174. package/dist/Popover.module.js +3 -6
  175. package/dist/Popover.module.js.map +1 -1
  176. package/dist/ProgressBar.main.js +2 -6
  177. package/dist/ProgressBar.main.js.map +1 -1
  178. package/dist/ProgressBar.mjs +2 -6
  179. package/dist/ProgressBar.module.js +2 -6
  180. package/dist/ProgressBar.module.js.map +1 -1
  181. package/dist/RadioGroup.main.js +4 -10
  182. package/dist/RadioGroup.main.js.map +1 -1
  183. package/dist/RadioGroup.mjs +4 -10
  184. package/dist/RadioGroup.module.js +4 -10
  185. package/dist/RadioGroup.module.js.map +1 -1
  186. package/dist/SearchField.main.js +2 -5
  187. package/dist/SearchField.main.js.map +1 -1
  188. package/dist/SearchField.mjs +3 -6
  189. package/dist/SearchField.module.js +3 -6
  190. package/dist/SearchField.module.js.map +1 -1
  191. package/dist/Select.main.js +5 -12
  192. package/dist/Select.main.js.map +1 -1
  193. package/dist/Select.mjs +6 -13
  194. package/dist/Select.module.js +6 -13
  195. package/dist/Select.module.js.map +1 -1
  196. package/dist/Slider.main.js +8 -20
  197. package/dist/Slider.main.js.map +1 -1
  198. package/dist/Slider.mjs +9 -21
  199. package/dist/Slider.module.js +9 -21
  200. package/dist/Slider.module.js.map +1 -1
  201. package/dist/Switch.main.js +2 -5
  202. package/dist/Switch.main.js.map +1 -1
  203. package/dist/Switch.mjs +2 -5
  204. package/dist/Switch.module.js +2 -5
  205. package/dist/Switch.module.js.map +1 -1
  206. package/dist/Table.main.js +6 -12
  207. package/dist/Table.main.js.map +1 -1
  208. package/dist/Table.mjs +7 -13
  209. package/dist/Table.module.js +7 -13
  210. package/dist/Table.module.js.map +1 -1
  211. package/dist/Tabs.main.js +6 -16
  212. package/dist/Tabs.main.js.map +1 -1
  213. package/dist/Tabs.mjs +7 -17
  214. package/dist/Tabs.module.js +7 -17
  215. package/dist/Tabs.module.js.map +1 -1
  216. package/dist/TagGroup.main.js +4 -10
  217. package/dist/TagGroup.main.js.map +1 -1
  218. package/dist/TagGroup.mjs +5 -11
  219. package/dist/TagGroup.module.js +5 -11
  220. package/dist/TagGroup.module.js.map +1 -1
  221. package/dist/Text.main.js +2 -3
  222. package/dist/Text.main.js.map +1 -1
  223. package/dist/Text.mjs +2 -3
  224. package/dist/Text.module.js +2 -3
  225. package/dist/Text.module.js.map +1 -1
  226. package/dist/TextArea.main.js +2 -5
  227. package/dist/TextArea.main.js.map +1 -1
  228. package/dist/TextArea.mjs +2 -5
  229. package/dist/TextArea.module.js +2 -5
  230. package/dist/TextArea.module.js.map +1 -1
  231. package/dist/TextField.main.js +2 -5
  232. package/dist/TextField.main.js.map +1 -1
  233. package/dist/TextField.mjs +3 -6
  234. package/dist/TextField.module.js +3 -6
  235. package/dist/TextField.module.js.map +1 -1
  236. package/dist/ToggleButton.main.js +2 -5
  237. package/dist/ToggleButton.main.js.map +1 -1
  238. package/dist/ToggleButton.mjs +3 -6
  239. package/dist/ToggleButton.module.js +3 -6
  240. package/dist/ToggleButton.module.js.map +1 -1
  241. package/dist/ToggleButtonGroup.main.js +2 -5
  242. package/dist/ToggleButtonGroup.main.js.map +1 -1
  243. package/dist/ToggleButtonGroup.mjs +2 -5
  244. package/dist/ToggleButtonGroup.module.js +2 -5
  245. package/dist/ToggleButtonGroup.module.js.map +1 -1
  246. package/dist/Toolbar.main.js +2 -6
  247. package/dist/Toolbar.main.js.map +1 -1
  248. package/dist/Toolbar.mjs +2 -6
  249. package/dist/Toolbar.module.js +2 -6
  250. package/dist/Toolbar.module.js.map +1 -1
  251. package/dist/Tooltip.main.js +2 -5
  252. package/dist/Tooltip.main.js.map +1 -1
  253. package/dist/Tooltip.mjs +3 -6
  254. package/dist/Tooltip.module.js +3 -6
  255. package/dist/Tooltip.module.js.map +1 -1
  256. package/dist/Tree.main.js +2 -6
  257. package/dist/Tree.main.js.map +1 -1
  258. package/dist/Tree.mjs +3 -7
  259. package/dist/Tree.module.js +3 -7
  260. package/dist/Tree.module.js.map +1 -1
  261. package/dist/types.d.ts +10 -10
  262. package/dist/types.d.ts.map +1 -1
  263. package/package.json +30 -30
  264. package/src/Breadcrumbs.tsx +5 -8
  265. package/src/Button.tsx +5 -8
  266. package/src/Calendar.tsx +19 -31
  267. package/src/Checkbox.tsx +11 -17
  268. package/src/ColorArea.tsx +5 -8
  269. package/src/ColorField.tsx +5 -8
  270. package/src/ColorSlider.tsx +5 -8
  271. package/src/ColorSwatch.tsx +5 -8
  272. package/src/ColorSwatchPicker.tsx +7 -13
  273. package/src/ColorThumb.tsx +5 -8
  274. package/src/ColorWheel.tsx +10 -16
  275. package/src/ComboBox.tsx +5 -8
  276. package/src/DateField.tsx +21 -33
  277. package/src/DatePicker.tsx +9 -15
  278. package/src/Dialog.tsx +5 -8
  279. package/src/Disclosure.tsx +16 -25
  280. package/src/DragAndDrop.tsx +5 -8
  281. package/src/DropZone.tsx +5 -8
  282. package/src/FieldError.tsx +5 -8
  283. package/src/FileTrigger.tsx +5 -8
  284. package/src/Form.tsx +6 -9
  285. package/src/GridList.tsx +6 -9
  286. package/src/Group.tsx +5 -8
  287. package/src/Heading.tsx +2 -5
  288. package/src/Input.tsx +5 -8
  289. package/src/Keyboard.tsx +2 -5
  290. package/src/Label.tsx +2 -5
  291. package/src/Link.tsx +6 -9
  292. package/src/ListBox.tsx +8 -12
  293. package/src/Menu.tsx +8 -12
  294. package/src/Meter.tsx +5 -8
  295. package/src/Modal.tsx +5 -8
  296. package/src/NumberField.tsx +5 -8
  297. package/src/OverlayArrow.tsx +6 -9
  298. package/src/Popover.tsx +5 -8
  299. package/src/ProgressBar.tsx +6 -9
  300. package/src/RadioGroup.tsx +10 -16
  301. package/src/SearchField.tsx +5 -8
  302. package/src/Select.tsx +11 -17
  303. package/src/Slider.tsx +20 -32
  304. package/src/Switch.tsx +5 -8
  305. package/src/Table.tsx +10 -19
  306. package/src/Tabs.tsx +14 -23
  307. package/src/TagGroup.tsx +8 -14
  308. package/src/Text.tsx +2 -5
  309. package/src/TextArea.tsx +5 -7
  310. package/src/TextField.tsx +5 -8
  311. package/src/ToggleButton.tsx +5 -8
  312. package/src/ToggleButtonGroup.tsx +5 -8
  313. package/src/Toolbar.tsx +6 -9
  314. package/src/Tooltip.tsx +5 -8
  315. package/src/Tree.tsx +6 -9
package/src/Slider.tsx CHANGED
@@ -47,7 +47,10 @@ export interface SliderRenderProps {
47
47
  state: SliderState
48
48
  }
49
49
 
50
- function Slider<T extends number | number[]>(props: SliderProps<T>, ref: ForwardedRef<HTMLDivElement>) {
50
+ /**
51
+ * A slider allows a user to select one or more values within a range.
52
+ */
53
+ export const Slider = /*#__PURE__*/ (forwardRef as forwardRefType)(function Slider<T extends number | number[]>(props: SliderProps<T>, ref: ForwardedRef<HTMLDivElement>) {
51
54
  [props, ref] = useContextProps(props, ref, SliderContext);
52
55
  let trackRef = useRef<HTMLDivElement>(null);
53
56
  let numberFormatter = useNumberFormatter(props.formatOptions);
@@ -91,18 +94,15 @@ function Slider<T extends number | number[]>(props: SliderProps<T>, ref: Forward
91
94
  data-disabled={state.isDisabled || undefined} />
92
95
  </Provider>
93
96
  );
94
- }
95
-
96
- /**
97
- * A slider allows a user to select one or more values within a range.
98
- */
99
- const _Slider = /*#__PURE__*/ (forwardRef as forwardRefType)(Slider);
100
- export {_Slider as Slider};
97
+ });
101
98
 
102
99
  export interface SliderOutputProps extends RenderProps<SliderRenderProps> {}
103
100
  interface SliderOutputContextValue extends Omit<OutputHTMLAttributes<HTMLOutputElement>, 'children' | 'className' | 'style'>, SliderOutputProps {}
104
101
 
105
- function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElement>) {
102
+ /**
103
+ * A slider output displays the current value of a slider as text.
104
+ */
105
+ export const SliderOutput = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElement>) {
106
106
  [props, ref] = useContextProps(props, ref, SliderOutputContext);
107
107
  let {children, style, className, ...otherProps} = props;
108
108
  let state = useContext(SliderStateContext)!;
@@ -127,13 +127,7 @@ function SliderOutput(props: SliderOutputProps, ref: ForwardedRef<HTMLOutputElem
127
127
  data-orientation={state.orientation || undefined}
128
128
  data-disabled={state.isDisabled || undefined} />
129
129
  );
130
- }
131
-
132
- /**
133
- * A slider output displays the current value of a slider as text.
134
- */
135
- const _SliderOutput = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderOutput);
136
- export {_SliderOutput as SliderOutput};
130
+ });
137
131
 
138
132
  export interface SliderTrackRenderProps extends SliderRenderProps {
139
133
  /**
@@ -146,7 +140,10 @@ export interface SliderTrackRenderProps extends SliderRenderProps {
146
140
  export interface SliderTrackProps extends HoverEvents, RenderProps<SliderTrackRenderProps> {}
147
141
  interface SliderTrackContextValue extends Omit<HTMLAttributes<HTMLElement>, 'children' | 'className' | 'style'>, SliderTrackProps {}
148
142
 
149
- function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>) {
143
+ /**
144
+ * A slider track is a container for one or more slider thumbs.
145
+ */
146
+ export const SliderTrack = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>) {
150
147
  [props, ref] = useContextProps(props, ref, SliderTrackContext);
151
148
  let state = useContext(SliderStateContext)!;
152
149
  let {onHoverStart, onHoverEnd, onHoverChange, ...otherProps} = props;
@@ -171,13 +168,7 @@ function SliderTrack(props: SliderTrackProps, ref: ForwardedRef<HTMLDivElement>)
171
168
  data-orientation={state.orientation || undefined}
172
169
  data-disabled={state.isDisabled || undefined} />
173
170
  );
174
- }
175
-
176
- /**
177
- * A slider track is a container for one or more slider thumbs.
178
- */
179
- const _SliderTrack = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderTrack);
180
- export {_SliderTrack as SliderTrack};
171
+ });
181
172
 
182
173
  export interface SliderThumbRenderProps {
183
174
  /**
@@ -218,7 +209,10 @@ export interface SliderThumbProps extends Omit<AriaSliderThumbProps, 'label' | '
218
209
  inputRef?: RefObject<HTMLInputElement | null>
219
210
  }
220
211
 
221
- function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>) {
212
+ /**
213
+ * A slider thumb represents an individual value that the user can adjust within a slider track.
214
+ */
215
+ export const SliderThumb = /*#__PURE__*/ (forwardRef as forwardRefType)(function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>) {
222
216
  let {
223
217
  inputRef: userInputRef = null
224
218
  } = props;
@@ -277,10 +271,4 @@ function SliderThumb(props: SliderThumbProps, ref: ForwardedRef<HTMLDivElement>)
277
271
  </Provider>
278
272
  </div>
279
273
  );
280
- }
281
-
282
- /**
283
- * A slider thumb represents an individual value that the user can adjust within a slider track.
284
- */
285
- const _SliderThumb = /*#__PURE__*/ (forwardRef as forwardRefType)(SliderThumb);
286
- export {_SliderThumb as SliderThumb};
274
+ });
package/src/Switch.tsx CHANGED
@@ -68,7 +68,10 @@ export interface SwitchRenderProps {
68
68
 
69
69
  export const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);
70
70
 
71
- function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
71
+ /**
72
+ * A switch allows a user to turn a setting on or off.
73
+ */
74
+ export const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
72
75
  let {
73
76
  inputRef: userProvidedInputRef = null,
74
77
  ...otherProps
@@ -125,10 +128,4 @@ function Switch(props: SwitchProps, ref: ForwardedRef<HTMLLabelElement>) {
125
128
  {renderProps.children}
126
129
  </label>
127
130
  );
128
- }
129
-
130
- /**
131
- * A switch allows a user to turn a setting on or off.
132
- */
133
- const _Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(Switch);
134
- export {_Switch as Switch};
131
+ });
package/src/Table.tsx CHANGED
@@ -214,7 +214,7 @@ export interface ResizableTableContainerProps extends DOMProps, ScrollableProps<
214
214
  onResizeEnd?: (widths: Map<Key, ColumnSize>) => void
215
215
  }
216
216
 
217
- function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {
217
+ export const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {
218
218
  let containerRef = useObjectRef(ref);
219
219
  let tableRef = useRef<HTMLTableElement>(null);
220
220
  let scrollRef = useRef<HTMLElement | null>(null);
@@ -267,10 +267,7 @@ function ResizableTableContainer(props: ResizableTableContainerProps, ref: Forwa
267
267
  </ResizableTableContainerContext.Provider>
268
268
  </div>
269
269
  );
270
- }
271
-
272
- const _ResizableTableContainer = forwardRef(ResizableTableContainer);
273
- export {_ResizableTableContainer as ResizableTableContainer};
270
+ });
274
271
 
275
272
  export const TableContext = createContext<ContextValue<TableProps, HTMLTableElement>>(null);
276
273
  export const TableStateContext = createContext<TableState<any> | null>(null);
@@ -317,7 +314,11 @@ export interface TableProps extends Omit<SharedTableProps<any>, 'children'>, Sty
317
314
  dragAndDropHooks?: DragAndDropHooks
318
315
  }
319
316
 
320
- function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {
317
+ /**
318
+ * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,
319
+ * and optionally supports row selection and sorting.
320
+ */
321
+ export const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {
321
322
  [props, ref] = useContextProps(props, ref, TableContext);
322
323
 
323
324
  // Separate selection state so we have access to it from collection components via useTableOptions.
@@ -342,7 +343,7 @@ function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {
342
343
  {collection => <TableInner props={props} forwardedRef={ref} selectionState={selectionState} collection={collection} />}
343
344
  </CollectionBuilder>
344
345
  );
345
- }
346
+ });
346
347
 
347
348
  interface TableInnerProps {
348
349
  props: TableProps,
@@ -490,13 +491,6 @@ function TableInner({props, forwardedRef: ref, selectionState, collection}: Tabl
490
491
  );
491
492
  }
492
493
 
493
- /**
494
- * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,
495
- * and optionally supports row selection and sorting.
496
- */
497
- const _Table = forwardRef(Table);
498
- export {_Table as Table};
499
-
500
494
  function useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {
501
495
  let {isVirtualized} = useContext(CollectionRendererContext);
502
496
  return isVirtualized ? 'div' : element;
@@ -802,7 +796,7 @@ interface ColumnResizerContextValue {
802
796
 
803
797
  const ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);
804
798
 
805
- function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {
799
+ export const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {
806
800
  let layoutState = useContext(TableColumnResizeStateContext);
807
801
  if (!layoutState) {
808
802
  throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');
@@ -891,10 +885,7 @@ function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivEleme
891
885
  {isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}
892
886
  </div>
893
887
  );
894
- }
895
-
896
- const _ColumnResizer = forwardRef(ColumnResizer);
897
- export {_ColumnResizer as ColumnResizer};
888
+ });
898
889
 
899
890
  export interface TableBodyRenderProps {
900
891
  /**
package/src/Tabs.tsx CHANGED
@@ -118,7 +118,10 @@ export interface TabPanelRenderProps {
118
118
  export const TabsContext = createContext<ContextValue<TabsProps, HTMLDivElement>>(null);
119
119
  export const TabListStateContext = createContext<TabListState<object> | null>(null);
120
120
 
121
- function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {
121
+ /**
122
+ * Tabs organize content into multiple sections and allow users to navigate between them.
123
+ */
124
+ export const Tabs = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {
122
125
  [props, ref] = useContextProps(props, ref, TabsContext);
123
126
  let {children, orientation = 'horizontal'} = props;
124
127
  children = useMemo(() => (
@@ -132,7 +135,7 @@ function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {
132
135
  {collection => <TabsInner props={props} collection={collection} tabsRef={ref} />}
133
136
  </CollectionBuilder>
134
137
  );
135
- }
138
+ });
136
139
 
137
140
  interface TabsInnerProps {
138
141
  props: TabsProps,
@@ -182,17 +185,15 @@ function TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {
182
185
  }
183
186
 
184
187
  /**
185
- * Tabs organize content into multiple sections and allow users to navigate between them.
188
+ * A TabList is used within Tabs to group tabs that a user can switch between.
189
+ * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
186
190
  */
187
- const _Tabs = /*#__PURE__*/ (forwardRef as forwardRefType)(Tabs);
188
- export {_Tabs as Tabs};
189
-
190
- function TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
191
+ export const TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(function TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
191
192
  let state = useContext(TabListStateContext);
192
193
  return state
193
194
  ? <TabListInner props={props} forwardedRef={ref} />
194
195
  : <Collection {...props} />;
195
- }
196
+ });
196
197
 
197
198
  interface TabListInnerProps<T> {
198
199
  props: TabListProps<T>,
@@ -236,13 +237,6 @@ function TabListInner<T extends object>({props, forwardedRef: ref}: TabListInner
236
237
  );
237
238
  }
238
239
 
239
- /**
240
- * A TabList is used within Tabs to group tabs that a user can switch between.
241
- * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
242
- */
243
- const _TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(TabList);
244
- export {_TabList as TabList};
245
-
246
240
  /**
247
241
  * A Tab provides a title for an individual item within a TabList.
248
242
  */
@@ -287,7 +281,10 @@ export const Tab = /*#__PURE__*/ createLeafComponent('item', (props: TabProps, f
287
281
  );
288
282
  });
289
283
 
290
- function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElement>) {
284
+ /**
285
+ * A TabPanel provides the content for a tab.
286
+ */
287
+ export const TabPanel = /*#__PURE__*/ createHideableComponent(function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElement>) {
291
288
  const state = useContext(TabListStateContext)!;
292
289
  let ref = useObjectRef<HTMLDivElement>(forwardedRef);
293
290
  let {tabPanelProps} = useTabPanel(props, state, ref);
@@ -334,10 +331,4 @@ function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElemen
334
331
  </Provider>
335
332
  </div>
336
333
  );
337
- }
338
-
339
- /**
340
- * A TabPanel provides the content for a tab.
341
- */
342
- const _TabPanel = /*#__PURE__*/ createHideableComponent(TabPanel);
343
- export {_TabPanel as TabPanel};
334
+ });
package/src/TagGroup.tsx CHANGED
@@ -55,14 +55,17 @@ export interface TagListProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'
55
55
  export const TagGroupContext = createContext<ContextValue<TagGroupProps, HTMLDivElement>>(null);
56
56
  export const TagListContext = createContext<ContextValue<TagListProps<any>, HTMLDivElement>>(null);
57
57
 
58
- function TagGroup(props: TagGroupProps, ref: ForwardedRef<HTMLDivElement>) {
58
+ /**
59
+ * A tag group is a focusable list of labels, categories, keywords, filters, or other items, with support for keyboard navigation, selection, and removal.
60
+ */
61
+ export const TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function TagGroup(props: TagGroupProps, ref: ForwardedRef<HTMLDivElement>) {
59
62
  [props, ref] = useContextProps(props, ref, TagGroupContext);
60
63
  return (
61
64
  <CollectionBuilder content={props.children}>
62
65
  {collection => <TagGroupInner props={props} forwardedRef={ref} collection={collection} />}
63
66
  </CollectionBuilder>
64
67
  );
65
- }
68
+ });
66
69
 
67
70
  interface TagGroupInnerProps {
68
71
  props: TagGroupProps,
@@ -119,17 +122,14 @@ function TagGroupInner({props, forwardedRef: ref, collection}: TagGroupInnerProp
119
122
  }
120
123
 
121
124
  /**
122
- * A tag group is a focusable list of labels, categories, keywords, filters, or other items, with support for keyboard navigation, selection, and removal.
125
+ * A tag list is a container for tags within a TagGroup.
123
126
  */
124
- const _TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(TagGroup);
125
- export {_TagGroup as TagGroup};
126
-
127
- function TagList<T extends object>(props: TagListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
127
+ export const TagList = /*#__PURE__*/ (forwardRef as forwardRefType)(function TagList<T extends object>(props: TagListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {
128
128
  let state = useContext(ListStateContext);
129
129
  return state
130
130
  ? <TagListInner props={props} forwardedRef={ref} />
131
131
  : <Collection {...props} />;
132
- }
132
+ });
133
133
 
134
134
  interface TagListInnerProps<T> {
135
135
  props: TagListProps<T>,
@@ -174,12 +174,6 @@ function TagListInner<T extends object>({props, forwardedRef}: TagListInnerProps
174
174
  );
175
175
  }
176
176
 
177
- /**
178
- * A tag list is a container for tags within a TagGroup.
179
- */
180
- const _TagList = /*#__PURE__*/ (forwardRef as forwardRefType)(TagList);
181
- export {_TagList as TagList};
182
-
183
177
  export interface TagRenderProps extends Omit<ItemRenderProps, 'allowsDragging' | 'isDragging' | 'isDropTarget'> {
184
178
  /**
185
179
  * Whether the tag group allows items to be removed.
package/src/Text.tsx CHANGED
@@ -19,12 +19,9 @@ export interface TextProps extends HTMLAttributes<HTMLElement> {
19
19
 
20
20
  export const TextContext = createContext<ContextValue<TextProps, HTMLElement>>({});
21
21
 
22
- function Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {
22
+ export const Text = forwardRef(function Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {
23
23
  [props, ref] = useContextProps(props, ref, TextContext);
24
24
  let {elementType: ElementType = 'span', ...domProps} = props;
25
25
  // @ts-ignore
26
26
  return <ElementType className="react-aria-Text" {...domProps} ref={ref} />;
27
- }
28
-
29
- const _Text = forwardRef(Text);
30
- export {_Text as Text};
27
+ });
package/src/TextArea.tsx CHANGED
@@ -13,7 +13,10 @@ let filterHoverProps = (props: TextAreaProps) => {
13
13
  return otherProps;
14
14
  };
15
15
 
16
- function TextArea(props: TextAreaProps, ref: ForwardedRef<HTMLTextAreaElement>) {
16
+ /**
17
+ * A textarea allows a user to input mult-line text.
18
+ */
19
+ export const TextArea = forwardRef(function TextArea(props: TextAreaProps, ref: ForwardedRef<HTMLTextAreaElement>) {
17
20
  [props, ref] = useContextProps(props, ref, TextAreaContext);
18
21
 
19
22
  let {hoverProps, isHovered} = useHover(props);
@@ -46,9 +49,4 @@ function TextArea(props: TextAreaProps, ref: ForwardedRef<HTMLTextAreaElement>)
46
49
  data-focus-visible={isFocusVisible || undefined}
47
50
  data-invalid={isInvalid || undefined} />
48
51
  );
49
- }
50
- /**
51
- * A textarea allows a user to input mult-line text.
52
- */
53
- const _TextArea = forwardRef(TextArea);
54
- export {_TextArea as TextArea};
52
+ });
package/src/TextField.tsx CHANGED
@@ -52,7 +52,10 @@ export interface TextFieldProps extends Omit<AriaTextFieldProps, 'label' | 'plac
52
52
 
53
53
  export const TextFieldContext = createContext<ContextValue<TextFieldProps, HTMLDivElement>>(null);
54
54
 
55
- function TextField(props: TextFieldProps, ref: ForwardedRef<HTMLDivElement>) {
55
+ /**
56
+ * A text field allows a user to enter a plain text value with a keyboard.
57
+ */
58
+ export const TextField = /*#__PURE__*/ (forwardRef as forwardRefType)(function TextField(props: TextFieldProps, ref: ForwardedRef<HTMLDivElement>) {
56
59
  [props, ref] = useContextProps(props, ref, TextFieldContext);
57
60
  let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};
58
61
  let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
@@ -116,10 +119,4 @@ function TextField(props: TextFieldProps, ref: ForwardedRef<HTMLDivElement>) {
116
119
  </Provider>
117
120
  </div>
118
121
  );
119
- }
120
-
121
- /**
122
- * A text field allows a user to enter a plain text value with a keyboard.
123
- */
124
- const _TextField = /*#__PURE__*/ (forwardRef as forwardRefType)(TextField);
125
- export {_TextField as TextField};
122
+ });
@@ -37,7 +37,10 @@ export interface ToggleButtonProps extends Omit<AriaToggleButtonProps, 'children
37
37
 
38
38
  export const ToggleButtonContext = createContext<ContextValue<ToggleButtonProps, HTMLButtonElement>>({});
39
39
 
40
- function ToggleButton(props: ToggleButtonProps, ref: ForwardedRef<HTMLButtonElement>) {
40
+ /**
41
+ * A toggle button allows a user to toggle a selection on or off, for example switching between two states or modes.
42
+ */
43
+ export const ToggleButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function ToggleButton(props: ToggleButtonProps, ref: ForwardedRef<HTMLButtonElement>) {
41
44
  [props, ref] = useContextProps(props, ref, ToggleButtonContext);
42
45
  let groupState = useContext(ToggleGroupStateContext);
43
46
  let state = useToggleState(groupState && props.id != null ? {
@@ -75,10 +78,4 @@ function ToggleButton(props: ToggleButtonProps, ref: ForwardedRef<HTMLButtonElem
75
78
  data-hovered={isHovered || undefined}
76
79
  data-focus-visible={isFocusVisible || undefined} />
77
80
  );
78
- }
79
-
80
- /**
81
- * A toggle button allows a user to toggle a selection on or off, for example switching between two states or modes.
82
- */
83
- const _ToggleButton = /*#__PURE__*/ (forwardRef as forwardRefType)(ToggleButton);
84
- export {_ToggleButton as ToggleButton};
81
+ });
@@ -32,7 +32,10 @@ export interface ToggleButtonGroupProps extends AriaToggleButtonGroupProps, Rend
32
32
  export const ToggleButtonGroupContext = createContext<ContextValue<ToggleButtonGroupProps, HTMLDivElement>>({});
33
33
  export const ToggleGroupStateContext = createContext<ToggleGroupState | null>(null);
34
34
 
35
- function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
35
+ /**
36
+ * A toggle button group allows a user to toggle multiple options, with single or multiple selection.
37
+ */
38
+ export const ToggleButtonGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
36
39
  [props, ref] = useContextProps(props, ref, ToggleButtonGroupContext);
37
40
  let state = useToggleGroupState(props);
38
41
  let {groupProps} = useToggleButtonGroup(props, state, ref);
@@ -59,10 +62,4 @@ function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTML
59
62
  </ToggleGroupStateContext.Provider>
60
63
  </div>
61
64
  );
62
- }
63
-
64
- /**
65
- * A toggle button group allows a user to toggle multiple options, with single or multiple selection.
66
- */
67
- const _ToggleButtonGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(ToggleButtonGroup);
68
- export {_ToggleButtonGroup as ToggleButtonGroup};
65
+ });
package/src/Toolbar.tsx CHANGED
@@ -29,7 +29,11 @@ export interface ToolbarProps extends AriaToolbarProps, SlotProps, RenderProps<T
29
29
 
30
30
  export const ToolbarContext = createContext<ContextValue<ToolbarProps, HTMLDivElement>>({});
31
31
 
32
- function Toolbar(props: ToolbarProps, ref: ForwardedRef<HTMLDivElement>) {
32
+ /**
33
+ * A toolbar is a container for a set of interactive controls, such as buttons, dropdown menus, or checkboxes,
34
+ * with arrow key navigation.
35
+ */
36
+ export const Toolbar = /*#__PURE__*/ (forwardRef as forwardRefType)(function Toolbar(props: ToolbarProps, ref: ForwardedRef<HTMLDivElement>) {
33
37
  [props, ref] = useContextProps(props, ref, ToolbarContext);
34
38
  let {toolbarProps} = useToolbar(props, ref);
35
39
  let renderProps = useRenderProps({
@@ -50,11 +54,4 @@ function Toolbar(props: ToolbarProps, ref: ForwardedRef<HTMLDivElement>) {
50
54
  {renderProps.children}
51
55
  </div>
52
56
  );
53
- }
54
-
55
- /**
56
- * A toolbar is a container for a set of interactive controls, such as buttons, dropdown menus, or checkboxes,
57
- * with arrow key navigation.
58
- */
59
- const _Toolbar = /*#__PURE__*/ (forwardRef as forwardRefType)(Toolbar);
60
- export {_Toolbar as Toolbar};
57
+ });
package/src/Tooltip.tsx CHANGED
@@ -98,7 +98,10 @@ export function TooltipTrigger(props: TooltipTriggerComponentProps) {
98
98
  );
99
99
  }
100
100
 
101
- function Tooltip({UNSTABLE_portalContainer, ...props}: TooltipProps, ref: ForwardedRef<HTMLDivElement>) {
101
+ /**
102
+ * A tooltip displays a description of an element on hover or focus.
103
+ */
104
+ export const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip({UNSTABLE_portalContainer, ...props}: TooltipProps, ref: ForwardedRef<HTMLDivElement>) {
102
105
  [props, ref] = useContextProps(props, ref, TooltipContext);
103
106
  let contextState = useContext(TooltipTriggerStateContext);
104
107
  let localState = useTooltipTriggerState(props);
@@ -113,13 +116,7 @@ function Tooltip({UNSTABLE_portalContainer, ...props}: TooltipProps, ref: Forwar
113
116
  <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />
114
117
  </OverlayContainer>
115
118
  );
116
- }
117
-
118
- /**
119
- * A tooltip displays a description of an element on hover or focus.
120
- */
121
- const _Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(Tooltip);
122
- export {_Tooltip as Tooltip};
119
+ });
123
120
 
124
121
  function TooltipInner(props: TooltipProps & {isExiting: boolean, tooltipRef: RefObject<HTMLDivElement | null>}) {
125
122
  let state = useContext(TooltipTriggerStateContext)!;
package/src/Tree.tsx CHANGED
@@ -136,7 +136,11 @@ export interface TreeProps<T> extends Omit<AriaTreeGridListProps<T>, 'children'>
136
136
  export const UNSTABLE_TreeContext = createContext<ContextValue<TreeProps<any>, HTMLDivElement>>(null);
137
137
  export const UNSTABLE_TreeStateContext = createContext<TreeState<any> | null>(null);
138
138
 
139
- function Tree<T extends object>(props: TreeProps<T>, ref: ForwardedRef<HTMLDivElement>) {
139
+ /**
140
+ * A tree provides users with a way to navigate nested hierarchical information, with support for keyboard navigation
141
+ * and selection.
142
+ */
143
+ export const UNSTABLE_Tree = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tree<T extends object>(props: TreeProps<T>, ref: ForwardedRef<HTMLDivElement>) {
140
144
  // Render the portal first so that we have the collection by the time we render the DOM in SSR.
141
145
  [props, ref] = useContextProps(props, ref, UNSTABLE_TreeContext);
142
146
 
@@ -145,7 +149,7 @@ function Tree<T extends object>(props: TreeProps<T>, ref: ForwardedRef<HTMLDivEl
145
149
  {collection => <TreeInner props={props} collection={collection} treeRef={ref} />}
146
150
  </CollectionBuilder>
147
151
  );
148
- }
152
+ });
149
153
 
150
154
  interface TreeInnerProps<T extends object> {
151
155
  props: TreeProps<T>,
@@ -254,13 +258,6 @@ function TreeInner<T extends object>({props, collection, treeRef: ref}: TreeInne
254
258
  );
255
259
  }
256
260
 
257
- /**
258
- * A tree provides users with a way to navigate nested hierarchical information, with support for keyboard navigation
259
- * and selection.
260
- */
261
- const _Tree = /*#__PURE__*/ (forwardRef as forwardRefType)(Tree);
262
- export {_Tree as UNSTABLE_Tree};
263
-
264
261
  // TODO: readd the rest of the render props when tree supports them
265
262
  export interface TreeItemRenderProps extends Omit<ItemRenderProps, 'allowsDragging' | 'isDragging' | 'isDropTarget'> {
266
263
  /** Whether the tree item is expanded. */