@react-spectrum/s2 3.0.0-nightly-cc08a8dbc-250210 → 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.
- package/dist/Accordion.cjs.map +1 -1
- package/dist/Accordion.css.map +1 -1
- package/dist/Accordion.mjs.map +1 -1
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs.map +1 -1
- package/dist/ActionMenu.cjs.map +1 -1
- package/dist/ActionMenu.mjs.map +1 -1
- package/dist/Avatar.cjs.map +1 -1
- package/dist/Avatar.css.map +1 -1
- package/dist/Avatar.mjs.map +1 -1
- package/dist/AvatarGroup.cjs.map +1 -1
- package/dist/AvatarGroup.css.map +1 -1
- package/dist/AvatarGroup.mjs.map +1 -1
- package/dist/Breadcrumbs.cjs.map +1 -1
- package/dist/Breadcrumbs.css.map +1 -1
- package/dist/Breadcrumbs.mjs.map +1 -1
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs.map +1 -1
- package/dist/ButtonGroup.cjs.map +1 -1
- package/dist/ButtonGroup.css.map +1 -1
- package/dist/ButtonGroup.mjs.map +1 -1
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs.map +1 -1
- package/dist/Checkbox.cjs.map +1 -1
- package/dist/Checkbox.css.map +1 -1
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/CheckboxGroup.cjs.map +1 -1
- package/dist/CheckboxGroup.css.map +1 -1
- package/dist/CheckboxGroup.mjs.map +1 -1
- package/dist/CloseButton.cjs.map +1 -1
- package/dist/CloseButton.css.map +1 -1
- package/dist/CloseButton.mjs.map +1 -1
- package/dist/ColorArea.cjs.map +1 -1
- package/dist/ColorArea.css.map +1 -1
- package/dist/ColorArea.mjs.map +1 -1
- package/dist/ColorField.cjs.map +1 -1
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css.map +1 -1
- package/dist/ColorSlider.mjs.map +1 -1
- package/dist/ColorSwatch.cjs.map +1 -1
- package/dist/ColorSwatch.css.map +1 -1
- package/dist/ColorSwatch.mjs.map +1 -1
- package/dist/ColorWheel.cjs.map +1 -1
- package/dist/ColorWheel.css.map +1 -1
- package/dist/ColorWheel.mjs.map +1 -1
- package/dist/Content.cjs.map +1 -1
- package/dist/Content.mjs.map +1 -1
- package/dist/ContextualHelp.cjs.map +1 -1
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs.map +1 -1
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs.map +1 -1
- package/dist/Divider.css.map +1 -1
- package/dist/Divider.mjs.map +1 -1
- package/dist/DropZone.cjs.map +1 -1
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs.map +1 -1
- package/dist/Form.css.map +1 -1
- package/dist/Form.mjs.map +1 -1
- package/dist/IllustratedMessage.cjs.map +1 -1
- package/dist/IllustratedMessage.css.map +1 -1
- package/dist/IllustratedMessage.mjs.map +1 -1
- package/dist/Image.cjs.map +1 -1
- package/dist/Image.css.map +1 -1
- package/dist/Image.mjs.map +1 -1
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.css.map +1 -1
- package/dist/Link.mjs.map +1 -1
- package/dist/Menu.cjs +1 -0
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +4 -0
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +1 -0
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs.map +1 -1
- package/dist/Meter.css.map +1 -1
- package/dist/Meter.mjs.map +1 -1
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +1 -0
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +4 -0
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +1 -0
- package/dist/Picker.mjs.map +1 -1
- package/dist/ProgressBar.cjs.map +1 -1
- package/dist/ProgressBar.css.map +1 -1
- package/dist/ProgressBar.mjs.map +1 -1
- package/dist/ProgressCircle.cjs.map +1 -1
- package/dist/ProgressCircle.css.map +1 -1
- package/dist/ProgressCircle.mjs.map +1 -1
- package/dist/RadioGroup.cjs.map +1 -1
- package/dist/RadioGroup.css.map +1 -1
- package/dist/RadioGroup.mjs.map +1 -1
- package/dist/RangeSlider.cjs.map +1 -1
- package/dist/RangeSlider.mjs.map +1 -1
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs.map +1 -1
- package/dist/SegmentedControl.css.map +1 -1
- package/dist/SegmentedControl.mjs.map +1 -1
- package/dist/Slider.cjs.map +1 -1
- package/dist/Slider.css.map +1 -1
- package/dist/Slider.mjs.map +1 -1
- package/dist/StatusLight.cjs.map +1 -1
- package/dist/StatusLight.css.map +1 -1
- package/dist/StatusLight.mjs.map +1 -1
- package/dist/Switch.cjs.map +1 -1
- package/dist/Switch.css.map +1 -1
- package/dist/Switch.mjs.map +1 -1
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +5 -17
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +4 -28
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +5 -17
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs.map +1 -1
- package/dist/ToggleButton.cjs.map +1 -1
- package/dist/ToggleButton.css.map +1 -1
- package/dist/ToggleButton.mjs.map +1 -1
- package/dist/ToggleButtonGroup.cjs.map +1 -1
- package/dist/ToggleButtonGroup.mjs.map +1 -1
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/TreeView.cjs +32 -10
- package/dist/TreeView.cjs.map +1 -1
- package/dist/TreeView.css +46 -26
- package/dist/TreeView.css.map +1 -1
- package/dist/TreeView.mjs +32 -10
- package/dist/TreeView.mjs.map +1 -1
- package/dist/types.d.ts +73 -71
- package/dist/types.d.ts.map +1 -1
- package/icons/Icon.cjs.map +1 -1
- package/icons/Icon.mjs.map +1 -1
- package/icons/Skeleton.cjs.map +1 -1
- package/icons/Skeleton.css.map +1 -1
- package/icons/Skeleton.mjs.map +1 -1
- package/package.json +21 -21
- package/src/Accordion.tsx +1 -1
- package/src/ActionButton.tsx +2 -2
- package/src/ActionMenu.tsx +1 -1
- package/src/Avatar.tsx +1 -1
- package/src/AvatarGroup.tsx +1 -1
- package/src/Breadcrumbs.tsx +4 -4
- package/src/Button.tsx +4 -4
- package/src/ButtonGroup.tsx +1 -1
- package/src/CardView.tsx +1 -1
- package/src/Checkbox.tsx +1 -1
- package/src/CheckboxGroup.tsx +2 -2
- package/src/CloseButton.tsx +1 -1
- package/src/ColorArea.tsx +1 -1
- package/src/ColorField.tsx +1 -1
- package/src/ColorSlider.tsx +1 -1
- package/src/ColorSwatch.tsx +1 -1
- package/src/ColorWheel.tsx +1 -1
- package/src/Content.tsx +7 -7
- package/src/ContextualHelp.tsx +2 -2
- package/src/Disclosure.tsx +1 -1
- package/src/Divider.tsx +1 -1
- package/src/DropZone.tsx +2 -2
- package/src/Field.tsx +1 -1
- package/src/Form.tsx +2 -2
- package/src/Icon.tsx +2 -2
- package/src/IllustratedMessage.tsx +1 -1
- package/src/Image.tsx +1 -1
- package/src/Link.tsx +2 -2
- package/src/Menu.tsx +4 -3
- package/src/Meter.tsx +1 -1
- package/src/NumberField.tsx +1 -1
- package/src/Picker.tsx +2 -1
- package/src/ProgressBar.tsx +1 -1
- package/src/ProgressCircle.tsx +1 -1
- package/src/RadioGroup.tsx +2 -2
- package/src/RangeSlider.tsx +1 -1
- package/src/SearchField.tsx +1 -1
- package/src/SegmentedControl.tsx +2 -2
- package/src/Skeleton.tsx +1 -1
- package/src/Slider.tsx +1 -1
- package/src/StatusLight.tsx +2 -2
- package/src/Switch.tsx +1 -1
- package/src/TableView.tsx +1 -1
- package/src/Tabs.tsx +16 -16
- package/src/TagGroup.tsx +2 -2
- package/src/TextField.tsx +2 -2
- package/src/ToggleButton.tsx +2 -2
- package/src/ToggleButtonGroup.tsx +1 -1
- package/src/Tooltip.tsx +3 -3
- 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
|
|
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
|
|
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
|
package/src/ToggleButton.tsx
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
118
|
+
rowHeight
|
|
113
119
|
});
|
|
114
|
-
}, [
|
|
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: ['
|
|
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
|
-
|
|
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
|
-
|
|
443
|
-
|
|
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: {
|