@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/s2",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Spectrum 2 UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -57,33 +57,32 @@
57
57
  "src"
58
58
  ],
59
59
  "dependencies": {
60
- "@react-aria/collections": "3.0.0-alpha.6",
61
- "@react-aria/i18n": "^3.12.4",
62
- "@react-aria/interactions": "^3.22.5",
63
- "@react-aria/utils": "^3.26.0",
64
- "@react-spectrum/utils": "^3.12.0",
65
- "@react-stately/layout": "^4.1.0",
66
- "@react-stately/virtualizer": "^4.2.0",
67
- "@react-types/color": "^3.0.1",
68
- "@react-types/dialog": "^3.5.14",
69
- "@react-types/grid": "^3.2.10",
70
- "@react-types/provider": "^3.8.5",
71
- "@react-types/shared": "^3.26.0",
72
- "@react-types/table": "^3.10.3",
73
- "@react-types/textfield": "^3.10.0",
60
+ "@react-aria/collections": "3.0.0-alpha.7",
61
+ "@react-aria/i18n": "^3.12.5",
62
+ "@react-aria/interactions": "^3.23.0",
63
+ "@react-aria/live-announcer": "^3.4.1",
64
+ "@react-aria/utils": "^3.27.0",
65
+ "@react-spectrum/utils": "^3.12.1",
66
+ "@react-stately/layout": "^4.1.1",
67
+ "@react-stately/utils": "^3.10.5",
68
+ "@react-stately/virtualizer": "^4.2.1",
69
+ "@react-types/color": "^3.0.2",
70
+ "@react-types/dialog": "^3.5.15",
71
+ "@react-types/grid": "^3.2.11",
72
+ "@react-types/provider": "^3.8.6",
73
+ "@react-types/shared": "^3.27.0",
74
+ "@react-types/table": "^3.10.4",
75
+ "@react-types/textfield": "^3.11.0",
74
76
  "csstype": "^3.0.2",
75
- "react-aria": "^3.36.0",
76
- "react-aria-components": "^1.5.0"
77
+ "react-aria": "^3.37.0",
78
+ "react-aria-components": "^1.6.0"
77
79
  },
78
80
  "peerDependencies": {
79
- "@testing-library/react": "^15.0.7",
80
- "@testing-library/user-event": "^13.0.0 || ^14.0.0",
81
- "jest": "^29.5.0",
82
81
  "react": "^18.0.0 || ^19.0.0-rc.1",
83
82
  "react-dom": "^18.0.0 || ^19.0.0-rc.1"
84
83
  },
85
84
  "publishConfig": {
86
85
  "access": "public"
87
86
  },
88
- "gitHead": "71f0ef23053f9e03ee7e97df736e8b083e006849"
87
+ "gitHead": "09e7f44bebdc9d89122926b2b439a0a38a2814ea"
89
88
  }
package/src/Accordion.tsx CHANGED
@@ -45,7 +45,10 @@ const accordion = style({
45
45
 
46
46
  export const AccordionContext = createContext<ContextValue<AccordionProps, DOMRefValue<HTMLDivElement>>>(null);
47
47
 
48
- function Accordion(props: AccordionProps, ref: DOMRef<HTMLDivElement>) {
48
+ /**
49
+ * An accordion is a container for multiple disclosures.
50
+ */
51
+ export const Accordion = forwardRef(function Accordion(props: AccordionProps, ref: DOMRef<HTMLDivElement>) {
49
52
  [props, ref] = useSpectrumContextProps(props, ref, AccordionContext);
50
53
  let domRef = useDOMRef(ref);
51
54
  let {
@@ -66,10 +69,4 @@ function Accordion(props: AccordionProps, ref: DOMRef<HTMLDivElement>) {
66
69
  </DisclosureGroup>
67
70
  </DisclosureContext.Provider>
68
71
  );
69
- }
70
-
71
- /**
72
- * An accordion is a container for multiple disclosures.
73
- */
74
- let _Accordion = forwardRef(Accordion);
75
- export {_Accordion as Accordion};
72
+ });
@@ -0,0 +1,229 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+ import {ActionButtonGroup} from './ActionButtonGroup';
14
+ import {announce} from '@react-aria/live-announcer';
15
+ import {CloseButton} from './CloseButton';
16
+ import {ContextValue, SlotProps} from 'react-aria-components';
17
+ import {createContext, ForwardedRef, forwardRef, ReactElement, ReactNode, RefObject, useCallback, useEffect, useMemo, useRef, useState} from 'react';
18
+ import {DOMRef, DOMRefValue, Key} from '@react-types/shared';
19
+ import {FocusScope, useKeyboard} from 'react-aria';
20
+ // @ts-ignore
21
+ import intlMessages from '../intl/*.json';
22
+ import {style} from '../style' with {type: 'macro'};
23
+ import {useControlledState} from '@react-stately/utils';
24
+ import {useDOMRef} from '@react-spectrum/utils';
25
+ import {useEnterAnimation, useExitAnimation, useObjectRef, useResizeObserver} from '@react-aria/utils';
26
+ import {useLocalizedStringFormatter} from '@react-aria/i18n';
27
+ import {useSpectrumContextProps} from './useSpectrumContextProps';
28
+
29
+ const actionBarStyles = style({
30
+ borderRadius: 'lg',
31
+ '--s2-container-bg': {
32
+ type: 'backgroundColor',
33
+ value: {
34
+ default: 'elevated',
35
+ isEmphasized: 'neutral'
36
+ }
37
+ },
38
+ backgroundColor: '--s2-container-bg',
39
+ boxShadow: 'elevated',
40
+ boxSizing: 'border-box',
41
+ outlineStyle: 'solid',
42
+ outlineWidth: 1,
43
+ outlineOffset: -1,
44
+ outlineColor: {
45
+ default: 'gray-200',
46
+ isEmphasized: 'transparent',
47
+ forcedColors: 'ButtonBorder'
48
+ },
49
+ paddingX: 8,
50
+ paddingY: 12,
51
+ display: 'flex',
52
+ gap: 16,
53
+ alignItems: 'center',
54
+ position: {
55
+ isInContainer: 'absolute'
56
+ },
57
+ bottom: 0,
58
+ insetStart: 8,
59
+ '--insetEnd': {
60
+ type: 'insetEnd',
61
+ value: 8
62
+ },
63
+ width: {
64
+ default: 'full',
65
+ isInContainer: 'auto'
66
+ },
67
+ marginX: 'auto',
68
+ maxWidth: 960,
69
+ transition: 'transform',
70
+ transitionDuration: 200,
71
+ translateY: {
72
+ default: -8,
73
+ isEntering: 'full',
74
+ isExiting: 'full'
75
+ }
76
+ });
77
+
78
+ export interface ActionBarProps extends SlotProps {
79
+ /** A list of ActionButtons to display. */
80
+ children: ReactNode,
81
+ /** Whether the ActionBar should be displayed with a emphasized style. */
82
+ isEmphasized?: boolean,
83
+ /** The number of selected items that the ActionBar is currently linked to. If 0, the ActionBar is hidden. */
84
+ selectedItemCount?: number | 'all',
85
+ /** Handler that is called when the ActionBar clear button is pressed. */
86
+ onClearSelection?: () => void,
87
+ /** A ref to the scrollable element the ActionBar appears above. */
88
+ scrollRef?: RefObject<HTMLElement | null>
89
+ }
90
+
91
+ export const ActionBarContext = createContext<ContextValue<Partial<ActionBarProps>, DOMRefValue<HTMLDivElement>>>(null);
92
+
93
+ export const ActionBar = forwardRef(function ActionBar(props: ActionBarProps, ref: DOMRef<HTMLDivElement>) {
94
+ [props, ref] = useSpectrumContextProps(props, ref, ActionBarContext);
95
+ let domRef = useDOMRef(ref);
96
+
97
+ let isOpen = props.selectedItemCount !== 0;
98
+ let isExiting = useExitAnimation(domRef, isOpen && props.scrollRef != null);
99
+ if (!isOpen && !isExiting) {
100
+ return null;
101
+ }
102
+
103
+ return <ActionBarInner {...props} ref={domRef} isExiting={isExiting} />;
104
+ });
105
+
106
+ const ActionBarInner = forwardRef(function ActionBarInner(props: ActionBarProps & {isExiting: boolean}, ref: ForwardedRef<HTMLDivElement | null>) {
107
+ let {isEmphasized, selectedItemCount = 0, children, onClearSelection, isExiting} = props;
108
+ let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
109
+
110
+ // Store the last count greater than zero so that we can retain it while rendering the fade-out animation.
111
+ let [lastCount, setLastCount] = useState(selectedItemCount);
112
+ if ((selectedItemCount === 'all' || selectedItemCount > 0) && selectedItemCount !== lastCount) {
113
+ setLastCount(selectedItemCount);
114
+ }
115
+
116
+ // Measure the width of the collection's scrollbar and offset the action bar by that amount.
117
+ let scrollRef = props.scrollRef;
118
+ let [scrollbarWidth, setScrollbarWidth] = useState(0);
119
+ let updateScrollbarWidth = useCallback(() => {
120
+ let el = scrollRef?.current;
121
+ if (el) {
122
+ let w = el.offsetWidth - el.clientWidth;
123
+ setScrollbarWidth(w);
124
+ }
125
+ }, [scrollRef]);
126
+
127
+ useResizeObserver({
128
+ ref: scrollRef,
129
+ onResize: updateScrollbarWidth
130
+ });
131
+
132
+ let {keyboardProps} = useKeyboard({
133
+ onKeyDown(e) {
134
+ if (e.key === 'Escape') {
135
+ e.preventDefault();
136
+ onClearSelection?.();
137
+ } else {
138
+ e.continuePropagation();
139
+ }
140
+ }
141
+ });
142
+
143
+ // Announce "actions available" on mount.
144
+ let isInitial = useRef(true);
145
+ useEffect(() => {
146
+ if (isInitial.current && scrollRef) {
147
+ isInitial.current = false;
148
+ announce(stringFormatter.format('actionbar.actionsAvailable'));
149
+ }
150
+ }, [stringFormatter, scrollRef]);
151
+
152
+ let objectRef = useObjectRef(ref);
153
+ let isEntering = useEnterAnimation(objectRef, !!scrollRef);
154
+
155
+ return (
156
+ <FocusScope restoreFocus>
157
+ <div
158
+ ref={objectRef}
159
+ {...keyboardProps}
160
+ className={actionBarStyles({isEmphasized, isInContainer: !!scrollRef, isEntering, isExiting})}
161
+ style={{insetInlineEnd: `calc(var(--insetEnd) + ${scrollbarWidth}px)`}}>
162
+ <div className={style({order: 1, marginStart: 'auto'})}>
163
+ <ActionButtonGroup
164
+ staticColor={isEmphasized ? 'auto' : undefined}
165
+ isQuiet
166
+ aria-label={stringFormatter.format('actionbar.actions')}>
167
+ {children}
168
+ </ActionButtonGroup>
169
+ </div>
170
+ <div className={style({order: 0, display: 'flex', alignItems: 'center', gap: 4})}>
171
+ <CloseButton
172
+ staticColor={isEmphasized ? 'auto' : undefined}
173
+ aria-label={stringFormatter.format('actionbar.clearSelection')}
174
+ onPress={() => onClearSelection?.()} />
175
+ <span className={style({font: 'ui', color: {default: 'neutral', isEmphasized: 'gray-25'}})({isEmphasized})}>
176
+ {lastCount === 'all'
177
+ ? stringFormatter.format('actionbar.selectedAll')
178
+ : stringFormatter.format('actionbar.selected', {count: lastCount})}
179
+ </span>
180
+ </div>
181
+ </div>
182
+ </FocusScope>
183
+ );
184
+ });
185
+
186
+ interface ActionBarContainerHookProps {
187
+ selectedKeys?: 'all' | Iterable<Key>,
188
+ defaultSelectedKeys?: 'all' | Iterable<Key>,
189
+ onSelectionChange?: (keys: Set<Key>) => void,
190
+ renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement,
191
+ scrollRef?: RefObject<HTMLElement | null>
192
+ }
193
+
194
+ export function useActionBarContainer(props: ActionBarContainerHookProps) {
195
+ let {renderActionBar, scrollRef} = props;
196
+ let [selectedKeys, setSelectedKeys] = useControlledState(props.selectedKeys, props.defaultSelectedKeys || new Set(), props.onSelectionChange);
197
+ let selectedKeysSet = useMemo(() => selectedKeys === 'all' ? selectedKeys as 'all' : new Set(selectedKeys), [selectedKeys]);
198
+ let actionBar = useMemo(() => renderActionBar?.(selectedKeysSet), [renderActionBar, selectedKeysSet]);
199
+ let selectedItemCount = selectedKeysSet === 'all' ? 'all' as const : selectedKeysSet.size;
200
+ let [actionBarHeight, setActionBarHeight] = useState(0);
201
+ let actionBarRef = useCallback((ref: DOMRefValue | null) => {
202
+ let actionBar = ref?.UNSAFE_getDOMNode();
203
+ if (actionBar) {
204
+ setActionBarHeight(actionBar.offsetHeight + 8);
205
+ } else {
206
+ setActionBarHeight(0);
207
+ }
208
+ }, []);
209
+
210
+ let actionBarContext = useMemo(() => ({
211
+ ref: actionBarRef,
212
+ scrollRef,
213
+ selectedItemCount,
214
+ onClearSelection: () => setSelectedKeys(new Set())
215
+ }), [scrollRef, actionBarRef, selectedItemCount, setSelectedKeys]);
216
+
217
+ let wrappedActionBar = useMemo(() => (
218
+ <ActionBarContext.Provider value={actionBarContext}>
219
+ {actionBar}
220
+ </ActionBarContext.Provider>
221
+ ), [actionBarContext, actionBar]);
222
+
223
+ return {
224
+ selectedKeys,
225
+ onSelectionChange: setSelectedKeys,
226
+ actionBar: wrappedActionBar,
227
+ actionBarHeight
228
+ };
229
+ }
@@ -17,7 +17,7 @@ import {ButtonProps, ButtonRenderProps, ContextValue, OverlayTriggerStateContext
17
17
  import {centerBaseline} from './CenterBaseline';
18
18
  import {createContext, forwardRef, ReactNode, useContext} from 'react';
19
19
  import {FocusableRef, FocusableRefValue} from '@react-types/shared';
20
- import {getAllowedOverrides, StyleProps} from './style-utils' with { type: 'macro' };
20
+ import {getAllowedOverrides, staticColor, StyleProps} from './style-utils' with { type: 'macro' };
21
21
  import {IconContext} from './Icon';
22
22
  import {pressScale} from './pressScale';
23
23
  import {SkeletonContext} from './Skeleton';
@@ -34,7 +34,7 @@ export interface ActionButtonStyleProps {
34
34
  */
35
35
  size?: 'XS' | 'S' | 'M' | 'L' | 'XL',
36
36
  /** The static color style to apply. Useful when the ActionButton appears over a color background. */
37
- staticColor?: 'black' | 'white',
37
+ staticColor?: 'black' | 'white' | 'auto',
38
38
  /** Whether the button should be displayed with a [quiet style](https://spectrum.adobe.com/page/action-button/#Quiet). */
39
39
  isQuiet?: boolean
40
40
  }
@@ -59,8 +59,9 @@ export interface ActionButtonProps extends Omit<ButtonProps, 'className' | 'styl
59
59
 
60
60
  // These styles handle both ActionButton and ToggleButton
61
61
  const iconOnly = ':has([slot=icon], [slot=avatar]):not(:has([data-rsp-slot=text]))';
62
- export const btnStyles = style<ButtonRenderProps & ActionButtonStyleProps & ToggleButtonStyleProps & ActionGroupItemStyleProps & {isInGroup: boolean}>({
62
+ export const btnStyles = style<ButtonRenderProps & ActionButtonStyleProps & ToggleButtonStyleProps & ActionGroupItemStyleProps & {isInGroup: boolean, isStaticColor: boolean}>({
63
63
  ...focusRing(),
64
+ ...staticColor(),
64
65
  display: 'flex',
65
66
  alignItems: 'center',
66
67
  justifyContent: 'center',
@@ -98,33 +99,17 @@ export const btnStyles = style<ButtonRenderProps & ActionButtonStyleProps & Togg
98
99
  isQuiet: 'transparent'
99
100
  }
100
101
  },
101
- staticColor: {
102
- white: {
103
- ...baseColor('transparent-white-100'),
104
- default: {
105
- default: 'transparent-white-100',
106
- isQuiet: 'transparent'
107
- },
108
- isSelected: {
109
- default: baseColor('transparent-white-800'),
110
- isDisabled: {
111
- default: 'transparent-white-100',
112
- isQuiet: 'transparent'
113
- }
114
- }
102
+ isStaticColor: {
103
+ ...baseColor('transparent-overlay-100'),
104
+ default: {
105
+ default: 'transparent-overlay-100',
106
+ isQuiet: 'transparent'
115
107
  },
116
- black: {
117
- ...baseColor('transparent-black-100'),
118
- default: {
119
- default: 'transparent-black-100',
108
+ isSelected: {
109
+ default: baseColor('transparent-overlay-800'),
110
+ isDisabled: {
111
+ default: 'transparent-overlay-100',
120
112
  isQuiet: 'transparent'
121
- },
122
- isSelected: {
123
- default: baseColor('transparent-black-800'),
124
- isDisabled: {
125
- default: 'transparent-black-100',
126
- isQuiet: 'transparent'
127
- }
128
113
  }
129
114
  }
130
115
  },
@@ -143,17 +128,10 @@ export const btnStyles = style<ButtonRenderProps & ActionButtonStyleProps & Togg
143
128
  isEmphasized: 'white'
144
129
  },
145
130
  isDisabled: 'disabled',
146
- staticColor: {
147
- white: {
148
- default: baseColor('transparent-white-800'),
149
- isSelected: 'black',
150
- isDisabled: 'transparent-white-400'
151
- },
152
- black: {
153
- default: baseColor('transparent-black-800'),
154
- isSelected: 'white',
155
- isDisabled: 'transparent-black-400'
156
- }
131
+ isStaticColor: {
132
+ default: baseColor('transparent-overlay-800'),
133
+ isSelected: 'auto',
134
+ isDisabled: 'transparent-overlay-400'
157
135
  },
158
136
  forcedColors: {
159
137
  default: 'ButtonText',
@@ -169,10 +147,7 @@ export const btnStyles = style<ButtonRenderProps & ActionButtonStyleProps & Togg
169
147
  },
170
148
  outlineColor: {
171
149
  default: 'focus-ring',
172
- staticColor: {
173
- white: 'white',
174
- black: 'black'
175
- },
150
+ isStaticColor: 'transparent-overlay-1000',
176
151
  forcedColors: 'Highlight'
177
152
  },
178
153
  borderStyle: 'none',
@@ -255,7 +230,11 @@ const avatarSize = {
255
230
 
256
231
  export const ActionButtonContext = createContext<ContextValue<ActionButtonProps, FocusableRefValue<HTMLButtonElement>>>(null);
257
232
 
258
- function ActionButton(props: ActionButtonProps, ref: FocusableRef<HTMLButtonElement>) {
233
+ /**
234
+ * ActionButtons allow users to perform an action.
235
+ * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.
236
+ */
237
+ export const ActionButton = forwardRef(function ActionButton(props: ActionButtonProps, ref: FocusableRef<HTMLButtonElement>) {
259
238
  [props, ref] = useSpectrumContextProps(props, ref, ActionButtonContext);
260
239
  props = useFormProps(props as any);
261
240
  let domRef = useFocusableRef(ref);
@@ -283,6 +262,7 @@ function ActionButton(props: ActionButtonProps, ref: FocusableRef<HTMLButtonElem
283
262
  // Retain hover styles when an overlay is open.
284
263
  isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,
285
264
  staticColor,
265
+ isStaticColor: !!staticColor,
286
266
  size,
287
267
  isQuiet,
288
268
  density,
@@ -307,11 +287,4 @@ function ActionButton(props: ActionButtonProps, ref: FocusableRef<HTMLButtonElem
307
287
  </Provider>
308
288
  </RACButton>
309
289
  );
310
- }
311
-
312
- /**
313
- * ActionButtons allow users to perform an action.
314
- * They’re used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren’t meant to draw a lot of attention.
315
- */
316
- let _ActionButton = forwardRef(ActionButton);
317
- export {_ActionButton as ActionButton};
290
+ });
@@ -10,13 +10,14 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
+ import {AriaLabelingProps} from '@react-types/shared';
13
14
  import {ContextValue, SlotProps, Toolbar} from 'react-aria-components';
14
15
  import {createContext, ForwardedRef, forwardRef, ReactNode} from 'react';
15
16
  import {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
16
17
  import {style} from '../style' with {type: 'macro'};
17
18
  import {useSpectrumContextProps} from './useSpectrumContextProps';
18
19
 
19
- export interface ActionButtonGroupProps extends UnsafeStyles, SlotProps {
20
+ export interface ActionButtonGroupProps extends AriaLabelingProps, UnsafeStyles, SlotProps {
20
21
  /** Spectrum-defined styles, returned by the `style()` macro. */
21
22
  styles?: StylesPropWithHeight,
22
23
  /** The children of the group. */
@@ -36,7 +37,7 @@ export interface ActionButtonGroupProps extends UnsafeStyles, SlotProps {
36
37
  /** Whether the buttons should divide the container width equally. */
37
38
  isJustified?: boolean,
38
39
  /** Whether the button should be displayed with an [emphasized style](https://spectrum.adobe.com/page/action-button/#Emphasis). */
39
- staticColor?: 'white' | 'black',
40
+ staticColor?: 'white' | 'black' | 'auto',
40
41
  /**
41
42
  * The axis the group should align with.
42
43
  * @default 'horizontal'
@@ -71,9 +72,12 @@ export const actionGroupStyle = style({
71
72
  }, getAllowedOverrides({height: true}));
72
73
 
73
74
 
74
- export const ActionButtonGroupContext = createContext<ContextValue<ActionButtonGroupProps, HTMLDivElement>>(null);
75
+ export const ActionButtonGroupContext = createContext<ContextValue<Partial<ActionButtonGroupProps>, HTMLDivElement>>(null);
75
76
 
76
- function ActionButtonGroup(props: ActionButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
77
+ /**
78
+ * An ActionButtonGroup is a grouping of related ActionButtons.
79
+ */
80
+ export const ActionButtonGroup = forwardRef(function ActionButtonGroup(props: ActionButtonGroupProps, ref: ForwardedRef<HTMLDivElement>) {
77
81
  [props, ref] = useSpectrumContextProps(props, ref, ActionButtonGroupContext);
78
82
  let {
79
83
  density = 'regular',
@@ -97,10 +101,4 @@ function ActionButtonGroup(props: ActionButtonGroupProps, ref: ForwardedRef<HTML
97
101
  </ActionButtonGroupContext.Provider>
98
102
  </Toolbar>
99
103
  );
100
- }
101
-
102
- /**
103
- * An ActionButtonGroup is a grouping of related ActionButtons.
104
- */
105
- const _ActionButtonGroup = forwardRef(ActionButtonGroup);
106
- export {_ActionButtonGroup as ActionButtonGroup};
104
+ });
@@ -34,7 +34,10 @@ export interface ActionMenuProps<T> extends
34
34
 
35
35
  export const ActionMenuContext = createContext<ContextValue<ActionMenuProps<any>, FocusableRefValue<HTMLButtonElement>>>(null);
36
36
 
37
- function ActionMenu<T extends object>(props: ActionMenuProps<T>, ref: FocusableRef<HTMLButtonElement>) {
37
+ /**
38
+ * ActionMenu combines an ActionButton with a Menu for simple "more actions" use cases.
39
+ */
40
+ export const ActionMenu = /*#__PURE__*/(forwardRef as forwardRefType)(function ActionMenu<T extends object>(props: ActionMenuProps<T>, ref: FocusableRef<HTMLButtonElement>) {
38
41
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
39
42
  [props, ref] = useSpectrumContextProps(props, ref, ActionMenuContext);
40
43
  let buttonProps = filterDOMProps(props, {labelable: true});
@@ -69,10 +72,4 @@ function ActionMenu<T extends object>(props: ActionMenuProps<T>, ref: FocusableR
69
72
  </Menu>
70
73
  </MenuTrigger>
71
74
  );
72
- }
73
-
74
- /**
75
- * ActionMenu combines an ActionButton with a Menu for simple "more actions" use cases.
76
- */
77
- let _ActionMenu = /*#__PURE__*/(forwardRef as forwardRefType)(ActionMenu);
78
- export {_ActionMenu as ActionMenu};
75
+ });
@@ -74,7 +74,10 @@ const icon = style({
74
74
  }
75
75
  });
76
76
 
77
- function AlertDialog(props: AlertDialogProps, ref: DOMRef) {
77
+ /**
78
+ * AlertDialogs are a specific type of Dialog. They display important information that users need to acknowledge.
79
+ */
80
+ export const AlertDialog = forwardRef(function AlertDialog(props: AlertDialogProps, ref: DOMRef) {
78
81
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
79
82
  let {
80
83
  autoFocusButton,
@@ -152,10 +155,4 @@ function AlertDialog(props: AlertDialogProps, ref: DOMRef) {
152
155
  )}
153
156
  </Dialog>
154
157
  );
155
- }
156
-
157
- /**
158
- * AlertDialogs are a specific type of Dialog. They display important information that users need to acknowledge.
159
- */
160
- let _AlertDialog = forwardRef(AlertDialog);
161
- export {_AlertDialog as AlertDialog};
158
+ });
package/src/Avatar.tsx CHANGED
@@ -55,7 +55,10 @@ const imageStyles = style({
55
55
 
56
56
  export const AvatarContext = createContext<ContextValue<AvatarProps, DOMRefValue<HTMLImageElement>>>(null);
57
57
 
58
- function Avatar(props: AvatarProps, ref: DOMRef<HTMLImageElement>) {
58
+ /**
59
+ * An avatar is a thumbnail representation of an entity, such as a user or an organization.
60
+ */
61
+ export const Avatar = forwardRef(function Avatar(props: AvatarProps, ref: DOMRef<HTMLImageElement>) {
59
62
  [props, ref] = useSpectrumContextProps(props, ref, AvatarContext);
60
63
  let domRef = useDOMRef(ref);
61
64
  let {
@@ -87,10 +90,4 @@ function Avatar(props: AvatarProps, ref: DOMRef<HTMLImageElement>) {
87
90
  styles={imageStyles({isOverBackground, isLarge}, props.styles)}
88
91
  src={src} />
89
92
  );
90
- }
91
-
92
- /**
93
- * An avatar is a thumbnail representation of an entity, such as a user or an organization.
94
- */
95
- let _Avatar = forwardRef(Avatar);
96
- export {_Avatar as Avatar};
93
+ });
@@ -65,7 +65,10 @@ const container = style({
65
65
  alignItems: 'center'
66
66
  }, getAllowedOverrides({width: false}));
67
67
 
68
- function AvatarGroup(props: AvatarGroupProps, ref: DOMRef<HTMLDivElement>) {
68
+ /**
69
+ * An avatar group is a grouping of avatars that are related to each other.
70
+ */
71
+ export const AvatarGroup = forwardRef(function AvatarGroup(props: AvatarGroupProps, ref: DOMRef<HTMLDivElement>) {
69
72
  [props, ref] = useSpectrumContextProps(props, ref, AvatarGroupContext);
70
73
  let domRef = useDOMRef(ref);
71
74
  let {children, label, size = 24, styles, UNSAFE_style, UNSAFE_className, ...otherProps} = props;
@@ -91,10 +94,4 @@ function AvatarGroup(props: AvatarGroupProps, ref: DOMRef<HTMLDivElement>) {
91
94
  </div>
92
95
  </AvatarContext.Provider>
93
96
  );
94
- }
95
-
96
- /**
97
- * An avatar group is a grouping of avatars that are related to each other.
98
- */
99
- let _AvatarGroup = forwardRef(AvatarGroup);
100
- export {_AvatarGroup as AvatarGroup};
97
+ });
package/src/Badge.tsx CHANGED
@@ -181,7 +181,10 @@ const badge = style<BadgeStyleProps>({
181
181
  }
182
182
  }, getAllowedOverrides());
183
183
 
184
- function Badge(props: BadgeProps, ref: DOMRef<HTMLDivElement>) {
184
+ /**
185
+ * Badges are used for showing a small amount of color-categorized metadata, ideal for getting a user's attention.
186
+ */
187
+ export const Badge = forwardRef(function Badge(props: BadgeProps, ref: DOMRef<HTMLDivElement>) {
185
188
  [props, ref] = useSpectrumContextProps(props, ref, BadgeContext);
186
189
  let {
187
190
  children,
@@ -218,10 +221,4 @@ function Badge(props: BadgeProps, ref: DOMRef<HTMLDivElement>) {
218
221
  </SkeletonWrapper>
219
222
  </Provider>
220
223
  );
221
- }
222
-
223
- /**
224
- * Badges are used for showing a small amount of color-categorized metadata, ideal for getting a user's attention.
225
- */
226
- let _Badge = forwardRef(Badge);
227
- export {_Badge as Badge};
224
+ });