@react-spectrum/s2 1.4.0 → 1.5.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 (421) hide show
  1. package/dist/exports/CenterBaseline.cjs +12 -0
  2. package/dist/exports/CenterBaseline.cjs.map +1 -0
  3. package/dist/exports/CenterBaseline.mjs +7 -0
  4. package/dist/exports/CenterBaseline.mjs.map +1 -0
  5. package/dist/exports/Skeleton.cjs +1 -0
  6. package/dist/exports/Skeleton.cjs.map +1 -1
  7. package/dist/exports/Skeleton.mjs +2 -2
  8. package/dist/exports/Skeleton.mjs.map +1 -1
  9. package/dist/exports/index.cjs +3 -0
  10. package/dist/exports/index.cjs.map +1 -1
  11. package/dist/exports/index.mjs +3 -1
  12. package/dist/exports/index.mjs.map +1 -1
  13. package/dist/private/Accordion.cjs +2 -2
  14. package/dist/private/Accordion.css +2 -2
  15. package/dist/private/Accordion.mjs +2 -2
  16. package/dist/private/ActionBar.cjs +59 -59
  17. package/dist/private/ActionBar.cjs.map +1 -1
  18. package/dist/private/ActionBar.css +58 -58
  19. package/dist/private/ActionBar.css.map +1 -1
  20. package/dist/private/ActionBar.mjs +59 -59
  21. package/dist/private/ActionBar.mjs.map +1 -1
  22. package/dist/private/ActionButton.cjs +247 -247
  23. package/dist/private/ActionButton.cjs.map +1 -1
  24. package/dist/private/ActionButton.css +169 -169
  25. package/dist/private/ActionButton.css.map +1 -1
  26. package/dist/private/ActionButton.mjs +247 -247
  27. package/dist/private/ActionButton.mjs.map +1 -1
  28. package/dist/private/ActionButtonGroup.cjs +15 -15
  29. package/dist/private/ActionButtonGroup.css +9 -9
  30. package/dist/private/ActionButtonGroup.mjs +15 -15
  31. package/dist/private/ActionMenu.cjs.map +1 -1
  32. package/dist/private/ActionMenu.mjs.map +1 -1
  33. package/dist/private/Add.cjs +10 -10
  34. package/dist/private/Add.css +6 -6
  35. package/dist/private/Add.mjs +10 -10
  36. package/dist/private/AlertDialog.cjs +3 -3
  37. package/dist/private/AlertDialog.cjs.map +1 -1
  38. package/dist/private/AlertDialog.css +3 -3
  39. package/dist/private/AlertDialog.css.map +1 -1
  40. package/dist/private/AlertDialog.mjs +3 -3
  41. package/dist/private/AlertDialog.mjs.map +1 -1
  42. package/dist/private/Asterisk.cjs +6 -6
  43. package/dist/private/Asterisk.css +4 -4
  44. package/dist/private/Asterisk.mjs +6 -6
  45. package/dist/private/Avatar.cjs +16 -16
  46. package/dist/private/Avatar.css +16 -16
  47. package/dist/private/Avatar.mjs +16 -16
  48. package/dist/private/AvatarGroup.cjs +120 -120
  49. package/dist/private/AvatarGroup.css +31 -31
  50. package/dist/private/AvatarGroup.mjs +120 -120
  51. package/dist/private/Badge.cjs +197 -197
  52. package/dist/private/Badge.css +125 -125
  53. package/dist/private/Badge.mjs +197 -197
  54. package/dist/private/Breadcrumbs.cjs +234 -234
  55. package/dist/private/Breadcrumbs.cjs.map +1 -1
  56. package/dist/private/Breadcrumbs.css +100 -100
  57. package/dist/private/Breadcrumbs.css.map +1 -1
  58. package/dist/private/Breadcrumbs.mjs +234 -234
  59. package/dist/private/Breadcrumbs.mjs.map +1 -1
  60. package/dist/private/Button.cjs +326 -326
  61. package/dist/private/Button.cjs.map +1 -1
  62. package/dist/private/Button.css +172 -172
  63. package/dist/private/Button.css.map +1 -1
  64. package/dist/private/Button.mjs +326 -326
  65. package/dist/private/Button.mjs.map +1 -1
  66. package/dist/private/ButtonGroup.cjs +23 -20
  67. package/dist/private/ButtonGroup.cjs.map +1 -1
  68. package/dist/private/ButtonGroup.css +19 -15
  69. package/dist/private/ButtonGroup.css.map +1 -1
  70. package/dist/private/ButtonGroup.mjs +23 -20
  71. package/dist/private/ButtonGroup.mjs.map +1 -1
  72. package/dist/private/Calendar.cjs +232 -232
  73. package/dist/private/Calendar.cjs.map +1 -1
  74. package/dist/private/Calendar.css +149 -149
  75. package/dist/private/Calendar.css.map +1 -1
  76. package/dist/private/Calendar.mjs +232 -232
  77. package/dist/private/Calendar.mjs.map +1 -1
  78. package/dist/private/Card.cjs +309 -309
  79. package/dist/private/Card.css +206 -206
  80. package/dist/private/Card.mjs +309 -309
  81. package/dist/private/CardView.cjs +17 -17
  82. package/dist/private/CardView.css +17 -17
  83. package/dist/private/CardView.mjs +17 -17
  84. package/dist/private/CenterBaseline.cjs +1 -1
  85. package/dist/private/CenterBaseline.cjs.map +1 -1
  86. package/dist/private/CenterBaseline.css +2 -2
  87. package/dist/private/CenterBaseline.css.map +1 -1
  88. package/dist/private/CenterBaseline.mjs +1 -1
  89. package/dist/private/CenterBaseline.mjs.map +1 -1
  90. package/dist/private/Checkbox.cjs +188 -188
  91. package/dist/private/Checkbox.css +110 -110
  92. package/dist/private/Checkbox.mjs +188 -188
  93. package/dist/private/CheckboxGroup.cjs +43 -43
  94. package/dist/private/CheckboxGroup.css +37 -37
  95. package/dist/private/CheckboxGroup.mjs +43 -43
  96. package/dist/private/Checkmark.cjs +12 -12
  97. package/dist/private/Checkmark.css +8 -8
  98. package/dist/private/Checkmark.mjs +12 -12
  99. package/dist/private/Chevron.cjs +12 -12
  100. package/dist/private/Chevron.css +10 -10
  101. package/dist/private/Chevron.mjs +12 -12
  102. package/dist/private/ClearButton.cjs +30 -30
  103. package/dist/private/ClearButton.css +30 -30
  104. package/dist/private/ClearButton.mjs +30 -30
  105. package/dist/private/CloseButton.cjs +52 -52
  106. package/dist/private/CloseButton.cjs.map +1 -1
  107. package/dist/private/CloseButton.css +46 -46
  108. package/dist/private/CloseButton.css.map +1 -1
  109. package/dist/private/CloseButton.mjs +52 -52
  110. package/dist/private/CloseButton.mjs.map +1 -1
  111. package/dist/private/ColorArea.cjs +16 -16
  112. package/dist/private/ColorArea.css +16 -16
  113. package/dist/private/ColorArea.mjs +16 -16
  114. package/dist/private/ColorField.cjs +31 -31
  115. package/dist/private/ColorField.css +27 -27
  116. package/dist/private/ColorField.mjs +31 -31
  117. package/dist/private/ColorHandle.cjs +27 -27
  118. package/dist/private/ColorHandle.css +42 -42
  119. package/dist/private/ColorHandle.mjs +27 -27
  120. package/dist/private/ColorSlider.cjs +108 -108
  121. package/dist/private/ColorSlider.css +52 -52
  122. package/dist/private/ColorSlider.mjs +108 -108
  123. package/dist/private/ColorSwatch.cjs +29 -29
  124. package/dist/private/ColorSwatch.css +29 -29
  125. package/dist/private/ColorSwatch.mjs +29 -29
  126. package/dist/private/ColorSwatchPicker.cjs +29 -29
  127. package/dist/private/ColorSwatchPicker.css +48 -48
  128. package/dist/private/ColorSwatchPicker.mjs +29 -29
  129. package/dist/private/ColorWheel.cjs +26 -26
  130. package/dist/private/ColorWheel.css +17 -17
  131. package/dist/private/ColorWheel.mjs +26 -26
  132. package/dist/private/ComboBox.cjs +381 -381
  133. package/dist/private/ComboBox.cjs.map +1 -1
  134. package/dist/private/ComboBox.css +188 -188
  135. package/dist/private/ComboBox.css.map +1 -1
  136. package/dist/private/ComboBox.mjs +381 -381
  137. package/dist/private/ComboBox.mjs.map +1 -1
  138. package/dist/private/ContextualHelp.cjs +5 -5
  139. package/dist/private/ContextualHelp.cjs.map +1 -1
  140. package/dist/private/ContextualHelp.css +50 -50
  141. package/dist/private/ContextualHelp.css.map +1 -1
  142. package/dist/private/ContextualHelp.mjs +5 -5
  143. package/dist/private/ContextualHelp.mjs.map +1 -1
  144. package/dist/private/CornerTriangle.cjs +8 -8
  145. package/dist/private/CornerTriangle.css +6 -6
  146. package/dist/private/CornerTriangle.mjs +8 -8
  147. package/dist/private/Cross.cjs +14 -14
  148. package/dist/private/Cross.css +10 -10
  149. package/dist/private/Cross.mjs +14 -14
  150. package/dist/private/CustomDialog.cjs +25 -25
  151. package/dist/private/CustomDialog.css +25 -25
  152. package/dist/private/CustomDialog.mjs +25 -25
  153. package/dist/private/Dash.cjs +10 -10
  154. package/dist/private/Dash.css +6 -6
  155. package/dist/private/Dash.mjs +10 -10
  156. package/dist/private/DateField.cjs +73 -73
  157. package/dist/private/DateField.css +77 -77
  158. package/dist/private/DateField.mjs +73 -73
  159. package/dist/private/DatePicker.cjs +172 -172
  160. package/dist/private/DatePicker.cjs.map +1 -1
  161. package/dist/private/DatePicker.css +128 -128
  162. package/dist/private/DatePicker.css.map +1 -1
  163. package/dist/private/DatePicker.mjs +172 -172
  164. package/dist/private/DatePicker.mjs.map +1 -1
  165. package/dist/private/DateRangePicker.cjs +55 -55
  166. package/dist/private/DateRangePicker.cjs.map +1 -1
  167. package/dist/private/DateRangePicker.css +59 -59
  168. package/dist/private/DateRangePicker.css.map +1 -1
  169. package/dist/private/DateRangePicker.mjs +55 -55
  170. package/dist/private/DateRangePicker.mjs.map +1 -1
  171. package/dist/private/Dialog.cjs +17 -17
  172. package/dist/private/Dialog.css +70 -70
  173. package/dist/private/Dialog.mjs +17 -17
  174. package/dist/private/Disclosure.cjs +144 -122
  175. package/dist/private/Disclosure.cjs.map +1 -1
  176. package/dist/private/Disclosure.css +112 -112
  177. package/dist/private/Disclosure.css.map +1 -1
  178. package/dist/private/Disclosure.mjs +144 -122
  179. package/dist/private/Disclosure.mjs.map +1 -1
  180. package/dist/private/Divider.cjs +25 -25
  181. package/dist/private/Divider.css +25 -25
  182. package/dist/private/Divider.mjs +25 -25
  183. package/dist/private/DragHandle.cjs +8 -8
  184. package/dist/private/DragHandle.css +6 -6
  185. package/dist/private/DragHandle.mjs +8 -8
  186. package/dist/private/DragPreview.cjs +154 -154
  187. package/dist/private/DragPreview.css +106 -106
  188. package/dist/private/DragPreview.mjs +154 -154
  189. package/dist/private/DropZone.cjs +61 -61
  190. package/dist/private/DropZone.cjs.map +1 -1
  191. package/dist/private/DropZone.css +57 -57
  192. package/dist/private/DropZone.css.map +1 -1
  193. package/dist/private/DropZone.mjs +61 -61
  194. package/dist/private/DropZone.mjs.map +1 -1
  195. package/dist/private/Field.cjs +360 -360
  196. package/dist/private/Field.cjs.map +1 -1
  197. package/dist/private/Field.css +160 -160
  198. package/dist/private/Field.css.map +1 -1
  199. package/dist/private/Field.mjs +360 -360
  200. package/dist/private/Field.mjs.map +1 -1
  201. package/dist/private/Form.cjs +9 -9
  202. package/dist/private/Form.css +9 -9
  203. package/dist/private/Form.mjs +9 -9
  204. package/dist/private/FullscreenDialog.cjs +5 -5
  205. package/dist/private/FullscreenDialog.css +78 -78
  206. package/dist/private/FullscreenDialog.mjs +5 -5
  207. package/dist/private/IllustratedMessage.cjs +228 -228
  208. package/dist/private/IllustratedMessage.css +72 -72
  209. package/dist/private/IllustratedMessage.mjs +228 -228
  210. package/dist/private/Image.cjs +14 -14
  211. package/dist/private/Image.css +14 -14
  212. package/dist/private/Image.mjs +14 -14
  213. package/dist/private/InlineAlert.cjs +100 -100
  214. package/dist/private/InlineAlert.cjs.map +1 -1
  215. package/dist/private/InlineAlert.css +76 -76
  216. package/dist/private/InlineAlert.css.map +1 -1
  217. package/dist/private/InlineAlert.mjs +100 -100
  218. package/dist/private/InlineAlert.mjs.map +1 -1
  219. package/dist/private/LabeledValue.cjs +134 -134
  220. package/dist/private/LabeledValue.css +63 -63
  221. package/dist/private/LabeledValue.mjs +134 -134
  222. package/dist/private/Link.cjs +49 -49
  223. package/dist/private/Link.css +41 -41
  224. package/dist/private/Link.mjs +49 -49
  225. package/dist/private/LinkOut.cjs +8 -8
  226. package/dist/private/LinkOut.css +8 -8
  227. package/dist/private/LinkOut.mjs +8 -8
  228. package/dist/private/ListView.cjs +245 -245
  229. package/dist/private/ListView.cjs.map +1 -1
  230. package/dist/private/ListView.css +177 -177
  231. package/dist/private/ListView.css.map +1 -1
  232. package/dist/private/ListView.mjs +245 -245
  233. package/dist/private/ListView.mjs.map +1 -1
  234. package/dist/private/Menu.cjs +446 -446
  235. package/dist/private/Menu.cjs.map +1 -1
  236. package/dist/private/Menu.css +196 -196
  237. package/dist/private/Menu.css.map +1 -1
  238. package/dist/private/Menu.mjs +446 -446
  239. package/dist/private/Menu.mjs.map +1 -1
  240. package/dist/private/Meter.cjs +153 -153
  241. package/dist/private/Meter.css +91 -91
  242. package/dist/private/Meter.mjs +153 -153
  243. package/dist/private/Modal.cjs +74 -74
  244. package/dist/private/Modal.css +59 -59
  245. package/dist/private/Modal.mjs +74 -74
  246. package/dist/private/NotificationBadge.cjs +56 -56
  247. package/dist/private/NotificationBadge.cjs.map +1 -1
  248. package/dist/private/NotificationBadge.css +49 -49
  249. package/dist/private/NotificationBadge.css.map +1 -1
  250. package/dist/private/NotificationBadge.mjs +56 -56
  251. package/dist/private/NotificationBadge.mjs.map +1 -1
  252. package/dist/private/NumberField.cjs +114 -114
  253. package/dist/private/NumberField.css +99 -99
  254. package/dist/private/NumberField.mjs +114 -114
  255. package/dist/private/Picker.cjs +275 -275
  256. package/dist/private/Picker.cjs.map +1 -1
  257. package/dist/private/Picker.css +173 -173
  258. package/dist/private/Picker.css.map +1 -1
  259. package/dist/private/Picker.mjs +275 -275
  260. package/dist/private/Picker.mjs.map +1 -1
  261. package/dist/private/Popover.cjs +95 -95
  262. package/dist/private/Popover.cjs.map +1 -1
  263. package/dist/private/Popover.css +75 -75
  264. package/dist/private/Popover.css.map +1 -1
  265. package/dist/private/Popover.mjs +95 -95
  266. package/dist/private/Popover.mjs.map +1 -1
  267. package/dist/private/ProgressBar.cjs +163 -163
  268. package/dist/private/ProgressBar.css +99 -99
  269. package/dist/private/ProgressBar.mjs +163 -163
  270. package/dist/private/ProgressCircle.cjs +34 -31
  271. package/dist/private/ProgressCircle.cjs.map +1 -1
  272. package/dist/private/ProgressCircle.css +24 -24
  273. package/dist/private/ProgressCircle.css.map +1 -1
  274. package/dist/private/ProgressCircle.mjs +34 -31
  275. package/dist/private/ProgressCircle.mjs.map +1 -1
  276. package/dist/private/Provider.cjs +19 -19
  277. package/dist/private/Provider.css +15 -15
  278. package/dist/private/Provider.mjs +19 -19
  279. package/dist/private/RadioGroup.cjs +208 -208
  280. package/dist/private/RadioGroup.css +113 -113
  281. package/dist/private/RadioGroup.mjs +208 -208
  282. package/dist/private/RangeCalendar.cjs +16 -16
  283. package/dist/private/RangeCalendar.cjs.map +1 -1
  284. package/dist/private/RangeCalendar.css +17 -17
  285. package/dist/private/RangeCalendar.css.map +1 -1
  286. package/dist/private/RangeCalendar.mjs +16 -16
  287. package/dist/private/RangeCalendar.mjs.map +1 -1
  288. package/dist/private/RangeSlider.cjs.map +1 -1
  289. package/dist/private/RangeSlider.mjs.map +1 -1
  290. package/dist/private/SearchField.cjs +41 -41
  291. package/dist/private/SearchField.css +45 -45
  292. package/dist/private/SearchField.mjs +41 -41
  293. package/dist/private/SegmentedControl.cjs +178 -178
  294. package/dist/private/SegmentedControl.css +123 -123
  295. package/dist/private/SegmentedControl.mjs +178 -178
  296. package/dist/private/SelectBoxGroup.cjs +142 -142
  297. package/dist/private/SelectBoxGroup.css +120 -120
  298. package/dist/private/SelectBoxGroup.mjs +142 -142
  299. package/dist/private/Slider.cjs +292 -292
  300. package/dist/private/Slider.css +159 -159
  301. package/dist/private/Slider.mjs +292 -292
  302. package/dist/private/StatusLight.cjs +115 -115
  303. package/dist/private/StatusLight.css +59 -59
  304. package/dist/private/StatusLight.mjs +115 -115
  305. package/dist/private/Switch.cjs +171 -171
  306. package/dist/private/Switch.css +85 -85
  307. package/dist/private/Switch.mjs +171 -171
  308. package/dist/private/TableView.cjs +551 -534
  309. package/dist/private/TableView.cjs.map +1 -1
  310. package/dist/private/TableView.css +329 -303
  311. package/dist/private/TableView.css.map +1 -1
  312. package/dist/private/TableView.mjs +551 -534
  313. package/dist/private/TableView.mjs.map +1 -1
  314. package/dist/private/Tabs.cjs +131 -125
  315. package/dist/private/Tabs.cjs.map +1 -1
  316. package/dist/private/Tabs.css +105 -105
  317. package/dist/private/Tabs.css.map +1 -1
  318. package/dist/private/Tabs.mjs +131 -125
  319. package/dist/private/Tabs.mjs.map +1 -1
  320. package/dist/private/TabsPicker.cjs +127 -127
  321. package/dist/private/TabsPicker.css +108 -108
  322. package/dist/private/TabsPicker.mjs +127 -127
  323. package/dist/private/TagGroup.cjs +203 -203
  324. package/dist/private/TagGroup.cjs.map +1 -1
  325. package/dist/private/TagGroup.css +146 -146
  326. package/dist/private/TagGroup.css.map +1 -1
  327. package/dist/private/TagGroup.mjs +203 -203
  328. package/dist/private/TagGroup.mjs.map +1 -1
  329. package/dist/private/TextField.cjs +58 -58
  330. package/dist/private/TextField.css +54 -54
  331. package/dist/private/TextField.mjs +58 -58
  332. package/dist/private/TimeField.cjs +51 -51
  333. package/dist/private/TimeField.css +47 -47
  334. package/dist/private/TimeField.mjs +51 -51
  335. package/dist/private/Toast.cjs +120 -120
  336. package/dist/private/Toast.cjs.map +1 -1
  337. package/dist/private/Toast.css +110 -110
  338. package/dist/private/Toast.css.map +1 -1
  339. package/dist/private/Toast.mjs +120 -120
  340. package/dist/private/Toast.mjs.map +1 -1
  341. package/dist/private/ToggleButton.cjs +16 -16
  342. package/dist/private/ToggleButton.css +23 -23
  343. package/dist/private/ToggleButton.mjs +16 -16
  344. package/dist/private/Tooltip.cjs +86 -86
  345. package/dist/private/Tooltip.css +70 -70
  346. package/dist/private/Tooltip.mjs +86 -86
  347. package/dist/private/TreeView.cjs +229 -229
  348. package/dist/private/TreeView.cjs.map +1 -1
  349. package/dist/private/TreeView.css +184 -184
  350. package/dist/private/TreeView.css.map +1 -1
  351. package/dist/private/TreeView.mjs +229 -229
  352. package/dist/private/TreeView.mjs.map +1 -1
  353. package/dist/private/dnd-utils.cjs +42 -42
  354. package/dist/private/dnd-utils.css +39 -39
  355. package/dist/private/dnd-utils.mjs +42 -42
  356. package/dist/types/exports/CenterBaseline.d.ts +1 -0
  357. package/dist/types/exports/Skeleton.d.ts +1 -1
  358. package/dist/types/exports/index.d.ts +1 -0
  359. package/dist/types/src/CenterBaseline.d.ts +17 -0
  360. package/dist/types/src/ContextualHelp.d.ts +1 -1
  361. package/dist/types/src/Disclosure.d.ts +6 -1
  362. package/dist/types/src/ListView.d.ts +1 -1
  363. package/dist/types/src/Menu.d.ts +1 -1
  364. package/dist/types/src/Popover.d.ts +2 -2
  365. package/dist/types/src/style-utils.d.ts +4 -1
  366. package/exports/CenterBaseline.ts +1 -0
  367. package/exports/Skeleton.ts +1 -1
  368. package/exports/index.ts +2 -0
  369. package/icons/Icon.cjs +10 -10
  370. package/icons/Icon.css +9 -9
  371. package/icons/Icon.mjs +10 -10
  372. package/icons/Skeleton.cjs +2 -2
  373. package/icons/Skeleton.cjs.map +1 -1
  374. package/icons/Skeleton.css +6 -6
  375. package/icons/Skeleton.mjs +2 -2
  376. package/icons/Skeleton.mjs.map +1 -1
  377. package/package.json +6 -6
  378. package/src/ActionBar.tsx +0 -1
  379. package/src/ActionButton.tsx +0 -1
  380. package/src/ActionMenu.tsx +0 -1
  381. package/src/AlertDialog.tsx +0 -1
  382. package/src/Breadcrumbs.tsx +0 -4
  383. package/src/Button.tsx +0 -1
  384. package/src/ButtonGroup.tsx +1 -0
  385. package/src/Calendar.tsx +0 -1
  386. package/src/CenterBaseline.tsx +17 -0
  387. package/src/CloseButton.tsx +0 -1
  388. package/src/ComboBox.tsx +0 -1
  389. package/src/ContextualHelp.tsx +1 -2
  390. package/src/DatePicker.tsx +0 -1
  391. package/src/DateRangePicker.tsx +0 -1
  392. package/src/Disclosure.tsx +92 -79
  393. package/src/DropZone.tsx +0 -1
  394. package/src/Field.tsx +0 -1
  395. package/src/InlineAlert.tsx +0 -1
  396. package/src/ListView.tsx +0 -2
  397. package/src/Menu.tsx +1 -8
  398. package/src/NotificationBadge.tsx +0 -1
  399. package/src/Picker.tsx +0 -1
  400. package/src/Popover.tsx +2 -1
  401. package/src/ProgressCircle.tsx +1 -1
  402. package/src/RangeCalendar.tsx +0 -1
  403. package/src/RangeSlider.tsx +0 -1
  404. package/src/TableView.tsx +75 -37
  405. package/src/Tabs.tsx +9 -2
  406. package/src/TagGroup.tsx +0 -1
  407. package/src/Toast.tsx +0 -3
  408. package/src/TreeView.tsx +0 -1
  409. package/src/style-utils.ts +13 -2
  410. package/style/__tests__/style-macro.test.js +71 -71
  411. package/style/dist/main.cjs +25 -25
  412. package/style/dist/module.mjs +13 -13
  413. package/style/dist/properties.mjs +3 -3
  414. package/style/dist/spectrum-theme.cjs +224 -224
  415. package/style/dist/spectrum-theme.mjs +217 -217
  416. package/style/dist/style-macro.cjs +100 -100
  417. package/style/dist/style-macro.mjs +94 -94
  418. package/style/dist/style-utils.cjs +51 -39
  419. package/style/dist/style-utils.cjs.map +1 -1
  420. package/style/dist/style-utils.mjs +50 -38
  421. package/style/dist/style-utils.mjs.map +1 -1
@@ -132,147 +132,147 @@ const $f1992060af7549d9$export$f1f8569633bbbec4 = {
132
132
  };
133
133
  const $f1992060af7549d9$var$toastRegion = function anonymous(props) {
134
134
  let rules = " ";
135
- if (props.isFocusVisible) rules += ' _Lf131';
136
- else rules += ' _Le131';
137
- rules += ' Oh131';
138
- rules += ' Olc131';
139
- rules += ' _Mc131';
140
- rules += ' _Kd131';
141
- rules += ' sd131';
142
- if (props.placement === "bottom") rules += ' _tb131';
143
- else if (props.placement === "top") rules += ' _ta131';
144
- rules += ' _Pb131';
145
- rules += ' _Ar131';
146
- rules += ' _zr131';
147
- rules += ' ZJ131';
135
+ if (props.isFocusVisible) rules += ' _Lf15';
136
+ else rules += ' _Le15';
137
+ rules += ' Oh15';
138
+ rules += ' Olc15';
139
+ rules += ' _Mc15';
140
+ rules += ' _Kd15';
141
+ rules += ' sd15';
142
+ if (props.placement === "bottom") rules += ' _tb15';
143
+ else if (props.placement === "top") rules += ' _ta15';
144
+ rules += ' _Pb15';
145
+ rules += ' _Ar15';
146
+ rules += ' _zr15';
147
+ rules += ' ZJ15';
148
148
  if (props.placement === "top") {
149
- if (props.isExpanded) rules += ' Wr131';
150
- else rules += ' Wu131';
149
+ if (props.isExpanded) rules += ' Wr15';
150
+ else rules += ' Wu15';
151
151
  }
152
152
  if (props.placement === "bottom") {
153
- if (props.isExpanded) rules += ' _lr131';
154
- else rules += ' _lu131';
153
+ if (props.isExpanded) rules += ' _lr15';
154
+ else rules += ' _lu15';
155
155
  }
156
- if (props.align === "end") rules += ' IM131';
157
- else if (props.align === "center") rules += ' IM131';
158
- else if (props.align === "start") rules += ' IC131';
159
- if (props.align === "end") rules += ' HC131';
160
- else if (props.align === "center") rules += ' HM131';
161
- else if (props.align === "start") rules += ' HM131';
162
- rules += ' _oa131';
163
- rules += ' Ka131';
164
- rules += ' oc131';
165
- rules += ' nc131';
166
- rules += ' kc131';
167
- rules += ' jc131';
156
+ if (props.align === "end") rules += ' IM15';
157
+ else if (props.align === "center") rules += ' IM15';
158
+ else if (props.align === "start") rules += ' IC15';
159
+ if (props.align === "end") rules += ' HC15';
160
+ else if (props.align === "center") rules += ' HM15';
161
+ else if (props.align === "start") rules += ' HM15';
162
+ rules += ' _oa15';
163
+ rules += ' Ka15';
164
+ rules += ' oc15';
165
+ rules += ' nc15';
166
+ rules += ' kc15';
167
+ rules += ' jc15';
168
168
  return rules;
169
169
  };
170
170
  const $f1992060af7549d9$var$toastList = function anonymous(props) {
171
171
  let rules = " ";
172
- rules += ' _Pc131';
173
- rules += ' _ub131';
174
- rules += ' sd131';
175
- rules += ' Ue131';
176
- rules += ' qe131';
177
- if (props.placement === "bottom") rules += ' _tb131';
178
- else if (props.placement === "top") rules += ' _ta131';
179
- rules += ' _oa131';
180
- rules += ' Jy131';
181
- rules += ' Gy131';
172
+ rules += ' _Pc15';
173
+ rules += ' _ub15';
174
+ rules += ' sd15';
175
+ rules += ' Ue15';
176
+ rules += ' qe15';
177
+ if (props.placement === "bottom") rules += ' _tb15';
178
+ else if (props.placement === "top") rules += ' _ta15';
179
+ rules += ' _oa15';
180
+ rules += ' Jy15';
181
+ rules += ' Gy15';
182
182
  if (props.isExpanded) {
183
- if (props.placement === "bottom") rules += ' Tt131';
184
- else if (props.placement === "top") rules += ' Tf131';
183
+ if (props.placement === "bottom") rules += ' Tt15';
184
+ else if (props.placement === "top") rules += ' Tf15';
185
185
  }
186
186
  if (props.isExpanded) {
187
- if (props.placement === "bottom") rules += ' Qf131';
188
- else if (props.placement === "top") rules += ' Qt131';
187
+ if (props.placement === "bottom") rules += ' Qf15';
188
+ else if (props.placement === "top") rules += ' Qt15';
189
189
  }
190
- if (props.isExpanded) rules += ' St131';
191
- else rules += ' Sd131';
192
- if (props.isExpanded) rules += ' Rt131';
193
- else rules += ' Rd131';
194
- if (props.isExpanded) rules += ' Ic131';
195
- else rules += ' Iy131';
196
- if (props.isExpanded) rules += ' Hc131';
197
- else rules += ' Hy131';
198
- if (props.isExpanded) rules += ' _Na131';
199
- if (props.isExpanded) rules += ' Pa131';
190
+ if (props.isExpanded) rules += ' St15';
191
+ else rules += ' Sd15';
192
+ if (props.isExpanded) rules += ' Rt15';
193
+ else rules += ' Rd15';
194
+ if (props.isExpanded) rules += ' Ic15';
195
+ else rules += ' Iy15';
196
+ if (props.isExpanded) rules += ' Hc15';
197
+ else rules += ' Hy15';
198
+ if (props.isExpanded) rules += ' _Na15';
199
+ if (props.isExpanded) rules += ' Pa15';
200
200
  return rules;
201
201
  };
202
202
  const $f1992060af7549d9$var$toastStyle = function anonymous(props) {
203
203
  let rules = " ";
204
- if (props.isFocusVisible) rules += ' _Lf131';
205
- else rules += ' _Le131';
206
- if (props.isExpanded) rules += ' Ok131';
207
- else rules += ' Oh131';
208
- rules += ' _Mc131';
209
- rules += ' _Kd131';
210
- rules += ' sd131';
211
- rules += ' Ul131';
212
- rules += ' ql131';
213
- rules += ' Sf131';
214
- rules += ' Rt131';
215
- rules += ' Te131';
216
- rules += ' Qe131';
217
- rules += ' oc131';
218
- rules += ' nc131';
219
- rules += ' kc131';
220
- rules += ' jc131';
221
- rules += ' Mj131';
222
- rules += ' -Zn3gsb-L0uB6Qb131';
223
- rules += ' LksArhc131';
224
- rules += ' _oa131';
225
- rules += ' _va131';
226
- rules += ' uk131';
227
- rules += ' ucJ9TBTb131';
228
- rules += ' ud3Euai131';
229
- rules += ' uea131';
230
- rules += ' ugb131';
231
- rules += ' uhd131';
232
- rules += ' uje131';
233
- rules += ' u2NhKxcl131';
234
- rules += ' uic131';
235
- rules += ' -_6BNtrc-c131';
236
- rules += ' vx131';
237
- rules += ' xb131';
238
- rules += ' _xa131';
239
- rules += ' _Fd131';
240
- rules += ' _FnuYUweb131';
241
- rules += ' px131';
242
- if (props.variant === "negative") rules += ' gB131';
243
- else if (props.variant === "positive") rules += ' g1131';
244
- else if (props.variant === "info") rules += ' g2131';
245
- else if (props.variant === "neutral") rules += ' g6131';
246
- rules += ' -_8sjo0b-t5ZbAob131';
247
- if (props.isExpanded) rules += ' _nd131';
248
- else rules += ' _nLeasBb131';
249
- rules += ' _8d131';
204
+ if (props.isFocusVisible) rules += ' _Lf15';
205
+ else rules += ' _Le15';
206
+ if (props.isExpanded) rules += ' Ok15';
207
+ else rules += ' Oh15';
208
+ rules += ' _Mc15';
209
+ rules += ' _Kd15';
210
+ rules += ' sd15';
211
+ rules += ' Ul15';
212
+ rules += ' ql15';
213
+ rules += ' Sf15';
214
+ rules += ' Rt15';
215
+ rules += ' Te15';
216
+ rules += ' Qe15';
217
+ rules += ' oc15';
218
+ rules += ' nc15';
219
+ rules += ' kc15';
220
+ rules += ' jc15';
221
+ rules += ' Mj15';
222
+ rules += ' -Zn3gsb-L0uB6Qb15';
223
+ rules += ' LksArhc15';
224
+ rules += ' _oa15';
225
+ rules += ' _va15';
226
+ rules += ' uk15';
227
+ rules += ' ucJ9TBTb15';
228
+ rules += ' ud3Euai15';
229
+ rules += ' uea15';
230
+ rules += ' ugb15';
231
+ rules += ' uhd15';
232
+ rules += ' uje15';
233
+ rules += ' u2NhKxcl15';
234
+ rules += ' uic15';
235
+ rules += ' -_6BNtrc-c15';
236
+ rules += ' vx15';
237
+ rules += ' xb15';
238
+ rules += ' _xa15';
239
+ rules += ' _Fd15';
240
+ rules += ' _FnuYUweb15';
241
+ rules += ' px15';
242
+ if (props.variant === "negative") rules += ' gB15';
243
+ else if (props.variant === "positive") rules += ' g115';
244
+ else if (props.variant === "info") rules += ' g215';
245
+ else if (props.variant === "neutral") rules += ' g615';
246
+ rules += ' -_8sjo0b-t5ZbAob15';
247
+ if (props.isExpanded) rules += ' _nd15';
248
+ else rules += ' _nLeasBb15';
249
+ rules += ' _8d15';
250
250
  return rules;
251
251
  };
252
252
  const $f1992060af7549d9$var$toastBody = function anonymous(props) {
253
253
  let rules = " ";
254
- if (props.isSingle) rules += ' sd131';
255
- else rules += ' se131';
256
- rules += ' D4w1sLc131';
257
- rules += ' CWLL0Xb131';
258
- rules += ' _ub131';
259
- rules += ' _wb131';
260
- rules += ' eb131';
261
- rules += ' qj131';
262
- rules += ' Ue131';
254
+ if (props.isSingle) rules += ' sd15';
255
+ else rules += ' se15';
256
+ rules += ' D4w1sLc15';
257
+ rules += ' CWLL0Xb15';
258
+ rules += ' _ub15';
259
+ rules += ' _wb15';
260
+ rules += ' eb15';
261
+ rules += ' qj15';
262
+ rules += ' Ue15';
263
263
  return rules;
264
264
  };
265
- const $f1992060af7549d9$var$toastContent = " sd131 Ue131 qe131 ea131 zk52g2d131 yk52g2d131 Bk52g2d131 Ak52g2d131 ri131 ZJ131 -nTSCV-LTAEPe131 __ZLTAEPe131 Na131";
265
+ const $f1992060af7549d9$var$toastContent = " sd15 Ue15 qe15 ea15 zk52g2d15 yk52g2d15 Bk52g2d15 Ak52g2d15 ri15 ZJ15 -nTSCV-LTAEPe15 __ZLTAEPe15 Na15";
266
266
  const $f1992060af7549d9$var$controls = function anonymous(props) {
267
267
  let rules = " ";
268
- rules += ' _pb131';
269
- if (props.isExpanded) rules += ' sd131';
270
- else rules += ' sk131';
271
- rules += ' _Cb131';
272
- rules += ' Ue131';
273
- rules += ' qe131';
274
- if (props.isExpanded) rules += ' _Ib131';
275
- else rules += ' _Ia131';
268
+ rules += ' _pb15';
269
+ if (props.isExpanded) rules += ' sd15';
270
+ else rules += ' sk15';
271
+ rules += ' _Cb15';
272
+ rules += ' Ue15';
273
+ rules += ' qe15';
274
+ if (props.isExpanded) rules += ' _Ib15';
275
+ else rules += ' _Ia15';
276
276
  return rules;
277
277
  };
278
278
  const $f1992060af7549d9$var$ICONS = {
@@ -349,7 +349,7 @@ function $f1992060af7549d9$export$f2815235e76a62b9(props) {
349
349
  children: [
350
350
  isExpanded && // eslint-disable-next-line
351
351
  /*#__PURE__*/ (0, $fI0QS$reactjsxruntime.jsx)("div", {
352
- className: (0, ($parcel$interopDefault($aa16d99d2c9699f6$exports)))['toast-background'] + " _Pb131 Wr131 _lr131 _Ar131 _zr131 g8131",
352
+ className: (0, ($parcel$interopDefault($aa16d99d2c9699f6$exports)))['toast-background'] + " _Pb15 Wr15 _lr15 _Ar15 _zr15 g815",
353
353
  onClick: collapse
354
354
  }),
355
355
  /*#__PURE__*/ (0, $fI0QS$reactjsxruntime.jsx)($f1992060af7549d9$var$SpectrumToastList, {
@@ -501,7 +501,7 @@ function $f1992060af7549d9$export$f9b1e1c88454fa08(props) {
501
501
  !isExpanded && visibleToasts.length > 1 && /*#__PURE__*/ (0, $fI0QS$reactjsxruntime.jsxs)((0, $6e265ff388155b91$exports.ActionButton), {
502
502
  isQuiet: true,
503
503
  staticColor: "white",
504
- styles: " zPgKvMe131 yPgKvMe131 BPgKvMe131 APgKvMe131",
504
+ styles: " zPgKvMe15 yPgKvMe15 BPgKvMe15 APgKvMe15",
505
505
  // Make the chevron line up with the toast text, even though there is padding within the button.
506
506
  UNSAFE_style: {
507
507
  marginInlineStart: variant === 'neutral' ? -10 : 14
@@ -532,7 +532,7 @@ function $f1992060af7549d9$export$f9b1e1c88454fa08(props) {
532
532
  if (toast.content.shouldCloseOnAction) state.close(toast.key);
533
533
  },
534
534
  UNSAFE_className: ctx && isMain ? (0, ($parcel$interopDefault($aa16d99d2c9699f6$exports)))['toast-action'] : undefined,
535
- styles: " IM131 zzz3eAe131 yzz3eAe131 Bzz3eAe131 Azz3eAe131",
535
+ styles: " IM15 zzz3eAe15 yzz3eAe15 Bzz3eAe15 Azz3eAe15",
536
536
  children: toast.content.actionLabel
537
537
  })
538
538
  ]
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Toast.tsx"],"sourcesContent":["/*\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from './ActionButton';\nimport AlertIcon from '../s2wf-icons/S2_Icon_AlertTriangle_20_N.svg';\nimport {Button} from './Button';\nimport {CenterBaseline} from './CenterBaseline';\nimport CheckmarkIcon from '../s2wf-icons/S2_Icon_CheckmarkCircle_20_N.svg';\nimport Chevron from '../s2wf-icons/S2_Icon_ChevronDown_20_N.svg';\nimport {CloseButton} from './CloseButton';\nimport {createContext, ReactNode, useContext, useEffect, useMemo, useRef} from 'react';\nimport {DOMProps} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {flushSync} from 'react-dom';\nimport {focusRing, style} from '../style' with {type: 'macro'};\nimport {FocusScope} from 'react-aria/FocusScope';\nimport {getEventTarget} from 'react-aria/private/utils/shadowdom/DOMFunctions';\nimport InfoIcon from '../s2wf-icons/S2_Icon_InfoCircle_20_N.svg';\nimport intlMessages from '../intl/*.json';\nimport {isWebKit} from 'react-aria/private/utils/platform';\nimport {ToastOptions as RACToastOptions, ToastQueue} from 'react-stately/useToastState';\n// @ts-ignore\nimport {Text} from './Content';\nimport {\n UNSTABLE_Toast as Toast,\n UNSTABLE_ToastContent as ToastContent,\n UNSTABLE_ToastList as ToastList,\n ToastProps,\n UNSTABLE_ToastRegion as ToastRegion,\n ToastRegionProps,\n UNSTABLE_ToastStateContext as ToastStateContext\n} from 'react-aria-components/Toast';\n\nimport toastCss from './Toast.module.css';\n\nimport {useEvent} from 'react-aria/private/utils/useEvent';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useMediaQuery} from './useMediaQuery';\nimport {useModalOverlay} from 'react-aria/useModalOverlay';\nimport {useOverlayTriggerState} from 'react-stately/useOverlayTriggerState';\n\nexport type ToastPlacement = 'top' | 'top end' | 'bottom' | 'bottom end';\nexport interface ToastContainerProps extends Omit<\n ToastRegionProps<SpectrumToastValue>,\n 'queue' | 'children' | 'style' | 'className' | 'render'\n> {\n /**\n * Placement of the toast container on the page.\n *\n * @default 'bottom'\n */\n placement?: ToastPlacement;\n}\n\nexport interface ToastOptions extends Omit<RACToastOptions, 'priority'>, DOMProps {\n /** A label for the action button within the toast. */\n actionLabel?: string;\n /** Handler that is called when the action button is pressed. */\n onAction?: () => void;\n /** Whether the toast should automatically close when an action is performed. */\n shouldCloseOnAction?: boolean;\n}\n\nexport interface SpectrumToastValue extends DOMProps {\n /** The content of the toast. */\n children: string;\n /** The variant (i.e. color) of the toast. */\n variant: 'positive' | 'negative' | 'info' | 'neutral';\n /** A label for the action button within the toast. */\n actionLabel?: string;\n /** Handler that is called when the action button is pressed. */\n onAction?: () => void;\n /** Whether the toast should automatically close when an action is performed. */\n shouldCloseOnAction?: boolean;\n}\n\nlet globalReduceMotion = false;\nfunction startViewTransition(fn: () => void, type: string) {\n if ('startViewTransition' in document) {\n // Safari doesn't support :active-view-transition-type() yet, so we fall back to a class on the html element.\n document.documentElement.classList.add(toastCss[type]);\n if (globalReduceMotion) {\n document.documentElement.classList.add(toastCss.reduceMotion);\n }\n\n let viewTransition = document.startViewTransition(() => flushSync(fn));\n\n viewTransition.ready.catch(() => {});\n viewTransition.finished.then(() => {\n document.documentElement.classList.remove(toastCss[type], toastCss.reduceMotion);\n });\n } else {\n fn();\n }\n}\n\n// There is a single global toast queue instance for the whole app, initialized lazily.\nlet globalToastQueue: ToastQueue<SpectrumToastValue> | null = null;\nfunction getGlobalToastQueue() {\n if (!globalToastQueue) {\n globalToastQueue = new ToastQueue({\n maxVisibleToasts: Infinity,\n wrapUpdate(fn, action) {\n startViewTransition(fn, `toast-${action}`);\n }\n });\n }\n\n return globalToastQueue;\n}\n\nfunction addToast(\n children: string,\n variant: SpectrumToastValue['variant'],\n options: ToastOptions = {}\n) {\n let value = {\n children,\n variant,\n actionLabel: options.actionLabel,\n onAction: options.onAction,\n shouldCloseOnAction: options.shouldCloseOnAction,\n ...filterDOMProps(options)\n };\n\n // Minimum time of 5s from https://spectrum.adobe.com/page/toast/#Auto-dismissible\n // Actionable toasts cannot be auto dismissed. That would fail WCAG SC 2.2.1.\n // It is debatable whether non-actionable toasts would also fail.\n let timeout =\n options.timeout && !options.actionLabel ? Math.max(options.timeout, 5000) : undefined;\n let queue = getGlobalToastQueue();\n let key = queue.add(value, {timeout, onClose: options.onClose});\n return () => queue.close(key);\n}\n\ntype CloseFunction = () => void;\n\nconst SpectrumToastQueue = {\n /** Queues a neutral toast. */\n neutral(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'neutral', options);\n },\n /** Queues a positive toast. */\n positive(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'positive', options);\n },\n /** Queues a negative toast. */\n negative(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'negative', options);\n },\n /** Queues an informational toast. */\n info(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'info', options);\n }\n};\n\nexport {SpectrumToastQueue as ToastQueue};\n\nconst toastRegion = style({\n ...focusRing(),\n display: 'flex',\n flexDirection: {\n placement: {\n top: 'column',\n bottom: 'column-reverse'\n }\n },\n position: 'fixed',\n insetX: 0,\n width: 'fit',\n top: {\n placement: {\n top: {\n default: 16,\n isExpanded: 0\n }\n }\n },\n bottom: {\n placement: {\n bottom: {\n default: 16,\n isExpanded: 0\n }\n }\n },\n marginStart: {\n align: {\n start: 16,\n center: 'auto',\n end: 'auto'\n }\n },\n marginEnd: {\n align: {\n start: 'auto',\n center: 'auto',\n end: 16\n }\n },\n boxSizing: 'border-box',\n maxHeight: 'full',\n borderRadius: 'lg'\n});\n\nconst toastList = style({\n position: 'relative',\n flexGrow: 1,\n display: 'flex',\n gap: 8,\n flexDirection: {\n placement: {\n top: 'column',\n bottom: 'column-reverse'\n }\n },\n boxSizing: 'border-box',\n marginY: 0,\n padding: {\n default: 0,\n // Add padding when expanded to account for focus ring.\n isExpanded: 8\n },\n paddingBottom: {\n isExpanded: {\n placement: {\n top: 8,\n bottom: 16\n }\n }\n },\n paddingTop: {\n isExpanded: {\n placement: {\n top: 16,\n bottom: 8\n }\n }\n },\n margin: 0,\n marginX: {\n default: 0,\n // Undo padding for focus ring.\n isExpanded: -8\n },\n overflow: {\n isExpanded: 'auto'\n }\n});\n\nconst toastStyle = style({\n ...focusRing(),\n outlineColor: {\n default: 'focus-ring',\n isExpanded: 'white'\n },\n display: 'flex',\n gap: 16,\n paddingStart: 16,\n paddingEnd: 8,\n paddingY: 12,\n borderRadius: 'lg',\n minHeight: 56,\n '--maxWidth': {\n type: 'maxWidth',\n value: 336\n },\n maxWidth: 'min(var(--maxWidth), 90vw)',\n boxSizing: 'border-box',\n flexShrink: 0,\n font: 'ui',\n color: 'white',\n backgroundColor: {\n variant: {\n neutral: 'neutral-subdued',\n info: 'informative',\n positive: 'positive',\n negative: 'negative'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n boxShadow: {\n default: 'elevated',\n isExpanded: 'none'\n },\n willChange: 'transform'\n});\n\nconst toastBody = style({\n // The top toast in a non-expanded stack has the expand button, so it is rendered as a grid.\n // Otherwise it uses flex so the content can wrap when needed.\n display: {\n default: 'grid',\n isSingle: 'flex'\n },\n gridTemplateColumns: ['auto', '1fr', 'auto'],\n gridTemplateAreas: ['content content content', 'expand . action'],\n flexGrow: 1,\n flexWrap: 'wrap',\n alignItems: 'center',\n columnGap: 24,\n rowGap: 8\n});\n\nconst toastContent = style({\n display: 'flex',\n gap: 8,\n alignItems: 'baseline',\n gridArea: 'content',\n cursor: 'default',\n width: 'fit',\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n minWidth: 0\n});\n\nconst controls = style({\n colorScheme: 'light',\n display: {\n default: 'none',\n isExpanded: 'flex'\n },\n justifyContent: 'end',\n gap: 8,\n opacity: {\n default: 0,\n isExpanded: 1\n }\n});\n\nconst ICONS = {\n info: InfoIcon,\n negative: AlertIcon,\n positive: CheckmarkIcon\n};\n\ninterface ToastContainerContextValue {\n isExpanded: boolean;\n toggleExpanded: () => void;\n}\n\nconst ToastContainerContext = createContext<ToastContainerContextValue | null>(null);\n\n/**\n * A ToastContainer renders the queued toasts in an application. It should be placed\n * at the root of the app.\n */\nexport function ToastContainer(props: ToastContainerProps): ReactNode {\n let {placement = 'bottom'} = props;\n let queue = getGlobalToastQueue();\n let align = 'center';\n [placement, align = 'center'] = placement.split(' ') as any;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let regionRef = useRef<HTMLDivElement | null>(null);\n\n let state = useOverlayTriggerState({});\n let {isOpen: isExpanded, close, toggle} = state;\n let ctx = useMemo(\n () => ({\n isExpanded,\n toggleExpanded() {\n if (!isExpanded && queue.visibleToasts.length <= 1) {\n return;\n }\n\n startViewTransition(() => toggle(), isExpanded ? 'toast-collapse' : 'toast-expand');\n }\n }),\n [isExpanded, toggle, queue]\n );\n\n // Set the state to collapsed whenever the queue is emptied.\n useEffect(() => {\n return queue.subscribe(() => {\n if (queue.visibleToasts.length === 0 && isExpanded) {\n close();\n }\n });\n }, [queue, isExpanded, close]);\n\n let collapse = () => {\n regionRef.current?.focus();\n ctx.toggleExpanded();\n };\n\n // Prevent scroll, aria hide outside, and contain focus when expanded, since we take over the whole screen.\n // Attach event handler to the ref since ToastRegion doesn't pass through onKeyDown.\n useModalOverlay({}, state, regionRef);\n useEvent(\n regionRef,\n 'keydown',\n isExpanded\n ? e => {\n if (e.key === 'Escape') {\n collapse();\n }\n }\n : undefined\n );\n\n let prefersReducedMotion = useMediaQuery('(prefers-reduced-motion)');\n let reduceMotion = props['PRIVATE_forceReducedMotion'] ?? prefersReducedMotion;\n useEffect(() => {\n let oldGlobalReduceMotion = globalReduceMotion;\n globalReduceMotion = reduceMotion;\n return () => {\n globalReduceMotion = oldGlobalReduceMotion;\n };\n }, [reduceMotion]);\n\n return (\n <ToastRegion\n {...props}\n ref={regionRef}\n queue={queue}\n className={renderProps =>\n toastRegion({\n ...renderProps,\n placement,\n align,\n isExpanded\n })\n }>\n <FocusScope contain={isExpanded}>\n <ToastContainerContext.Provider value={ctx}>\n {isExpanded && (\n // eslint-disable-next-line\n <div\n className={\n toastCss['toast-background'] +\n style({position: 'fixed', inset: 0, backgroundColor: 'transparent-black-500'})\n }\n onClick={collapse}\n />\n )}\n <SpectrumToastList placement={placement} align={align} reduceMotion={reduceMotion} />\n <div className={toastCss['toast-controls'] + controls({isExpanded})}>\n <ActionButton\n size=\"S\"\n onPress={() => queue.clear()}\n // Default focus ring does not have enough contrast against gray background.\n UNSAFE_style={{outlineColor: 'white'}}>\n {stringFormatter.format('toast.clearAll')}\n </ActionButton>\n <ActionButton size=\"S\" onPress={collapse} UNSAFE_style={{outlineColor: 'white'}}>\n {stringFormatter.format('toast.collapse')}\n </ActionButton>\n </div>\n </ToastContainerContext.Provider>\n </FocusScope>\n </ToastRegion>\n );\n}\n\nfunction SpectrumToastList({placement, align, reduceMotion}) {\n let {isExpanded, toggleExpanded} = useContext(ToastContainerContext)!;\n\n // Attach click handler to ref since ToastList doesn't pass through onClick/onPress.\n let toastListRef = useRef(null);\n useEvent(toastListRef, 'click', e => {\n // Have to check if this is a button because stopPropagation in react events doesn't affect native events.\n if (!isExpanded && !(getEventTarget(e) as Element)?.closest('button')) {\n toggleExpanded();\n }\n });\n\n return (\n <ToastList<SpectrumToastValue>\n ref={toastListRef}\n style={({isHovered}) => {\n let origin = isHovered ? 95 : 55;\n return {\n perspective: 80,\n perspectiveOrigin:\n 'center ' + (placement === 'top' ? `calc(100% + ${origin}px)` : `${-origin}px`),\n transition: 'perspective-origin 400ms'\n };\n }}\n className={\n toastCss[isExpanded ? 'toast-list-expanded' : 'toast-list-collapsed'] +\n toastList({placement, align, isExpanded})\n }>\n {({toast}) => (\n <SpectrumToast\n toast={toast}\n placement={placement}\n align={align}\n reduceMotion={reduceMotion}\n />\n )}\n </ToastList>\n );\n}\n\ninterface SpectrumToastProps extends ToastProps<SpectrumToastValue> {\n placement?: 'top' | 'bottom';\n align?: 'start' | 'center' | 'end';\n reduceMotion?: boolean;\n}\n\n// Exported locally for stories.\nexport function SpectrumToast(props: SpectrumToastProps): ReactNode {\n let {toast, placement = 'bottom', align = 'center'} = props;\n let variant = toast.content.variant || 'info';\n let Icon = ICONS[variant];\n let state = useContext(ToastStateContext)!;\n let visibleToasts = state.visibleToasts;\n let index = visibleToasts.indexOf(toast);\n let isMain = index <= 0;\n let ctx = useContext(ToastContainerContext);\n let isExpanded = ctx?.isExpanded || false;\n let toastRef = useRef<HTMLDivElement | null>(null);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n\n // When not expanded, use a presentational div for the toasts behind the top one.\n // The content is invisible, all we show is the background color.\n if (!isMain && ctx && !ctx.isExpanded) {\n return (\n <div\n role=\"presentation\"\n style={{\n position: 'absolute',\n [placement === 'top' ? 'bottom' : 'top']: 0,\n left: 0,\n width: '100%',\n translate: `0 0 ${(-12 * index) / 16}rem`,\n // Only 3 toasts are visible in the stack at once, but all toasts are in the DOM.\n // This allows view transitions to smoothly animate them from where they would be\n // in the collapsed stack to their final position in the expanded list.\n opacity: index >= 3 ? 0 : 1,\n zIndex: visibleToasts.length - index - 1,\n // When reduced motion is enabled, use append index to view-transition-name\n // so that adding/removing a toast cross fades instead of transitioning the position.\n // This works because the toasts are seen as separate elements instead of the same one when their index changes.\n viewTransitionName: toast.key + (props.reduceMotion ? '-' + index : ''),\n viewTransitionClass: [toastCss.toast, toastCss['background-toast']]\n .map(c => CSS.escape(c))\n .join(' ')\n }}\n className={\n toastCss.toast + toastStyle({variant: toast.content.variant || 'info', index, isExpanded})\n }\n ref={fixSafariTransform}\n />\n );\n }\n\n return (\n <Toast\n ref={toastRef}\n toast={toast}\n style={{\n zIndex: visibleToasts.length - index - 1,\n viewTransitionName: toast.key,\n viewTransitionClass: [\n toastCss.toast,\n !isMain ? toastCss['background-toast'] : '',\n toastCss[placement],\n toastCss[align]\n ]\n .filter(Boolean)\n .map(c => CSS.escape(c))\n .join(' ')\n }}\n className={renderProps =>\n toastCss.toast +\n toastStyle({\n ...renderProps,\n variant: toast.content.variant || 'info',\n index,\n isExpanded\n })\n }>\n <div\n role=\"presentation\"\n className={toastBody({isSingle: !isMain || visibleToasts.length <= 1 || isExpanded})}>\n <ToastContent\n className={toastContent + (ctx && isMain ? ` ${toastCss['toast-content']}` : null)}>\n {Icon && (\n <CenterBaseline>\n <Icon />\n </CenterBaseline>\n )}\n <Text slot=\"title\">{toast.content.children}</Text>\n </ToastContent>\n {!isExpanded && visibleToasts.length > 1 && (\n <ActionButton\n isQuiet\n staticColor=\"white\"\n styles={style({gridArea: 'expand'})}\n // Make the chevron line up with the toast text, even though there is padding within the button.\n UNSAFE_style={{marginInlineStart: variant === 'neutral' ? -10 : 14}}\n UNSAFE_className={ctx && isMain ? toastCss['toast-expand'] : undefined}\n onPress={() => {\n // This button disappears when clicked, so move focus to the toast.\n toastRef.current?.focus();\n ctx?.toggleExpanded();\n }}>\n <Text>{stringFormatter.format('toast.showAll')}</Text>\n {/* @ts-ignore */}\n <Chevron UNSAFE_style={{rotate: placement === 'bottom' ? '180deg' : undefined}} />\n </ActionButton>\n )}\n {toast.content.actionLabel && (\n <Button\n variant=\"secondary\"\n fillStyle=\"outline\"\n staticColor=\"white\"\n onPress={() => {\n toast.content.onAction?.();\n if (toast.content.shouldCloseOnAction) {\n state.close(toast.key);\n }\n }}\n UNSAFE_className={ctx && isMain ? toastCss['toast-action'] : undefined}\n styles={style({marginStart: 'auto', gridArea: 'action'})}>\n {toast.content.actionLabel}\n </Button>\n )}\n </div>\n <CloseButton\n staticColor=\"white\"\n UNSAFE_className={ctx && isMain ? toastCss['toast-close'] : undefined}\n />\n </Toast>\n );\n}\n\nfunction fixSafariTransform(el: HTMLDivElement | null) {\n // Safari has a bug where the toasts display in the wrong position (CSS transform is not applied correctly).\n // Work around this by removing it, forcing a reflow, and re-applying.\n if (el && isWebKit()) {\n let translate = el.style.translate;\n el.style.translate = '';\n el.offsetHeight;\n el.style.translate = translate;\n }\n}\n"],"names":[],"version":3,"file":"Toast.cjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Toast.tsx"],"sourcesContent":["/*\n * Copyright 2025 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButton} from './ActionButton';\nimport AlertIcon from '../s2wf-icons/S2_Icon_AlertTriangle_20_N.svg';\nimport {Button} from './Button';\nimport {CenterBaseline} from './CenterBaseline';\nimport CheckmarkIcon from '../s2wf-icons/S2_Icon_CheckmarkCircle_20_N.svg';\nimport Chevron from '../s2wf-icons/S2_Icon_ChevronDown_20_N.svg';\nimport {CloseButton} from './CloseButton';\nimport {createContext, ReactNode, useContext, useEffect, useMemo, useRef} from 'react';\nimport {DOMProps} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {flushSync} from 'react-dom';\nimport {focusRing, style} from '../style' with {type: 'macro'};\nimport {FocusScope} from 'react-aria/FocusScope';\nimport {getEventTarget} from 'react-aria/private/utils/shadowdom/DOMFunctions';\nimport InfoIcon from '../s2wf-icons/S2_Icon_InfoCircle_20_N.svg';\nimport intlMessages from '../intl/*.json';\nimport {isWebKit} from 'react-aria/private/utils/platform';\nimport {ToastOptions as RACToastOptions, ToastQueue} from 'react-stately/useToastState';\nimport {Text} from './Content';\nimport {\n UNSTABLE_Toast as Toast,\n UNSTABLE_ToastContent as ToastContent,\n UNSTABLE_ToastList as ToastList,\n ToastProps,\n UNSTABLE_ToastRegion as ToastRegion,\n ToastRegionProps,\n UNSTABLE_ToastStateContext as ToastStateContext\n} from 'react-aria-components/Toast';\nimport toastCss from './Toast.module.css';\nimport {useEvent} from 'react-aria/private/utils/useEvent';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useMediaQuery} from './useMediaQuery';\nimport {useModalOverlay} from 'react-aria/useModalOverlay';\nimport {useOverlayTriggerState} from 'react-stately/useOverlayTriggerState';\n\nexport type ToastPlacement = 'top' | 'top end' | 'bottom' | 'bottom end';\nexport interface ToastContainerProps extends Omit<\n ToastRegionProps<SpectrumToastValue>,\n 'queue' | 'children' | 'style' | 'className' | 'render'\n> {\n /**\n * Placement of the toast container on the page.\n *\n * @default 'bottom'\n */\n placement?: ToastPlacement;\n}\n\nexport interface ToastOptions extends Omit<RACToastOptions, 'priority'>, DOMProps {\n /** A label for the action button within the toast. */\n actionLabel?: string;\n /** Handler that is called when the action button is pressed. */\n onAction?: () => void;\n /** Whether the toast should automatically close when an action is performed. */\n shouldCloseOnAction?: boolean;\n}\n\nexport interface SpectrumToastValue extends DOMProps {\n /** The content of the toast. */\n children: string;\n /** The variant (i.e. color) of the toast. */\n variant: 'positive' | 'negative' | 'info' | 'neutral';\n /** A label for the action button within the toast. */\n actionLabel?: string;\n /** Handler that is called when the action button is pressed. */\n onAction?: () => void;\n /** Whether the toast should automatically close when an action is performed. */\n shouldCloseOnAction?: boolean;\n}\n\nlet globalReduceMotion = false;\nfunction startViewTransition(fn: () => void, type: string) {\n if ('startViewTransition' in document) {\n // Safari doesn't support :active-view-transition-type() yet, so we fall back to a class on the html element.\n document.documentElement.classList.add(toastCss[type]);\n if (globalReduceMotion) {\n document.documentElement.classList.add(toastCss.reduceMotion);\n }\n\n let viewTransition = document.startViewTransition(() => flushSync(fn));\n\n viewTransition.ready.catch(() => {});\n viewTransition.finished.then(() => {\n document.documentElement.classList.remove(toastCss[type], toastCss.reduceMotion);\n });\n } else {\n fn();\n }\n}\n\n// There is a single global toast queue instance for the whole app, initialized lazily.\nlet globalToastQueue: ToastQueue<SpectrumToastValue> | null = null;\nfunction getGlobalToastQueue() {\n if (!globalToastQueue) {\n globalToastQueue = new ToastQueue({\n maxVisibleToasts: Infinity,\n wrapUpdate(fn, action) {\n startViewTransition(fn, `toast-${action}`);\n }\n });\n }\n\n return globalToastQueue;\n}\n\nfunction addToast(\n children: string,\n variant: SpectrumToastValue['variant'],\n options: ToastOptions = {}\n) {\n let value = {\n children,\n variant,\n actionLabel: options.actionLabel,\n onAction: options.onAction,\n shouldCloseOnAction: options.shouldCloseOnAction,\n ...filterDOMProps(options)\n };\n\n // Minimum time of 5s from https://spectrum.adobe.com/page/toast/#Auto-dismissible\n // Actionable toasts cannot be auto dismissed. That would fail WCAG SC 2.2.1.\n // It is debatable whether non-actionable toasts would also fail.\n let timeout =\n options.timeout && !options.actionLabel ? Math.max(options.timeout, 5000) : undefined;\n let queue = getGlobalToastQueue();\n let key = queue.add(value, {timeout, onClose: options.onClose});\n return () => queue.close(key);\n}\n\ntype CloseFunction = () => void;\n\nconst SpectrumToastQueue = {\n /** Queues a neutral toast. */\n neutral(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'neutral', options);\n },\n /** Queues a positive toast. */\n positive(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'positive', options);\n },\n /** Queues a negative toast. */\n negative(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'negative', options);\n },\n /** Queues an informational toast. */\n info(children: string, options: ToastOptions = {}): CloseFunction {\n return addToast(children, 'info', options);\n }\n};\n\nexport {SpectrumToastQueue as ToastQueue};\n\nconst toastRegion = style({\n ...focusRing(),\n display: 'flex',\n flexDirection: {\n placement: {\n top: 'column',\n bottom: 'column-reverse'\n }\n },\n position: 'fixed',\n insetX: 0,\n width: 'fit',\n top: {\n placement: {\n top: {\n default: 16,\n isExpanded: 0\n }\n }\n },\n bottom: {\n placement: {\n bottom: {\n default: 16,\n isExpanded: 0\n }\n }\n },\n marginStart: {\n align: {\n start: 16,\n center: 'auto',\n end: 'auto'\n }\n },\n marginEnd: {\n align: {\n start: 'auto',\n center: 'auto',\n end: 16\n }\n },\n boxSizing: 'border-box',\n maxHeight: 'full',\n borderRadius: 'lg'\n});\n\nconst toastList = style({\n position: 'relative',\n flexGrow: 1,\n display: 'flex',\n gap: 8,\n flexDirection: {\n placement: {\n top: 'column',\n bottom: 'column-reverse'\n }\n },\n boxSizing: 'border-box',\n marginY: 0,\n padding: {\n default: 0,\n // Add padding when expanded to account for focus ring.\n isExpanded: 8\n },\n paddingBottom: {\n isExpanded: {\n placement: {\n top: 8,\n bottom: 16\n }\n }\n },\n paddingTop: {\n isExpanded: {\n placement: {\n top: 16,\n bottom: 8\n }\n }\n },\n margin: 0,\n marginX: {\n default: 0,\n // Undo padding for focus ring.\n isExpanded: -8\n },\n overflow: {\n isExpanded: 'auto'\n }\n});\n\nconst toastStyle = style({\n ...focusRing(),\n outlineColor: {\n default: 'focus-ring',\n isExpanded: 'white'\n },\n display: 'flex',\n gap: 16,\n paddingStart: 16,\n paddingEnd: 8,\n paddingY: 12,\n borderRadius: 'lg',\n minHeight: 56,\n '--maxWidth': {\n type: 'maxWidth',\n value: 336\n },\n maxWidth: 'min(var(--maxWidth), 90vw)',\n boxSizing: 'border-box',\n flexShrink: 0,\n font: 'ui',\n color: 'white',\n backgroundColor: {\n variant: {\n neutral: 'neutral-subdued',\n info: 'informative',\n positive: 'positive',\n negative: 'negative'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n boxShadow: {\n default: 'elevated',\n isExpanded: 'none'\n },\n willChange: 'transform'\n});\n\nconst toastBody = style({\n // The top toast in a non-expanded stack has the expand button, so it is rendered as a grid.\n // Otherwise it uses flex so the content can wrap when needed.\n display: {\n default: 'grid',\n isSingle: 'flex'\n },\n gridTemplateColumns: ['auto', '1fr', 'auto'],\n gridTemplateAreas: ['content content content', 'expand . action'],\n flexGrow: 1,\n flexWrap: 'wrap',\n alignItems: 'center',\n columnGap: 24,\n rowGap: 8\n});\n\nconst toastContent = style({\n display: 'flex',\n gap: 8,\n alignItems: 'baseline',\n gridArea: 'content',\n cursor: 'default',\n width: 'fit',\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n minWidth: 0\n});\n\nconst controls = style({\n colorScheme: 'light',\n display: {\n default: 'none',\n isExpanded: 'flex'\n },\n justifyContent: 'end',\n gap: 8,\n opacity: {\n default: 0,\n isExpanded: 1\n }\n});\n\nconst ICONS = {\n info: InfoIcon,\n negative: AlertIcon,\n positive: CheckmarkIcon\n};\n\ninterface ToastContainerContextValue {\n isExpanded: boolean;\n toggleExpanded: () => void;\n}\n\nconst ToastContainerContext = createContext<ToastContainerContextValue | null>(null);\n\n/**\n * A ToastContainer renders the queued toasts in an application. It should be placed\n * at the root of the app.\n */\nexport function ToastContainer(props: ToastContainerProps): ReactNode {\n let {placement = 'bottom'} = props;\n let queue = getGlobalToastQueue();\n let align = 'center';\n [placement, align = 'center'] = placement.split(' ') as any;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let regionRef = useRef<HTMLDivElement | null>(null);\n\n let state = useOverlayTriggerState({});\n let {isOpen: isExpanded, close, toggle} = state;\n let ctx = useMemo(\n () => ({\n isExpanded,\n toggleExpanded() {\n if (!isExpanded && queue.visibleToasts.length <= 1) {\n return;\n }\n\n startViewTransition(() => toggle(), isExpanded ? 'toast-collapse' : 'toast-expand');\n }\n }),\n [isExpanded, toggle, queue]\n );\n\n // Set the state to collapsed whenever the queue is emptied.\n useEffect(() => {\n return queue.subscribe(() => {\n if (queue.visibleToasts.length === 0 && isExpanded) {\n close();\n }\n });\n }, [queue, isExpanded, close]);\n\n let collapse = () => {\n regionRef.current?.focus();\n ctx.toggleExpanded();\n };\n\n // Prevent scroll, aria hide outside, and contain focus when expanded, since we take over the whole screen.\n // Attach event handler to the ref since ToastRegion doesn't pass through onKeyDown.\n useModalOverlay({}, state, regionRef);\n useEvent(\n regionRef,\n 'keydown',\n isExpanded\n ? e => {\n if (e.key === 'Escape') {\n collapse();\n }\n }\n : undefined\n );\n\n let prefersReducedMotion = useMediaQuery('(prefers-reduced-motion)');\n let reduceMotion = props['PRIVATE_forceReducedMotion'] ?? prefersReducedMotion;\n useEffect(() => {\n let oldGlobalReduceMotion = globalReduceMotion;\n globalReduceMotion = reduceMotion;\n return () => {\n globalReduceMotion = oldGlobalReduceMotion;\n };\n }, [reduceMotion]);\n\n return (\n <ToastRegion\n {...props}\n ref={regionRef}\n queue={queue}\n className={renderProps =>\n toastRegion({\n ...renderProps,\n placement,\n align,\n isExpanded\n })\n }>\n <FocusScope contain={isExpanded}>\n <ToastContainerContext.Provider value={ctx}>\n {isExpanded && (\n // eslint-disable-next-line\n <div\n className={\n toastCss['toast-background'] +\n style({position: 'fixed', inset: 0, backgroundColor: 'transparent-black-500'})\n }\n onClick={collapse}\n />\n )}\n <SpectrumToastList placement={placement} align={align} reduceMotion={reduceMotion} />\n <div className={toastCss['toast-controls'] + controls({isExpanded})}>\n <ActionButton\n size=\"S\"\n onPress={() => queue.clear()}\n // Default focus ring does not have enough contrast against gray background.\n UNSAFE_style={{outlineColor: 'white'}}>\n {stringFormatter.format('toast.clearAll')}\n </ActionButton>\n <ActionButton size=\"S\" onPress={collapse} UNSAFE_style={{outlineColor: 'white'}}>\n {stringFormatter.format('toast.collapse')}\n </ActionButton>\n </div>\n </ToastContainerContext.Provider>\n </FocusScope>\n </ToastRegion>\n );\n}\n\nfunction SpectrumToastList({placement, align, reduceMotion}) {\n let {isExpanded, toggleExpanded} = useContext(ToastContainerContext)!;\n\n // Attach click handler to ref since ToastList doesn't pass through onClick/onPress.\n let toastListRef = useRef(null);\n useEvent(toastListRef, 'click', e => {\n // Have to check if this is a button because stopPropagation in react events doesn't affect native events.\n if (!isExpanded && !(getEventTarget(e) as Element)?.closest('button')) {\n toggleExpanded();\n }\n });\n\n return (\n <ToastList<SpectrumToastValue>\n ref={toastListRef}\n style={({isHovered}) => {\n let origin = isHovered ? 95 : 55;\n return {\n perspective: 80,\n perspectiveOrigin:\n 'center ' + (placement === 'top' ? `calc(100% + ${origin}px)` : `${-origin}px`),\n transition: 'perspective-origin 400ms'\n };\n }}\n className={\n toastCss[isExpanded ? 'toast-list-expanded' : 'toast-list-collapsed'] +\n toastList({placement, align, isExpanded})\n }>\n {({toast}) => (\n <SpectrumToast\n toast={toast}\n placement={placement}\n align={align}\n reduceMotion={reduceMotion}\n />\n )}\n </ToastList>\n );\n}\n\ninterface SpectrumToastProps extends ToastProps<SpectrumToastValue> {\n placement?: 'top' | 'bottom';\n align?: 'start' | 'center' | 'end';\n reduceMotion?: boolean;\n}\n\n// Exported locally for stories.\nexport function SpectrumToast(props: SpectrumToastProps): ReactNode {\n let {toast, placement = 'bottom', align = 'center'} = props;\n let variant = toast.content.variant || 'info';\n let Icon = ICONS[variant];\n let state = useContext(ToastStateContext)!;\n let visibleToasts = state.visibleToasts;\n let index = visibleToasts.indexOf(toast);\n let isMain = index <= 0;\n let ctx = useContext(ToastContainerContext);\n let isExpanded = ctx?.isExpanded || false;\n let toastRef = useRef<HTMLDivElement | null>(null);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n\n // When not expanded, use a presentational div for the toasts behind the top one.\n // The content is invisible, all we show is the background color.\n if (!isMain && ctx && !ctx.isExpanded) {\n return (\n <div\n role=\"presentation\"\n style={{\n position: 'absolute',\n [placement === 'top' ? 'bottom' : 'top']: 0,\n left: 0,\n width: '100%',\n translate: `0 0 ${(-12 * index) / 16}rem`,\n // Only 3 toasts are visible in the stack at once, but all toasts are in the DOM.\n // This allows view transitions to smoothly animate them from where they would be\n // in the collapsed stack to their final position in the expanded list.\n opacity: index >= 3 ? 0 : 1,\n zIndex: visibleToasts.length - index - 1,\n // When reduced motion is enabled, use append index to view-transition-name\n // so that adding/removing a toast cross fades instead of transitioning the position.\n // This works because the toasts are seen as separate elements instead of the same one when their index changes.\n viewTransitionName: toast.key + (props.reduceMotion ? '-' + index : ''),\n viewTransitionClass: [toastCss.toast, toastCss['background-toast']]\n .map(c => CSS.escape(c))\n .join(' ')\n }}\n className={\n toastCss.toast + toastStyle({variant: toast.content.variant || 'info', index, isExpanded})\n }\n ref={fixSafariTransform}\n />\n );\n }\n\n return (\n <Toast\n ref={toastRef}\n toast={toast}\n style={{\n zIndex: visibleToasts.length - index - 1,\n viewTransitionName: toast.key,\n viewTransitionClass: [\n toastCss.toast,\n !isMain ? toastCss['background-toast'] : '',\n toastCss[placement],\n toastCss[align]\n ]\n .filter(Boolean)\n .map(c => CSS.escape(c))\n .join(' ')\n }}\n className={renderProps =>\n toastCss.toast +\n toastStyle({\n ...renderProps,\n variant: toast.content.variant || 'info',\n index,\n isExpanded\n })\n }>\n <div\n role=\"presentation\"\n className={toastBody({isSingle: !isMain || visibleToasts.length <= 1 || isExpanded})}>\n <ToastContent\n className={toastContent + (ctx && isMain ? ` ${toastCss['toast-content']}` : null)}>\n {Icon && (\n <CenterBaseline>\n <Icon />\n </CenterBaseline>\n )}\n <Text slot=\"title\">{toast.content.children}</Text>\n </ToastContent>\n {!isExpanded && visibleToasts.length > 1 && (\n <ActionButton\n isQuiet\n staticColor=\"white\"\n styles={style({gridArea: 'expand'})}\n // Make the chevron line up with the toast text, even though there is padding within the button.\n UNSAFE_style={{marginInlineStart: variant === 'neutral' ? -10 : 14}}\n UNSAFE_className={ctx && isMain ? toastCss['toast-expand'] : undefined}\n onPress={() => {\n // This button disappears when clicked, so move focus to the toast.\n toastRef.current?.focus();\n ctx?.toggleExpanded();\n }}>\n <Text>{stringFormatter.format('toast.showAll')}</Text>\n {/* @ts-ignore */}\n <Chevron UNSAFE_style={{rotate: placement === 'bottom' ? '180deg' : undefined}} />\n </ActionButton>\n )}\n {toast.content.actionLabel && (\n <Button\n variant=\"secondary\"\n fillStyle=\"outline\"\n staticColor=\"white\"\n onPress={() => {\n toast.content.onAction?.();\n if (toast.content.shouldCloseOnAction) {\n state.close(toast.key);\n }\n }}\n UNSAFE_className={ctx && isMain ? toastCss['toast-action'] : undefined}\n styles={style({marginStart: 'auto', gridArea: 'action'})}>\n {toast.content.actionLabel}\n </Button>\n )}\n </div>\n <CloseButton\n staticColor=\"white\"\n UNSAFE_className={ctx && isMain ? toastCss['toast-close'] : undefined}\n />\n </Toast>\n );\n}\n\nfunction fixSafariTransform(el: HTMLDivElement | null) {\n // Safari has a bug where the toasts display in the wrong position (CSS transform is not applied correctly).\n // Work around this by removing it, forcing a reflow, and re-applying.\n if (el && isWebKit()) {\n let translate = el.style.translate;\n el.style.translate = '';\n el.offsetHeight;\n el.style.translate = translate;\n }\n}\n"],"names":[],"version":3,"file":"Toast.cjs.map"}