@react-spectrum/s2 0.9.0 → 0.9.1

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 (262) hide show
  1. package/dist/Accordion.cjs +2 -2
  2. package/dist/Accordion.css +2 -2
  3. package/dist/Accordion.mjs +2 -2
  4. package/dist/ActionBar.cjs +60 -60
  5. package/dist/ActionBar.css +59 -59
  6. package/dist/ActionBar.mjs +60 -60
  7. package/dist/ActionButton.cjs +187 -187
  8. package/dist/ActionButton.cjs.map +1 -1
  9. package/dist/ActionButton.css +134 -134
  10. package/dist/ActionButton.css.map +1 -1
  11. package/dist/ActionButton.mjs +187 -187
  12. package/dist/ActionButton.mjs.map +1 -1
  13. package/dist/ActionButtonGroup.cjs +15 -15
  14. package/dist/ActionButtonGroup.css +9 -9
  15. package/dist/ActionButtonGroup.mjs +15 -15
  16. package/dist/Add.cjs +10 -10
  17. package/dist/Add.css +6 -6
  18. package/dist/Add.mjs +10 -10
  19. package/dist/AlertDialog.cjs +3 -3
  20. package/dist/AlertDialog.css +3 -3
  21. package/dist/AlertDialog.mjs +3 -3
  22. package/dist/Asterisk.cjs +6 -6
  23. package/dist/Asterisk.css +4 -4
  24. package/dist/Asterisk.mjs +6 -6
  25. package/dist/Avatar.cjs +14 -14
  26. package/dist/Avatar.css +14 -14
  27. package/dist/Avatar.mjs +14 -14
  28. package/dist/AvatarGroup.cjs +120 -120
  29. package/dist/AvatarGroup.css +37 -37
  30. package/dist/AvatarGroup.mjs +120 -120
  31. package/dist/Badge.cjs +196 -196
  32. package/dist/Badge.css +129 -129
  33. package/dist/Badge.mjs +196 -196
  34. package/dist/Breadcrumbs.cjs +231 -231
  35. package/dist/Breadcrumbs.css +102 -102
  36. package/dist/Breadcrumbs.mjs +231 -231
  37. package/dist/Button.cjs +328 -328
  38. package/dist/Button.cjs.map +1 -1
  39. package/dist/Button.css +176 -176
  40. package/dist/Button.css.map +1 -1
  41. package/dist/Button.mjs +328 -328
  42. package/dist/Button.mjs.map +1 -1
  43. package/dist/ButtonGroup.cjs +20 -20
  44. package/dist/ButtonGroup.css +15 -15
  45. package/dist/ButtonGroup.mjs +20 -20
  46. package/dist/Card.cjs +294 -294
  47. package/dist/Card.css +205 -205
  48. package/dist/Card.mjs +294 -294
  49. package/dist/CardView.cjs +17 -17
  50. package/dist/CardView.css +17 -17
  51. package/dist/CardView.mjs +17 -17
  52. package/dist/CenterBaseline.cjs +1 -1
  53. package/dist/CenterBaseline.css +2 -2
  54. package/dist/CenterBaseline.mjs +1 -1
  55. package/dist/Checkbox.cjs +160 -160
  56. package/dist/Checkbox.css +94 -94
  57. package/dist/Checkbox.mjs +160 -160
  58. package/dist/CheckboxGroup.cjs +43 -43
  59. package/dist/CheckboxGroup.css +41 -41
  60. package/dist/CheckboxGroup.mjs +43 -43
  61. package/dist/Checkmark.cjs +12 -12
  62. package/dist/Checkmark.css +8 -8
  63. package/dist/Checkmark.mjs +12 -12
  64. package/dist/Chevron.cjs +12 -12
  65. package/dist/Chevron.css +10 -10
  66. package/dist/Chevron.mjs +12 -12
  67. package/dist/ClearButton.cjs +29 -29
  68. package/dist/ClearButton.css +29 -29
  69. package/dist/ClearButton.mjs +29 -29
  70. package/dist/CloseButton.cjs +54 -54
  71. package/dist/CloseButton.css +46 -46
  72. package/dist/CloseButton.mjs +54 -54
  73. package/dist/ColorArea.cjs +16 -16
  74. package/dist/ColorArea.css +16 -16
  75. package/dist/ColorArea.mjs +16 -16
  76. package/dist/ColorField.cjs +31 -31
  77. package/dist/ColorField.css +31 -31
  78. package/dist/ColorField.mjs +31 -31
  79. package/dist/ColorHandle.cjs +27 -27
  80. package/dist/ColorHandle.css +42 -42
  81. package/dist/ColorHandle.mjs +27 -27
  82. package/dist/ColorSlider.cjs +108 -108
  83. package/dist/ColorSlider.css +56 -56
  84. package/dist/ColorSlider.mjs +108 -108
  85. package/dist/ColorSwatch.cjs +29 -29
  86. package/dist/ColorSwatch.css +29 -29
  87. package/dist/ColorSwatch.mjs +29 -29
  88. package/dist/ColorSwatchPicker.cjs +27 -27
  89. package/dist/ColorSwatchPicker.css +46 -46
  90. package/dist/ColorSwatchPicker.mjs +27 -27
  91. package/dist/ColorWheel.cjs +26 -26
  92. package/dist/ColorWheel.css +17 -17
  93. package/dist/ColorWheel.mjs +26 -26
  94. package/dist/ComboBox.cjs +378 -376
  95. package/dist/ComboBox.cjs.map +1 -1
  96. package/dist/ComboBox.css +179 -179
  97. package/dist/ComboBox.css.map +1 -1
  98. package/dist/ComboBox.mjs +378 -376
  99. package/dist/ComboBox.mjs.map +1 -1
  100. package/dist/ContextualHelp.cjs +5 -5
  101. package/dist/ContextualHelp.cjs.map +1 -1
  102. package/dist/ContextualHelp.css +49 -49
  103. package/dist/ContextualHelp.css.map +1 -1
  104. package/dist/ContextualHelp.mjs +5 -5
  105. package/dist/ContextualHelp.mjs.map +1 -1
  106. package/dist/Cross.cjs +14 -14
  107. package/dist/Cross.css +10 -10
  108. package/dist/Cross.mjs +14 -14
  109. package/dist/CustomDialog.cjs +25 -25
  110. package/dist/CustomDialog.css +25 -25
  111. package/dist/CustomDialog.mjs +25 -25
  112. package/dist/Dash.cjs +10 -10
  113. package/dist/Dash.css +6 -6
  114. package/dist/Dash.mjs +10 -10
  115. package/dist/Dialog.cjs +17 -17
  116. package/dist/Dialog.css +70 -70
  117. package/dist/Dialog.mjs +17 -17
  118. package/dist/Disclosure.cjs +129 -129
  119. package/dist/Disclosure.css +104 -104
  120. package/dist/Disclosure.mjs +129 -129
  121. package/dist/Divider.cjs +25 -25
  122. package/dist/Divider.css +25 -25
  123. package/dist/Divider.mjs +25 -25
  124. package/dist/DropZone.cjs +58 -58
  125. package/dist/DropZone.css +54 -54
  126. package/dist/DropZone.mjs +58 -58
  127. package/dist/Field.cjs +340 -340
  128. package/dist/Field.cjs.map +1 -1
  129. package/dist/Field.css +144 -144
  130. package/dist/Field.mjs +340 -340
  131. package/dist/Field.mjs.map +1 -1
  132. package/dist/Form.cjs +9 -9
  133. package/dist/Form.css +9 -9
  134. package/dist/Form.mjs +9 -9
  135. package/dist/FullscreenDialog.cjs +5 -5
  136. package/dist/FullscreenDialog.css +79 -79
  137. package/dist/FullscreenDialog.mjs +5 -5
  138. package/dist/IllustratedMessage.cjs +219 -219
  139. package/dist/IllustratedMessage.css +74 -74
  140. package/dist/IllustratedMessage.mjs +219 -219
  141. package/dist/Image.cjs +13 -13
  142. package/dist/Image.css +14 -14
  143. package/dist/Image.mjs +13 -13
  144. package/dist/InlineAlert.cjs +108 -108
  145. package/dist/InlineAlert.css +90 -90
  146. package/dist/InlineAlert.mjs +108 -108
  147. package/dist/Link.cjs +49 -49
  148. package/dist/Link.css +41 -41
  149. package/dist/Link.mjs +49 -49
  150. package/dist/LinkOut.cjs +8 -8
  151. package/dist/LinkOut.css +8 -8
  152. package/dist/LinkOut.mjs +8 -8
  153. package/dist/Menu.cjs +422 -422
  154. package/dist/Menu.css +180 -180
  155. package/dist/Menu.mjs +422 -422
  156. package/dist/Meter.cjs +153 -153
  157. package/dist/Meter.css +95 -95
  158. package/dist/Meter.mjs +153 -153
  159. package/dist/Modal.cjs +58 -58
  160. package/dist/Modal.css +50 -50
  161. package/dist/Modal.mjs +58 -58
  162. package/dist/NotificationBadge.cjs +56 -56
  163. package/dist/NotificationBadge.css +51 -51
  164. package/dist/NotificationBadge.mjs +56 -56
  165. package/dist/NumberField.cjs +114 -114
  166. package/dist/NumberField.css +103 -103
  167. package/dist/NumberField.mjs +114 -114
  168. package/dist/Picker.cjs +273 -271
  169. package/dist/Picker.cjs.map +1 -1
  170. package/dist/Picker.css +169 -169
  171. package/dist/Picker.css.map +1 -1
  172. package/dist/Picker.mjs +273 -271
  173. package/dist/Picker.mjs.map +1 -1
  174. package/dist/Popover.cjs +85 -85
  175. package/dist/Popover.css +66 -66
  176. package/dist/Popover.mjs +85 -85
  177. package/dist/ProgressBar.cjs +163 -163
  178. package/dist/ProgressBar.css +103 -103
  179. package/dist/ProgressBar.mjs +163 -163
  180. package/dist/ProgressCircle.cjs +17 -17
  181. package/dist/ProgressCircle.css +17 -17
  182. package/dist/ProgressCircle.mjs +17 -17
  183. package/dist/Provider.cjs +10 -10
  184. package/dist/Provider.css +9 -9
  185. package/dist/Provider.mjs +10 -10
  186. package/dist/Radio.cjs +144 -144
  187. package/dist/Radio.css +81 -81
  188. package/dist/Radio.mjs +144 -144
  189. package/dist/RadioGroup.cjs +41 -41
  190. package/dist/RadioGroup.css +41 -41
  191. package/dist/RadioGroup.mjs +41 -41
  192. package/dist/SearchField.cjs +41 -41
  193. package/dist/SearchField.css +49 -49
  194. package/dist/SearchField.mjs +41 -41
  195. package/dist/SegmentedControl.cjs +171 -171
  196. package/dist/SegmentedControl.css +120 -120
  197. package/dist/SegmentedControl.mjs +171 -171
  198. package/dist/Slider.cjs +288 -288
  199. package/dist/Slider.css +152 -152
  200. package/dist/Slider.mjs +288 -288
  201. package/dist/StatusLight.cjs +115 -115
  202. package/dist/StatusLight.css +63 -63
  203. package/dist/StatusLight.mjs +115 -115
  204. package/dist/Switch.cjs +152 -152
  205. package/dist/Switch.css +76 -76
  206. package/dist/Switch.mjs +152 -152
  207. package/dist/TableView.cjs +310 -310
  208. package/dist/TableView.css +172 -172
  209. package/dist/TableView.mjs +310 -310
  210. package/dist/Tabs.cjs +113 -110
  211. package/dist/Tabs.cjs.map +1 -1
  212. package/dist/Tabs.css +92 -92
  213. package/dist/Tabs.css.map +1 -1
  214. package/dist/Tabs.mjs +113 -110
  215. package/dist/Tabs.mjs.map +1 -1
  216. package/dist/TabsPicker.cjs +123 -123
  217. package/dist/TabsPicker.css +112 -112
  218. package/dist/TabsPicker.mjs +123 -123
  219. package/dist/TagGroup.cjs +202 -202
  220. package/dist/TagGroup.cjs.map +1 -1
  221. package/dist/TagGroup.css +147 -147
  222. package/dist/TagGroup.css.map +1 -1
  223. package/dist/TagGroup.mjs +202 -202
  224. package/dist/TagGroup.mjs.map +1 -1
  225. package/dist/TextField.cjs +57 -57
  226. package/dist/TextField.css +57 -57
  227. package/dist/TextField.mjs +57 -57
  228. package/dist/Toast.cjs +118 -118
  229. package/dist/Toast.css +105 -105
  230. package/dist/Toast.mjs +118 -118
  231. package/dist/ToggleButton.cjs +3 -3
  232. package/dist/ToggleButton.css +12 -12
  233. package/dist/ToggleButton.mjs +3 -3
  234. package/dist/Tooltip.cjs +81 -81
  235. package/dist/Tooltip.css +68 -68
  236. package/dist/Tooltip.mjs +81 -81
  237. package/dist/TreeView.cjs +143 -149
  238. package/dist/TreeView.cjs.map +1 -1
  239. package/dist/TreeView.css +143 -143
  240. package/dist/TreeView.css.map +1 -1
  241. package/dist/TreeView.mjs +143 -149
  242. package/dist/TreeView.mjs.map +1 -1
  243. package/dist/types.d.ts +2 -2
  244. package/dist/types.d.ts.map +1 -1
  245. package/icons/Icon.cjs +10 -10
  246. package/icons/Icon.css +9 -9
  247. package/icons/Icon.mjs +10 -10
  248. package/icons/Skeleton.cjs +2 -2
  249. package/icons/Skeleton.cjs.map +1 -1
  250. package/icons/Skeleton.css +6 -6
  251. package/icons/Skeleton.mjs +2 -2
  252. package/icons/Skeleton.mjs.map +1 -1
  253. package/package.json +45 -26
  254. package/src/ActionButton.tsx +1 -1
  255. package/src/Button.tsx +3 -3
  256. package/src/ComboBox.tsx +3 -2
  257. package/src/ContextualHelp.tsx +2 -2
  258. package/src/Picker.tsx +3 -2
  259. package/src/Tabs.tsx +7 -5
  260. package/src/TagGroup.tsx +1 -1
  261. package/src/TreeView.tsx +1 -6
  262. package/style/__tests__/style-macro.test.js +56 -56
package/dist/TreeView.cjs CHANGED
@@ -9,7 +9,6 @@ var $6367bc87eb7d24ad$exports = require("./Content.cjs");
9
9
  var $ee7b4c497f520c08$exports = require("./utils.cjs");
10
10
  var $6K4Mt$reactjsxruntime = require("react/jsx-runtime");
11
11
  var $6K4Mt$reactariacomponents = require("react-aria-components");
12
- var $6K4Mt$reactariautils = require("@react-aria/utils");
13
12
  var $6K4Mt$react = require("react");
14
13
  var $6K4Mt$reactspectrumutils = require("@react-spectrum/utils");
15
14
  var $6K4Mt$reactaria = require("react-aria");
@@ -45,7 +44,6 @@ $parcel$export(module.exports, "TreeView", () => $8a2a97a0cb171e69$export$6940b0
45
44
 
46
45
 
47
46
 
48
-
49
47
  const $8a2a97a0cb171e69$var$TreeRendererContext = /*#__PURE__*/ (0, $6K4Mt$react.createContext)({});
50
48
  let $8a2a97a0cb171e69$var$InternalTreeContext = /*#__PURE__*/ (0, $6K4Mt$react.createContext)({});
51
49
  // 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
@@ -65,22 +63,22 @@ const $8a2a97a0cb171e69$var$tree = function anonymous(props, overrides) {
65
63
  if (p[1] === "F") height = true;
66
64
  rules += p[0];
67
65
  }
68
- if (props.isFocusVisible) rules += ' _Lf9';
69
- else rules += ' _Le9';
70
- rules += ' Oh9';
71
- rules += ' _Mc9';
72
- rules += ' _Kb9';
73
- rules += ' _4c9';
74
- if (!minHeight) rules += ' Ma9';
75
- if (!minWidth) rules += ' Na9';
76
- if (!width) rules += ' Za9';
77
- if (!height) rules += ' Fb9';
78
- rules += ' _Na9';
79
- rules += ' Pa9';
80
- rules += ' _oa9';
81
- if (props.isEmpty) rules += ' _Ca9';
82
- if (props.isEmpty) rules += ' eb9';
83
- rules += ' -lPUMEc-Zu9';
66
+ if (props.isFocusVisible) rules += ' _Lf91';
67
+ else rules += ' _Le91';
68
+ rules += ' Oh91';
69
+ rules += ' _Mc91';
70
+ rules += ' _Kb91';
71
+ rules += ' _4c91';
72
+ if (!minHeight) rules += ' Ma91';
73
+ if (!minWidth) rules += ' Na91';
74
+ if (!width) rules += ' Za91';
75
+ if (!height) rules += ' Fb91';
76
+ rules += ' _Na91';
77
+ rules += ' Pa91';
78
+ rules += ' _oa91';
79
+ if (props.isEmpty) rules += ' _Ca91';
80
+ if (props.isEmpty) rules += ' eb91';
81
+ rules += ' -lPUMEc-Zu91';
84
82
  return rules;
85
83
  };
86
84
  function $8a2a97a0cb171e69$var$TreeView(props, ref) {
@@ -148,93 +146,93 @@ const $8a2a97a0cb171e69$var$rowBackgroundColor = {
148
146
  };
149
147
  const $8a2a97a0cb171e69$var$treeRow = function anonymous(props) {
150
148
  let rules = " ";
151
- rules += ' _Pc9';
152
- rules += ' sd9';
153
- rules += ' Fv9';
154
- rules += ' Za9';
155
- rules += ' _oa9';
156
- rules += ' ug9';
157
- rules += ' uch9';
158
- rules += ' udi9';
159
- rules += ' uea9';
160
- rules += ' ugb9';
161
- rules += ' uhd9';
162
- rules += ' uje9';
163
- rules += ' uic9';
164
- rules += ' vd9';
165
- rules += ' vsf9';
166
- rules += ' wb9';
167
- rules += ' xb9';
168
- rules += ' _xa9';
169
- rules += ' _Fa9';
170
- rules += ' _Ffb9';
171
- rules += ' pt9';
172
- rules += ' _Le9';
173
- if (props.isLink) rules += ' ry9';
174
- else rules += ' ri9';
149
+ rules += ' _Pc91';
150
+ rules += ' sd91';
151
+ rules += ' Fv91';
152
+ rules += ' Za91';
153
+ rules += ' _oa91';
154
+ rules += ' ug91';
155
+ rules += ' uch91';
156
+ rules += ' udi91';
157
+ rules += ' uea91';
158
+ rules += ' ugb91';
159
+ rules += ' uhd91';
160
+ rules += ' uje91';
161
+ rules += ' uic91';
162
+ rules += ' vd91';
163
+ rules += ' vsf91';
164
+ rules += ' wb91';
165
+ rules += ' xb91';
166
+ rules += ' _xa91';
167
+ rules += ' _Fa91';
168
+ rules += ' _Ffb91';
169
+ rules += ' pt91';
170
+ rules += ' _Le91';
171
+ if (props.isLink) rules += ' ry91';
172
+ else rules += ' ri91';
175
173
  if (props.isSelected) {
176
174
  if (props.isPressed) {
177
- if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd9';
178
- else rules += ' -qH4xad-gRfT7e9';
175
+ if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd91';
176
+ else rules += ' -qH4xad-gRfT7e91';
179
177
  } else if (props.isHovered) {
180
- if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd9';
181
- else rules += ' -qH4xad-gRfT7e9';
178
+ if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd91';
179
+ else rules += ' -qH4xad-gRfT7e91';
182
180
  } else if (props.isFocusVisibleWithin) {
183
- if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd9';
184
- else rules += ' -qH4xad-gRfT7e9';
185
- } else if (props.isEmphasized) rules += ' -qH4xad-gJpow3b9';
186
- else rules += ' -qH4xad-gj1B7i9';
187
- } else if (props.isPressed) rules += ' -qH4xad-gRfT7e9';
188
- else if (props.isHovered) rules += ' -qH4xad-gj1B7i9';
189
- else if (props.isFocusVisibleWithin) rules += ' -qH4xad-gj1B7i9';
190
- else rules += ' -qH4xad-gEzkoQe9';
191
- rules += ' -qH4xad-lga9';
192
- rules += ' -_34HbNb-Oh9';
193
- rules += ' -_34HbNb-lOc9';
181
+ if (props.isEmphasized) rules += ' -qH4xad-gT9rOHd91';
182
+ else rules += ' -qH4xad-gRfT7e91';
183
+ } else if (props.isEmphasized) rules += ' -qH4xad-gJpow3b91';
184
+ else rules += ' -qH4xad-gj1B7i91';
185
+ } else if (props.isPressed) rules += ' -qH4xad-gRfT7e91';
186
+ else if (props.isHovered) rules += ' -qH4xad-gj1B7i91';
187
+ else if (props.isFocusVisibleWithin) rules += ' -qH4xad-gj1B7i91';
188
+ else rules += ' -qH4xad-gEzkoQe91';
189
+ rules += ' -qH4xad-lga91';
190
+ rules += ' -_34HbNb-Oh91';
191
+ rules += ' -_34HbNb-lOc91';
194
192
  return rules;
195
193
  };
196
194
  const $8a2a97a0cb171e69$var$treeCellGrid = function anonymous(props) {
197
195
  let rules = " ";
198
- rules += ' se9';
199
- rules += ' Za9';
200
- rules += ' Fb9';
201
- rules += ' _oa9';
202
- rules += ' _cb9';
203
- rules += ' eb9';
204
- rules += ' Dw9uTxc9';
205
- rules += ' EM8Mfn9';
206
- rules += ' CgjMZ2c9';
207
- rules += ' gs9yXOb9';
208
- rules += ' Rp9';
196
+ rules += ' se91';
197
+ rules += ' Za91';
198
+ rules += ' Fb91';
199
+ rules += ' _oa91';
200
+ rules += ' _cb91';
201
+ rules += ' eb91';
202
+ rules += ' Dw9uTxc91';
203
+ rules += ' EM8Mfn91';
204
+ rules += ' CgjMZ2c91';
205
+ rules += ' gs9yXOb91';
206
+ rules += ' Rp91';
209
207
  if (props.isDisabled) {
210
- rules += ' pp9';
211
- rules += ' plc9';
208
+ rules += ' pp91';
209
+ rules += ' plc91';
212
210
  }
213
- if (props.isFocusVisible) rules += ' -_7xg3bb-Oh9';
214
- else rules += ' -_7xg3bb-O8Izf8c9';
215
- rules += ' -_7xg3bb-lOc9';
216
- rules += ' -pKMv1c-Oh9';
217
- rules += ' -pKMv1c-lOc9';
211
+ if (props.isFocusVisible) rules += ' -_7xg3bb-Oh91';
212
+ else rules += ' -_7xg3bb-O8Izf8c91';
213
+ rules += ' -_7xg3bb-lOc91';
214
+ rules += ' -pKMv1c-Oh91';
215
+ rules += ' -pKMv1c-lOc91';
218
216
  if (props.isDetached) {
219
- if (props.isSelected) rules += ' iBGbjub9';
220
- else rules += ' iA9';
217
+ if (props.isSelected) rules += ' iBGbjub91';
218
+ else rules += ' iA91';
221
219
  }
222
- if (props.isDetached) rules += ' _kb9';
223
- if (props.isDetached) rules += ' hb9';
224
- if (props.isDetached) rules += ' mb9';
225
- if (props.isDetached) rules += ' lb9';
226
- if (props.isDetached) rules += ' ob9';
227
- if (props.isDetached) rules += ' nb9';
228
- if (props.isDetached) rules += ' kb9';
229
- if (props.isDetached) rules += ' jb9';
230
- if (props.isDetached) rules += ' _jf9';
220
+ if (props.isDetached) rules += ' _kb91';
221
+ if (props.isDetached) rules += ' hb91';
222
+ if (props.isDetached) rules += ' mb91';
223
+ if (props.isDetached) rules += ' lb91';
224
+ if (props.isDetached) rules += ' ob91';
225
+ if (props.isDetached) rules += ' nb91';
226
+ if (props.isDetached) rules += ' kb91';
227
+ if (props.isDetached) rules += ' jb91';
228
+ if (props.isDetached) rules += ' _jf91';
231
229
  return rules;
232
230
  };
233
- const $8a2a97a0cb171e69$var$treeCheckbox = " zoRzcu9 yoRzcu9 BoRzcu9 AoRzcu9 Ix9 Hy9 Rd9";
234
- const $8a2a97a0cb171e69$var$treeIcon = " z2U5Crc9 y2U5Crc9 B2U5Crc9 A2U5Crc9 Ht9 Hsu9 -_8sjo0b-t5ZbAob9";
235
- const $8a2a97a0cb171e69$var$treeContent = " zk52g2d9 yk52g2d9 Bk52g2d9 Ak52g2d9 _Yb9 _7c9 _Nc9 Pc9";
236
- const $8a2a97a0cb171e69$var$treeActions = " zkG38H9 ykG38H9 BkG38H9 AkG38H9 Ir9 Hs9";
237
- const $8a2a97a0cb171e69$var$treeActionMenu = " z6Nrfjc9 y6Nrfjc9 B6Nrfjc9 A6Nrfjc9";
231
+ const $8a2a97a0cb171e69$var$treeCheckbox = " zoRzcu91 yoRzcu91 BoRzcu91 AoRzcu91 Ix91 Hy91 Rd91";
232
+ const $8a2a97a0cb171e69$var$treeIcon = " z2U5Crc91 y2U5Crc91 B2U5Crc91 A2U5Crc91 Ht91 Hsu91 -_8sjo0b-t5ZbAob91";
233
+ const $8a2a97a0cb171e69$var$treeContent = " zk52g2d91 yk52g2d91 Bk52g2d91 Ak52g2d91 _Yb91 _7c91 _Nc91 Pc91";
234
+ const $8a2a97a0cb171e69$var$treeActions = " zkG38H91 ykG38H91 BkG38H91 AkG38H91 Ir91 Hs91";
235
+ const $8a2a97a0cb171e69$var$treeActionMenu = " z6Nrfjc91 y6Nrfjc91 B6Nrfjc91 A6Nrfjc91";
238
236
  const $8a2a97a0cb171e69$var$cellFocus = {
239
237
  outlineStyle: {
240
238
  default: 'none',
@@ -288,7 +286,7 @@ const $8a2a97a0cb171e69$export$9a5779ed3fade674 = (props1)=>{
288
286
  })
289
287
  }),
290
288
  /*#__PURE__*/ (0, $6K4Mt$reactjsxruntime.jsx)("div", {
291
- className: " z7fSmKc9 y7fSmKc9 B7fSmKc9 A7fSmKc9 ZecPNad9"
289
+ className: " z7fSmKc91 y7fSmKc91 B7fSmKc91 A7fSmKc91 ZecPNad91"
292
290
  }),
293
291
  /*#__PURE__*/ (0, $6K4Mt$reactjsxruntime.jsx)($8a2a97a0cb171e69$var$ExpandableRowChevron, {
294
292
  isDisabled: isDisabled,
@@ -311,7 +309,7 @@ const $8a2a97a0cb171e69$export$9a5779ed3fade674 = (props1)=>{
311
309
  slot: 'icon',
312
310
  styles: $8a2a97a0cb171e69$var$treeIcon
313
311
  }),
314
- styles: " ZuUmpre9 FuUmpre9 _va9"
312
+ styles: " ZuUmpre91 FuUmpre91 _va91"
315
313
  }
316
314
  ],
317
315
  [
@@ -334,20 +332,20 @@ const $8a2a97a0cb171e69$export$9a5779ed3fade674 = (props1)=>{
334
332
  role: "presentation",
335
333
  className: function anonymous(props) {
336
334
  let rules = " ";
337
- if (props.isFocusVisible) rules += ' _Lf9';
338
- else rules += ' _Le9';
339
- rules += ' _Kb9';
340
- rules += ' _Mc9';
341
- rules += ' Oh9';
342
- rules += ' of9';
343
- rules += ' nf9';
344
- rules += ' kf9';
345
- rules += ' jf9';
346
- rules += ' _Pa9';
347
- rules += ' Wr9';
348
- rules += ' _lr9';
349
- rules += ' _Ar9';
350
- rules += ' _zr9';
335
+ if (props.isFocusVisible) rules += ' _Lf91';
336
+ else rules += ' _Le91';
337
+ rules += ' _Kb91';
338
+ rules += ' _Mc91';
339
+ rules += ' Oh91';
340
+ rules += ' of91';
341
+ rules += ' nf91';
342
+ rules += ' kf91';
343
+ rules += ' jf91';
344
+ rules += ' _Pa91';
345
+ rules += ' Wr91';
346
+ rules += ' _lr91';
347
+ rules += ' _Ar91';
348
+ rules += ' _zr91';
351
349
  return rules;
352
350
  }({
353
351
  isFocusVisible: true
@@ -360,37 +358,37 @@ const $8a2a97a0cb171e69$export$9a5779ed3fade674 = (props1)=>{
360
358
  };
361
359
  const $8a2a97a0cb171e69$var$expandButton = function anonymous(props) {
362
360
  let rules = " ";
363
- rules += ' z8dW5Qb9';
364
- rules += ' y8dW5Qb9';
365
- rules += ' B8dW5Qb9';
366
- rules += ' A8dW5Qb9';
361
+ rules += ' z8dW5Qb91';
362
+ rules += ' y8dW5Qb91';
363
+ rules += ' B8dW5Qb91';
364
+ rules += ' A8dW5Qb91';
367
365
  if (props.isDisabled) {
368
- rules += ' pp9';
369
- rules += ' plc9';
370
- } else rules += ' p40ub4c9';
371
- rules += ' Fv9';
372
- rules += ' Zw9';
373
- rules += ' sd9';
374
- rules += ' _wb9';
375
- rules += ' _cb9';
376
- rules += ' _Ca9';
377
- rules += ' _Le9';
378
- rules += ' ri9';
366
+ rules += ' pp91';
367
+ rules += ' plc91';
368
+ } else rules += ' p40ub4c91';
369
+ rules += ' Fv91';
370
+ rules += ' Zw91';
371
+ rules += ' sd91';
372
+ rules += ' _wb91';
373
+ rules += ' _cb91';
374
+ rules += ' _Ca91';
375
+ rules += ' _Le91';
376
+ rules += ' ri91';
379
377
  if (props.isExpanded) {
380
- if (props.isRTL) rules += ' _Za9';
381
- else rules += ' _Zb9';
378
+ if (props.isRTL) rules += ' _Za91';
379
+ else rules += ' _Zb91';
382
380
  }
383
- rules += ' Td9';
384
- rules += ' Qd9';
385
- rules += ' Sd9';
386
- rules += ' Rd9';
387
- rules += ' Yd9';
388
- rules += ' Xb9';
389
- rules += ' _2b9';
390
- rules += ' g99';
391
- rules += ' _je9';
392
- rules += ' __ca9';
393
- if (props.isHidden) rules += ' _6b9';
381
+ rules += ' Td91';
382
+ rules += ' Qd91';
383
+ rules += ' Sd91';
384
+ rules += ' Rd91';
385
+ rules += ' Yd91';
386
+ rules += ' Xb91';
387
+ rules += ' _2b91';
388
+ rules += ' g991';
389
+ rules += ' _je91';
390
+ rules += ' __ca91';
391
+ if (props.isHidden) rules += ' _6b91';
394
392
  return rules;
395
393
  };
396
394
  function $8a2a97a0cb171e69$var$ExpandableRowChevron(props1) {
@@ -399,16 +397,12 @@ function $8a2a97a0cb171e69$var$ExpandableRowChevron(props1) {
399
397
  ...props1,
400
398
  slot: 'chevron'
401
399
  }, expandButtonRef, (0, $6K4Mt$reactariacomponents.ButtonContext));
402
- let { isExpanded: isExpanded, isDisabled: isDisabled, scale: scale, isHidden: isHidden } = fullProps;
400
+ let { isExpanded: isExpanded, scale: scale, isHidden: isHidden } = fullProps;
403
401
  let { direction: direction } = (0, $6K4Mt$reactaria.useLocale)();
404
- isDisabled = isDisabled || isHidden;
405
402
  return /*#__PURE__*/ (0, $6K4Mt$reactjsxruntime.jsx)((0, $6K4Mt$reactariacomponents.Button), {
406
403
  ...props1,
407
404
  ref: ref,
408
405
  slot: "chevron",
409
- // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually "focus" it
410
- excludeFromTabOrder: (0, $6K4Mt$reactariautils.isAndroid)() && !isDisabled,
411
- preventFocusOnPress: true,
412
406
  className: (renderProps)=>$8a2a97a0cb171e69$var$expandButton({
413
407
  ...renderProps,
414
408
  isExpanded: isExpanded,
@@ -420,20 +414,20 @@ function $8a2a97a0cb171e69$var$ExpandableRowChevron(props1) {
420
414
  className: function anonymous(props) {
421
415
  let rules = " ";
422
416
  if (props.direction === "rtl") {
423
- rules += ' -Z4Pn4c-a9';
424
- rules += ' __Ha9';
417
+ rules += ' -Z4Pn4c-a91';
418
+ rules += ' __Ha91';
425
419
  } else if (props.direction === "ltr") {
426
- rules += ' -Z4Pn4c-b9';
427
- rules += ' __Ha9';
420
+ rules += ' -Z4Pn4c-b91';
421
+ rules += ' __Ha91';
428
422
  }
429
423
  if (props.direction === "rtl") {
430
- rules += ' -_04Pn4c-a9';
431
- rules += ' __Ha9';
424
+ rules += ' -_04Pn4c-a91';
425
+ rules += ' __Ha91';
432
426
  } else if (props.direction === "ltr") {
433
- rules += ' -_04Pn4c-b9';
434
- rules += ' __Ha9';
427
+ rules += ' -_04Pn4c-b91';
428
+ rules += ' __Ha91';
435
429
  }
436
- rules += ' -_8sjo0b-t5ZbAob9';
430
+ rules += ' -_8sjo0b-t5ZbAob91';
437
431
  return rules;
438
432
  }({
439
433
  direction: direction
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/TreeView.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 {ActionButtonGroupContext} from './ActionButtonGroup';\nimport {ActionMenuContext} from './ActionMenu';\nimport {\n Button,\n ButtonContext,\n ListLayout,\n Provider,\n TreeItemProps as RACTreeItemProps,\n TreeProps as RACTreeProps,\n Tree,\n TreeItem,\n TreeItemContent,\n TreeItemContentProps,\n useContextProps,\n Virtualizer\n} from 'react-aria-components';\nimport {centerBaseline} from './CenterBaseline';\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {colorMix, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};\nimport {DOMRef, Key} from '@react-types/shared';\nimport {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};\nimport {IconContext} from './Icon';\nimport {isAndroid} from '@react-aria/utils';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useRef} from 'react';\nimport {TextContext} from './Content';\nimport {useDOMRef} from '@react-spectrum/utils';\nimport {useLocale} from 'react-aria';\nimport {useScale} from './utils';\n\ninterface S2TreeProps {\n // Only detatched is supported right now with the current styles from Spectrum\n isDetached?: boolean,\n onAction?: (key: Key) => void,\n // not fully supported yet\n isEmphasized?: boolean\n}\n\nexport interface TreeViewProps extends Omit<RACTreeProps<any>, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TreeProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight\n}\n\nexport interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style'> {\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean\n}\n\ninterface TreeRendererContextValue {\n renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>\n}\nconst TreeRendererContext = createContext<TreeRendererContextValue>({});\n\n\nlet InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});\n\n// 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\n// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't\n// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview\nconst tree = style({\n ...focusRing(),\n outlineOffset: -2, // make certain we are visible inside overflow hidden containers\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n width: 'full',\n height: 'full',\n overflow: 'auto',\n boxSizing: 'border-box',\n justifyContent: {\n isEmpty: 'center'\n },\n alignItems: {\n isEmpty: 'center'\n },\n '--indent': {\n type: 'width',\n value: 16\n }\n}, getAllowedOverrides({height: true}));\n\nfunction TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {\n let {children, isDetached, isEmphasized, UNSAFE_className, UNSAFE_style} = props;\n let scale = useScale();\n\n let renderer;\n if (typeof children === 'function') {\n renderer = children;\n }\n\n let domRef = useDOMRef(ref);\n\n return (\n <Virtualizer\n layout={ListLayout}\n layoutOptions={{\n rowHeight: scale === 'large' ? 50 : 40,\n gap: isDetached ? 2 : 0\n }}>\n <TreeRendererContext.Provider value={{renderer}}>\n <InternalTreeContext.Provider value={{isDetached, isEmphasized}}>\n <Tree\n {...props}\n style={UNSAFE_style}\n className={renderProps => (UNSAFE_className ?? '') + tree({isDetached, ...renderProps}, props.styles)}\n selectionBehavior=\"toggle\"\n ref={domRef}>\n {props.children}\n </Tree>\n </InternalTreeContext.Provider>\n </TreeRendererContext.Provider>\n </Virtualizer>\n );\n}\n\nconst selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));\nconst selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));\n\nconst rowBackgroundColor = {\n default: '--s2-container-bg',\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),\n isHovered: colorMix('gray-25', 'gray-900', 7),\n isPressed: colorMix('gray-25', 'gray-900', 10),\n isSelected: {\n default: colorMix('gray-25', 'gray-900', 7),\n isEmphasized: selectedBackground,\n isFocusVisibleWithin: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n },\n isHovered: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n },\n isPressed: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n }\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst treeRow = style({\n position: 'relative',\n display: 'flex',\n height: 40,\n width: 'full',\n boxSizing: 'border-box',\n font: 'ui',\n color: 'body',\n outlineStyle: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--rowFocusIndicatorColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n }\n});\n\n\nconst treeCellGrid = style({\n display: 'grid',\n width: 'full',\n height: 'full',\n boxSizing: 'border-box',\n alignContent: 'center',\n alignItems: 'center',\n gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],\n gridTemplateRows: '1fr',\n gridTemplateAreas: [\n 'drag-handle checkbox level-padding expand-button icon content actions actionmenu'\n ],\n backgroundColor: '--rowBackgroundColor',\n paddingEnd: 4, // account for any focus rings on the last item in the cell\n color: {\n isDisabled: {\n default: 'gray-400',\n forcedColors: 'GrayText'\n }\n },\n '--rowSelectedBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'gray-800',\n isFocusVisible: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--rowForcedFocusBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n borderColor: {\n isDetached: {\n default: 'transparent',\n isSelected: '--rowSelectedBorderColor'\n }\n },\n borderWidth: {\n isDetached: 1\n },\n borderRadius: {\n isDetached: 'default'\n },\n borderStyle: {\n isDetached: 'solid'\n }\n});\n\nconst treeCheckbox = style({\n gridArea: 'checkbox',\n marginStart: 12,\n marginEnd: 0,\n paddingEnd: 0\n});\n\nconst treeIcon = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst treeContent = style({\n gridArea: 'content',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n});\n\nconst treeActions = style({\n gridArea: 'actions',\n /* 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 */\n marginStart: 2,\n marginEnd: 4\n});\n\nconst treeActionMenu = style({\n gridArea: 'actionmenu'\n});\n\nconst cellFocus = {\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid'\n },\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: 'focus-ring',\n borderRadius: '[6px]'\n} as const;\n\nconst treeRowFocusIndicator = raw(`\n &:before {\n content: \"\";\n display: inline-block;\n position: sticky;\n inset-inline-start: 0;\n width: 3px;\n height: 100%;\n margin-inline-end: -3px;\n margin-block-end: 1px;\n z-index: 3;\n background-color: var(--rowFocusIndicatorColor);\n }`\n);\n\nexport const TreeViewItem = (props: TreeViewItemProps): ReactNode => {\n let {\n href\n } = props;\n let {isDetached, isEmphasized} = useContext(InternalTreeContext);\n\n return (\n <TreeItem\n {...props}\n className={(renderProps) => treeRow({\n ...renderProps,\n isLink: !!href, isEmphasized\n }) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')} />\n );\n};\n\nexport interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {\n /** Rendered contents of the tree item or child items. */\n children: ReactNode\n}\n\nexport const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode => {\n let {\n children\n } = props;\n let {isDetached, isEmphasized} = useContext(InternalTreeContext);\n let scale = useScale();\n\n return (\n <TreeItemContent>\n {({isExpanded, hasChildItems, selectionMode, selectionBehavior, isDisabled, isFocusVisible, isSelected, id, state}) => {\n let isNextSelected = false;\n let isNextFocused = false;\n let keyAfter = state.collection.getKeyAfter(id);\n if (keyAfter != null) {\n isNextSelected = state.selectionManager.isSelected(keyAfter);\n }\n let isFirst = state.collection.getFirstKey() === id;\n return (\n <div className={treeCellGrid({isDisabled, isNextSelected, isSelected, isFirst, isNextFocused, isDetached})}>\n {selectionMode !== 'none' && selectionBehavior === 'toggle' && (\n // TODO: add transition?\n <div className={treeCheckbox}>\n <Checkbox\n isEmphasized={isEmphasized}\n slot=\"selection\" />\n </div>\n )}\n <div\n className={style({\n gridArea: 'level-padding',\n width: 'calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))'\n })} />\n {/* 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 */}\n <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} scale={scale} isHidden={!(hasChildItems)} />\n <Provider\n values={[\n [TextContext, {styles: treeContent}],\n [IconContext, {\n render: centerBaseline({slot: 'icon', styles: treeIcon}),\n styles: style({size: fontRelative(20), flexShrink: 0})\n }],\n [ActionButtonGroupContext, {styles: treeActions}],\n [ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]\n ]}>\n {children}\n </Provider>\n {isFocusVisible && isDetached && <div role=\"presentation\" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />}\n </div>\n );\n }}\n </TreeItemContent>\n );\n};\n\ninterface ExpandableRowChevronProps {\n isExpanded?: boolean,\n isDisabled?: boolean,\n isRTL?: boolean,\n scale: 'medium' | 'large',\n isHidden?: boolean\n}\n\nconst expandButton = style<ExpandableRowChevronProps>({\n gridArea: 'expand-button',\n color: {\n default: 'inherit',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n height: 40,\n width: 40,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'center',\n justifyContent: 'center',\n outlineStyle: 'none',\n cursor: 'default',\n transform: {\n isExpanded: {\n default: 'rotate(90deg)',\n isRTL: 'rotate(-90deg)'\n }\n },\n padding: 0,\n transition: 'default',\n backgroundColor: 'transparent',\n borderStyle: 'none',\n disableTapHighlight: true,\n visibility: {\n isHidden: 'hidden'\n }\n});\n\nfunction ExpandableRowChevron(props: ExpandableRowChevronProps) {\n let expandButtonRef = useRef<HTMLButtonElement>(null);\n let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);\n let {isExpanded, isDisabled, scale, isHidden} = fullProps;\n let {direction} = useLocale();\n isDisabled = isDisabled || isHidden;\n\n return (\n <Button\n {...props}\n ref={ref}\n slot=\"chevron\"\n // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually \"focus\" it\n excludeFromTabOrder={isAndroid() && !isDisabled}\n preventFocusOnPress\n className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>\n <Chevron\n className={style({\n scale: {\n direction: {\n ltr: '1',\n rtl: '-1'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })({direction})} />\n </Button>\n );\n}\n\n/**\n * A tree view provides users with a way to navigate nested hierarchical information.\n */\nconst _TreeView = forwardRef(TreeView);\nexport {_TreeView as TreeView};\n"],"names":[],"version":3,"file":"TreeView.cjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/TreeView.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 {ActionButtonGroupContext} from './ActionButtonGroup';\nimport {ActionMenuContext} from './ActionMenu';\nimport {\n Button,\n ButtonContext,\n ListLayout,\n Provider,\n TreeItemProps as RACTreeItemProps,\n TreeProps as RACTreeProps,\n Tree,\n TreeItem,\n TreeItemContent,\n TreeItemContentProps,\n useContextProps,\n Virtualizer\n} from 'react-aria-components';\nimport {centerBaseline} from './CenterBaseline';\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {colorMix, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};\nimport {DOMRef, Key} from '@react-types/shared';\nimport {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};\nimport {IconContext} from './Icon';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useRef} from 'react';\nimport {TextContext} from './Content';\nimport {useDOMRef} from '@react-spectrum/utils';\nimport {useLocale} from 'react-aria';\nimport {useScale} from './utils';\n\ninterface S2TreeProps {\n // Only detatched is supported right now with the current styles from Spectrum\n isDetached?: boolean,\n onAction?: (key: Key) => void,\n // not fully supported yet\n isEmphasized?: boolean\n}\n\nexport interface TreeViewProps extends Omit<RACTreeProps<any>, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TreeProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight\n}\n\nexport interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style'> {\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean\n}\n\ninterface TreeRendererContextValue {\n renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>\n}\nconst TreeRendererContext = createContext<TreeRendererContextValue>({});\n\n\nlet InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});\n\n// 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\n// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't\n// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview\nconst tree = style({\n ...focusRing(),\n outlineOffset: -2, // make certain we are visible inside overflow hidden containers\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n width: 'full',\n height: 'full',\n overflow: 'auto',\n boxSizing: 'border-box',\n justifyContent: {\n isEmpty: 'center'\n },\n alignItems: {\n isEmpty: 'center'\n },\n '--indent': {\n type: 'width',\n value: 16\n }\n}, getAllowedOverrides({height: true}));\n\nfunction TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {\n let {children, isDetached, isEmphasized, UNSAFE_className, UNSAFE_style} = props;\n let scale = useScale();\n\n let renderer;\n if (typeof children === 'function') {\n renderer = children;\n }\n\n let domRef = useDOMRef(ref);\n\n return (\n <Virtualizer\n layout={ListLayout}\n layoutOptions={{\n rowHeight: scale === 'large' ? 50 : 40,\n gap: isDetached ? 2 : 0\n }}>\n <TreeRendererContext.Provider value={{renderer}}>\n <InternalTreeContext.Provider value={{isDetached, isEmphasized}}>\n <Tree\n {...props}\n style={UNSAFE_style}\n className={renderProps => (UNSAFE_className ?? '') + tree({isDetached, ...renderProps}, props.styles)}\n selectionBehavior=\"toggle\"\n ref={domRef}>\n {props.children}\n </Tree>\n </InternalTreeContext.Provider>\n </TreeRendererContext.Provider>\n </Virtualizer>\n );\n}\n\nconst selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));\nconst selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));\n\nconst rowBackgroundColor = {\n default: '--s2-container-bg',\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),\n isHovered: colorMix('gray-25', 'gray-900', 7),\n isPressed: colorMix('gray-25', 'gray-900', 10),\n isSelected: {\n default: colorMix('gray-25', 'gray-900', 7),\n isEmphasized: selectedBackground,\n isFocusVisibleWithin: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n },\n isHovered: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n },\n isPressed: {\n default: colorMix('gray-25', 'gray-900', 10),\n isEmphasized: selectedActiveBackground\n }\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst treeRow = style({\n position: 'relative',\n display: 'flex',\n height: 40,\n width: 'full',\n boxSizing: 'border-box',\n font: 'ui',\n color: 'body',\n outlineStyle: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--rowFocusIndicatorColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n }\n});\n\n\nconst treeCellGrid = style({\n display: 'grid',\n width: 'full',\n height: 'full',\n boxSizing: 'border-box',\n alignContent: 'center',\n alignItems: 'center',\n gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],\n gridTemplateRows: '1fr',\n gridTemplateAreas: [\n 'drag-handle checkbox level-padding expand-button icon content actions actionmenu'\n ],\n backgroundColor: '--rowBackgroundColor',\n paddingEnd: 4, // account for any focus rings on the last item in the cell\n color: {\n isDisabled: {\n default: 'gray-400',\n forcedColors: 'GrayText'\n }\n },\n '--rowSelectedBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'gray-800',\n isFocusVisible: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--rowForcedFocusBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n borderColor: {\n isDetached: {\n default: 'transparent',\n isSelected: '--rowSelectedBorderColor'\n }\n },\n borderWidth: {\n isDetached: 1\n },\n borderRadius: {\n isDetached: 'default'\n },\n borderStyle: {\n isDetached: 'solid'\n }\n});\n\nconst treeCheckbox = style({\n gridArea: 'checkbox',\n marginStart: 12,\n marginEnd: 0,\n paddingEnd: 0\n});\n\nconst treeIcon = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst treeContent = style({\n gridArea: 'content',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n});\n\nconst treeActions = style({\n gridArea: 'actions',\n /* 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 */\n marginStart: 2,\n marginEnd: 4\n});\n\nconst treeActionMenu = style({\n gridArea: 'actionmenu'\n});\n\nconst cellFocus = {\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid'\n },\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: 'focus-ring',\n borderRadius: '[6px]'\n} as const;\n\nconst treeRowFocusIndicator = raw(`\n &:before {\n content: \"\";\n display: inline-block;\n position: sticky;\n inset-inline-start: 0;\n width: 3px;\n height: 100%;\n margin-inline-end: -3px;\n margin-block-end: 1px;\n z-index: 3;\n background-color: var(--rowFocusIndicatorColor);\n }`\n);\n\nexport const TreeViewItem = (props: TreeViewItemProps): ReactNode => {\n let {\n href\n } = props;\n let {isDetached, isEmphasized} = useContext(InternalTreeContext);\n\n return (\n <TreeItem\n {...props}\n className={(renderProps) => treeRow({\n ...renderProps,\n isLink: !!href, isEmphasized\n }) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')} />\n );\n};\n\nexport interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {\n /** Rendered contents of the tree item or child items. */\n children: ReactNode\n}\n\nexport const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode => {\n let {\n children\n } = props;\n let {isDetached, isEmphasized} = useContext(InternalTreeContext);\n let scale = useScale();\n\n return (\n <TreeItemContent>\n {({isExpanded, hasChildItems, selectionMode, selectionBehavior, isDisabled, isFocusVisible, isSelected, id, state}) => {\n let isNextSelected = false;\n let isNextFocused = false;\n let keyAfter = state.collection.getKeyAfter(id);\n if (keyAfter != null) {\n isNextSelected = state.selectionManager.isSelected(keyAfter);\n }\n let isFirst = state.collection.getFirstKey() === id;\n return (\n <div className={treeCellGrid({isDisabled, isNextSelected, isSelected, isFirst, isNextFocused, isDetached})}>\n {selectionMode !== 'none' && selectionBehavior === 'toggle' && (\n // TODO: add transition?\n <div className={treeCheckbox}>\n <Checkbox\n isEmphasized={isEmphasized}\n slot=\"selection\" />\n </div>\n )}\n <div\n className={style({\n gridArea: 'level-padding',\n width: 'calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))'\n })} />\n {/* 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 */}\n <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} scale={scale} isHidden={!(hasChildItems)} />\n <Provider\n values={[\n [TextContext, {styles: treeContent}],\n [IconContext, {\n render: centerBaseline({slot: 'icon', styles: treeIcon}),\n styles: style({size: fontRelative(20), flexShrink: 0})\n }],\n [ActionButtonGroupContext, {styles: treeActions}],\n [ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]\n ]}>\n {children}\n </Provider>\n {isFocusVisible && isDetached && <div role=\"presentation\" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />}\n </div>\n );\n }}\n </TreeItemContent>\n );\n};\n\ninterface ExpandableRowChevronProps {\n isExpanded?: boolean,\n isDisabled?: boolean,\n isRTL?: boolean,\n scale: 'medium' | 'large',\n isHidden?: boolean\n}\n\nconst expandButton = style<ExpandableRowChevronProps>({\n gridArea: 'expand-button',\n color: {\n default: 'inherit',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n height: 40,\n width: 40,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'center',\n justifyContent: 'center',\n outlineStyle: 'none',\n cursor: 'default',\n transform: {\n isExpanded: {\n default: 'rotate(90deg)',\n isRTL: 'rotate(-90deg)'\n }\n },\n padding: 0,\n transition: 'default',\n backgroundColor: 'transparent',\n borderStyle: 'none',\n disableTapHighlight: true,\n visibility: {\n isHidden: 'hidden'\n }\n});\n\nfunction ExpandableRowChevron(props: ExpandableRowChevronProps) {\n let expandButtonRef = useRef<HTMLButtonElement>(null);\n let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);\n let {isExpanded, scale, isHidden} = fullProps;\n let {direction} = useLocale();\n\n return (\n <Button\n {...props}\n ref={ref}\n slot=\"chevron\"\n className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>\n <Chevron\n className={style({\n scale: {\n direction: {\n ltr: '1',\n rtl: '-1'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })({direction})} />\n </Button>\n );\n}\n\n/**\n * A tree view provides users with a way to navigate nested hierarchical information.\n */\nconst _TreeView = forwardRef(TreeView);\nexport {_TreeView as TreeView};\n"],"names":[],"version":3,"file":"TreeView.cjs.map"}