@react-spectrum/s2 0.5.0 → 0.6.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 (598) hide show
  1. package/dist/Accordion.cjs +5 -8
  2. package/dist/Accordion.cjs.map +1 -1
  3. package/dist/Accordion.css +2 -2
  4. package/dist/Accordion.css.map +1 -1
  5. package/dist/Accordion.mjs +5 -8
  6. package/dist/Accordion.mjs.map +1 -1
  7. package/dist/ActionBar.cjs +264 -0
  8. package/dist/ActionBar.cjs.map +1 -0
  9. package/dist/ActionBar.css +267 -0
  10. package/dist/ActionBar.css.map +1 -0
  11. package/dist/ActionBar.mjs +257 -0
  12. package/dist/ActionBar.mjs.map +1 -0
  13. package/dist/ActionButton.cjs +121 -147
  14. package/dist/ActionButton.cjs.map +1 -1
  15. package/dist/ActionButton.css +133 -153
  16. package/dist/ActionButton.css.map +1 -1
  17. package/dist/ActionButton.mjs +122 -148
  18. package/dist/ActionButton.mjs.map +1 -1
  19. package/dist/ActionButtonGroup.cjs +6 -9
  20. package/dist/ActionButtonGroup.cjs.map +1 -1
  21. package/dist/ActionButtonGroup.css +3 -3
  22. package/dist/ActionButtonGroup.css.map +1 -1
  23. package/dist/ActionButtonGroup.mjs +6 -9
  24. package/dist/ActionButtonGroup.mjs.map +1 -1
  25. package/dist/ActionMenu.cjs +2 -5
  26. package/dist/ActionMenu.cjs.map +1 -1
  27. package/dist/ActionMenu.mjs +2 -5
  28. package/dist/ActionMenu.mjs.map +1 -1
  29. package/dist/AlertDialog.cjs +2 -5
  30. package/dist/AlertDialog.cjs.map +1 -1
  31. package/dist/AlertDialog.css.map +1 -1
  32. package/dist/AlertDialog.mjs +2 -5
  33. package/dist/AlertDialog.mjs.map +1 -1
  34. package/dist/Avatar.cjs +12 -15
  35. package/dist/Avatar.cjs.map +1 -1
  36. package/dist/Avatar.css +11 -11
  37. package/dist/Avatar.css.map +1 -1
  38. package/dist/Avatar.mjs +12 -15
  39. package/dist/Avatar.mjs.map +1 -1
  40. package/dist/AvatarGroup.cjs +99 -102
  41. package/dist/AvatarGroup.cjs.map +1 -1
  42. package/dist/AvatarGroup.css +31 -31
  43. package/dist/AvatarGroup.css.map +1 -1
  44. package/dist/AvatarGroup.mjs +99 -102
  45. package/dist/AvatarGroup.mjs.map +1 -1
  46. package/dist/Badge.cjs +99 -102
  47. package/dist/Badge.cjs.map +1 -1
  48. package/dist/Badge.css +76 -76
  49. package/dist/Badge.css.map +1 -1
  50. package/dist/Badge.mjs +99 -102
  51. package/dist/Badge.mjs.map +1 -1
  52. package/dist/Breadcrumbs.cjs +93 -94
  53. package/dist/Breadcrumbs.cjs.map +1 -1
  54. package/dist/Breadcrumbs.css +70 -64
  55. package/dist/Breadcrumbs.css.map +1 -1
  56. package/dist/Breadcrumbs.mjs +94 -95
  57. package/dist/Breadcrumbs.mjs.map +1 -1
  58. package/dist/Button.cjs +305 -278
  59. package/dist/Button.cjs.map +1 -1
  60. package/dist/Button.css +255 -182
  61. package/dist/Button.css.map +1 -1
  62. package/dist/Button.mjs +307 -280
  63. package/dist/Button.mjs.map +1 -1
  64. package/dist/ButtonGroup.cjs +17 -20
  65. package/dist/ButtonGroup.cjs.map +1 -1
  66. package/dist/ButtonGroup.css +11 -11
  67. package/dist/ButtonGroup.css.map +1 -1
  68. package/dist/ButtonGroup.mjs +18 -21
  69. package/dist/ButtonGroup.mjs.map +1 -1
  70. package/dist/Card.cjs +167 -167
  71. package/dist/Card.css +121 -121
  72. package/dist/Card.mjs +167 -167
  73. package/dist/CardView.cjs +47 -21
  74. package/dist/CardView.cjs.map +1 -1
  75. package/dist/CardView.css +39 -15
  76. package/dist/CardView.css.map +1 -1
  77. package/dist/CardView.mjs +49 -23
  78. package/dist/CardView.mjs.map +1 -1
  79. package/dist/CenterBaseline.cjs +1 -1
  80. package/dist/CenterBaseline.css +2 -2
  81. package/dist/CenterBaseline.mjs +1 -1
  82. package/dist/Checkbox.cjs +58 -62
  83. package/dist/Checkbox.cjs.map +1 -1
  84. package/dist/Checkbox.css +54 -54
  85. package/dist/Checkbox.css.map +1 -1
  86. package/dist/Checkbox.mjs +59 -63
  87. package/dist/Checkbox.mjs.map +1 -1
  88. package/dist/CheckboxGroup.cjs +43 -45
  89. package/dist/CheckboxGroup.cjs.map +1 -1
  90. package/dist/CheckboxGroup.css +32 -32
  91. package/dist/CheckboxGroup.css.map +1 -1
  92. package/dist/CheckboxGroup.mjs +44 -46
  93. package/dist/CheckboxGroup.mjs.map +1 -1
  94. package/dist/ClearButton.cjs +7 -8
  95. package/dist/ClearButton.cjs.map +1 -1
  96. package/dist/ClearButton.css +5 -5
  97. package/dist/ClearButton.css.map +1 -1
  98. package/dist/ClearButton.mjs +7 -8
  99. package/dist/ClearButton.mjs.map +1 -1
  100. package/dist/CloseButton.cjs +40 -53
  101. package/dist/CloseButton.cjs.map +1 -1
  102. package/dist/CloseButton.css +45 -49
  103. package/dist/CloseButton.css.map +1 -1
  104. package/dist/CloseButton.mjs +40 -53
  105. package/dist/CloseButton.mjs.map +1 -1
  106. package/dist/ColorArea.cjs +12 -15
  107. package/dist/ColorArea.cjs.map +1 -1
  108. package/dist/ColorArea.css +10 -10
  109. package/dist/ColorArea.css.map +1 -1
  110. package/dist/ColorArea.mjs +12 -15
  111. package/dist/ColorArea.mjs.map +1 -1
  112. package/dist/ColorField.cjs +31 -34
  113. package/dist/ColorField.cjs.map +1 -1
  114. package/dist/ColorField.css +24 -24
  115. package/dist/ColorField.css.map +1 -1
  116. package/dist/ColorField.mjs +32 -35
  117. package/dist/ColorField.mjs.map +1 -1
  118. package/dist/ColorHandle.cjs +11 -11
  119. package/dist/ColorHandle.css +19 -19
  120. package/dist/ColorHandle.mjs +11 -11
  121. package/dist/ColorSlider.cjs +43 -46
  122. package/dist/ColorSlider.cjs.map +1 -1
  123. package/dist/ColorSlider.css +43 -43
  124. package/dist/ColorSlider.css.map +1 -1
  125. package/dist/ColorSlider.mjs +44 -47
  126. package/dist/ColorSlider.mjs.map +1 -1
  127. package/dist/ColorSwatch.cjs +8 -11
  128. package/dist/ColorSwatch.cjs.map +1 -1
  129. package/dist/ColorSwatch.css +14 -14
  130. package/dist/ColorSwatch.css.map +1 -1
  131. package/dist/ColorSwatch.mjs +9 -12
  132. package/dist/ColorSwatch.mjs.map +1 -1
  133. package/dist/ColorSwatchPicker.cjs +15 -18
  134. package/dist/ColorSwatchPicker.cjs.map +1 -1
  135. package/dist/ColorSwatchPicker.css +33 -33
  136. package/dist/ColorSwatchPicker.css.map +1 -1
  137. package/dist/ColorSwatchPicker.mjs +15 -18
  138. package/dist/ColorSwatchPicker.mjs.map +1 -1
  139. package/dist/ColorWheel.cjs +18 -21
  140. package/dist/ColorWheel.cjs.map +1 -1
  141. package/dist/ColorWheel.css +15 -15
  142. package/dist/ColorWheel.css.map +1 -1
  143. package/dist/ColorWheel.mjs +18 -21
  144. package/dist/ColorWheel.mjs.map +1 -1
  145. package/dist/ComboBox.cjs +61 -61
  146. package/dist/ComboBox.cjs.map +1 -1
  147. package/dist/ComboBox.css +52 -52
  148. package/dist/ComboBox.css.map +1 -1
  149. package/dist/ComboBox.mjs +62 -62
  150. package/dist/ComboBox.mjs.map +1 -1
  151. package/dist/Content.cjs +12 -19
  152. package/dist/Content.cjs.map +1 -1
  153. package/dist/Content.mjs +12 -19
  154. package/dist/Content.mjs.map +1 -1
  155. package/dist/ContextualHelp.cjs +7 -10
  156. package/dist/ContextualHelp.cjs.map +1 -1
  157. package/dist/ContextualHelp.css +23 -23
  158. package/dist/ContextualHelp.css.map +1 -1
  159. package/dist/ContextualHelp.mjs +7 -10
  160. package/dist/ContextualHelp.mjs.map +1 -1
  161. package/dist/CustomDialog.cjs +10 -13
  162. package/dist/CustomDialog.cjs.map +1 -1
  163. package/dist/CustomDialog.css +9 -9
  164. package/dist/CustomDialog.css.map +1 -1
  165. package/dist/CustomDialog.mjs +10 -13
  166. package/dist/CustomDialog.mjs.map +1 -1
  167. package/dist/Dialog.cjs +12 -16
  168. package/dist/Dialog.cjs.map +1 -1
  169. package/dist/Dialog.css +39 -39
  170. package/dist/Dialog.css.map +1 -1
  171. package/dist/Dialog.mjs +12 -16
  172. package/dist/Dialog.mjs.map +1 -1
  173. package/dist/Disclosure.cjs +60 -69
  174. package/dist/Disclosure.cjs.map +1 -1
  175. package/dist/Disclosure.css +49 -49
  176. package/dist/Disclosure.css.map +1 -1
  177. package/dist/Disclosure.mjs +61 -70
  178. package/dist/Disclosure.mjs.map +1 -1
  179. package/dist/Divider.cjs +15 -19
  180. package/dist/Divider.cjs.map +1 -1
  181. package/dist/Divider.css +18 -18
  182. package/dist/Divider.css.map +1 -1
  183. package/dist/Divider.mjs +15 -19
  184. package/dist/Divider.mjs.map +1 -1
  185. package/dist/DropZone.cjs +30 -33
  186. package/dist/DropZone.cjs.map +1 -1
  187. package/dist/DropZone.css +26 -26
  188. package/dist/DropZone.css.map +1 -1
  189. package/dist/DropZone.mjs +30 -33
  190. package/dist/DropZone.mjs.map +1 -1
  191. package/dist/Field.cjs +133 -131
  192. package/dist/Field.cjs.map +1 -1
  193. package/dist/Field.css +76 -84
  194. package/dist/Field.css.map +1 -1
  195. package/dist/Field.mjs +133 -131
  196. package/dist/Field.mjs.map +1 -1
  197. package/dist/Form.cjs +6 -9
  198. package/dist/Form.cjs.map +1 -1
  199. package/dist/Form.css +3 -3
  200. package/dist/Form.css.map +1 -1
  201. package/dist/Form.mjs +6 -9
  202. package/dist/Form.mjs.map +1 -1
  203. package/dist/FullscreenDialog.cjs +7 -10
  204. package/dist/FullscreenDialog.cjs.map +1 -1
  205. package/dist/FullscreenDialog.css +54 -54
  206. package/dist/FullscreenDialog.css.map +1 -1
  207. package/dist/FullscreenDialog.mjs +7 -10
  208. package/dist/FullscreenDialog.mjs.map +1 -1
  209. package/dist/IllustratedMessage.cjs +128 -132
  210. package/dist/IllustratedMessage.cjs.map +1 -1
  211. package/dist/IllustratedMessage.css +58 -58
  212. package/dist/IllustratedMessage.css.map +1 -1
  213. package/dist/IllustratedMessage.mjs +128 -132
  214. package/dist/IllustratedMessage.mjs.map +1 -1
  215. package/dist/Image.cjs +12 -13
  216. package/dist/Image.cjs.map +1 -1
  217. package/dist/Image.css +11 -11
  218. package/dist/Image.css.map +1 -1
  219. package/dist/Image.mjs +13 -14
  220. package/dist/Image.mjs.map +1 -1
  221. package/dist/InlineAlert.cjs +75 -84
  222. package/dist/InlineAlert.cjs.map +1 -1
  223. package/dist/InlineAlert.css +59 -63
  224. package/dist/InlineAlert.css.map +1 -1
  225. package/dist/InlineAlert.mjs +76 -85
  226. package/dist/InlineAlert.mjs.map +1 -1
  227. package/dist/Link.cjs +36 -39
  228. package/dist/Link.cjs.map +1 -1
  229. package/dist/Link.css +42 -42
  230. package/dist/Link.css.map +1 -1
  231. package/dist/Link.mjs +37 -40
  232. package/dist/Link.mjs.map +1 -1
  233. package/dist/Menu.cjs +322 -234
  234. package/dist/Menu.cjs.map +1 -1
  235. package/dist/Menu.css +118 -116
  236. package/dist/Menu.css.map +1 -1
  237. package/dist/Menu.mjs +323 -235
  238. package/dist/Menu.mjs.map +1 -1
  239. package/dist/Meter.cjs +66 -70
  240. package/dist/Meter.cjs.map +1 -1
  241. package/dist/Meter.css +69 -73
  242. package/dist/Meter.css.map +1 -1
  243. package/dist/Meter.mjs +66 -70
  244. package/dist/Meter.mjs.map +1 -1
  245. package/dist/Modal.cjs +36 -45
  246. package/dist/Modal.cjs.map +1 -1
  247. package/dist/Modal.css +48 -72
  248. package/dist/Modal.css.map +1 -1
  249. package/dist/Modal.mjs +37 -46
  250. package/dist/Modal.mjs.map +1 -1
  251. package/dist/NumberField.cjs +66 -69
  252. package/dist/NumberField.cjs.map +1 -1
  253. package/dist/NumberField.css +70 -70
  254. package/dist/NumberField.css.map +1 -1
  255. package/dist/NumberField.mjs +67 -70
  256. package/dist/NumberField.mjs.map +1 -1
  257. package/dist/Picker.cjs +122 -122
  258. package/dist/Picker.cjs.map +1 -1
  259. package/dist/Picker.css +84 -84
  260. package/dist/Picker.css.map +1 -1
  261. package/dist/Picker.mjs +123 -123
  262. package/dist/Picker.mjs.map +1 -1
  263. package/dist/Popover.cjs +47 -69
  264. package/dist/Popover.cjs.map +1 -1
  265. package/dist/Popover.css +55 -126
  266. package/dist/Popover.css.map +1 -1
  267. package/dist/Popover.mjs +48 -70
  268. package/dist/Popover.mjs.map +1 -1
  269. package/dist/ProgressBar.cjs +85 -87
  270. package/dist/ProgressBar.cjs.map +1 -1
  271. package/dist/ProgressBar.css +81 -85
  272. package/dist/ProgressBar.css.map +1 -1
  273. package/dist/ProgressBar.mjs +85 -87
  274. package/dist/ProgressBar.mjs.map +1 -1
  275. package/dist/ProgressCircle.cjs +16 -18
  276. package/dist/ProgressCircle.cjs.map +1 -1
  277. package/dist/ProgressCircle.css +16 -16
  278. package/dist/ProgressCircle.css.map +1 -1
  279. package/dist/ProgressCircle.mjs +16 -18
  280. package/dist/ProgressCircle.mjs.map +1 -1
  281. package/dist/Provider.cjs +5 -5
  282. package/dist/Provider.css +6 -6
  283. package/dist/Provider.mjs +5 -5
  284. package/dist/Radio.cjs +54 -58
  285. package/dist/Radio.cjs.map +1 -1
  286. package/dist/Radio.css +50 -50
  287. package/dist/Radio.css.map +1 -1
  288. package/dist/Radio.mjs +55 -59
  289. package/dist/Radio.mjs.map +1 -1
  290. package/dist/RadioGroup.cjs +39 -43
  291. package/dist/RadioGroup.cjs.map +1 -1
  292. package/dist/RadioGroup.css +32 -32
  293. package/dist/RadioGroup.css.map +1 -1
  294. package/dist/RadioGroup.mjs +40 -44
  295. package/dist/RadioGroup.mjs.map +1 -1
  296. package/dist/RangeSlider.cjs +2 -3
  297. package/dist/RangeSlider.cjs.map +1 -1
  298. package/dist/RangeSlider.mjs +3 -4
  299. package/dist/RangeSlider.mjs.map +1 -1
  300. package/dist/SearchField.cjs +34 -37
  301. package/dist/SearchField.cjs.map +1 -1
  302. package/dist/SearchField.css +30 -30
  303. package/dist/SearchField.css.map +1 -1
  304. package/dist/SearchField.mjs +35 -38
  305. package/dist/SearchField.mjs.map +1 -1
  306. package/dist/SegmentedControl.cjs +67 -73
  307. package/dist/SegmentedControl.cjs.map +1 -1
  308. package/dist/SegmentedControl.css +63 -63
  309. package/dist/SegmentedControl.css.map +1 -1
  310. package/dist/SegmentedControl.mjs +68 -74
  311. package/dist/SegmentedControl.mjs.map +1 -1
  312. package/dist/Slider.cjs +111 -112
  313. package/dist/Slider.cjs.map +1 -1
  314. package/dist/Slider.css +87 -87
  315. package/dist/Slider.css.map +1 -1
  316. package/dist/Slider.mjs +112 -113
  317. package/dist/Slider.mjs.map +1 -1
  318. package/dist/StatusLight.cjs +28 -32
  319. package/dist/StatusLight.cjs.map +1 -1
  320. package/dist/StatusLight.css +26 -26
  321. package/dist/StatusLight.css.map +1 -1
  322. package/dist/StatusLight.mjs +28 -32
  323. package/dist/StatusLight.mjs.map +1 -1
  324. package/dist/Switch.cjs +56 -60
  325. package/dist/Switch.cjs.map +1 -1
  326. package/dist/Switch.css +48 -48
  327. package/dist/Switch.css.map +1 -1
  328. package/dist/Switch.mjs +57 -61
  329. package/dist/Switch.mjs.map +1 -1
  330. package/dist/TableView.cjs +209 -196
  331. package/dist/TableView.cjs.map +1 -1
  332. package/dist/TableView.css +95 -95
  333. package/dist/TableView.css.map +1 -1
  334. package/dist/TableView.mjs +211 -198
  335. package/dist/TableView.mjs.map +1 -1
  336. package/dist/Tabs.cjs +59 -62
  337. package/dist/Tabs.cjs.map +1 -1
  338. package/dist/Tabs.css +42 -42
  339. package/dist/Tabs.css.map +1 -1
  340. package/dist/Tabs.mjs +59 -62
  341. package/dist/Tabs.mjs.map +1 -1
  342. package/dist/TagGroup.cjs +122 -124
  343. package/dist/TagGroup.cjs.map +1 -1
  344. package/dist/TagGroup.css +93 -93
  345. package/dist/TagGroup.css.map +1 -1
  346. package/dist/TagGroup.mjs +122 -124
  347. package/dist/TagGroup.mjs.map +1 -1
  348. package/dist/TextField.cjs +44 -55
  349. package/dist/TextField.cjs.map +1 -1
  350. package/dist/TextField.css +33 -33
  351. package/dist/TextField.css.map +1 -1
  352. package/dist/TextField.mjs +45 -56
  353. package/dist/TextField.mjs.map +1 -1
  354. package/dist/ToggleButton.cjs +6 -9
  355. package/dist/ToggleButton.cjs.map +1 -1
  356. package/dist/ToggleButton.css +7 -7
  357. package/dist/ToggleButton.css.map +1 -1
  358. package/dist/ToggleButton.mjs +6 -9
  359. package/dist/ToggleButton.mjs.map +1 -1
  360. package/dist/ToggleButtonGroup.cjs +2 -5
  361. package/dist/ToggleButtonGroup.cjs.map +1 -1
  362. package/dist/ToggleButtonGroup.mjs +2 -5
  363. package/dist/ToggleButtonGroup.mjs.map +1 -1
  364. package/dist/Tooltip.cjs +48 -48
  365. package/dist/Tooltip.cjs.map +1 -1
  366. package/dist/Tooltip.css +55 -70
  367. package/dist/Tooltip.css.map +1 -1
  368. package/dist/Tooltip.mjs +49 -49
  369. package/dist/Tooltip.mjs.map +1 -1
  370. package/dist/ar-AE.cjs +10 -2
  371. package/dist/ar-AE.cjs.map +1 -1
  372. package/dist/ar-AE.mjs +10 -2
  373. package/dist/ar-AE.mjs.map +1 -1
  374. package/dist/bg-BG.cjs +11 -2
  375. package/dist/bg-BG.cjs.map +1 -1
  376. package/dist/bg-BG.mjs +11 -2
  377. package/dist/bg-BG.mjs.map +1 -1
  378. package/dist/cs-CZ.cjs +7 -2
  379. package/dist/cs-CZ.cjs.map +1 -1
  380. package/dist/cs-CZ.mjs +7 -2
  381. package/dist/cs-CZ.mjs.map +1 -1
  382. package/dist/da-DK.cjs +12 -4
  383. package/dist/da-DK.cjs.map +1 -1
  384. package/dist/da-DK.mjs +12 -4
  385. package/dist/da-DK.mjs.map +1 -1
  386. package/dist/de-DE.cjs +11 -2
  387. package/dist/de-DE.cjs.map +1 -1
  388. package/dist/de-DE.mjs +11 -2
  389. package/dist/de-DE.mjs.map +1 -1
  390. package/dist/el-GR.cjs +11 -2
  391. package/dist/el-GR.cjs.map +1 -1
  392. package/dist/el-GR.mjs +11 -2
  393. package/dist/el-GR.mjs.map +1 -1
  394. package/dist/en-US.cjs +8 -0
  395. package/dist/en-US.cjs.map +1 -1
  396. package/dist/en-US.mjs +8 -0
  397. package/dist/en-US.mjs.map +1 -1
  398. package/dist/es-ES.cjs +11 -2
  399. package/dist/es-ES.cjs.map +1 -1
  400. package/dist/es-ES.mjs +11 -2
  401. package/dist/es-ES.mjs.map +1 -1
  402. package/dist/et-EE.cjs +10 -2
  403. package/dist/et-EE.cjs.map +1 -1
  404. package/dist/et-EE.mjs +10 -2
  405. package/dist/et-EE.mjs.map +1 -1
  406. package/dist/fi-FI.cjs +10 -2
  407. package/dist/fi-FI.cjs.map +1 -1
  408. package/dist/fi-FI.mjs +10 -2
  409. package/dist/fi-FI.mjs.map +1 -1
  410. package/dist/fr-FR.cjs +11 -2
  411. package/dist/fr-FR.cjs.map +1 -1
  412. package/dist/fr-FR.mjs +11 -2
  413. package/dist/fr-FR.mjs.map +1 -1
  414. package/dist/he-IL.cjs +11 -2
  415. package/dist/he-IL.cjs.map +1 -1
  416. package/dist/he-IL.mjs +11 -2
  417. package/dist/he-IL.mjs.map +1 -1
  418. package/dist/hr-HR.cjs +7 -2
  419. package/dist/hr-HR.cjs.map +1 -1
  420. package/dist/hr-HR.mjs +7 -2
  421. package/dist/hr-HR.mjs.map +1 -1
  422. package/dist/hu-HU.cjs +10 -2
  423. package/dist/hu-HU.cjs.map +1 -1
  424. package/dist/hu-HU.mjs +10 -2
  425. package/dist/hu-HU.mjs.map +1 -1
  426. package/dist/it-IT.cjs +11 -2
  427. package/dist/it-IT.cjs.map +1 -1
  428. package/dist/it-IT.mjs +11 -2
  429. package/dist/it-IT.mjs.map +1 -1
  430. package/dist/ja-JP.cjs +10 -2
  431. package/dist/ja-JP.cjs.map +1 -1
  432. package/dist/ja-JP.mjs +10 -2
  433. package/dist/ja-JP.mjs.map +1 -1
  434. package/dist/ko-KR.cjs +12 -4
  435. package/dist/ko-KR.cjs.map +1 -1
  436. package/dist/ko-KR.mjs +12 -4
  437. package/dist/ko-KR.mjs.map +1 -1
  438. package/dist/lt-LT.cjs +9 -4
  439. package/dist/lt-LT.cjs.map +1 -1
  440. package/dist/lt-LT.mjs +9 -4
  441. package/dist/lt-LT.mjs.map +1 -1
  442. package/dist/lv-LV.cjs +11 -3
  443. package/dist/lv-LV.cjs.map +1 -1
  444. package/dist/lv-LV.mjs +11 -3
  445. package/dist/lv-LV.mjs.map +1 -1
  446. package/dist/main.cjs +4 -0
  447. package/dist/main.cjs.map +1 -1
  448. package/dist/module.mjs +3 -1
  449. package/dist/module.mjs.map +1 -1
  450. package/dist/nb-NO.cjs +9 -4
  451. package/dist/nb-NO.cjs.map +1 -1
  452. package/dist/nb-NO.mjs +9 -4
  453. package/dist/nb-NO.mjs.map +1 -1
  454. package/dist/nl-NL.cjs +10 -2
  455. package/dist/nl-NL.cjs.map +1 -1
  456. package/dist/nl-NL.mjs +10 -2
  457. package/dist/nl-NL.mjs.map +1 -1
  458. package/dist/pl-PL.cjs +8 -3
  459. package/dist/pl-PL.cjs.map +1 -1
  460. package/dist/pl-PL.mjs +8 -3
  461. package/dist/pl-PL.mjs.map +1 -1
  462. package/dist/pt-BR.cjs +11 -2
  463. package/dist/pt-BR.cjs.map +1 -1
  464. package/dist/pt-BR.mjs +11 -2
  465. package/dist/pt-BR.mjs.map +1 -1
  466. package/dist/pt-PT.cjs +11 -2
  467. package/dist/pt-PT.cjs.map +1 -1
  468. package/dist/pt-PT.mjs +11 -2
  469. package/dist/pt-PT.mjs.map +1 -1
  470. package/dist/ro-RO.cjs +12 -3
  471. package/dist/ro-RO.cjs.map +1 -1
  472. package/dist/ro-RO.mjs +12 -3
  473. package/dist/ro-RO.mjs.map +1 -1
  474. package/dist/ru-RU.cjs +7 -2
  475. package/dist/ru-RU.cjs.map +1 -1
  476. package/dist/ru-RU.mjs +7 -2
  477. package/dist/ru-RU.mjs.map +1 -1
  478. package/dist/sk-SK.cjs +7 -2
  479. package/dist/sk-SK.cjs.map +1 -1
  480. package/dist/sk-SK.mjs +7 -2
  481. package/dist/sk-SK.mjs.map +1 -1
  482. package/dist/sl-SI.cjs +7 -2
  483. package/dist/sl-SI.cjs.map +1 -1
  484. package/dist/sl-SI.mjs +7 -2
  485. package/dist/sl-SI.mjs.map +1 -1
  486. package/dist/sr-SP.cjs +7 -2
  487. package/dist/sr-SP.cjs.map +1 -1
  488. package/dist/sr-SP.mjs +7 -2
  489. package/dist/sr-SP.mjs.map +1 -1
  490. package/dist/sv-SE.cjs +11 -2
  491. package/dist/sv-SE.cjs.map +1 -1
  492. package/dist/sv-SE.mjs +11 -2
  493. package/dist/sv-SE.mjs.map +1 -1
  494. package/dist/tr-TR.cjs +10 -2
  495. package/dist/tr-TR.cjs.map +1 -1
  496. package/dist/tr-TR.mjs +10 -2
  497. package/dist/tr-TR.mjs.map +1 -1
  498. package/dist/types.d.ts +109 -89
  499. package/dist/types.d.ts.map +1 -1
  500. package/dist/uk-UA.cjs +7 -2
  501. package/dist/uk-UA.cjs.map +1 -1
  502. package/dist/uk-UA.mjs +7 -2
  503. package/dist/uk-UA.mjs.map +1 -1
  504. package/dist/zh-CN.cjs +10 -2
  505. package/dist/zh-CN.cjs.map +1 -1
  506. package/dist/zh-CN.mjs +10 -2
  507. package/dist/zh-CN.mjs.map +1 -1
  508. package/dist/zh-TW.cjs +10 -2
  509. package/dist/zh-TW.cjs.map +1 -1
  510. package/dist/zh-TW.mjs +10 -2
  511. package/dist/zh-TW.mjs.map +1 -1
  512. package/icons/Skeleton.cjs +2 -2
  513. package/icons/Skeleton.css +5 -5
  514. package/icons/Skeleton.mjs +2 -2
  515. package/package.json +20 -21
  516. package/src/Accordion.tsx +5 -8
  517. package/src/ActionBar.tsx +229 -0
  518. package/src/ActionButton.tsx +25 -52
  519. package/src/ActionButtonGroup.tsx +9 -11
  520. package/src/ActionMenu.tsx +5 -8
  521. package/src/AlertDialog.tsx +5 -8
  522. package/src/Avatar.tsx +5 -8
  523. package/src/AvatarGroup.tsx +5 -8
  524. package/src/Badge.tsx +5 -8
  525. package/src/Breadcrumbs.tsx +6 -12
  526. package/src/Button.tsx +197 -154
  527. package/src/ButtonGroup.tsx +5 -8
  528. package/src/CardView.tsx +37 -12
  529. package/src/Checkbox.tsx +6 -9
  530. package/src/CheckboxGroup.tsx +6 -9
  531. package/src/ClearButton.tsx +2 -5
  532. package/src/CloseButton.tsx +21 -31
  533. package/src/ColorArea.tsx +5 -8
  534. package/src/ColorField.tsx +5 -8
  535. package/src/ColorSlider.tsx +5 -8
  536. package/src/ColorSwatch.tsx +5 -8
  537. package/src/ColorSwatchPicker.tsx +5 -8
  538. package/src/ColorWheel.tsx +5 -8
  539. package/src/ComboBox.tsx +7 -9
  540. package/src/Content.tsx +12 -30
  541. package/src/ContextualHelp.tsx +5 -8
  542. package/src/CustomDialog.tsx +5 -8
  543. package/src/Dialog.tsx +6 -9
  544. package/src/Disclosure.tsx +15 -24
  545. package/src/Divider.tsx +16 -25
  546. package/src/DropZone.tsx +5 -8
  547. package/src/Field.tsx +25 -32
  548. package/src/Form.tsx +5 -8
  549. package/src/FullscreenDialog.tsx +5 -8
  550. package/src/IllustratedMessage.tsx +6 -9
  551. package/src/Image.tsx +3 -6
  552. package/src/InlineAlert.tsx +6 -10
  553. package/src/Link.tsx +13 -21
  554. package/src/Menu.tsx +69 -33
  555. package/src/Meter.tsx +13 -23
  556. package/src/Modal.tsx +22 -52
  557. package/src/NumberField.tsx +5 -8
  558. package/src/Picker.tsx +7 -9
  559. package/src/Popover.tsx +30 -104
  560. package/src/ProgressBar.tsx +14 -24
  561. package/src/ProgressCircle.tsx +18 -24
  562. package/src/Radio.tsx +6 -9
  563. package/src/RadioGroup.tsx +6 -9
  564. package/src/RangeSlider.tsx +2 -5
  565. package/src/SearchField.tsx +5 -8
  566. package/src/SegmentedControl.tsx +10 -16
  567. package/src/Slider.tsx +2 -5
  568. package/src/StatusLight.tsx +6 -9
  569. package/src/Switch.tsx +6 -9
  570. package/src/TableView.tsx +53 -50
  571. package/src/Tabs.tsx +5 -8
  572. package/src/TagGroup.tsx +7 -14
  573. package/src/TextField.tsx +20 -28
  574. package/src/ToggleButton.tsx +7 -9
  575. package/src/ToggleButtonGroup.tsx +5 -8
  576. package/src/Tooltip.tsx +30 -51
  577. package/src/bar-utils.ts +3 -10
  578. package/src/index.ts +2 -0
  579. package/src/style-utils.ts +15 -8
  580. package/style/dist/main.cjs +1 -0
  581. package/style/dist/main.cjs.map +1 -1
  582. package/style/dist/module.mjs +2 -2
  583. package/style/dist/module.mjs.map +1 -1
  584. package/style/dist/spectrum-theme.cjs +72 -5
  585. package/style/dist/spectrum-theme.cjs.map +1 -1
  586. package/style/dist/spectrum-theme.mjs +72 -6
  587. package/style/dist/spectrum-theme.mjs.map +1 -1
  588. package/style/dist/style-macro.cjs +13 -1
  589. package/style/dist/style-macro.cjs.map +1 -1
  590. package/style/dist/style-macro.mjs +13 -1
  591. package/style/dist/style-macro.mjs.map +1 -1
  592. package/style/dist/types.d.ts +50 -29
  593. package/style/dist/types.d.ts.map +1 -1
  594. package/style/index.ts +1 -1
  595. package/style/spectrum-theme.ts +72 -7
  596. package/style/style-macro.ts +20 -4
  597. package/style/tokens.ts +30 -0
  598. package/style/types.ts +1 -1
package/src/Radio.tsx CHANGED
@@ -102,7 +102,11 @@ const circle = style<RenderProps>({
102
102
  }
103
103
  });
104
104
 
105
- function Radio(props: RadioProps, ref: FocusableRef<HTMLLabelElement>) {
105
+ /**
106
+ * Radio buttons allow users to select a single option from a list of mutually exclusive options.
107
+ * All possible options are exposed up front for users to compare.
108
+ */
109
+ export const Radio = /*#__PURE__*/ forwardRef(function Radio(props: RadioProps, ref: FocusableRef<HTMLLabelElement>) {
106
110
  let {children, UNSAFE_className = '', UNSAFE_style} = props;
107
111
  let circleRef = useRef(null);
108
112
  let inputRef = useRef<HTMLInputElement | null>(null);
@@ -138,11 +142,4 @@ function Radio(props: RadioProps, ref: FocusableRef<HTMLLabelElement>) {
138
142
  )}
139
143
  </AriaRadio>
140
144
  );
141
- }
142
-
143
- /**
144
- * Radio buttons allow users to select a single option from a list of mutually exclusive options.
145
- * All possible options are exposed up front for users to compare.
146
- */
147
- let _Radio = /*#__PURE__*/ forwardRef(Radio);
148
- export {_Radio as Radio};
145
+ });
@@ -49,7 +49,11 @@ export interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'className' |
49
49
 
50
50
  export const RadioGroupContext = createContext<ContextValue<RadioGroupProps, DOMRefValue<HTMLDivElement>>>(null);
51
51
 
52
- function RadioGroup(props: RadioGroupProps, ref: DOMRef<HTMLDivElement>) {
52
+ /**
53
+ * Radio groups allow users to select a single option from a list of mutually exclusive options.
54
+ * All possible options are exposed up front for users to compare.
55
+ */
56
+ export const RadioGroup = /*#__PURE__*/ forwardRef(function RadioGroup(props: RadioGroupProps, ref: DOMRef<HTMLDivElement>) {
53
57
  [props, ref] = useSpectrumContextProps(props, ref, RadioGroupContext);
54
58
  let formContext = useContext(FormContext);
55
59
  props = useFormProps(props);
@@ -132,11 +136,4 @@ function RadioGroup(props: RadioGroupProps, ref: DOMRef<HTMLDivElement>) {
132
136
  )}
133
137
  </AriaRadioGroup>
134
138
  );
135
- }
136
-
137
- /**
138
- * Radio groups allow users to select a single option from a list of mutually exclusive options.
139
- * All possible options are exposed up front for users to compare.
140
- */
141
- let _RadioGroup = /*#__PURE__*/ forwardRef(RadioGroup);
142
- export {_RadioGroup as RadioGroup};
139
+ });
@@ -39,7 +39,7 @@ export interface RangeSliderProps extends Omit<SliderBaseProps<RangeValue<number
39
39
 
40
40
  export const RangeSliderContext = createContext<ContextValue<RangeSliderProps, FocusableRefValue<HTMLDivElement>>>(null);
41
41
 
42
- function RangeSlider(props: RangeSliderProps, ref: FocusableRef<HTMLDivElement>) {
42
+ export const RangeSlider = /*#__PURE__*/ forwardRef(function RangeSlider(props: RangeSliderProps, ref: FocusableRef<HTMLDivElement>) {
43
43
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
44
44
  [props, ref] = useSpectrumContextProps(props, ref, RangeSliderContext);
45
45
  let formContext = useContext(FormContext);
@@ -124,7 +124,4 @@ function RangeSlider(props: RangeSliderProps, ref: FocusableRef<HTMLDivElement>)
124
124
  </SliderTrack>
125
125
  </SliderBase>
126
126
  );
127
- }
128
-
129
- let _RangeSlider = /*#__PURE__*/ forwardRef(RangeSlider);
130
- export {_RangeSlider as RangeSlider};
127
+ });
@@ -42,7 +42,10 @@ export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'className'
42
42
 
43
43
  export const SearchFieldContext = createContext<ContextValue<SearchFieldProps, TextFieldRef>>(null);
44
44
 
45
- function SearchField(props: SearchFieldProps, ref: Ref<TextFieldRef>) {
45
+ /**
46
+ * A SearchField is a text field designed for searches.
47
+ */
48
+ export const SearchField = /*#__PURE__*/ forwardRef(function SearchField(props: SearchFieldProps, ref: Ref<TextFieldRef>) {
46
49
  [props, ref] = useSpectrumContextProps(props, ref, SearchFieldContext);
47
50
  let formContext = useContext(FormContext);
48
51
  props = useFormProps(props);
@@ -151,10 +154,4 @@ function SearchField(props: SearchFieldProps, ref: Ref<TextFieldRef>) {
151
154
  </>)}
152
155
  </AriaSearchField>
153
156
  );
154
- }
155
-
156
- /**
157
- * A SearchField is a text field designed for searches.
158
- */
159
- let _SearchField = /*#__PURE__*/ forwardRef(SearchField);
160
- export {_SearchField as SearchField};
157
+ });
@@ -151,7 +151,10 @@ interface DefaultSelectionTrackProps {
151
151
 
152
152
  const InternalSegmentedControlContext = createContext<InternalSegmentedControlContextProps>({});
153
153
 
154
- function SegmentedControl(props: SegmentedControlProps, ref: DOMRef<HTMLDivElement>) {
154
+ /**
155
+ * A SegmentedControl is a mutually exclusive group of buttons used for view switching.
156
+ */
157
+ export const SegmentedControl = /*#__PURE__*/ forwardRef(function SegmentedControl(props: SegmentedControlProps, ref: DOMRef<HTMLDivElement>) {
155
158
  [props, ref] = useSpectrumContextProps(props, ref, SegmentedControlContext);
156
159
  let {
157
160
  defaultSelectedKey,
@@ -190,7 +193,7 @@ function SegmentedControl(props: SegmentedControlProps, ref: DOMRef<HTMLDivEleme
190
193
  </DefaultSelectionTracker>
191
194
  </ToggleButtonGroup>
192
195
  );
193
- }
196
+ });
194
197
 
195
198
  function DefaultSelectionTracker(props: DefaultSelectionTrackProps) {
196
199
  let state = useContext(ToggleGroupStateContext);
@@ -214,7 +217,10 @@ function DefaultSelectionTracker(props: DefaultSelectionTrackProps) {
214
217
  );
215
218
  }
216
219
 
217
- function SegmentedControlItem(props: SegmentedControlItemProps, ref: FocusableRef<HTMLButtonElement>) {
220
+ /**
221
+ * A SegmentedControlItem represents an option within a SegmentedControl.
222
+ */
223
+ export const SegmentedControlItem = /*#__PURE__*/ forwardRef(function SegmentedControlItem(props: SegmentedControlItemProps, ref: FocusableRef<HTMLButtonElement>) {
218
224
  let domRef = useFocusableRef(ref);
219
225
  let divRef = useRef<HTMLDivElement>(null);
220
226
  let {register, prevRef, currentSelectedRef, isJustified} = useContext(InternalSegmentedControlContext);
@@ -277,16 +283,4 @@ function SegmentedControlItem(props: SegmentedControlItemProps, ref: FocusableRe
277
283
  }
278
284
  </ToggleButton>
279
285
  );
280
- }
281
-
282
- /**
283
- * A SegmentedControlItem represents an option within a SegmentedControl.
284
- */
285
- const _SegmentedControlItem = /*#__PURE__*/ forwardRef(SegmentedControlItem);
286
- export {_SegmentedControlItem as SegmentedControlItem};
287
-
288
- /**
289
- * A SegmentedControl is a mutually exclusive group of buttons used for view switching.
290
- */
291
- const _SegmentedControl = /*#__PURE__*/ forwardRef(SegmentedControl);
292
- export {_SegmentedControl as SegmentedControl};
286
+ });
package/src/Slider.tsx CHANGED
@@ -389,7 +389,7 @@ export function SliderBase<T extends number | number[]>(props: SliderBaseProps<T
389
389
  );
390
390
  }
391
391
 
392
- function Slider(props: SliderProps, ref: FocusableRef<HTMLDivElement>) {
392
+ export const Slider = /*#__PURE__*/ forwardRef(function Slider(props: SliderProps, ref: FocusableRef<HTMLDivElement>) {
393
393
  [props, ref] = useSpectrumContextProps(props, ref, SliderContext);
394
394
  let formContext = useContext(FormContext);
395
395
  props = useFormProps(props);
@@ -443,7 +443,4 @@ function Slider(props: SliderProps, ref: FocusableRef<HTMLDivElement>) {
443
443
  </SliderTrack>
444
444
  </SliderBase>
445
445
  );
446
- }
447
-
448
- let _Slider = /*#__PURE__*/ forwardRef(Slider);
449
- export {_Slider as Slider};
446
+ });
@@ -102,7 +102,11 @@ const light = style<StatusLightStyleProps & {isSkeleton: boolean}>({
102
102
  overflow: 'visible' // prevents the light from getting clipped on iOS
103
103
  });
104
104
 
105
- function StatusLight(props: StatusLightProps, ref: DOMRef<HTMLDivElement>) {
105
+ /**
106
+ * Status lights are used to color code categories and labels commonly found in data visualization.
107
+ * When status lights have a semantic meaning, they should use semantic variant colors.
108
+ */
109
+ export const StatusLight = /*#__PURE__*/ forwardRef(function StatusLight(props: StatusLightProps, ref: DOMRef<HTMLDivElement>) {
106
110
  [props, ref] = useSpectrumContextProps(props, ref, StatusLightContext);
107
111
  let {children, size = 'M', variant, role, UNSAFE_className = '', UNSAFE_style, styles} = props;
108
112
  let domRef = useDOMRef(ref);
@@ -131,11 +135,4 @@ function StatusLight(props: StatusLightProps, ref: DOMRef<HTMLDivElement>) {
131
135
  <Text>{children}</Text>
132
136
  </div>
133
137
  );
134
- }
135
-
136
- /**
137
- * Status lights are used to color code categories and labels commonly found in data visualization.
138
- * When status lights have a semantic meaning, they should use semantic variant colors.
139
- */
140
- let _StatusLight = /*#__PURE__*/ forwardRef(StatusLight);
141
- export {_StatusLight as StatusLight};
138
+ });
package/src/Switch.tsx CHANGED
@@ -149,7 +149,11 @@ const transformStyle = ({isSelected}: SwitchRenderProps) => ({
149
149
  : 'perspective(calc(var(--trackHeight) - 8px)) translateZ(-4px)'
150
150
  });
151
151
 
152
- function Switch(props: SwitchProps, ref: FocusableRef<HTMLLabelElement>) {
152
+ /**
153
+ * Switches allow users to turn an individual option on or off.
154
+ * They are usually used to activate or deactivate a specific setting.
155
+ */
156
+ export const Switch = /*#__PURE__*/ forwardRef(function Switch(props: SwitchProps, ref: FocusableRef<HTMLLabelElement>) {
153
157
  [props, ref] = useSpectrumContextProps(props, ref, SwitchContext);
154
158
  let {children, UNSAFE_className = '', UNSAFE_style} = props;
155
159
  let inputRef = useRef<HTMLInputElement | null>(null);
@@ -184,11 +188,4 @@ function Switch(props: SwitchProps, ref: FocusableRef<HTMLLabelElement>) {
184
188
  )}
185
189
  </AriaSwitch>
186
190
  );
187
- }
188
-
189
- /**
190
- * Switches allow users to turn an individual option on or off.
191
- * They are usually used to activate or deactivate a specific setting.
192
- */
193
- let _Switch = /*#__PURE__*/ forwardRef(Switch);
194
- export {_Switch as Switch};
191
+ });
package/src/TableView.tsx CHANGED
@@ -45,7 +45,7 @@ import {
45
45
  import {centerPadding, getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
46
46
  import {Checkbox} from './Checkbox';
47
47
  import Chevron from '../ui-icons/Chevron';
48
- import {colorMix, fontRelative, lightDark, space, style} from '../style' with {type: 'macro'};
48
+ import {colorMix, focusRing, fontRelative, lightDark, space, style} from '../style' with {type: 'macro'};
49
49
  import {ColumnSize} from '@react-types/table';
50
50
  import {DOMRef, DOMRefValue, forwardRefType, LoadingState, Node} from '@react-types/shared';
51
51
  import {GridNode} from '@react-types/grid';
@@ -58,10 +58,11 @@ import {mergeStyles} from '../style/runtime';
58
58
  import Nubbin from '../ui-icons/S2_MoveHorizontalTableWidget.svg';
59
59
  import {ProgressCircle} from './ProgressCircle';
60
60
  import {raw} from '../style/style-macro' with {type: 'macro'};
61
- import React, {createContext, forwardRef, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';
61
+ import React, {createContext, forwardRef, ReactElement, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';
62
62
  import {Rect} from '@react-stately/virtualizer';
63
63
  import SortDownArrow from '../s2wf-icons/S2_Icon_SortDown_20_N.svg';
64
64
  import SortUpArrow from '../s2wf-icons/S2_Icon_SortUp_20_N.svg';
65
+ import {useActionBarContainer} from './ActionBar';
65
66
  import {useDOMRef} from '@react-spectrum/utils';
66
67
  import {useLoadMore} from '@react-aria/utils';
67
68
  import {useLocalizedStringFormatter} from '@react-aria/i18n';
@@ -103,7 +104,9 @@ interface S2TableProps {
103
104
  /** The current loading state of the table. */
104
105
  loadingState?: LoadingState,
105
106
  /** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */
106
- onLoadMore?: () => any
107
+ onLoadMore?: () => any,
108
+ /** Provides the ActionBar to display when rows are selected in the TableView. */
109
+ renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement
107
110
  }
108
111
 
109
112
  // TODO: Note that loadMore and loadingState are now on the Table instead of on the TableBody
@@ -119,7 +122,10 @@ const tableWrapper = style({
119
122
  minWidth: 0,
120
123
  display: 'flex',
121
124
  isolation: 'isolate',
122
- disableTapHighlight: true
125
+ disableTapHighlight: true,
126
+ position: 'relative',
127
+ // Clip ActionBar animation.
128
+ overflow: 'clip'
123
129
  });
124
130
 
125
131
  const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boolean}>({
@@ -135,17 +141,14 @@ const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boo
135
141
  isQuiet: 'transparent',
136
142
  forcedColors: 'Background'
137
143
  },
138
- outlineColor: {
139
- default: 'gray-300',
140
- isFocusVisible: 'focus-ring',
141
- forcedColors: 'ButtonBorder'
142
- },
143
- outlineWidth: {
144
+ borderColor: 'gray-300',
145
+ borderStyle: 'solid',
146
+ borderWidth: {
144
147
  default: 1,
145
- isQuiet: 0,
146
- isFocusVisible: 2
148
+ isQuiet: 0
147
149
  },
148
- outlineStyle: 'solid',
150
+ ...focusRing(),
151
+ outlineOffset: -1, // Cover the border
149
152
  borderRadius: {
150
153
  default: '[6px]',
151
154
  isQuiet: 'none'
@@ -255,7 +258,10 @@ export class S2TableLayout<T> extends UNSTABLE_TableLayout<T> {
255
258
 
256
259
  export const TableContext = createContext<ContextValue<TableViewProps, DOMRefValue<HTMLDivElement>>>(null);
257
260
 
258
- function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
261
+ /**
262
+ * Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data.
263
+ */
264
+ export const TableView = forwardRef(function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
259
265
  [props, ref] = useSpectrumContextProps(props, ref, TableContext);
260
266
  let {
261
267
  UNSAFE_style,
@@ -309,7 +315,7 @@ function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
309
315
  }), [isQuiet, density, overflowMode, loadingState, isInResizeMode, setIsInResizeMode]);
310
316
 
311
317
  let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';
312
- let scrollRef = useRef(null);
318
+ let scrollRef = useRef<HTMLElement | null>(null);
313
319
  let memoedLoadMoreProps = useMemo(() => ({
314
320
  isLoading: isLoading,
315
321
  onLoadMore
@@ -317,6 +323,8 @@ function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
317
323
  useLoadMore(memoedLoadMoreProps, scrollRef);
318
324
  let isCheckboxSelection = props.selectionMode === 'multiple' || props.selectionMode === 'single';
319
325
 
326
+ let {selectedKeys, onSelectionChange, actionBar, actionBarHeight} = useActionBarContainer({...props, scrollRef});
327
+
320
328
  return (
321
329
  <ResizableTableContainer
322
330
  // TODO: perhaps this ref should be attached to the RACTable but it expects a table type ref which isn't true in the virtualized case
@@ -329,9 +337,15 @@ function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
329
337
  <UNSTABLE_Virtualizer layout={layout}>
330
338
  <InternalTableContext.Provider value={context}>
331
339
  <RACTable
332
- ref={scrollRef}
333
- // Fix webkit bug where scrollbars appear above the checkboxes/other table elements
334
- style={{WebkitTransform: 'translateZ(0)'}}
340
+ ref={scrollRef as any}
341
+ style={{
342
+ // Fix webkit bug where scrollbars appear above the checkboxes/other table elements
343
+ WebkitTransform: 'translateZ(0)',
344
+ // Add padding at the bottom when the action bar is visible so users can scroll to the last items.
345
+ // Also add scroll padding so navigating with the keyboard doesn't go behind the action bar.
346
+ paddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0,
347
+ scrollPaddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0
348
+ }}
335
349
  className={renderProps => table({
336
350
  ...renderProps,
337
351
  isCheckboxSelection,
@@ -339,12 +353,16 @@ function TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {
339
353
  })}
340
354
  selectionBehavior="toggle"
341
355
  onRowAction={onAction}
342
- {...otherProps} />
356
+ {...otherProps}
357
+ selectedKeys={selectedKeys}
358
+ defaultSelectedKeys={undefined}
359
+ onSelectionChange={onSelectionChange} />
343
360
  </InternalTableContext.Provider>
344
361
  </UNSTABLE_Virtualizer>
362
+ {actionBar}
345
363
  </ResizableTableContainer>
346
364
  );
347
- }
365
+ });
348
366
 
349
367
  const centeredWrapper = style({
350
368
  display: 'flex',
@@ -356,7 +374,10 @@ const centeredWrapper = style({
356
374
 
357
375
  export interface TableBodyProps<T> extends Omit<RACTableBodyProps<T>, 'style' | 'className' | 'dependencies'> {}
358
376
 
359
- function TableBody<T extends object>(props: TableBodyProps<T>, ref: DOMRef<HTMLDivElement>) {
377
+ /**
378
+ * The body of a `<Table>`, containing the table rows.
379
+ */
380
+ export const TableBody = /*#__PURE__*/ (forwardRef as forwardRefType)(function TableBody<T extends object>(props: TableBodyProps<T>, ref: DOMRef<HTMLDivElement>) {
360
381
  let {items, renderEmptyState, children} = props;
361
382
  let domRef = useDOMRef(ref);
362
383
  let {loadingState} = useContext(InternalTableContext);
@@ -422,13 +443,7 @@ function TableBody<T extends object>(props: TableBodyProps<T>, ref: DOMRef<HTMLD
422
443
  {renderer}
423
444
  </RACTableBody>
424
445
  );
425
- }
426
-
427
- /**
428
- * The body of a `<Table>`, containing the table rows.
429
- */
430
- let _TableBody = /*#__PURE__*/ (forwardRef as forwardRefType)(TableBody);
431
- export {_TableBody as TableBody};
446
+ });
432
447
 
433
448
  const cellFocus = {
434
449
  outlineStyle: {
@@ -830,7 +845,10 @@ let InternalTableHeaderContext = createContext<{isHeaderRowHovered?: boolean}>({
830
845
 
831
846
  export interface TableHeaderProps<T> extends Omit<RACTableHeaderProps<T>, 'style' | 'className' | 'dependencies' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd'> {}
832
847
 
833
- function TableHeader<T extends object>({columns, children}: TableHeaderProps<T>, ref: DOMRef<HTMLDivElement>) {
848
+ /**
849
+ * A header within a `<Table>`, containing the table columns.
850
+ */
851
+ export const TableHeader = /*#__PURE__*/ (forwardRef as forwardRefType)(function TableHeader<T extends object>({columns, children}: TableHeaderProps<T>, ref: DOMRef<HTMLDivElement>) {
834
852
  let scale = useScale();
835
853
  let {selectionBehavior, selectionMode} = useTableOptions();
836
854
  let {isQuiet} = useContext(InternalTableContext);
@@ -870,13 +888,7 @@ function TableHeader<T extends object>({columns, children}: TableHeaderProps<T>,
870
888
  </RACTableHeader>
871
889
  </InternalTableHeaderContext.Provider>
872
890
  );
873
- }
874
-
875
- /**
876
- * A header within a `<Table>`, containing the table columns.
877
- */
878
- let _TableHeader = /*#__PURE__*/ (forwardRef as forwardRefType)(TableHeader);
879
- export {_TableHeader as TableHeader};
891
+ });
880
892
 
881
893
  function VisuallyHiddenSelectAllLabel() {
882
894
  let checkboxProps = useSlottedContext(RACCheckboxContext, 'selection');
@@ -1093,7 +1105,10 @@ const row = style<RowRenderProps & S2TableProps>({
1093
1105
 
1094
1106
  export interface RowProps<T> extends Pick<RACRowProps<T>, 'id' | 'columns' | 'children' | 'textValue'> {}
1095
1107
 
1096
- function Row<T extends object>({id, columns, children, ...otherProps}: RowProps<T>, ref: DOMRef<HTMLDivElement>) {
1108
+ /**
1109
+ * A row within a `<Table>`.
1110
+ */
1111
+ export const Row = /*#__PURE__*/ (forwardRef as forwardRefType)(function Row<T extends object>({id, columns, children, ...otherProps}: RowProps<T>, ref: DOMRef<HTMLDivElement>) {
1097
1112
  let {selectionBehavior, selectionMode} = useTableOptions();
1098
1113
  let tableVisualOptions = useContext(InternalTableContext);
1099
1114
  let domRef = useDOMRef(ref);
@@ -1118,16 +1133,4 @@ function Row<T extends object>({id, columns, children, ...otherProps}: RowProps<
1118
1133
  </Collection>
1119
1134
  </RACRow>
1120
1135
  );
1121
- }
1122
-
1123
- /**
1124
- * A row within a `<Table>`.
1125
- */
1126
- let _Row = /*#__PURE__*/ (forwardRef as forwardRefType)(Row);
1127
- export {_Row as Row};
1128
-
1129
- /**
1130
- * Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data.
1131
- */
1132
- const _TableView = forwardRef(TableView);
1133
- export {_TableView as TableView};
1136
+ });
package/src/Tabs.tsx CHANGED
@@ -333,7 +333,10 @@ const tabs = style({
333
333
  }
334
334
  }, getAllowedOverrides({height: true}));
335
335
 
336
- function Tabs(props: TabsProps, ref: DOMRef<HTMLDivElement>) {
336
+ /**
337
+ * Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit.
338
+ */
339
+ export const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLDivElement>) {
337
340
  [props, ref] = useSpectrumContextProps(props, ref, TabsContext);
338
341
  let {
339
342
  density = 'regular',
@@ -357,10 +360,4 @@ function Tabs(props: TabsProps, ref: DOMRef<HTMLDivElement>) {
357
360
  </Provider>
358
361
  </RACTabs>
359
362
  );
360
- }
361
-
362
- /**
363
- * Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit.
364
- */
365
- const _Tabs = forwardRef(Tabs);
366
- export {_Tabs as Tabs};
363
+ });
package/src/TagGroup.tsx CHANGED
@@ -103,7 +103,8 @@ const helpTextStyles = style({
103
103
 
104
104
  const InternalTagGroupContext = createContext<TagGroupProps<any>>({});
105
105
 
106
- function TagGroup<T extends object>(props: TagGroupProps<T>, ref: DOMRef<HTMLDivElement>) {
106
+ /** Tags allow users to categorize content. They can represent keywords or people, and are grouped to describe an item or a search request. */
107
+ export const TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function TagGroup<T extends object>(props: TagGroupProps<T>, ref: DOMRef<HTMLDivElement>) {
107
108
  [props, ref] = useSpectrumContextProps(props, ref, TagGroupContext);
108
109
  props = useFormProps(props);
109
110
  let {onRemove} = props;
@@ -114,11 +115,7 @@ function TagGroup<T extends object>(props: TagGroupProps<T>, ref: DOMRef<HTMLDiv
114
115
  </CollectionBuilder>
115
116
  </InternalTagGroupContext.Provider>
116
117
  );
117
- }
118
-
119
- /** Tags allow users to categorize content. They can represent keywords or people, and are grouped to describe an item or a search request. */
120
- let _TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(TagGroup);
121
- export {_TagGroup as TagGroup};
118
+ });
122
119
 
123
120
  function TagGroupInner<T>({
124
121
  props: {
@@ -360,7 +357,7 @@ function TagGroupInner<T>({
360
357
  minWidth: 'full',
361
358
  font: 'ui'
362
359
  })}>
363
- {item => <_Tag {...item.props} id={item.key} textValue={item.textValue} />}
360
+ {item => <Tag {...item.props} id={item.key} textValue={item.textValue} />}
364
361
  </TagList>
365
362
  {!isEmpty && (showCollapseToggleButton || groupActionLabel) &&
366
363
  <ActionGroup
@@ -519,7 +516,8 @@ const avatarSize = {
519
516
  L: 24
520
517
  } as const;
521
518
 
522
- function Tag({children, textValue, ...props}: TagProps, ref: DOMRef<HTMLDivElement>) {
519
+ /** An individual Tag for TagGroups. */
520
+ export const Tag = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tag({children, textValue, ...props}: TagProps, ref: DOMRef<HTMLDivElement>) {
523
521
  textValue ||= typeof children === 'string' ? children : undefined;
524
522
  let ctx = useSlottedContext(TagGroupContext);
525
523
  let isInRealDOM = Boolean(ctx?.size);
@@ -541,12 +539,7 @@ function Tag({children, textValue, ...props}: TagProps, ref: DOMRef<HTMLDivEleme
541
539
  ))}
542
540
  </AriaTag>
543
541
  );
544
- }
545
-
546
-
547
- /** An individual Tag for TagGroups. */
548
- let _Tag = /*#__PURE__*/ (forwardRef as forwardRefType)(Tag);
549
- export {_Tag as Tag};
542
+ });
550
543
 
551
544
  function TagWrapper({children, isDisabled, allowsRemoving, isInRealDOM}) {
552
545
  let {size = 'M'} = useSlottedContext(TagGroupContext) ?? {};
package/src/TextField.tsx CHANGED
@@ -43,33 +43,35 @@ export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'c
43
43
 
44
44
  export const TextFieldContext = createContext<ContextValue<TextFieldProps, TextFieldRef>>(null);
45
45
 
46
- function TextField(props: TextFieldProps, ref: Ref<TextFieldRef>) {
46
+ /**
47
+ * TextFields are text inputs that allow users to input custom text entries
48
+ * with a keyboard. Various decorations can be displayed around the field to
49
+ * communicate the entry requirements.
50
+ */
51
+ export const TextField = forwardRef(function TextField(props: TextFieldProps, ref: Ref<TextFieldRef>) {
47
52
  [props, ref] = useSpectrumContextProps(props, ref, TextFieldContext);
48
53
  return (
49
- <_TextFieldBase
54
+ <TextFieldBase
50
55
  {...props}
51
56
  ref={ref}>
52
57
  <Input />
53
- </_TextFieldBase>
58
+ </TextFieldBase>
54
59
  );
55
- }
56
-
57
- /**
58
- * TextFields are text inputs that allow users to input custom text entries
59
- * with a keyboard. Various decorations can be displayed around the field to
60
- * communicate the entry requirements.
61
- */
62
- let _TextField = forwardRef(TextField);
63
- export {_TextField as TextField};
60
+ });
64
61
 
65
62
  export interface TextAreaProps extends Omit<TextFieldProps, 'type' | 'pattern'> {}
66
63
 
67
64
  export const TextAreaContext = createContext<ContextValue<TextAreaProps, TextFieldRef<HTMLTextAreaElement>>>(null);
68
65
 
69
- function TextArea(props: TextAreaProps, ref: Ref<TextFieldRef<HTMLTextAreaElement>>) {
66
+ /**
67
+ * TextAreas are multiline text inputs, useful for cases where users have
68
+ * a sizable amount of text to enter. They allow for all customizations that
69
+ * are available to text fields.
70
+ */
71
+ export const TextArea = forwardRef(function TextArea(props: TextAreaProps, ref: Ref<TextFieldRef<HTMLTextAreaElement>>) {
70
72
  [props, ref] = useSpectrumContextProps(props, ref, TextAreaContext);
71
73
  return (
72
- <_TextFieldBase
74
+ <TextFieldBase
73
75
  {...props}
74
76
  ref={ref}
75
77
  fieldGroupCss={style({
@@ -77,19 +79,11 @@ function TextArea(props: TextAreaProps, ref: Ref<TextFieldRef<HTMLTextAreaElemen
77
79
  height: 'auto'
78
80
  })}>
79
81
  <TextAreaInput />
80
- </_TextFieldBase>
82
+ </TextFieldBase>
81
83
  );
82
- }
84
+ });
83
85
 
84
- /**
85
- * TextAreas are multiline text inputs, useful for cases where users have
86
- * a sizable amount of text to enter. They allow for all customizations that
87
- * are available to text fields.
88
- */
89
- let _TextArea = forwardRef(TextArea);
90
- export {_TextArea as TextArea};
91
-
92
- function TextFieldBase(props: TextFieldProps & {children: ReactNode, fieldGroupCss?: StyleString}, ref: Ref<TextFieldRef<HTMLInputElement | HTMLTextAreaElement>>) {
86
+ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldProps & {children: ReactNode, fieldGroupCss?: StyleString}, ref: Ref<TextFieldRef<HTMLInputElement | HTMLTextAreaElement>>) {
93
87
  let inputRef = useRef<HTMLInputElement>(null);
94
88
  let domRef = useRef<HTMLDivElement>(null);
95
89
  let formContext = useContext(FormContext);
@@ -162,9 +156,7 @@ function TextFieldBase(props: TextFieldProps & {children: ReactNode, fieldGroupC
162
156
  </>))}
163
157
  </AriaTextField>
164
158
  );
165
- }
166
-
167
- let _TextFieldBase = forwardRef(TextFieldBase);
159
+ });
168
160
 
169
161
  function TextAreaInput() {
170
162
  // Force re-render when value changes so we update the height.
@@ -35,7 +35,11 @@ export interface ToggleButtonProps extends Omit<RACToggleButtonProps, 'className
35
35
 
36
36
  export const ToggleButtonContext = createContext<ContextValue<ToggleButtonProps, FocusableRefValue<HTMLButtonElement>>>(null);
37
37
 
38
- function ToggleButton(props: ToggleButtonProps, ref: FocusableRef<HTMLButtonElement>) {
38
+ /**
39
+ * ToggleButtons allow users to toggle a selection on or off, for example
40
+ * switching between two states or modes.
41
+ */
42
+ export const ToggleButton = forwardRef(function ToggleButton(props: ToggleButtonProps, ref: FocusableRef<HTMLButtonElement>) {
39
43
  [props, ref] = useSpectrumContextProps(props, ref, ToggleButtonContext);
40
44
  props = useFormProps(props as any);
41
45
  let domRef = useFocusableRef(ref);
@@ -61,6 +65,7 @@ function ToggleButton(props: ToggleButtonProps, ref: FocusableRef<HTMLButtonElem
61
65
  className={renderProps => (props.UNSAFE_className || '') + btnStyles({
62
66
  ...renderProps,
63
67
  staticColor,
68
+ isStaticColor: !!staticColor,
64
69
  size,
65
70
  isQuiet,
66
71
  isEmphasized,
@@ -83,11 +88,4 @@ function ToggleButton(props: ToggleButtonProps, ref: FocusableRef<HTMLButtonElem
83
88
  </Provider>
84
89
  </RACToggleButton>
85
90
  );
86
- }
87
-
88
- /**
89
- * ToggleButtons allow users to toggle a selection on or off, for example
90
- * switching between two states or modes.
91
- */
92
- let _ToggleButton = forwardRef(ToggleButton);
93
- export {_ToggleButton as ToggleButton};
91
+ });
@@ -22,7 +22,10 @@ export interface ToggleButtonGroupProps extends ActionButtonGroupProps, Omit<RAC
22
22
 
23
23
  export const ToggleButtonGroupContext = createContext<ContextValue<ToggleButtonGroupProps, HTMLDivElement>>(null);
24
24
 
25
- function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
25
+ /**
26
+ * A ToggleButtonGroup is a grouping of related ToggleButtons, with single or multiple selection.
27
+ */
28
+ export const ToggleButtonGroup = forwardRef(function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
26
29
  [props, ref] = useSpectrumContextProps(props, ref, ToggleButtonGroupContext);
27
30
  let {
28
31
  density = 'regular',
@@ -46,10 +49,4 @@ function ToggleButtonGroup(props: ToggleButtonGroupProps, ref: ForwardedRef<HTML
46
49
  </ToggleButtonGroupContext.Provider>
47
50
  </RACToggleButtonGroup>
48
51
  );
49
- }
50
-
51
- /**
52
- * A ToggleButtonGroup is a grouping of related ToggleButtons, with single or multiple selection.
53
- */
54
- const _ToggleButtonGroup = forwardRef(ToggleButtonGroup);
55
- export {_ToggleButtonGroup as ToggleButtonGroup};
52
+ });