@react-spectrum/s2 0.6.0 → 0.7.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 (767) hide show
  1. package/dist/Accordion.cjs.map +1 -1
  2. package/dist/Accordion.css +1 -5
  3. package/dist/Accordion.css.map +1 -1
  4. package/dist/Accordion.mjs.map +1 -1
  5. package/dist/ActionBar.cjs +2 -2
  6. package/dist/ActionBar.css +0 -6
  7. package/dist/ActionBar.css.map +1 -1
  8. package/dist/ActionBar.mjs +2 -2
  9. package/dist/ActionButton.cjs +4 -4
  10. package/dist/ActionButton.cjs.map +1 -1
  11. package/dist/ActionButton.css +0 -6
  12. package/dist/ActionButton.css.map +1 -1
  13. package/dist/ActionButton.mjs +4 -4
  14. package/dist/ActionButton.mjs.map +1 -1
  15. package/dist/ActionButtonGroup.css +1 -5
  16. package/dist/ActionButtonGroup.css.map +1 -1
  17. package/dist/ActionMenu.cjs.map +1 -1
  18. package/dist/ActionMenu.mjs.map +1 -1
  19. package/dist/AlertDialog.css +1 -5
  20. package/dist/AlertDialog.css.map +1 -1
  21. package/dist/Avatar.cjs.map +1 -1
  22. package/dist/Avatar.css +1 -5
  23. package/dist/Avatar.css.map +1 -1
  24. package/dist/Avatar.mjs.map +1 -1
  25. package/dist/AvatarGroup.cjs +1 -1
  26. package/dist/AvatarGroup.cjs.map +1 -1
  27. package/dist/AvatarGroup.css +0 -6
  28. package/dist/AvatarGroup.css.map +1 -1
  29. package/dist/AvatarGroup.mjs +1 -1
  30. package/dist/AvatarGroup.mjs.map +1 -1
  31. package/dist/Badge.cjs +32 -14
  32. package/dist/Badge.cjs.map +1 -1
  33. package/dist/Badge.css +26 -8
  34. package/dist/Badge.css.map +1 -1
  35. package/dist/Badge.mjs +33 -15
  36. package/dist/Badge.mjs.map +1 -1
  37. package/dist/Breadcrumbs.cjs +7 -7
  38. package/dist/Breadcrumbs.cjs.map +1 -1
  39. package/dist/Breadcrumbs.css +0 -6
  40. package/dist/Breadcrumbs.css.map +1 -1
  41. package/dist/Breadcrumbs.mjs +8 -8
  42. package/dist/Breadcrumbs.mjs.map +1 -1
  43. package/dist/Button.cjs +4 -4
  44. package/dist/Button.cjs.map +1 -1
  45. package/dist/Button.css +0 -6
  46. package/dist/Button.css.map +1 -1
  47. package/dist/Button.mjs +4 -4
  48. package/dist/Button.mjs.map +1 -1
  49. package/dist/ButtonGroup.cjs +1 -1
  50. package/dist/ButtonGroup.cjs.map +1 -1
  51. package/dist/ButtonGroup.css +1 -5
  52. package/dist/ButtonGroup.css.map +1 -1
  53. package/dist/ButtonGroup.mjs +1 -1
  54. package/dist/ButtonGroup.mjs.map +1 -1
  55. package/dist/Card.cjs +15 -15
  56. package/dist/Card.cjs.map +1 -1
  57. package/dist/Card.css +0 -6
  58. package/dist/Card.css.map +1 -1
  59. package/dist/Card.mjs +16 -16
  60. package/dist/Card.mjs.map +1 -1
  61. package/dist/CardView.cjs +71 -309
  62. package/dist/CardView.cjs.map +1 -1
  63. package/dist/CardView.css +1 -5
  64. package/dist/CardView.css.map +1 -1
  65. package/dist/CardView.mjs +28 -266
  66. package/dist/CardView.mjs.map +1 -1
  67. package/dist/CenterBaseline.cjs +1 -1
  68. package/dist/CenterBaseline.css +1 -5
  69. package/dist/CenterBaseline.css.map +1 -1
  70. package/dist/CenterBaseline.mjs +1 -1
  71. package/dist/Checkbox.cjs +1 -1
  72. package/dist/Checkbox.cjs.map +1 -1
  73. package/dist/Checkbox.css +0 -6
  74. package/dist/Checkbox.css.map +1 -1
  75. package/dist/Checkbox.mjs +1 -1
  76. package/dist/Checkbox.mjs.map +1 -1
  77. package/dist/CheckboxGroup.cjs.map +1 -1
  78. package/dist/CheckboxGroup.css +0 -6
  79. package/dist/CheckboxGroup.css.map +1 -1
  80. package/dist/CheckboxGroup.mjs.map +1 -1
  81. package/dist/ClearButton.css +1 -5
  82. package/dist/ClearButton.css.map +1 -1
  83. package/dist/CloseButton.cjs.map +1 -1
  84. package/dist/CloseButton.css +1 -5
  85. package/dist/CloseButton.css.map +1 -1
  86. package/dist/CloseButton.mjs.map +1 -1
  87. package/dist/ColorArea.cjs.map +1 -1
  88. package/dist/ColorArea.css +1 -5
  89. package/dist/ColorArea.css.map +1 -1
  90. package/dist/ColorArea.mjs.map +1 -1
  91. package/dist/ColorField.cjs.map +1 -1
  92. package/dist/ColorField.css +0 -6
  93. package/dist/ColorField.css.map +1 -1
  94. package/dist/ColorField.mjs.map +1 -1
  95. package/dist/ColorHandle.cjs +3 -3
  96. package/dist/ColorHandle.css +1 -5
  97. package/dist/ColorHandle.css.map +1 -1
  98. package/dist/ColorHandle.mjs +3 -3
  99. package/dist/ColorSlider.cjs.map +1 -1
  100. package/dist/ColorSlider.css +0 -6
  101. package/dist/ColorSlider.css.map +1 -1
  102. package/dist/ColorSlider.mjs.map +1 -1
  103. package/dist/ColorSwatch.cjs.map +1 -1
  104. package/dist/ColorSwatch.css +1 -5
  105. package/dist/ColorSwatch.css.map +1 -1
  106. package/dist/ColorSwatch.mjs.map +1 -1
  107. package/dist/ColorSwatchPicker.cjs +1 -1
  108. package/dist/ColorSwatchPicker.cjs.map +1 -1
  109. package/dist/ColorSwatchPicker.css +1 -5
  110. package/dist/ColorSwatchPicker.css.map +1 -1
  111. package/dist/ColorSwatchPicker.mjs +1 -1
  112. package/dist/ColorSwatchPicker.mjs.map +1 -1
  113. package/dist/ColorWheel.cjs.map +1 -1
  114. package/dist/ColorWheel.css +1 -5
  115. package/dist/ColorWheel.css.map +1 -1
  116. package/dist/ColorWheel.mjs.map +1 -1
  117. package/dist/ComboBox.cjs +2 -2
  118. package/dist/ComboBox.css +0 -6
  119. package/dist/ComboBox.css.map +1 -1
  120. package/dist/ComboBox.mjs +2 -2
  121. package/dist/Content.cjs +3 -1
  122. package/dist/Content.cjs.map +1 -1
  123. package/dist/Content.mjs +3 -1
  124. package/dist/Content.mjs.map +1 -1
  125. package/dist/ContextualHelp.cjs +5 -5
  126. package/dist/ContextualHelp.cjs.map +1 -1
  127. package/dist/ContextualHelp.css +0 -6
  128. package/dist/ContextualHelp.css.map +1 -1
  129. package/dist/ContextualHelp.mjs +5 -5
  130. package/dist/ContextualHelp.mjs.map +1 -1
  131. package/dist/CustomDialog.css +1 -5
  132. package/dist/CustomDialog.css.map +1 -1
  133. package/dist/Dialog.cjs +10 -10
  134. package/dist/Dialog.css +0 -6
  135. package/dist/Dialog.css.map +1 -1
  136. package/dist/Dialog.mjs +10 -10
  137. package/dist/Disclosure.cjs +2 -2
  138. package/dist/Disclosure.cjs.map +1 -1
  139. package/dist/Disclosure.css +0 -6
  140. package/dist/Disclosure.css.map +1 -1
  141. package/dist/Disclosure.mjs +2 -2
  142. package/dist/Disclosure.mjs.map +1 -1
  143. package/dist/Divider.cjs.map +1 -1
  144. package/dist/Divider.css +1 -5
  145. package/dist/Divider.css.map +1 -1
  146. package/dist/Divider.mjs.map +1 -1
  147. package/dist/DropZone.cjs.map +1 -1
  148. package/dist/DropZone.css +0 -6
  149. package/dist/DropZone.css.map +1 -1
  150. package/dist/DropZone.mjs.map +1 -1
  151. package/dist/Field.cjs +7 -7
  152. package/dist/Field.cjs.map +1 -1
  153. package/dist/Field.css +0 -6
  154. package/dist/Field.css.map +1 -1
  155. package/dist/Field.mjs +7 -7
  156. package/dist/Field.mjs.map +1 -1
  157. package/dist/Form.cjs.map +1 -1
  158. package/dist/Form.css +1 -5
  159. package/dist/Form.css.map +1 -1
  160. package/dist/Form.mjs.map +1 -1
  161. package/dist/FullscreenDialog.cjs +5 -5
  162. package/dist/FullscreenDialog.css +0 -6
  163. package/dist/FullscreenDialog.css.map +1 -1
  164. package/dist/FullscreenDialog.mjs +5 -5
  165. package/dist/IllustratedMessage.cjs +1 -1
  166. package/dist/IllustratedMessage.cjs.map +1 -1
  167. package/dist/IllustratedMessage.css +0 -6
  168. package/dist/IllustratedMessage.css.map +1 -1
  169. package/dist/IllustratedMessage.mjs +1 -1
  170. package/dist/IllustratedMessage.mjs.map +1 -1
  171. package/dist/Image.cjs +14 -2
  172. package/dist/Image.cjs.map +1 -1
  173. package/dist/Image.css +1 -5
  174. package/dist/Image.css.map +1 -1
  175. package/dist/Image.mjs +15 -3
  176. package/dist/Image.mjs.map +1 -1
  177. package/dist/InlineAlert.cjs +1 -1
  178. package/dist/InlineAlert.css +0 -6
  179. package/dist/InlineAlert.css.map +1 -1
  180. package/dist/InlineAlert.mjs +1 -1
  181. package/dist/Link.cjs.map +1 -1
  182. package/dist/Link.css +0 -6
  183. package/dist/Link.css.map +1 -1
  184. package/dist/Link.mjs.map +1 -1
  185. package/dist/Menu.cjs +20 -8
  186. package/dist/Menu.cjs.map +1 -1
  187. package/dist/Menu.css +12 -6
  188. package/dist/Menu.css.map +1 -1
  189. package/dist/Menu.mjs +21 -9
  190. package/dist/Menu.mjs.map +1 -1
  191. package/dist/Meter.cjs.map +1 -1
  192. package/dist/Meter.css +0 -6
  193. package/dist/Meter.css.map +1 -1
  194. package/dist/Meter.mjs.map +1 -1
  195. package/dist/Modal.css +1 -5
  196. package/dist/Modal.css.map +1 -1
  197. package/dist/NumberField.cjs.map +1 -1
  198. package/dist/NumberField.css +0 -6
  199. package/dist/NumberField.css.map +1 -1
  200. package/dist/NumberField.mjs.map +1 -1
  201. package/dist/Picker.cjs +95 -70
  202. package/dist/Picker.cjs.map +1 -1
  203. package/dist/Picker.css +8 -10
  204. package/dist/Picker.css.map +1 -1
  205. package/dist/Picker.mjs +96 -71
  206. package/dist/Picker.mjs.map +1 -1
  207. package/dist/Popover.cjs +1 -3
  208. package/dist/Popover.cjs.map +1 -1
  209. package/dist/Popover.css +5 -9
  210. package/dist/Popover.css.map +1 -1
  211. package/dist/Popover.mjs +1 -3
  212. package/dist/Popover.mjs.map +1 -1
  213. package/dist/ProgressBar.cjs.map +1 -1
  214. package/dist/ProgressBar.css +0 -6
  215. package/dist/ProgressBar.css.map +1 -1
  216. package/dist/ProgressBar.mjs.map +1 -1
  217. package/dist/ProgressCircle.cjs.map +1 -1
  218. package/dist/ProgressCircle.css +1 -5
  219. package/dist/ProgressCircle.css.map +1 -1
  220. package/dist/ProgressCircle.mjs.map +1 -1
  221. package/dist/Provider.css +1 -5
  222. package/dist/Provider.css.map +1 -1
  223. package/dist/Radio.css +0 -6
  224. package/dist/Radio.css.map +1 -1
  225. package/dist/RadioGroup.cjs.map +1 -1
  226. package/dist/RadioGroup.css +0 -6
  227. package/dist/RadioGroup.css.map +1 -1
  228. package/dist/RadioGroup.mjs.map +1 -1
  229. package/dist/RangeSlider.cjs.map +1 -1
  230. package/dist/RangeSlider.mjs.map +1 -1
  231. package/dist/SearchField.cjs +3 -3
  232. package/dist/SearchField.cjs.map +1 -1
  233. package/dist/SearchField.css +0 -6
  234. package/dist/SearchField.css.map +1 -1
  235. package/dist/SearchField.mjs +3 -3
  236. package/dist/SearchField.mjs.map +1 -1
  237. package/dist/SegmentedControl.cjs +7 -7
  238. package/dist/SegmentedControl.cjs.map +1 -1
  239. package/dist/SegmentedControl.css +0 -6
  240. package/dist/SegmentedControl.css.map +1 -1
  241. package/dist/SegmentedControl.mjs +8 -8
  242. package/dist/SegmentedControl.mjs.map +1 -1
  243. package/dist/Slider.cjs.map +1 -1
  244. package/dist/Slider.css +0 -6
  245. package/dist/Slider.css.map +1 -1
  246. package/dist/Slider.mjs.map +1 -1
  247. package/dist/StatusLight.cjs.map +1 -1
  248. package/dist/StatusLight.css +0 -6
  249. package/dist/StatusLight.css.map +1 -1
  250. package/dist/StatusLight.mjs.map +1 -1
  251. package/dist/Switch.cjs.map +1 -1
  252. package/dist/Switch.css +0 -6
  253. package/dist/Switch.css.map +1 -1
  254. package/dist/Switch.mjs.map +1 -1
  255. package/dist/TableView.cjs +75 -92
  256. package/dist/TableView.cjs.map +1 -1
  257. package/dist/TableView.css +10 -8
  258. package/dist/TableView.css.map +1 -1
  259. package/dist/TableView.mjs +76 -93
  260. package/dist/TableView.mjs.map +1 -1
  261. package/dist/Tabs.cjs +451 -167
  262. package/dist/Tabs.cjs.map +1 -1
  263. package/dist/Tabs.css +208 -122
  264. package/dist/Tabs.css.map +1 -1
  265. package/dist/Tabs.mjs +451 -167
  266. package/dist/Tabs.mjs.map +1 -1
  267. package/dist/TabsPicker.cjs +415 -0
  268. package/dist/TabsPicker.cjs.map +1 -0
  269. package/dist/TabsPicker.css +482 -0
  270. package/dist/TabsPicker.css.map +1 -0
  271. package/dist/TabsPicker.mjs +409 -0
  272. package/dist/TabsPicker.mjs.map +1 -0
  273. package/dist/TagGroup.cjs +13 -13
  274. package/dist/TagGroup.cjs.map +1 -1
  275. package/dist/TagGroup.css +0 -6
  276. package/dist/TagGroup.css.map +1 -1
  277. package/dist/TagGroup.mjs +13 -13
  278. package/dist/TagGroup.mjs.map +1 -1
  279. package/dist/TextField.cjs +1 -1
  280. package/dist/TextField.cjs.map +1 -1
  281. package/dist/TextField.css +0 -6
  282. package/dist/TextField.css.map +1 -1
  283. package/dist/TextField.mjs +1 -1
  284. package/dist/TextField.mjs.map +1 -1
  285. package/dist/ToggleButton.cjs +3 -3
  286. package/dist/ToggleButton.cjs.map +1 -1
  287. package/dist/ToggleButton.css +1 -5
  288. package/dist/ToggleButton.css.map +1 -1
  289. package/dist/ToggleButton.mjs +3 -3
  290. package/dist/ToggleButton.mjs.map +1 -1
  291. package/dist/ToggleButtonGroup.cjs.map +1 -1
  292. package/dist/ToggleButtonGroup.mjs.map +1 -1
  293. package/dist/Tooltip.cjs +1 -1
  294. package/dist/Tooltip.cjs.map +1 -1
  295. package/dist/Tooltip.css +0 -6
  296. package/dist/Tooltip.css.map +1 -1
  297. package/dist/Tooltip.mjs +1 -1
  298. package/dist/Tooltip.mjs.map +1 -1
  299. package/dist/TreeView.cjs +439 -0
  300. package/dist/TreeView.cjs.map +1 -0
  301. package/dist/TreeView.css +608 -0
  302. package/dist/TreeView.css.map +1 -0
  303. package/dist/TreeView.mjs +432 -0
  304. package/dist/TreeView.mjs.map +1 -0
  305. package/dist/main.cjs +5 -0
  306. package/dist/main.cjs.map +1 -1
  307. package/dist/module.mjs +3 -1
  308. package/dist/module.mjs.map +1 -1
  309. package/dist/types.d.ts +120 -81
  310. package/dist/types.d.ts.map +1 -1
  311. package/icons/3DMaterial.cjs.map +1 -1
  312. package/icons/3DMaterial.mjs.map +1 -1
  313. package/icons/ABC.cjs +36 -0
  314. package/icons/ABC.cjs.map +1 -0
  315. package/icons/ABC.mjs +25 -0
  316. package/icons/ABC.mjs.map +1 -0
  317. package/icons/AlertDiamond.cjs.map +1 -1
  318. package/icons/AlertDiamond.mjs.map +1 -1
  319. package/icons/Animation.cjs.map +1 -1
  320. package/icons/Animation.mjs.map +1 -1
  321. package/icons/AnimationNo.cjs.map +1 -1
  322. package/icons/AnimationNo.mjs.map +1 -1
  323. package/icons/App.cjs +42 -0
  324. package/icons/App.cjs.map +1 -0
  325. package/icons/App.mjs +31 -0
  326. package/icons/App.mjs.map +1 -0
  327. package/icons/AspectRatio.cjs.map +1 -1
  328. package/icons/AspectRatio.mjs.map +1 -1
  329. package/icons/Asset.cjs +1 -5
  330. package/icons/Asset.cjs.map +1 -1
  331. package/icons/Asset.mjs +1 -5
  332. package/icons/Asset.mjs.map +1 -1
  333. package/icons/AudioWave.cjs.map +1 -1
  334. package/icons/AudioWave.mjs.map +1 -1
  335. package/icons/BadgeVerified.cjs.map +1 -1
  336. package/icons/BadgeVerified.mjs.map +1 -1
  337. package/icons/Bell.cjs.map +1 -1
  338. package/icons/Bell.mjs.map +1 -1
  339. package/icons/Bookmark.cjs +36 -0
  340. package/icons/Bookmark.cjs.map +1 -0
  341. package/icons/Bookmark.mjs +25 -0
  342. package/icons/Bookmark.mjs.map +1 -0
  343. package/icons/Brand.cjs.map +1 -1
  344. package/icons/Brand.mjs.map +1 -1
  345. package/icons/Building.cjs +62 -0
  346. package/icons/Building.cjs.map +1 -0
  347. package/icons/Building.mjs +51 -0
  348. package/icons/Building.mjs.map +1 -0
  349. package/icons/CalendarEdit.cjs.map +1 -1
  350. package/icons/CalendarEdit.mjs.map +1 -1
  351. package/icons/CallCenter.cjs +36 -0
  352. package/icons/CallCenter.cjs.map +1 -0
  353. package/icons/CallCenter.mjs +25 -0
  354. package/icons/CallCenter.mjs.map +1 -0
  355. package/icons/CameraProperties.cjs.map +1 -1
  356. package/icons/CameraProperties.mjs.map +1 -1
  357. package/icons/Channel.cjs.map +1 -1
  358. package/icons/Channel.mjs.map +1 -1
  359. package/icons/ChartBarVert.cjs +36 -0
  360. package/icons/ChartBarVert.cjs.map +1 -0
  361. package/icons/ChartBarVert.mjs +25 -0
  362. package/icons/ChartBarVert.mjs.map +1 -0
  363. package/icons/ChartPie.cjs +36 -0
  364. package/icons/ChartPie.cjs.map +1 -0
  365. package/icons/ChartPie.mjs +25 -0
  366. package/icons/ChartPie.mjs.map +1 -0
  367. package/icons/ChartTrend.cjs +36 -0
  368. package/icons/ChartTrend.cjs.map +1 -0
  369. package/icons/ChartTrend.mjs +25 -0
  370. package/icons/ChartTrend.mjs.map +1 -0
  371. package/icons/Chat.cjs +36 -0
  372. package/icons/Chat.cjs.map +1 -0
  373. package/icons/Chat.mjs +25 -0
  374. package/icons/Chat.mjs.map +1 -0
  375. package/icons/CheckBox.cjs.map +1 -1
  376. package/icons/CheckBox.mjs.map +1 -1
  377. package/icons/Checkmark.cjs +8 -8
  378. package/icons/Checkmark.cjs.map +1 -1
  379. package/icons/Checkmark.mjs +8 -8
  380. package/icons/Checkmark.mjs.map +1 -1
  381. package/icons/ChevronDoubleLeft.cjs +42 -0
  382. package/icons/ChevronDoubleLeft.cjs.map +1 -0
  383. package/icons/ChevronDoubleLeft.d.ts +5 -0
  384. package/icons/ChevronDoubleLeft.mjs +31 -0
  385. package/icons/ChevronDoubleLeft.mjs.map +1 -0
  386. package/icons/ChevronDoubleRight.cjs +42 -0
  387. package/icons/ChevronDoubleRight.cjs.map +1 -0
  388. package/icons/ChevronDoubleRight.d.ts +5 -0
  389. package/icons/ChevronDoubleRight.mjs +31 -0
  390. package/icons/ChevronDoubleRight.mjs.map +1 -0
  391. package/icons/ChevronDown.cjs +8 -8
  392. package/icons/ChevronDown.cjs.map +1 -1
  393. package/icons/ChevronDown.mjs +8 -8
  394. package/icons/ChevronDown.mjs.map +1 -1
  395. package/icons/ChevronLeft.cjs.map +1 -1
  396. package/icons/ChevronLeft.mjs.map +1 -1
  397. package/icons/ChevronRight.cjs.map +1 -1
  398. package/icons/ChevronRight.mjs.map +1 -1
  399. package/icons/ChevronUp.cjs +36 -0
  400. package/icons/ChevronUp.cjs.map +1 -0
  401. package/icons/ChevronUp.d.ts +5 -0
  402. package/icons/ChevronUp.mjs +25 -0
  403. package/icons/ChevronUp.mjs.map +1 -0
  404. package/icons/Circle.cjs.map +1 -1
  405. package/icons/Circle.mjs.map +1 -1
  406. package/icons/Close.cjs.map +1 -1
  407. package/icons/Close.mjs.map +1 -1
  408. package/icons/CloseCaptions.cjs.map +1 -1
  409. package/icons/CloseCaptions.mjs.map +1 -1
  410. package/icons/Code.cjs +36 -0
  411. package/icons/Code.cjs.map +1 -0
  412. package/icons/Code.d.ts +5 -0
  413. package/icons/Code.mjs +25 -0
  414. package/icons/Code.mjs.map +1 -0
  415. package/icons/Collection.cjs.map +1 -1
  416. package/icons/Collection.mjs.map +1 -1
  417. package/icons/ColorHarmony.cjs.map +1 -1
  418. package/icons/ColorHarmony.mjs.map +1 -1
  419. package/icons/CommentCheckmark.cjs.map +1 -1
  420. package/icons/CommentCheckmark.mjs.map +1 -1
  421. package/icons/CommentHide.cjs.map +1 -1
  422. package/icons/CommentHide.mjs.map +1 -1
  423. package/icons/CommentRemove.cjs.map +1 -1
  424. package/icons/CommentRemove.mjs.map +1 -1
  425. package/icons/Compare.cjs +42 -0
  426. package/icons/Compare.cjs.map +1 -0
  427. package/icons/Compare.d.ts +5 -0
  428. package/icons/Compare.mjs +31 -0
  429. package/icons/Compare.mjs.map +1 -0
  430. package/icons/ContextualTaskBar.cjs.map +1 -1
  431. package/icons/ContextualTaskBar.mjs.map +1 -1
  432. package/icons/CornerRadiusBottomLeft.cjs.map +1 -1
  433. package/icons/CornerRadiusBottomLeft.mjs.map +1 -1
  434. package/icons/CornerRadiusBottomRight.cjs.map +1 -1
  435. package/icons/CornerRadiusBottomRight.mjs.map +1 -1
  436. package/icons/CornerRadiusTopLeft.cjs.map +1 -1
  437. package/icons/CornerRadiusTopLeft.mjs.map +1 -1
  438. package/icons/CornerRadiusTopRight.cjs.map +1 -1
  439. package/icons/CornerRadiusTopRight.mjs.map +1 -1
  440. package/icons/CursorClick.cjs.map +1 -1
  441. package/icons/CursorClick.mjs.map +1 -1
  442. package/icons/Data.cjs +1 -1
  443. package/icons/Data.cjs.map +1 -1
  444. package/icons/Data.mjs +1 -1
  445. package/icons/Data.mjs.map +1 -1
  446. package/icons/DataAdd.cjs.map +1 -1
  447. package/icons/DataAdd.mjs.map +1 -1
  448. package/icons/DataRefresh.cjs +42 -0
  449. package/icons/DataRefresh.cjs.map +1 -0
  450. package/icons/DataRefresh.d.ts +5 -0
  451. package/icons/DataRefresh.mjs +31 -0
  452. package/icons/DataRefresh.mjs.map +1 -0
  453. package/icons/DataSettings.cjs +2 -2
  454. package/icons/DataSettings.cjs.map +1 -1
  455. package/icons/DataSettings.mjs +2 -2
  456. package/icons/DataSettings.mjs.map +1 -1
  457. package/icons/DataUpload.cjs +2 -2
  458. package/icons/DataUpload.cjs.map +1 -1
  459. package/icons/DataUpload.mjs +2 -2
  460. package/icons/DataUpload.mjs.map +1 -1
  461. package/icons/DeviceTablet.cjs.map +1 -1
  462. package/icons/DeviceTablet.mjs.map +1 -1
  463. package/icons/Draw.cjs.map +1 -1
  464. package/icons/Draw.mjs.map +1 -1
  465. package/icons/Edit.cjs.map +1 -1
  466. package/icons/Edit.mjs.map +1 -1
  467. package/icons/EditNo.cjs.map +1 -1
  468. package/icons/EditNo.mjs.map +1 -1
  469. package/icons/Email.cjs.map +1 -1
  470. package/icons/Email.mjs.map +1 -1
  471. package/icons/Enterprise.cjs +46 -0
  472. package/icons/Enterprise.cjs.map +1 -0
  473. package/icons/Enterprise.d.ts +5 -0
  474. package/icons/Enterprise.mjs +35 -0
  475. package/icons/Enterprise.mjs.map +1 -0
  476. package/icons/Export.cjs +42 -0
  477. package/icons/Export.cjs.map +1 -0
  478. package/icons/Export.d.ts +5 -0
  479. package/icons/Export.mjs +31 -0
  480. package/icons/Export.mjs.map +1 -0
  481. package/icons/Filter.cjs.map +1 -1
  482. package/icons/Filter.mjs.map +1 -1
  483. package/icons/FlipHorizontal.cjs +1 -21
  484. package/icons/FlipHorizontal.cjs.map +1 -1
  485. package/icons/FlipHorizontal.mjs +1 -21
  486. package/icons/FlipHorizontal.mjs.map +1 -1
  487. package/icons/FlipVertical.cjs +1 -21
  488. package/icons/FlipVertical.cjs.map +1 -1
  489. package/icons/FlipVertical.mjs +1 -21
  490. package/icons/FlipVertical.mjs.map +1 -1
  491. package/icons/FolderMoveTo.cjs.map +1 -1
  492. package/icons/FolderMoveTo.mjs.map +1 -1
  493. package/icons/FolderSearch.cjs +42 -0
  494. package/icons/FolderSearch.cjs.map +1 -0
  495. package/icons/FolderSearch.d.ts +5 -0
  496. package/icons/FolderSearch.mjs +31 -0
  497. package/icons/FolderSearch.mjs.map +1 -0
  498. package/icons/FontPicker.cjs.map +1 -1
  499. package/icons/FontPicker.mjs.map +1 -1
  500. package/icons/GlobeGrid.cjs.map +1 -1
  501. package/icons/GlobeGrid.mjs.map +1 -1
  502. package/icons/GradientHorizontal.cjs.map +1 -1
  503. package/icons/GradientHorizontal.mjs.map +1 -1
  504. package/icons/GridsAndRulers.cjs.map +1 -1
  505. package/icons/GridsAndRulers.mjs.map +1 -1
  506. package/icons/Icon.cjs.map +1 -1
  507. package/icons/Icon.mjs.map +1 -1
  508. package/icons/Image.cjs.map +1 -1
  509. package/icons/Image.mjs.map +1 -1
  510. package/icons/ImageAdd.cjs +1 -5
  511. package/icons/ImageAdd.cjs.map +1 -1
  512. package/icons/ImageAdd.mjs +1 -5
  513. package/icons/ImageAdd.mjs.map +1 -1
  514. package/icons/ImageBackgroundRemove.cjs.map +1 -1
  515. package/icons/ImageBackgroundRemove.mjs.map +1 -1
  516. package/icons/Images.cjs.map +1 -1
  517. package/icons/Images.mjs.map +1 -1
  518. package/icons/Import.cjs +42 -0
  519. package/icons/Import.cjs.map +1 -0
  520. package/icons/Import.d.ts +5 -0
  521. package/icons/Import.mjs +31 -0
  522. package/icons/Import.mjs.map +1 -0
  523. package/icons/Key.cjs +36 -0
  524. package/icons/Key.cjs.map +1 -0
  525. package/icons/Key.d.ts +5 -0
  526. package/icons/Key.mjs +25 -0
  527. package/icons/Key.mjs.map +1 -0
  528. package/icons/ListMultiSelect.cjs.map +1 -1
  529. package/icons/ListMultiSelect.mjs.map +1 -1
  530. package/icons/ListNumbered.cjs.map +1 -1
  531. package/icons/ListNumbered.mjs.map +1 -1
  532. package/icons/Logo.cjs.map +1 -1
  533. package/icons/Logo.mjs.map +1 -1
  534. package/icons/Market.cjs.map +1 -1
  535. package/icons/Market.mjs.map +1 -1
  536. package/icons/Microphone.cjs.map +1 -1
  537. package/icons/Microphone.mjs.map +1 -1
  538. package/icons/MicrophoneOff.cjs.map +1 -1
  539. package/icons/MicrophoneOff.mjs.map +1 -1
  540. package/icons/MusicNote.cjs.map +1 -1
  541. package/icons/MusicNote.mjs.map +1 -1
  542. package/icons/OrientationPortrait.cjs.map +1 -1
  543. package/icons/OrientationPortrait.mjs.map +1 -1
  544. package/icons/Pause.cjs.map +1 -1
  545. package/icons/Pause.mjs.map +1 -1
  546. package/icons/PauseCircle.cjs.map +1 -1
  547. package/icons/PauseCircle.mjs.map +1 -1
  548. package/icons/PeopleGroup.cjs +36 -0
  549. package/icons/PeopleGroup.cjs.map +1 -0
  550. package/icons/PeopleGroup.d.ts +5 -0
  551. package/icons/PeopleGroup.mjs +25 -0
  552. package/icons/PeopleGroup.mjs.map +1 -0
  553. package/icons/Percentage.cjs.map +1 -1
  554. package/icons/Percentage.mjs.map +1 -1
  555. package/icons/PinOff.cjs.map +1 -1
  556. package/icons/PinOff.mjs.map +1 -1
  557. package/icons/PinOn.cjs.map +1 -1
  558. package/icons/PinOn.mjs.map +1 -1
  559. package/icons/Play.cjs.map +1 -1
  560. package/icons/Play.mjs.map +1 -1
  561. package/icons/PluginGear.cjs.map +1 -1
  562. package/icons/PluginGear.mjs.map +1 -1
  563. package/icons/Polygon6.cjs.map +1 -1
  564. package/icons/Polygon6.mjs.map +1 -1
  565. package/icons/Publish.cjs.map +1 -1
  566. package/icons/Publish.mjs.map +1 -1
  567. package/icons/PublishNo.cjs.map +1 -1
  568. package/icons/PublishNo.mjs.map +1 -1
  569. package/icons/RadioButton.cjs.map +1 -1
  570. package/icons/RadioButton.mjs.map +1 -1
  571. package/icons/RectangleHoriz.cjs.map +1 -1
  572. package/icons/RectangleHoriz.mjs.map +1 -1
  573. package/icons/RocketQuickActions.cjs.map +1 -1
  574. package/icons/RocketQuickActions.mjs.map +1 -1
  575. package/icons/RotateCW.cjs.map +1 -1
  576. package/icons/RotateCW.mjs.map +1 -1
  577. package/icons/Ruler.cjs.map +1 -1
  578. package/icons/Ruler.mjs.map +1 -1
  579. package/icons/SaveFloppy.cjs +36 -0
  580. package/icons/SaveFloppy.cjs.map +1 -0
  581. package/icons/SaveFloppy.d.ts +5 -0
  582. package/icons/SaveFloppy.mjs +25 -0
  583. package/icons/SaveFloppy.mjs.map +1 -0
  584. package/icons/Select.cjs.map +1 -1
  585. package/icons/Select.mjs.map +1 -1
  586. package/icons/Send.cjs.map +1 -1
  587. package/icons/Send.mjs.map +1 -1
  588. package/icons/Shuffle.cjs.map +1 -1
  589. package/icons/Shuffle.mjs.map +1 -1
  590. package/icons/Skeleton.cjs +8 -6
  591. package/icons/Skeleton.cjs.map +1 -1
  592. package/icons/Skeleton.css +3 -5
  593. package/icons/Skeleton.css.map +1 -1
  594. package/icons/Skeleton.mjs +9 -7
  595. package/icons/Skeleton.mjs.map +1 -1
  596. package/icons/SlowConnectionCircle.cjs.map +1 -1
  597. package/icons/SlowConnectionCircle.mjs.map +1 -1
  598. package/icons/SpeedFast.cjs +36 -0
  599. package/icons/SpeedFast.cjs.map +1 -0
  600. package/icons/SpeedFast.d.ts +5 -0
  601. package/icons/SpeedFast.mjs +25 -0
  602. package/icons/SpeedFast.mjs.map +1 -0
  603. package/icons/StepBackward.cjs.map +1 -1
  604. package/icons/StepBackward.mjs.map +1 -1
  605. package/icons/StepForward.cjs.map +1 -1
  606. package/icons/StepForward.mjs.map +1 -1
  607. package/icons/Table.cjs.map +1 -1
  608. package/icons/Table.mjs.map +1 -1
  609. package/icons/Tag.cjs.map +1 -1
  610. package/icons/Tag.mjs.map +1 -1
  611. package/icons/Target.cjs.map +1 -1
  612. package/icons/Target.mjs.map +1 -1
  613. package/icons/TextBold.cjs.map +1 -1
  614. package/icons/TextBold.mjs.map +1 -1
  615. package/icons/TextHighlight.cjs.map +1 -1
  616. package/icons/TextHighlight.mjs.map +1 -1
  617. package/icons/TextIncrease.cjs.map +1 -1
  618. package/icons/TextIncrease.mjs.map +1 -1
  619. package/icons/TextNumbers.cjs.map +1 -1
  620. package/icons/TextNumbers.mjs.map +1 -1
  621. package/icons/TextParagraph.cjs.map +1 -1
  622. package/icons/TextParagraph.mjs.map +1 -1
  623. package/icons/TextReplaceComment.cjs.map +1 -1
  624. package/icons/TextReplaceComment.mjs.map +1 -1
  625. package/icons/Tools.cjs.map +1 -1
  626. package/icons/Tools.mjs.map +1 -1
  627. package/icons/TouchOneFingerSwipeLeftRight.cjs.map +1 -1
  628. package/icons/TouchOneFingerSwipeLeftRight.mjs.map +1 -1
  629. package/icons/Transcript.cjs.map +1 -1
  630. package/icons/Transcript.mjs.map +1 -1
  631. package/icons/Translate.cjs.map +1 -1
  632. package/icons/Translate.mjs.map +1 -1
  633. package/icons/UserAvatarCursor.cjs.map +1 -1
  634. package/icons/UserAvatarCursor.mjs.map +1 -1
  635. package/icons/UserEdit.cjs.map +1 -1
  636. package/icons/UserEdit.mjs.map +1 -1
  637. package/icons/UserGroup.cjs.map +1 -1
  638. package/icons/UserGroup.mjs.map +1 -1
  639. package/icons/UserSettings.cjs +44 -0
  640. package/icons/UserSettings.cjs.map +1 -0
  641. package/icons/UserSettings.d.ts +5 -0
  642. package/icons/UserSettings.mjs +33 -0
  643. package/icons/UserSettings.mjs.map +1 -0
  644. package/icons/VectorDraw.cjs.map +1 -1
  645. package/icons/VectorDraw.mjs.map +1 -1
  646. package/icons/ViewGridFluid.cjs +36 -0
  647. package/icons/ViewGridFluid.cjs.map +1 -0
  648. package/icons/ViewGridFluid.d.ts +5 -0
  649. package/icons/ViewGridFluid.mjs +25 -0
  650. package/icons/ViewGridFluid.mjs.map +1 -0
  651. package/icons/ZoomIn.cjs.map +1 -1
  652. package/icons/ZoomIn.mjs.map +1 -1
  653. package/icons/ZoomOut.cjs.map +1 -1
  654. package/icons/ZoomOut.mjs.map +1 -1
  655. package/package.json +17 -18
  656. package/src/Accordion.tsx +1 -1
  657. package/src/ActionButton.tsx +2 -2
  658. package/src/ActionMenu.tsx +1 -1
  659. package/src/Avatar.tsx +1 -1
  660. package/src/AvatarGroup.tsx +1 -1
  661. package/src/Badge.tsx +27 -8
  662. package/src/Breadcrumbs.tsx +13 -13
  663. package/src/Button.tsx +4 -4
  664. package/src/ButtonGroup.tsx +1 -1
  665. package/src/Card.tsx +2 -2
  666. package/src/CardView.tsx +18 -366
  667. package/src/Checkbox.tsx +1 -1
  668. package/src/CheckboxGroup.tsx +2 -2
  669. package/src/CloseButton.tsx +1 -1
  670. package/src/ColorArea.tsx +1 -1
  671. package/src/ColorField.tsx +1 -1
  672. package/src/ColorSlider.tsx +1 -1
  673. package/src/ColorSwatch.tsx +2 -2
  674. package/src/ColorSwatchPicker.tsx +1 -2
  675. package/src/ColorWheel.tsx +1 -1
  676. package/src/Content.tsx +11 -9
  677. package/src/ContextualHelp.tsx +2 -2
  678. package/src/Disclosure.tsx +1 -1
  679. package/src/Divider.tsx +1 -1
  680. package/src/DropZone.tsx +2 -2
  681. package/src/Field.tsx +1 -1
  682. package/src/Form.tsx +2 -2
  683. package/src/Icon.tsx +2 -2
  684. package/src/IllustratedMessage.tsx +1 -1
  685. package/src/Image.tsx +19 -5
  686. package/src/Link.tsx +2 -2
  687. package/src/Menu.tsx +9 -4
  688. package/src/Meter.tsx +1 -1
  689. package/src/NumberField.tsx +1 -1
  690. package/src/Picker.tsx +81 -60
  691. package/src/Popover.tsx +2 -1
  692. package/src/ProgressBar.tsx +1 -1
  693. package/src/ProgressCircle.tsx +1 -1
  694. package/src/RadioGroup.tsx +2 -2
  695. package/src/RangeSlider.tsx +1 -1
  696. package/src/SearchField.tsx +1 -1
  697. package/src/SegmentedControl.tsx +6 -9
  698. package/src/Skeleton.tsx +6 -8
  699. package/src/Slider.tsx +1 -1
  700. package/src/StatusLight.tsx +1 -1
  701. package/src/Switch.tsx +1 -1
  702. package/src/TableView.tsx +67 -71
  703. package/src/Tabs.tsx +451 -145
  704. package/src/TabsPicker.tsx +350 -0
  705. package/src/TagGroup.tsx +4 -4
  706. package/src/TextField.tsx +2 -2
  707. package/src/ToggleButton.tsx +2 -2
  708. package/src/ToggleButtonGroup.tsx +1 -1
  709. package/src/Tooltip.tsx +4 -4
  710. package/src/TreeView.tsx +450 -0
  711. package/src/index.ts +2 -0
  712. package/src/style-utils.ts +0 -1
  713. package/style/__tests__/style-macro.test.js +3 -7
  714. package/style/dist/spectrum-theme.cjs.map +1 -1
  715. package/style/dist/spectrum-theme.mjs.map +1 -1
  716. package/style/dist/style-macro.cjs +5 -3
  717. package/style/dist/style-macro.cjs.map +1 -1
  718. package/style/dist/style-macro.mjs +5 -3
  719. package/style/dist/style-macro.mjs.map +1 -1
  720. package/style/dist/types.d.ts.map +1 -1
  721. package/style/spectrum-theme.ts +0 -1
  722. package/style/style-macro.ts +9 -3
  723. package/icons/CloudStateDefault.cjs +0 -36
  724. package/icons/CloudStateDefault.cjs.map +0 -1
  725. package/icons/CloudStateDefault.mjs +0 -25
  726. package/icons/CloudStateDefault.mjs.map +0 -1
  727. package/icons/CloudStateDisconnected.cjs +0 -36
  728. package/icons/CloudStateDisconnected.cjs.map +0 -1
  729. package/icons/CloudStateDisconnected.mjs +0 -25
  730. package/icons/CloudStateDisconnected.mjs.map +0 -1
  731. package/icons/CloudStateError.cjs +0 -36
  732. package/icons/CloudStateError.cjs.map +0 -1
  733. package/icons/CloudStateError.mjs +0 -25
  734. package/icons/CloudStateError.mjs.map +0 -1
  735. package/icons/CloudStateErrorRed.cjs +0 -46
  736. package/icons/CloudStateErrorRed.cjs.map +0 -1
  737. package/icons/CloudStateErrorRed.mjs +0 -35
  738. package/icons/CloudStateErrorRed.mjs.map +0 -1
  739. package/icons/CloudStateInProgress.cjs +0 -36
  740. package/icons/CloudStateInProgress.cjs.map +0 -1
  741. package/icons/CloudStateInProgress.mjs +0 -25
  742. package/icons/CloudStateInProgress.mjs.map +0 -1
  743. package/icons/CloudStateOnline.cjs +0 -50
  744. package/icons/CloudStateOnline.cjs.map +0 -1
  745. package/icons/CloudStateOnline.mjs +0 -39
  746. package/icons/CloudStateOnline.mjs.map +0 -1
  747. package/icons/CloudStatePaused.cjs +0 -36
  748. package/icons/CloudStatePaused.cjs.map +0 -1
  749. package/icons/CloudStatePaused.mjs +0 -25
  750. package/icons/CloudStatePaused.mjs.map +0 -1
  751. package/icons/CloudStatePending.cjs +0 -42
  752. package/icons/CloudStatePending.cjs.map +0 -1
  753. package/icons/CloudStatePending.mjs +0 -31
  754. package/icons/CloudStatePending.mjs.map +0 -1
  755. package/icons/CloudStateSlowConnection.cjs +0 -36
  756. package/icons/CloudStateSlowConnection.cjs.map +0 -1
  757. package/icons/CloudStateSlowConnection.mjs +0 -25
  758. package/icons/CloudStateSlowConnection.mjs.map +0 -1
  759. /package/icons/{CloudStateDefault.d.ts → ABC.d.ts} +0 -0
  760. /package/icons/{CloudStateDisconnected.d.ts → App.d.ts} +0 -0
  761. /package/icons/{CloudStateError.d.ts → Bookmark.d.ts} +0 -0
  762. /package/icons/{CloudStateErrorRed.d.ts → Building.d.ts} +0 -0
  763. /package/icons/{CloudStateInProgress.d.ts → CallCenter.d.ts} +0 -0
  764. /package/icons/{CloudStateOnline.d.ts → ChartBarVert.d.ts} +0 -0
  765. /package/icons/{CloudStatePaused.d.ts → ChartPie.d.ts} +0 -0
  766. /package/icons/{CloudStatePending.d.ts → ChartTrend.d.ts} +0 -0
  767. /package/icons/{CloudStateSlowConnection.d.ts → Chat.d.ts} +0 -0
@@ -0,0 +1,450 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+ import {ActionButtonGroupContext} from './ActionButtonGroup';
14
+ import {ActionMenuContext} from './ActionMenu';
15
+ import {
16
+ Button,
17
+ ButtonContext,
18
+ ListLayout,
19
+ Provider,
20
+ TreeItemProps as RACTreeItemProps,
21
+ TreeProps as RACTreeProps,
22
+ Tree,
23
+ TreeItem,
24
+ TreeItemContent,
25
+ TreeItemContentProps,
26
+ useContextProps,
27
+ Virtualizer
28
+ } from 'react-aria-components';
29
+ import {centerBaseline} from './CenterBaseline';
30
+ import {Checkbox} from './Checkbox';
31
+ import Chevron from '../ui-icons/Chevron';
32
+ import {colorMix, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};
33
+ import {DOMRef, Key} from '@react-types/shared';
34
+ import {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
35
+ import {IconContext} from './Icon';
36
+ import {isAndroid} from '@react-aria/utils';
37
+ import {raw} from '../style/style-macro' with {type: 'macro'};
38
+ import React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useRef} from 'react';
39
+ import {TextContext} from './Content';
40
+ import {useDOMRef} from '@react-spectrum/utils';
41
+ import {useLocale} from 'react-aria';
42
+ import {useScale} from './utils';
43
+
44
+ interface S2TreeProps {
45
+ // Only detatched is supported right now with the current styles from Spectrum
46
+ isDetached?: boolean,
47
+ onAction?: (key: Key) => void,
48
+ // not fully supported yet
49
+ isEmphasized?: boolean
50
+ }
51
+
52
+ export interface TreeViewProps extends Omit<RACTreeProps<any>, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TreeProps {
53
+ /** Spectrum-defined styles, returned by the `style()` macro. */
54
+ styles?: StylesPropWithHeight
55
+ }
56
+
57
+ export interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style'> {
58
+ /** Whether this item has children, even if not loaded yet. */
59
+ hasChildItems?: boolean
60
+ }
61
+
62
+ interface TreeRendererContextValue {
63
+ renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>
64
+ }
65
+ const TreeRendererContext = createContext<TreeRendererContextValue>({});
66
+
67
+
68
+ let InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});
69
+
70
+ // TODO: the below is needed so the borders of the top and bottom row isn't cut off if the TreeView is wrapped within a container by always reserving the 2px needed for the
71
+ // keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't
72
+ // scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview
73
+ const tree = style({
74
+ ...focusRing(),
75
+ outlineOffset: -2, // make certain we are visible inside overflow hidden containers
76
+ userSelect: 'none',
77
+ minHeight: 0,
78
+ minWidth: 0,
79
+ width: 'full',
80
+ height: 'full',
81
+ overflow: 'auto',
82
+ boxSizing: 'border-box',
83
+ justifyContent: {
84
+ isEmpty: 'center'
85
+ },
86
+ alignItems: {
87
+ isEmpty: 'center'
88
+ },
89
+ '--indent': {
90
+ type: 'width',
91
+ value: 16
92
+ }
93
+ }, getAllowedOverrides({height: true}));
94
+
95
+ function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
96
+ let {children, isDetached, isEmphasized, UNSAFE_className, UNSAFE_style} = props;
97
+ let scale = useScale();
98
+
99
+ let renderer;
100
+ if (typeof children === 'function') {
101
+ renderer = children;
102
+ }
103
+
104
+ let domRef = useDOMRef(ref);
105
+
106
+ return (
107
+ <Virtualizer
108
+ layout={ListLayout}
109
+ layoutOptions={{
110
+ rowHeight: scale === 'large' ? 50 : 40,
111
+ gap: isDetached ? 2 : 0
112
+ }}>
113
+ <TreeRendererContext.Provider value={{renderer}}>
114
+ <InternalTreeContext.Provider value={{isDetached, isEmphasized}}>
115
+ <Tree
116
+ {...props}
117
+ style={UNSAFE_style}
118
+ className={renderProps => (UNSAFE_className ?? '') + tree({isDetached, ...renderProps}, props.styles)}
119
+ selectionBehavior="toggle"
120
+ ref={domRef}>
121
+ {props.children}
122
+ </Tree>
123
+ </InternalTreeContext.Provider>
124
+ </TreeRendererContext.Provider>
125
+ </Virtualizer>
126
+ );
127
+ }
128
+
129
+ const selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));
130
+ const selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));
131
+
132
+ const rowBackgroundColor = {
133
+ default: '--s2-container-bg',
134
+ isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),
135
+ isHovered: colorMix('gray-25', 'gray-900', 7),
136
+ isPressed: colorMix('gray-25', 'gray-900', 10),
137
+ isSelected: {
138
+ default: colorMix('gray-25', 'gray-900', 7),
139
+ isEmphasized: selectedBackground,
140
+ isFocusVisibleWithin: {
141
+ default: colorMix('gray-25', 'gray-900', 10),
142
+ isEmphasized: selectedActiveBackground
143
+ },
144
+ isHovered: {
145
+ default: colorMix('gray-25', 'gray-900', 10),
146
+ isEmphasized: selectedActiveBackground
147
+ },
148
+ isPressed: {
149
+ default: colorMix('gray-25', 'gray-900', 10),
150
+ isEmphasized: selectedActiveBackground
151
+ }
152
+ },
153
+ forcedColors: {
154
+ default: 'Background'
155
+ }
156
+ } as const;
157
+
158
+ const treeRow = style({
159
+ position: 'relative',
160
+ display: 'flex',
161
+ height: 40,
162
+ width: 'full',
163
+ boxSizing: 'border-box',
164
+ font: 'ui',
165
+ color: 'body',
166
+ outlineStyle: 'none',
167
+ cursor: {
168
+ default: 'default',
169
+ isLink: 'pointer'
170
+ },
171
+ '--rowBackgroundColor': {
172
+ type: 'backgroundColor',
173
+ value: rowBackgroundColor
174
+ },
175
+ '--rowFocusIndicatorColor': {
176
+ type: 'outlineColor',
177
+ value: {
178
+ default: 'focus-ring',
179
+ forcedColors: 'Highlight'
180
+ }
181
+ }
182
+ });
183
+
184
+
185
+ const treeCellGrid = style({
186
+ display: 'grid',
187
+ width: 'full',
188
+ height: 'full',
189
+ boxSizing: 'border-box',
190
+ alignContent: 'center',
191
+ alignItems: 'center',
192
+ gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],
193
+ gridTemplateRows: '1fr',
194
+ gridTemplateAreas: [
195
+ 'drag-handle checkbox level-padding expand-button icon content actions actionmenu'
196
+ ],
197
+ backgroundColor: '--rowBackgroundColor',
198
+ paddingEnd: 4, // account for any focus rings on the last item in the cell
199
+ color: {
200
+ isDisabled: {
201
+ default: 'gray-400',
202
+ forcedColors: 'GrayText'
203
+ }
204
+ },
205
+ '--rowSelectedBorderColor': {
206
+ type: 'outlineColor',
207
+ value: {
208
+ default: 'gray-800',
209
+ isFocusVisible: 'focus-ring',
210
+ forcedColors: 'Highlight'
211
+ }
212
+ },
213
+ '--rowForcedFocusBorderColor': {
214
+ type: 'outlineColor',
215
+ value: {
216
+ default: 'focus-ring',
217
+ forcedColors: 'Highlight'
218
+ }
219
+ },
220
+ borderColor: {
221
+ isDetached: {
222
+ default: 'transparent',
223
+ isSelected: '--rowSelectedBorderColor'
224
+ }
225
+ },
226
+ borderWidth: {
227
+ isDetached: 1
228
+ },
229
+ borderRadius: {
230
+ isDetached: 'default'
231
+ },
232
+ borderStyle: {
233
+ isDetached: 'solid'
234
+ }
235
+ });
236
+
237
+ const treeCheckbox = style({
238
+ gridArea: 'checkbox',
239
+ marginStart: 12,
240
+ marginEnd: 0,
241
+ paddingEnd: 0
242
+ });
243
+
244
+ const treeIcon = style({
245
+ gridArea: 'icon',
246
+ marginEnd: 'text-to-visual',
247
+ '--iconPrimary': {
248
+ type: 'fill',
249
+ value: 'currentColor'
250
+ }
251
+ });
252
+
253
+ const treeContent = style({
254
+ gridArea: 'content',
255
+ textOverflow: 'ellipsis',
256
+ whiteSpace: 'nowrap',
257
+ overflow: 'hidden'
258
+ });
259
+
260
+ const treeActions = style({
261
+ gridArea: 'actions',
262
+ /* TODO: I made this one up, confirm desired behavior. These paddings are to make sure the action group has enough padding for the focus ring */
263
+ marginStart: 2,
264
+ marginEnd: 4
265
+ });
266
+
267
+ const treeActionMenu = style({
268
+ gridArea: 'actionmenu'
269
+ });
270
+
271
+ const cellFocus = {
272
+ outlineStyle: {
273
+ default: 'none',
274
+ isFocusVisible: 'solid'
275
+ },
276
+ outlineOffset: -2,
277
+ outlineWidth: 2,
278
+ outlineColor: 'focus-ring',
279
+ borderRadius: '[6px]'
280
+ } as const;
281
+
282
+ const treeRowFocusIndicator = raw(`
283
+ &:before {
284
+ content: "";
285
+ display: inline-block;
286
+ position: sticky;
287
+ inset-inline-start: 0;
288
+ width: 3px;
289
+ height: 100%;
290
+ margin-inline-end: -3px;
291
+ margin-block-end: 1px;
292
+ z-index: 3;
293
+ background-color: var(--rowFocusIndicatorColor);
294
+ }`
295
+ );
296
+
297
+ export const TreeViewItem = (props: TreeViewItemProps) => {
298
+ let {
299
+ href
300
+ } = props;
301
+ let {isDetached, isEmphasized} = useContext(InternalTreeContext);
302
+
303
+ return (
304
+ <TreeItem
305
+ {...props}
306
+ className={(renderProps) => treeRow({
307
+ ...renderProps,
308
+ isLink: !!href, isEmphasized
309
+ }) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')} />
310
+ );
311
+ };
312
+
313
+ export interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {
314
+ /** Rendered contents of the tree item or child items. */
315
+ children: ReactNode
316
+ }
317
+
318
+ export const TreeViewItemContent = (props: TreeViewItemContentProps) => {
319
+ let {
320
+ children
321
+ } = props;
322
+ let {isDetached, isEmphasized} = useContext(InternalTreeContext);
323
+ let scale = useScale();
324
+
325
+ return (
326
+ <TreeItemContent>
327
+ {({isExpanded, hasChildItems, selectionMode, selectionBehavior, isDisabled, isFocusVisible, isSelected, id, state}) => {
328
+ let isNextSelected = false;
329
+ let isNextFocused = false;
330
+ let keyAfter = state.collection.getKeyAfter(id);
331
+ if (keyAfter != null) {
332
+ isNextSelected = state.selectionManager.isSelected(keyAfter);
333
+ }
334
+ let isFirst = state.collection.getFirstKey() === id;
335
+ return (
336
+ <div className={treeCellGrid({isDisabled, isNextSelected, isSelected, isFirst, isNextFocused, isDetached})}>
337
+ {selectionMode !== 'none' && selectionBehavior === 'toggle' && (
338
+ // TODO: add transition?
339
+ <div className={treeCheckbox}>
340
+ <Checkbox
341
+ isEmphasized={isEmphasized}
342
+ slot="selection" />
343
+ </div>
344
+ )}
345
+ <div
346
+ className={style({
347
+ gridArea: 'level-padding',
348
+ width: '[calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))]'
349
+ })} />
350
+ {/* TODO: revisit when we do async loading, at the moment hasChildItems will only cause the chevron to be rendered, no aria/data attributes indicating the row's expandability are added */}
351
+ <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} scale={scale} isHidden={!(hasChildItems)} />
352
+ <Provider
353
+ values={[
354
+ [TextContext, {styles: treeContent}],
355
+ [IconContext, {
356
+ render: centerBaseline({slot: 'icon', styles: treeIcon}),
357
+ styles: style({size: fontRelative(20), flexShrink: 0})
358
+ }],
359
+ [ActionButtonGroupContext, {styles: treeActions}],
360
+ [ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]
361
+ ]}>
362
+ {children}
363
+ </Provider>
364
+ {isFocusVisible && isDetached && <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />}
365
+ </div>
366
+ );
367
+ }}
368
+ </TreeItemContent>
369
+ );
370
+ };
371
+
372
+ interface ExpandableRowChevronProps {
373
+ isExpanded?: boolean,
374
+ isDisabled?: boolean,
375
+ isRTL?: boolean,
376
+ scale: 'medium' | 'large',
377
+ isHidden?: boolean
378
+ }
379
+
380
+ const expandButton = style<ExpandableRowChevronProps>({
381
+ gridArea: 'expand-button',
382
+ color: {
383
+ default: '[inherit]',
384
+ isDisabled: {
385
+ default: 'disabled',
386
+ forcedColors: 'GrayText'
387
+ }
388
+ },
389
+ height: 40,
390
+ width: 40,
391
+ display: 'flex',
392
+ flexWrap: 'wrap',
393
+ alignContent: 'center',
394
+ justifyContent: 'center',
395
+ outlineStyle: 'none',
396
+ cursor: 'default',
397
+ transform: {
398
+ isExpanded: {
399
+ default: 'rotate(90deg)',
400
+ isRTL: 'rotate(-90deg)'
401
+ }
402
+ },
403
+ padding: 0,
404
+ transition: 'default',
405
+ backgroundColor: 'transparent',
406
+ borderStyle: 'none',
407
+ disableTapHighlight: true,
408
+ visibility: {
409
+ isHidden: 'hidden'
410
+ }
411
+ });
412
+
413
+ function ExpandableRowChevron(props: ExpandableRowChevronProps) {
414
+ let expandButtonRef = useRef<HTMLButtonElement>(null);
415
+ let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);
416
+ let {isExpanded, isDisabled, scale, isHidden} = fullProps;
417
+ let {direction} = useLocale();
418
+ isDisabled = isDisabled || isHidden;
419
+
420
+ return (
421
+ <Button
422
+ {...props}
423
+ ref={ref}
424
+ slot="chevron"
425
+ // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually "focus" it
426
+ excludeFromTabOrder={isAndroid() && !isDisabled}
427
+ preventFocusOnPress
428
+ className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>
429
+ <Chevron
430
+ className={style({
431
+ scale: {
432
+ direction: {
433
+ ltr: '1',
434
+ rtl: '-1'
435
+ }
436
+ },
437
+ '--iconPrimary': {
438
+ type: 'fill',
439
+ value: 'currentColor'
440
+ }
441
+ })({direction})} />
442
+ </Button>
443
+ );
444
+ }
445
+
446
+ /**
447
+ * A tree view provides users with a way to navigate nested hierarchical information.
448
+ */
449
+ const _TreeView = forwardRef(TreeView);
450
+ export {_TreeView as TreeView};
package/src/index.ts CHANGED
@@ -76,6 +76,7 @@ export {TextArea, TextField, TextAreaContext, TextFieldContext} from './TextFiel
76
76
  export {ToggleButton, ToggleButtonContext} from './ToggleButton';
77
77
  export {ToggleButtonGroup, ToggleButtonGroupContext} from './ToggleButtonGroup';
78
78
  export {Tooltip, TooltipTrigger} from './Tooltip';
79
+ export {TreeView, TreeViewItem, TreeViewItemContent} from './TreeView';
79
80
 
80
81
  export {pressScale} from './pressScale';
81
82
 
@@ -144,4 +145,5 @@ export type {TextFieldProps, TextAreaProps} from './TextField';
144
145
  export type {ToggleButtonProps} from './ToggleButton';
145
146
  export type {ToggleButtonGroupProps} from './ToggleButtonGroup';
146
147
  export type {TooltipProps} from './Tooltip';
148
+ export type {TreeViewProps, TreeViewItemProps, TreeViewItemContentProps} from './TreeView';
147
149
  export type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';
@@ -146,7 +146,6 @@ const allowedOverrides = [
146
146
  'marginBottom',
147
147
  'marginX',
148
148
  'marginY',
149
- 'flex',
150
149
  'flexGrow',
151
150
  'flexShrink',
152
151
  'flexBasis',
@@ -37,9 +37,7 @@ describe('style-macro', () => {
37
37
  });
38
38
 
39
39
  expect(css).toMatchInlineSnapshot(`
40
- ".\\.:not(#a#b) { all: revert-layer }
41
-
42
- @layer _.a, _.b, _.c, UNSAFE_overrides;
40
+ "@layer _.a, _.b, _.c;
43
41
 
44
42
  @layer _.b {
45
43
  .A-13alit4c {
@@ -61,7 +59,7 @@ describe('style-macro', () => {
61
59
 
62
60
  "
63
61
  `);
64
- expect(js).toMatchInlineSnapshot('" . A-13alit4c A-13alit4ed"');
62
+ expect(js).toMatchInlineSnapshot('" A-13alit4c A-13alit4ed"');
65
63
  });
66
64
 
67
65
  it('should support self references', () => {
@@ -72,9 +70,7 @@ describe('style-macro', () => {
72
70
  });
73
71
 
74
72
  expect(css).toMatchInlineSnapshot(`
75
- ".\\.:not(#a#b) { all: revert-layer }
76
-
77
- @layer _.a, _.b, UNSAFE_overrides;
73
+ "@layer _.a, _.b;
78
74
 
79
75
  @layer _.a {
80
76
  .uc {