@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/Divider.tsx CHANGED
@@ -13,7 +13,7 @@
13
13
  import {ContextValue, Separator as RACSeparator, SeparatorProps as RACSeparatorProps} from 'react-aria-components';
14
14
  import {createContext, forwardRef} from 'react';
15
15
  import {DOMRef, DOMRefValue} from '@react-types/shared';
16
- import {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
16
+ import {getAllowedOverrides, staticColor, StyleProps} from './style-utils' with {type: 'macro'};
17
17
  import {style} from '../style' with {type: 'macro'};
18
18
  import {useDOMRef} from '@react-spectrum/utils';
19
19
  import {useSpectrumContextProps} from './useSpectrumContextProps';
@@ -34,7 +34,7 @@ interface DividerSpectrumProps {
34
34
  */
35
35
  orientation?: 'horizontal' | 'vertical',
36
36
  /** The static color style to apply. Useful when the Divider appears over a color background. */
37
- staticColor?: 'white' | 'black'
37
+ staticColor?: 'white' | 'black' | 'auto'
38
38
  }
39
39
 
40
40
  // TODO: allow overriding height (only when orientation is vertical)??
@@ -42,25 +42,18 @@ export interface DividerProps extends DividerSpectrumProps, Omit<RACSeparatorPro
42
42
 
43
43
  export const DividerContext = createContext<ContextValue<DividerProps, DOMRefValue>>(null);
44
44
 
45
- export const divider = style<DividerSpectrumProps>({
45
+ export const divider = style<DividerSpectrumProps & {isStaticColor: boolean}>({
46
+ ...staticColor(),
46
47
  alignSelf: 'stretch',
47
48
  backgroundColor: {
48
49
  default: 'gray-200',
49
50
  size: {
50
51
  L: 'gray-800'
51
52
  },
52
- staticColor: {
53
- white: {
54
- default: 'transparent-white-200',
55
- size: {
56
- L: 'transparent-white-800'
57
- }
58
- },
59
- black: {
60
- default: 'transparent-black-200',
61
- size: {
62
- L: 'transparent-black-800'
63
- }
53
+ isStaticColor: {
54
+ default: 'transparent-overlay-200',
55
+ size: {
56
+ L: 'transparent-overlay-800'
64
57
  }
65
58
  },
66
59
  forcedColors: 'ButtonBorder'
@@ -93,7 +86,11 @@ export const divider = style<DividerSpectrumProps>({
93
86
  }
94
87
  }, getAllowedOverrides());
95
88
 
96
- function Divider(props: DividerProps, ref: DOMRef) {
89
+ /**
90
+ * Dividers bring clarity to a layout by grouping and dividing content in close proximity.
91
+ * They can also be used to establish rhythm and hierarchy.
92
+ */
93
+ export const Divider = /*#__PURE__*/ forwardRef(function Divider(props: DividerProps, ref: DOMRef) {
97
94
  [props, ref] = useSpectrumContextProps(props, ref, DividerContext);
98
95
  let domRef = useDOMRef(ref);
99
96
 
@@ -105,14 +102,8 @@ function Divider(props: DividerProps, ref: DOMRef) {
105
102
  className={(props.UNSAFE_className || '') + divider({
106
103
  size: props.size || 'M',
107
104
  orientation: props.orientation || 'horizontal',
108
- staticColor: props.staticColor
105
+ staticColor: props.staticColor,
106
+ isStaticColor: !!props.staticColor
109
107
  }, props.styles)} />
110
108
  );
111
- }
112
-
113
- /**
114
- * Dividers bring clarity to a layout by grouping and dividing content in close proximity.
115
- * They can also be used to establish rhythm and hierarchy.
116
- */
117
- let _Divider = /*#__PURE__*/ forwardRef(Divider);
118
- export {_Divider as Divider};
109
+ });
package/src/DropZone.tsx CHANGED
@@ -89,7 +89,10 @@ const banner = style({
89
89
  padding: '[calc((self(minHeight))/1.5)]'
90
90
  });
91
91
 
92
- function DropZone(props: DropZoneProps, ref: DOMRef<HTMLDivElement>) {
92
+ /**
93
+ * A drop zone is an area into which one or multiple objects can be dragged and dropped.
94
+ */
95
+ export const DropZone = /*#__PURE__*/ forwardRef(function DropZone(props: DropZoneProps, ref: DOMRef<HTMLDivElement>) {
93
96
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
94
97
  [props, ref] = useSpectrumContextProps(props, ref, DropZoneContext);
95
98
  let {
@@ -119,10 +122,4 @@ function DropZone(props: DropZoneProps, ref: DOMRef<HTMLDivElement>) {
119
122
  )}
120
123
  </RACDropZone>
121
124
  );
122
- }
123
-
124
- /**
125
- * A drop zone is an area into which one or multiple objects can be dragged and dropped.
126
- */
127
- let _DropZone = /*#__PURE__*/ forwardRef(DropZone);
128
- export {_DropZone as DropZone};
125
+ });
package/src/Field.tsx CHANGED
@@ -36,13 +36,13 @@ interface FieldLabelProps extends Omit<LabelProps, 'className' | 'style' | 'chil
36
36
  labelAlign?: Alignment,
37
37
  labelPosition?: 'top' | 'side',
38
38
  includeNecessityIndicatorInAccessibilityName?: boolean,
39
- staticColor?: 'white' | 'black',
39
+ staticColor?: 'white' | 'black' | 'auto',
40
40
  contextualHelp?: ReactNode,
41
41
  isQuiet?: boolean,
42
42
  children?: ReactNode
43
43
  }
44
44
 
45
- function FieldLabel(props: FieldLabelProps, ref: DOMRef<HTMLLabelElement>) {
45
+ export const FieldLabel = forwardRef(function FieldLabel(props: FieldLabelProps, ref: DOMRef<HTMLLabelElement>) {
46
46
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
47
47
  let {
48
48
  isDisabled,
@@ -98,7 +98,7 @@ function FieldLabel(props: FieldLabelProps, ref: DOMRef<HTMLLabelElement>) {
98
98
  {...labelProps}
99
99
  ref={domRef}
100
100
  style={UNSAFE_style}
101
- className={UNSAFE_className + mergeStyles(style(fieldLabel())({labelPosition, isDisabled, size, staticColor}), props.styles)}>
101
+ className={UNSAFE_className + mergeStyles(style(fieldLabel())({labelPosition, isDisabled, size, isStaticColor: !!staticColor}), props.styles)}>
102
102
  {props.children}
103
103
  {(isRequired || necessityIndicator === 'label') && (
104
104
  <span className={style({whiteSpace: 'nowrap'})}>
@@ -127,28 +127,27 @@ function FieldLabel(props: FieldLabelProps, ref: DOMRef<HTMLLabelElement>) {
127
127
  )}
128
128
  </Label>
129
129
  {contextualHelp && (
130
- <CenterBaseline
131
- styles={style({
132
- display: 'inline-flex',
133
- height: 0,
134
- marginStart: 4
135
- })}>
136
- <ContextualHelpContext.Provider
137
- value={{
138
- id: contextualHelpId,
139
- 'aria-labelledby': labelProps?.id ? `${labelProps.id} ${contextualHelpId}` : undefined,
140
- size: (size === 'L' || size === 'XL') ? 'S' : 'XS'
141
- }}>
142
- {contextualHelp}
143
- </ContextualHelpContext.Provider>
144
- </CenterBaseline>
130
+ <span className={style({whiteSpace: 'nowrap'})}>
131
+ &nbsp;
132
+ <CenterBaseline
133
+ styles={style({
134
+ display: 'inline-flex',
135
+ height: 0
136
+ })}>
137
+ <ContextualHelpContext.Provider
138
+ value={{
139
+ id: contextualHelpId,
140
+ 'aria-labelledby': labelProps?.id ? `${labelProps.id} ${contextualHelpId}` : undefined,
141
+ size: (size === 'L' || size === 'XL') ? 'S' : 'XS'
142
+ }}>
143
+ {contextualHelp}
144
+ </ContextualHelpContext.Provider>
145
+ </CenterBaseline>
146
+ </span>
145
147
  )}
146
148
  </div>
147
149
  );
148
- }
149
-
150
- let _FieldLabel = forwardRef(FieldLabel);
151
- export {_FieldLabel as FieldLabel};
150
+ });
152
151
 
153
152
  interface FieldGroupProps extends Omit<GroupProps, 'className' | 'style' | 'children'>, UnsafeStyles {
154
153
  size?: 'S' | 'M' | 'L' | 'XL',
@@ -193,7 +192,7 @@ const fieldGroupStyles = style({
193
192
  }
194
193
  });
195
194
 
196
- function FieldGroup(props: FieldGroupProps, ref: ForwardedRef<HTMLDivElement>) {
195
+ export const FieldGroup = forwardRef(function FieldGroup(props: FieldGroupProps, ref: ForwardedRef<HTMLDivElement>) {
197
196
  return (
198
197
  <Group
199
198
  ref={ref}
@@ -217,14 +216,11 @@ function FieldGroup(props: FieldGroupProps, ref: ForwardedRef<HTMLDivElement>) {
217
216
  props.styles
218
217
  )} />
219
218
  );
220
- }
221
-
222
- let _FieldGroup = forwardRef(FieldGroup);
223
- export {_FieldGroup as FieldGroup};
219
+ });
224
220
 
225
221
  export interface InputProps extends Omit<RACInputProps, 'className' | 'style'>, StyleProps {}
226
222
 
227
- function Input(props: InputProps, ref: ForwardedRef<HTMLInputElement>) {
223
+ export const Input = forwardRef(function Input(props: InputProps, ref: ForwardedRef<HTMLInputElement>) {
228
224
  let {UNSAFE_className = '', UNSAFE_style, styles, ...otherProps} = props;
229
225
  return (
230
226
  <RACInput
@@ -247,10 +243,7 @@ function Input(props: InputProps, ref: ForwardedRef<HTMLInputElement>) {
247
243
  truncate: true
248
244
  }), styles)} />
249
245
  );
250
- }
251
-
252
- let _Input = forwardRef(Input);
253
- export {_Input as Input};
246
+ });
254
247
 
255
248
  interface HelpTextProps extends FieldErrorProps {
256
249
  size?: 'S' | 'M' | 'L' | 'XL',
package/src/Form.tsx CHANGED
@@ -62,7 +62,10 @@ export function useFormProps<T extends FormStyleProps>(props: T): T {
62
62
  }, [ctx, props, isSkeleton]);
63
63
  }
64
64
 
65
- function Form(props: FormProps, ref: DOMRef<HTMLFormElement>) {
65
+ /**
66
+ * Forms allow users to enter data that can be submitted while providing alignment and styling for form fields.
67
+ */
68
+ export const Form = /*#__PURE__*/ forwardRef(function Form(props: FormProps, ref: DOMRef<HTMLFormElement>) {
66
69
  let {
67
70
  labelPosition = 'top',
68
71
  labelAlign,
@@ -114,10 +117,4 @@ function Form(props: FormProps, ref: DOMRef<HTMLFormElement>) {
114
117
  </FormContext.Provider>
115
118
  </RACForm>
116
119
  );
117
- }
118
-
119
- /**
120
- * Forms allow users to enter data that can be submitted while providing alignment and styling for form fields.
121
- */
122
- let _Form = /*#__PURE__*/ forwardRef(Form);
123
- export {_Form as Form};
120
+ });
@@ -117,7 +117,10 @@ export const dialogInner = style({
117
117
  overflow: 'auto'
118
118
  });
119
119
 
120
- function FullscreenDialog(props: FullscreenDialogProps, ref: DOMRef) {
120
+ /**
121
+ * Takeover dialogs are large types of dialogs. They use the totality of the screen and should be used for modal experiences with complex workflows.
122
+ */
123
+ export const FullscreenDialog = forwardRef(function FullscreenDialog(props: FullscreenDialogProps, ref: DOMRef) {
121
124
  let {variant = 'fullscreen', isKeyboardDismissDisabled} = props;
122
125
  let domRef = useDOMRef(ref);
123
126
 
@@ -145,11 +148,5 @@ function FullscreenDialog(props: FullscreenDialogProps, ref: DOMRef) {
145
148
  </RACDialog>
146
149
  </Modal>
147
150
  );
148
- }
149
-
150
- /**
151
- * Takeover dialogs are large types of dialogs. They use the totality of the screen and should be used for modal experiences with complex workflows.
152
- */
153
- let _FullscreenDialog = forwardRef(FullscreenDialog);
154
- export {_FullscreenDialog as FullscreenDialog};
151
+ });
155
152
 
@@ -157,7 +157,11 @@ interface IllustratedMessageContextProps extends Partial<S2SpectrumIllustratedMe
157
157
 
158
158
  export const IllustratedMessageContext = createContext<ContextValue<IllustratedMessageContextProps, DOMRefValue<HTMLDivElement>>>(null);
159
159
 
160
- function IllustratedMessage(props: S2SpectrumIllustratedMessageProps, ref: DOMRef<HTMLDivElement>) {
160
+ /**
161
+ * An IllustratedMessage displays an illustration and a message, usually
162
+ * for an empty state or an error page.
163
+ */
164
+ export const IllustratedMessage = /*#__PURE__*/ forwardRef(function IllustratedMessage(props: S2SpectrumIllustratedMessageProps, ref: DOMRef<HTMLDivElement>) {
161
165
  [props, ref] = useSpectrumContextProps(props, ref, IllustratedMessageContext);
162
166
  let domRef = useDOMRef(ref);
163
167
  let {
@@ -191,11 +195,4 @@ function IllustratedMessage(props: S2SpectrumIllustratedMessageProps, ref: DOMRe
191
195
  </Provider>
192
196
  </div>
193
197
  );
194
- }
195
-
196
- /**
197
- * An IllustratedMessage displays an illustration and a message, usually
198
- * for an empty state or an error page.
199
- */
200
- let _IllustratedMessage = /*#__PURE__*/ forwardRef(IllustratedMessage);
201
- export {_IllustratedMessage as IllustratedMessage};
198
+ });
package/src/Image.tsx CHANGED
@@ -77,7 +77,7 @@ function createState(src: string): State {
77
77
  startTime: Date.now(),
78
78
  loadTime: 0
79
79
  };
80
- }
80
+ }
81
81
 
82
82
  function reducer(state: State, action: Action): State {
83
83
  switch (action.type) {
@@ -130,7 +130,7 @@ const imgStyles = style({
130
130
  transitionDuration: 500
131
131
  });
132
132
 
133
- function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>) {
133
+ export const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>) {
134
134
  [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);
135
135
 
136
136
  let {
@@ -236,7 +236,4 @@ function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>) {
236
236
  )}
237
237
  </div>
238
238
  ), [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, src, alt, crossOrigin, decoding, loading, referrerPolicy, onLoad, onError, isRevealed, isTransitioning]);
239
- }
240
-
241
- const _Image = forwardRef(Image);
242
- export {_Image as Image};
239
+ });
@@ -60,7 +60,6 @@ const inlineAlert = style<InlineStylesProps & {isFocusVisible?: boolean}>({
60
60
  display: 'inline-block',
61
61
  position: 'relative',
62
62
  boxSizing: 'border-box',
63
- maxWidth: 320,
64
63
  padding: 24,
65
64
  borderRadius: 'lg',
66
65
  borderStyle: 'solid',
@@ -209,7 +208,11 @@ const content = style({
209
208
  }
210
209
  });
211
210
 
212
- function InlineAlert(props: InlineAlertProps, ref: DOMRef<HTMLDivElement>) {
211
+ /**
212
+ * Inline alerts display a non-modal message associated with objects in a view.
213
+ * These are often used in form validation, providing a place to aggregate feedback related to multiple fields.
214
+ */
215
+ export const InlineAlert = /*#__PURE__*/ forwardRef(function InlineAlert(props: InlineAlertProps, ref: DOMRef<HTMLDivElement>) {
213
216
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
214
217
  [props, ref] = useSpectrumContextProps(props, ref, InlineAlertContext);
215
218
  let {
@@ -267,11 +270,4 @@ function InlineAlert(props: InlineAlertProps, ref: DOMRef<HTMLDivElement>) {
267
270
  </div>
268
271
  </div>
269
272
  );
270
- }
271
-
272
- /**
273
- * Inline alerts display a non-modal message associated with objects in a view.
274
- * These are often used in form validation, providing a place to aggregate feedback related to multiple fields.
275
- */
276
- const _InlineAlert = /*#__PURE__*/ forwardRef(InlineAlert);
277
- export {_InlineAlert as InlineAlert};
273
+ });
package/src/Link.tsx CHANGED
@@ -14,7 +14,7 @@ import {ContextValue, LinkRenderProps, Link as RACLink, LinkProps as RACLinkProp
14
14
  import {createContext, forwardRef, ReactNode, useContext} from 'react';
15
15
  import {FocusableRef, FocusableRefValue} from '@react-types/shared';
16
16
  import {focusRing, style} from '../style' with {type: 'macro'};
17
- import {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
17
+ import {getAllowedOverrides, staticColor, StyleProps} from './style-utils' with {type: 'macro'};
18
18
  import {SkeletonContext, useSkeletonText} from './Skeleton';
19
19
  import {useFocusableRef} from '@react-spectrum/utils';
20
20
  import {useLayoutEffect} from '@react-aria/utils';
@@ -27,7 +27,7 @@ interface LinkStyleProps {
27
27
  */
28
28
  variant?: 'primary' | 'secondary',
29
29
  /** The static color style to apply. Useful when the link appears over a color background. */
30
- staticColor?: 'white' | 'black',
30
+ staticColor?: 'white' | 'black' | 'auto',
31
31
  /** Whether the link is on its own vs inside a longer string of text. */
32
32
  isStandalone?: boolean,
33
33
  /** Whether the link should be displayed with a quiet style. */
@@ -40,8 +40,9 @@ export interface LinkProps extends Omit<RACLinkProps, 'isDisabled' | 'className'
40
40
 
41
41
  export const LinkContext = createContext<ContextValue<LinkProps, FocusableRefValue<HTMLAnchorElement>>>(null);
42
42
 
43
- const link = style<LinkRenderProps & LinkStyleProps & {isSkeleton: boolean}>({
43
+ const link = style<LinkRenderProps & LinkStyleProps & {isSkeleton: boolean, isStaticColor: boolean}>({
44
44
  ...focusRing(),
45
+ ...staticColor(),
45
46
  borderRadius: 'sm',
46
47
  font: {
47
48
  isStandalone: 'ui'
@@ -51,10 +52,7 @@ const link = style<LinkRenderProps & LinkStyleProps & {isSkeleton: boolean}>({
51
52
  primary: 'accent',
52
53
  secondary: 'neutral' // TODO: should there be an option to inherit from the paragraph? What about hover states?
53
54
  },
54
- staticColor: {
55
- white: 'white',
56
- black: 'black'
57
- },
55
+ isStaticColor: 'transparent-overlay-1000',
58
56
  forcedColors: 'LinkText'
59
57
  },
60
58
  transition: 'default',
@@ -74,16 +72,17 @@ const link = style<LinkRenderProps & LinkStyleProps & {isSkeleton: boolean}>({
74
72
  },
75
73
  outlineColor: {
76
74
  default: 'focus-ring',
77
- staticColor: {
78
- white: 'white',
79
- black: 'black'
80
- },
75
+ isStaticColor: 'transparent-overlay-1000',
81
76
  forcedColors: 'Highlight'
82
77
  },
83
78
  disableTapHighlight: true
84
79
  }, getAllowedOverrides());
85
80
 
86
- function Link(props: LinkProps, ref: FocusableRef<HTMLAnchorElement>) {
81
+ /**
82
+ * Links allow users to navigate to a different location.
83
+ * They can be presented inline inside a paragraph or as standalone text.
84
+ */
85
+ export const Link = /*#__PURE__*/ forwardRef(function Link(props: LinkProps, ref: FocusableRef<HTMLAnchorElement>) {
87
86
  [props, ref] = useSpectrumContextProps(props, ref, LinkContext);
88
87
  let {variant = 'primary', staticColor, isQuiet, isStandalone, UNSAFE_style, UNSAFE_className = '', styles, children} = props;
89
88
 
@@ -103,15 +102,8 @@ function Link(props: LinkProps, ref: FocusableRef<HTMLAnchorElement>) {
103
102
  {...props}
104
103
  ref={domRef}
105
104
  style={UNSAFE_style}
106
- className={renderProps => UNSAFE_className + link({...renderProps, variant, staticColor, isQuiet, isStandalone, isSkeleton}, styles)}>
105
+ className={renderProps => UNSAFE_className + link({...renderProps, variant, staticColor, isStaticColor: !!staticColor, isQuiet, isStandalone, isSkeleton}, styles)}>
107
106
  {children}
108
107
  </RACLink>
109
108
  );
110
- }
111
-
112
- /**
113
- * Links allow users to navigate to a different location.
114
- * They can be presented inline inside a paragraph or as standalone text.
115
- */
116
- const _Link = /*#__PURE__*/ forwardRef(Link);
117
- export {_Link as Link};
109
+ });
package/src/Menu.tsx CHANGED
@@ -32,9 +32,9 @@ import {centerBaseline} from './CenterBaseline';
32
32
  import {centerPadding, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
33
33
  import CheckmarkIcon from '../ui-icons/Checkmark';
34
34
  import ChevronRightIcon from '../ui-icons/Chevron';
35
- import {createContext, forwardRef, JSX, ReactNode, useContext, useRef} from 'react';
35
+ import {createContext, forwardRef, JSX, ReactNode, useContext, useRef, useState} from 'react';
36
36
  import {divider} from './Divider';
37
- import {DOMRef, DOMRefValue} from '@react-types/shared';
37
+ import {DOMRef, DOMRefValue, PressEvent} from '@react-types/shared';
38
38
  import {forwardRefType} from './types';
39
39
  import {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';
40
40
  import {IconContext} from './Icon'; // chevron right removed??
@@ -45,6 +45,7 @@ import {Placement, useLocale} from 'react-aria';
45
45
  import {PopoverBase} from './Popover';
46
46
  import {PressResponder} from '@react-aria/interactions';
47
47
  import {pressScale} from './pressScale';
48
+ import {useGlobalListeners} from '@react-aria/utils';
48
49
  import {useSpectrumContextProps} from './useSpectrumContextProps';
49
50
  // viewbox on LinkOut is super weird just because i copied the icon from designs...
50
51
  // need to strip id's from icons
@@ -80,22 +81,26 @@ export interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style
80
81
  /**
81
82
  * The contents of the collection.
82
83
  */
83
- children?: ReactNode | ((item: T) => ReactNode)
84
+ children?: ReactNode | ((item: T) => ReactNode),
85
+ /** Hides the default link out icons on menu items that open links in a new tab. */
86
+ hideLinkOutIcon?: boolean
84
87
  }
85
88
 
86
89
  export const MenuContext = createContext<ContextValue<MenuProps<any>, DOMRefValue<HTMLDivElement>>>(null);
87
90
 
91
+ const menuItemGrid = {
92
+ size: {
93
+ S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],
94
+ M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],
95
+ L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],
96
+ XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]
97
+ }
98
+ } as const;
99
+
88
100
  export let menu = style({
89
101
  outlineStyle: 'none',
90
102
  display: 'grid',
91
- gridTemplateColumns: {
92
- size: {
93
- S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],
94
- M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],
95
- L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],
96
- XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]
97
- }
98
- },
103
+ gridTemplateColumns: menuItemGrid,
99
104
  boxSizing: 'border-box',
100
105
  maxHeight: '[inherit]',
101
106
  overflow: {
@@ -120,7 +125,7 @@ export let section = style({
120
125
  '. checkmark icon label value keyboard descriptor .',
121
126
  '. . . description . . . .'
122
127
  ],
123
- gridTemplateColumns: 'subgrid'
128
+ gridTemplateColumns: menuItemGrid
124
129
  });
125
130
 
126
131
  export let sectionHeader = style<{size?: 'S' | 'M' | 'L' | 'XL'}>({
@@ -309,10 +314,18 @@ let descriptor = style({
309
314
  }
310
315
  });
311
316
 
312
- let InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean}>({size: 'M', isSubmenu: false});
317
+ let InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean, hideLinkOutIcon: boolean}>({
318
+ size: 'M',
319
+ isSubmenu: false,
320
+ hideLinkOutIcon: false
321
+ });
322
+
313
323
  let InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);
314
324
 
315
- function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {
325
+ /**
326
+ * Menus display a list of actions or options that a user can choose.
327
+ */
328
+ export const Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {
316
329
  [props, ref] = useSpectrumContextProps(props, ref, MenuContext);
317
330
  let {isSubmenu, size: ctxSize} = useContext(InternalMenuContext);
318
331
  let {
@@ -320,7 +333,8 @@ function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>
320
333
  size = ctxSize,
321
334
  UNSAFE_style,
322
335
  UNSAFE_className,
323
- styles
336
+ styles,
337
+ hideLinkOutIcon = false
324
338
  } = props;
325
339
  let ctx = useContext(InternalMenuTriggerContext);
326
340
  let {align = 'start', direction = 'bottom', shouldFlip} = ctx ?? {};
@@ -345,7 +359,7 @@ function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>
345
359
  }
346
360
 
347
361
  let content = (
348
- <InternalMenuContext.Provider value={{size, isSubmenu: true}}>
362
+ <InternalMenuContext.Provider value={{size, isSubmenu: true, hideLinkOutIcon}}>
349
363
  <Provider
350
364
  values={[
351
365
  [HeaderContext, {styles: sectionHeader({size})}],
@@ -386,13 +400,7 @@ function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>
386
400
  }
387
401
 
388
402
  return content;
389
- }
390
-
391
- /**
392
- * Menus display a list of actions or options that a user can choose.
393
- */
394
- let _Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(Menu);
395
- export {_Menu as Menu};
403
+ });
396
404
 
397
405
  export function Divider(props: SeparatorProps) {
398
406
  return (
@@ -402,7 +410,7 @@ export function Divider(props: SeparatorProps) {
402
410
  divider({
403
411
  size: 'M',
404
412
  orientation: 'horizontal',
405
- staticColor: undefined
413
+ isStaticColor: false
406
414
  }), style({
407
415
  display: {
408
416
  default: 'grid',
@@ -419,11 +427,12 @@ export function Divider(props: SeparatorProps) {
419
427
  export interface MenuSectionProps<T extends object> extends AriaMenuSectionProps<T> {}
420
428
  export function MenuSection<T extends object>(props: MenuSectionProps<T>) {
421
429
  // remember, context doesn't work if it's around Section nor inside
430
+ let {size} = useContext(InternalMenuContext);
422
431
  return (
423
432
  <>
424
433
  <AriaMenuSection
425
434
  {...props}
426
- className={section}>
435
+ className={section({size})}>
427
436
  {props.children}
428
437
  </AriaMenuSection>
429
438
  <Divider />
@@ -456,7 +465,7 @@ export function MenuItem(props: MenuItemProps) {
456
465
  let ref = useRef(null);
457
466
  let isLink = props.href != null;
458
467
  let isLinkOut = isLink && props.target === '_blank';
459
- let {size} = useContext(InternalMenuContext);
468
+ let {size, hideLinkOutIcon} = useContext(InternalMenuContext);
460
469
  let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);
461
470
  let {direction} = useLocale();
462
471
  return (
@@ -489,20 +498,32 @@ export function MenuItem(props: MenuItemProps) {
489
498
  [KeyboardContext, {styles: keyboard({size, isDisabled: renderProps.isDisabled})}],
490
499
  [ImageContext, {styles: image({size})}]
491
500
  ]}>
492
- {renderProps.selectionMode === 'single' && !isLink && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}
493
- {renderProps.selectionMode === 'multiple' && !isLink && !renderProps.hasSubmenu && (
501
+ {renderProps.selectionMode === 'single' && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}
502
+ {renderProps.selectionMode === 'multiple' && !renderProps.hasSubmenu && (
494
503
  <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>
495
504
  <CheckmarkIcon size={size} className={iconStyles} />
496
505
  </div>
497
506
  )}
498
507
  {typeof children === 'string' ? <Text slot="label">{children}</Text> : children}
499
- {isLinkOut && <LinkOutIcon size={linkIconSize[size]} className={descriptor} />}
508
+ {isLinkOut && !hideLinkOutIcon && (
509
+ <div slot="descriptor" className={descriptor}>
510
+ <LinkOutIcon
511
+ size={linkIconSize[size]}
512
+ className={style({
513
+ scaleX: {
514
+ direction: {
515
+ rtl: -1
516
+ }
517
+ }
518
+ })({direction})} />
519
+ </div>
520
+ )}
500
521
  {renderProps.hasSubmenu && (
501
522
  <div slot="descriptor" className={descriptor}>
502
523
  <ChevronRightIcon
503
524
  size={size}
504
525
  className={style({
505
- scale: {
526
+ scaleX: {
506
527
  direction: {
507
528
  rtl: -1
508
529
  }
@@ -523,6 +544,23 @@ export function MenuItem(props: MenuItemProps) {
523
544
  * linking the Menu's open state with the trigger's press state.
524
545
  */
525
546
  function MenuTrigger(props: MenuTriggerProps) {
547
+ // RAC sets isPressed via PressResponder when the menu is open.
548
+ // We don't want press scaling to appear to get "stuck", so override this.
549
+ // For mouse interactions, menus open on press start. When the popover underlay appears
550
+ // it covers the trigger button, causing onPressEnd to fire immediately and no press scaling
551
+ // to occur. We override this by listening for pointerup on the document ourselves.
552
+ let [isPressed, setPressed] = useState(false);
553
+ let {addGlobalListener} = useGlobalListeners();
554
+ let onPressStart = (e: PressEvent) => {
555
+ if (e.pointerType !== 'mouse') {
556
+ return;
557
+ }
558
+ setPressed(true);
559
+ addGlobalListener(document, 'pointerup', () => {
560
+ setPressed(false);
561
+ }, {once: true, capture: true});
562
+ };
563
+
526
564
  return (
527
565
  <InternalMenuTriggerContext.Provider
528
566
  value={{
@@ -531,9 +569,7 @@ function MenuTrigger(props: MenuTriggerProps) {
531
569
  shouldFlip: props.shouldFlip
532
570
  }}>
533
571
  <AriaMenuTrigger {...props}>
534
- {/* RAC sets isPressed via PressResponder when the menu is open.
535
- We don't want press scaling to appear to get "stuck", so override this. */}
536
- <PressResponder isPressed={false}>
572
+ <PressResponder onPressStart={onPressStart} isPressed={isPressed}>
537
573
  {props.children}
538
574
  </PressResponder>
539
575
  </AriaMenuTrigger>