@react-spectrum/s2 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/dist/exports/CenterBaseline.cjs +12 -0
  2. package/dist/exports/CenterBaseline.cjs.map +1 -0
  3. package/dist/exports/CenterBaseline.mjs +7 -0
  4. package/dist/exports/CenterBaseline.mjs.map +1 -0
  5. package/dist/exports/Skeleton.cjs +1 -0
  6. package/dist/exports/Skeleton.cjs.map +1 -1
  7. package/dist/exports/Skeleton.mjs +2 -2
  8. package/dist/exports/Skeleton.mjs.map +1 -1
  9. package/dist/exports/index.cjs +3 -0
  10. package/dist/exports/index.cjs.map +1 -1
  11. package/dist/exports/index.mjs +3 -1
  12. package/dist/exports/index.mjs.map +1 -1
  13. package/dist/private/Accordion.cjs +2 -2
  14. package/dist/private/Accordion.css +2 -2
  15. package/dist/private/Accordion.mjs +2 -2
  16. package/dist/private/ActionBar.cjs +59 -59
  17. package/dist/private/ActionBar.cjs.map +1 -1
  18. package/dist/private/ActionBar.css +58 -58
  19. package/dist/private/ActionBar.css.map +1 -1
  20. package/dist/private/ActionBar.mjs +59 -59
  21. package/dist/private/ActionBar.mjs.map +1 -1
  22. package/dist/private/ActionButton.cjs +247 -247
  23. package/dist/private/ActionButton.cjs.map +1 -1
  24. package/dist/private/ActionButton.css +169 -169
  25. package/dist/private/ActionButton.css.map +1 -1
  26. package/dist/private/ActionButton.mjs +247 -247
  27. package/dist/private/ActionButton.mjs.map +1 -1
  28. package/dist/private/ActionButtonGroup.cjs +15 -15
  29. package/dist/private/ActionButtonGroup.css +9 -9
  30. package/dist/private/ActionButtonGroup.mjs +15 -15
  31. package/dist/private/ActionMenu.cjs.map +1 -1
  32. package/dist/private/ActionMenu.mjs.map +1 -1
  33. package/dist/private/Add.cjs +10 -10
  34. package/dist/private/Add.css +6 -6
  35. package/dist/private/Add.mjs +10 -10
  36. package/dist/private/AlertDialog.cjs +3 -3
  37. package/dist/private/AlertDialog.cjs.map +1 -1
  38. package/dist/private/AlertDialog.css +3 -3
  39. package/dist/private/AlertDialog.css.map +1 -1
  40. package/dist/private/AlertDialog.mjs +3 -3
  41. package/dist/private/AlertDialog.mjs.map +1 -1
  42. package/dist/private/Asterisk.cjs +6 -6
  43. package/dist/private/Asterisk.css +4 -4
  44. package/dist/private/Asterisk.mjs +6 -6
  45. package/dist/private/Avatar.cjs +16 -16
  46. package/dist/private/Avatar.css +16 -16
  47. package/dist/private/Avatar.mjs +16 -16
  48. package/dist/private/AvatarGroup.cjs +120 -120
  49. package/dist/private/AvatarGroup.css +31 -31
  50. package/dist/private/AvatarGroup.mjs +120 -120
  51. package/dist/private/Badge.cjs +197 -197
  52. package/dist/private/Badge.css +125 -125
  53. package/dist/private/Badge.mjs +197 -197
  54. package/dist/private/Breadcrumbs.cjs +234 -234
  55. package/dist/private/Breadcrumbs.cjs.map +1 -1
  56. package/dist/private/Breadcrumbs.css +100 -100
  57. package/dist/private/Breadcrumbs.css.map +1 -1
  58. package/dist/private/Breadcrumbs.mjs +234 -234
  59. package/dist/private/Breadcrumbs.mjs.map +1 -1
  60. package/dist/private/Button.cjs +326 -326
  61. package/dist/private/Button.cjs.map +1 -1
  62. package/dist/private/Button.css +172 -172
  63. package/dist/private/Button.css.map +1 -1
  64. package/dist/private/Button.mjs +326 -326
  65. package/dist/private/Button.mjs.map +1 -1
  66. package/dist/private/ButtonGroup.cjs +23 -20
  67. package/dist/private/ButtonGroup.cjs.map +1 -1
  68. package/dist/private/ButtonGroup.css +19 -15
  69. package/dist/private/ButtonGroup.css.map +1 -1
  70. package/dist/private/ButtonGroup.mjs +23 -20
  71. package/dist/private/ButtonGroup.mjs.map +1 -1
  72. package/dist/private/Calendar.cjs +232 -232
  73. package/dist/private/Calendar.cjs.map +1 -1
  74. package/dist/private/Calendar.css +149 -149
  75. package/dist/private/Calendar.css.map +1 -1
  76. package/dist/private/Calendar.mjs +232 -232
  77. package/dist/private/Calendar.mjs.map +1 -1
  78. package/dist/private/Card.cjs +309 -309
  79. package/dist/private/Card.css +206 -206
  80. package/dist/private/Card.mjs +309 -309
  81. package/dist/private/CardView.cjs +17 -17
  82. package/dist/private/CardView.css +17 -17
  83. package/dist/private/CardView.mjs +17 -17
  84. package/dist/private/CenterBaseline.cjs +1 -1
  85. package/dist/private/CenterBaseline.cjs.map +1 -1
  86. package/dist/private/CenterBaseline.css +2 -2
  87. package/dist/private/CenterBaseline.css.map +1 -1
  88. package/dist/private/CenterBaseline.mjs +1 -1
  89. package/dist/private/CenterBaseline.mjs.map +1 -1
  90. package/dist/private/Checkbox.cjs +188 -188
  91. package/dist/private/Checkbox.css +110 -110
  92. package/dist/private/Checkbox.mjs +188 -188
  93. package/dist/private/CheckboxGroup.cjs +43 -43
  94. package/dist/private/CheckboxGroup.css +37 -37
  95. package/dist/private/CheckboxGroup.mjs +43 -43
  96. package/dist/private/Checkmark.cjs +12 -12
  97. package/dist/private/Checkmark.css +8 -8
  98. package/dist/private/Checkmark.mjs +12 -12
  99. package/dist/private/Chevron.cjs +12 -12
  100. package/dist/private/Chevron.css +10 -10
  101. package/dist/private/Chevron.mjs +12 -12
  102. package/dist/private/ClearButton.cjs +30 -30
  103. package/dist/private/ClearButton.css +30 -30
  104. package/dist/private/ClearButton.mjs +30 -30
  105. package/dist/private/CloseButton.cjs +52 -52
  106. package/dist/private/CloseButton.cjs.map +1 -1
  107. package/dist/private/CloseButton.css +46 -46
  108. package/dist/private/CloseButton.css.map +1 -1
  109. package/dist/private/CloseButton.mjs +52 -52
  110. package/dist/private/CloseButton.mjs.map +1 -1
  111. package/dist/private/ColorArea.cjs +16 -16
  112. package/dist/private/ColorArea.css +16 -16
  113. package/dist/private/ColorArea.mjs +16 -16
  114. package/dist/private/ColorField.cjs +31 -31
  115. package/dist/private/ColorField.css +27 -27
  116. package/dist/private/ColorField.mjs +31 -31
  117. package/dist/private/ColorHandle.cjs +27 -27
  118. package/dist/private/ColorHandle.css +42 -42
  119. package/dist/private/ColorHandle.mjs +27 -27
  120. package/dist/private/ColorSlider.cjs +108 -108
  121. package/dist/private/ColorSlider.css +52 -52
  122. package/dist/private/ColorSlider.mjs +108 -108
  123. package/dist/private/ColorSwatch.cjs +29 -29
  124. package/dist/private/ColorSwatch.css +29 -29
  125. package/dist/private/ColorSwatch.mjs +29 -29
  126. package/dist/private/ColorSwatchPicker.cjs +29 -29
  127. package/dist/private/ColorSwatchPicker.css +48 -48
  128. package/dist/private/ColorSwatchPicker.mjs +29 -29
  129. package/dist/private/ColorWheel.cjs +26 -26
  130. package/dist/private/ColorWheel.css +17 -17
  131. package/dist/private/ColorWheel.mjs +26 -26
  132. package/dist/private/ComboBox.cjs +381 -381
  133. package/dist/private/ComboBox.cjs.map +1 -1
  134. package/dist/private/ComboBox.css +188 -188
  135. package/dist/private/ComboBox.css.map +1 -1
  136. package/dist/private/ComboBox.mjs +381 -381
  137. package/dist/private/ComboBox.mjs.map +1 -1
  138. package/dist/private/ContextualHelp.cjs +5 -5
  139. package/dist/private/ContextualHelp.cjs.map +1 -1
  140. package/dist/private/ContextualHelp.css +50 -50
  141. package/dist/private/ContextualHelp.css.map +1 -1
  142. package/dist/private/ContextualHelp.mjs +5 -5
  143. package/dist/private/ContextualHelp.mjs.map +1 -1
  144. package/dist/private/CornerTriangle.cjs +8 -8
  145. package/dist/private/CornerTriangle.css +6 -6
  146. package/dist/private/CornerTriangle.mjs +8 -8
  147. package/dist/private/Cross.cjs +14 -14
  148. package/dist/private/Cross.css +10 -10
  149. package/dist/private/Cross.mjs +14 -14
  150. package/dist/private/CustomDialog.cjs +25 -25
  151. package/dist/private/CustomDialog.css +25 -25
  152. package/dist/private/CustomDialog.mjs +25 -25
  153. package/dist/private/Dash.cjs +10 -10
  154. package/dist/private/Dash.css +6 -6
  155. package/dist/private/Dash.mjs +10 -10
  156. package/dist/private/DateField.cjs +73 -73
  157. package/dist/private/DateField.css +77 -77
  158. package/dist/private/DateField.mjs +73 -73
  159. package/dist/private/DatePicker.cjs +172 -172
  160. package/dist/private/DatePicker.cjs.map +1 -1
  161. package/dist/private/DatePicker.css +128 -128
  162. package/dist/private/DatePicker.css.map +1 -1
  163. package/dist/private/DatePicker.mjs +172 -172
  164. package/dist/private/DatePicker.mjs.map +1 -1
  165. package/dist/private/DateRangePicker.cjs +55 -55
  166. package/dist/private/DateRangePicker.cjs.map +1 -1
  167. package/dist/private/DateRangePicker.css +59 -59
  168. package/dist/private/DateRangePicker.css.map +1 -1
  169. package/dist/private/DateRangePicker.mjs +55 -55
  170. package/dist/private/DateRangePicker.mjs.map +1 -1
  171. package/dist/private/Dialog.cjs +17 -17
  172. package/dist/private/Dialog.css +70 -70
  173. package/dist/private/Dialog.mjs +17 -17
  174. package/dist/private/Disclosure.cjs +144 -122
  175. package/dist/private/Disclosure.cjs.map +1 -1
  176. package/dist/private/Disclosure.css +112 -112
  177. package/dist/private/Disclosure.css.map +1 -1
  178. package/dist/private/Disclosure.mjs +144 -122
  179. package/dist/private/Disclosure.mjs.map +1 -1
  180. package/dist/private/Divider.cjs +25 -25
  181. package/dist/private/Divider.css +25 -25
  182. package/dist/private/Divider.mjs +25 -25
  183. package/dist/private/DragHandle.cjs +8 -8
  184. package/dist/private/DragHandle.css +6 -6
  185. package/dist/private/DragHandle.mjs +8 -8
  186. package/dist/private/DragPreview.cjs +154 -154
  187. package/dist/private/DragPreview.css +106 -106
  188. package/dist/private/DragPreview.mjs +154 -154
  189. package/dist/private/DropZone.cjs +61 -61
  190. package/dist/private/DropZone.cjs.map +1 -1
  191. package/dist/private/DropZone.css +57 -57
  192. package/dist/private/DropZone.css.map +1 -1
  193. package/dist/private/DropZone.mjs +61 -61
  194. package/dist/private/DropZone.mjs.map +1 -1
  195. package/dist/private/Field.cjs +360 -360
  196. package/dist/private/Field.cjs.map +1 -1
  197. package/dist/private/Field.css +160 -160
  198. package/dist/private/Field.css.map +1 -1
  199. package/dist/private/Field.mjs +360 -360
  200. package/dist/private/Field.mjs.map +1 -1
  201. package/dist/private/Form.cjs +9 -9
  202. package/dist/private/Form.css +9 -9
  203. package/dist/private/Form.mjs +9 -9
  204. package/dist/private/FullscreenDialog.cjs +5 -5
  205. package/dist/private/FullscreenDialog.css +78 -78
  206. package/dist/private/FullscreenDialog.mjs +5 -5
  207. package/dist/private/IllustratedMessage.cjs +228 -228
  208. package/dist/private/IllustratedMessage.css +72 -72
  209. package/dist/private/IllustratedMessage.mjs +228 -228
  210. package/dist/private/Image.cjs +14 -14
  211. package/dist/private/Image.css +14 -14
  212. package/dist/private/Image.mjs +14 -14
  213. package/dist/private/InlineAlert.cjs +100 -100
  214. package/dist/private/InlineAlert.cjs.map +1 -1
  215. package/dist/private/InlineAlert.css +76 -76
  216. package/dist/private/InlineAlert.css.map +1 -1
  217. package/dist/private/InlineAlert.mjs +100 -100
  218. package/dist/private/InlineAlert.mjs.map +1 -1
  219. package/dist/private/LabeledValue.cjs +134 -134
  220. package/dist/private/LabeledValue.css +63 -63
  221. package/dist/private/LabeledValue.mjs +134 -134
  222. package/dist/private/Link.cjs +49 -49
  223. package/dist/private/Link.css +41 -41
  224. package/dist/private/Link.mjs +49 -49
  225. package/dist/private/LinkOut.cjs +8 -8
  226. package/dist/private/LinkOut.css +8 -8
  227. package/dist/private/LinkOut.mjs +8 -8
  228. package/dist/private/ListView.cjs +245 -245
  229. package/dist/private/ListView.cjs.map +1 -1
  230. package/dist/private/ListView.css +177 -177
  231. package/dist/private/ListView.css.map +1 -1
  232. package/dist/private/ListView.mjs +245 -245
  233. package/dist/private/ListView.mjs.map +1 -1
  234. package/dist/private/Menu.cjs +446 -446
  235. package/dist/private/Menu.cjs.map +1 -1
  236. package/dist/private/Menu.css +196 -196
  237. package/dist/private/Menu.css.map +1 -1
  238. package/dist/private/Menu.mjs +446 -446
  239. package/dist/private/Menu.mjs.map +1 -1
  240. package/dist/private/Meter.cjs +153 -153
  241. package/dist/private/Meter.css +91 -91
  242. package/dist/private/Meter.mjs +153 -153
  243. package/dist/private/Modal.cjs +74 -74
  244. package/dist/private/Modal.css +59 -59
  245. package/dist/private/Modal.mjs +74 -74
  246. package/dist/private/NotificationBadge.cjs +56 -56
  247. package/dist/private/NotificationBadge.cjs.map +1 -1
  248. package/dist/private/NotificationBadge.css +49 -49
  249. package/dist/private/NotificationBadge.css.map +1 -1
  250. package/dist/private/NotificationBadge.mjs +56 -56
  251. package/dist/private/NotificationBadge.mjs.map +1 -1
  252. package/dist/private/NumberField.cjs +114 -114
  253. package/dist/private/NumberField.css +99 -99
  254. package/dist/private/NumberField.mjs +114 -114
  255. package/dist/private/Picker.cjs +275 -275
  256. package/dist/private/Picker.cjs.map +1 -1
  257. package/dist/private/Picker.css +173 -173
  258. package/dist/private/Picker.css.map +1 -1
  259. package/dist/private/Picker.mjs +275 -275
  260. package/dist/private/Picker.mjs.map +1 -1
  261. package/dist/private/Popover.cjs +95 -95
  262. package/dist/private/Popover.cjs.map +1 -1
  263. package/dist/private/Popover.css +75 -75
  264. package/dist/private/Popover.css.map +1 -1
  265. package/dist/private/Popover.mjs +95 -95
  266. package/dist/private/Popover.mjs.map +1 -1
  267. package/dist/private/ProgressBar.cjs +163 -163
  268. package/dist/private/ProgressBar.css +99 -99
  269. package/dist/private/ProgressBar.mjs +163 -163
  270. package/dist/private/ProgressCircle.cjs +34 -31
  271. package/dist/private/ProgressCircle.cjs.map +1 -1
  272. package/dist/private/ProgressCircle.css +24 -24
  273. package/dist/private/ProgressCircle.css.map +1 -1
  274. package/dist/private/ProgressCircle.mjs +34 -31
  275. package/dist/private/ProgressCircle.mjs.map +1 -1
  276. package/dist/private/Provider.cjs +19 -19
  277. package/dist/private/Provider.css +15 -15
  278. package/dist/private/Provider.mjs +19 -19
  279. package/dist/private/RadioGroup.cjs +208 -208
  280. package/dist/private/RadioGroup.css +113 -113
  281. package/dist/private/RadioGroup.mjs +208 -208
  282. package/dist/private/RangeCalendar.cjs +16 -16
  283. package/dist/private/RangeCalendar.cjs.map +1 -1
  284. package/dist/private/RangeCalendar.css +17 -17
  285. package/dist/private/RangeCalendar.css.map +1 -1
  286. package/dist/private/RangeCalendar.mjs +16 -16
  287. package/dist/private/RangeCalendar.mjs.map +1 -1
  288. package/dist/private/RangeSlider.cjs.map +1 -1
  289. package/dist/private/RangeSlider.mjs.map +1 -1
  290. package/dist/private/SearchField.cjs +41 -41
  291. package/dist/private/SearchField.css +45 -45
  292. package/dist/private/SearchField.mjs +41 -41
  293. package/dist/private/SegmentedControl.cjs +178 -178
  294. package/dist/private/SegmentedControl.css +123 -123
  295. package/dist/private/SegmentedControl.mjs +178 -178
  296. package/dist/private/SelectBoxGroup.cjs +142 -142
  297. package/dist/private/SelectBoxGroup.css +120 -120
  298. package/dist/private/SelectBoxGroup.mjs +142 -142
  299. package/dist/private/Slider.cjs +292 -292
  300. package/dist/private/Slider.css +159 -159
  301. package/dist/private/Slider.mjs +292 -292
  302. package/dist/private/StatusLight.cjs +115 -115
  303. package/dist/private/StatusLight.css +59 -59
  304. package/dist/private/StatusLight.mjs +115 -115
  305. package/dist/private/Switch.cjs +171 -171
  306. package/dist/private/Switch.css +85 -85
  307. package/dist/private/Switch.mjs +171 -171
  308. package/dist/private/TableView.cjs +551 -534
  309. package/dist/private/TableView.cjs.map +1 -1
  310. package/dist/private/TableView.css +329 -303
  311. package/dist/private/TableView.css.map +1 -1
  312. package/dist/private/TableView.mjs +551 -534
  313. package/dist/private/TableView.mjs.map +1 -1
  314. package/dist/private/Tabs.cjs +131 -125
  315. package/dist/private/Tabs.cjs.map +1 -1
  316. package/dist/private/Tabs.css +105 -105
  317. package/dist/private/Tabs.css.map +1 -1
  318. package/dist/private/Tabs.mjs +131 -125
  319. package/dist/private/Tabs.mjs.map +1 -1
  320. package/dist/private/TabsPicker.cjs +127 -127
  321. package/dist/private/TabsPicker.css +108 -108
  322. package/dist/private/TabsPicker.mjs +127 -127
  323. package/dist/private/TagGroup.cjs +203 -203
  324. package/dist/private/TagGroup.cjs.map +1 -1
  325. package/dist/private/TagGroup.css +146 -146
  326. package/dist/private/TagGroup.css.map +1 -1
  327. package/dist/private/TagGroup.mjs +203 -203
  328. package/dist/private/TagGroup.mjs.map +1 -1
  329. package/dist/private/TextField.cjs +58 -58
  330. package/dist/private/TextField.css +54 -54
  331. package/dist/private/TextField.mjs +58 -58
  332. package/dist/private/TimeField.cjs +51 -51
  333. package/dist/private/TimeField.css +47 -47
  334. package/dist/private/TimeField.mjs +51 -51
  335. package/dist/private/Toast.cjs +120 -120
  336. package/dist/private/Toast.cjs.map +1 -1
  337. package/dist/private/Toast.css +110 -110
  338. package/dist/private/Toast.css.map +1 -1
  339. package/dist/private/Toast.mjs +120 -120
  340. package/dist/private/Toast.mjs.map +1 -1
  341. package/dist/private/ToggleButton.cjs +16 -16
  342. package/dist/private/ToggleButton.css +23 -23
  343. package/dist/private/ToggleButton.mjs +16 -16
  344. package/dist/private/Tooltip.cjs +86 -86
  345. package/dist/private/Tooltip.css +70 -70
  346. package/dist/private/Tooltip.mjs +86 -86
  347. package/dist/private/TreeView.cjs +229 -229
  348. package/dist/private/TreeView.cjs.map +1 -1
  349. package/dist/private/TreeView.css +184 -184
  350. package/dist/private/TreeView.css.map +1 -1
  351. package/dist/private/TreeView.mjs +229 -229
  352. package/dist/private/TreeView.mjs.map +1 -1
  353. package/dist/private/dnd-utils.cjs +42 -42
  354. package/dist/private/dnd-utils.css +39 -39
  355. package/dist/private/dnd-utils.mjs +42 -42
  356. package/dist/types/exports/CenterBaseline.d.ts +1 -0
  357. package/dist/types/exports/Skeleton.d.ts +1 -1
  358. package/dist/types/exports/index.d.ts +1 -0
  359. package/dist/types/src/CenterBaseline.d.ts +17 -0
  360. package/dist/types/src/ContextualHelp.d.ts +1 -1
  361. package/dist/types/src/Disclosure.d.ts +6 -1
  362. package/dist/types/src/ListView.d.ts +1 -1
  363. package/dist/types/src/Menu.d.ts +1 -1
  364. package/dist/types/src/Popover.d.ts +2 -2
  365. package/dist/types/src/style-utils.d.ts +4 -1
  366. package/exports/CenterBaseline.ts +1 -0
  367. package/exports/Skeleton.ts +1 -1
  368. package/exports/index.ts +2 -0
  369. package/icons/Icon.cjs +10 -10
  370. package/icons/Icon.css +9 -9
  371. package/icons/Icon.mjs +10 -10
  372. package/icons/Skeleton.cjs +2 -2
  373. package/icons/Skeleton.cjs.map +1 -1
  374. package/icons/Skeleton.css +6 -6
  375. package/icons/Skeleton.mjs +2 -2
  376. package/icons/Skeleton.mjs.map +1 -1
  377. package/package.json +6 -6
  378. package/src/ActionBar.tsx +0 -1
  379. package/src/ActionButton.tsx +0 -1
  380. package/src/ActionMenu.tsx +0 -1
  381. package/src/AlertDialog.tsx +0 -1
  382. package/src/Breadcrumbs.tsx +0 -4
  383. package/src/Button.tsx +0 -1
  384. package/src/ButtonGroup.tsx +1 -0
  385. package/src/Calendar.tsx +0 -1
  386. package/src/CenterBaseline.tsx +17 -0
  387. package/src/CloseButton.tsx +0 -1
  388. package/src/ComboBox.tsx +0 -1
  389. package/src/ContextualHelp.tsx +1 -2
  390. package/src/DatePicker.tsx +0 -1
  391. package/src/DateRangePicker.tsx +0 -1
  392. package/src/Disclosure.tsx +92 -79
  393. package/src/DropZone.tsx +0 -1
  394. package/src/Field.tsx +0 -1
  395. package/src/InlineAlert.tsx +0 -1
  396. package/src/ListView.tsx +0 -2
  397. package/src/Menu.tsx +1 -8
  398. package/src/NotificationBadge.tsx +0 -1
  399. package/src/Picker.tsx +0 -1
  400. package/src/Popover.tsx +2 -1
  401. package/src/ProgressCircle.tsx +1 -1
  402. package/src/RangeCalendar.tsx +0 -1
  403. package/src/RangeSlider.tsx +0 -1
  404. package/src/TableView.tsx +75 -37
  405. package/src/Tabs.tsx +9 -2
  406. package/src/TagGroup.tsx +0 -1
  407. package/src/Toast.tsx +0 -3
  408. package/src/TreeView.tsx +0 -1
  409. package/src/style-utils.ts +13 -2
  410. package/style/__tests__/style-macro.test.js +71 -71
  411. package/style/dist/main.cjs +25 -25
  412. package/style/dist/module.mjs +13 -13
  413. package/style/dist/properties.mjs +3 -3
  414. package/style/dist/spectrum-theme.cjs +224 -224
  415. package/style/dist/spectrum-theme.mjs +217 -217
  416. package/style/dist/style-macro.cjs +100 -100
  417. package/style/dist/style-macro.mjs +94 -94
  418. package/style/dist/style-utils.cjs +51 -39
  419. package/style/dist/style-utils.cjs.map +1 -1
  420. package/style/dist/style-utils.mjs +50 -38
  421. package/style/dist/style-utils.mjs.map +1 -1
@@ -82,26 +82,26 @@ const $b27519d6a701105b$var$tabs = function anonymous(props, overrides) {
82
82
  if (p[1] === "_v") flexShrink = true;
83
83
  rules += p[0];
84
84
  }
85
- if (!position) rules += ' _Pc131';
86
- rules += ' sd131';
87
- if (!flexShrink) rules += ' _va131';
88
- rules += ' uk131';
89
- rules += ' ucJ9TBTb131';
90
- rules += ' ud3Euai131';
91
- rules += ' uea131';
92
- rules += ' ugb131';
93
- rules += ' uhd131';
94
- rules += ' uje131';
95
- rules += ' u2NhKxcl131';
96
- rules += ' uic131';
97
- rules += ' -_6BNtrc-c131';
98
- rules += ' vx131';
99
- rules += ' xb131';
100
- rules += ' _xa131';
101
- rules += ' _Fd131';
102
- rules += ' _FnuYUweb131';
103
- rules += ' pt131';
104
- if (props.orientation === "horizontal") rules += ' _ta131';
85
+ if (!position) rules += ' _Pc15';
86
+ rules += ' sd15';
87
+ if (!flexShrink) rules += ' _va15';
88
+ rules += ' uk15';
89
+ rules += ' ucJ9TBTb15';
90
+ rules += ' ud3Euai15';
91
+ rules += ' uea15';
92
+ rules += ' ugb15';
93
+ rules += ' uhd15';
94
+ rules += ' uje15';
95
+ rules += ' u2NhKxcl15';
96
+ rules += ' uic15';
97
+ rules += ' -_6BNtrc-c15';
98
+ rules += ' vx15';
99
+ rules += ' xb15';
100
+ rules += ' _xa15';
101
+ rules += ' _Fd15';
102
+ rules += ' _FnuYUweb15';
103
+ rules += ' pt15';
104
+ if (props.orientation === "horizontal") rules += ' _ta15';
105
105
  return rules;
106
106
  };
107
107
  const $b27519d6a701105b$export$b2539bed5023c21c = /*#__PURE__*/ (0, $5oxdw$react.forwardRef)(function Tabs(props, ref) {
@@ -111,6 +111,8 @@ const $b27519d6a701105b$export$b2539bed5023c21c = /*#__PURE__*/ (0, $5oxdw$react
111
111
  let [value, setValue] = (0, $5oxdw$reactstatelyuseControlledState.useControlledState)(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange);
112
112
  if (!props['aria-label'] && !props['aria-labelledby']) throw new Error('An aria-label or aria-labelledby prop is required on Tabs for accessibility.');
113
113
  let tablistRef = (0, $5oxdw$react.useRef)(null);
114
+ // Shared base id so child Tab/TabPanel components can derive stable ids.
115
+ let baseId = (0, $5oxdw$reactariauseId.useId)();
114
116
  return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponentsslots.Provider), {
115
117
  values: [
116
118
  [
@@ -124,6 +126,7 @@ const $b27519d6a701105b$export$b2539bed5023c21c = /*#__PURE__*/ (0, $5oxdw$react
124
126
  tablistRef: tablistRef,
125
127
  onSelectionChange: setValue,
126
128
  labelBehavior: labelBehavior,
129
+ baseId: baseId,
127
130
  'aria-label': props['aria-label'],
128
131
  'aria-labelledby': props['aria-labelledby']
129
132
  }
@@ -143,25 +146,25 @@ const $b27519d6a701105b$export$b2539bed5023c21c = /*#__PURE__*/ (0, $5oxdw$react
143
146
  });
144
147
  const $b27519d6a701105b$var$tablist = function anonymous(props) {
145
148
  let rules = " ";
146
- rules += ' sd131';
149
+ rules += ' sd15';
147
150
  if (props.orientation === "horizontal") {
148
151
  if (props.labelBehavior === "hide") {
149
- if (props.density === "regular") rules += ' Uj131';
150
- else if (props.density === "compact") rules += ' Ul131';
151
- } else if (props.density === "regular") rules += ' Up131';
152
- else if (props.density === "compact") rules += ' Uj131';
152
+ if (props.density === "regular") rules += ' Uj15';
153
+ else if (props.density === "compact") rules += ' Ul15';
154
+ } else if (props.density === "regular") rules += ' Up15';
155
+ else if (props.density === "compact") rules += ' Uj15';
153
156
  }
154
157
  if (props.orientation === "horizontal") {
155
158
  if (props.labelBehavior === "hide") {
156
- if (props.density === "regular") rules += ' qj131';
157
- else if (props.density === "compact") rules += ' ql131';
158
- } else if (props.density === "regular") rules += ' qp131';
159
- else if (props.density === "compact") rules += ' qj131';
159
+ if (props.density === "regular") rules += ' qj15';
160
+ else if (props.density === "compact") rules += ' ql15';
161
+ } else if (props.density === "regular") rules += ' qp15';
162
+ else if (props.density === "compact") rules += ' qj15';
160
163
  }
161
- if (props.orientation === "vertical") rules += ' _ta131';
162
- if (props.orientation === "vertical") rules += ' Hz131';
163
- if (props.orientation === "vertical") rules += ' Ix131';
164
- rules += ' Nq131';
164
+ if (props.orientation === "vertical") rules += ' _ta15';
165
+ if (props.orientation === "vertical") rules += ' Hz15';
166
+ if (props.orientation === "vertical") rules += ' Ix15';
167
+ rules += ' Nq15';
165
168
  return rules;
166
169
  };
167
170
  const $b27519d6a701105b$var$tablistWrapper = function anonymous(props, overrides) {
@@ -178,10 +181,10 @@ const $b27519d6a701105b$var$tablistWrapper = function anonymous(props, overrides
178
181
  if (p[1] === "_u") flexGrow = true;
179
182
  rules += p[0];
180
183
  }
181
- if (!position) rules += ' _Pc131';
182
- if (!minWidth) rules += ' Na131';
183
- if (!flexShrink) rules += ' _va131';
184
- if (!flexGrow) rules += ' _ua131';
184
+ if (!position) rules += ' _Pc15';
185
+ if (!minWidth) rules += ' Na15';
186
+ if (!flexShrink) rules += ' _va15';
187
+ if (!flexGrow) rules += ' _ua15';
185
188
  return rules;
186
189
  };
187
190
  function $b27519d6a701105b$export$e51a686c67fdaa2d(props) {
@@ -251,29 +254,29 @@ function $b27519d6a701105b$var$TabListInner(props) {
251
254
  }
252
255
  const $b27519d6a701105b$var$selectedIndicator = function anonymous(props) {
253
256
  let rules = " ";
254
- rules += ' _Pa131';
255
- if (props.isDisabled) rules += ' gH131';
256
- else rules += ' g0131';
257
- if (props.isDisabled) rules += ' gld131';
258
- else rules += ' gle131';
259
- if (props.orientation === "horizontal") rules += ' FLvNfn131';
260
- else rules += ' Fb131';
261
- if (props.orientation === "vertical") rules += ' ZLvNfn131';
262
- else rules += ' Za131';
263
- rules += ' _qg131';
264
- rules += ' YIRyJjb131';
265
- rules += ' Ydklsgce131';
266
- rules += ' Xc131';
267
- rules += ' _2a131';
268
- rules += ' _lr131';
269
- if (props.orientation === "vertical") rules += ' Wr131';
270
- if (props.orientation === "horizontal") rules += ' _Er131';
271
- if (props.orientation === "vertical") rules += ' _Aa131';
272
- rules += ' _je131';
273
- rules += ' og131';
274
- rules += ' ng131';
275
- rules += ' kg131';
276
- rules += ' jg131';
257
+ rules += ' _Pa15';
258
+ if (props.isDisabled) rules += ' gH15';
259
+ else rules += ' g015';
260
+ if (props.isDisabled) rules += ' gld15';
261
+ else rules += ' gle15';
262
+ if (props.orientation === "horizontal") rules += ' FLvNfn15';
263
+ else rules += ' Fb15';
264
+ if (props.orientation === "vertical") rules += ' ZLvNfn15';
265
+ else rules += ' Za15';
266
+ rules += ' _qg15';
267
+ rules += ' YIRyJjb15';
268
+ rules += ' Ydklsgce15';
269
+ rules += ' Xc15';
270
+ rules += ' _2a15';
271
+ rules += ' _lr15';
272
+ if (props.orientation === "vertical") rules += ' Wr15';
273
+ if (props.orientation === "horizontal") rules += ' _Er15';
274
+ if (props.orientation === "vertical") rules += ' _Aa15';
275
+ rules += ' _je15';
276
+ rules += ' og15';
277
+ rules += ' ng15';
278
+ rules += ' kg15';
279
+ rules += ' jg15';
277
280
  return rules;
278
281
  };
279
282
  const $b27519d6a701105b$var$tab = function anonymous(props, overrides) {
@@ -286,60 +289,63 @@ const $b27519d6a701105b$var$tab = function anonymous(props, overrides) {
286
289
  if (p[1] === "_v") flexShrink = true;
287
290
  rules += p[0];
288
291
  }
289
- if (props.isFocusVisible) rules += ' _Lf131';
290
- else rules += ' _Le131';
291
- rules += ' Oh131';
292
- rules += ' Olc131';
293
- rules += ' _Mc131';
294
- rules += ' _Kd131';
295
- rules += ' sd131';
296
- if (props.isDisabled) rules += ' pp131';
292
+ if (props.isFocusVisible) rules += ' _Lf15';
293
+ else rules += ' _Le15';
294
+ rules += ' Oh15';
295
+ rules += ' Olc15';
296
+ rules += ' _Mc15';
297
+ rules += ' _Kd15';
298
+ rules += ' sd15';
299
+ if (props.isDisabled) rules += ' pp15';
297
300
  else if (props.isSelected) {
298
- if (props.isPressed) rules += ' po131';
299
- else if (props.isFocusVisible) rules += ' po131';
300
- else if (props.isHovered) rules += ' po131';
301
- else rules += ' pt131';
301
+ if (props.isPressed) rules += ' po15';
302
+ else if (props.isFocusVisible) rules += ' po15';
303
+ else if (props.isHovered) rules += ' po15';
304
+ else rules += ' pt15';
302
305
  } else {
303
- if (props.isPressed) rules += ' pt131';
304
- else if (props.isFocusVisible) rules += ' pt131';
305
- else if (props.isHovered) rules += ' pt131';
306
- else rules += ' pv131';
306
+ if (props.isPressed) rules += ' pt15';
307
+ else if (props.isFocusVisible) rules += ' pt15';
308
+ else if (props.isHovered) rules += ' pt15';
309
+ else rules += ' pv15';
307
310
  }
308
- if (props.isDisabled) rules += ' plc131';
309
- else if (props.isSelected) rules += ' pld131';
310
- rules += ' oa131';
311
- rules += ' na131';
312
- rules += ' ka131';
313
- rules += ' ja131';
314
- rules += ' Uc131';
315
- rules += ' Usd131';
316
- rules += ' qc131';
317
- rules += ' qsd131';
311
+ if (props.isDisabled) rules += ' plc15';
312
+ else if (props.isSelected) rules += ' pld15';
313
+ rules += ' oa15';
314
+ rules += ' na15';
315
+ rules += ' ka15';
316
+ rules += ' ja15';
317
+ rules += ' Uc15';
318
+ rules += ' Usd15';
319
+ rules += ' qc15';
320
+ rules += ' qsd15';
318
321
  if (props.orientation === "horizontal") {
319
- if (props.density === "regular") rules += ' Fz131';
320
- else if (props.density === "compact") rules += ' Fx131';
322
+ if (props.density === "regular") rules += ' Fz15';
323
+ else if (props.density === "compact") rules += ' Fx15';
321
324
  }
322
325
  if (props.orientation === "vertical") {
323
- if (props.density === "regular") rules += ' Mk131';
324
- else if (props.density === "compact") rules += ' Mi131';
326
+ if (props.density === "regular") rules += ' Mk15';
327
+ else if (props.density === "compact") rules += ' Mi15';
325
328
  }
326
- rules += ' eb131';
327
- if (!position) rules += ' _Pc131';
328
- rules += ' ri131';
329
- rules += ' _Xa131';
330
- if (!flexShrink) rules += ' _va131';
331
- rules += ' Yd131';
332
- rules += ' Xb131';
333
- rules += ' _2b131';
334
- if (props.labelBehavior === "hide") rules += ' SssxDec131';
335
- if (props.labelBehavior === "hide") rules += ' RssxDec131';
336
- rules += ' __ca131';
329
+ rules += ' eb15';
330
+ if (!position) rules += ' _Pc15';
331
+ rules += ' ri15';
332
+ rules += ' _Xa15';
333
+ if (!flexShrink) rules += ' _va15';
334
+ rules += ' Yd15';
335
+ rules += ' Xb15';
336
+ rules += ' _2b15';
337
+ if (props.labelBehavior === "hide") rules += ' SssxDec15';
338
+ if (props.labelBehavior === "hide") rules += ' RssxDec15';
339
+ rules += ' __ca15';
337
340
  return rules;
338
341
  };
339
- const $b27519d6a701105b$var$icon = " sb131 _va131 -_8sjo0b-t5ZbAob131";
342
+ const $b27519d6a701105b$var$icon = " sb15 _va15 -_8sjo0b-t5ZbAob15";
340
343
  function $b27519d6a701105b$export$3e41faf802a29e71(props1) {
341
- let { density: density, orientation: orientation, labelBehavior: labelBehavior } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext) ?? {};
342
- let contentId = (0, $5oxdw$reactariauseId.useId)();
344
+ let { density: density, orientation: orientation, labelBehavior: labelBehavior, baseId: baseId } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext) ?? {};
345
+ // Derive a stable content id from the shared baseId on InternalTabsContext.
346
+ // Prevents infinite loop when rendering across multiple CollectionBuilder portals.
347
+ let fallbackId = (0, $5oxdw$reactariauseId.useId)();
348
+ let contentId = `${baseId ?? fallbackId}-content-${props1.id ?? fallbackId}`;
343
349
  let ariaLabelledBy = props1['aria-labelledby'] || '';
344
350
  return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponentsTabs.Tab), {
345
351
  ...props1,
@@ -364,8 +370,8 @@ function $b27519d6a701105b$export$3e41faf802a29e71(props1) {
364
370
  id: contentId,
365
371
  styles: function anonymous(props) {
366
372
  let rules = " ";
367
- rules += ' _Jb131';
368
- if (props.labelBehavior === "hide") rules += ' sk131';
373
+ rules += ' _Jb15';
374
+ if (props.labelBehavior === "hide") rules += ' sk15';
369
375
  return rules;
370
376
  }({
371
377
  labelBehavior: labelBehavior
@@ -377,7 +383,7 @@ function $b27519d6a701105b$export$3e41faf802a29e71(props1) {
377
383
  {
378
384
  render: (0, $e991cbcdf82ced71$exports.centerBaseline)({
379
385
  slot: 'icon',
380
- styles: " _Ja131"
386
+ styles: " _Ja15"
381
387
  }),
382
388
  styles: $b27519d6a701105b$var$icon
383
389
  }
@@ -422,18 +428,18 @@ const $b27519d6a701105b$var$tabPanel = function anonymous(props, overrides) {
422
428
  if (p[1] === "M") minHeight = true;
423
429
  rules += p[0];
424
430
  }
425
- if (props.isFocusVisible) rules += ' _Lf131';
426
- else rules += ' _Le131';
427
- rules += ' Oh131';
428
- rules += ' Olc131';
429
- rules += ' _Mc131';
430
- rules += ' _Kd131';
431
- if (!marginTop) rules += ' Js131';
432
- rules += ' pt131';
433
- if (!flexGrow) rules += ' _ub131';
434
- if (!minHeight) rules += ' Ma131';
435
- if (props.isInert) rules += ' sk131';
436
- else rules += ' sb131';
431
+ if (props.isFocusVisible) rules += ' _Lf15';
432
+ else rules += ' _Le15';
433
+ rules += ' Oh15';
434
+ rules += ' Olc15';
435
+ rules += ' _Mc15';
436
+ rules += ' _Kd15';
437
+ if (!marginTop) rules += ' Js15';
438
+ rules += ' pt15';
439
+ if (!flexGrow) rules += ' _ub15';
440
+ if (!minHeight) rules += ' Ma15';
441
+ if (props.isInert) rules += ' sk15';
442
+ else rules += ' sb15';
437
443
  return rules;
438
444
  };
439
445
  function $b27519d6a701105b$export$3d96ec278d3efce4(props) {
@@ -486,7 +492,7 @@ let $b27519d6a701105b$var$HiddenTabs = function(props) {
486
492
  // @ts-ignore
487
493
  inert: (0, $5oxdw$reactariaprivateutilsinertValue.inertValue)(true),
488
494
  ref: listRef,
489
- className: " s40ub4c131 _t40ub4c131 U40ub4c131 q40ub4c131 _w40ub4c131 _Pa131 Wr131 _lr131 _Ar131 _zr131 _6b131 _Nc131 Pc131 _Ia131",
495
+ className: " s40ub4c15 _t40ub4c15 U40ub4c15 q40ub4c15 _w40ub4c15 _Pa15 Wr15 _lr15 _Ar15 _zr15 _6b15 _Nc15 Pc15 _Ia15",
490
496
  children: /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$HiddenTabsContext.Provider, {
491
497
  value: true,
492
498
  children: items.map((item)=>{
@@ -530,11 +536,11 @@ let $b27519d6a701105b$var$TabsMenu = (props1)=>{
530
536
  return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", {
531
537
  className: function anonymous(props) {
532
538
  let rules = " ";
533
- rules += ' sd131';
534
- rules += ' _va131';
535
- rules += ' eb131';
536
- if (props.density === "regular") rules += ' Fz131';
537
- else if (props.density === "compact") rules += ' Fx131';
539
+ rules += ' sd15';
540
+ rules += ' _va15';
541
+ rules += ' eb15';
542
+ if (props.density === "regular") rules += ' Fz15';
543
+ else if (props.density === "compact") rules += ' Fx15';
538
544
  return rules;
539
545
  }({
540
546
  density: density
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Tabs.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 {\n TabListProps as AriaTabListProps,\n TabPanel as AriaTabPanel,\n TabPanelProps as AriaTabPanelProps,\n TabProps as AriaTabProps,\n TabsProps as AriaTabsProps,\n Tab as RACTab,\n TabList as RACTabList,\n Tabs as RACTabs,\n TabListStateContext,\n TabRenderProps\n} from 'react-aria-components/Tabs';\nimport {baseColor, focusRing, size, style} from '../style' with {type: 'macro'};\nimport {centerBaseline} from './CenterBaseline';\nimport {\n Collection,\n DOMRef,\n DOMRefValue,\n GlobalDOMAttributes,\n Key,\n Node,\n Orientation,\n RefObject\n} from '@react-types/shared';\nimport {CollectionBuilder} from 'react-aria/CollectionBuilder';\nimport {ContextValue, Provider} from 'react-aria-components/slots';\nimport {\n createContext,\n forwardRef,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport {\n getAllowedOverrides,\n StyleProps,\n StylesPropWithHeight,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {Group} from 'react-aria-components/Group';\nimport {IconContext} from './Icon';\nimport {inertValue} from 'react-aria/private/utils/inertValue';\nimport {Picker, PickerItem} from './TabsPicker';\nimport {SelectionIndicator} from 'react-aria-components/SelectionIndicator';\nimport {Text, TextContext} from './Content';\nimport {useControlledState} from 'react-stately/useControlledState';\nimport {useDOMRef} from './useDOMRef';\nimport {useEffectEvent} from 'react-aria/private/utils/useEffectEvent';\nimport {useHasTabbableChild} from 'react-aria/private/focus/useHasTabbableChild';\nimport {useId} from 'react-aria/useId';\nimport {useLabels} from 'react-aria/private/utils/useLabels';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface TabsProps\n extends\n Omit<AriaTabsProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>,\n UnsafeStyles {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n /** The content to display in the tabs. */\n children: ReactNode;\n /**\n * The amount of space between the tabs.\n *\n * @default 'regular'\n */\n density?: 'compact' | 'regular';\n /**\n * Defines if the text within the tabs should be hidden and only the icon should be shown.\n * The text is always visible when the item is collapsed into a picker.\n *\n * @default 'show'\n */\n labelBehavior?: 'show' | 'hide';\n}\n\nexport interface TabProps\n extends\n Omit<\n AriaTabProps,\n 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes\n >,\n StyleProps {\n /** The content to display in the tab. */\n children: ReactNode;\n}\n\nexport interface TabListProps<T>\n extends\n Omit<\n AriaTabListProps<T>,\n | 'style'\n | 'className'\n | 'render'\n | 'aria-label'\n | 'aria-labelledby'\n | keyof GlobalDOMAttributes\n >,\n StyleProps {\n /** The content to display in the tablist. */\n children: ReactNode | ((item: T) => ReactNode);\n}\n\nexport interface TabPanelProps\n extends\n Omit<\n AriaTabPanelProps,\n 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes\n >,\n UnsafeStyles {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n /** The content to display in the tab panels. */\n children: ReactNode;\n}\n\nexport const TabsContext =\n createContext<ContextValue<Partial<TabsProps>, DOMRefValue<HTMLDivElement>>>(null);\nconst InternalTabsContext = createContext<\n Partial<TabsProps> & {\n tablistRef?: RefObject<HTMLDivElement | null>;\n selectedKey?: Key | null;\n }\n>({});\n\ninterface CollapseContextType {\n showTabs: boolean;\n menuId: string;\n valueId: string;\n ariaLabel?: string | undefined;\n ariaDescribedBy?: string | undefined;\n tabs: Array<Node<any>>;\n listRef?: RefObject<HTMLDivElement | null>;\n onSelectionChange?: (key: Key) => void;\n}\n\nconst CollapseContext = createContext<CollapseContextType>({\n showTabs: true,\n menuId: '',\n valueId: '',\n tabs: []\n});\n\nconst tabs = style(\n {\n position: 'relative',\n display: 'flex',\n flexShrink: 0,\n font: 'ui',\n flexDirection: {\n orientation: {\n horizontal: 'column'\n }\n }\n },\n getAllowedOverrides({height: true})\n);\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them. The\n * content under the set of tabs should be related and form a coherent unit.\n */\nexport const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, TabsContext);\n let {\n density = 'regular',\n isDisabled,\n disabledKeys,\n orientation = 'horizontal',\n labelBehavior = 'show'\n } = props;\n let domRef = useDOMRef(ref);\n let [value, setValue] = useControlledState(\n props.selectedKey,\n props.defaultSelectedKey ?? null!,\n props.onSelectionChange\n );\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n throw new Error('An aria-label or aria-labelledby prop is required on Tabs for accessibility.');\n }\n\n let tablistRef = useRef<HTMLDivElement | null>(null);\n\n return (\n <Provider\n values={[\n [\n InternalTabsContext,\n {\n density,\n isDisabled,\n orientation,\n disabledKeys,\n selectedKey: value,\n tablistRef,\n onSelectionChange: setValue,\n labelBehavior,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby']\n }\n ]\n ]}>\n <CollectionBuilder content={props.children}>\n {collection => (\n <CollapsingTabs\n {...props}\n selectedKey={value}\n onSelectionChange={setValue}\n collection={collection}\n containerRef={domRef}\n />\n )}\n </CollectionBuilder>\n </Provider>\n );\n});\n\nconst tablist = style({\n display: 'flex',\n gap: {\n orientation: {\n horizontal: {\n density: {\n compact: 24,\n regular: 32\n },\n labelBehavior: {\n hide: {\n density: {\n compact: 16,\n regular: 24\n }\n }\n }\n }\n }\n },\n flexDirection: {\n orientation: {\n vertical: 'column'\n }\n },\n marginEnd: {\n orientation: {\n vertical: 20\n }\n },\n marginStart: {\n orientation: {\n vertical: 12\n }\n },\n minWidth: 'min'\n});\n\nconst tablistWrapper = style(\n {\n position: 'relative',\n minWidth: 0,\n flexShrink: 0,\n flexGrow: 0\n },\n getAllowedOverrides()\n);\n\nexport function TabList<T>(props: TabListProps<T>): ReactNode | null {\n let {showTabs, menuId, valueId, tabs, listRef, onSelectionChange, ariaLabel, ariaDescribedBy} =\n useContext(CollapseContext) ?? {};\n let {density, orientation, labelBehavior} = useContext(InternalTabsContext);\n\n if (showTabs) {\n return <TabListInner {...props} />;\n }\n\n return (\n <div className={tablistWrapper(null, props.styles)}>\n {listRef && (\n <div className={tablist({orientation, labelBehavior, density})}>\n <HiddenTabs items={tabs} density={density} listRef={listRef} />\n </div>\n )}\n <TabsMenu\n id={menuId}\n valueId={valueId}\n items={tabs}\n onSelectionChange={onSelectionChange}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n />\n </div>\n );\n}\n\nfunction TabListInner<T>(props: TabListProps<T>) {\n let {\n tablistRef,\n orientation,\n density,\n labelBehavior,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = useContext(InternalTabsContext) ?? {};\n let {tabs, listRef} = useContext(CollapseContext) ?? {};\n\n return (\n <div\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + tablistWrapper(null, props.styles)}>\n {listRef && (\n <div className={tablist({orientation, labelBehavior, density})}>\n <HiddenTabs items={tabs} density={density} listRef={listRef} />\n </div>\n )}\n <RACTabList\n {...props}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n ref={tablistRef}\n className={renderProps => tablist({...renderProps, labelBehavior, density})}\n />\n </div>\n );\n}\n\nconst selectedIndicator = style<{isDisabled: boolean; orientation?: Orientation}>({\n position: 'absolute',\n backgroundColor: {\n default: 'neutral',\n isDisabled: 'disabled',\n forcedColors: {\n default: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n height: {\n default: 'full',\n orientation: {\n horizontal: '[2px]'\n }\n },\n width: {\n default: 'full',\n orientation: {\n vertical: '[2px]'\n }\n },\n contain: 'strict',\n transition: {\n default: '[translate,width,height]',\n '@media (prefers-reduced-motion: reduce)': 'none'\n },\n transitionDuration: 200,\n transitionTimingFunction: 'out',\n bottom: {\n default: 0\n },\n top: {\n orientation: {\n vertical: 0\n }\n },\n left: {\n orientation: {\n horizontal: 0\n }\n },\n insetStart: {\n orientation: {\n vertical: -12\n }\n },\n borderStyle: 'none',\n borderRadius: 'full'\n});\n\nconst tab = style<\n TabRenderProps & {\n density?: 'compact' | 'regular';\n labelBehavior?: 'show' | 'hide';\n orientation?: Orientation;\n }\n>(\n {\n ...focusRing(),\n display: 'flex',\n color: {\n default: baseColor('neutral-subdued'),\n isSelected: baseColor('neutral'),\n isDisabled: 'disabled',\n forcedColors: {\n isSelected: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n borderRadius: 'sm',\n gap: 'text-to-visual',\n height: {\n orientation: {\n horizontal: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n }\n },\n minHeight: {\n orientation: {\n vertical: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n }\n },\n alignItems: 'center',\n position: 'relative',\n cursor: 'default',\n textDecoration: 'none',\n flexShrink: 0,\n transition: 'default',\n paddingX: {\n labelBehavior: {\n hide: size(6)\n }\n },\n disableTapHighlight: true\n },\n getAllowedOverrides()\n);\n\nconst icon = style({\n display: 'block',\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport function Tab(props: TabProps): ReactNode {\n let {density, orientation, labelBehavior} = useContext(InternalTabsContext) ?? {};\n\n let contentId = useId();\n let ariaLabelledBy = props['aria-labelledby'] || '';\n\n return (\n <RACTab\n {...props}\n // @ts-ignore\n originalProps={props}\n aria-labelledby={`${labelBehavior === 'hide' ? contentId : ''} ${ariaLabelledBy}`}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n tab({...renderProps, density, labelBehavior, orientation}, props.styles)\n }>\n {({\n // @ts-ignore\n isMenu,\n isDisabled\n }) => {\n if (isMenu) {\n return props.children;\n } else {\n return (\n <Provider\n values={[\n [\n TextContext,\n {\n id: contentId,\n styles: style({\n order: 1,\n display: {\n labelBehavior: {\n hide: 'none'\n }\n }\n })({labelBehavior})\n }\n ],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: icon\n }\n ]\n ]}>\n <TabInner orientation={orientation!} isDisabled={isDisabled}>\n {typeof props.children === 'string' ? (\n <Text>{props.children}</Text>\n ) : (\n props.children\n )}\n </TabInner>\n </Provider>\n );\n }\n }}\n </RACTab>\n );\n}\n\nfunction TabInner({\n isDisabled,\n orientation,\n children\n}: {\n isDisabled: boolean;\n orientation: Orientation;\n children: ReactNode;\n}) {\n let ref = useRef<HTMLDivElement | null>(null);\n let isHidden = useContext(HiddenTabsContext);\n\n return (\n <>\n {!isHidden && (\n <SelectionIndicator ref={ref} className={selectedIndicator({isDisabled, orientation})} />\n )}\n {children}\n </>\n );\n}\n\nconst tabPanel = style(\n {\n ...focusRing(),\n marginTop: 4,\n color: 'gray-800',\n flexGrow: 1,\n minHeight: 0,\n display: {\n default: 'block',\n isInert: 'none'\n }\n },\n getAllowedOverrides({height: true})\n);\n\nexport function TabPanel(props: TabPanelProps): ReactNode | null {\n let {showTabs} = useContext(CollapseContext);\n let {selectedKey} = useContext(InternalTabsContext);\n if (showTabs) {\n return (\n <AriaTabPanel\n {...props}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className ?? '') + tabPanel(renderProps, props.styles)\n }\n />\n );\n }\n\n if (props.id !== selectedKey) {\n return null;\n }\n\n return <CollapsedTabPanel {...props} />;\n}\n\nfunction CollapsedTabPanel(props: TabPanelProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {UNSAFE_style, UNSAFE_className = '', id, shouldForceMount, ...otherProps} = props;\n let {menuId, valueId} = useContext(CollapseContext);\n let ref = useRef(null);\n let tabIndex = useHasTabbableChild(ref) ? undefined : 0;\n\n return (\n <Group\n {...otherProps}\n ref={ref}\n aria-labelledby={menuId + ' ' + valueId}\n tabIndex={tabIndex}\n style={UNSAFE_style}\n className={renderProps => UNSAFE_className + tabPanel(renderProps, props.styles)}\n />\n );\n}\n\nfunction isEveryTabDisabled<T>(\n collection: Collection<Node<T>> | undefined,\n disabledKeys: Set<Key>\n) {\n let testKey: Key | null = null;\n if (collection && collection.size > 0) {\n testKey = collection.getFirstKey();\n\n let index = 0;\n while (testKey && index < collection.size) {\n // We have to check if the item in the collection has a key in disabledKeys or has the isDisabled prop set directly on it\n if (!disabledKeys.has(testKey) && !collection.getItem(testKey)?.props?.isDisabled) {\n return false;\n }\n\n testKey = collection.getKeyAfter(testKey);\n index++;\n }\n return true;\n }\n return false;\n}\n\nconst HiddenTabsContext = createContext(false);\n\nlet HiddenTabs = function (props: {\n listRef: RefObject<HTMLDivElement | null>;\n items: Array<Node<any>>;\n size?: string;\n density?: 'compact' | 'regular';\n}) {\n let {listRef, items = [], size, density} = props;\n\n return (\n <div\n // @ts-ignore\n inert={inertValue(true)}\n ref={listRef}\n className={style({\n display: 'inherit',\n flexDirection: 'inherit',\n gap: 'inherit',\n flexWrap: 'inherit',\n position: 'absolute',\n inset: 0,\n visibility: 'hidden',\n overflow: 'hidden',\n opacity: 0\n })}>\n <HiddenTabsContext.Provider value>\n {items.map(item => {\n // pull off individual props as an allow list, don't want refs or other props getting through\n return (\n <div\n data-hidden-tab\n style={item.props.UNSAFE_style}\n key={item.key}\n className={item.props.className({size, density})}>\n {item.props.children({size, density})}\n </div>\n );\n })}\n </HiddenTabsContext.Provider>\n </div>\n );\n};\n\nlet TabsMenu = (\n props: {\n valueId: string;\n items: Array<Node<any>>;\n onSelectionChange: TabsProps['onSelectionChange'];\n } & Omit<TabsProps, 'children'>\n) => {\n let {id, items, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, valueId} = props;\n let {\n density,\n onSelectionChange: _onSelectionChange,\n selectedKey,\n isDisabled,\n disabledKeys,\n labelBehavior\n } = useContext(InternalTabsContext);\n let onSelectionChange = useCallback(\n (key: Key | null) => {\n if (key != null) {\n _onSelectionChange?.(key);\n }\n },\n [_onSelectionChange]\n );\n let state = useContext(TabListStateContext);\n let allKeysDisabled = useMemo(() => {\n return isEveryTabDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set());\n }, [state?.collection, disabledKeys]);\n let labelProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n });\n\n return (\n <div\n className={style({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n height: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n })({density})}>\n <Picker\n id={id}\n valueId={valueId}\n {...labelProps}\n aria-describedby={props['aria-describedby']}\n aria-details={props['aria-details']}\n isDisabled={isDisabled || allKeysDisabled}\n density={density!}\n labelBehavior={labelBehavior}\n items={items}\n disabledKeys={disabledKeys}\n selectedKey={selectedKey}\n onSelectionChange={onSelectionChange}>\n {(item: Node<any>) => {\n return (\n <PickerItem\n {...item.props.originalProps}\n isDisabled={isDisabled || allKeysDisabled}\n key={item.key}>\n {item.props.children({density, isMenu: true})}\n </PickerItem>\n );\n }}\n </Picker>\n </div>\n );\n};\n\nlet CollapsingTabs = ({\n collection,\n containerRef,\n ...props\n}: {collection: Collection<Node<unknown>>; containerRef: any} & TabsProps) => {\n let {orientation = 'horizontal', onSelectionChange} = props;\n let [showItems, _setShowItems] = useState(true);\n showItems = orientation === 'vertical' ? true : showItems;\n let setShowItems = useCallback(\n (value: boolean) => {\n if (orientation === 'vertical') {\n // if orientation is vertical, we always show the items\n _setShowItems(true);\n } else {\n _setShowItems(value);\n }\n },\n [orientation]\n );\n\n let {direction} = useLocale();\n\n let children = useMemo(() => [...collection], [collection]);\n\n let listRef = useRef<HTMLDivElement | null>(null);\n\n let updateOverflow = () => {\n if (orientation === 'vertical' || !listRef.current || !containerRef?.current) {\n return;\n }\n let container = listRef.current;\n let containerRect = container.getBoundingClientRect();\n let tabs = container.querySelectorAll('[data-hidden-tab]');\n let lastTab = tabs[tabs.length - 1];\n let lastTabRect = lastTab.getBoundingClientRect();\n if (direction === 'ltr') {\n setShowItems?.(lastTabRect.right <= containerRect.right);\n } else {\n setShowItems?.(lastTabRect.left >= containerRect.left);\n }\n };\n\n let updateOverflowEffect = useEffectEvent(updateOverflow);\n\n useResizeObserver({ref: containerRef, onResize: updateOverflow});\n\n useLayoutEffect(() => {\n if (collection.size > 0) {\n queueMicrotask(updateOverflowEffect);\n }\n }, [collection.size]);\n\n // start with null so that the first render won't have a flicker\n let prevOrientation = useRef<Orientation | null>(null);\n useLayoutEffect(() => {\n if (collection.size > 0 && prevOrientation.current !== orientation) {\n updateOverflowEffect();\n }\n prevOrientation.current = orientation;\n }, [collection.size, orientation]);\n\n useEffect(() => {\n // Recalculate visible tags when fonts are loaded.\n document.fonts?.ready.then(() => updateOverflowEffect());\n }, []);\n\n let menuId = useId();\n let valueId = useId();\n\n let contents: ReactNode;\n if (showItems) {\n contents = (\n <RACTabs {...props} className=\"\" style={{display: 'contents'}}>\n {props.children}\n </RACTabs>\n );\n } else {\n contents = (\n <>\n <CollapseContext.Provider\n value={{\n showTabs: false,\n tabs: children,\n menuId,\n valueId,\n listRef: listRef,\n onSelectionChange,\n ariaLabel: props['aria-label'],\n ariaDescribedBy: props['aria-labelledby']\n }}>\n {props.children}\n </CollapseContext.Provider>\n </>\n );\n }\n\n return (\n <div\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + tabs({orientation}, props.styles)}\n ref={containerRef}>\n <CollapseContext.Provider\n value={{showTabs: true, menuId, valueId, tabs: children, listRef: listRef}}>\n {contents}\n </CollapseContext.Provider>\n </div>\n );\n};\n"],"names":[],"version":3,"file":"Tabs.cjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Tabs.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 {\n TabListProps as AriaTabListProps,\n TabPanel as AriaTabPanel,\n TabPanelProps as AriaTabPanelProps,\n TabProps as AriaTabProps,\n TabsProps as AriaTabsProps,\n Tab as RACTab,\n TabList as RACTabList,\n Tabs as RACTabs,\n TabListStateContext,\n TabRenderProps\n} from 'react-aria-components/Tabs';\nimport {baseColor, focusRing, size, style} from '../style' with {type: 'macro'};\nimport {centerBaseline} from './CenterBaseline';\nimport {\n Collection,\n DOMRef,\n DOMRefValue,\n GlobalDOMAttributes,\n Key,\n Node,\n Orientation,\n RefObject\n} from '@react-types/shared';\nimport {CollectionBuilder} from 'react-aria/CollectionBuilder';\nimport {ContextValue, Provider} from 'react-aria-components/slots';\nimport {\n createContext,\n forwardRef,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport {\n getAllowedOverrides,\n StyleProps,\n StylesPropWithHeight,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {Group} from 'react-aria-components/Group';\nimport {IconContext} from './Icon';\nimport {inertValue} from 'react-aria/private/utils/inertValue';\nimport {Picker, PickerItem} from './TabsPicker';\nimport {SelectionIndicator} from 'react-aria-components/SelectionIndicator';\nimport {Text, TextContext} from './Content';\nimport {useControlledState} from 'react-stately/useControlledState';\nimport {useDOMRef} from './useDOMRef';\nimport {useEffectEvent} from 'react-aria/private/utils/useEffectEvent';\nimport {useHasTabbableChild} from 'react-aria/private/focus/useHasTabbableChild';\nimport {useId} from 'react-aria/useId';\nimport {useLabels} from 'react-aria/private/utils/useLabels';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useResizeObserver} from 'react-aria/private/utils/useResizeObserver';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface TabsProps\n extends\n Omit<AriaTabsProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>,\n UnsafeStyles {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n /** The content to display in the tabs. */\n children: ReactNode;\n /**\n * The amount of space between the tabs.\n *\n * @default 'regular'\n */\n density?: 'compact' | 'regular';\n /**\n * Defines if the text within the tabs should be hidden and only the icon should be shown.\n * The text is always visible when the item is collapsed into a picker.\n *\n * @default 'show'\n */\n labelBehavior?: 'show' | 'hide';\n}\n\nexport interface TabProps\n extends\n Omit<\n AriaTabProps,\n 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes\n >,\n StyleProps {\n /** The content to display in the tab. */\n children: ReactNode;\n}\n\nexport interface TabListProps<T>\n extends\n Omit<\n AriaTabListProps<T>,\n | 'style'\n | 'className'\n | 'render'\n | 'aria-label'\n | 'aria-labelledby'\n | keyof GlobalDOMAttributes\n >,\n StyleProps {\n /** The content to display in the tablist. */\n children: ReactNode | ((item: T) => ReactNode);\n}\n\nexport interface TabPanelProps\n extends\n Omit<\n AriaTabPanelProps,\n 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes\n >,\n UnsafeStyles {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n /** The content to display in the tab panels. */\n children: ReactNode;\n}\n\nexport const TabsContext =\n createContext<ContextValue<Partial<TabsProps>, DOMRefValue<HTMLDivElement>>>(null);\nconst InternalTabsContext = createContext<\n Partial<TabsProps> & {\n tablistRef?: RefObject<HTMLDivElement | null>;\n selectedKey?: Key | null;\n baseId?: string;\n }\n>({});\n\ninterface CollapseContextType {\n showTabs: boolean;\n menuId: string;\n valueId: string;\n ariaLabel?: string | undefined;\n ariaDescribedBy?: string | undefined;\n tabs: Array<Node<any>>;\n listRef?: RefObject<HTMLDivElement | null>;\n onSelectionChange?: (key: Key) => void;\n}\n\nconst CollapseContext = createContext<CollapseContextType>({\n showTabs: true,\n menuId: '',\n valueId: '',\n tabs: []\n});\n\nconst tabs = style(\n {\n position: 'relative',\n display: 'flex',\n flexShrink: 0,\n font: 'ui',\n flexDirection: {\n orientation: {\n horizontal: 'column'\n }\n }\n },\n getAllowedOverrides({height: true})\n);\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them. The\n * content under the set of tabs should be related and form a coherent unit.\n */\nexport const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, TabsContext);\n let {\n density = 'regular',\n isDisabled,\n disabledKeys,\n orientation = 'horizontal',\n labelBehavior = 'show'\n } = props;\n let domRef = useDOMRef(ref);\n let [value, setValue] = useControlledState(\n props.selectedKey,\n props.defaultSelectedKey ?? null!,\n props.onSelectionChange\n );\n\n if (!props['aria-label'] && !props['aria-labelledby']) {\n throw new Error('An aria-label or aria-labelledby prop is required on Tabs for accessibility.');\n }\n\n let tablistRef = useRef<HTMLDivElement | null>(null);\n // Shared base id so child Tab/TabPanel components can derive stable ids.\n let baseId = useId();\n\n return (\n <Provider\n values={[\n [\n InternalTabsContext,\n {\n density,\n isDisabled,\n orientation,\n disabledKeys,\n selectedKey: value,\n tablistRef,\n onSelectionChange: setValue,\n labelBehavior,\n baseId,\n 'aria-label': props['aria-label'],\n 'aria-labelledby': props['aria-labelledby']\n }\n ]\n ]}>\n <CollectionBuilder content={props.children}>\n {collection => (\n <CollapsingTabs\n {...props}\n selectedKey={value}\n onSelectionChange={setValue}\n collection={collection}\n containerRef={domRef}\n />\n )}\n </CollectionBuilder>\n </Provider>\n );\n});\n\nconst tablist = style({\n display: 'flex',\n gap: {\n orientation: {\n horizontal: {\n density: {\n compact: 24,\n regular: 32\n },\n labelBehavior: {\n hide: {\n density: {\n compact: 16,\n regular: 24\n }\n }\n }\n }\n }\n },\n flexDirection: {\n orientation: {\n vertical: 'column'\n }\n },\n marginEnd: {\n orientation: {\n vertical: 20\n }\n },\n marginStart: {\n orientation: {\n vertical: 12\n }\n },\n minWidth: 'min'\n});\n\nconst tablistWrapper = style(\n {\n position: 'relative',\n minWidth: 0,\n flexShrink: 0,\n flexGrow: 0\n },\n getAllowedOverrides()\n);\n\nexport function TabList<T>(props: TabListProps<T>): ReactNode | null {\n let {showTabs, menuId, valueId, tabs, listRef, onSelectionChange, ariaLabel, ariaDescribedBy} =\n useContext(CollapseContext) ?? {};\n let {density, orientation, labelBehavior} = useContext(InternalTabsContext);\n\n if (showTabs) {\n return <TabListInner {...props} />;\n }\n\n return (\n <div className={tablistWrapper(null, props.styles)}>\n {listRef && (\n <div className={tablist({orientation, labelBehavior, density})}>\n <HiddenTabs items={tabs} density={density} listRef={listRef} />\n </div>\n )}\n <TabsMenu\n id={menuId}\n valueId={valueId}\n items={tabs}\n onSelectionChange={onSelectionChange}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n />\n </div>\n );\n}\n\nfunction TabListInner<T>(props: TabListProps<T>) {\n let {\n tablistRef,\n orientation,\n density,\n labelBehavior,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n } = useContext(InternalTabsContext) ?? {};\n let {tabs, listRef} = useContext(CollapseContext) ?? {};\n\n return (\n <div\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + tablistWrapper(null, props.styles)}>\n {listRef && (\n <div className={tablist({orientation, labelBehavior, density})}>\n <HiddenTabs items={tabs} density={density} listRef={listRef} />\n </div>\n )}\n <RACTabList\n {...props}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n ref={tablistRef}\n className={renderProps => tablist({...renderProps, labelBehavior, density})}\n />\n </div>\n );\n}\n\nconst selectedIndicator = style<{isDisabled: boolean; orientation?: Orientation}>({\n position: 'absolute',\n backgroundColor: {\n default: 'neutral',\n isDisabled: 'disabled',\n forcedColors: {\n default: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n height: {\n default: 'full',\n orientation: {\n horizontal: '[2px]'\n }\n },\n width: {\n default: 'full',\n orientation: {\n vertical: '[2px]'\n }\n },\n contain: 'strict',\n transition: {\n default: '[translate,width,height]',\n '@media (prefers-reduced-motion: reduce)': 'none'\n },\n transitionDuration: 200,\n transitionTimingFunction: 'out',\n bottom: {\n default: 0\n },\n top: {\n orientation: {\n vertical: 0\n }\n },\n left: {\n orientation: {\n horizontal: 0\n }\n },\n insetStart: {\n orientation: {\n vertical: -12\n }\n },\n borderStyle: 'none',\n borderRadius: 'full'\n});\n\nconst tab = style<\n TabRenderProps & {\n density?: 'compact' | 'regular';\n labelBehavior?: 'show' | 'hide';\n orientation?: Orientation;\n }\n>(\n {\n ...focusRing(),\n display: 'flex',\n color: {\n default: baseColor('neutral-subdued'),\n isSelected: baseColor('neutral'),\n isDisabled: 'disabled',\n forcedColors: {\n isSelected: 'Highlight',\n isDisabled: 'GrayText'\n }\n },\n borderRadius: 'sm',\n gap: 'text-to-visual',\n height: {\n orientation: {\n horizontal: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n }\n },\n minHeight: {\n orientation: {\n vertical: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n }\n },\n alignItems: 'center',\n position: 'relative',\n cursor: 'default',\n textDecoration: 'none',\n flexShrink: 0,\n transition: 'default',\n paddingX: {\n labelBehavior: {\n hide: size(6)\n }\n },\n disableTapHighlight: true\n },\n getAllowedOverrides()\n);\n\nconst icon = style({\n display: 'block',\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport function Tab(props: TabProps): ReactNode {\n let {density, orientation, labelBehavior, baseId} = useContext(InternalTabsContext) ?? {};\n\n // Derive a stable content id from the shared baseId on InternalTabsContext.\n // Prevents infinite loop when rendering across multiple CollectionBuilder portals.\n let fallbackId = useId();\n let contentId = `${baseId ?? fallbackId}-content-${props.id ?? fallbackId}`;\n let ariaLabelledBy = props['aria-labelledby'] || '';\n\n return (\n <RACTab\n {...props}\n // @ts-ignore\n originalProps={props}\n aria-labelledby={`${labelBehavior === 'hide' ? contentId : ''} ${ariaLabelledBy}`}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n tab({...renderProps, density, labelBehavior, orientation}, props.styles)\n }>\n {({\n // @ts-ignore\n isMenu,\n isDisabled\n }) => {\n if (isMenu) {\n return props.children;\n } else {\n return (\n <Provider\n values={[\n [\n TextContext,\n {\n id: contentId,\n styles: style({\n order: 1,\n display: {\n labelBehavior: {\n hide: 'none'\n }\n }\n })({labelBehavior})\n }\n ],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: style({order: 0})}),\n styles: icon\n }\n ]\n ]}>\n <TabInner orientation={orientation!} isDisabled={isDisabled}>\n {typeof props.children === 'string' ? (\n <Text>{props.children}</Text>\n ) : (\n props.children\n )}\n </TabInner>\n </Provider>\n );\n }\n }}\n </RACTab>\n );\n}\n\nfunction TabInner({\n isDisabled,\n orientation,\n children\n}: {\n isDisabled: boolean;\n orientation: Orientation;\n children: ReactNode;\n}) {\n let ref = useRef<HTMLDivElement | null>(null);\n let isHidden = useContext(HiddenTabsContext);\n\n return (\n <>\n {!isHidden && (\n <SelectionIndicator ref={ref} className={selectedIndicator({isDisabled, orientation})} />\n )}\n {children}\n </>\n );\n}\n\nconst tabPanel = style(\n {\n ...focusRing(),\n marginTop: 4,\n color: 'gray-800',\n flexGrow: 1,\n minHeight: 0,\n display: {\n default: 'block',\n isInert: 'none'\n }\n },\n getAllowedOverrides({height: true})\n);\n\nexport function TabPanel(props: TabPanelProps): ReactNode | null {\n let {showTabs} = useContext(CollapseContext);\n let {selectedKey} = useContext(InternalTabsContext);\n if (showTabs) {\n return (\n <AriaTabPanel\n {...props}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className ?? '') + tabPanel(renderProps, props.styles)\n }\n />\n );\n }\n\n if (props.id !== selectedKey) {\n return null;\n }\n\n return <CollapsedTabPanel {...props} />;\n}\n\nfunction CollapsedTabPanel(props: TabPanelProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {UNSAFE_style, UNSAFE_className = '', id, shouldForceMount, ...otherProps} = props;\n let {menuId, valueId} = useContext(CollapseContext);\n let ref = useRef(null);\n let tabIndex = useHasTabbableChild(ref) ? undefined : 0;\n\n return (\n <Group\n {...otherProps}\n ref={ref}\n aria-labelledby={menuId + ' ' + valueId}\n tabIndex={tabIndex}\n style={UNSAFE_style}\n className={renderProps => UNSAFE_className + tabPanel(renderProps, props.styles)}\n />\n );\n}\n\nfunction isEveryTabDisabled<T>(\n collection: Collection<Node<T>> | undefined,\n disabledKeys: Set<Key>\n) {\n let testKey: Key | null = null;\n if (collection && collection.size > 0) {\n testKey = collection.getFirstKey();\n\n let index = 0;\n while (testKey && index < collection.size) {\n // We have to check if the item in the collection has a key in disabledKeys or has the isDisabled prop set directly on it\n if (!disabledKeys.has(testKey) && !collection.getItem(testKey)?.props?.isDisabled) {\n return false;\n }\n\n testKey = collection.getKeyAfter(testKey);\n index++;\n }\n return true;\n }\n return false;\n}\n\nconst HiddenTabsContext = createContext(false);\n\nlet HiddenTabs = function (props: {\n listRef: RefObject<HTMLDivElement | null>;\n items: Array<Node<any>>;\n size?: string;\n density?: 'compact' | 'regular';\n}) {\n let {listRef, items = [], size, density} = props;\n\n return (\n <div\n // @ts-ignore\n inert={inertValue(true)}\n ref={listRef}\n className={style({\n display: 'inherit',\n flexDirection: 'inherit',\n gap: 'inherit',\n flexWrap: 'inherit',\n position: 'absolute',\n inset: 0,\n visibility: 'hidden',\n overflow: 'hidden',\n opacity: 0\n })}>\n <HiddenTabsContext.Provider value>\n {items.map(item => {\n // pull off individual props as an allow list, don't want refs or other props getting through\n return (\n <div\n data-hidden-tab\n style={item.props.UNSAFE_style}\n key={item.key}\n className={item.props.className({size, density})}>\n {item.props.children({size, density})}\n </div>\n );\n })}\n </HiddenTabsContext.Provider>\n </div>\n );\n};\n\nlet TabsMenu = (\n props: {\n valueId: string;\n items: Array<Node<any>>;\n onSelectionChange: TabsProps['onSelectionChange'];\n } & Omit<TabsProps, 'children'>\n) => {\n let {id, items, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, valueId} = props;\n let {\n density,\n onSelectionChange: _onSelectionChange,\n selectedKey,\n isDisabled,\n disabledKeys,\n labelBehavior\n } = useContext(InternalTabsContext);\n let onSelectionChange = useCallback(\n (key: Key | null) => {\n if (key != null) {\n _onSelectionChange?.(key);\n }\n },\n [_onSelectionChange]\n );\n let state = useContext(TabListStateContext);\n let allKeysDisabled = useMemo(() => {\n return isEveryTabDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set());\n }, [state?.collection, disabledKeys]);\n let labelProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy\n });\n\n return (\n <div\n className={style({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n height: {\n density: {\n compact: 32,\n regular: 48\n }\n }\n })({density})}>\n <Picker\n id={id}\n valueId={valueId}\n {...labelProps}\n aria-describedby={props['aria-describedby']}\n aria-details={props['aria-details']}\n isDisabled={isDisabled || allKeysDisabled}\n density={density!}\n labelBehavior={labelBehavior}\n items={items}\n disabledKeys={disabledKeys}\n selectedKey={selectedKey}\n onSelectionChange={onSelectionChange}>\n {(item: Node<any>) => {\n return (\n <PickerItem\n {...item.props.originalProps}\n isDisabled={isDisabled || allKeysDisabled}\n key={item.key}>\n {item.props.children({density, isMenu: true})}\n </PickerItem>\n );\n }}\n </Picker>\n </div>\n );\n};\n\nlet CollapsingTabs = ({\n collection,\n containerRef,\n ...props\n}: {collection: Collection<Node<unknown>>; containerRef: any} & TabsProps) => {\n let {orientation = 'horizontal', onSelectionChange} = props;\n let [showItems, _setShowItems] = useState(true);\n showItems = orientation === 'vertical' ? true : showItems;\n let setShowItems = useCallback(\n (value: boolean) => {\n if (orientation === 'vertical') {\n // if orientation is vertical, we always show the items\n _setShowItems(true);\n } else {\n _setShowItems(value);\n }\n },\n [orientation]\n );\n\n let {direction} = useLocale();\n\n let children = useMemo(() => [...collection], [collection]);\n\n let listRef = useRef<HTMLDivElement | null>(null);\n\n let updateOverflow = () => {\n if (orientation === 'vertical' || !listRef.current || !containerRef?.current) {\n return;\n }\n let container = listRef.current;\n let containerRect = container.getBoundingClientRect();\n let tabs = container.querySelectorAll('[data-hidden-tab]');\n let lastTab = tabs[tabs.length - 1];\n let lastTabRect = lastTab.getBoundingClientRect();\n if (direction === 'ltr') {\n setShowItems?.(lastTabRect.right <= containerRect.right);\n } else {\n setShowItems?.(lastTabRect.left >= containerRect.left);\n }\n };\n\n let updateOverflowEffect = useEffectEvent(updateOverflow);\n\n useResizeObserver({ref: containerRef, onResize: updateOverflow});\n\n useLayoutEffect(() => {\n if (collection.size > 0) {\n queueMicrotask(updateOverflowEffect);\n }\n }, [collection.size]);\n\n // start with null so that the first render won't have a flicker\n let prevOrientation = useRef<Orientation | null>(null);\n useLayoutEffect(() => {\n if (collection.size > 0 && prevOrientation.current !== orientation) {\n updateOverflowEffect();\n }\n prevOrientation.current = orientation;\n }, [collection.size, orientation]);\n\n useEffect(() => {\n // Recalculate visible tags when fonts are loaded.\n document.fonts?.ready.then(() => updateOverflowEffect());\n }, []);\n\n let menuId = useId();\n let valueId = useId();\n\n let contents: ReactNode;\n if (showItems) {\n contents = (\n <RACTabs {...props} className=\"\" style={{display: 'contents'}}>\n {props.children}\n </RACTabs>\n );\n } else {\n contents = (\n <>\n <CollapseContext.Provider\n value={{\n showTabs: false,\n tabs: children,\n menuId,\n valueId,\n listRef: listRef,\n onSelectionChange,\n ariaLabel: props['aria-label'],\n ariaDescribedBy: props['aria-labelledby']\n }}>\n {props.children}\n </CollapseContext.Provider>\n </>\n );\n }\n\n return (\n <div\n style={props.UNSAFE_style}\n className={(props.UNSAFE_className || '') + tabs({orientation}, props.styles)}\n ref={containerRef}>\n <CollapseContext.Provider\n value={{showTabs: true, menuId, valueId, tabs: children, listRef: listRef}}>\n {contents}\n </CollapseContext.Provider>\n </div>\n );\n};\n"],"names":[],"version":3,"file":"Tabs.cjs.map"}