@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/Button.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {baseColor, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};\nimport {ButtonRenderProps, Button as RACButton, ButtonProps as RACButtonProps} from 'react-aria-components/Button';\nimport {centerBaseline} from './CenterBaseline';\nimport {ContextValue, Provider} from 'react-aria-components/slots';\nimport {control, getAllowedOverrides, staticColor, StyleProps} from './style-utils' with {type: 'macro'};\nimport {createContext, forwardRef, ReactNode, useContext, useEffect, useState} from 'react';\nimport {FocusableRef, FocusableRefValue, GlobalDOMAttributes} from '@react-types/shared';\nimport {IconContext} from './Icon';\nimport intlMessages from '../intl/*.json';\nimport {linearGradient} from '../style/spectrum-theme' with {type: 'macro'};\n// @ts-ignore\nimport {Link, LinkProps} from 'react-aria-components/Link';\nimport {OverlayTriggerStateContext} from 'react-aria-components/Dialog';\nimport {pressScale} from './pressScale';\nimport {ProgressCircle} from './ProgressCircle';\nimport {SkeletonContext} from './Skeleton';\nimport {Text, TextContext} from './Content';\nimport {useFocusableRef} from './useDOMRef';\nimport {useFormProps} from './Form';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\ninterface ButtonStyleProps {\n /**\n * The [visual style](https://spectrum.adobe.com/page/button/#Options) of the button.\n *\n * @default 'primary'\n */\n variant?: 'primary' | 'secondary' | 'accent' | 'negative' | 'premium' | 'genai',\n /**\n * The background style of the Button.\n *\n * @default 'fill'\n */\n fillStyle?: 'fill' | 'outline',\n /**\n * The size of the Button.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /** The static color style to apply. Useful when the Button appears over a color background. */\n staticColor?: 'white' | 'black' | 'auto'\n}\n\nexport interface ButtonProps extends Omit<RACButtonProps, 'className' | 'style' | 'render' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ButtonStyleProps {\n /** The content to display in the Button. */\n children: ReactNode\n}\n\nexport interface LinkButtonProps extends Omit<LinkProps, 'className' | 'style' | 'render' | 'children' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ButtonStyleProps {\n /** The content to display in the Button. */\n children: ReactNode\n}\n\nexport const ButtonContext = createContext<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLButtonElement>>>(null);\nexport const LinkButtonContext = createContext<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLAnchorElement>>>(null);\n\nconst button = style<ButtonRenderProps & ButtonStyleProps & {isStaticColor: boolean}>({\n ...focusRing(),\n ...staticColor(),\n ...control({shape: 'pill', wrap: true, icon: true}),\n position: 'relative',\n justifyContent: 'center',\n textAlign: 'start',\n fontWeight: 'bold',\n userSelect: 'none',\n width: 'fit',\n textDecoration: 'none', // for link buttons\n transition: 'default',\n borderStyle: 'solid',\n borderWidth: {\n fillStyle: {\n fill: 0,\n outline: 2\n },\n variant: {\n premium: 0,\n genai: 0\n }\n },\n borderColor: {\n variant: {\n primary: baseColor('gray-800'),\n secondary: baseColor('gray-300')\n },\n isDisabled: 'disabled',\n isStaticColor: {\n variant: {\n primary: baseColor('transparent-overlay-800'),\n secondary: baseColor('transparent-overlay-300')\n },\n isDisabled: 'transparent-overlay-300'\n },\n forcedColors: {\n default: 'ButtonBorder',\n isHovered: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n backgroundColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: baseColor('neutral'),\n secondary: baseColor('gray-100'),\n accent: {\n default: lightDark('accent-900', 'accent-700'),\n isHovered: lightDark('accent-1000', 'accent-600'),\n isPressed: lightDark('accent-1000', 'accent-600'),\n isFocusVisible: lightDark('accent-1000', 'accent-600')\n },\n negative: {\n default: lightDark('negative-900', 'negative-700'),\n isHovered: lightDark('negative-1000', 'negative-600'),\n isPressed: lightDark('negative-1000', 'negative-600'),\n isFocusVisible: lightDark('negative-1000', 'negative-600')\n },\n premium: 'gray-100',\n genai: 'gray-100'\n },\n isDisabled: 'disabled'\n },\n outline: {\n variant: {\n premium: 'gray-100',\n genai: 'gray-100'\n },\n default: 'transparent',\n isHovered: 'gray-100',\n isPressed: 'gray-100',\n isFocusVisible: 'gray-100',\n isDisabled: {\n default: 'transparent',\n variant: {\n premium: 'gray-100',\n genai: 'gray-100'\n }\n }\n }\n },\n isStaticColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: baseColor('transparent-overlay-800'),\n secondary: baseColor('transparent-overlay-100'),\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n },\n isDisabled: 'transparent-overlay-100'\n },\n outline: {\n variant: {\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n },\n default: 'transparent',\n isHovered: 'transparent-overlay-100',\n isPressed: 'transparent-overlay-100',\n isFocusVisible: 'transparent-overlay-100',\n isDisabled: {\n default: 'transparent',\n variant: {\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n }\n }\n }\n }\n },\n forcedColors: {\n fillStyle: {\n fill: {\n default: 'ButtonText',\n isHovered: 'Highlight',\n isDisabled: 'GrayText'\n },\n outline: 'ButtonFace'\n }\n }\n },\n color: {\n fillStyle: {\n fill: {\n variant: {\n primary: 'gray-25',\n secondary: baseColor('neutral'),\n accent: 'white',\n negative: 'white',\n premium: 'white',\n genai: 'white'\n },\n isDisabled: 'disabled'\n },\n outline: {\n default: baseColor('neutral'),\n variant: {\n premium: 'white',\n genai: 'white'\n },\n isDisabled: 'disabled'\n }\n },\n isStaticColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: 'auto',\n secondary: baseColor('transparent-overlay-800'),\n premium: 'white',\n genai: 'white'\n }\n },\n outline: {\n variant: {\n premium: 'white',\n genai: 'white'\n },\n default: baseColor('transparent-overlay-800')\n }\n },\n isDisabled: 'transparent-overlay-400'\n },\n forcedColors: {\n fillStyle: {\n fill: {\n default: 'ButtonFace',\n isDisabled: 'HighlightText'\n },\n outline: {\n default: 'ButtonText',\n isDisabled: 'GrayText'\n }\n }\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n outlineColor: {\n default: 'focus-ring',\n isStaticColor: 'transparent-overlay-1000',\n forcedColors: 'Highlight'\n },\n forcedColorAdjust: 'none',\n disableTapHighlight: true\n}, getAllowedOverrides());\n\n// Put the gradient background on a separate element from the button to work around a Safari\n// bug where transitions of custom properties cause layout flickering if any properties use rems. 🤣\n// https://bugs.webkit.org/show_bug.cgi?id=285622\nconst gradient = style({\n position: 'absolute',\n inset: 0,\n zIndex: -1,\n transition: 'default',\n borderRadius: 'inherit',\n backgroundImage: {\n variant: {\n premium: {\n default: linearGradient('to bottom right', ['fuchsia-900', 0], ['indigo-900', 66], ['blue-900', 100]),\n isHovered: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100]),\n isPressed: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100]),\n isFocusVisible: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100])\n },\n genai: {\n default: linearGradient('to bottom right', ['red-900', 0], ['magenta-900', 33], ['indigo-900', 100]),\n isHovered: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100]),\n isPressed: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100]),\n isFocusVisible: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100])\n }\n },\n isDisabled: 'none',\n forcedColors: 'none'\n },\n // Force gradient colors to remain static between light and dark theme.\n colorScheme: {\n variant: {\n premium: 'light',\n genai: 'light'\n }\n }\n});\n\nexport function usePendingState(isPending: boolean) {\n let [isProgressVisible, setIsProgressVisible] = useState(false);\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>;\n if (isPending) {\n timeout = setTimeout(() => {\n setIsProgressVisible(true);\n }, 1000);\n } else {\n setIsProgressVisible(false);\n }\n return () => {\n clearTimeout(timeout);\n };\n }, [isPending]);\n return {isProgressVisible};\n}\n\n/**\n * Buttons allow users to perform an action.\n * They have multiple styles for various needs, and are ideal for calling attention to\n * where a user needs to do something in order to move forward in a flow.\n */\nexport const Button = forwardRef(function Button(props: ButtonProps, ref: FocusableRef<HTMLButtonElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonContext);\n props = useFormProps(props);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let {\n isPending = false,\n variant = 'primary',\n fillStyle = 'fill',\n size = 'M',\n staticColor\n } = props;\n let domRef = useFocusableRef(ref);\n let overlayTriggerState = useContext(OverlayTriggerStateContext);\n\n let {isProgressVisible} = usePendingState(isPending);\n\n return (\n <RACButton\n {...props}\n ref={domRef}\n style={pressScale(domRef, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + button({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n isDisabled: renderProps.isDisabled || isProgressVisible,\n variant,\n fillStyle,\n size,\n staticColor,\n isStaticColor: !!staticColor\n }, props.styles)}>\n {(renderProps) => (<>\n {variant === 'genai' || variant === 'premium'\n ? (\n <span\n className={gradient({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n isDisabled: renderProps.isDisabled || isProgressVisible,\n variant\n })} />\n )\n : null}\n <Provider\n values={[\n [SkeletonContext, null],\n [TextContext, {\n styles: style({\n paddingY: '--labelPadding',\n order: 1,\n visibility: {\n isProgressVisible: 'hidden'\n }\n })({isProgressVisible}),\n // @ts-ignore data-attributes allowed on all JSX elements, but adding to DOMProps has been problematic in the past\n 'data-rsp-slot': 'text'\n }],\n [IconContext, {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: style({\n size: fontRelative(20),\n marginStart: '--iconMargin',\n flexShrink: 0,\n visibility: {\n isProgressVisible: 'hidden'\n }\n })({isProgressVisible})\n }]\n ]}>\n {typeof props.children === 'string' ? <Text>{props.children}</Text> : props.children}\n {isPending &&\n <div\n className={style({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n visibility: {\n default: 'hidden',\n isProgressVisible: 'visible'\n }\n })({isProgressVisible, isPending})}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('button.pending')}\n size=\"S\"\n staticColor={staticColor}\n styles={style({\n size: {\n size: {\n S: 14,\n M: 18,\n L: 20,\n XL: 24\n }\n }\n })({size})} />\n </div>\n }\n </Provider>\n </>)}\n </RACButton>\n );\n});\n\n/**\n * A LinkButton combines the functionality of a link with the appearance of a button. Useful for allowing users to navigate to another page.\n */\nexport const LinkButton = forwardRef(function LinkButton(props: LinkButtonProps, ref: FocusableRef<HTMLAnchorElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, LinkButtonContext);\n props = useFormProps(props);\n let domRef = useFocusableRef(ref);\n let overlayTriggerState = useContext(OverlayTriggerStateContext);\n let {\n fillStyle = 'fill',\n size = 'M',\n variant = 'primary',\n staticColor,\n styles,\n children\n } = props;\n\n return (\n <Link\n {...props}\n ref={domRef}\n style={pressScale(domRef, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + button({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n variant,\n fillStyle,\n size,\n staticColor,\n isStaticColor: !!staticColor,\n isPending: false\n }, styles)}>\n {(renderProps) => (<>\n {variant === 'genai' || variant === 'premium'\n ? (\n <span\n className={gradient({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n variant\n })} />\n )\n : null}\n <Provider\n values={[\n [SkeletonContext, null],\n [TextContext, {\n styles: style({paddingY: '--labelPadding', order: 1}),\n // @ts-ignore data-attributes allowed on all JSX elements, but adding to DOMProps has been problematic in the past\n 'data-rsp-slot': 'text'\n }],\n [IconContext, {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: style({size: fontRelative(20), marginStart: '--iconMargin', flexShrink: 0})\n }]\n ]}>\n {typeof children === 'string' ? <Text>{children}</Text> : children}\n </Provider>\n </>)}\n </Link>\n );\n});\n"],"names":[],"version":3,"file":"Button.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Button.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {baseColor, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};\nimport {\n ButtonRenderProps,\n Button as RACButton,\n ButtonProps as RACButtonProps\n} from 'react-aria-components/Button';\nimport {centerBaseline} from './CenterBaseline';\nimport {ContextValue, Provider} from 'react-aria-components/slots';\nimport {\n control,\n getAllowedOverrides,\n staticColor,\n StyleProps\n} from './style-utils' with {type: 'macro'};\nimport {createContext, forwardRef, ReactNode, useContext, useEffect, useState} from 'react';\nimport {FocusableRef, FocusableRefValue, GlobalDOMAttributes} from '@react-types/shared';\nimport {IconContext} from './Icon';\nimport intlMessages from '../intl/*.json';\nimport {linearGradient} from '../style/spectrum-theme' with {type: 'macro'};\nimport {Link, LinkProps} from 'react-aria-components/Link';\nimport {OverlayTriggerStateContext} from 'react-aria-components/Dialog';\nimport {pressScale} from './pressScale';\nimport {ProgressCircle} from './ProgressCircle';\nimport {SkeletonContext} from './Skeleton';\nimport {Text, TextContext} from './Content';\nimport {useFocusableRef} from './useDOMRef';\nimport {useFormProps} from './Form';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\ninterface ButtonStyleProps {\n /**\n * The [visual style](https://spectrum.adobe.com/page/button/#Options) of the button.\n *\n * @default 'primary'\n */\n variant?: 'primary' | 'secondary' | 'accent' | 'negative' | 'premium' | 'genai';\n /**\n * The background style of the Button.\n *\n * @default 'fill'\n */\n fillStyle?: 'fill' | 'outline';\n /**\n * The size of the Button.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL';\n /** The static color style to apply. Useful when the Button appears over a color background. */\n staticColor?: 'white' | 'black' | 'auto';\n}\n\nexport interface ButtonProps\n extends\n Omit<\n RACButtonProps,\n | 'className'\n | 'style'\n | 'render'\n | 'children'\n | 'onHover'\n | 'onHoverStart'\n | 'onHoverEnd'\n | 'onHoverChange'\n | 'onClick'\n | keyof GlobalDOMAttributes\n >,\n StyleProps,\n ButtonStyleProps {\n /** The content to display in the Button. */\n children: ReactNode;\n}\n\nexport interface LinkButtonProps\n extends\n Omit<\n LinkProps,\n 'className' | 'style' | 'render' | 'children' | 'onClick' | keyof GlobalDOMAttributes\n >,\n StyleProps,\n ButtonStyleProps {\n /** The content to display in the Button. */\n children: ReactNode;\n}\n\nexport const ButtonContext =\n createContext<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLButtonElement>>>(null);\nexport const LinkButtonContext =\n createContext<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLAnchorElement>>>(null);\n\nconst button = style<ButtonRenderProps & ButtonStyleProps & {isStaticColor: boolean}>(\n {\n ...focusRing(),\n ...staticColor(),\n ...control({shape: 'pill', wrap: true, icon: true}),\n position: 'relative',\n justifyContent: 'center',\n textAlign: 'start',\n fontWeight: 'bold',\n userSelect: 'none',\n width: 'fit',\n textDecoration: 'none', // for link buttons\n transition: 'default',\n borderStyle: 'solid',\n borderWidth: {\n fillStyle: {\n fill: 0,\n outline: 2\n },\n variant: {\n premium: 0,\n genai: 0\n }\n },\n borderColor: {\n variant: {\n primary: baseColor('gray-800'),\n secondary: baseColor('gray-300')\n },\n isDisabled: 'disabled',\n isStaticColor: {\n variant: {\n primary: baseColor('transparent-overlay-800'),\n secondary: baseColor('transparent-overlay-300')\n },\n isDisabled: 'transparent-overlay-300'\n },\n forcedColors: {\n default: 'ButtonBorder',\n isHovered: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n backgroundColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: baseColor('neutral'),\n secondary: baseColor('gray-100'),\n accent: {\n default: lightDark('accent-900', 'accent-700'),\n isHovered: lightDark('accent-1000', 'accent-600'),\n isPressed: lightDark('accent-1000', 'accent-600'),\n isFocusVisible: lightDark('accent-1000', 'accent-600')\n },\n negative: {\n default: lightDark('negative-900', 'negative-700'),\n isHovered: lightDark('negative-1000', 'negative-600'),\n isPressed: lightDark('negative-1000', 'negative-600'),\n isFocusVisible: lightDark('negative-1000', 'negative-600')\n },\n premium: 'gray-100',\n genai: 'gray-100'\n },\n isDisabled: 'disabled'\n },\n outline: {\n variant: {\n premium: 'gray-100',\n genai: 'gray-100'\n },\n default: 'transparent',\n isHovered: 'gray-100',\n isPressed: 'gray-100',\n isFocusVisible: 'gray-100',\n isDisabled: {\n default: 'transparent',\n variant: {\n premium: 'gray-100',\n genai: 'gray-100'\n }\n }\n }\n },\n isStaticColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: baseColor('transparent-overlay-800'),\n secondary: baseColor('transparent-overlay-100'),\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n },\n isDisabled: 'transparent-overlay-100'\n },\n outline: {\n variant: {\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n },\n default: 'transparent',\n isHovered: 'transparent-overlay-100',\n isPressed: 'transparent-overlay-100',\n isFocusVisible: 'transparent-overlay-100',\n isDisabled: {\n default: 'transparent',\n variant: {\n premium: 'transparent-overlay-100',\n genai: 'transparent-overlay-100'\n }\n }\n }\n }\n },\n forcedColors: {\n fillStyle: {\n fill: {\n default: 'ButtonText',\n isHovered: 'Highlight',\n isDisabled: 'GrayText'\n },\n outline: 'ButtonFace'\n }\n }\n },\n color: {\n fillStyle: {\n fill: {\n variant: {\n primary: 'gray-25',\n secondary: baseColor('neutral'),\n accent: 'white',\n negative: 'white',\n premium: 'white',\n genai: 'white'\n },\n isDisabled: 'disabled'\n },\n outline: {\n default: baseColor('neutral'),\n variant: {\n premium: 'white',\n genai: 'white'\n },\n isDisabled: 'disabled'\n }\n },\n isStaticColor: {\n fillStyle: {\n fill: {\n variant: {\n primary: 'auto',\n secondary: 'white',\n premium: 'white',\n genai: 'white'\n }\n },\n outline: {\n variant: {\n premium: 'white',\n genai: 'white'\n },\n default: 'white'\n }\n },\n isDisabled: 'transparent-overlay-400'\n },\n forcedColors: {\n fillStyle: {\n fill: {\n default: 'ButtonFace',\n isDisabled: 'HighlightText'\n },\n outline: {\n default: 'ButtonText',\n isDisabled: 'GrayText'\n }\n }\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n outlineColor: {\n default: 'focus-ring',\n isStaticColor: 'transparent-overlay-1000',\n forcedColors: 'Highlight'\n },\n forcedColorAdjust: 'none',\n disableTapHighlight: true\n },\n getAllowedOverrides()\n);\n\n// Put the gradient background on a separate element from the button to work around a Safari\n// bug where transitions of custom properties cause layout flickering if any properties use rems. 🤣\n// https://bugs.webkit.org/show_bug.cgi?id=285622\nconst gradient = style({\n position: 'absolute',\n inset: 0,\n zIndex: -1,\n transition: 'default',\n borderRadius: 'inherit',\n backgroundImage: {\n variant: {\n premium: {\n default: linearGradient(\n 'to bottom right',\n ['fuchsia-900', 0],\n ['indigo-900', 66],\n ['blue-900', 100]\n ),\n isHovered: linearGradient(\n 'to bottom right',\n ['fuchsia-1000', 0],\n ['indigo-1000', 66],\n ['blue-1000', 100]\n ),\n isPressed: linearGradient(\n 'to bottom right',\n ['fuchsia-1000', 0],\n ['indigo-1000', 66],\n ['blue-1000', 100]\n ),\n isFocusVisible: linearGradient(\n 'to bottom right',\n ['fuchsia-1000', 0],\n ['indigo-1000', 66],\n ['blue-1000', 100]\n )\n },\n genai: {\n default: linearGradient(\n 'to bottom right',\n ['red-900', 0],\n ['magenta-900', 33],\n ['indigo-900', 100]\n ),\n isHovered: linearGradient(\n 'to bottom right',\n ['red-1000', 0],\n ['magenta-1000', 33],\n ['indigo-1000', 100]\n ),\n isPressed: linearGradient(\n 'to bottom right',\n ['red-1000', 0],\n ['magenta-1000', 33],\n ['indigo-1000', 100]\n ),\n isFocusVisible: linearGradient(\n 'to bottom right',\n ['red-1000', 0],\n ['magenta-1000', 33],\n ['indigo-1000', 100]\n )\n }\n },\n isDisabled: 'none',\n forcedColors: 'none'\n },\n // Force gradient colors to remain static between light and dark theme.\n colorScheme: {\n variant: {\n premium: 'light',\n genai: 'light'\n }\n }\n});\n\nexport function usePendingState(isPending: boolean) {\n let [isProgressVisible, setIsProgressVisible] = useState(false);\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>;\n if (isPending) {\n timeout = setTimeout(() => {\n setIsProgressVisible(true);\n }, 1000);\n } else {\n setIsProgressVisible(false);\n }\n return () => {\n clearTimeout(timeout);\n };\n }, [isPending]);\n return {isProgressVisible};\n}\n\n/**\n * Buttons allow users to perform an action.\n * They have multiple styles for various needs, and are ideal for calling attention to\n * where a user needs to do something in order to move forward in a flow.\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps,\n ref: FocusableRef<HTMLButtonElement>\n) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonContext);\n props = useFormProps(props);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let {isPending = false, variant = 'primary', fillStyle = 'fill', size = 'M', staticColor} = props;\n let domRef = useFocusableRef(ref);\n let overlayTriggerState = useContext(OverlayTriggerStateContext);\n\n let {isProgressVisible} = usePendingState(isPending);\n\n return (\n <RACButton\n {...props}\n ref={domRef}\n style={pressScale(domRef, props.UNSAFE_style)}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n button(\n {\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n isDisabled: renderProps.isDisabled || isProgressVisible,\n variant,\n fillStyle,\n size,\n staticColor,\n isStaticColor: !!staticColor\n },\n props.styles\n )\n }>\n {renderProps => (\n <>\n {variant === 'genai' || variant === 'premium' ? (\n <span\n className={gradient({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n isDisabled: renderProps.isDisabled || isProgressVisible,\n variant\n })}\n />\n ) : null}\n <Provider\n values={[\n [SkeletonContext, null],\n [\n TextContext,\n {\n styles: style({\n paddingY: '--labelPadding',\n order: 1,\n visibility: {\n isProgressVisible: 'hidden'\n }\n })({isProgressVisible}),\n // @ts-ignore data-attributes allowed on all JSX elements, but adding to DOMProps has been problematic in the past\n 'data-rsp-slot': 'text'\n }\n ],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: style({\n size: fontRelative(20),\n marginStart: '--iconMargin',\n flexShrink: 0,\n visibility: {\n isProgressVisible: 'hidden'\n }\n })({isProgressVisible})\n }\n ]\n ]}>\n {typeof props.children === 'string' ? <Text>{props.children}</Text> : props.children}\n {isPending && (\n <div\n className={style({\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n visibility: {\n default: 'hidden',\n isProgressVisible: 'visible'\n }\n })({isProgressVisible, isPending})}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('button.pending')}\n size=\"S\"\n staticColor={staticColor}\n styles={style({\n size: {\n size: {\n S: 14,\n M: 18,\n L: 20,\n XL: 24\n }\n }\n })({size})}\n />\n </div>\n )}\n </Provider>\n </>\n )}\n </RACButton>\n );\n});\n\n/**\n * A LinkButton combines the functionality of a link with the appearance of a button. Useful for\n * allowing users to navigate to another page.\n */\nexport const LinkButton = forwardRef(function LinkButton(\n props: LinkButtonProps,\n ref: FocusableRef<HTMLAnchorElement>\n) {\n [props, ref] = useSpectrumContextProps(props, ref, LinkButtonContext);\n props = useFormProps(props);\n let domRef = useFocusableRef(ref);\n let overlayTriggerState = useContext(OverlayTriggerStateContext);\n let {fillStyle = 'fill', size = 'M', variant = 'primary', staticColor, styles, children} = props;\n\n return (\n <Link\n {...props}\n ref={domRef}\n style={pressScale(domRef, props.UNSAFE_style)}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n button(\n {\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n variant,\n fillStyle,\n size,\n staticColor,\n isStaticColor: !!staticColor,\n isPending: false\n },\n styles\n )\n }>\n {renderProps => (\n <>\n {variant === 'genai' || variant === 'premium' ? (\n <span\n className={gradient({\n ...renderProps,\n // Retain hover styles when an overlay is open.\n isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,\n variant\n })}\n />\n ) : null}\n <Provider\n values={[\n [SkeletonContext, null],\n [\n TextContext,\n {\n styles: style({paddingY: '--labelPadding', order: 1}),\n // @ts-ignore data-attributes allowed on all JSX elements, but adding to DOMProps has been problematic in the past\n 'data-rsp-slot': 'text'\n }\n ],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: style({\n size: fontRelative(20),\n marginStart: '--iconMargin',\n flexShrink: 0\n })\n }\n ]\n ]}>\n {typeof children === 'string' ? <Text>{children}</Text> : children}\n </Provider>\n </>\n )}\n </Link>\n );\n});\n"],"names":[],"version":3,"file":"Button.mjs.map"}
@@ -41,32 +41,35 @@ const $e1016b8947dbadb8$export$4c574c91bb0be0e2 = /*#__PURE__*/ (0, $5rFNy$react
41
41
  const $e1016b8947dbadb8$var$buttongroup = function anonymous(props, overrides) {
42
42
  let rules = " ";
43
43
  let position = false;
44
+ let maxWidth = false;
44
45
  let matches = String(overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|_6|Z|N|L)[^\s]+/g);
45
46
  for (let p of matches){
46
47
  if (p[1] === "_P") position = true;
48
+ if (p[1] === "L") maxWidth = true;
47
49
  rules += p[0];
48
50
  }
49
- rules += ' sh13';
50
- if (!position) rules += ' _Pc13';
51
- if (props.size === "XL") rules += ' Ug13';
52
- else if (props.size === "L") rules += ' Ug13';
53
- else if (props.size === "M") rules += ' Ug13';
54
- else if (props.size === "S") rules += ' Ue13';
55
- if (props.size === "XL") rules += ' qg13';
56
- else if (props.size === "L") rules += ' qg13';
57
- else if (props.size === "M") rules += ' qg13';
58
- else if (props.size === "S") rules += ' qe13';
59
- if (props.orientation === "vertical") rules += ' _ta13';
60
- else rules += ' _tc13';
51
+ rules += ' sh15';
52
+ if (!position) rules += ' _Pc15';
53
+ if (!maxWidth) rules += ' La15';
54
+ if (props.size === "XL") rules += ' Ug15';
55
+ else if (props.size === "L") rules += ' Ug15';
56
+ else if (props.size === "M") rules += ' Ug15';
57
+ else if (props.size === "S") rules += ' Ue15';
58
+ if (props.size === "XL") rules += ' qg15';
59
+ else if (props.size === "L") rules += ' qg15';
60
+ else if (props.size === "M") rules += ' qg15';
61
+ else if (props.size === "S") rules += ' qe15';
62
+ if (props.orientation === "vertical") rules += ' _ta15';
63
+ else rules += ' _tc15';
61
64
  if (props.orientation === "vertical") {
62
- if (props.align === "center") rules += ' eb13';
63
- else if (props.align === "end") rules += ' ec13';
64
- else rules += ' ed13';
65
- } else rules += ' eb13';
65
+ if (props.align === "center") rules += ' eb15';
66
+ else if (props.align === "end") rules += ' ec15';
67
+ else rules += ' ed15';
68
+ } else rules += ' eb15';
66
69
  if (props.orientation === "vertical") {
67
- if (props.align === "center") rules += ' _Ca13';
68
- else if (props.align === "end") rules += ' _Cb13';
69
- else rules += ' _Cg13';
70
+ if (props.align === "center") rules += ' _Ca15';
71
+ else if (props.align === "end") rules += ' _Cb15';
72
+ else rules += ' _Cg15';
70
73
  }
71
74
  return rules;
72
75
  };
@@ -120,7 +123,7 @@ const $e1016b8947dbadb8$export$69b1032f2ecdf404 = /*#__PURE__*/ (0, $5rFNy$react
120
123
  });
121
124
  if (props.isHidden) return null;
122
125
  let context = {
123
- styles: " _va13",
126
+ styles: " _va15",
124
127
  size: size,
125
128
  isDisabled: isDisabled
126
129
  };
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAiDM,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAA+E,CAAC;AAE9H,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CC,MAAM,0DAAc,CAAA,GAAA,uBAAS,EAAE,SAAS,YAAY,KAAuB,EAAE,GAA2B;IAC7G,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,iDAAsB,EAAE,OAAO,KAAK;IACnD,IAAI,SAAS,CAAA,GAAA,mCAAQ,EAAE;IACvB,IAAI,QACF,OAAO,kBACP,cAAc,qBACd,QAAQ,mBACR,QAAQ,cACR,UAAU,EACV,GAAG,YACJ,GAAG;IAEJ,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,yDAAa,EAAE;IAEnD,IAAI,mBAAmB,CAAA,GAAA,wBAAU,EAAE;QACjC,IAAI,qBAAqB;YACvB,IAAI,OAAO,OAAO,IAAI,gBAAgB,cAAc;gBAClD,IAAI,sBAAsB,MAAM,IAAI,CAAC,OAAO,OAAO,CAAC,QAAQ;gBAC5D,IAAI,OAAO,OAAO,OAAO,CAAC,WAAW,GAAG,GAAG,qCAAqC;gBAChF,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,oBAAoB,IAAI,CAAC,CAAA,QAAS,MAAM,UAAU,GAAG,KAAK,MAAM,UAAU,GAAG,MAAM,WAAW,GAAG,OACnG,OAAO;gBAET,OAAO;YACT;QACF;QACA,IAAI,gBAAgB,cAClB,eAAe;YACb,uCAAuC;YACvC,MAAM;YAEN,4CAA4C;YAC5C,MAAM;QACR;IAEJ,uDAAuD;IACvD,GAAG;QAAC;QAAQ;QAAa;QAAgB;KAAS;IAElD,mDAAmD;IACnD,8HAA8H;IAC9H,CAAA,GAAA,2DAAc,EAAE;QACd;IACF,GAAG;QAAC;KAAiB;IAErB,wKAAwK;IACxK,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAsB;IACxC,CAAA,GAAA,2DAAc,EAAE;QACd,IAAI,OAAO,OAAO,EAChB,OAAO,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa;IAEjD,uDAAuD;IACvD,GAAG;QAAC,OAAO,OAAO;KAAC;IACnB,CAAA,GAAA,+DAAgB,EAAE;QAAC,KAAK;QAAQ,UAAU;IAAgB;IAE1D,IAAI,AAAC,MAAkC,QAAQ,EAC7C,OAAO;IAGT,IAAI,UAAU;QAAC,MAAM;cAA0B;oBAAM;IAAU;IAC/D,qBACE,gCAAC;QACE,GAAG,CAAA,GAAA,6CAAa,EAAE,WAAW;QAC9B,KAAK;QACL,OAAO,MAAM,YAAY;QACzB,WAAW,AAAC,CAAA,MAAM,gBAAgB,IAAI,EAAC,IAAK,kCAAY;mBACtD;YACA,aAAa,gBAAgB,cAAc,cAAc,aAAa;kBACtE;QACF,GAAG,MAAM,MAAM;kBACf,cAAA,gCAAC,CAAA,GAAA,wCAAO;YACN,QAAQ;gBACN;oBAAC,CAAA,GAAA,uCAAY;oBAAG;iBAAQ;gBACxB;oBAAC,CAAA,GAAA,2CAAgB;oBAAG;iBAAQ;aAC7B;sBACA;;;AAIT","sources":["packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical',\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center',\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL'\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode,\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean\n}\n\nexport const ButtonGroupContext = createContext<ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>({\n display: 'inline-flex',\n position: 'relative',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n}, getAllowedOverrides());\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(props: ButtonGroupProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (buttonGroupChildren.some(child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX)) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + buttongroup({\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n }, props.styles)}>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAiDM,MAAM,0DAAqB,CAAA,GAAA,0BAAY,EAE5C,CAAC;AAEH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDC,MAAM,0DAAc,CAAA,GAAA,uBAAS,EAAE,SAAS,YAC7C,KAAuB,EACvB,GAA2B;IAE3B,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,iDAAsB,EAAE,OAAO,KAAK;IACnD,IAAI,SAAS,CAAA,GAAA,mCAAQ,EAAE;IACvB,IAAI,QACF,OAAO,kBACP,cAAc,qBACd,QAAQ,mBACR,QAAQ,cACR,UAAU,EACV,GAAG,YACJ,GAAG;IAEJ,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,yDAAa,EAAE;IAEnD,IAAI,mBAAmB,CAAA,GAAA,wBAAU,EAAE;QACjC,IAAI,qBAAqB;YACvB,IAAI,OAAO,OAAO,IAAI,gBAAgB,cAAc;gBAClD,IAAI,sBAAsB,MAAM,IAAI,CAAC,OAAO,OAAO,CAAC,QAAQ;gBAC5D,IAAI,OAAO,OAAO,OAAO,CAAC,WAAW,GAAG,GAAG,qCAAqC;gBAChF,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IACE,oBAAoB,IAAI,CACtB,CAAA,QAAS,MAAM,UAAU,GAAG,KAAK,MAAM,UAAU,GAAG,MAAM,WAAW,GAAG,OAG1E,OAAO;gBAET,OAAO;YACT;QACF;QACA,IAAI,gBAAgB,cAClB,eAAe;YACb,uCAAuC;YACvC,MAAM;YAEN,4CAA4C;YAC5C,MAAM;QACR;IAEF,uDAAuD;IACzD,GAAG;QAAC;QAAQ;QAAa;QAAgB;KAAS;IAElD,mDAAmD;IACnD,8HAA8H;IAC9H,CAAA,GAAA,2DAAc,EAAE;QACd;IACF,GAAG;QAAC;KAAiB;IAErB,wKAAwK;IACxK,IAAI,SAAS,CAAA,GAAA,mBAAK,EAAsB;IACxC,CAAA,GAAA,2DAAc,EAAE;QACd,IAAI,OAAO,OAAO,EAChB,OAAO,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa;IAE/C,uDAAuD;IACzD,GAAG;QAAC,OAAO,OAAO;KAAC;IACnB,CAAA,GAAA,+DAAgB,EAAE;QAAC,KAAK;QAAQ,UAAU;IAAgB;IAE1D,IAAI,AAAC,MAAkC,QAAQ,EAC7C,OAAO;IAGT,IAAI,UAAU;QAAC,MAAM;cAA0B;oBAAM;IAAU;IAC/D,qBACE,gCAAC;QACE,GAAG,CAAA,GAAA,6CAAa,EAAE,WAAW;QAC9B,KAAK;QACL,OAAO,MAAM,YAAY;QACzB,WACE,AAAC,CAAA,MAAM,gBAAgB,IAAI,EAAC,IAC5B,kCACE;mBACE;YACA,aAAa,gBAAgB,cAAc,cAAc,aAAa;kBACtE;QACF,GACA,MAAM,MAAM;kBAGhB,cAAA,gCAAC,CAAA,GAAA,wCAAO;YACN,QAAQ;gBACN;oBAAC,CAAA,GAAA,uCAAY;oBAAG;iBAAQ;gBACxB;oBAAC,CAAA,GAAA,2CAAgB;oBAAG;iBAAQ;aAC7B;sBACA;;;AAIT","sources":["packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center';\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL';\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode;\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean;\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean;\n}\n\nexport const ButtonGroupContext = createContext<\n ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>\n>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>(\n {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: 'full',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n },\n getAllowedOverrides()\n);\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(\n props: ButtonGroupProps,\n ref: DOMRef<HTMLDivElement>\n) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (\n buttonGroupChildren.some(\n child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX\n )\n ) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={\n (props.UNSAFE_className || '') +\n buttongroup(\n {\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n },\n props.styles\n )\n }>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.cjs.map"}
@@ -1,61 +1,65 @@
1
1
  @layer _.a {
2
- .sh13 {
2
+ .sh15 {
3
3
  display: inline-flex;
4
4
  }
5
5
 
6
- ._Pc13 {
6
+ ._Pc15 {
7
7
  position: relative;
8
8
  }
9
9
 
10
- .Ue13 {
10
+ .La15 {
11
+ max-width: 100%;
12
+ }
13
+
14
+ .Ue15 {
11
15
  row-gap: .5rem;
12
16
  }
13
17
 
14
- .Ug13 {
18
+ .Ug15 {
15
19
  row-gap: .75rem;
16
20
  }
17
21
 
18
- .qe13 {
22
+ .qe15 {
19
23
  column-gap: .5rem;
20
24
  }
21
25
 
22
- .qg13 {
26
+ .qg15 {
23
27
  column-gap: .75rem;
24
28
  }
25
29
 
26
- ._tc13 {
30
+ ._tc15 {
27
31
  flex-direction: row;
28
32
  }
29
33
 
30
- ._ta13 {
34
+ ._ta15 {
31
35
  flex-direction: column;
32
36
  }
33
37
 
34
- .ed13 {
38
+ .ed15 {
35
39
  align-items: start;
36
40
  }
37
41
 
38
- .ec13 {
42
+ .ec15 {
39
43
  align-items: end;
40
44
  }
41
45
 
42
- .eb13 {
46
+ .eb15 {
43
47
  align-items: center;
44
48
  }
45
49
 
46
- ._Cg13 {
50
+ ._Cg15 {
47
51
  justify-content: start;
48
52
  }
49
53
 
50
- ._Cb13 {
54
+ ._Cb15 {
51
55
  justify-content: end;
52
56
  }
53
57
 
54
- ._Ca13 {
58
+ ._Ca15 {
55
59
  justify-content: center;
56
60
  }
57
61
 
58
- ._va13 {
62
+ ._va15 {
59
63
  flex-shrink: 0;
60
64
  }
61
65
  }
@@ -1 +1 @@
1
- {"mappings":"AC6DoB;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAwGK","sources":["46da5d9d2ee61a4a","packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["@import \"8be38106edd06864\";\n@import \"d77a01524490dd5a\";\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical',\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center',\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL'\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode,\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean\n}\n\nexport const ButtonGroupContext = createContext<ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>({\n display: 'inline-flex',\n position: 'relative',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n}, getAllowedOverrides());\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(props: ButtonGroupProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (buttonGroupChildren.some(child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX)) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + buttongroup({\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n }, props.styles)}>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.css.map"}
1
+ {"mappings":"AC+DoB;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAmHK","sources":["46da5d9d2ee61a4a","packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["@import \"8be38106edd06864\";\n@import \"d77a01524490dd5a\";\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center';\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL';\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode;\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean;\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean;\n}\n\nexport const ButtonGroupContext = createContext<\n ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>\n>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>(\n {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: 'full',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n },\n getAllowedOverrides()\n);\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(\n props: ButtonGroupProps,\n ref: DOMRef<HTMLDivElement>\n) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (\n buttonGroupChildren.some(\n child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX\n )\n ) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={\n (props.UNSAFE_className || '') +\n buttongroup(\n {\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n },\n props.styles\n )\n }>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.css.map"}
@@ -34,32 +34,35 @@ const $472eaa9a9b344b9a$export$4c574c91bb0be0e2 = /*#__PURE__*/ (0, $bnJX2$creat
34
34
  const $472eaa9a9b344b9a$var$buttongroup = function anonymous(props, overrides) {
35
35
  let rules = " ";
36
36
  let position = false;
37
+ let maxWidth = false;
37
38
  let matches = String(overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|_6|Z|N|L)[^\s]+/g);
38
39
  for (let p of matches){
39
40
  if (p[1] === "_P") position = true;
41
+ if (p[1] === "L") maxWidth = true;
40
42
  rules += p[0];
41
43
  }
42
- rules += ' sh13';
43
- if (!position) rules += ' _Pc13';
44
- if (props.size === "XL") rules += ' Ug13';
45
- else if (props.size === "L") rules += ' Ug13';
46
- else if (props.size === "M") rules += ' Ug13';
47
- else if (props.size === "S") rules += ' Ue13';
48
- if (props.size === "XL") rules += ' qg13';
49
- else if (props.size === "L") rules += ' qg13';
50
- else if (props.size === "M") rules += ' qg13';
51
- else if (props.size === "S") rules += ' qe13';
52
- if (props.orientation === "vertical") rules += ' _ta13';
53
- else rules += ' _tc13';
44
+ rules += ' sh15';
45
+ if (!position) rules += ' _Pc15';
46
+ if (!maxWidth) rules += ' La15';
47
+ if (props.size === "XL") rules += ' Ug15';
48
+ else if (props.size === "L") rules += ' Ug15';
49
+ else if (props.size === "M") rules += ' Ug15';
50
+ else if (props.size === "S") rules += ' Ue15';
51
+ if (props.size === "XL") rules += ' qg15';
52
+ else if (props.size === "L") rules += ' qg15';
53
+ else if (props.size === "M") rules += ' qg15';
54
+ else if (props.size === "S") rules += ' qe15';
55
+ if (props.orientation === "vertical") rules += ' _ta15';
56
+ else rules += ' _tc15';
54
57
  if (props.orientation === "vertical") {
55
- if (props.align === "center") rules += ' eb13';
56
- else if (props.align === "end") rules += ' ec13';
57
- else rules += ' ed13';
58
- } else rules += ' eb13';
58
+ if (props.align === "center") rules += ' eb15';
59
+ else if (props.align === "end") rules += ' ec15';
60
+ else rules += ' ed15';
61
+ } else rules += ' eb15';
59
62
  if (props.orientation === "vertical") {
60
- if (props.align === "center") rules += ' _Ca13';
61
- else if (props.align === "end") rules += ' _Cb13';
62
- else rules += ' _Cg13';
63
+ if (props.align === "center") rules += ' _Ca15';
64
+ else if (props.align === "end") rules += ' _Cb15';
65
+ else rules += ' _Cg15';
63
66
  }
64
67
  return rules;
65
68
  };
@@ -113,7 +116,7 @@ const $472eaa9a9b344b9a$export$69b1032f2ecdf404 = /*#__PURE__*/ (0, $bnJX2$forwa
113
116
  });
114
117
  if (props.isHidden) return null;
115
118
  let context = {
116
- styles: " _va13",
119
+ styles: " _va15",
117
120
  size: size,
118
121
  isDisabled: isDisabled
119
122
  };
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAiDM,MAAM,0DAAqB,CAAA,GAAA,oBAAY,EAA+E,CAAC;AAE9H,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CC,MAAM,0DAAc,CAAA,GAAA,iBAAS,EAAE,SAAS,YAAY,KAAuB,EAAE,GAA2B;IAC7G,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAsB,EAAE,OAAO,KAAK;IACnD,IAAI,SAAS,CAAA,GAAA,yCAAQ,EAAE;IACvB,IAAI,QACF,OAAO,kBACP,cAAc,qBACd,QAAQ,mBACR,QAAQ,cACR,UAAU,EACV,GAAG,YACJ,GAAG;IAEJ,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAa,EAAE;IAEnD,IAAI,mBAAmB,CAAA,GAAA,kBAAU,EAAE;QACjC,IAAI,qBAAqB;YACvB,IAAI,OAAO,OAAO,IAAI,gBAAgB,cAAc;gBAClD,IAAI,sBAAsB,MAAM,IAAI,CAAC,OAAO,OAAO,CAAC,QAAQ;gBAC5D,IAAI,OAAO,OAAO,OAAO,CAAC,WAAW,GAAG,GAAG,qCAAqC;gBAChF,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,oBAAoB,IAAI,CAAC,CAAA,QAAS,MAAM,UAAU,GAAG,KAAK,MAAM,UAAU,GAAG,MAAM,WAAW,GAAG,OACnG,OAAO;gBAET,OAAO;YACT;QACF;QACA,IAAI,gBAAgB,cAClB,eAAe;YACb,uCAAuC;YACvC,MAAM;YAEN,4CAA4C;YAC5C,MAAM;QACR;IAEJ,uDAAuD;IACvD,GAAG;QAAC;QAAQ;QAAa;QAAgB;KAAS;IAElD,mDAAmD;IACnD,8HAA8H;IAC9H,CAAA,GAAA,sBAAc,EAAE;QACd;IACF,GAAG;QAAC;KAAiB;IAErB,wKAAwK;IACxK,IAAI,SAAS,CAAA,GAAA,aAAK,EAAsB;IACxC,CAAA,GAAA,sBAAc,EAAE;QACd,IAAI,OAAO,OAAO,EAChB,OAAO,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa;IAEjD,uDAAuD;IACvD,GAAG;QAAC,OAAO,OAAO;KAAC;IACnB,CAAA,GAAA,wBAAgB,EAAE;QAAC,KAAK;QAAQ,UAAU;IAAgB;IAE1D,IAAI,AAAC,MAAkC,QAAQ,EAC7C,OAAO;IAGT,IAAI,UAAU;QAAC,MAAM;cAA0B;oBAAM;IAAU;IAC/D,qBACE,gBAAC;QACE,GAAG,CAAA,GAAA,qBAAa,EAAE,WAAW;QAC9B,KAAK;QACL,OAAO,MAAM,YAAY;QACzB,WAAW,AAAC,CAAA,MAAM,gBAAgB,IAAI,EAAC,IAAK,kCAAY;mBACtD;YACA,aAAa,gBAAgB,cAAc,cAAc,aAAa;kBACtE;QACF,GAAG,MAAM,MAAM;kBACf,cAAA,gBAAC,CAAA,GAAA,eAAO;YACN,QAAQ;gBACN;oBAAC,CAAA,GAAA,yCAAY;oBAAG;iBAAQ;gBACxB;oBAAC,CAAA,GAAA,yCAAgB;oBAAG;iBAAQ;aAC7B;sBACA;;;AAIT","sources":["packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical',\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center',\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL'\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode,\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean\n}\n\nexport const ButtonGroupContext = createContext<ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>({\n display: 'inline-flex',\n position: 'relative',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n}, getAllowedOverrides());\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(props: ButtonGroupProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (buttonGroupChildren.some(child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX)) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + buttongroup({\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n }, props.styles)}>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.mjs.map"}
1
+ {"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;AAiDM,MAAM,0DAAqB,CAAA,GAAA,oBAAY,EAE5C,CAAC;AAEH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDC,MAAM,0DAAc,CAAA,GAAA,iBAAS,EAAE,SAAS,YAC7C,KAAuB,EACvB,GAA2B;IAE3B,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAsB,EAAE,OAAO,KAAK;IACnD,IAAI,SAAS,CAAA,GAAA,yCAAQ,EAAE;IACvB,IAAI,QACF,OAAO,kBACP,cAAc,qBACd,QAAQ,mBACR,QAAQ,cACR,UAAU,EACV,GAAG,YACJ,GAAG;IAEJ,IAAI,CAAC,aAAa,eAAe,GAAG,CAAA,GAAA,qBAAa,EAAE;IAEnD,IAAI,mBAAmB,CAAA,GAAA,kBAAU,EAAE;QACjC,IAAI,qBAAqB;YACvB,IAAI,OAAO,OAAO,IAAI,gBAAgB,cAAc;gBAClD,IAAI,sBAAsB,MAAM,IAAI,CAAC,OAAO,OAAO,CAAC,QAAQ;gBAC5D,IAAI,OAAO,OAAO,OAAO,CAAC,WAAW,GAAG,GAAG,qCAAqC;gBAChF,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IACE,oBAAoB,IAAI,CACtB,CAAA,QAAS,MAAM,UAAU,GAAG,KAAK,MAAM,UAAU,GAAG,MAAM,WAAW,GAAG,OAG1E,OAAO;gBAET,OAAO;YACT;QACF;QACA,IAAI,gBAAgB,cAClB,eAAe;YACb,uCAAuC;YACvC,MAAM;YAEN,4CAA4C;YAC5C,MAAM;QACR;IAEF,uDAAuD;IACzD,GAAG;QAAC;QAAQ;QAAa;QAAgB;KAAS;IAElD,mDAAmD;IACnD,8HAA8H;IAC9H,CAAA,GAAA,sBAAc,EAAE;QACd;IACF,GAAG;QAAC;KAAiB;IAErB,wKAAwK;IACxK,IAAI,SAAS,CAAA,GAAA,aAAK,EAAsB;IACxC,CAAA,GAAA,sBAAc,EAAE;QACd,IAAI,OAAO,OAAO,EAChB,OAAO,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa;IAE/C,uDAAuD;IACzD,GAAG;QAAC,OAAO,OAAO;KAAC;IACnB,CAAA,GAAA,wBAAgB,EAAE;QAAC,KAAK;QAAQ,UAAU;IAAgB;IAE1D,IAAI,AAAC,MAAkC,QAAQ,EAC7C,OAAO;IAGT,IAAI,UAAU;QAAC,MAAM;cAA0B;oBAAM;IAAU;IAC/D,qBACE,gBAAC;QACE,GAAG,CAAA,GAAA,qBAAa,EAAE,WAAW;QAC9B,KAAK;QACL,OAAO,MAAM,YAAY;QACzB,WACE,AAAC,CAAA,MAAM,gBAAgB,IAAI,EAAC,IAC5B,kCACE;mBACE;YACA,aAAa,gBAAgB,cAAc,cAAc,aAAa;kBACtE;QACF,GACA,MAAM,MAAM;kBAGhB,cAAA,gBAAC,CAAA,GAAA,eAAO;YACN,QAAQ;gBACN;oBAAC,CAAA,GAAA,yCAAY;oBAAG;iBAAQ;gBACxB;oBAAC,CAAA,GAAA,yCAAgB;oBAAG;iBAAQ;aAC7B;sBACA;;;AAIT","sources":["packages/@react-spectrum/s2/src/ButtonGroup.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ButtonContext, LinkButtonContext} from './Button';\nimport {ContextValue, Provider, SlotProps} from 'react-aria-components/slots';\nimport {createContext, forwardRef, ReactNode, useCallback, useRef} from 'react';\nimport {DOMProps, DOMRef, DOMRefValue} from '@react-types/shared';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {useDOMRef} from './useDOMRef';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {useValueEffect} from 'react-aria/private/utils/useValueEffect';\n\ninterface ButtonGroupStyleProps {\n /**\n * The axis the ButtonGroup should align with. Setting this to 'vertical' will prevent\n * any switching behaviors between 'vertical' and 'horizontal'.\n *\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * The alignment of the Buttons within the ButtonGroup.\n *\n * @default 'start'\n */\n align?: 'start' | 'end' | 'center';\n /**\n * The size of the Buttons within the ButtonGroup.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL';\n}\n\nexport interface ButtonGroupProps extends ButtonGroupStyleProps, SlotProps, StyleProps, DOMProps {\n /** The Buttons contained within the ButtonGroup. */\n children: ReactNode;\n /** Whether the Buttons in the ButtonGroup are all disabled. */\n isDisabled?: boolean;\n}\n\ninterface ButtonGroupContextValue extends Partial<ButtonGroupProps> {\n /** Whether the ButtonGroup shouldn't be rendered. */\n isHidden?: boolean;\n}\n\nexport const ButtonGroupContext = createContext<\n ContextValue<Partial<ButtonGroupContextValue>, DOMRefValue<HTMLDivElement>>\n>({});\n\nconst buttongroup = style<ButtonGroupStyleProps>(\n {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: 'full',\n gap: {\n size: {\n S: 8,\n M: 12,\n L: 12,\n XL: 12\n }\n },\n flexDirection: {\n default: 'row',\n orientation: {\n vertical: 'column'\n }\n },\n alignItems: {\n default: 'center',\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n },\n justifyContent: {\n orientation: {\n vertical: {\n default: 'start',\n align: {\n end: 'end',\n center: 'center'\n }\n }\n }\n }\n },\n getAllowedOverrides()\n);\n\n/**\n * ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.\n */\nexport const ButtonGroup = forwardRef(function ButtonGroup(\n props: ButtonGroupProps,\n ref: DOMRef<HTMLDivElement>\n) {\n [props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);\n let domRef = useDOMRef(ref);\n let {\n size = 'M',\n orientation = 'horizontal',\n align = 'start',\n children,\n isDisabled,\n ...otherProps\n } = props;\n\n let [hasOverflow, setHasOverflow] = useValueEffect(false);\n\n let checkForOverflow = useCallback(() => {\n let computeHasOverflow = () => {\n if (domRef.current && orientation === 'horizontal') {\n let buttonGroupChildren = Array.from(domRef.current.children) as HTMLElement[];\n let maxX = domRef.current.offsetWidth + 1; // + 1 to account for rounding errors\n // If any buttons have negative X positions (align=\"end\") or extend beyond\n // the width of the button group (align=\"start\"), then switch to vertical.\n if (\n buttonGroupChildren.some(\n child => child.offsetLeft < 0 || child.offsetLeft + child.offsetWidth > maxX\n )\n ) {\n return true;\n }\n return false;\n }\n };\n if (orientation === 'horizontal') {\n setHasOverflow(function* () {\n // Force to horizontal for measurement.\n yield false;\n\n // Measure, and update if there is overflow.\n yield computeHasOverflow();\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef, orientation, setHasOverflow, children]);\n\n // There are two main reasons we need to remeasure:\n // 1. Internal changes: Check for initial overflow or when orientation/scale/children change (from checkForOverflow dep array)\n useLayoutEffect(() => {\n checkForOverflow();\n }, [checkForOverflow]);\n\n // 2. External changes: buttongroup won't change size due to any parents changing size, so listen to its container for size changes to figure out if we should remeasure\n let parent = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n if (domRef.current) {\n parent.current = domRef.current.parentElement as HTMLElement;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [domRef.current]);\n useResizeObserver({ref: parent, onResize: checkForOverflow});\n\n if ((props as ButtonGroupContextValue).isHidden) {\n return null;\n }\n\n let context = {styles: style({flexShrink: 0}), size, isDisabled};\n return (\n <div\n {...filterDOMProps(otherProps)}\n ref={domRef}\n style={props.UNSAFE_style}\n className={\n (props.UNSAFE_className || '') +\n buttongroup(\n {\n align,\n orientation: orientation === 'vertical' || hasOverflow ? 'vertical' : 'horizontal',\n size\n },\n props.styles\n )\n }>\n <Provider\n values={[\n [ButtonContext, context],\n [LinkButtonContext, context]\n ]}>\n {children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"ButtonGroup.mjs.map"}