@react-spectrum/s2 0.11.2 → 0.12.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 (573) hide show
  1. package/dist/Accordion.cjs +3 -3
  2. package/dist/Accordion.css +2 -2
  3. package/dist/Accordion.mjs +3 -3
  4. package/dist/ActionBar.cjs +61 -62
  5. package/dist/ActionBar.cjs.map +1 -1
  6. package/dist/ActionBar.css +62 -66
  7. package/dist/ActionBar.css.map +1 -1
  8. package/dist/ActionBar.mjs +61 -62
  9. package/dist/ActionBar.mjs.map +1 -1
  10. package/dist/ActionButton.cjs +356 -250
  11. package/dist/ActionButton.cjs.map +1 -1
  12. package/dist/ActionButton.css +208 -144
  13. package/dist/ActionButton.css.map +1 -1
  14. package/dist/ActionButton.mjs +357 -251
  15. package/dist/ActionButton.mjs.map +1 -1
  16. package/dist/ActionButtonGroup.cjs +16 -16
  17. package/dist/ActionButtonGroup.css +9 -9
  18. package/dist/ActionButtonGroup.mjs +16 -16
  19. package/dist/Add.cjs +10 -10
  20. package/dist/Add.css +6 -6
  21. package/dist/Add.mjs +10 -10
  22. package/dist/AlertDialog.cjs +3 -3
  23. package/dist/AlertDialog.css +3 -3
  24. package/dist/AlertDialog.mjs +3 -3
  25. package/dist/Asterisk.cjs +6 -6
  26. package/dist/Asterisk.css +4 -4
  27. package/dist/Asterisk.mjs +6 -6
  28. package/dist/Avatar.cjs +20 -16
  29. package/dist/Avatar.cjs.map +1 -1
  30. package/dist/Avatar.css +22 -14
  31. package/dist/Avatar.css.map +1 -1
  32. package/dist/Avatar.mjs +20 -16
  33. package/dist/Avatar.mjs.map +1 -1
  34. package/dist/AvatarGroup.cjs +135 -135
  35. package/dist/AvatarGroup.css +33 -33
  36. package/dist/AvatarGroup.mjs +135 -135
  37. package/dist/Badge.cjs +207 -207
  38. package/dist/Badge.css +127 -127
  39. package/dist/Badge.mjs +207 -207
  40. package/dist/Breadcrumbs.cjs +255 -255
  41. package/dist/Breadcrumbs.css +109 -109
  42. package/dist/Breadcrumbs.mjs +255 -255
  43. package/dist/Button.cjs +356 -354
  44. package/dist/Button.cjs.map +1 -1
  45. package/dist/Button.css +179 -179
  46. package/dist/Button.css.map +1 -1
  47. package/dist/Button.mjs +357 -356
  48. package/dist/Button.mjs.map +1 -1
  49. package/dist/ButtonGroup.cjs +21 -21
  50. package/dist/ButtonGroup.css +15 -15
  51. package/dist/ButtonGroup.mjs +21 -21
  52. package/dist/Calendar.cjs +127 -127
  53. package/dist/Calendar.cjs.map +1 -1
  54. package/dist/Calendar.css +134 -134
  55. package/dist/Calendar.css.map +1 -1
  56. package/dist/Calendar.mjs +127 -127
  57. package/dist/Calendar.mjs.map +1 -1
  58. package/dist/Card.cjs +335 -311
  59. package/dist/Card.cjs.map +1 -1
  60. package/dist/Card.css +213 -213
  61. package/dist/Card.css.map +1 -1
  62. package/dist/Card.mjs +335 -311
  63. package/dist/Card.mjs.map +1 -1
  64. package/dist/CardView.cjs +25 -19
  65. package/dist/CardView.cjs.map +1 -1
  66. package/dist/CardView.css +16 -16
  67. package/dist/CardView.css.map +1 -1
  68. package/dist/CardView.mjs +26 -20
  69. package/dist/CardView.mjs.map +1 -1
  70. package/dist/CenterBaseline.cjs +1 -1
  71. package/dist/CenterBaseline.css +2 -2
  72. package/dist/CenterBaseline.mjs +1 -1
  73. package/dist/Checkbox.cjs +171 -171
  74. package/dist/Checkbox.css +92 -92
  75. package/dist/Checkbox.mjs +171 -171
  76. package/dist/CheckboxGroup.cjs +46 -46
  77. package/dist/CheckboxGroup.css +38 -38
  78. package/dist/CheckboxGroup.mjs +46 -46
  79. package/dist/Checkmark.cjs +12 -12
  80. package/dist/Checkmark.css +8 -8
  81. package/dist/Checkmark.mjs +12 -12
  82. package/dist/Chevron.cjs +12 -12
  83. package/dist/Chevron.css +10 -10
  84. package/dist/Chevron.mjs +12 -12
  85. package/dist/ClearButton.cjs +29 -29
  86. package/dist/ClearButton.css +29 -29
  87. package/dist/ClearButton.mjs +29 -29
  88. package/dist/CloseButton.cjs +55 -55
  89. package/dist/CloseButton.css +46 -46
  90. package/dist/CloseButton.mjs +55 -55
  91. package/dist/ColorArea.cjs +25 -18
  92. package/dist/ColorArea.cjs.map +1 -1
  93. package/dist/ColorArea.css +16 -16
  94. package/dist/ColorArea.css.map +1 -1
  95. package/dist/ColorArea.mjs +26 -19
  96. package/dist/ColorArea.mjs.map +1 -1
  97. package/dist/ColorField.cjs +33 -33
  98. package/dist/ColorField.cjs.map +1 -1
  99. package/dist/ColorField.css +28 -28
  100. package/dist/ColorField.css.map +1 -1
  101. package/dist/ColorField.mjs +33 -33
  102. package/dist/ColorField.mjs.map +1 -1
  103. package/dist/ColorHandle.cjs +27 -27
  104. package/dist/ColorHandle.css +43 -43
  105. package/dist/ColorHandle.mjs +27 -27
  106. package/dist/ColorSlider.cjs +122 -121
  107. package/dist/ColorSlider.cjs.map +1 -1
  108. package/dist/ColorSlider.css +54 -54
  109. package/dist/ColorSlider.css.map +1 -1
  110. package/dist/ColorSlider.mjs +122 -121
  111. package/dist/ColorSlider.mjs.map +1 -1
  112. package/dist/ColorSwatch.cjs +30 -30
  113. package/dist/ColorSwatch.css +29 -29
  114. package/dist/ColorSwatch.mjs +30 -30
  115. package/dist/ColorSwatchPicker.cjs +28 -28
  116. package/dist/ColorSwatchPicker.css +46 -46
  117. package/dist/ColorSwatchPicker.mjs +28 -28
  118. package/dist/ColorWheel.cjs +26 -26
  119. package/dist/ColorWheel.css +17 -17
  120. package/dist/ColorWheel.mjs +26 -26
  121. package/dist/ComboBox.cjs +474 -452
  122. package/dist/ComboBox.cjs.map +1 -1
  123. package/dist/ComboBox.css +213 -185
  124. package/dist/ComboBox.css.map +1 -1
  125. package/dist/ComboBox.mjs +475 -453
  126. package/dist/ComboBox.mjs.map +1 -1
  127. package/dist/ContextualHelp.cjs +36 -33
  128. package/dist/ContextualHelp.cjs.map +1 -1
  129. package/dist/ContextualHelp.css +68 -60
  130. package/dist/ContextualHelp.css.map +1 -1
  131. package/dist/ContextualHelp.mjs +37 -34
  132. package/dist/ContextualHelp.mjs.map +1 -1
  133. package/dist/Cross.cjs +14 -14
  134. package/dist/Cross.css +10 -10
  135. package/dist/Cross.mjs +14 -14
  136. package/dist/CustomDialog.cjs +26 -26
  137. package/dist/CustomDialog.cjs.map +1 -1
  138. package/dist/CustomDialog.css +25 -25
  139. package/dist/CustomDialog.css.map +1 -1
  140. package/dist/CustomDialog.mjs +26 -26
  141. package/dist/CustomDialog.mjs.map +1 -1
  142. package/dist/Dash.cjs +10 -10
  143. package/dist/Dash.css +6 -6
  144. package/dist/Dash.mjs +10 -10
  145. package/dist/DateField.cjs +74 -74
  146. package/dist/DateField.cjs.map +1 -1
  147. package/dist/DateField.css +77 -77
  148. package/dist/DateField.css.map +1 -1
  149. package/dist/DateField.mjs +74 -74
  150. package/dist/DateField.mjs.map +1 -1
  151. package/dist/DatePicker.cjs +194 -191
  152. package/dist/DatePicker.cjs.map +1 -1
  153. package/dist/DatePicker.css +138 -126
  154. package/dist/DatePicker.css.map +1 -1
  155. package/dist/DatePicker.mjs +195 -192
  156. package/dist/DatePicker.mjs.map +1 -1
  157. package/dist/DateRangePicker.cjs +57 -57
  158. package/dist/DateRangePicker.cjs.map +1 -1
  159. package/dist/DateRangePicker.css +60 -60
  160. package/dist/DateRangePicker.css.map +1 -1
  161. package/dist/DateRangePicker.mjs +57 -57
  162. package/dist/DateRangePicker.mjs.map +1 -1
  163. package/dist/Dialog.cjs +17 -17
  164. package/dist/Dialog.cjs.map +1 -1
  165. package/dist/Dialog.css +88 -84
  166. package/dist/Dialog.css.map +1 -1
  167. package/dist/Dialog.mjs +17 -17
  168. package/dist/Dialog.mjs.map +1 -1
  169. package/dist/Disclosure.cjs +128 -147
  170. package/dist/Disclosure.cjs.map +1 -1
  171. package/dist/Disclosure.css +144 -112
  172. package/dist/Disclosure.css.map +1 -1
  173. package/dist/Disclosure.mjs +128 -147
  174. package/dist/Disclosure.mjs.map +1 -1
  175. package/dist/Divider.cjs +26 -26
  176. package/dist/Divider.css +25 -25
  177. package/dist/Divider.mjs +26 -26
  178. package/dist/DropZone.cjs +63 -63
  179. package/dist/DropZone.cjs.map +1 -1
  180. package/dist/DropZone.css +58 -58
  181. package/dist/DropZone.css.map +1 -1
  182. package/dist/DropZone.mjs +63 -63
  183. package/dist/DropZone.mjs.map +1 -1
  184. package/dist/Field.cjs +370 -370
  185. package/dist/Field.cjs.map +1 -1
  186. package/dist/Field.css +146 -142
  187. package/dist/Field.css.map +1 -1
  188. package/dist/Field.mjs +370 -370
  189. package/dist/Field.mjs.map +1 -1
  190. package/dist/Form.cjs +10 -10
  191. package/dist/Form.css +9 -9
  192. package/dist/Form.mjs +10 -10
  193. package/dist/FullscreenDialog.cjs +5 -5
  194. package/dist/FullscreenDialog.cjs.map +1 -1
  195. package/dist/FullscreenDialog.css +93 -93
  196. package/dist/FullscreenDialog.css.map +1 -1
  197. package/dist/FullscreenDialog.mjs +5 -5
  198. package/dist/FullscreenDialog.mjs.map +1 -1
  199. package/dist/IllustratedMessage.cjs +257 -257
  200. package/dist/IllustratedMessage.css +78 -78
  201. package/dist/IllustratedMessage.mjs +257 -257
  202. package/dist/Image.cjs +25 -17
  203. package/dist/Image.cjs.map +1 -1
  204. package/dist/Image.css +14 -14
  205. package/dist/Image.css.map +1 -1
  206. package/dist/Image.mjs +25 -17
  207. package/dist/Image.mjs.map +1 -1
  208. package/dist/InlineAlert.cjs +138 -153
  209. package/dist/InlineAlert.cjs.map +1 -1
  210. package/dist/InlineAlert.css +82 -151
  211. package/dist/InlineAlert.css.map +1 -1
  212. package/dist/InlineAlert.mjs +138 -153
  213. package/dist/InlineAlert.mjs.map +1 -1
  214. package/dist/Link.cjs +55 -55
  215. package/dist/Link.css +46 -46
  216. package/dist/Link.mjs +55 -55
  217. package/dist/LinkOut.cjs +8 -8
  218. package/dist/LinkOut.css +8 -8
  219. package/dist/LinkOut.mjs +8 -8
  220. package/dist/Menu.cjs +529 -501
  221. package/dist/Menu.cjs.map +1 -1
  222. package/dist/Menu.css +195 -191
  223. package/dist/Menu.css.map +1 -1
  224. package/dist/Menu.mjs +529 -502
  225. package/dist/Menu.mjs.map +1 -1
  226. package/dist/Meter.cjs +164 -164
  227. package/dist/Meter.css +93 -93
  228. package/dist/Meter.mjs +164 -164
  229. package/dist/Modal.cjs +90 -70
  230. package/dist/Modal.cjs.map +1 -1
  231. package/dist/Modal.css +76 -60
  232. package/dist/Modal.css.map +1 -1
  233. package/dist/Modal.mjs +90 -70
  234. package/dist/Modal.mjs.map +1 -1
  235. package/dist/NotificationBadge.cjs +59 -59
  236. package/dist/NotificationBadge.css +51 -51
  237. package/dist/NotificationBadge.mjs +59 -59
  238. package/dist/NumberField.cjs +116 -116
  239. package/dist/NumberField.cjs.map +1 -1
  240. package/dist/NumberField.css +100 -100
  241. package/dist/NumberField.css.map +1 -1
  242. package/dist/NumberField.mjs +116 -116
  243. package/dist/NumberField.mjs.map +1 -1
  244. package/dist/Picker.cjs +424 -349
  245. package/dist/Picker.cjs.map +1 -1
  246. package/dist/Picker.css +200 -180
  247. package/dist/Picker.css.map +1 -1
  248. package/dist/Picker.mjs +428 -353
  249. package/dist/Picker.mjs.map +1 -1
  250. package/dist/Popover.cjs +120 -116
  251. package/dist/Popover.cjs.map +1 -1
  252. package/dist/Popover.css +86 -82
  253. package/dist/Popover.css.map +1 -1
  254. package/dist/Popover.mjs +121 -118
  255. package/dist/Popover.mjs.map +1 -1
  256. package/dist/ProgressBar.cjs +174 -174
  257. package/dist/ProgressBar.css +101 -101
  258. package/dist/ProgressBar.mjs +174 -174
  259. package/dist/ProgressCircle.cjs +32 -32
  260. package/dist/ProgressCircle.css +24 -24
  261. package/dist/ProgressCircle.mjs +32 -32
  262. package/dist/Provider.cjs +11 -11
  263. package/dist/Provider.cjs.map +1 -1
  264. package/dist/Provider.css +13 -13
  265. package/dist/Provider.css.map +1 -1
  266. package/dist/Provider.mjs +11 -11
  267. package/dist/Provider.mjs.map +1 -1
  268. package/dist/Radio.cjs +155 -155
  269. package/dist/Radio.css +79 -79
  270. package/dist/Radio.mjs +155 -155
  271. package/dist/RadioGroup.cjs +43 -43
  272. package/dist/RadioGroup.css +38 -38
  273. package/dist/RadioGroup.mjs +43 -43
  274. package/dist/RangeCalendar.cjs +8 -8
  275. package/dist/RangeCalendar.cjs.map +1 -1
  276. package/dist/RangeCalendar.css +10 -10
  277. package/dist/RangeCalendar.css.map +1 -1
  278. package/dist/RangeCalendar.mjs +8 -8
  279. package/dist/RangeCalendar.mjs.map +1 -1
  280. package/dist/RangeSlider.cjs.map +1 -1
  281. package/dist/RangeSlider.mjs.map +1 -1
  282. package/dist/SearchField.cjs +43 -43
  283. package/dist/SearchField.cjs.map +1 -1
  284. package/dist/SearchField.css +46 -46
  285. package/dist/SearchField.css.map +1 -1
  286. package/dist/SearchField.mjs +43 -43
  287. package/dist/SearchField.mjs.map +1 -1
  288. package/dist/SegmentedControl.cjs +193 -224
  289. package/dist/SegmentedControl.cjs.map +1 -1
  290. package/dist/SegmentedControl.css +146 -118
  291. package/dist/SegmentedControl.css.map +1 -1
  292. package/dist/SegmentedControl.mjs +196 -227
  293. package/dist/SegmentedControl.mjs.map +1 -1
  294. package/dist/SelectBoxGroup.cjs +161 -159
  295. package/dist/SelectBoxGroup.cjs.map +1 -1
  296. package/dist/SelectBoxGroup.css +123 -123
  297. package/dist/SelectBoxGroup.css.map +1 -1
  298. package/dist/SelectBoxGroup.mjs +161 -159
  299. package/dist/SelectBoxGroup.mjs.map +1 -1
  300. package/dist/Slider.cjs +300 -300
  301. package/dist/Slider.css +151 -151
  302. package/dist/Slider.mjs +300 -300
  303. package/dist/StatusLight.cjs +126 -126
  304. package/dist/StatusLight.css +61 -61
  305. package/dist/StatusLight.mjs +126 -126
  306. package/dist/Switch.cjs +163 -163
  307. package/dist/Switch.css +74 -74
  308. package/dist/Switch.mjs +163 -163
  309. package/dist/TableView.cjs +340 -328
  310. package/dist/TableView.cjs.map +1 -1
  311. package/dist/TableView.css +176 -172
  312. package/dist/TableView.css.map +1 -1
  313. package/dist/TableView.mjs +340 -328
  314. package/dist/TableView.mjs.map +1 -1
  315. package/dist/Tabs.cjs +150 -190
  316. package/dist/Tabs.cjs.map +1 -1
  317. package/dist/Tabs.css +128 -100
  318. package/dist/Tabs.css.map +1 -1
  319. package/dist/Tabs.mjs +153 -193
  320. package/dist/Tabs.mjs.map +1 -1
  321. package/dist/TabsPicker.cjs +169 -161
  322. package/dist/TabsPicker.cjs.map +1 -1
  323. package/dist/TabsPicker.css +116 -124
  324. package/dist/TabsPicker.css.map +1 -1
  325. package/dist/TabsPicker.mjs +170 -162
  326. package/dist/TabsPicker.mjs.map +1 -1
  327. package/dist/TagGroup.cjs +226 -218
  328. package/dist/TagGroup.cjs.map +1 -1
  329. package/dist/TagGroup.css +147 -147
  330. package/dist/TagGroup.css.map +1 -1
  331. package/dist/TagGroup.mjs +226 -218
  332. package/dist/TagGroup.mjs.map +1 -1
  333. package/dist/TextField.cjs +65 -63
  334. package/dist/TextField.cjs.map +1 -1
  335. package/dist/TextField.css +58 -54
  336. package/dist/TextField.css.map +1 -1
  337. package/dist/TextField.mjs +65 -63
  338. package/dist/TextField.mjs.map +1 -1
  339. package/dist/TimeField.cjs +53 -53
  340. package/dist/TimeField.cjs.map +1 -1
  341. package/dist/TimeField.css +48 -48
  342. package/dist/TimeField.css.map +1 -1
  343. package/dist/TimeField.mjs +53 -53
  344. package/dist/TimeField.mjs.map +1 -1
  345. package/dist/Toast.cjs +120 -120
  346. package/dist/Toast.css +108 -108
  347. package/dist/Toast.mjs +120 -120
  348. package/dist/ToggleButton.cjs +3 -3
  349. package/dist/ToggleButton.css +12 -12
  350. package/dist/ToggleButton.mjs +3 -3
  351. package/dist/Tooltip.cjs +84 -83
  352. package/dist/Tooltip.cjs.map +1 -1
  353. package/dist/Tooltip.css +74 -70
  354. package/dist/Tooltip.css.map +1 -1
  355. package/dist/Tooltip.mjs +84 -83
  356. package/dist/Tooltip.mjs.map +1 -1
  357. package/dist/TreeView.cjs +150 -148
  358. package/dist/TreeView.cjs.map +1 -1
  359. package/dist/TreeView.css +147 -147
  360. package/dist/TreeView.css.map +1 -1
  361. package/dist/TreeView.mjs +151 -149
  362. package/dist/TreeView.mjs.map +1 -1
  363. package/dist/ar-AE.cjs +5 -0
  364. package/dist/ar-AE.cjs.map +1 -1
  365. package/dist/ar-AE.mjs +5 -0
  366. package/dist/ar-AE.mjs.map +1 -1
  367. package/dist/bg-BG.cjs +5 -0
  368. package/dist/bg-BG.cjs.map +1 -1
  369. package/dist/bg-BG.mjs +5 -0
  370. package/dist/bg-BG.mjs.map +1 -1
  371. package/dist/cs-CZ.cjs +5 -0
  372. package/dist/cs-CZ.cjs.map +1 -1
  373. package/dist/cs-CZ.mjs +5 -0
  374. package/dist/cs-CZ.mjs.map +1 -1
  375. package/dist/da-DK.cjs +5 -0
  376. package/dist/da-DK.cjs.map +1 -1
  377. package/dist/da-DK.mjs +5 -0
  378. package/dist/da-DK.mjs.map +1 -1
  379. package/dist/de-DE.cjs +5 -0
  380. package/dist/de-DE.cjs.map +1 -1
  381. package/dist/de-DE.mjs +5 -0
  382. package/dist/de-DE.mjs.map +1 -1
  383. package/dist/el-GR.cjs +5 -0
  384. package/dist/el-GR.cjs.map +1 -1
  385. package/dist/el-GR.mjs +5 -0
  386. package/dist/el-GR.mjs.map +1 -1
  387. package/dist/en-US.cjs +21 -16
  388. package/dist/en-US.cjs.map +1 -1
  389. package/dist/en-US.mjs +21 -16
  390. package/dist/en-US.mjs.map +1 -1
  391. package/dist/es-ES.cjs +5 -0
  392. package/dist/es-ES.cjs.map +1 -1
  393. package/dist/es-ES.mjs +5 -0
  394. package/dist/es-ES.mjs.map +1 -1
  395. package/dist/et-EE.cjs +5 -0
  396. package/dist/et-EE.cjs.map +1 -1
  397. package/dist/et-EE.mjs +5 -0
  398. package/dist/et-EE.mjs.map +1 -1
  399. package/dist/fi-FI.cjs +5 -0
  400. package/dist/fi-FI.cjs.map +1 -1
  401. package/dist/fi-FI.mjs +5 -0
  402. package/dist/fi-FI.mjs.map +1 -1
  403. package/dist/fr-FR.cjs +5 -0
  404. package/dist/fr-FR.cjs.map +1 -1
  405. package/dist/fr-FR.mjs +5 -0
  406. package/dist/fr-FR.mjs.map +1 -1
  407. package/dist/he-IL.cjs +5 -0
  408. package/dist/he-IL.cjs.map +1 -1
  409. package/dist/he-IL.mjs +5 -0
  410. package/dist/he-IL.mjs.map +1 -1
  411. package/dist/hr-HR.cjs +5 -0
  412. package/dist/hr-HR.cjs.map +1 -1
  413. package/dist/hr-HR.mjs +5 -0
  414. package/dist/hr-HR.mjs.map +1 -1
  415. package/dist/hu-HU.cjs +5 -0
  416. package/dist/hu-HU.cjs.map +1 -1
  417. package/dist/hu-HU.mjs +5 -0
  418. package/dist/hu-HU.mjs.map +1 -1
  419. package/dist/it-IT.cjs +5 -0
  420. package/dist/it-IT.cjs.map +1 -1
  421. package/dist/it-IT.mjs +5 -0
  422. package/dist/it-IT.mjs.map +1 -1
  423. package/dist/ja-JP.cjs +5 -0
  424. package/dist/ja-JP.cjs.map +1 -1
  425. package/dist/ja-JP.mjs +5 -0
  426. package/dist/ja-JP.mjs.map +1 -1
  427. package/dist/ko-KR.cjs +5 -0
  428. package/dist/ko-KR.cjs.map +1 -1
  429. package/dist/ko-KR.mjs +5 -0
  430. package/dist/ko-KR.mjs.map +1 -1
  431. package/dist/lt-LT.cjs +5 -0
  432. package/dist/lt-LT.cjs.map +1 -1
  433. package/dist/lt-LT.mjs +5 -0
  434. package/dist/lt-LT.mjs.map +1 -1
  435. package/dist/lv-LV.cjs +5 -0
  436. package/dist/lv-LV.cjs.map +1 -1
  437. package/dist/lv-LV.mjs +5 -0
  438. package/dist/lv-LV.mjs.map +1 -1
  439. package/dist/main.cjs +2 -0
  440. package/dist/main.cjs.map +1 -1
  441. package/dist/module.mjs +3 -3
  442. package/dist/module.mjs.map +1 -1
  443. package/dist/nb-NO.cjs +5 -0
  444. package/dist/nb-NO.cjs.map +1 -1
  445. package/dist/nb-NO.mjs +5 -0
  446. package/dist/nb-NO.mjs.map +1 -1
  447. package/dist/nl-NL.cjs +5 -0
  448. package/dist/nl-NL.cjs.map +1 -1
  449. package/dist/nl-NL.mjs +5 -0
  450. package/dist/nl-NL.mjs.map +1 -1
  451. package/dist/pl-PL.cjs +5 -0
  452. package/dist/pl-PL.cjs.map +1 -1
  453. package/dist/pl-PL.mjs +5 -0
  454. package/dist/pl-PL.mjs.map +1 -1
  455. package/dist/pt-BR.cjs +5 -0
  456. package/dist/pt-BR.cjs.map +1 -1
  457. package/dist/pt-BR.mjs +5 -0
  458. package/dist/pt-BR.mjs.map +1 -1
  459. package/dist/pt-PT.cjs +5 -0
  460. package/dist/pt-PT.cjs.map +1 -1
  461. package/dist/pt-PT.mjs +5 -0
  462. package/dist/pt-PT.mjs.map +1 -1
  463. package/dist/ro-RO.cjs +5 -0
  464. package/dist/ro-RO.cjs.map +1 -1
  465. package/dist/ro-RO.mjs +5 -0
  466. package/dist/ro-RO.mjs.map +1 -1
  467. package/dist/ru-RU.cjs +5 -0
  468. package/dist/ru-RU.cjs.map +1 -1
  469. package/dist/ru-RU.mjs +5 -0
  470. package/dist/ru-RU.mjs.map +1 -1
  471. package/dist/sk-SK.cjs +5 -0
  472. package/dist/sk-SK.cjs.map +1 -1
  473. package/dist/sk-SK.mjs +5 -0
  474. package/dist/sk-SK.mjs.map +1 -1
  475. package/dist/sl-SI.cjs +5 -0
  476. package/dist/sl-SI.cjs.map +1 -1
  477. package/dist/sl-SI.mjs +5 -0
  478. package/dist/sl-SI.mjs.map +1 -1
  479. package/dist/sr-SP.cjs +5 -0
  480. package/dist/sr-SP.cjs.map +1 -1
  481. package/dist/sr-SP.mjs +5 -0
  482. package/dist/sr-SP.mjs.map +1 -1
  483. package/dist/sv-SE.cjs +5 -0
  484. package/dist/sv-SE.cjs.map +1 -1
  485. package/dist/sv-SE.mjs +5 -0
  486. package/dist/sv-SE.mjs.map +1 -1
  487. package/dist/tr-TR.cjs +5 -0
  488. package/dist/tr-TR.cjs.map +1 -1
  489. package/dist/tr-TR.mjs +5 -0
  490. package/dist/tr-TR.mjs.map +1 -1
  491. package/dist/types.d.ts +147 -87
  492. package/dist/types.d.ts.map +1 -1
  493. package/dist/uk-UA.cjs +5 -0
  494. package/dist/uk-UA.cjs.map +1 -1
  495. package/dist/uk-UA.mjs +5 -0
  496. package/dist/uk-UA.mjs.map +1 -1
  497. package/dist/zh-CN.cjs +5 -0
  498. package/dist/zh-CN.cjs.map +1 -1
  499. package/dist/zh-CN.mjs +5 -0
  500. package/dist/zh-CN.mjs.map +1 -1
  501. package/dist/zh-TW.cjs +5 -0
  502. package/dist/zh-TW.cjs.map +1 -1
  503. package/dist/zh-TW.mjs +5 -0
  504. package/dist/zh-TW.mjs.map +1 -1
  505. package/icons/Icon.cjs +10 -10
  506. package/icons/Icon.css +9 -9
  507. package/icons/Icon.mjs +10 -10
  508. package/icons/Skeleton.cjs +2 -2
  509. package/icons/Skeleton.cjs.map +1 -1
  510. package/icons/Skeleton.css +6 -6
  511. package/icons/Skeleton.mjs +2 -2
  512. package/icons/Skeleton.mjs.map +1 -1
  513. package/package.json +20 -20
  514. package/page.css +7 -7
  515. package/src/ActionBar.tsx +5 -3
  516. package/src/ActionButton.tsx +112 -32
  517. package/src/Avatar.tsx +4 -1
  518. package/src/Button.tsx +27 -28
  519. package/src/Calendar.tsx +3 -0
  520. package/src/Card.tsx +22 -7
  521. package/src/CardView.tsx +9 -1
  522. package/src/ColorArea.tsx +10 -2
  523. package/src/ColorField.tsx +3 -2
  524. package/src/ColorSlider.tsx +3 -2
  525. package/src/ComboBox.tsx +69 -44
  526. package/src/ContextualHelp.tsx +36 -32
  527. package/src/CustomDialog.tsx +1 -1
  528. package/src/DateField.tsx +4 -0
  529. package/src/DatePicker.tsx +28 -20
  530. package/src/DateRangePicker.tsx +5 -1
  531. package/src/Dialog.tsx +6 -3
  532. package/src/Disclosure.tsx +20 -16
  533. package/src/DropZone.tsx +5 -2
  534. package/src/Field.tsx +4 -1
  535. package/src/FullscreenDialog.tsx +1 -1
  536. package/src/Image.tsx +30 -8
  537. package/src/InlineAlert.tsx +10 -27
  538. package/src/Menu.tsx +57 -45
  539. package/src/Modal.tsx +99 -74
  540. package/src/NumberField.tsx +3 -2
  541. package/src/Picker.tsx +114 -51
  542. package/src/Popover.tsx +57 -35
  543. package/src/Provider.tsx +1 -1
  544. package/src/RangeCalendar.tsx +3 -0
  545. package/src/RangeSlider.tsx +3 -0
  546. package/src/SearchField.tsx +2 -1
  547. package/src/SegmentedControl.tsx +16 -44
  548. package/src/SelectBoxGroup.tsx +21 -23
  549. package/src/TableView.tsx +7 -6
  550. package/src/Tabs.tsx +34 -70
  551. package/src/TabsPicker.tsx +35 -26
  552. package/src/TagGroup.tsx +44 -36
  553. package/src/TextField.tsx +11 -6
  554. package/src/TimeField.tsx +4 -0
  555. package/src/Tooltip.tsx +3 -0
  556. package/src/TreeView.tsx +2 -2
  557. package/src/index.ts +3 -2
  558. package/src/page.macro.ts +2 -2
  559. package/src/style-utils.ts +4 -3
  560. package/style/__tests__/style-macro.test.js +56 -56
  561. package/style/dist/main.cjs +24 -24
  562. package/style/dist/module.mjs +13 -13
  563. package/style/dist/properties.mjs +3 -3
  564. package/style/dist/spectrum-theme.cjs +255 -225
  565. package/style/dist/spectrum-theme.cjs.map +1 -1
  566. package/style/dist/spectrum-theme.mjs +246 -216
  567. package/style/dist/spectrum-theme.mjs.map +1 -1
  568. package/style/dist/style-macro.cjs +80 -80
  569. package/style/dist/style-macro.mjs +75 -75
  570. package/style/dist/types.d.ts +1 -0
  571. package/style/dist/types.d.ts.map +1 -1
  572. package/style/spectrum-theme.ts +10 -8
  573. package/style/tokens.ts +10 -0
package/src/Popover.tsx CHANGED
@@ -14,20 +14,22 @@ import {
14
14
  Popover as AriaPopover,
15
15
  PopoverProps as AriaPopoverProps,
16
16
  composeRenderProps,
17
- Dialog,
17
+ ContextValue,
18
18
  DialogProps,
19
19
  OverlayArrow,
20
20
  OverlayTriggerStateContext,
21
21
  useLocale
22
22
  } from 'react-aria-components';
23
- import {colorScheme, getAllowedOverrides, StyleProps, UnsafeStyles} from './style-utils' with {type: 'macro'};
23
+ import {colorScheme, getAllowedOverrides, heightProperties, UnsafeStyles, widthProperties} from './style-utils' with {type: 'macro'};
24
24
  import {ColorSchemeContext} from './Provider';
25
- import {DOMRef, GlobalDOMAttributes} from '@react-types/shared';
26
- import {forwardRef, MutableRefObject, useCallback, useContext} from 'react';
25
+ import {createContext, ForwardedRef, forwardRef, useCallback, useContext, useMemo} from 'react';
26
+ import {DOMRef, DOMRefValue, GlobalDOMAttributes} from '@react-types/shared';
27
+ import {lightDark, style} from '../style' with {type: 'macro'};
28
+ import {mergeRefs} from '@react-aria/utils';
27
29
  import {mergeStyles} from '../style/runtime';
28
- import {style} from '../style' with {type: 'macro'};
29
30
  import {StyleString} from '../style/types' with {type: 'macro'};
30
31
  import {useDOMRef} from '@react-spectrum/utils';
32
+ import {useSpectrumContextProps} from './useSpectrumContextProps';
31
33
 
32
34
  export interface PopoverProps extends UnsafeStyles, Omit<AriaPopoverProps, 'arrowSize' | 'isNonModal' | 'arrowBoundaryOffset' | 'isKeyboardDismissDisabled' | 'shouldCloseOnInteractOutside' | 'shouldUpdatePosition' | keyof GlobalDOMAttributes> {
33
35
  styles?: StyleString,
@@ -62,10 +64,10 @@ let popover = style({
62
64
  default: 'elevated',
63
65
  isArrowShown: 'none'
64
66
  },
65
- borderStyle: 'solid',
66
- borderWidth: 1,
67
- borderColor: {
68
- default: 'gray-200',
67
+ outlineStyle: 'solid',
68
+ outlineWidth: 1,
69
+ outlineColor: {
70
+ default: lightDark('transparent-white-25', 'gray-200'),
69
71
  forcedColors: 'ButtonBorder'
70
72
  },
71
73
  width: {
@@ -118,8 +120,7 @@ let popover = style({
118
120
  isolation: 'isolate',
119
121
  pointerEvents: {
120
122
  isExiting: 'none'
121
- },
122
- outlineStyle: 'none'
123
+ }
123
124
  }, getAllowedOverrides());
124
125
  // TODO: animations and real Popover Arrow
125
126
 
@@ -145,12 +146,15 @@ let arrow = style({
145
146
  },
146
147
  strokeWidth: 1,
147
148
  stroke: {
148
- default: 'gray-200',
149
+ default: lightDark('transparent-white-25', 'gray-200'),
149
150
  forcedColors: 'ButtonBorder'
150
151
  }
151
152
  });
152
153
 
153
- export const PopoverBase = forwardRef(function PopoverBase(props: PopoverProps, ref: DOMRef<HTMLDivElement>) {
154
+ export const PopoverContext = createContext<ContextValue<PopoverProps, DOMRefValue<HTMLDivElement>>>(null);
155
+ export const InPopoverContext = createContext(false);
156
+
157
+ export const PopoverBase = forwardRef(function PopoverBase(props: PopoverProps, ref: ForwardedRef<HTMLDivElement | null>) {
154
158
  let {
155
159
  hideArrow = false,
156
160
  UNSAFE_className = '',
@@ -158,18 +162,18 @@ export const PopoverBase = forwardRef(function PopoverBase(props: PopoverProps,
158
162
  styles,
159
163
  size
160
164
  } = props;
161
- let domRef = useDOMRef(ref);
162
165
  let colorScheme = useContext(ColorSchemeContext);
163
166
  let {locale, direction} = useLocale();
164
167
 
165
168
  // TODO: should we pass through lang and dir props in RAC?
166
169
  let popoverRef = useCallback((el: HTMLDivElement) => {
167
- (domRef as MutableRefObject<HTMLDivElement>).current = el;
168
170
  if (el) {
169
171
  el.lang = locale;
170
172
  el.dir = direction;
171
173
  }
172
- }, [locale, direction, domRef]);
174
+ }, [locale, direction]);
175
+ // Memoed so it doesn't break ComboBox/Picker scrolling
176
+ let mergedRef = useMemo(() => mergeRefs(popoverRef, ref), [ref, popoverRef]);
173
177
 
174
178
  // On small devices, show a modal (or eventually a tray) instead of a popover.
175
179
  // TODO: reverted this until we have trays.
@@ -198,7 +202,7 @@ export const PopoverBase = forwardRef(function PopoverBase(props: PopoverProps,
198
202
  <AriaPopover
199
203
  {...props}
200
204
  offset={(props.offset ?? 8) + (hideArrow ? 0 : 8)}
201
- ref={popoverRef}
205
+ ref={mergedRef}
202
206
  style={{
203
207
  ...UNSAFE_style,
204
208
  // Override default z-index from useOverlayPosition. We use isolation: isolate instead.
@@ -214,19 +218,33 @@ export const PopoverBase = forwardRef(function PopoverBase(props: PopoverProps,
214
218
  </svg>
215
219
  </OverlayArrow>
216
220
  )}
217
- {children}
221
+ <InPopoverContext.Provider value>
222
+ {children}
223
+ </InPopoverContext.Provider>
218
224
  </>
219
225
  ))}
220
226
  </AriaPopover>
221
227
  );
222
228
  });
223
229
 
224
- export interface PopoverDialogProps extends Pick<PopoverProps, 'size' | 'hideArrow'| 'placement' | 'shouldFlip' | 'containerPadding' | 'offset' | 'crossOffset' | 'triggerRef' | 'isOpen' | 'onOpenChange'>, Omit<DialogProps, 'className' | 'style' | keyof GlobalDOMAttributes>, StyleProps {
230
+ type PopoverStylesProp = StyleString<((typeof widthProperties)[number] | (typeof heightProperties)[number])>;
231
+ export interface PopoverDialogProps extends Pick<PopoverProps, 'children' | 'size' | 'hideArrow'| 'placement' | 'shouldFlip' | 'containerPadding' | 'offset' | 'crossOffset' | 'triggerRef' | 'isOpen' | 'onOpenChange'>, Omit<DialogProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, UnsafeStyles {
232
+ /**
233
+ * The amount of padding around the contents of the dialog.
234
+ * @default 'default'
235
+ */
236
+ padding?: 'default' | 'none',
237
+ /** Spectrum-defined styles, returned by the `style()` macro. */
238
+ styles?: PopoverStylesProp
225
239
  }
226
240
 
227
-
228
- const dialogStyle = style({
229
- padding: 8,
241
+ const innerDivStyle = style({
242
+ padding: {
243
+ padding: {
244
+ default: 8,
245
+ none: 0
246
+ }
247
+ },
230
248
  boxSizing: 'border-box',
231
249
  outlineStyle: 'none',
232
250
  borderRadius: 'inherit',
@@ -239,25 +257,29 @@ const dialogStyle = style({
239
257
  /**
240
258
  * A popover is an overlay element positioned relative to a trigger.
241
259
  */
242
- export const Popover = forwardRef(function Popover(props: PopoverDialogProps, ref: DOMRef) {
260
+ export const Popover = forwardRef(function Popover(props: PopoverDialogProps, ref: DOMRef<HTMLDivElement>) {
261
+ [props, ref] = useSpectrumContextProps(props, ref, PopoverContext);
243
262
  let domRef = useDOMRef(ref);
244
- const {triggerRef, isOpen, onOpenChange, ...otherProps} = props;
245
-
263
+ let {
264
+ UNSAFE_className,
265
+ UNSAFE_style,
266
+ styles,
267
+ padding = 'default',
268
+ ...otherProps
269
+ } = props;
246
270
 
247
271
  return (
248
- <PopoverBase isOpen={isOpen} onOpenChange={onOpenChange} triggerRef={triggerRef} size={props.size} hideArrow={props.hideArrow} placement={props.placement} shouldFlip={props.shouldFlip} containerPadding={props.containerPadding} offset={props.offset} crossOffset={props.crossOffset}>
249
- <Dialog
250
- {...otherProps}
251
- ref={domRef}
252
- style={props.UNSAFE_style}
253
- className={(props.UNSAFE_className || '') + dialogStyle(null, props.styles)}>
254
- {composeRenderProps(props.children, (children) => (
255
- // Reset OverlayTriggerStateContext so the buttons inside the dialog don't retain their hover state.
272
+ <PopoverBase {...otherProps} ref={domRef}>
273
+ {composeRenderProps(props.children, (children) => (
274
+ <div
275
+ style={UNSAFE_style}
276
+ className={(UNSAFE_className || '') + innerDivStyle({padding}, styles)}>
277
+ {/* Reset OverlayTriggerStateContext so the buttons inside the dialog don't retain their hover state. */}
256
278
  <OverlayTriggerStateContext.Provider value={null}>
257
279
  {children}
258
280
  </OverlayTriggerStateContext.Provider>
259
- ))}
260
- </Dialog>
281
+ </div>
282
+ ))}
261
283
  </PopoverBase>
262
284
  );
263
285
  });
package/src/Provider.tsx CHANGED
@@ -51,7 +51,7 @@ export interface ProviderProps extends UnsafeStyles {
51
51
 
52
52
  export const ColorSchemeContext = createContext<ColorScheme | 'light dark' | null>(null);
53
53
 
54
- export function Provider(props: ProviderProps): ReactNode {
54
+ export function Provider(props: ProviderProps): JSX.Element {
55
55
  let result = <ProviderInner {...props} />;
56
56
  let parentColorScheme = useContext(ColorSchemeContext);
57
57
  let colorScheme = props.colorScheme || parentColorScheme;
@@ -64,6 +64,9 @@ const headerStyles = style({
64
64
  width: 'full'
65
65
  });
66
66
 
67
+ /**
68
+ * RangeCalendars display a grid of days in one or more months and allow users to select a contiguous range of dates.
69
+ */
67
70
  export const RangeCalendar = /*#__PURE__*/ (forwardRef as forwardRefType)(function RangeCalendar<T extends DateValue>(props: RangeCalendarProps<T>, ref: ForwardedRef<HTMLDivElement>) {
68
71
  [props, ref] = useSpectrumContextProps(props, ref, RangeCalendarContext);
69
72
  let {
@@ -45,6 +45,9 @@ export interface RangeSliderProps extends Omit<SliderBaseProps<RangeValue<number
45
45
 
46
46
  export const RangeSliderContext = createContext<ContextValue<Partial<RangeSliderProps>, FocusableRefValue<HTMLDivElement>>>(null);
47
47
 
48
+ /**
49
+ * RangeSliders allow users to quickly select a subset range. They should be used when the upper and lower bounds to the range are invariable.
50
+ */
48
51
  export const RangeSlider = /*#__PURE__*/ forwardRef(function RangeSlider(props: RangeSliderProps, ref: FocusableRef<HTMLDivElement>) {
49
52
  let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
50
53
  [props, ref] = useSpectrumContextProps(props, ref, RangeSliderContext);
@@ -14,6 +14,7 @@ import {
14
14
  SearchField as AriaSearchField,
15
15
  SearchFieldProps as AriaSearchFieldProps,
16
16
  ContextValue,
17
+ InputProps,
17
18
  Provider
18
19
  } from 'react-aria-components';
19
20
  import {baseColor, fontRelative, style} from '../style' with {type: 'macro'};
@@ -31,7 +32,7 @@ import SearchIcon from '../s2wf-icons/S2_Icon_Search_20_N.svg';
31
32
  import {TextFieldRef} from '@react-types/textfield';
32
33
  import {useSpectrumContextProps} from './useSpectrumContextProps';
33
34
 
34
- export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'className' | 'style' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps {
35
+ export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'className' | 'style' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
35
36
  /**
36
37
  * The size of the SearchField.
37
38
  *
@@ -13,13 +13,13 @@
13
13
  import {AriaLabelingProps, DOMRef, DOMRefValue, FocusableRef, Key} from '@react-types/shared';
14
14
  import {baseColor, focusRing, style} from '../style' with {type: 'macro'};
15
15
  import {centerBaseline} from './CenterBaseline';
16
- import {ContextValue, DEFAULT_SLOT, Provider, TextContext as RACTextContext, SlotProps, ToggleButton, ToggleButtonGroup, ToggleButtonRenderProps, ToggleGroupStateContext} from 'react-aria-components';
16
+ import {ContextValue, DEFAULT_SLOT, Provider, TextContext as RACTextContext, SelectionIndicator, SlotProps, ToggleButton, ToggleButtonGroup, ToggleButtonRenderProps, ToggleGroupStateContext} from 'react-aria-components';
17
17
  import {control, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
18
- import {createContext, forwardRef, ReactNode, RefObject, useCallback, useContext, useRef} from 'react';
18
+ import {createContext, forwardRef, ReactNode, useCallback, useContext, useRef} from 'react';
19
19
  import {IconContext} from './Icon';
20
20
  import {pressScale} from './pressScale';
21
21
  import {Text, TextContext} from './Content';
22
- import {useDOMRef, useFocusableRef, useMediaQuery} from '@react-spectrum/utils';
22
+ import {useDOMRef, useFocusableRef} from '@react-spectrum/utils';
23
23
  import {useLayoutEffect} from '@react-aria/utils';
24
24
  import {useSpectrumContextProps} from './useSpectrumContextProps';
25
25
 
@@ -110,9 +110,17 @@ const slider = style<{isDisabled: boolean}>({
110
110
  isDisabled: 'GrayText'
111
111
  }
112
112
  },
113
+ top: 0,
113
114
  left: 0,
114
115
  width: 'full',
115
116
  height: 'full',
117
+ contain: 'strict',
118
+ transition: {
119
+ default: '[translate,width]',
120
+ '@media (prefers-reduced-motion: reduce)': 'none'
121
+ },
122
+ transitionDuration: 200,
123
+ transitionTimingFunction: 'out',
116
124
  position: 'absolute',
117
125
  boxSizing: 'border-box',
118
126
  borderStyle: 'solid',
@@ -130,8 +138,6 @@ const slider = style<{isDisabled: boolean}>({
130
138
 
131
139
  interface InternalSegmentedControlContextProps {
132
140
  register?: (value: Key, isDisabled?: boolean) => void,
133
- prevRef?: RefObject<DOMRect | null>,
134
- currentSelectedRef?: RefObject<HTMLDivElement | null>,
135
141
  isJustified?: boolean
136
142
  }
137
143
 
@@ -139,8 +145,6 @@ interface DefaultSelectionTrackProps {
139
145
  defaultValue?: Key | null,
140
146
  value?: Key | null,
141
147
  children: ReactNode,
142
- prevRef: RefObject<DOMRect | null>,
143
- currentSelectedRef: RefObject<HTMLDivElement | null>,
144
148
  isJustified?: boolean
145
149
  }
146
150
 
@@ -158,14 +162,7 @@ export const SegmentedControl = /*#__PURE__*/ forwardRef(function SegmentedContr
158
162
  } = props;
159
163
  let domRef = useDOMRef(ref);
160
164
 
161
- let prevRef = useRef<DOMRect>(null);
162
- let currentSelectedRef = useRef<HTMLDivElement>(null);
163
-
164
165
  let onChange = (values: Set<Key>) => {
165
- if (currentSelectedRef.current) {
166
- prevRef.current = currentSelectedRef?.current.getBoundingClientRect();
167
- }
168
-
169
166
  if (onSelectionChange) {
170
167
  let firstKey = values.values().next().value;
171
168
  if (firstKey != null) {
@@ -186,7 +183,7 @@ export const SegmentedControl = /*#__PURE__*/ forwardRef(function SegmentedContr
186
183
  onSelectionChange={onChange}
187
184
  className={(props.UNSAFE_className || '') + segmentedControl(null, props.styles)}
188
185
  aria-label={props['aria-label']}>
189
- <DefaultSelectionTracker defaultValue={defaultSelectedKey} value={selectedKey} prevRef={prevRef} currentSelectedRef={currentSelectedRef} isJustified={props.isJustified}>
186
+ <DefaultSelectionTracker defaultValue={defaultSelectedKey} value={selectedKey} isJustified={props.isJustified}>
190
187
  {props.children}
191
188
  </DefaultSelectionTracker>
192
189
  </ToggleButtonGroup>
@@ -209,7 +206,7 @@ function DefaultSelectionTracker(props: DefaultSelectionTrackProps) {
209
206
  return (
210
207
  <Provider
211
208
  values={[
212
- [InternalSegmentedControlContext, {register: register, prevRef: props.prevRef, currentSelectedRef: props.currentSelectedRef, isJustified: props.isJustified}]
209
+ [InternalSegmentedControlContext, {register: register, isJustified: props.isJustified}]
213
210
  ]}>
214
211
  {props.children}
215
212
  </Provider>
@@ -222,46 +219,21 @@ function DefaultSelectionTracker(props: DefaultSelectionTrackProps) {
222
219
  export const SegmentedControlItem = /*#__PURE__*/ forwardRef(function SegmentedControlItem(props: SegmentedControlItemProps, ref: FocusableRef<HTMLButtonElement>) {
223
220
  let domRef = useFocusableRef(ref);
224
221
  let divRef = useRef<HTMLDivElement>(null);
225
- let {register, prevRef, currentSelectedRef, isJustified} = useContext(InternalSegmentedControlContext);
226
- let state = useContext(ToggleGroupStateContext);
227
- let isSelected = state?.selectedKeys.has(props.id);
228
- // do not apply animation if a user has the prefers-reduced-motion setting
229
- let reduceMotion = useMediaQuery('(prefers-reduced-motion: reduce)');
222
+ let {register, isJustified} = useContext(InternalSegmentedControlContext);
230
223
 
231
224
  useLayoutEffect(() => {
232
225
  register?.(props.id);
233
226
  }, [register, props.id]);
234
227
 
235
- useLayoutEffect(() => {
236
- if (isSelected && prevRef?.current && currentSelectedRef?.current && !reduceMotion) {
237
- let currentItem = currentSelectedRef?.current.getBoundingClientRect();
238
-
239
- let deltaX = prevRef?.current.left - currentItem?.left;
240
-
241
- currentSelectedRef.current.animate(
242
- [
243
- {transform: `translateX(${deltaX}px)`, width: `${prevRef?.current.width}px`},
244
- {transform: 'translateX(0px)', width: `${currentItem.width}px`}
245
- ],
246
- {
247
- duration: 200,
248
- easing: 'ease-out'
249
- }
250
- );
251
-
252
- prevRef.current = null;
253
- }
254
- }, [isSelected, reduceMotion, prevRef, currentSelectedRef]);
255
-
256
228
  return (
257
229
  <ToggleButton
258
230
  {...props}
259
231
  ref={domRef}
260
232
  style={props.UNSAFE_style}
261
233
  className={renderProps => (props.UNSAFE_className || '') + controlItem({...renderProps, isJustified}, props.styles)} >
262
- {({isSelected, isPressed, isDisabled}) => (
234
+ {({isPressed, isDisabled}) => (
263
235
  <>
264
- {isSelected && <div className={slider({isDisabled})} ref={currentSelectedRef} />}
236
+ <SelectionIndicator className={slider({isDisabled})} />
265
237
  <Provider
266
238
  values={[
267
239
  [IconContext, {
@@ -26,6 +26,7 @@ import {IllustrationContext} from '../src/Icon';
26
26
  import {pressScale} from './pressScale';
27
27
  import React, {createContext, forwardRef, ReactNode, useContext, useMemo, useRef} from 'react';
28
28
  import {TextContext} from './Content';
29
+ import {useFocusVisible} from 'react-aria';
29
30
  import {useSpectrumContextProps} from './useSpectrumContextProps';
30
31
 
31
32
  export interface SelectBoxGroupProps<T> extends StyleProps, Omit<ListBoxProps<T>, keyof GlobalDOMAttributes | 'layout' | 'dragAndDropHooks' | 'dependencies' | 'renderEmptyState' | 'children' | 'onAction' | 'shouldFocusOnHover' | 'selectionBehavior' | 'shouldSelectOnPressUp' | 'shouldFocusWrap' | 'style' | 'className'> {
@@ -293,7 +294,7 @@ const gridStyles = style<{orientation?: Orientation}>({
293
294
  */
294
295
  export function SelectBox(props: SelectBoxProps): ReactNode {
295
296
  let {children, isDisabled: individualDisabled = false, UNSAFE_style, UNSAFE_className, styles, ...otherProps} = props;
296
-
297
+
297
298
  let {
298
299
  orientation = 'vertical',
299
300
  isDisabled: groupDisabled = false
@@ -301,6 +302,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
301
302
 
302
303
  const isDisabled = individualDisabled || groupDisabled;
303
304
  const ref = useRef<HTMLDivElement>(null);
305
+ let {isFocusVisible} = useFocusVisible();
304
306
 
305
307
  return (
306
308
  <ListBoxItem
@@ -308,6 +310,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
308
310
  ref={ref}
309
311
  className={renderProps => (UNSAFE_className || '') + selectBoxStyles({
310
312
  ...renderProps,
313
+ isFocusVisible: isFocusVisible && renderProps.isFocused,
311
314
  orientation
312
315
  }, styles)}
313
316
  style={pressScale(ref, UNSAFE_style)}
@@ -315,7 +318,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
315
318
  {({isSelected, isDisabled, isHovered}) => {
316
319
  return (
317
320
  <>
318
- <div
321
+ <div
319
322
  className={style({
320
323
  position: 'absolute',
321
324
  top: 8,
@@ -330,8 +333,8 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
330
333
  isDisabled,
331
334
  size: 'M'
332
335
  } as any)}>
333
- <Checkmark
334
- size="S"
336
+ <Checkmark
337
+ size="S"
335
338
  className={iconStyles} />
336
339
  </div>
337
340
  )}
@@ -382,27 +385,22 @@ export const SelectBoxGroup = /*#__PURE__*/ forwardRef(function SelectBoxGroup<T
382
385
  ...otherProps
383
386
  } = props;
384
387
 
385
- const selectBoxContextValue = useMemo(
386
- () => {
387
- const contextValue = {
388
- orientation,
389
- isDisabled
390
- };
391
- return contextValue;
392
- },
393
- [orientation, isDisabled]
394
- );
388
+ const selectBoxContextValue = useMemo(() => ({
389
+ orientation,
390
+ isDisabled
391
+ }), [orientation, isDisabled]);
395
392
 
396
393
  return (
397
- <ListBox
398
- selectionMode={selectionMode}
399
- layout="grid"
400
- className={(UNSAFE_className || '') + gridStyles({orientation}, styles)}
401
- style={UNSAFE_style}
402
- {...otherProps}>
403
- <SelectBoxContext.Provider value={selectBoxContextValue}>
394
+ <SelectBoxContext.Provider value={selectBoxContextValue}>
395
+ <ListBox
396
+ selectionMode={selectionMode}
397
+ layout="grid"
398
+ orientation={orientation}
399
+ className={(UNSAFE_className || '') + gridStyles({orientation}, styles)}
400
+ style={UNSAFE_style}
401
+ {...otherProps}>
404
402
  {children}
405
- </SelectBoxContext.Provider>
406
- </ListBox>
403
+ </ListBox>
404
+ </SelectBoxContext.Provider>
407
405
  );
408
406
  });
package/src/TableView.tsx CHANGED
@@ -55,7 +55,6 @@ import {IconContext} from './Icon';
55
55
  import intlMessages from '../intl/*.json';
56
56
  import {LayoutNode} from '@react-stately/layout';
57
57
  import {Menu, MenuItem, MenuSection, MenuTrigger} from './Menu';
58
- import {mergeStyles} from '../style/runtime';
59
58
  import Nubbin from '../ui-icons/S2_MoveHorizontalTableWidget.svg';
60
59
  import {ProgressCircle} from './ProgressCircle';
61
60
  import {raw} from '../style/style-macro' with {type: 'macro'};
@@ -125,10 +124,12 @@ const tableWrapper = style({
125
124
  position: 'relative',
126
125
  // Clip ActionBar animation.
127
126
  overflow: 'clip'
128
- });
127
+ }, getAllowedOverrides({height: true}));
129
128
 
130
129
  const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boolean}>({
131
130
  width: 'full',
131
+ height: 'full',
132
+ boxSizing: 'border-box',
132
133
  userSelect: 'none',
133
134
  minHeight: 0,
134
135
  minWidth: 0,
@@ -163,7 +164,7 @@ const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boo
163
164
  scrollPaddingStart: {
164
165
  isCheckboxSelection: 40
165
166
  }
166
- }, getAllowedOverrides({height: true}));
167
+ });
167
168
 
168
169
  // component-height-100
169
170
  const DEFAULT_HEADER_HEIGHT = {
@@ -320,7 +321,7 @@ export const TableView = forwardRef(function TableView(props: TableViewProps, re
320
321
  onResize={propsOnResize}
321
322
  onResizeEnd={onResizeEnd}
322
323
  onResizeStart={onResizeStart}
323
- className={(UNSAFE_className || '') + mergeStyles(tableWrapper, styles)}
324
+ className={(UNSAFE_className || '') + tableWrapper(null, styles)}
324
325
  style={UNSAFE_style}>
325
326
  <Virtualizer
326
327
  layout={S2TableLayout}
@@ -461,7 +462,7 @@ const cellFocus = {
461
462
  } as const;
462
463
 
463
464
  function CellFocusRing() {
464
- return <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />;
465
+ return <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0, pointerEvents: 'none'})({isFocusVisible: true})} />;
465
466
  }
466
467
 
467
468
  const columnStyles = style({
@@ -1035,8 +1036,8 @@ export const Cell = forwardRef(function Cell(props: CellProps, ref: DOMRef<HTMLD
1035
1036
  {...otherProps}>
1036
1037
  {({isFocusVisible}) => (
1037
1038
  <>
1038
- {isFocusVisible && <CellFocusRing />}
1039
1039
  <span className={cellContent({...tableVisualOptions, isSticky, align: align || 'start'})}>{children}</span>
1040
+ {isFocusVisible && <CellFocusRing />}
1040
1041
  </>
1041
1042
  )}
1042
1043
  </RACCell>