@react-spectrum/s2 3.0.0-nightly-4b8b33a02-250211 → 3.0.0-nightly-56da82e3e-250212

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 (210) hide show
  1. package/dist/Accordion.cjs.map +1 -1
  2. package/dist/Accordion.css.map +1 -1
  3. package/dist/Accordion.mjs.map +1 -1
  4. package/dist/ActionButton.cjs.map +1 -1
  5. package/dist/ActionButton.css.map +1 -1
  6. package/dist/ActionButton.mjs.map +1 -1
  7. package/dist/ActionMenu.cjs.map +1 -1
  8. package/dist/ActionMenu.mjs.map +1 -1
  9. package/dist/Avatar.cjs.map +1 -1
  10. package/dist/Avatar.css.map +1 -1
  11. package/dist/Avatar.mjs.map +1 -1
  12. package/dist/AvatarGroup.cjs.map +1 -1
  13. package/dist/AvatarGroup.css.map +1 -1
  14. package/dist/AvatarGroup.mjs.map +1 -1
  15. package/dist/Breadcrumbs.cjs.map +1 -1
  16. package/dist/Breadcrumbs.css.map +1 -1
  17. package/dist/Breadcrumbs.mjs.map +1 -1
  18. package/dist/Button.cjs.map +1 -1
  19. package/dist/Button.css.map +1 -1
  20. package/dist/Button.mjs.map +1 -1
  21. package/dist/ButtonGroup.cjs.map +1 -1
  22. package/dist/ButtonGroup.css.map +1 -1
  23. package/dist/ButtonGroup.mjs.map +1 -1
  24. package/dist/CardView.cjs.map +1 -1
  25. package/dist/CardView.css.map +1 -1
  26. package/dist/CardView.mjs.map +1 -1
  27. package/dist/Checkbox.cjs.map +1 -1
  28. package/dist/Checkbox.css.map +1 -1
  29. package/dist/Checkbox.mjs.map +1 -1
  30. package/dist/CheckboxGroup.cjs.map +1 -1
  31. package/dist/CheckboxGroup.css.map +1 -1
  32. package/dist/CheckboxGroup.mjs.map +1 -1
  33. package/dist/CloseButton.cjs.map +1 -1
  34. package/dist/CloseButton.css.map +1 -1
  35. package/dist/CloseButton.mjs.map +1 -1
  36. package/dist/ColorArea.cjs.map +1 -1
  37. package/dist/ColorArea.css.map +1 -1
  38. package/dist/ColorArea.mjs.map +1 -1
  39. package/dist/ColorField.cjs.map +1 -1
  40. package/dist/ColorField.css.map +1 -1
  41. package/dist/ColorField.mjs.map +1 -1
  42. package/dist/ColorSlider.cjs.map +1 -1
  43. package/dist/ColorSlider.css.map +1 -1
  44. package/dist/ColorSlider.mjs.map +1 -1
  45. package/dist/ColorSwatch.cjs.map +1 -1
  46. package/dist/ColorSwatch.css.map +1 -1
  47. package/dist/ColorSwatch.mjs.map +1 -1
  48. package/dist/ColorWheel.cjs.map +1 -1
  49. package/dist/ColorWheel.css.map +1 -1
  50. package/dist/ColorWheel.mjs.map +1 -1
  51. package/dist/Content.cjs.map +1 -1
  52. package/dist/Content.mjs.map +1 -1
  53. package/dist/ContextualHelp.cjs.map +1 -1
  54. package/dist/ContextualHelp.css.map +1 -1
  55. package/dist/ContextualHelp.mjs.map +1 -1
  56. package/dist/Disclosure.cjs.map +1 -1
  57. package/dist/Disclosure.css.map +1 -1
  58. package/dist/Disclosure.mjs.map +1 -1
  59. package/dist/Divider.cjs.map +1 -1
  60. package/dist/Divider.css.map +1 -1
  61. package/dist/Divider.mjs.map +1 -1
  62. package/dist/DropZone.cjs.map +1 -1
  63. package/dist/DropZone.css.map +1 -1
  64. package/dist/DropZone.mjs.map +1 -1
  65. package/dist/Field.cjs.map +1 -1
  66. package/dist/Field.css.map +1 -1
  67. package/dist/Field.mjs.map +1 -1
  68. package/dist/Form.cjs.map +1 -1
  69. package/dist/Form.css.map +1 -1
  70. package/dist/Form.mjs.map +1 -1
  71. package/dist/IllustratedMessage.cjs.map +1 -1
  72. package/dist/IllustratedMessage.css.map +1 -1
  73. package/dist/IllustratedMessage.mjs.map +1 -1
  74. package/dist/Image.cjs.map +1 -1
  75. package/dist/Image.css.map +1 -1
  76. package/dist/Image.mjs.map +1 -1
  77. package/dist/Link.cjs.map +1 -1
  78. package/dist/Link.css.map +1 -1
  79. package/dist/Link.mjs.map +1 -1
  80. package/dist/Menu.cjs +1 -0
  81. package/dist/Menu.cjs.map +1 -1
  82. package/dist/Menu.css +4 -0
  83. package/dist/Menu.css.map +1 -1
  84. package/dist/Menu.mjs +1 -0
  85. package/dist/Menu.mjs.map +1 -1
  86. package/dist/Meter.cjs.map +1 -1
  87. package/dist/Meter.css.map +1 -1
  88. package/dist/Meter.mjs.map +1 -1
  89. package/dist/NumberField.cjs.map +1 -1
  90. package/dist/NumberField.css.map +1 -1
  91. package/dist/NumberField.mjs.map +1 -1
  92. package/dist/Picker.cjs +1 -0
  93. package/dist/Picker.cjs.map +1 -1
  94. package/dist/Picker.css +4 -0
  95. package/dist/Picker.css.map +1 -1
  96. package/dist/Picker.mjs +1 -0
  97. package/dist/Picker.mjs.map +1 -1
  98. package/dist/ProgressBar.cjs.map +1 -1
  99. package/dist/ProgressBar.css.map +1 -1
  100. package/dist/ProgressBar.mjs.map +1 -1
  101. package/dist/ProgressCircle.cjs.map +1 -1
  102. package/dist/ProgressCircle.css.map +1 -1
  103. package/dist/ProgressCircle.mjs.map +1 -1
  104. package/dist/RadioGroup.cjs.map +1 -1
  105. package/dist/RadioGroup.css.map +1 -1
  106. package/dist/RadioGroup.mjs.map +1 -1
  107. package/dist/RangeSlider.cjs.map +1 -1
  108. package/dist/RangeSlider.mjs.map +1 -1
  109. package/dist/SearchField.cjs.map +1 -1
  110. package/dist/SearchField.css.map +1 -1
  111. package/dist/SearchField.mjs.map +1 -1
  112. package/dist/SegmentedControl.cjs.map +1 -1
  113. package/dist/SegmentedControl.css.map +1 -1
  114. package/dist/SegmentedControl.mjs.map +1 -1
  115. package/dist/Slider.cjs.map +1 -1
  116. package/dist/Slider.css.map +1 -1
  117. package/dist/Slider.mjs.map +1 -1
  118. package/dist/StatusLight.cjs.map +1 -1
  119. package/dist/StatusLight.css.map +1 -1
  120. package/dist/StatusLight.mjs.map +1 -1
  121. package/dist/Switch.cjs.map +1 -1
  122. package/dist/Switch.css.map +1 -1
  123. package/dist/Switch.mjs.map +1 -1
  124. package/dist/TableView.cjs.map +1 -1
  125. package/dist/TableView.css.map +1 -1
  126. package/dist/TableView.mjs.map +1 -1
  127. package/dist/Tabs.cjs +5 -17
  128. package/dist/Tabs.cjs.map +1 -1
  129. package/dist/Tabs.css +4 -28
  130. package/dist/Tabs.css.map +1 -1
  131. package/dist/Tabs.mjs +5 -17
  132. package/dist/Tabs.mjs.map +1 -1
  133. package/dist/TagGroup.cjs.map +1 -1
  134. package/dist/TagGroup.css.map +1 -1
  135. package/dist/TagGroup.mjs.map +1 -1
  136. package/dist/TextField.cjs.map +1 -1
  137. package/dist/TextField.css.map +1 -1
  138. package/dist/TextField.mjs.map +1 -1
  139. package/dist/ToggleButton.cjs.map +1 -1
  140. package/dist/ToggleButton.css.map +1 -1
  141. package/dist/ToggleButton.mjs.map +1 -1
  142. package/dist/ToggleButtonGroup.cjs.map +1 -1
  143. package/dist/ToggleButtonGroup.mjs.map +1 -1
  144. package/dist/Tooltip.cjs.map +1 -1
  145. package/dist/Tooltip.css.map +1 -1
  146. package/dist/Tooltip.mjs.map +1 -1
  147. package/dist/TreeView.cjs +32 -10
  148. package/dist/TreeView.cjs.map +1 -1
  149. package/dist/TreeView.css +46 -26
  150. package/dist/TreeView.css.map +1 -1
  151. package/dist/TreeView.mjs +32 -10
  152. package/dist/TreeView.mjs.map +1 -1
  153. package/dist/types.d.ts +73 -71
  154. package/dist/types.d.ts.map +1 -1
  155. package/icons/Icon.cjs.map +1 -1
  156. package/icons/Icon.mjs.map +1 -1
  157. package/icons/Skeleton.cjs.map +1 -1
  158. package/icons/Skeleton.css.map +1 -1
  159. package/icons/Skeleton.mjs.map +1 -1
  160. package/package.json +21 -21
  161. package/src/Accordion.tsx +1 -1
  162. package/src/ActionButton.tsx +2 -2
  163. package/src/ActionMenu.tsx +1 -1
  164. package/src/Avatar.tsx +1 -1
  165. package/src/AvatarGroup.tsx +1 -1
  166. package/src/Breadcrumbs.tsx +4 -4
  167. package/src/Button.tsx +4 -4
  168. package/src/ButtonGroup.tsx +1 -1
  169. package/src/CardView.tsx +1 -1
  170. package/src/Checkbox.tsx +1 -1
  171. package/src/CheckboxGroup.tsx +2 -2
  172. package/src/CloseButton.tsx +1 -1
  173. package/src/ColorArea.tsx +1 -1
  174. package/src/ColorField.tsx +1 -1
  175. package/src/ColorSlider.tsx +1 -1
  176. package/src/ColorSwatch.tsx +1 -1
  177. package/src/ColorWheel.tsx +1 -1
  178. package/src/Content.tsx +7 -7
  179. package/src/ContextualHelp.tsx +2 -2
  180. package/src/Disclosure.tsx +1 -1
  181. package/src/Divider.tsx +1 -1
  182. package/src/DropZone.tsx +2 -2
  183. package/src/Field.tsx +1 -1
  184. package/src/Form.tsx +2 -2
  185. package/src/Icon.tsx +2 -2
  186. package/src/IllustratedMessage.tsx +1 -1
  187. package/src/Image.tsx +1 -1
  188. package/src/Link.tsx +2 -2
  189. package/src/Menu.tsx +4 -3
  190. package/src/Meter.tsx +1 -1
  191. package/src/NumberField.tsx +1 -1
  192. package/src/Picker.tsx +2 -1
  193. package/src/ProgressBar.tsx +1 -1
  194. package/src/ProgressCircle.tsx +1 -1
  195. package/src/RadioGroup.tsx +2 -2
  196. package/src/RangeSlider.tsx +1 -1
  197. package/src/SearchField.tsx +1 -1
  198. package/src/SegmentedControl.tsx +2 -2
  199. package/src/Skeleton.tsx +1 -1
  200. package/src/Slider.tsx +1 -1
  201. package/src/StatusLight.tsx +2 -2
  202. package/src/Switch.tsx +1 -1
  203. package/src/TableView.tsx +1 -1
  204. package/src/Tabs.tsx +16 -16
  205. package/src/TagGroup.tsx +2 -2
  206. package/src/TextField.tsx +2 -2
  207. package/src/ToggleButton.tsx +2 -2
  208. package/src/ToggleButtonGroup.tsx +1 -1
  209. package/src/Tooltip.tsx +3 -3
  210. package/src/TreeView.tsx +33 -12
package/src/TextField.tsx CHANGED
@@ -41,7 +41,7 @@ export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'c
41
41
  size?: 'S' | 'M' | 'L' | 'XL'
42
42
  }
43
43
 
44
- export const TextFieldContext = createContext<ContextValue<TextFieldProps, TextFieldRef>>(null);
44
+ export const TextFieldContext = createContext<ContextValue<Partial<TextFieldProps>, TextFieldRef>>(null);
45
45
 
46
46
  /**
47
47
  * TextFields are text inputs that allow users to input custom text entries
@@ -61,7 +61,7 @@ export const TextField = forwardRef(function TextField(props: TextFieldProps, re
61
61
 
62
62
  export interface TextAreaProps extends Omit<TextFieldProps, 'type' | 'pattern'> {}
63
63
 
64
- export const TextAreaContext = createContext<ContextValue<TextAreaProps, TextFieldRef<HTMLTextAreaElement>>>(null);
64
+ export const TextAreaContext = createContext<ContextValue<Partial<TextAreaProps>, TextFieldRef<HTMLTextAreaElement>>>(null);
65
65
 
66
66
  /**
67
67
  * TextAreas are multiline text inputs, useful for cases where users have
@@ -28,12 +28,12 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
28
28
 
29
29
  export interface ToggleButtonProps extends Omit<RACToggleButtonProps, 'className' | 'style' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange'>, StyleProps, ActionButtonStyleProps {
30
30
  /** The content to display in the button. */
31
- children?: ReactNode,
31
+ children: ReactNode,
32
32
  /** Whether the button should be displayed with an [emphasized style](https://spectrum.adobe.com/page/action-button/#Emphasis). */
33
33
  isEmphasized?: boolean
34
34
  }
35
35
 
36
- export const ToggleButtonContext = createContext<ContextValue<ToggleButtonProps, FocusableRefValue<HTMLButtonElement>>>(null);
36
+ export const ToggleButtonContext = createContext<ContextValue<Partial<ToggleButtonProps>, FocusableRefValue<HTMLButtonElement>>>(null);
37
37
 
38
38
  /**
39
39
  * ToggleButtons allow users to toggle a selection on or off, for example
@@ -20,7 +20,7 @@ export interface ToggleButtonGroupProps extends ActionButtonGroupProps, Omit<RAC
20
20
  isEmphasized?: boolean
21
21
  }
22
22
 
23
- export const ToggleButtonGroupContext = createContext<ContextValue<ToggleButtonGroupProps, HTMLDivElement>>(null);
23
+ export const ToggleButtonGroupContext = createContext<ContextValue<Partial<ToggleButtonGroupProps>, HTMLDivElement>>(null);
24
24
 
25
25
  /**
26
26
  * A ToggleButtonGroup is a grouping of related ToggleButtons, with single or multiple selection.
package/src/Tooltip.tsx CHANGED
@@ -29,7 +29,7 @@ import {useDOMRef} from '@react-spectrum/utils';
29
29
 
30
30
  export interface TooltipTriggerProps extends Omit<AriaTooltipTriggerComponentProps, 'children' | 'closeDelay'>, Pick<AriaTooltipProps, 'shouldFlip' | 'containerPadding' | 'offset' | 'crossOffset'> {
31
31
  /** The content of the tooltip. */
32
- children?: ReactNode,
32
+ children: ReactNode,
33
33
  /**
34
34
  * The placement of the element with respect to its anchor element.
35
35
  *
@@ -40,7 +40,7 @@ export interface TooltipTriggerProps extends Omit<AriaTooltipTriggerComponentPro
40
40
 
41
41
  export interface TooltipProps extends Omit<AriaTooltipProps, 'children' | 'className' | 'style' | 'triggerRef' | 'UNSTABLE_portalContainer' | 'isEntering' | 'isExiting' | 'placement' | 'containerPadding' | 'offset' | 'crossOffset' | 'shouldFlip' | 'arrowBoundaryOffset' | 'isOpen' | 'defaultOpen' | 'onOpenChange'>, UnsafeStyles {
42
42
  /** The content of the tooltip. */
43
- children?: ReactNode
43
+ children: ReactNode
44
44
  }
45
45
 
46
46
  const tooltip = style<TooltipRenderProps & {colorScheme: ColorScheme | 'light dark' | null}>({
@@ -123,7 +123,7 @@ const arrowStyles = style<TooltipRenderProps>({
123
123
  }
124
124
  });
125
125
 
126
- let InternalTooltipTriggerContext = createContext<TooltipTriggerProps>({});
126
+ let InternalTooltipTriggerContext = createContext<Partial<TooltipTriggerProps>>({});
127
127
 
128
128
  /**
129
129
  * Display container for Tooltip content. Has a directional arrow dependent on its placement.
package/src/TreeView.tsx CHANGED
@@ -39,6 +39,7 @@ import React, {createContext, forwardRef, isValidElement, JSXElementConstructor,
39
39
  import {Text, TextContext} from './Content';
40
40
  import {useDOMRef} from '@react-spectrum/utils';
41
41
  import {useLocale} from 'react-aria';
42
+ import {useScale} from './utils';
42
43
 
43
44
  interface S2TreeProps {
44
45
  // Only detatched is supported right now with the current styles from Spectrum
@@ -99,6 +100,7 @@ const tree = style({
99
100
 
100
101
  function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
101
102
  let {children, isDetached, isEmphasized} = props;
103
+ let scale = useScale();
102
104
 
103
105
  let renderer;
104
106
  if (typeof children === 'function') {
@@ -107,11 +109,15 @@ function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
107
109
 
108
110
  let domRef = useDOMRef(ref);
109
111
 
112
+ let rowHeight = isDetached ? 44 : 40;
113
+ if (scale === 'large') {
114
+ rowHeight = isDetached ? 54 : 50;
115
+ }
110
116
  let layout = useMemo(() => {
111
117
  return new UNSTABLE_ListLayout({
112
- rowHeight: isDetached ? 42 : 40
118
+ rowHeight
113
119
  });
114
- }, [isDetached]);
120
+ }, [rowHeight]);
115
121
 
116
122
  return (
117
123
  <UNSTABLE_Virtualizer layout={layout}>
@@ -189,9 +195,10 @@ const treeRow = style({
189
195
  const treeCellGrid = style({
190
196
  display: 'grid',
191
197
  width: 'full',
198
+ height: 'full',
192
199
  alignContent: 'center',
193
200
  alignItems: 'center',
194
- gridTemplateColumns: ['minmax(0, auto)', 'minmax(0, auto)', 'minmax(0, auto)', 40, 'minmax(0, auto)', '1fr', 'minmax(0, auto)', 'auto'],
201
+ gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],
195
202
  gridTemplateRows: '1fr',
196
203
  gridTemplateAreas: [
197
204
  'drag-handle checkbox level-padding expand-button icon content actions actionmenu'
@@ -306,8 +313,6 @@ const treeContent = style({
306
313
 
307
314
  const treeActions = style({
308
315
  gridArea: 'actions',
309
- flexGrow: 0,
310
- flexShrink: 0,
311
316
  /* 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 */
312
317
  marginStart: 2,
313
318
  marginEnd: 4
@@ -356,6 +361,7 @@ export const TreeViewItem = <T extends object>(props: TreeViewItemProps<T>) => {
356
361
  let nestedRows;
357
362
  let {renderer} = useTreeRendererContext();
358
363
  let {isDetached, isEmphasized} = useContext(InternalTreeContext);
364
+ let scale = useScale();
359
365
 
360
366
  if (typeof children === 'string') {
361
367
  content = <Text>{children}</Text>;
@@ -408,7 +414,7 @@ export const TreeViewItem = <T extends object>(props: TreeViewItemProps<T>) => {
408
414
  width: '[calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))]'
409
415
  })} />
410
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 */}
411
- {(hasChildRows || hasChildItems) && <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} />}
417
+ <ExpandableRowChevron isDisabled={isDisabled} isExpanded={isExpanded} scale={scale} isHidden={!(hasChildRows || hasChildItems)} />
412
418
  <Provider
413
419
  values={[
414
420
  [TextContext, {styles: treeContent}],
@@ -434,13 +440,22 @@ export const TreeViewItem = <T extends object>(props: TreeViewItemProps<T>) => {
434
440
  interface ExpandableRowChevronProps {
435
441
  isExpanded?: boolean,
436
442
  isDisabled?: boolean,
437
- isRTL?: boolean
443
+ isRTL?: boolean,
444
+ scale: 'medium' | 'large',
445
+ isHidden?: boolean
438
446
  }
439
447
 
440
448
  const expandButton = style<ExpandableRowChevronProps>({
441
449
  gridArea: 'expand-button',
442
- height: 'full',
443
- aspectRatio: 'square',
450
+ color: {
451
+ default: '[inherit]',
452
+ isDisabled: {
453
+ default: 'disabled',
454
+ forcedColors: 'GrayText'
455
+ }
456
+ },
457
+ height: 40,
458
+ width: 40,
444
459
  display: 'flex',
445
460
  flexWrap: 'wrap',
446
461
  alignContent: 'center',
@@ -453,16 +468,22 @@ const expandButton = style<ExpandableRowChevronProps>({
453
468
  isRTL: 'rotate(-90deg)'
454
469
  }
455
470
  },
471
+ padding: 0,
456
472
  transition: 'default',
457
473
  backgroundColor: 'transparent',
458
- borderStyle: 'none'
474
+ borderStyle: 'none',
475
+ disableTapHighlight: true,
476
+ visibility: {
477
+ isHidden: 'hidden'
478
+ }
459
479
  });
460
480
 
461
481
  function ExpandableRowChevron(props: ExpandableRowChevronProps) {
462
482
  let expandButtonRef = useRef<HTMLButtonElement>(null);
463
483
  let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);
464
- let {isExpanded, isDisabled} = fullProps;
484
+ let {isExpanded, isDisabled, scale, isHidden} = fullProps;
465
485
  let {direction} = useLocale();
486
+ isDisabled = isDisabled || isHidden;
466
487
 
467
488
  return (
468
489
  <Button
@@ -472,7 +493,7 @@ function ExpandableRowChevron(props: ExpandableRowChevronProps) {
472
493
  // Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually "focus" it
473
494
  excludeFromTabOrder={isAndroid() && !isDisabled}
474
495
  preventFocusOnPress
475
- className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl'})}>
496
+ className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>
476
497
  <Chevron
477
498
  className={style({
478
499
  scale: {