@react-spectrum/s2 1.3.1 → 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 (1043) hide show
  1. package/dist/exports/Accordion.cjs.map +1 -1
  2. package/dist/exports/Accordion.mjs.map +1 -1
  3. package/dist/exports/ActionMenu.cjs.map +1 -1
  4. package/dist/exports/ActionMenu.mjs.map +1 -1
  5. package/dist/exports/Card.cjs.map +1 -1
  6. package/dist/exports/Card.mjs.map +1 -1
  7. package/dist/exports/CardView.cjs.map +1 -1
  8. package/dist/exports/CardView.mjs.map +1 -1
  9. package/dist/exports/CenterBaseline.cjs +12 -0
  10. package/dist/exports/CenterBaseline.cjs.map +1 -0
  11. package/dist/exports/CenterBaseline.mjs +7 -0
  12. package/dist/exports/CenterBaseline.mjs.map +1 -0
  13. package/dist/exports/ColorArea.cjs.map +1 -1
  14. package/dist/exports/ColorArea.mjs.map +1 -1
  15. package/dist/exports/ColorField.cjs.map +1 -1
  16. package/dist/exports/ColorField.mjs.map +1 -1
  17. package/dist/exports/ColorSlider.cjs.map +1 -1
  18. package/dist/exports/ColorSlider.mjs.map +1 -1
  19. package/dist/exports/ColorSwatch.cjs.map +1 -1
  20. package/dist/exports/ColorSwatch.mjs.map +1 -1
  21. package/dist/exports/ColorSwatchPicker.cjs.map +1 -1
  22. package/dist/exports/ColorSwatchPicker.mjs.map +1 -1
  23. package/dist/exports/ColorWheel.cjs.map +1 -1
  24. package/dist/exports/ColorWheel.mjs.map +1 -1
  25. package/dist/exports/ContextualHelp.cjs.map +1 -1
  26. package/dist/exports/ContextualHelp.mjs.map +1 -1
  27. package/dist/exports/Disclosure.cjs.map +1 -1
  28. package/dist/exports/Disclosure.mjs.map +1 -1
  29. package/dist/exports/DragPreview.cjs +12 -0
  30. package/dist/exports/DragPreview.cjs.map +1 -0
  31. package/dist/exports/DragPreview.mjs +7 -0
  32. package/dist/exports/DragPreview.mjs.map +1 -0
  33. package/dist/exports/Icon.cjs.map +1 -1
  34. package/dist/exports/Icon.mjs.map +1 -1
  35. package/dist/exports/LabeledValue.cjs +13 -0
  36. package/dist/exports/LabeledValue.cjs.map +1 -0
  37. package/dist/exports/LabeledValue.mjs +7 -0
  38. package/dist/exports/LabeledValue.mjs.map +1 -0
  39. package/dist/exports/Menu.cjs.map +1 -1
  40. package/dist/exports/Menu.mjs.map +1 -1
  41. package/dist/exports/SegmentedControl.cjs.map +1 -1
  42. package/dist/exports/SegmentedControl.mjs.map +1 -1
  43. package/dist/exports/Skeleton.cjs +1 -0
  44. package/dist/exports/Skeleton.cjs.map +1 -1
  45. package/dist/exports/Skeleton.mjs +2 -2
  46. package/dist/exports/Skeleton.mjs.map +1 -1
  47. package/dist/exports/TableView.cjs +1 -0
  48. package/dist/exports/TableView.cjs.map +1 -1
  49. package/dist/exports/TableView.mjs +2 -2
  50. package/dist/exports/TableView.mjs.map +1 -1
  51. package/dist/exports/TreeView.cjs.map +1 -1
  52. package/dist/exports/TreeView.mjs.map +1 -1
  53. package/dist/exports/index.cjs +20 -0
  54. package/dist/exports/index.cjs.map +1 -1
  55. package/dist/exports/index.mjs +12 -2
  56. package/dist/exports/index.mjs.map +1 -1
  57. package/dist/exports/useAsyncList.cjs.map +1 -1
  58. package/dist/exports/useAsyncList.mjs.map +1 -1
  59. package/dist/exports/useDragAndDrop.cjs +21 -0
  60. package/dist/exports/useDragAndDrop.cjs.map +1 -0
  61. package/dist/exports/useDragAndDrop.mjs +11 -0
  62. package/dist/exports/useDragAndDrop.mjs.map +1 -0
  63. package/dist/private/Accordion.cjs +2 -2
  64. package/dist/private/Accordion.cjs.map +1 -1
  65. package/dist/private/Accordion.css +2 -2
  66. package/dist/private/Accordion.css.map +1 -1
  67. package/dist/private/Accordion.mjs +2 -2
  68. package/dist/private/Accordion.mjs.map +1 -1
  69. package/dist/private/ActionBar.cjs +61 -61
  70. package/dist/private/ActionBar.cjs.map +1 -1
  71. package/dist/private/ActionBar.css +58 -58
  72. package/dist/private/ActionBar.css.map +1 -1
  73. package/dist/private/ActionBar.mjs +61 -61
  74. package/dist/private/ActionBar.mjs.map +1 -1
  75. package/dist/private/ActionButton.cjs +350 -323
  76. package/dist/private/ActionButton.cjs.map +1 -1
  77. package/dist/private/ActionButton.css +203 -167
  78. package/dist/private/ActionButton.css.map +1 -1
  79. package/dist/private/ActionButton.mjs +351 -324
  80. package/dist/private/ActionButton.mjs.map +1 -1
  81. package/dist/private/ActionButtonGroup.cjs +15 -15
  82. package/dist/private/ActionButtonGroup.cjs.map +1 -1
  83. package/dist/private/ActionButtonGroup.css +9 -9
  84. package/dist/private/ActionButtonGroup.css.map +1 -1
  85. package/dist/private/ActionButtonGroup.mjs +15 -15
  86. package/dist/private/ActionButtonGroup.mjs.map +1 -1
  87. package/dist/private/ActionMenu.cjs.map +1 -1
  88. package/dist/private/ActionMenu.mjs.map +1 -1
  89. package/dist/private/Add.cjs +10 -10
  90. package/dist/private/Add.cjs.map +1 -1
  91. package/dist/private/Add.css +6 -6
  92. package/dist/private/Add.css.map +1 -1
  93. package/dist/private/Add.mjs +10 -10
  94. package/dist/private/Add.mjs.map +1 -1
  95. package/dist/private/AlertDialog.cjs +3 -3
  96. package/dist/private/AlertDialog.cjs.map +1 -1
  97. package/dist/private/AlertDialog.css +3 -3
  98. package/dist/private/AlertDialog.css.map +1 -1
  99. package/dist/private/AlertDialog.mjs +3 -3
  100. package/dist/private/AlertDialog.mjs.map +1 -1
  101. package/dist/private/Asterisk.cjs +6 -6
  102. package/dist/private/Asterisk.cjs.map +1 -1
  103. package/dist/private/Asterisk.css +4 -4
  104. package/dist/private/Asterisk.css.map +1 -1
  105. package/dist/private/Asterisk.mjs +6 -6
  106. package/dist/private/Asterisk.mjs.map +1 -1
  107. package/dist/private/Avatar.cjs +16 -16
  108. package/dist/private/Avatar.cjs.map +1 -1
  109. package/dist/private/Avatar.css +16 -16
  110. package/dist/private/Avatar.css.map +1 -1
  111. package/dist/private/Avatar.mjs +16 -16
  112. package/dist/private/Avatar.mjs.map +1 -1
  113. package/dist/private/AvatarGroup.cjs +120 -120
  114. package/dist/private/AvatarGroup.cjs.map +1 -1
  115. package/dist/private/AvatarGroup.css +31 -31
  116. package/dist/private/AvatarGroup.css.map +1 -1
  117. package/dist/private/AvatarGroup.mjs +120 -120
  118. package/dist/private/AvatarGroup.mjs.map +1 -1
  119. package/dist/private/Badge.cjs +197 -197
  120. package/dist/private/Badge.cjs.map +1 -1
  121. package/dist/private/Badge.css +125 -125
  122. package/dist/private/Badge.css.map +1 -1
  123. package/dist/private/Badge.mjs +197 -197
  124. package/dist/private/Badge.mjs.map +1 -1
  125. package/dist/private/Breadcrumbs.cjs +234 -234
  126. package/dist/private/Breadcrumbs.cjs.map +1 -1
  127. package/dist/private/Breadcrumbs.css +100 -100
  128. package/dist/private/Breadcrumbs.css.map +1 -1
  129. package/dist/private/Breadcrumbs.mjs +234 -234
  130. package/dist/private/Breadcrumbs.mjs.map +1 -1
  131. package/dist/private/Button.cjs +326 -335
  132. package/dist/private/Button.cjs.map +1 -1
  133. package/dist/private/Button.css +172 -180
  134. package/dist/private/Button.css.map +1 -1
  135. package/dist/private/Button.mjs +326 -335
  136. package/dist/private/Button.mjs.map +1 -1
  137. package/dist/private/ButtonGroup.cjs +23 -20
  138. package/dist/private/ButtonGroup.cjs.map +1 -1
  139. package/dist/private/ButtonGroup.css +19 -15
  140. package/dist/private/ButtonGroup.css.map +1 -1
  141. package/dist/private/ButtonGroup.mjs +23 -20
  142. package/dist/private/ButtonGroup.mjs.map +1 -1
  143. package/dist/private/Calendar.cjs +263 -312
  144. package/dist/private/Calendar.cjs.map +1 -1
  145. package/dist/private/Calendar.css +155 -167
  146. package/dist/private/Calendar.css.map +1 -1
  147. package/dist/private/Calendar.mjs +266 -315
  148. package/dist/private/Calendar.mjs.map +1 -1
  149. package/dist/private/Card.cjs +309 -309
  150. package/dist/private/Card.cjs.map +1 -1
  151. package/dist/private/Card.css +206 -206
  152. package/dist/private/Card.css.map +1 -1
  153. package/dist/private/Card.mjs +309 -309
  154. package/dist/private/Card.mjs.map +1 -1
  155. package/dist/private/CardView.cjs +17 -17
  156. package/dist/private/CardView.cjs.map +1 -1
  157. package/dist/private/CardView.css +17 -17
  158. package/dist/private/CardView.css.map +1 -1
  159. package/dist/private/CardView.mjs +17 -17
  160. package/dist/private/CardView.mjs.map +1 -1
  161. package/dist/private/CenterBaseline.cjs +5 -1
  162. package/dist/private/CenterBaseline.cjs.map +1 -1
  163. package/dist/private/CenterBaseline.css +2 -2
  164. package/dist/private/CenterBaseline.css.map +1 -1
  165. package/dist/private/CenterBaseline.mjs +5 -1
  166. package/dist/private/CenterBaseline.mjs.map +1 -1
  167. package/dist/private/Checkbox.cjs +268 -208
  168. package/dist/private/Checkbox.cjs.map +1 -1
  169. package/dist/private/Checkbox.css +170 -98
  170. package/dist/private/Checkbox.css.map +1 -1
  171. package/dist/private/Checkbox.mjs +269 -209
  172. package/dist/private/Checkbox.mjs.map +1 -1
  173. package/dist/private/CheckboxGroup.cjs +44 -43
  174. package/dist/private/CheckboxGroup.cjs.map +1 -1
  175. package/dist/private/CheckboxGroup.css +37 -37
  176. package/dist/private/CheckboxGroup.css.map +1 -1
  177. package/dist/private/CheckboxGroup.mjs +44 -43
  178. package/dist/private/CheckboxGroup.mjs.map +1 -1
  179. package/dist/private/Checkmark.cjs +12 -12
  180. package/dist/private/Checkmark.cjs.map +1 -1
  181. package/dist/private/Checkmark.css +8 -8
  182. package/dist/private/Checkmark.css.map +1 -1
  183. package/dist/private/Checkmark.mjs +12 -12
  184. package/dist/private/Checkmark.mjs.map +1 -1
  185. package/dist/private/Chevron.cjs +12 -12
  186. package/dist/private/Chevron.cjs.map +1 -1
  187. package/dist/private/Chevron.css +10 -10
  188. package/dist/private/Chevron.css.map +1 -1
  189. package/dist/private/Chevron.mjs +12 -12
  190. package/dist/private/Chevron.mjs.map +1 -1
  191. package/dist/private/ClearButton.cjs +30 -30
  192. package/dist/private/ClearButton.cjs.map +1 -1
  193. package/dist/private/ClearButton.css +30 -30
  194. package/dist/private/ClearButton.css.map +1 -1
  195. package/dist/private/ClearButton.mjs +30 -30
  196. package/dist/private/ClearButton.mjs.map +1 -1
  197. package/dist/private/CloseButton.cjs +52 -57
  198. package/dist/private/CloseButton.cjs.map +1 -1
  199. package/dist/private/CloseButton.css +47 -51
  200. package/dist/private/CloseButton.css.map +1 -1
  201. package/dist/private/CloseButton.mjs +52 -57
  202. package/dist/private/CloseButton.mjs.map +1 -1
  203. package/dist/private/ColorArea.cjs +16 -16
  204. package/dist/private/ColorArea.cjs.map +1 -1
  205. package/dist/private/ColorArea.css +16 -16
  206. package/dist/private/ColorArea.css.map +1 -1
  207. package/dist/private/ColorArea.mjs +16 -16
  208. package/dist/private/ColorArea.mjs.map +1 -1
  209. package/dist/private/ColorField.cjs +44 -33
  210. package/dist/private/ColorField.cjs.map +1 -1
  211. package/dist/private/ColorField.css +27 -27
  212. package/dist/private/ColorField.css.map +1 -1
  213. package/dist/private/ColorField.mjs +44 -33
  214. package/dist/private/ColorField.mjs.map +1 -1
  215. package/dist/private/ColorHandle.cjs +27 -27
  216. package/dist/private/ColorHandle.cjs.map +1 -1
  217. package/dist/private/ColorHandle.css +42 -42
  218. package/dist/private/ColorHandle.css.map +1 -1
  219. package/dist/private/ColorHandle.mjs +27 -27
  220. package/dist/private/ColorHandle.mjs.map +1 -1
  221. package/dist/private/ColorSlider.cjs +113 -109
  222. package/dist/private/ColorSlider.cjs.map +1 -1
  223. package/dist/private/ColorSlider.css +52 -52
  224. package/dist/private/ColorSlider.css.map +1 -1
  225. package/dist/private/ColorSlider.mjs +113 -109
  226. package/dist/private/ColorSlider.mjs.map +1 -1
  227. package/dist/private/ColorSwatch.cjs +29 -29
  228. package/dist/private/ColorSwatch.cjs.map +1 -1
  229. package/dist/private/ColorSwatch.css +29 -29
  230. package/dist/private/ColorSwatch.css.map +1 -1
  231. package/dist/private/ColorSwatch.mjs +29 -29
  232. package/dist/private/ColorSwatch.mjs.map +1 -1
  233. package/dist/private/ColorSwatchPicker.cjs +29 -29
  234. package/dist/private/ColorSwatchPicker.cjs.map +1 -1
  235. package/dist/private/ColorSwatchPicker.css +48 -48
  236. package/dist/private/ColorSwatchPicker.css.map +1 -1
  237. package/dist/private/ColorSwatchPicker.mjs +29 -29
  238. package/dist/private/ColorSwatchPicker.mjs.map +1 -1
  239. package/dist/private/ColorWheel.cjs +26 -26
  240. package/dist/private/ColorWheel.cjs.map +1 -1
  241. package/dist/private/ColorWheel.css +17 -17
  242. package/dist/private/ColorWheel.css.map +1 -1
  243. package/dist/private/ColorWheel.mjs +26 -26
  244. package/dist/private/ColorWheel.mjs.map +1 -1
  245. package/dist/private/ComboBox.cjs +384 -405
  246. package/dist/private/ComboBox.cjs.map +1 -1
  247. package/dist/private/ComboBox.css +192 -188
  248. package/dist/private/ComboBox.css.map +1 -1
  249. package/dist/private/ComboBox.mjs +385 -406
  250. package/dist/private/ComboBox.mjs.map +1 -1
  251. package/dist/private/Content.cjs +2 -1
  252. package/dist/private/Content.cjs.map +1 -1
  253. package/dist/private/Content.mjs +2 -1
  254. package/dist/private/Content.mjs.map +1 -1
  255. package/dist/private/ContextualHelp.cjs +5 -5
  256. package/dist/private/ContextualHelp.cjs.map +1 -1
  257. package/dist/private/ContextualHelp.css +50 -50
  258. package/dist/private/ContextualHelp.css.map +1 -1
  259. package/dist/private/ContextualHelp.mjs +5 -5
  260. package/dist/private/ContextualHelp.mjs.map +1 -1
  261. package/dist/private/CornerTriangle.cjs +76 -0
  262. package/dist/private/CornerTriangle.cjs.map +1 -0
  263. package/dist/private/CornerTriangle.css +26 -0
  264. package/dist/private/CornerTriangle.css.map +1 -0
  265. package/dist/private/CornerTriangle.mjs +71 -0
  266. package/dist/private/CornerTriangle.mjs.map +1 -0
  267. package/dist/private/Cross.cjs +14 -14
  268. package/dist/private/Cross.cjs.map +1 -1
  269. package/dist/private/Cross.css +10 -10
  270. package/dist/private/Cross.css.map +1 -1
  271. package/dist/private/Cross.mjs +14 -14
  272. package/dist/private/Cross.mjs.map +1 -1
  273. package/dist/private/CustomDialog.cjs +27 -26
  274. package/dist/private/CustomDialog.cjs.map +1 -1
  275. package/dist/private/CustomDialog.css +25 -25
  276. package/dist/private/CustomDialog.css.map +1 -1
  277. package/dist/private/CustomDialog.mjs +27 -26
  278. package/dist/private/CustomDialog.mjs.map +1 -1
  279. package/dist/private/Dash.cjs +10 -10
  280. package/dist/private/Dash.cjs.map +1 -1
  281. package/dist/private/Dash.css +6 -6
  282. package/dist/private/Dash.css.map +1 -1
  283. package/dist/private/Dash.mjs +10 -10
  284. package/dist/private/Dash.mjs.map +1 -1
  285. package/dist/private/DateField.cjs +73 -73
  286. package/dist/private/DateField.cjs.map +1 -1
  287. package/dist/private/DateField.css +77 -77
  288. package/dist/private/DateField.css.map +1 -1
  289. package/dist/private/DateField.mjs +73 -73
  290. package/dist/private/DateField.mjs.map +1 -1
  291. package/dist/private/DatePicker.cjs +172 -172
  292. package/dist/private/DatePicker.cjs.map +1 -1
  293. package/dist/private/DatePicker.css +128 -128
  294. package/dist/private/DatePicker.css.map +1 -1
  295. package/dist/private/DatePicker.mjs +172 -172
  296. package/dist/private/DatePicker.mjs.map +1 -1
  297. package/dist/private/DateRangePicker.cjs +55 -55
  298. package/dist/private/DateRangePicker.cjs.map +1 -1
  299. package/dist/private/DateRangePicker.css +59 -59
  300. package/dist/private/DateRangePicker.css.map +1 -1
  301. package/dist/private/DateRangePicker.mjs +55 -55
  302. package/dist/private/DateRangePicker.mjs.map +1 -1
  303. package/dist/private/Dialog.cjs +21 -18
  304. package/dist/private/Dialog.cjs.map +1 -1
  305. package/dist/private/Dialog.css +70 -70
  306. package/dist/private/Dialog.css.map +1 -1
  307. package/dist/private/Dialog.mjs +21 -18
  308. package/dist/private/Dialog.mjs.map +1 -1
  309. package/dist/private/DialogContainer.cjs.map +1 -1
  310. package/dist/private/DialogContainer.mjs.map +1 -1
  311. package/dist/private/DialogTrigger.cjs.map +1 -1
  312. package/dist/private/DialogTrigger.mjs.map +1 -1
  313. package/dist/private/Disclosure.cjs +144 -122
  314. package/dist/private/Disclosure.cjs.map +1 -1
  315. package/dist/private/Disclosure.css +112 -112
  316. package/dist/private/Disclosure.css.map +1 -1
  317. package/dist/private/Disclosure.mjs +144 -122
  318. package/dist/private/Disclosure.mjs.map +1 -1
  319. package/dist/private/Divider.cjs +25 -25
  320. package/dist/private/Divider.cjs.map +1 -1
  321. package/dist/private/Divider.css +25 -25
  322. package/dist/private/Divider.css.map +1 -1
  323. package/dist/private/Divider.mjs +25 -25
  324. package/dist/private/Divider.mjs.map +1 -1
  325. package/dist/private/DragHandle.cjs +76 -0
  326. package/dist/private/DragHandle.cjs.map +1 -0
  327. package/dist/private/DragHandle.css +26 -0
  328. package/dist/private/DragHandle.css.map +1 -0
  329. package/dist/private/DragHandle.mjs +71 -0
  330. package/dist/private/DragHandle.mjs.map +1 -0
  331. package/dist/private/DragPreview.cjs +297 -0
  332. package/dist/private/DragPreview.cjs.map +1 -0
  333. package/dist/private/DragPreview.css +459 -0
  334. package/dist/private/DragPreview.css.map +1 -0
  335. package/dist/private/DragPreview.mjs +288 -0
  336. package/dist/private/DragPreview.mjs.map +1 -0
  337. package/dist/private/DropZone.cjs +61 -61
  338. package/dist/private/DropZone.cjs.map +1 -1
  339. package/dist/private/DropZone.css +57 -57
  340. package/dist/private/DropZone.css.map +1 -1
  341. package/dist/private/DropZone.mjs +61 -61
  342. package/dist/private/DropZone.mjs.map +1 -1
  343. package/dist/private/Field.cjs +421 -372
  344. package/dist/private/Field.cjs.map +1 -1
  345. package/dist/private/Field.css +206 -154
  346. package/dist/private/Field.css.map +1 -1
  347. package/dist/private/Field.mjs +422 -373
  348. package/dist/private/Field.mjs.map +1 -1
  349. package/dist/private/Fonts.cjs.map +1 -1
  350. package/dist/private/Fonts.mjs.map +1 -1
  351. package/dist/private/Form.cjs +9 -9
  352. package/dist/private/Form.cjs.map +1 -1
  353. package/dist/private/Form.css +9 -9
  354. package/dist/private/Form.css.map +1 -1
  355. package/dist/private/Form.mjs +9 -9
  356. package/dist/private/Form.mjs.map +1 -1
  357. package/dist/private/FullscreenDialog.cjs +7 -6
  358. package/dist/private/FullscreenDialog.cjs.map +1 -1
  359. package/dist/private/FullscreenDialog.css +78 -78
  360. package/dist/private/FullscreenDialog.css.map +1 -1
  361. package/dist/private/FullscreenDialog.mjs +7 -6
  362. package/dist/private/FullscreenDialog.mjs.map +1 -1
  363. package/dist/private/IllustratedMessage.cjs +228 -228
  364. package/dist/private/IllustratedMessage.cjs.map +1 -1
  365. package/dist/private/IllustratedMessage.css +72 -72
  366. package/dist/private/IllustratedMessage.css.map +1 -1
  367. package/dist/private/IllustratedMessage.mjs +228 -228
  368. package/dist/private/IllustratedMessage.mjs.map +1 -1
  369. package/dist/private/Image.cjs +16 -16
  370. package/dist/private/Image.cjs.map +1 -1
  371. package/dist/private/Image.css +14 -14
  372. package/dist/private/Image.css.map +1 -1
  373. package/dist/private/Image.mjs +16 -16
  374. package/dist/private/Image.mjs.map +1 -1
  375. package/dist/private/ImageCoordinator.cjs.map +1 -1
  376. package/dist/private/ImageCoordinator.mjs.map +1 -1
  377. package/dist/private/InlineAlert.cjs +100 -100
  378. package/dist/private/InlineAlert.cjs.map +1 -1
  379. package/dist/private/InlineAlert.css +76 -76
  380. package/dist/private/InlineAlert.css.map +1 -1
  381. package/dist/private/InlineAlert.mjs +100 -100
  382. package/dist/private/InlineAlert.mjs.map +1 -1
  383. package/dist/private/LabeledValue.cjs +359 -0
  384. package/dist/private/LabeledValue.cjs.map +1 -0
  385. package/dist/private/LabeledValue.css +285 -0
  386. package/dist/private/LabeledValue.css.map +1 -0
  387. package/dist/private/LabeledValue.mjs +353 -0
  388. package/dist/private/LabeledValue.mjs.map +1 -0
  389. package/dist/private/Link.cjs +49 -49
  390. package/dist/private/Link.cjs.map +1 -1
  391. package/dist/private/Link.css +41 -41
  392. package/dist/private/Link.css.map +1 -1
  393. package/dist/private/Link.mjs +49 -49
  394. package/dist/private/Link.mjs.map +1 -1
  395. package/dist/private/LinkOut.cjs +8 -8
  396. package/dist/private/LinkOut.cjs.map +1 -1
  397. package/dist/private/LinkOut.css +8 -8
  398. package/dist/private/LinkOut.css.map +1 -1
  399. package/dist/private/LinkOut.mjs +8 -8
  400. package/dist/private/LinkOut.mjs.map +1 -1
  401. package/dist/private/ListView.cjs +422 -489
  402. package/dist/private/ListView.cjs.map +1 -1
  403. package/dist/private/ListView.css +276 -348
  404. package/dist/private/ListView.css.map +1 -1
  405. package/dist/private/ListView.mjs +422 -488
  406. package/dist/private/ListView.mjs.map +1 -1
  407. package/dist/private/Menu.cjs +489 -471
  408. package/dist/private/Menu.cjs.map +1 -1
  409. package/dist/private/Menu.css +205 -205
  410. package/dist/private/Menu.css.map +1 -1
  411. package/dist/private/Menu.mjs +489 -471
  412. package/dist/private/Menu.mjs.map +1 -1
  413. package/dist/private/Meter.cjs +153 -153
  414. package/dist/private/Meter.cjs.map +1 -1
  415. package/dist/private/Meter.css +91 -91
  416. package/dist/private/Meter.css.map +1 -1
  417. package/dist/private/Meter.mjs +153 -153
  418. package/dist/private/Meter.mjs.map +1 -1
  419. package/dist/private/Modal.cjs +74 -74
  420. package/dist/private/Modal.cjs.map +1 -1
  421. package/dist/private/Modal.css +59 -59
  422. package/dist/private/Modal.css.map +1 -1
  423. package/dist/private/Modal.mjs +74 -74
  424. package/dist/private/Modal.mjs.map +1 -1
  425. package/dist/private/NotificationBadge.cjs +56 -56
  426. package/dist/private/NotificationBadge.cjs.map +1 -1
  427. package/dist/private/NotificationBadge.css +49 -49
  428. package/dist/private/NotificationBadge.css.map +1 -1
  429. package/dist/private/NotificationBadge.mjs +56 -56
  430. package/dist/private/NotificationBadge.mjs.map +1 -1
  431. package/dist/private/NumberField.cjs +115 -114
  432. package/dist/private/NumberField.cjs.map +1 -1
  433. package/dist/private/NumberField.css +99 -99
  434. package/dist/private/NumberField.css.map +1 -1
  435. package/dist/private/NumberField.mjs +115 -114
  436. package/dist/private/NumberField.mjs.map +1 -1
  437. package/dist/private/Picker.cjs +277 -277
  438. package/dist/private/Picker.cjs.map +1 -1
  439. package/dist/private/Picker.css +173 -173
  440. package/dist/private/Picker.css.map +1 -1
  441. package/dist/private/Picker.mjs +277 -277
  442. package/dist/private/Picker.mjs.map +1 -1
  443. package/dist/private/Popover.cjs +95 -95
  444. package/dist/private/Popover.cjs.map +1 -1
  445. package/dist/private/Popover.css +75 -75
  446. package/dist/private/Popover.css.map +1 -1
  447. package/dist/private/Popover.mjs +95 -95
  448. package/dist/private/Popover.mjs.map +1 -1
  449. package/dist/private/ProgressBar.cjs +163 -163
  450. package/dist/private/ProgressBar.cjs.map +1 -1
  451. package/dist/private/ProgressBar.css +99 -99
  452. package/dist/private/ProgressBar.css.map +1 -1
  453. package/dist/private/ProgressBar.mjs +163 -163
  454. package/dist/private/ProgressBar.mjs.map +1 -1
  455. package/dist/private/ProgressCircle.cjs +34 -31
  456. package/dist/private/ProgressCircle.cjs.map +1 -1
  457. package/dist/private/ProgressCircle.css +24 -24
  458. package/dist/private/ProgressCircle.css.map +1 -1
  459. package/dist/private/ProgressCircle.mjs +34 -31
  460. package/dist/private/ProgressCircle.mjs.map +1 -1
  461. package/dist/private/Provider.cjs +19 -19
  462. package/dist/private/Provider.cjs.map +1 -1
  463. package/dist/private/Provider.css +15 -15
  464. package/dist/private/Provider.css.map +1 -1
  465. package/dist/private/Provider.mjs +19 -19
  466. package/dist/private/Provider.mjs.map +1 -1
  467. package/dist/private/RadioGroup.cjs +251 -203
  468. package/dist/private/RadioGroup.cjs.map +1 -1
  469. package/dist/private/RadioGroup.css +167 -135
  470. package/dist/private/RadioGroup.css.map +1 -1
  471. package/dist/private/RadioGroup.mjs +252 -204
  472. package/dist/private/RadioGroup.mjs.map +1 -1
  473. package/dist/private/RangeCalendar.cjs +19 -17
  474. package/dist/private/RangeCalendar.cjs.map +1 -1
  475. package/dist/private/RangeCalendar.css +17 -17
  476. package/dist/private/RangeCalendar.css.map +1 -1
  477. package/dist/private/RangeCalendar.mjs +19 -17
  478. package/dist/private/RangeCalendar.mjs.map +1 -1
  479. package/dist/private/RangeSlider.cjs +7 -15
  480. package/dist/private/RangeSlider.cjs.map +1 -1
  481. package/dist/private/RangeSlider.mjs +8 -16
  482. package/dist/private/RangeSlider.mjs.map +1 -1
  483. package/dist/private/S2_CornerTriangleSize100.cjs +26 -0
  484. package/dist/private/S2_CornerTriangleSize100.cjs.map +1 -0
  485. package/dist/private/S2_CornerTriangleSize100.mjs +21 -0
  486. package/dist/private/S2_CornerTriangleSize100.mjs.map +1 -0
  487. package/dist/private/S2_CornerTriangleSize200.cjs +26 -0
  488. package/dist/private/S2_CornerTriangleSize200.cjs.map +1 -0
  489. package/dist/private/S2_CornerTriangleSize200.mjs +21 -0
  490. package/dist/private/S2_CornerTriangleSize200.mjs.map +1 -0
  491. package/dist/private/S2_CornerTriangleSize300.cjs +26 -0
  492. package/dist/private/S2_CornerTriangleSize300.cjs.map +1 -0
  493. package/dist/private/S2_CornerTriangleSize300.mjs +21 -0
  494. package/dist/private/S2_CornerTriangleSize300.mjs.map +1 -0
  495. package/dist/private/S2_CornerTriangleSize75.cjs +26 -0
  496. package/dist/private/S2_CornerTriangleSize75.cjs.map +1 -0
  497. package/dist/private/S2_CornerTriangleSize75.mjs +21 -0
  498. package/dist/private/S2_CornerTriangleSize75.mjs.map +1 -0
  499. package/dist/private/S2_DragHandleSize100.cjs +60 -0
  500. package/dist/private/S2_DragHandleSize100.cjs.map +1 -0
  501. package/dist/private/S2_DragHandleSize100.mjs +55 -0
  502. package/dist/private/S2_DragHandleSize100.mjs.map +1 -0
  503. package/dist/private/S2_DragHandleSize200.cjs +60 -0
  504. package/dist/private/S2_DragHandleSize200.cjs.map +1 -0
  505. package/dist/private/S2_DragHandleSize200.mjs +55 -0
  506. package/dist/private/S2_DragHandleSize200.mjs.map +1 -0
  507. package/dist/private/S2_DragHandleSize300.cjs +60 -0
  508. package/dist/private/S2_DragHandleSize300.cjs.map +1 -0
  509. package/dist/private/S2_DragHandleSize300.mjs +55 -0
  510. package/dist/private/S2_DragHandleSize300.mjs.map +1 -0
  511. package/dist/private/S2_DragHandleSize75.cjs +60 -0
  512. package/dist/private/S2_DragHandleSize75.cjs.map +1 -0
  513. package/dist/private/S2_DragHandleSize75.mjs +55 -0
  514. package/dist/private/S2_DragHandleSize75.mjs.map +1 -0
  515. package/dist/private/SearchField.cjs +41 -41
  516. package/dist/private/SearchField.cjs.map +1 -1
  517. package/dist/private/SearchField.css +45 -45
  518. package/dist/private/SearchField.css.map +1 -1
  519. package/dist/private/SearchField.mjs +41 -41
  520. package/dist/private/SearchField.mjs.map +1 -1
  521. package/dist/private/SegmentedControl.cjs +178 -178
  522. package/dist/private/SegmentedControl.cjs.map +1 -1
  523. package/dist/private/SegmentedControl.css +123 -123
  524. package/dist/private/SegmentedControl.css.map +1 -1
  525. package/dist/private/SegmentedControl.mjs +178 -178
  526. package/dist/private/SegmentedControl.mjs.map +1 -1
  527. package/dist/private/SelectBoxGroup.cjs +142 -142
  528. package/dist/private/SelectBoxGroup.cjs.map +1 -1
  529. package/dist/private/SelectBoxGroup.css +120 -120
  530. package/dist/private/SelectBoxGroup.css.map +1 -1
  531. package/dist/private/SelectBoxGroup.mjs +142 -142
  532. package/dist/private/SelectBoxGroup.mjs.map +1 -1
  533. package/dist/private/SkeletonCollection.cjs.map +1 -1
  534. package/dist/private/SkeletonCollection.mjs.map +1 -1
  535. package/dist/private/Slider.cjs +318 -332
  536. package/dist/private/Slider.cjs.map +1 -1
  537. package/dist/private/Slider.css +177 -157
  538. package/dist/private/Slider.css.map +1 -1
  539. package/dist/private/Slider.mjs +319 -333
  540. package/dist/private/Slider.mjs.map +1 -1
  541. package/dist/private/StatusLight.cjs +115 -115
  542. package/dist/private/StatusLight.cjs.map +1 -1
  543. package/dist/private/StatusLight.css +59 -59
  544. package/dist/private/StatusLight.css.map +1 -1
  545. package/dist/private/StatusLight.mjs +115 -115
  546. package/dist/private/StatusLight.mjs.map +1 -1
  547. package/dist/private/Switch.cjs +219 -176
  548. package/dist/private/Switch.cjs.map +1 -1
  549. package/dist/private/Switch.css +128 -84
  550. package/dist/private/Switch.css.map +1 -1
  551. package/dist/private/Switch.mjs +219 -176
  552. package/dist/private/Switch.mjs.map +1 -1
  553. package/dist/private/TableView.cjs +752 -518
  554. package/dist/private/TableView.cjs.map +1 -1
  555. package/dist/private/TableView.css +554 -308
  556. package/dist/private/TableView.css.map +1 -1
  557. package/dist/private/TableView.mjs +754 -521
  558. package/dist/private/TableView.mjs.map +1 -1
  559. package/dist/private/Tabs.cjs +131 -125
  560. package/dist/private/Tabs.cjs.map +1 -1
  561. package/dist/private/Tabs.css +105 -105
  562. package/dist/private/Tabs.css.map +1 -1
  563. package/dist/private/Tabs.mjs +131 -125
  564. package/dist/private/Tabs.mjs.map +1 -1
  565. package/dist/private/TabsPicker.cjs +130 -129
  566. package/dist/private/TabsPicker.cjs.map +1 -1
  567. package/dist/private/TabsPicker.css +108 -108
  568. package/dist/private/TabsPicker.css.map +1 -1
  569. package/dist/private/TabsPicker.mjs +130 -129
  570. package/dist/private/TabsPicker.mjs.map +1 -1
  571. package/dist/private/TagGroup.cjs +203 -203
  572. package/dist/private/TagGroup.cjs.map +1 -1
  573. package/dist/private/TagGroup.css +146 -146
  574. package/dist/private/TagGroup.css.map +1 -1
  575. package/dist/private/TagGroup.mjs +203 -203
  576. package/dist/private/TagGroup.mjs.map +1 -1
  577. package/dist/private/TextField.cjs +84 -73
  578. package/dist/private/TextField.cjs.map +1 -1
  579. package/dist/private/TextField.css +54 -54
  580. package/dist/private/TextField.css.map +1 -1
  581. package/dist/private/TextField.mjs +85 -74
  582. package/dist/private/TextField.mjs.map +1 -1
  583. package/dist/private/TimeField.cjs +51 -51
  584. package/dist/private/TimeField.cjs.map +1 -1
  585. package/dist/private/TimeField.css +47 -47
  586. package/dist/private/TimeField.css.map +1 -1
  587. package/dist/private/TimeField.mjs +51 -51
  588. package/dist/private/TimeField.mjs.map +1 -1
  589. package/dist/private/Toast.cjs +122 -121
  590. package/dist/private/Toast.cjs.map +1 -1
  591. package/dist/private/Toast.css +110 -110
  592. package/dist/private/Toast.css.map +1 -1
  593. package/dist/private/Toast.mjs +122 -121
  594. package/dist/private/Toast.mjs.map +1 -1
  595. package/dist/private/Toast.module_css.cjs +21 -21
  596. package/dist/private/Toast.module_css.cjs.map +1 -1
  597. package/dist/private/Toast.module_css.mjs +21 -21
  598. package/dist/private/Toast.module_css.mjs.map +1 -1
  599. package/dist/private/Toast_module.css +44 -44
  600. package/dist/private/Toast_module.css.map +1 -1
  601. package/dist/private/ToggleButton.cjs +59 -26
  602. package/dist/private/ToggleButton.cjs.map +1 -1
  603. package/dist/private/ToggleButton.css +56 -12
  604. package/dist/private/ToggleButton.css.map +1 -1
  605. package/dist/private/ToggleButton.mjs +60 -27
  606. package/dist/private/ToggleButton.mjs.map +1 -1
  607. package/dist/private/ToggleButtonGroup.cjs.map +1 -1
  608. package/dist/private/ToggleButtonGroup.mjs.map +1 -1
  609. package/dist/private/Tooltip.cjs +86 -86
  610. package/dist/private/Tooltip.cjs.map +1 -1
  611. package/dist/private/Tooltip.css +70 -70
  612. package/dist/private/Tooltip.css.map +1 -1
  613. package/dist/private/Tooltip.mjs +86 -86
  614. package/dist/private/Tooltip.mjs.map +1 -1
  615. package/dist/private/TreeView.cjs +300 -233
  616. package/dist/private/TreeView.cjs.map +1 -1
  617. package/dist/private/TreeView.css +243 -181
  618. package/dist/private/TreeView.css.map +1 -1
  619. package/dist/private/TreeView.mjs +301 -234
  620. package/dist/private/TreeView.mjs.map +1 -1
  621. package/dist/private/dnd-utils.cjs +149 -0
  622. package/dist/private/dnd-utils.cjs.map +1 -0
  623. package/dist/private/dnd-utils.css +164 -0
  624. package/dist/private/dnd-utils.css.map +1 -0
  625. package/dist/private/dnd-utils.mjs +143 -0
  626. package/dist/private/dnd-utils.mjs.map +1 -0
  627. package/dist/private/font-faces.css.map +1 -1
  628. package/dist/private/intl/ar-AE.cjs +1 -0
  629. package/dist/private/intl/ar-AE.cjs.map +1 -1
  630. package/dist/private/intl/ar-AE.mjs +1 -0
  631. package/dist/private/intl/ar-AE.mjs.map +1 -1
  632. package/dist/private/intl/bg-BG.cjs +1 -0
  633. package/dist/private/intl/bg-BG.cjs.map +1 -1
  634. package/dist/private/intl/bg-BG.mjs +1 -0
  635. package/dist/private/intl/bg-BG.mjs.map +1 -1
  636. package/dist/private/intl/cs-CZ.cjs +1 -0
  637. package/dist/private/intl/cs-CZ.cjs.map +1 -1
  638. package/dist/private/intl/cs-CZ.mjs +1 -0
  639. package/dist/private/intl/cs-CZ.mjs.map +1 -1
  640. package/dist/private/intl/da-DK.cjs +1 -0
  641. package/dist/private/intl/da-DK.cjs.map +1 -1
  642. package/dist/private/intl/da-DK.mjs +1 -0
  643. package/dist/private/intl/da-DK.mjs.map +1 -1
  644. package/dist/private/intl/de-DE.cjs +1 -0
  645. package/dist/private/intl/de-DE.cjs.map +1 -1
  646. package/dist/private/intl/de-DE.mjs +1 -0
  647. package/dist/private/intl/de-DE.mjs.map +1 -1
  648. package/dist/private/intl/el-GR.cjs +1 -0
  649. package/dist/private/intl/el-GR.cjs.map +1 -1
  650. package/dist/private/intl/el-GR.mjs +1 -0
  651. package/dist/private/intl/el-GR.mjs.map +1 -1
  652. package/dist/private/intl/en-US.cjs +1 -0
  653. package/dist/private/intl/en-US.cjs.map +1 -1
  654. package/dist/private/intl/en-US.mjs +1 -0
  655. package/dist/private/intl/en-US.mjs.map +1 -1
  656. package/dist/private/intl/es-ES.cjs +1 -0
  657. package/dist/private/intl/es-ES.cjs.map +1 -1
  658. package/dist/private/intl/es-ES.mjs +1 -0
  659. package/dist/private/intl/es-ES.mjs.map +1 -1
  660. package/dist/private/intl/et-EE.cjs +1 -0
  661. package/dist/private/intl/et-EE.cjs.map +1 -1
  662. package/dist/private/intl/et-EE.mjs +1 -0
  663. package/dist/private/intl/et-EE.mjs.map +1 -1
  664. package/dist/private/intl/fi-FI.cjs +1 -0
  665. package/dist/private/intl/fi-FI.cjs.map +1 -1
  666. package/dist/private/intl/fi-FI.mjs +1 -0
  667. package/dist/private/intl/fi-FI.mjs.map +1 -1
  668. package/dist/private/intl/fr-FR.cjs +1 -0
  669. package/dist/private/intl/fr-FR.cjs.map +1 -1
  670. package/dist/private/intl/fr-FR.mjs +1 -0
  671. package/dist/private/intl/fr-FR.mjs.map +1 -1
  672. package/dist/private/intl/he-IL.cjs +1 -0
  673. package/dist/private/intl/he-IL.cjs.map +1 -1
  674. package/dist/private/intl/he-IL.mjs +1 -0
  675. package/dist/private/intl/he-IL.mjs.map +1 -1
  676. package/dist/private/intl/hr-HR.cjs +1 -0
  677. package/dist/private/intl/hr-HR.cjs.map +1 -1
  678. package/dist/private/intl/hr-HR.mjs +1 -0
  679. package/dist/private/intl/hr-HR.mjs.map +1 -1
  680. package/dist/private/intl/hu-HU.cjs +1 -0
  681. package/dist/private/intl/hu-HU.cjs.map +1 -1
  682. package/dist/private/intl/hu-HU.mjs +1 -0
  683. package/dist/private/intl/hu-HU.mjs.map +1 -1
  684. package/dist/private/intl/it-IT.cjs +1 -0
  685. package/dist/private/intl/it-IT.cjs.map +1 -1
  686. package/dist/private/intl/it-IT.mjs +1 -0
  687. package/dist/private/intl/it-IT.mjs.map +1 -1
  688. package/dist/private/intl/ja-JP.cjs +1 -0
  689. package/dist/private/intl/ja-JP.cjs.map +1 -1
  690. package/dist/private/intl/ja-JP.mjs +1 -0
  691. package/dist/private/intl/ja-JP.mjs.map +1 -1
  692. package/dist/private/intl/ko-KR.cjs +1 -0
  693. package/dist/private/intl/ko-KR.cjs.map +1 -1
  694. package/dist/private/intl/ko-KR.mjs +1 -0
  695. package/dist/private/intl/ko-KR.mjs.map +1 -1
  696. package/dist/private/intl/lt-LT.cjs +1 -0
  697. package/dist/private/intl/lt-LT.cjs.map +1 -1
  698. package/dist/private/intl/lt-LT.mjs +1 -0
  699. package/dist/private/intl/lt-LT.mjs.map +1 -1
  700. package/dist/private/intl/lv-LV.cjs +1 -0
  701. package/dist/private/intl/lv-LV.cjs.map +1 -1
  702. package/dist/private/intl/lv-LV.mjs +1 -0
  703. package/dist/private/intl/lv-LV.mjs.map +1 -1
  704. package/dist/private/intl/nb-NO.cjs +1 -0
  705. package/dist/private/intl/nb-NO.cjs.map +1 -1
  706. package/dist/private/intl/nb-NO.mjs +1 -0
  707. package/dist/private/intl/nb-NO.mjs.map +1 -1
  708. package/dist/private/intl/nl-NL.cjs +1 -0
  709. package/dist/private/intl/nl-NL.cjs.map +1 -1
  710. package/dist/private/intl/nl-NL.mjs +1 -0
  711. package/dist/private/intl/nl-NL.mjs.map +1 -1
  712. package/dist/private/intl/pl-PL.cjs +1 -0
  713. package/dist/private/intl/pl-PL.cjs.map +1 -1
  714. package/dist/private/intl/pl-PL.mjs +1 -0
  715. package/dist/private/intl/pl-PL.mjs.map +1 -1
  716. package/dist/private/intl/pt-BR.cjs +1 -0
  717. package/dist/private/intl/pt-BR.cjs.map +1 -1
  718. package/dist/private/intl/pt-BR.mjs +1 -0
  719. package/dist/private/intl/pt-BR.mjs.map +1 -1
  720. package/dist/private/intl/pt-PT.cjs +1 -0
  721. package/dist/private/intl/pt-PT.cjs.map +1 -1
  722. package/dist/private/intl/pt-PT.mjs +1 -0
  723. package/dist/private/intl/pt-PT.mjs.map +1 -1
  724. package/dist/private/intl/ro-RO.cjs +1 -0
  725. package/dist/private/intl/ro-RO.cjs.map +1 -1
  726. package/dist/private/intl/ro-RO.mjs +1 -0
  727. package/dist/private/intl/ro-RO.mjs.map +1 -1
  728. package/dist/private/intl/ru-RU.cjs +1 -0
  729. package/dist/private/intl/ru-RU.cjs.map +1 -1
  730. package/dist/private/intl/ru-RU.mjs +1 -0
  731. package/dist/private/intl/ru-RU.mjs.map +1 -1
  732. package/dist/private/intl/sk-SK.cjs +1 -0
  733. package/dist/private/intl/sk-SK.cjs.map +1 -1
  734. package/dist/private/intl/sk-SK.mjs +1 -0
  735. package/dist/private/intl/sk-SK.mjs.map +1 -1
  736. package/dist/private/intl/sl-SI.cjs +1 -0
  737. package/dist/private/intl/sl-SI.cjs.map +1 -1
  738. package/dist/private/intl/sl-SI.mjs +1 -0
  739. package/dist/private/intl/sl-SI.mjs.map +1 -1
  740. package/dist/private/intl/sr-SP.cjs +1 -0
  741. package/dist/private/intl/sr-SP.cjs.map +1 -1
  742. package/dist/private/intl/sr-SP.mjs +1 -0
  743. package/dist/private/intl/sr-SP.mjs.map +1 -1
  744. package/dist/private/intl/sv-SE.cjs +1 -0
  745. package/dist/private/intl/sv-SE.cjs.map +1 -1
  746. package/dist/private/intl/sv-SE.mjs +1 -0
  747. package/dist/private/intl/sv-SE.mjs.map +1 -1
  748. package/dist/private/intl/tr-TR.cjs +1 -0
  749. package/dist/private/intl/tr-TR.cjs.map +1 -1
  750. package/dist/private/intl/tr-TR.mjs +1 -0
  751. package/dist/private/intl/tr-TR.mjs.map +1 -1
  752. package/dist/private/intl/uk-UA.cjs +1 -0
  753. package/dist/private/intl/uk-UA.cjs.map +1 -1
  754. package/dist/private/intl/uk-UA.mjs +1 -0
  755. package/dist/private/intl/uk-UA.mjs.map +1 -1
  756. package/dist/private/intl/zh-CN.cjs +1 -0
  757. package/dist/private/intl/zh-CN.cjs.map +1 -1
  758. package/dist/private/intl/zh-CN.mjs +1 -0
  759. package/dist/private/intl/zh-CN.mjs.map +1 -1
  760. package/dist/private/intl/zh-TW.cjs +1 -0
  761. package/dist/private/intl/zh-TW.cjs.map +1 -1
  762. package/dist/private/intl/zh-TW.mjs +1 -0
  763. package/dist/private/intl/zh-TW.mjs.map +1 -1
  764. package/dist/private/pressScale.cjs.map +1 -1
  765. package/dist/private/pressScale.mjs.map +1 -1
  766. package/dist/private/useDOMRef.cjs +3 -2
  767. package/dist/private/useDOMRef.cjs.map +1 -1
  768. package/dist/private/useDOMRef.mjs +3 -2
  769. package/dist/private/useDOMRef.mjs.map +1 -1
  770. package/dist/private/useDragAndDrop.cjs +25 -0
  771. package/dist/private/useDragAndDrop.cjs.map +1 -0
  772. package/dist/private/useDragAndDrop.mjs +20 -0
  773. package/dist/private/useDragAndDrop.mjs.map +1 -0
  774. package/dist/types/exports/CenterBaseline.d.ts +1 -0
  775. package/dist/types/exports/DragPreview.d.ts +2 -0
  776. package/dist/types/exports/LabeledValue.d.ts +2 -0
  777. package/dist/types/exports/Skeleton.d.ts +1 -1
  778. package/dist/types/exports/TableView.d.ts +2 -2
  779. package/dist/types/exports/index.d.ts +12 -2
  780. package/dist/types/exports/useDragAndDrop.d.ts +8 -0
  781. package/dist/types/src/Accordion.d.ts +22 -6
  782. package/dist/types/src/ActionBar.d.ts +6 -2
  783. package/dist/types/src/ActionButton.d.ts +15 -5
  784. package/dist/types/src/ActionButtonGroup.d.ts +13 -4
  785. package/dist/types/src/ActionMenu.d.ts +1 -1
  786. package/dist/types/src/AlertDialog.d.ts +3 -1
  787. package/dist/types/src/Avatar.d.ts +1 -0
  788. package/dist/types/src/AvatarGroup.d.ts +1 -0
  789. package/dist/types/src/Badge.d.ts +6 -2
  790. package/dist/types/src/Breadcrumbs.d.ts +1 -1
  791. package/dist/types/src/Button.d.ts +2 -1
  792. package/dist/types/src/Calendar.d.ts +8 -5
  793. package/dist/types/src/Card.d.ts +4 -1
  794. package/dist/types/src/CardView.d.ts +6 -1
  795. package/dist/types/src/CenterBaseline.d.ts +19 -1
  796. package/dist/types/src/Checkbox.d.ts +5 -5
  797. package/dist/types/src/CoachMark.d.ts +3 -3
  798. package/dist/types/src/ColorArea.d.ts +2 -1
  799. package/dist/types/src/ColorField.d.ts +6 -0
  800. package/dist/types/src/ColorSwatch.d.ts +2 -0
  801. package/dist/types/src/ColorSwatchPicker.d.ts +3 -0
  802. package/dist/types/src/ComboBox.d.ts +18 -7
  803. package/dist/types/src/ContextualHelp.d.ts +6 -3
  804. package/dist/types/src/CustomDialog.d.ts +1 -0
  805. package/dist/types/src/DatePicker.d.ts +5 -2
  806. package/dist/types/src/DateRangePicker.d.ts +3 -1
  807. package/dist/types/src/Dialog.d.ts +3 -2
  808. package/dist/types/src/DialogTrigger.d.ts +3 -3
  809. package/dist/types/src/Disclosure.d.ts +16 -5
  810. package/dist/types/src/Divider.d.ts +2 -0
  811. package/dist/types/src/DragPreview.d.ts +42 -0
  812. package/dist/types/src/DropZone.d.ts +1 -0
  813. package/dist/types/src/Field.d.ts +5 -3
  814. package/dist/types/src/Form.d.ts +3 -1
  815. package/dist/types/src/FullscreenDialog.d.ts +4 -2
  816. package/dist/types/src/Image.d.ts +6 -5
  817. package/dist/types/src/ImageCoordinator.d.ts +3 -1
  818. package/dist/types/src/InlineAlert.d.ts +4 -2
  819. package/dist/types/src/LabeledValue.d.ts +61 -0
  820. package/dist/types/src/Link.d.ts +1 -0
  821. package/dist/types/src/ListBox.d.ts +1 -1
  822. package/dist/types/src/ListView.d.ts +12 -24
  823. package/dist/types/src/Menu.d.ts +9 -7
  824. package/dist/types/src/Meter.d.ts +4 -1
  825. package/dist/types/src/NumberField.d.ts +9 -1
  826. package/dist/types/src/Picker.d.ts +12 -7
  827. package/dist/types/src/Popover.d.ts +4 -3
  828. package/dist/types/src/ProgressBar.d.ts +3 -2
  829. package/dist/types/src/ProgressCircle.d.ts +2 -2
  830. package/dist/types/src/Provider.d.ts +6 -3
  831. package/dist/types/src/RadioGroup.d.ts +2 -2
  832. package/dist/types/src/RangeCalendar.d.ts +4 -2
  833. package/dist/types/src/RangeSlider.d.ts +6 -3
  834. package/dist/types/src/SelectBoxGroup.d.ts +3 -1
  835. package/dist/types/src/SkeletonCollection.d.ts +2 -1
  836. package/dist/types/src/Slider.d.ts +2 -1
  837. package/dist/types/src/Switch.d.ts +5 -5
  838. package/dist/types/src/TableView.d.ts +29 -9
  839. package/dist/types/src/Tabs.d.ts +5 -2
  840. package/dist/types/src/TabsPicker.d.ts +9 -4
  841. package/dist/types/src/TagGroup.d.ts +10 -4
  842. package/dist/types/src/TextField.d.ts +5 -0
  843. package/dist/types/src/Toast.d.ts +2 -1
  844. package/dist/types/src/ToggleButton.d.ts +9 -2
  845. package/dist/types/src/ToggleButtonGroup.d.ts +4 -1
  846. package/dist/types/src/TreeView.d.ts +6 -3
  847. package/dist/types/src/dnd-utils.d.ts +8 -0
  848. package/dist/types/src/pressScale.d.ts +20 -0
  849. package/dist/types/src/style-utils.d.ts +34 -27
  850. package/dist/types/src/useDOMRef.d.ts +3 -3
  851. package/dist/types/src/useDragAndDrop.d.ts +9 -0
  852. package/dist/types/style/index.d.ts +27 -33
  853. package/dist/types/style/runtime.d.ts +6 -8
  854. package/dist/types/style/spectrum-theme.d.ts +42 -50
  855. package/dist/types/style/style-macro.d.ts +7 -9
  856. package/dist/types/style/tokens.d.ts +2 -2
  857. package/dist/types/ui-icons/CornerTriangle.d.ts +4 -0
  858. package/dist/types/ui-icons/DragHandle.d.ts +4 -0
  859. package/exports/Accordion.ts +17 -2
  860. package/exports/ActionMenu.ts +14 -2
  861. package/exports/Card.ts +16 -2
  862. package/exports/CardView.ts +16 -2
  863. package/exports/CenterBaseline.ts +1 -0
  864. package/exports/ColorArea.ts +8 -1
  865. package/exports/ColorField.ts +8 -1
  866. package/exports/ColorSlider.ts +8 -1
  867. package/exports/ColorSwatch.ts +8 -1
  868. package/exports/ColorSwatchPicker.ts +8 -1
  869. package/exports/ColorWheel.ts +8 -1
  870. package/exports/ContextualHelp.ts +5 -1
  871. package/exports/Disclosure.ts +7 -1
  872. package/exports/DragPreview.ts +2 -0
  873. package/exports/Icon.ts +6 -1
  874. package/exports/LabeledValue.ts +2 -0
  875. package/exports/Menu.ts +17 -2
  876. package/exports/SegmentedControl.ts +5 -1
  877. package/exports/Skeleton.ts +1 -1
  878. package/exports/TableView.ts +27 -3
  879. package/exports/TreeView.ts +6 -1
  880. package/exports/index.ts +176 -17
  881. package/exports/useAsyncList.ts +7 -1
  882. package/exports/useDragAndDrop.ts +36 -0
  883. package/icons/Icon.cjs +10 -10
  884. package/icons/Icon.cjs.map +1 -1
  885. package/icons/Icon.css +9 -9
  886. package/icons/Icon.css.map +1 -1
  887. package/icons/Icon.mjs +10 -10
  888. package/icons/Icon.mjs.map +1 -1
  889. package/icons/Skeleton.cjs +2 -2
  890. package/icons/Skeleton.cjs.map +1 -1
  891. package/icons/Skeleton.css +6 -6
  892. package/icons/Skeleton.css.map +1 -1
  893. package/icons/Skeleton.mjs +2 -2
  894. package/icons/Skeleton.mjs.map +1 -1
  895. package/icons/runtime.cjs.map +1 -1
  896. package/icons/runtime.mjs.map +1 -1
  897. package/icons/useMediaQuery.cjs.map +1 -1
  898. package/icons/useMediaQuery.mjs.map +1 -1
  899. package/icons/useSpectrumContextProps.cjs.map +1 -1
  900. package/icons/useSpectrumContextProps.mjs.map +1 -1
  901. package/illustrations/gradient/generic1/Conversationbubbles.cjs.map +1 -1
  902. package/illustrations/gradient/generic1/Conversationbubbles.mjs.map +1 -1
  903. package/illustrations/gradient/generic2/Conversationbubbles.cjs.map +1 -1
  904. package/illustrations/gradient/generic2/Conversationbubbles.mjs.map +1 -1
  905. package/illustrations/linear/BrowserNotCompatible.cjs.map +1 -1
  906. package/illustrations/linear/BrowserNotCompatible.mjs.map +1 -1
  907. package/illustrations/linear/CloudStateDisconnected.cjs.map +1 -1
  908. package/illustrations/linear/CloudStateDisconnected.mjs.map +1 -1
  909. package/illustrations/linear/ConfettiCelebration.cjs.map +1 -1
  910. package/illustrations/linear/ConfettiCelebration.mjs.map +1 -1
  911. package/illustrations/linear/Conversationbubbles.cjs.map +1 -1
  912. package/illustrations/linear/Conversationbubbles.mjs.map +1 -1
  913. package/illustrations/linear/MegaphonePromoteExpressive.cjs.map +1 -1
  914. package/illustrations/linear/MegaphonePromoteExpressive.mjs.map +1 -1
  915. package/illustrations/linear/NoInternetConnection.cjs.map +1 -1
  916. package/illustrations/linear/NoInternetConnection.mjs.map +1 -1
  917. package/package.json +30 -30
  918. package/src/Accordion.tsx +97 -59
  919. package/src/ActionBar.tsx +102 -45
  920. package/src/ActionButton.tsx +358 -252
  921. package/src/ActionButtonGroup.tsx +59 -38
  922. package/src/ActionMenu.tsx +21 -10
  923. package/src/AlertDialog.tsx +28 -26
  924. package/src/Avatar.tsx +41 -28
  925. package/src/AvatarGroup.tsx +34 -16
  926. package/src/Badge.tsx +167 -129
  927. package/src/Breadcrumbs.tsx +173 -100
  928. package/src/Button.tsx +390 -289
  929. package/src/ButtonGroup.tsx +71 -52
  930. package/src/Calendar.tsx +230 -174
  931. package/src/Card.tsx +395 -303
  932. package/src/CardView.tsx +126 -61
  933. package/src/CenterBaseline.tsx +32 -7
  934. package/src/Checkbox.tsx +152 -57
  935. package/src/CheckboxGroup.tsx +96 -63
  936. package/src/ClearButton.tsx +6 -3
  937. package/src/CloseButton.tsx +71 -45
  938. package/src/CoachMark.tsx +204 -192
  939. package/src/ColorArea.tsx +49 -28
  940. package/src/ColorField.tsx +83 -36
  941. package/src/ColorHandle.tsx +36 -25
  942. package/src/ColorSlider.tsx +123 -90
  943. package/src/ColorSwatch.tsx +71 -43
  944. package/src/ColorSwatchPicker.tsx +71 -52
  945. package/src/ColorWheel.tsx +75 -54
  946. package/src/ComboBox.tsx +310 -187
  947. package/src/Content.tsx +59 -38
  948. package/src/ContextualHelp.tsx +83 -51
  949. package/src/CustomDialog.tsx +41 -33
  950. package/src/DateField.tsx +57 -27
  951. package/src/DatePicker.tsx +117 -66
  952. package/src/DateRangePicker.tsx +209 -158
  953. package/src/Dialog.tsx +24 -16
  954. package/src/DialogContainer.tsx +4 -7
  955. package/src/DialogTrigger.tsx +4 -6
  956. package/src/Disclosure.tsx +192 -157
  957. package/src/Divider.tsx +71 -49
  958. package/src/DragPreview.tsx +193 -0
  959. package/src/DropZone.tsx +71 -41
  960. package/src/Field.tsx +239 -108
  961. package/src/Fonts.tsx +18 -11
  962. package/src/Form.tsx +42 -27
  963. package/src/FullscreenDialog.tsx +24 -39
  964. package/src/Icon.tsx +70 -33
  965. package/src/IllustratedMessage.tsx +98 -69
  966. package/src/Image.tsx +105 -49
  967. package/src/ImageCoordinator.tsx +39 -24
  968. package/src/InlineAlert.tsx +90 -81
  969. package/src/LabeledValue.tsx +344 -0
  970. package/src/Link.tsx +99 -45
  971. package/src/ListBox.tsx +2 -9
  972. package/src/ListView.tsx +484 -280
  973. package/src/Menu.tsx +306 -180
  974. package/src/Meter.tsx +51 -21
  975. package/src/Modal.tsx +90 -81
  976. package/src/NotificationBadge.tsx +98 -74
  977. package/src/NumberField.tsx +160 -90
  978. package/src/Picker.tsx +311 -172
  979. package/src/Popover.tsx +196 -149
  980. package/src/ProgressBar.tsx +81 -56
  981. package/src/ProgressCircle.tsx +70 -48
  982. package/src/Provider.tsx +16 -16
  983. package/src/RadioGroup.tsx +164 -55
  984. package/src/RangeCalendar.tsx +63 -42
  985. package/src/RangeSlider.tsx +47 -35
  986. package/src/SearchField.tsx +110 -75
  987. package/src/SegmentedControl.tsx +101 -76
  988. package/src/SelectBoxGroup.tsx +231 -191
  989. package/src/Skeleton.tsx +75 -49
  990. package/src/SkeletonCollection.tsx +16 -16
  991. package/src/Slider.tsx +135 -83
  992. package/src/StatusLight.tsx +61 -22
  993. package/src/Switch.tsx +122 -38
  994. package/src/TableView.tsx +1040 -356
  995. package/src/Tabs.tsx +336 -185
  996. package/src/TabsPicker.tsx +152 -107
  997. package/src/TagGroup.tsx +175 -81
  998. package/src/TextField.tsx +120 -54
  999. package/src/TimeField.tsx +48 -23
  1000. package/src/Toast.module.css +11 -5
  1001. package/src/Toast.tsx +119 -87
  1002. package/src/ToggleButton.tsx +99 -25
  1003. package/src/ToggleButtonGroup.tsx +22 -6
  1004. package/src/Toolbar.tsx +0 -1
  1005. package/src/Tooltip.tsx +64 -26
  1006. package/src/TreeView.tsx +345 -91
  1007. package/src/bar-utils.ts +65 -68
  1008. package/src/dnd-utils.tsx +127 -0
  1009. package/src/font-faces.css +129 -33
  1010. package/src/page.macro.ts +2 -2
  1011. package/src/pressScale.ts +24 -1
  1012. package/src/progress-utils.tsx +1 -1
  1013. package/src/style-utils.ts +225 -212
  1014. package/src/useDOMRef.ts +26 -11
  1015. package/src/useDragAndDrop.ts +32 -0
  1016. package/src/useMediaQuery.ts +2 -4
  1017. package/src/useSpectrumContextProps.ts +5 -1
  1018. package/style/__tests__/mergeStyles.test.ts +15 -4
  1019. package/style/__tests__/style-macro.test.js +81 -71
  1020. package/style/dist/main.cjs +25 -25
  1021. package/style/dist/main.cjs.map +1 -1
  1022. package/style/dist/module.mjs +13 -13
  1023. package/style/dist/module.mjs.map +1 -1
  1024. package/style/dist/properties.mjs +3 -3
  1025. package/style/dist/spectrum-theme.cjs +227 -228
  1026. package/style/dist/spectrum-theme.cjs.map +1 -1
  1027. package/style/dist/spectrum-theme.mjs +220 -221
  1028. package/style/dist/spectrum-theme.mjs.map +1 -1
  1029. package/style/dist/style-macro.cjs +102 -101
  1030. package/style/dist/style-macro.cjs.map +1 -1
  1031. package/style/dist/style-macro.mjs +96 -95
  1032. package/style/dist/style-macro.mjs.map +1 -1
  1033. package/style/dist/style-utils.cjs +51 -39
  1034. package/style/dist/style-utils.cjs.map +1 -1
  1035. package/style/dist/style-utils.mjs +50 -38
  1036. package/style/dist/style-utils.mjs.map +1 -1
  1037. package/style/index.ts +105 -74
  1038. package/style/package.json +2 -2
  1039. package/style/runtime.ts +6 -8
  1040. package/style/spectrum-theme.ts +482 -194
  1041. package/style/style-macro.ts +310 -121
  1042. package/style/tokens.ts +79 -41
  1043. package/style/types.ts +146 -70
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.cjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.cjs.map"}
@@ -1,57 +1,57 @@
1
1
  @layer _.a {
2
- .gH13 {
2
+ .gH15 {
3
3
  background-color: light-dark(#e9e9e9, #2c2c2c);
4
4
  }
5
5
 
6
- ._Nc13 {
6
+ ._Nc15 {
7
7
  overflow-x: hidden;
8
8
  }
9
9
 
10
- .Pc13 {
10
+ .Pc15 {
11
11
  overflow-y: hidden;
12
12
  }
13
13
 
14
- .sb13 {
14
+ .sb15 {
15
15
  display: block;
16
16
  }
17
17
 
18
- .Za13 {
18
+ .Za15 {
19
19
  width: 100%;
20
20
  }
21
21
 
22
- .Fb13 {
22
+ .Fb15 {
23
23
  height: 100%;
24
24
  }
25
25
 
26
- ._Ia13 {
26
+ ._Ia15 {
27
27
  opacity: 0;
28
28
  }
29
29
 
30
- ._Ib13 {
30
+ ._Ib15 {
31
31
  opacity: 1;
32
32
  }
33
33
 
34
- .Ye13 {
34
+ .Ye15 {
35
35
  transition-property: none;
36
36
  }
37
37
 
38
- .Yf13 {
38
+ .Yf15 {
39
39
  transition-property: opacity;
40
40
  }
41
41
 
42
- .Xe13 {
42
+ .Xe15 {
43
43
  transition-duration: .5s;
44
44
  }
45
45
 
46
- ._2b13 {
46
+ ._2b15 {
47
47
  transition-timing-function: cubic-bezier(.45, 0, .4, 1);
48
48
  }
49
49
 
50
- ._H40ub4c13 {
50
+ ._H40ub4c15 {
51
51
  object-fit: inherit;
52
52
  }
53
53
 
54
- .__D40ub4c13 {
54
+ .__D40ub4c15 {
55
55
  object-position: inherit;
56
56
  }
57
57
  }
@@ -1 +1 @@
1
- {"mappings":"ACsKsB;EAAA;;;;EAAA;;;;EAAA;;;;EAKJ;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EA6IU;;;;EAAA","sources":["a1371b57e9afeb00","packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["@import \"be7e52eb05f9e81c\";\n@import \"b32b10d1bd9c4a50\";\n@import \"0e039ca03c56f78b\";\n","import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.css.map"}
1
+ {"mappings":"ACqLsB;EAAA;;;;EAAA;;;;EAAA;;;;EAKJ;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAwJU;;;;EAAA","sources":["a1371b57e9afeb00","packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["@import \"be7e52eb05f9e81c\";\n@import \"b32b10d1bd9c4a50\";\n@import \"0e039ca03c56f78b\";\n","import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.css.map"}
@@ -50,21 +50,21 @@ function $dbd6f0b2503b938c$var$reducer(state, action) {
50
50
  return state;
51
51
  }
52
52
  }
53
- const $dbd6f0b2503b938c$var$wrapperStyles = " gH13 _Nc13 Pc13";
53
+ const $dbd6f0b2503b938c$var$wrapperStyles = " gH15 _Nc15 Pc15";
54
54
  const $dbd6f0b2503b938c$var$imgStyles = function anonymous(props) {
55
55
  let rules = " ";
56
- rules += ' sb13';
57
- rules += ' Za13';
58
- rules += ' Fb13';
59
- rules += ' _H40ub4c13';
60
- rules += ' __D40ub4c13';
61
- if (props.isRevealed) rules += ' _Ib13';
62
- else rules += ' _Ia13';
63
- if (props.isTransitioning) rules += ' Yf13';
64
- else rules += ' Ye13';
65
- rules += ' Xe13';
66
- if (props.isTransitioning) rules += ' _2b13';
67
- else rules += ' _2b13';
56
+ rules += ' sb15';
57
+ rules += ' Za15';
58
+ rules += ' Fb15';
59
+ rules += ' _H40ub4c15';
60
+ rules += ' __D40ub4c15';
61
+ if (props.isRevealed) rules += ' _Ib15';
62
+ else rules += ' _Ia15';
63
+ if (props.isTransitioning) rules += ' Yf15';
64
+ else rules += ' Ye15';
65
+ rules += ' Xe15';
66
+ if (props.isTransitioning) rules += ' _2b15';
67
+ else rules += ' _2b15';
68
68
  return rules;
69
69
  };
70
70
  const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwardRef)(function Image(props, domRef) {
@@ -124,8 +124,8 @@ const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwa
124
124
  (0, $5AH9h$useLayoutEffect)(()=>{
125
125
  if (hidden) return;
126
126
  // In React act environments, run immediately.
127
- // @ts-ignore
128
- let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';
127
+ let isTestEnv = // @ts-ignore
128
+ typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';
129
129
  let runTask = isTestEnv ? (fn)=>fn() : queueMicrotask;
130
130
  // If the image is already loaded, update state immediately instead of waiting for onLoad.
131
131
  let img = imgRef.current;
@@ -162,7 +162,7 @@ const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwa
162
162
  })
163
163
  });
164
164
  if (Array.isArray(srcProp)) img = /*#__PURE__*/ (0, $5AH9h$jsxs)("picture", {
165
- className: " _H40ub4c13 __D40ub4c13",
165
+ className: " _H40ub4c15 __D40ub4c15",
166
166
  children: [
167
167
  srcProp.map((source, i)=>{
168
168
  let { colorScheme: sourceColorScheme, ...sourceProps } = source;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.mjs.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {Context, createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useReducer} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode,\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet loaded.\n * @default 5000\n */\n timeout?: number,\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean,\n register(url: string): void,\n unregister(url: string): void,\n load(url: string): void\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean,\n timedOut: boolean,\n loadStartTime: number,\n loaded: Map<string, boolean>\n}\n\ntype Action =\n | {type: 'register', url: string}\n | {type: 'unregister', url: string}\n | {type: 'load', url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(() => {\n dispatch({type: 'timeout'});\n }, loadStartTime + timeout - Date.now());\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(() => (\n <group.Provider value={{revealAll, register, unregister, load}}>\n {children}\n </group.Provider>\n ), [group, children, revealAll, register, unregister, load]);\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;AAqCA,MAAM,uCAAkC;IACtC,WAAW;IACX,aAAY;IACZ,eAAc;IACd,SAAQ;AACV;AAEO,MAAM,4CAAoB;AAE1B,SAAS;IACd,qBAAO,CAAA,GAAA,0BAAY,EAAE;AACvB;AAeA,SAAS,8BAAQ,KAAY,EAAE,MAAc;IAC3C,OAAQ,OAAO,IAAI;QACjB,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,OAAO;gBAC1C,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE;gBACvB,OAAO;oBACL,WAAW;oBACX,wEAAwE;oBACxE,+CAA+C;oBAC/C,UAAU,MAAM,SAAS,GAAG,QAAQ,MAAM,QAAQ;oBAClD,eAAe,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,MAAM,aAAa;4BACjE;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG;gBAChC,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,MAAM,CAAC,OAAO,GAAG;gBACxB,OAAO;oBACL,WAAW,kCAAY;oBACvB,UAAU,MAAM,QAAQ;oBACxB,eAAe,MAAM,aAAa;4BAClC;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,OAAO;gBAC1C,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE;gBACvB,OAAO;oBACL,WAAW,kCAAY;oBACvB,UAAU,MAAM,QAAQ;oBACxB,eAAe,MAAM,aAAa;4BAClC;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,QAAQ,EACrC,OAAO;gBACL,GAAG,KAAK;gBACR,UAAU;YACZ;YAEF,OAAO;QAET;YACE,OAAO;IACX;AACF;AAEA,SAAS,kCAAY,MAA4B;IAC/C,KAAK,IAAI,YAAY,OAAO,MAAM,GAAI;QACpC,IAAI,CAAC,UACH,OAAO;IAEX;IACA,OAAO;AACT;AAMO,SAAS,0CAAiB,KAA4B;IAC3D,+DAA+D;IAC/D,uDAAuD;IACvD,IAAI,MAAM,CAAA,GAAA,uBAAS,EAAE,MAAM,KAAK,IAAI;IACpC,IAAI,QAAQ,sCACV,OAAO,MAAM,QAAQ;IAGvB,qBAAO,gCAAC;QAAsB,GAAG,KAAK;;AACxC;AAEA,SAAS,2CAAqB,KAA4B;IACxD,IAAI,YAAC,QAAQ,WAAE,UAAU,aAAM,QAAQ,2CAAkB,GAAG;IAC5D,IAAI,CAAC,aAAC,SAAS,YAAE,QAAQ,iBAAE,aAAa,EAAC,EAAE,SAAS,GAAG,CAAA,GAAA,uBAAS,EAAE,+BAAS;QACzE,WAAW;QACX,UAAU;QACV,eAAe;QACf,QAAQ,IAAI;IACd;IAEA,IAAI,WAAW,CAAA,GAAA,wBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAY;QAAG,IAAI,EAAE;IACjF,IAAI,aAAa,CAAA,GAAA,wBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAc;QAAG,IAAI,EAAE;IACrF,IAAI,OAAO,CAAA,GAAA,wBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAQ;QAAG,IAAI,EAAE;IAEzE,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,CAAC,WAAW;YACd,IAAI,YAAY,WACd;gBACE,SAAS;oBAAC,MAAM;gBAAS;YAC3B,GACA,gBAAgB,UAAU,KAAK,GAAG;YAGpC,OAAO,IAAM,aAAa;QAC5B;IACF,GAAG;QAAC;QAAe;QAAW;KAAQ;IAEtC,IAAI,YAAY,aAAa;IAC7B,OAAO,CAAA,GAAA,oBAAM,EACX,kBACE,gCAAC,MAAM,QAAQ;YAAC,OAAO;2BAAC;0BAAW;4BAAU;sBAAY;YAAI;sBAAI;YAEnE;QAAC;QAAO;QAAU;QAAW;QAAU;QAAY;KAAK;AAE5D","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {\n Context,\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer\n} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode;\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet\n * loaded.\n *\n * @default 5000\n */\n timeout?: number;\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup;\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean;\n register(url: string): void;\n unregister(url: string): void;\n load(url: string): void;\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean;\n timedOut: boolean;\n loadStartTime: number;\n loaded: Map<string, boolean>;\n}\n\ntype Action =\n | {type: 'register'; url: string}\n | {type: 'unregister'; url: string}\n | {type: 'load'; url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(\n () => {\n dispatch({type: 'timeout'});\n },\n loadStartTime + timeout - Date.now()\n );\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(\n () => (\n <group.Provider value={{revealAll, register, unregister, load}}>{children}</group.Provider>\n ),\n [group, children, revealAll, register, unregister, load]\n );\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.cjs.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {Context, createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useReducer} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode,\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet loaded.\n * @default 5000\n */\n timeout?: number,\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean,\n register(url: string): void,\n unregister(url: string): void,\n load(url: string): void\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean,\n timedOut: boolean,\n loadStartTime: number,\n loaded: Map<string, boolean>\n}\n\ntype Action =\n | {type: 'register', url: string}\n | {type: 'unregister', url: string}\n | {type: 'load', url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(() => {\n dispatch({type: 'timeout'});\n }, loadStartTime + timeout - Date.now());\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(() => (\n <group.Provider value={{revealAll, register, unregister, load}}>\n {children}\n </group.Provider>\n ), [group, children, revealAll, register, unregister, load]);\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.mjs.map"}
1
+ {"mappings":";;;;;AAqCA,MAAM,uCAAkC;IACtC,WAAW;IACX,aAAY;IACZ,eAAc;IACd,SAAQ;AACV;AAEO,MAAM,4CAAoB;AAE1B,SAAS;IACd,qBAAO,CAAA,GAAA,oBAAY,EAAE;AACvB;AAeA,SAAS,8BAAQ,KAAY,EAAE,MAAc;IAC3C,OAAQ,OAAO,IAAI;QACjB,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,OAAO;gBAC1C,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE;gBACvB,OAAO;oBACL,WAAW;oBACX,wEAAwE;oBACxE,+CAA+C;oBAC/C,UAAU,MAAM,SAAS,GAAG,QAAQ,MAAM,QAAQ;oBAClD,eAAe,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,MAAM,aAAa;4BACjE;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG;gBAChC,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,MAAM,CAAC,OAAO,GAAG;gBACxB,OAAO;oBACL,WAAW,kCAAY;oBACvB,UAAU,MAAM,QAAQ;oBACxB,eAAe,MAAM,aAAa;4BAClC;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,OAAO;gBAC1C,IAAI,SAAS,IAAI,IAAI,MAAM,MAAM;gBACjC,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE;gBACvB,OAAO;oBACL,WAAW,kCAAY;oBACvB,UAAU,MAAM,QAAQ;oBACxB,eAAe,MAAM,aAAa;4BAClC;gBACF;YACF;YACA,OAAO;QAET,KAAK;YACH,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,QAAQ,EACrC,OAAO;gBACL,GAAG,KAAK;gBACR,UAAU;YACZ;YAEF,OAAO;QAET;YACE,OAAO;IACX;AACF;AAEA,SAAS,kCAAY,MAA4B;IAC/C,KAAK,IAAI,YAAY,OAAO,MAAM,GAAI;QACpC,IAAI,CAAC,UACH,OAAO;IAEX;IACA,OAAO;AACT;AAMO,SAAS,0CAAiB,KAA4B;IAC3D,+DAA+D;IAC/D,uDAAuD;IACvD,IAAI,MAAM,CAAA,GAAA,iBAAS,EAAE,MAAM,KAAK,IAAI;IACpC,IAAI,QAAQ,sCACV,OAAO,MAAM,QAAQ;IAGvB,qBAAO,gBAAC;QAAsB,GAAG,KAAK;;AACxC;AAEA,SAAS,2CAAqB,KAA4B;IACxD,IAAI,YAAC,QAAQ,WAAE,UAAU,aAAM,QAAQ,2CAAkB,GAAG;IAC5D,IAAI,CAAC,aAAC,SAAS,YAAE,QAAQ,iBAAE,aAAa,EAAC,EAAE,SAAS,GAAG,CAAA,GAAA,iBAAS,EAAE,+BAAS;QACzE,WAAW;QACX,UAAU;QACV,eAAe;QACf,QAAQ,IAAI;IACd;IAEA,IAAI,WAAW,CAAA,GAAA,kBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAY;QAAG,IAAI,EAAE;IACjF,IAAI,aAAa,CAAA,GAAA,kBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAc;QAAG,IAAI,EAAE;IACrF,IAAI,OAAO,CAAA,GAAA,kBAAU,EAAE,CAAC,MAAgB,SAAS;YAAC,MAAM;iBAAQ;QAAG,IAAI,EAAE;IAEzE,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,CAAC,WAAW;YACd,IAAI,YAAY,WACd;gBACE,SAAS;oBAAC,MAAM;gBAAS;YAC3B,GACA,gBAAgB,UAAU,KAAK,GAAG;YAGpC,OAAO,IAAM,aAAa;QAC5B;IACF,GAAG;QAAC;QAAe;QAAW;KAAQ;IAEtC,IAAI,YAAY,aAAa;IAC7B,OAAO,CAAA,GAAA,cAAM,EACX,kBACE,gBAAC,MAAM,QAAQ;YAAC,OAAO;2BAAC;0BAAW;4BAAU;sBAAY;YAAI;sBAAI;YAEnE;QAAC;QAAO;QAAU;QAAW;QAAU;QAAY;KAAK;AAE5D","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {\n Context,\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer\n} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode;\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet\n * loaded.\n *\n * @default 5000\n */\n timeout?: number;\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup;\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean;\n register(url: string): void;\n unregister(url: string): void;\n load(url: string): void;\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean;\n timedOut: boolean;\n loadStartTime: number;\n loaded: Map<string, boolean>;\n}\n\ntype Action =\n | {type: 'register'; url: string}\n | {type: 'unregister'; url: string}\n | {type: 'load'; url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(\n () => {\n dispatch({type: 'timeout'});\n },\n loadStartTime + timeout - Date.now()\n );\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(\n () => (\n <group.Provider value={{revealAll, register, unregister, load}}>{children}</group.Provider>\n ),\n [group, children, revealAll, register, unregister, load]\n );\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.mjs.map"}