@react-spectrum/s2 3.0.0-nightly-56da82e3e-250212 → 3.0.0-nightly-3dbdc1e8e-250214

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 (267) hide show
  1. package/dist/Accordion.cjs +3 -3
  2. package/dist/Accordion.css +2 -2
  3. package/dist/Accordion.mjs +3 -3
  4. package/dist/ActionBar.cjs +47 -47
  5. package/dist/ActionBar.css +51 -51
  6. package/dist/ActionBar.mjs +47 -47
  7. package/dist/ActionButton.cjs +97 -97
  8. package/dist/ActionButton.css +96 -96
  9. package/dist/ActionButton.mjs +97 -97
  10. package/dist/ActionButtonGroup.cjs +11 -11
  11. package/dist/ActionButtonGroup.css +9 -9
  12. package/dist/ActionButtonGroup.mjs +11 -11
  13. package/dist/AlertDialog.cjs +3 -3
  14. package/dist/AlertDialog.css +3 -3
  15. package/dist/AlertDialog.mjs +3 -3
  16. package/dist/Avatar.cjs +17 -17
  17. package/dist/Avatar.css +14 -14
  18. package/dist/Avatar.mjs +17 -17
  19. package/dist/AvatarGroup.cjs +100 -100
  20. package/dist/AvatarGroup.css +34 -34
  21. package/dist/AvatarGroup.mjs +100 -100
  22. package/dist/Badge.cjs +68 -92
  23. package/dist/Badge.cjs.map +1 -1
  24. package/dist/Badge.css +92 -164
  25. package/dist/Badge.css.map +1 -1
  26. package/dist/Badge.mjs +68 -92
  27. package/dist/Badge.mjs.map +1 -1
  28. package/dist/Breadcrumbs.cjs +115 -115
  29. package/dist/Breadcrumbs.css +89 -89
  30. package/dist/Breadcrumbs.mjs +115 -115
  31. package/dist/Button.cjs +152 -236
  32. package/dist/Button.cjs.map +1 -1
  33. package/dist/Button.css +165 -309
  34. package/dist/Button.css.map +1 -1
  35. package/dist/Button.mjs +152 -236
  36. package/dist/Button.mjs.map +1 -1
  37. package/dist/ButtonGroup.cjs +19 -19
  38. package/dist/ButtonGroup.css +15 -15
  39. package/dist/ButtonGroup.mjs +19 -19
  40. package/dist/Card.cjs +261 -264
  41. package/dist/Card.cjs.map +1 -1
  42. package/dist/Card.css +198 -210
  43. package/dist/Card.css.map +1 -1
  44. package/dist/Card.mjs +261 -264
  45. package/dist/Card.mjs.map +1 -1
  46. package/dist/CardView.cjs +15 -15
  47. package/dist/CardView.css +18 -18
  48. package/dist/CardView.mjs +15 -15
  49. package/dist/CenterBaseline.cjs +1 -1
  50. package/dist/CenterBaseline.css +2 -2
  51. package/dist/CenterBaseline.mjs +1 -1
  52. package/dist/Checkbox.cjs +73 -124
  53. package/dist/Checkbox.cjs.map +1 -1
  54. package/dist/Checkbox.css +81 -201
  55. package/dist/Checkbox.css.map +1 -1
  56. package/dist/Checkbox.mjs +73 -124
  57. package/dist/Checkbox.mjs.map +1 -1
  58. package/dist/CheckboxGroup.cjs +49 -49
  59. package/dist/CheckboxGroup.css +41 -41
  60. package/dist/CheckboxGroup.mjs +49 -49
  61. package/dist/ClearButton.cjs +15 -15
  62. package/dist/ClearButton.css +17 -17
  63. package/dist/ClearButton.mjs +15 -15
  64. package/dist/CloseButton.cjs +35 -35
  65. package/dist/CloseButton.css +33 -33
  66. package/dist/CloseButton.mjs +35 -35
  67. package/dist/ColorArea.cjs +22 -22
  68. package/dist/ColorArea.css +15 -15
  69. package/dist/ColorArea.mjs +22 -22
  70. package/dist/ColorField.cjs +38 -38
  71. package/dist/ColorField.css +32 -32
  72. package/dist/ColorField.mjs +38 -38
  73. package/dist/ColorHandle.cjs +21 -27
  74. package/dist/ColorHandle.cjs.map +1 -1
  75. package/dist/ColorHandle.css +45 -93
  76. package/dist/ColorHandle.css.map +1 -1
  77. package/dist/ColorHandle.mjs +21 -27
  78. package/dist/ColorHandle.mjs.map +1 -1
  79. package/dist/ColorSlider.cjs +52 -52
  80. package/dist/ColorSlider.css +51 -51
  81. package/dist/ColorSlider.mjs +52 -52
  82. package/dist/ColorSwatch.cjs +24 -27
  83. package/dist/ColorSwatch.cjs.map +1 -1
  84. package/dist/ColorSwatch.css +29 -41
  85. package/dist/ColorSwatch.css.map +1 -1
  86. package/dist/ColorSwatch.mjs +24 -27
  87. package/dist/ColorSwatch.mjs.map +1 -1
  88. package/dist/ColorSwatchPicker.cjs +23 -23
  89. package/dist/ColorSwatchPicker.css +48 -60
  90. package/dist/ColorSwatchPicker.css.map +1 -1
  91. package/dist/ColorSwatchPicker.mjs +23 -23
  92. package/dist/ColorWheel.cjs +22 -22
  93. package/dist/ColorWheel.css +16 -16
  94. package/dist/ColorWheel.mjs +22 -22
  95. package/dist/ComboBox.cjs +80 -80
  96. package/dist/ComboBox.css +88 -88
  97. package/dist/ComboBox.mjs +80 -80
  98. package/dist/ContextualHelp.cjs +5 -5
  99. package/dist/ContextualHelp.css +38 -38
  100. package/dist/ContextualHelp.mjs +5 -5
  101. package/dist/CustomDialog.cjs +31 -31
  102. package/dist/CustomDialog.css +25 -25
  103. package/dist/CustomDialog.mjs +31 -31
  104. package/dist/Dialog.cjs +17 -17
  105. package/dist/Dialog.css +64 -64
  106. package/dist/Dialog.mjs +17 -17
  107. package/dist/Disclosure.cjs +108 -111
  108. package/dist/Disclosure.cjs.map +1 -1
  109. package/dist/Disclosure.css +112 -124
  110. package/dist/Disclosure.css.map +1 -1
  111. package/dist/Disclosure.mjs +108 -111
  112. package/dist/Disclosure.mjs.map +1 -1
  113. package/dist/Divider.cjs +26 -26
  114. package/dist/Divider.css +16 -16
  115. package/dist/Divider.mjs +26 -26
  116. package/dist/DropZone.cjs +47 -56
  117. package/dist/DropZone.cjs.map +1 -1
  118. package/dist/DropZone.css +56 -80
  119. package/dist/DropZone.css.map +1 -1
  120. package/dist/DropZone.mjs +47 -56
  121. package/dist/DropZone.mjs.map +1 -1
  122. package/dist/Field.cjs +150 -204
  123. package/dist/Field.cjs.map +1 -1
  124. package/dist/Field.css +150 -246
  125. package/dist/Field.css.map +1 -1
  126. package/dist/Field.mjs +150 -204
  127. package/dist/Field.mjs.map +1 -1
  128. package/dist/Form.cjs +10 -10
  129. package/dist/Form.css +9 -9
  130. package/dist/Form.mjs +10 -10
  131. package/dist/FullscreenDialog.cjs +5 -5
  132. package/dist/FullscreenDialog.css +72 -72
  133. package/dist/FullscreenDialog.mjs +5 -5
  134. package/dist/IllustratedMessage.cjs +134 -134
  135. package/dist/IllustratedMessage.css +69 -69
  136. package/dist/IllustratedMessage.mjs +134 -134
  137. package/dist/Image.cjs +12 -12
  138. package/dist/Image.css +13 -13
  139. package/dist/Image.mjs +12 -12
  140. package/dist/InlineAlert.cjs +77 -104
  141. package/dist/InlineAlert.cjs.map +1 -1
  142. package/dist/InlineAlert.css +77 -149
  143. package/dist/InlineAlert.css.map +1 -1
  144. package/dist/InlineAlert.mjs +77 -104
  145. package/dist/InlineAlert.mjs.map +1 -1
  146. package/dist/Link.cjs +31 -31
  147. package/dist/Link.css +30 -30
  148. package/dist/Link.mjs +31 -31
  149. package/dist/Menu.cjs +269 -269
  150. package/dist/Menu.css +155 -155
  151. package/dist/Menu.mjs +269 -269
  152. package/dist/Meter.cjs +85 -85
  153. package/dist/Meter.css +81 -81
  154. package/dist/Meter.mjs +85 -85
  155. package/dist/Modal.cjs +48 -48
  156. package/dist/Modal.css +46 -46
  157. package/dist/Modal.mjs +48 -48
  158. package/dist/NumberField.cjs +115 -115
  159. package/dist/NumberField.css +114 -114
  160. package/dist/NumberField.mjs +115 -115
  161. package/dist/Picker.cjs +177 -195
  162. package/dist/Picker.cjs.map +1 -1
  163. package/dist/Picker.css +164 -224
  164. package/dist/Picker.css.map +1 -1
  165. package/dist/Picker.mjs +177 -195
  166. package/dist/Picker.mjs.map +1 -1
  167. package/dist/Popover.cjs +79 -85
  168. package/dist/Popover.cjs.map +1 -1
  169. package/dist/Popover.css +65 -89
  170. package/dist/Popover.css.map +1 -1
  171. package/dist/Popover.mjs +79 -85
  172. package/dist/Popover.mjs.map +1 -1
  173. package/dist/ProgressBar.cjs +98 -98
  174. package/dist/ProgressBar.css +92 -92
  175. package/dist/ProgressBar.mjs +98 -98
  176. package/dist/ProgressCircle.cjs +17 -17
  177. package/dist/ProgressCircle.css +15 -15
  178. package/dist/ProgressCircle.mjs +17 -17
  179. package/dist/Provider.cjs +4 -4
  180. package/dist/Provider.css +5 -5
  181. package/dist/Provider.mjs +4 -4
  182. package/dist/Radio.cjs +80 -152
  183. package/dist/Radio.cjs.map +1 -1
  184. package/dist/Radio.css +96 -240
  185. package/dist/Radio.css.map +1 -1
  186. package/dist/Radio.mjs +80 -152
  187. package/dist/Radio.mjs.map +1 -1
  188. package/dist/RadioGroup.cjs +47 -47
  189. package/dist/RadioGroup.css +41 -41
  190. package/dist/RadioGroup.mjs +47 -47
  191. package/dist/SearchField.cjs +42 -42
  192. package/dist/SearchField.css +47 -47
  193. package/dist/SearchField.mjs +42 -42
  194. package/dist/SegmentedControl.cjs +89 -101
  195. package/dist/SegmentedControl.cjs.map +1 -1
  196. package/dist/SegmentedControl.css +92 -140
  197. package/dist/SegmentedControl.css.map +1 -1
  198. package/dist/SegmentedControl.mjs +89 -101
  199. package/dist/SegmentedControl.mjs.map +1 -1
  200. package/dist/Slider.cjs +196 -229
  201. package/dist/Slider.cjs.map +1 -1
  202. package/dist/Slider.css +149 -221
  203. package/dist/Slider.css.map +1 -1
  204. package/dist/Slider.mjs +196 -229
  205. package/dist/Slider.mjs.map +1 -1
  206. package/dist/StatusLight.cjs +56 -56
  207. package/dist/StatusLight.css +59 -59
  208. package/dist/StatusLight.mjs +56 -56
  209. package/dist/Switch.cjs +74 -107
  210. package/dist/Switch.cjs.map +1 -1
  211. package/dist/Switch.css +69 -141
  212. package/dist/Switch.css.map +1 -1
  213. package/dist/Switch.mjs +74 -107
  214. package/dist/Switch.mjs.map +1 -1
  215. package/dist/TableView.cjs +253 -280
  216. package/dist/TableView.cjs.map +1 -1
  217. package/dist/TableView.css +163 -199
  218. package/dist/TableView.css.map +1 -1
  219. package/dist/TableView.mjs +253 -280
  220. package/dist/TableView.mjs.map +1 -1
  221. package/dist/Tabs.cjs +108 -108
  222. package/dist/Tabs.css +81 -81
  223. package/dist/Tabs.mjs +108 -108
  224. package/dist/TabsPicker.cjs +105 -105
  225. package/dist/TabsPicker.css +111 -111
  226. package/dist/TabsPicker.mjs +105 -105
  227. package/dist/TagGroup.cjs +148 -148
  228. package/dist/TagGroup.css +134 -134
  229. package/dist/TagGroup.mjs +148 -148
  230. package/dist/TextField.cjs +59 -59
  231. package/dist/TextField.css +62 -62
  232. package/dist/TextField.mjs +59 -59
  233. package/dist/ToggleButton.cjs +3 -3
  234. package/dist/ToggleButton.css +12 -12
  235. package/dist/ToggleButton.mjs +3 -3
  236. package/dist/Tooltip.cjs +57 -60
  237. package/dist/Tooltip.cjs.map +1 -1
  238. package/dist/Tooltip.css +71 -83
  239. package/dist/Tooltip.css.map +1 -1
  240. package/dist/Tooltip.mjs +57 -60
  241. package/dist/Tooltip.mjs.map +1 -1
  242. package/dist/TreeView.cjs +199 -248
  243. package/dist/TreeView.cjs.map +1 -1
  244. package/dist/TreeView.css +131 -175
  245. package/dist/TreeView.css.map +1 -1
  246. package/dist/TreeView.mjs +202 -248
  247. package/dist/TreeView.mjs.map +1 -1
  248. package/dist/main.cjs +1 -0
  249. package/dist/main.cjs.map +1 -1
  250. package/dist/module.mjs +2 -2
  251. package/dist/module.mjs.map +1 -1
  252. package/dist/types.d.ts +4 -1
  253. package/dist/types.d.ts.map +1 -1
  254. package/icons/Skeleton.cjs +2 -2
  255. package/icons/Skeleton.css +5 -5
  256. package/icons/Skeleton.mjs +2 -2
  257. package/package.json +21 -21
  258. package/src/TreeView.tsx +66 -134
  259. package/src/index.ts +1 -1
  260. package/style/__tests__/style-macro.test.js +18 -18
  261. package/style/dist/spectrum-theme.cjs +10 -20
  262. package/style/dist/spectrum-theme.cjs.map +1 -1
  263. package/style/dist/spectrum-theme.mjs +10 -20
  264. package/style/dist/spectrum-theme.mjs.map +1 -1
  265. package/style/dist/types.d.ts +0 -4
  266. package/style/dist/types.d.ts.map +1 -1
  267. package/style/spectrum-theme.ts +11 -19
@@ -16,24 +16,24 @@
16
16
  color: #0000;
17
17
  }
18
18
 
19
- ._wb {
19
+ ._tb {
20
20
  -webkit-box-decoration-break: clone;
21
21
  box-decoration-break: clone;
22
22
  }
23
23
 
24
- ._zb {
24
+ ._wb {
25
25
  border-start-start-radius: .25rem;
26
26
  }
27
27
 
28
- ._Ab {
28
+ ._xb {
29
29
  border-start-end-radius: .25rem;
30
30
  }
31
31
 
32
- ._Bb {
32
+ ._yb {
33
33
  border-end-start-radius: .25rem;
34
34
  }
35
35
 
36
- ._Cb {
36
+ ._zb {
37
37
  border-end-end-radius: .25rem;
38
38
  }
39
39
  }
@@ -81,7 +81,7 @@ function $5ad421ec19460c48$export$cb6ddd830302c2a8({ children: children }) {
81
81
  // @ts-ignore - compatibility with React < 19
82
82
  inert: (0, $cHM3s$inertValue)(true),
83
83
  ref: $5ad421ec19460c48$export$6b288fe07640c94c(true),
84
- className: $5ad421ec19460c48$export$d2353276f167b21f + " aa _wb _zb _Ab _Bb _Cb",
84
+ className: $5ad421ec19460c48$export$d2353276f167b21f + " aa _tb _wb _xb _yb _zb",
85
85
  children: children
86
86
  });
87
87
  }
@@ -101,7 +101,7 @@ function $5ad421ec19460c48$export$6069cbe61f690103({ children: children }) {
101
101
  }
102
102
  function $5ad421ec19460c48$export$4b7803c08fe9a32b(styles) {
103
103
  let isSkeleton = (0, $cHM3s$useContext)($5ad421ec19460c48$export$74e166679b1f49ee);
104
- if (isSkeleton) return (0, $feb886035e0d4633$export$e618dc39ac9ad607)(" _zb _Ab _Bb _Cb", styles);
104
+ if (isSkeleton) return (0, $feb886035e0d4633$export$e618dc39ac9ad607)(" _wb _xb _yb _zb", styles);
105
105
  return styles || '';
106
106
  }
107
107
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/s2",
3
- "version": "3.0.0-nightly-56da82e3e-250212",
3
+ "version": "3.0.0-nightly-3dbdc1e8e-250214",
4
4
  "description": "Spectrum 2 UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -57,27 +57,27 @@
57
57
  "src"
58
58
  ],
59
59
  "dependencies": {
60
- "@react-aria/collections": "3.0.0-nightly-56da82e3e-250212",
61
- "@react-aria/focus": "3.0.0-nightly-56da82e3e-250212",
62
- "@react-aria/i18n": "3.0.0-nightly-56da82e3e-250212",
63
- "@react-aria/interactions": "3.0.0-nightly-56da82e3e-250212",
64
- "@react-aria/live-announcer": "3.0.0-nightly-56da82e3e-250212",
65
- "@react-aria/tree": "3.0.0-nightly-56da82e3e-250212",
66
- "@react-aria/utils": "3.0.0-nightly-56da82e3e-250212",
67
- "@react-spectrum/utils": "3.0.0-nightly-56da82e3e-250212",
68
- "@react-stately/layout": "3.0.0-nightly-56da82e3e-250212",
69
- "@react-stately/utils": "3.0.0-nightly-56da82e3e-250212",
70
- "@react-stately/virtualizer": "3.0.0-nightly-56da82e3e-250212",
71
- "@react-types/color": "3.0.0-nightly-56da82e3e-250212",
72
- "@react-types/dialog": "3.0.0-nightly-56da82e3e-250212",
73
- "@react-types/grid": "3.0.0-nightly-56da82e3e-250212",
74
- "@react-types/provider": "3.0.0-nightly-56da82e3e-250212",
75
- "@react-types/shared": "3.0.0-nightly-56da82e3e-250212",
76
- "@react-types/table": "3.0.0-nightly-56da82e3e-250212",
77
- "@react-types/textfield": "3.0.0-nightly-56da82e3e-250212",
60
+ "@react-aria/collections": "3.0.0-nightly-3dbdc1e8e-250214",
61
+ "@react-aria/focus": "3.0.0-nightly-3dbdc1e8e-250214",
62
+ "@react-aria/i18n": "3.0.0-nightly-3dbdc1e8e-250214",
63
+ "@react-aria/interactions": "3.0.0-nightly-3dbdc1e8e-250214",
64
+ "@react-aria/live-announcer": "3.0.0-nightly-3dbdc1e8e-250214",
65
+ "@react-aria/tree": "3.0.0-nightly-3dbdc1e8e-250214",
66
+ "@react-aria/utils": "3.0.0-nightly-3dbdc1e8e-250214",
67
+ "@react-spectrum/utils": "3.0.0-nightly-3dbdc1e8e-250214",
68
+ "@react-stately/layout": "3.0.0-nightly-3dbdc1e8e-250214",
69
+ "@react-stately/utils": "3.0.0-nightly-3dbdc1e8e-250214",
70
+ "@react-stately/virtualizer": "3.0.0-nightly-3dbdc1e8e-250214",
71
+ "@react-types/color": "3.0.0-nightly-3dbdc1e8e-250214",
72
+ "@react-types/dialog": "3.0.0-nightly-3dbdc1e8e-250214",
73
+ "@react-types/grid": "3.0.0-nightly-3dbdc1e8e-250214",
74
+ "@react-types/provider": "3.0.0-nightly-3dbdc1e8e-250214",
75
+ "@react-types/shared": "3.0.0-nightly-3dbdc1e8e-250214",
76
+ "@react-types/table": "3.0.0-nightly-3dbdc1e8e-250214",
77
+ "@react-types/textfield": "3.0.0-nightly-3dbdc1e8e-250214",
78
78
  "csstype": "^3.0.2",
79
- "react-aria": "3.0.0-nightly-56da82e3e-250212",
80
- "react-aria-components": "3.0.0-nightly-56da82e3e-250212"
79
+ "react-aria": "3.0.0-nightly-3dbdc1e8e-250214",
80
+ "react-aria-components": "3.0.0-nightly-3dbdc1e8e-250214"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "react": "^18.0.0 || ^19.0.0-rc.1",
package/src/TreeView.tsx CHANGED
@@ -15,10 +15,10 @@ import {ActionMenuContext} from './ActionMenu';
15
15
  import {
16
16
  Button,
17
17
  ButtonContext,
18
- Collection,
19
18
  Provider,
20
19
  TreeItemProps as RACTreeItemProps,
21
20
  TreeProps as RACTreeProps,
21
+ TreeItemContentProps,
22
22
  UNSTABLE_ListLayout,
23
23
  UNSTABLE_Tree,
24
24
  UNSTABLE_TreeItem,
@@ -35,8 +35,8 @@ import {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-u
35
35
  import {IconContext} from './Icon';
36
36
  import {isAndroid} from '@react-aria/utils';
37
37
  import {raw} from '../style/style-macro' with {type: 'macro'};
38
- import React, {createContext, forwardRef, isValidElement, JSXElementConstructor, ReactElement, useContext, useMemo, useRef} from 'react';
39
- import {Text, TextContext} from './Content';
38
+ import React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useMemo, useRef} from 'react';
39
+ import {TextContext} from './Content';
40
40
  import {useDOMRef} from '@react-spectrum/utils';
41
41
  import {useLocale} from 'react-aria';
42
42
  import {useScale} from './utils';
@@ -66,10 +66,6 @@ interface TreeRendererContextValue {
66
66
  }
67
67
  const TreeRendererContext = createContext<TreeRendererContextValue>({});
68
68
 
69
- function useTreeRendererContext(): TreeRendererContextValue {
70
- return useContext(TreeRendererContext)!;
71
- }
72
-
73
69
 
74
70
  let InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});
75
71
 
@@ -226,66 +222,21 @@ const treeCellGrid = style({
226
222
  forcedColors: 'Highlight'
227
223
  }
228
224
  },
229
- borderTopColor: {
230
- default: 'transparent',
231
- isSelected: {
232
- isFirst: 'transparent'
233
- },
234
- isDetached: {
235
- default: 'transparent',
236
- isSelected: '--rowSelectedBorderColor'
237
- }
238
- },
239
- borderInlineEndColor: {
240
- default: 'transparent',
241
- isSelected: 'transparent',
242
- isDetached: {
243
- default: 'transparent',
244
- isSelected: '--rowSelectedBorderColor'
245
- }
246
- },
247
- borderBottomColor: {
248
- default: 'transparent',
249
- isSelected: 'transparent',
250
- isNextSelected: 'transparent',
251
- isNextFocused: 'transparent',
225
+ borderColor: {
252
226
  isDetached: {
253
227
  default: 'transparent',
254
228
  isSelected: '--rowSelectedBorderColor'
255
229
  }
256
230
  },
257
- borderInlineStartColor: {
258
- default: 'transparent',
259
- isSelected: 'transparent',
260
- isDetached: {
261
- default: 'transparent',
262
- isSelected: '--rowSelectedBorderColor'
263
- }
264
- },
265
- borderTopWidth: {
266
- default: 0,
267
- isFirst: {
268
- default: 1,
269
- forcedColors: 0
270
- },
271
- isDetached: 1
272
- },
273
- borderBottomWidth: {
274
- default: 0,
275
- isDetached: 1
276
- },
277
- borderStartWidth: {
278
- default: 0,
279
- isDetached: 1
280
- },
281
- borderEndWidth: {
282
- default: 0,
231
+ borderWidth: {
283
232
  isDetached: 1
284
233
  },
285
234
  borderRadius: {
286
235
  isDetached: 'default'
287
236
  },
288
- borderStyle: 'solid'
237
+ borderStyle: {
238
+ isDetached: 'solid'
239
+ }
289
240
  });
290
241
 
291
242
  const treeCheckbox = style({
@@ -348,92 +299,73 @@ const treeRowFocusIndicator = raw(`
348
299
  }`
349
300
  );
350
301
 
351
-
352
302
  export const TreeViewItem = <T extends object>(props: TreeViewItemProps<T>) => {
353
303
  let {
354
- children,
355
- childItems,
356
- hasChildItems,
357
304
  href
358
305
  } = props;
359
-
360
- let content;
361
- let nestedRows;
362
- let {renderer} = useTreeRendererContext();
363
306
  let {isDetached, isEmphasized} = useContext(InternalTreeContext);
364
- let scale = useScale();
365
-
366
- if (typeof children === 'string') {
367
- content = <Text>{children}</Text>;
368
- } else {
369
- content = [];
370
- nestedRows = [];
371
- React.Children.forEach(children, node => {
372
- if (isValidElement(node) && node.type === TreeViewItem) {
373
- nestedRows.push(node);
374
- } else {
375
- content.push(node);
376
- }
377
- });
378
- }
379
-
380
- if (childItems != null && renderer) {
381
- nestedRows = (
382
- <Collection items={childItems}>
383
- {renderer}
384
- </Collection>
385
- );
386
- }
387
307
 
388
308
  return (
389
309
  <UNSTABLE_TreeItem
390
310
  {...props}
391
- className={(renderProps) => treeRow({...renderProps, isLink: !!href, isEmphasized}) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')}>
392
- <UNSTABLE_TreeItemContent>
393
- {({isExpanded, hasChildRows, selectionMode, selectionBehavior, isDisabled, isFocusVisible, isSelected, id, state}) => {
394
- let isNextSelected = false;
395
- let isNextFocused = false;
396
- let keyAfter = state.collection.getKeyAfter(id);
397
- if (keyAfter != null) {
398
- isNextSelected = state.selectionManager.isSelected(keyAfter);
399
- }
400
- let isFirst = state.collection.getFirstKey() === id;
401
- return (
402
- <div className={treeCellGrid({isDisabled, isNextSelected, isSelected, isFirst, isNextFocused, isDetached})}>
403
- {selectionMode !== 'none' && selectionBehavior === 'toggle' && (
404
- // TODO: add transition?
405
- <div className={treeCheckbox}>
406
- <Checkbox
407
- isEmphasized={isEmphasized}
408
- slot="selection" />
409
- </div>
410
- )}
411
- <div
412
- className={style({
413
- gridArea: 'level-padding',
414
- width: '[calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))]'
415
- })} />
416
- {/* 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 */}
417
- <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} scale={scale} isHidden={!(hasChildRows || hasChildItems)} />
418
- <Provider
419
- values={[
420
- [TextContext, {styles: treeContent}],
421
- [IconContext, {
422
- render: centerBaseline({slot: 'icon', styles: treeIcon}),
423
- styles: style({size: fontRelative(20), flexShrink: 0})
424
- }],
425
- [ActionButtonGroupContext, {styles: treeActions}],
426
- [ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]
427
- ]}>
428
- {content}
429
- </Provider>
430
- {isFocusVisible && isDetached && <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />}
431
- </div>
432
- );
433
- }}
434
- </UNSTABLE_TreeItemContent>
435
- {nestedRows}
436
- </UNSTABLE_TreeItem>
311
+ className={(renderProps) => treeRow({
312
+ ...renderProps,
313
+ isLink: !!href, isEmphasized
314
+ }) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')} />
315
+ );
316
+ };
317
+
318
+ export const TreeItemContent = (props: Omit<TreeItemContentProps, 'children'> & {children: ReactNode}) => {
319
+ let {
320
+ children
321
+ } = props;
322
+ let {isDetached, isEmphasized} = useContext(InternalTreeContext);
323
+ let scale = useScale();
324
+
325
+ return (
326
+ <UNSTABLE_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
+ </UNSTABLE_TreeItemContent>
437
369
  );
438
370
  };
439
371
 
package/src/index.ts CHANGED
@@ -76,7 +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} from './TreeView';
79
+ export {TreeView, TreeViewItem, TreeItemContent} from './TreeView';
80
80
 
81
81
  export {pressScale} from './pressScale';
82
82
 
@@ -40,7 +40,7 @@ describe('style-macro', () => {
40
40
  "@layer _.a, _.b, _.c;
41
41
 
42
42
  @layer _.b {
43
- .D-13alit4c {
43
+ .A-13alit4c {
44
44
  &:first-child {
45
45
  margin-top: 0.25rem;
46
46
  }
@@ -49,7 +49,7 @@ describe('style-macro', () => {
49
49
 
50
50
  @layer _.c.e {
51
51
  @media (min-width: 1024px) {
52
- .D-13alit4ed {
52
+ .A-13alit4ed {
53
53
  &:first-child {
54
54
  margin-top: 0.5rem;
55
55
  }
@@ -59,7 +59,7 @@ describe('style-macro', () => {
59
59
 
60
60
  "
61
61
  `);
62
- expect(js).toMatchInlineSnapshot('" D-13alit4c D-13alit4ed"');
62
+ expect(js).toMatchInlineSnapshot('" A-13alit4c A-13alit4ed"');
63
63
  });
64
64
 
65
65
  it('should support self references', () => {
@@ -73,48 +73,48 @@ describe('style-macro', () => {
73
73
  "@layer _.a, _.b;
74
74
 
75
75
  @layer _.a {
76
- .tc {
76
+ .uc {
77
77
  border-top-width: 2px;
78
78
  }
79
79
 
80
80
 
81
- .uc {
81
+ .vc {
82
82
  border-bottom-width: 2px;
83
83
  }
84
84
 
85
85
 
86
- .r-375tox {
87
- border-inline-start-width: var(--r);
86
+ .s-375toy {
87
+ border-inline-start-width: var(--s);
88
88
  }
89
89
 
90
90
 
91
- .sc {
91
+ .tc {
92
92
  border-inline-end-width: 2px;
93
93
  }
94
94
 
95
95
 
96
- .F-375tnp {
97
- padding-inline-start: var(--F);
96
+ .C-375tnm {
97
+ padding-inline-start: var(--C);
98
98
  }
99
99
 
100
100
 
101
- .GI {
102
- padding-inline-end: calc(var(--j, var(--n)) * 3 / 8);
101
+ .DI {
102
+ padding-inline-end: calc(var(--k, var(--o)) * 3 / 8);
103
103
  }
104
104
 
105
105
 
106
- .k-4s570k {
107
- width: calc(200px - var(--r) - var(--F));
106
+ .l-4s570k {
107
+ width: calc(200px - var(--s) - var(--C));
108
108
  }
109
109
 
110
110
 
111
- .-_375tox_r-c {
112
- --r: 2px;
111
+ .-_375toy_s-c {
112
+ --s: 2px;
113
113
  }
114
114
 
115
115
 
116
- .-_375tnp_F-I {
117
- --F: calc(var(--j, var(--n)) * 3 / 8);
116
+ .-_375tnm_C-I {
117
+ --C: calc(var(--k, var(--o)) * 3 / 8);
118
118
  }
119
119
  }
120
120
 
@@ -669,16 +669,6 @@ const $7dddb03c6ef7d79c$var$borderWidth = {
669
669
  2: "2px",
670
670
  4: "4px"
671
671
  };
672
- const $7dddb03c6ef7d79c$var$borderColor = (0, $b3643cb9d2948e30$exports.createColorProperty)({
673
- ...$7dddb03c6ef7d79c$var$color,
674
- negative: {
675
- default: "light-dark(rgb(215, 50, 32), rgb(252, 67, 46))",
676
- isHovered: "light-dark(rgb(183, 40, 24), rgb(255, 103, 86))",
677
- isFocusVisible: "light-dark(rgb(183, 40, 24), rgb(255, 103, 86))",
678
- isPressed: "light-dark(rgb(156, 33, 19), rgb(255, 134, 120))"
679
- },
680
- disabled: "light-dark(rgb(218, 218, 218), rgb(57, 57, 57))"
681
- });
682
672
  const $7dddb03c6ef7d79c$var$radius = {
683
673
  none: "0px",
684
674
  sm: $7dddb03c6ef7d79c$var$pxToRem("4px"),
@@ -1053,6 +1043,16 @@ const $7dddb03c6ef7d79c$export$1d567c320f4763bc = (0, $b3643cb9d2948e30$exports.
1053
1043
  pasteboard: "light-dark(rgb(233, 233, 233), rgb(17, 17, 17))",
1054
1044
  elevated: "light-dark(rgb(255, 255, 255), rgb(34, 34, 34))"
1055
1045
  }),
1046
+ borderColor: (0, $b3643cb9d2948e30$exports.createColorProperty)({
1047
+ ...$7dddb03c6ef7d79c$var$color,
1048
+ negative: {
1049
+ default: "light-dark(rgb(215, 50, 32), rgb(252, 67, 46))",
1050
+ isHovered: "light-dark(rgb(183, 40, 24), rgb(255, 103, 86))",
1051
+ isFocusVisible: "light-dark(rgb(183, 40, 24), rgb(255, 103, 86))",
1052
+ isPressed: "light-dark(rgb(156, 33, 19), rgb(255, 134, 120))"
1053
+ },
1054
+ disabled: "light-dark(rgb(218, 218, 218), rgb(57, 57, 57))"
1055
+ }),
1056
1056
  outlineColor: (0, $b3643cb9d2948e30$exports.createColorProperty)({
1057
1057
  ...$7dddb03c6ef7d79c$var$color,
1058
1058
  'focus-ring': {
@@ -1125,10 +1125,6 @@ const $7dddb03c6ef7d79c$export$1d567c320f4763bc = (0, $b3643cb9d2948e30$exports.
1125
1125
  borderEndWidth: (0, $b3643cb9d2948e30$exports.createRenamedProperty)('borderInlineEndWidth', $7dddb03c6ef7d79c$var$borderWidth),
1126
1126
  borderTopWidth: $7dddb03c6ef7d79c$var$borderWidth,
1127
1127
  borderBottomWidth: $7dddb03c6ef7d79c$var$borderWidth,
1128
- borderInlineStartColor: $7dddb03c6ef7d79c$var$borderColor,
1129
- borderInlineEndColor: $7dddb03c6ef7d79c$var$borderColor,
1130
- borderTopColor: $7dddb03c6ef7d79c$var$borderColor,
1131
- borderBottomColor: $7dddb03c6ef7d79c$var$borderColor,
1132
1128
  borderStyle: [
1133
1129
  'solid',
1134
1130
  'dashed',
@@ -1923,12 +1919,6 @@ const $7dddb03c6ef7d79c$export$1d567c320f4763bc = (0, $b3643cb9d2948e30$exports.
1923
1919
  'borderStartWidth',
1924
1920
  'borderEndWidth'
1925
1921
  ],
1926
- borderColor: [
1927
- 'borderTopColor',
1928
- 'borderBottomColor',
1929
- 'borderInlineStartColor',
1930
- 'borderInlineEndColor'
1931
- ],
1932
1922
  borderXWidth: [
1933
1923
  'borderStartWidth',
1934
1924
  'borderEndWidth'