@react-spectrum/s2 3.0.0-nightly-4b8b33a02-250211 → 3.0.0-nightly-260eb700f-250213
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 +3 -3
- package/dist/Accordion.cjs.map +1 -1
- package/dist/Accordion.css +2 -2
- package/dist/Accordion.css.map +1 -1
- package/dist/Accordion.mjs +3 -3
- package/dist/Accordion.mjs.map +1 -1
- package/dist/ActionBar.cjs +47 -47
- package/dist/ActionBar.css +51 -51
- package/dist/ActionBar.mjs +47 -47
- package/dist/ActionButton.cjs +97 -97
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css +96 -96
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs +97 -97
- package/dist/ActionButton.mjs.map +1 -1
- package/dist/ActionButtonGroup.cjs +11 -11
- package/dist/ActionButtonGroup.css +9 -9
- package/dist/ActionButtonGroup.mjs +11 -11
- package/dist/ActionMenu.cjs.map +1 -1
- package/dist/ActionMenu.mjs.map +1 -1
- package/dist/AlertDialog.cjs +3 -3
- package/dist/AlertDialog.css +3 -3
- package/dist/AlertDialog.mjs +3 -3
- package/dist/Avatar.cjs +17 -17
- package/dist/Avatar.cjs.map +1 -1
- package/dist/Avatar.css +14 -14
- package/dist/Avatar.css.map +1 -1
- package/dist/Avatar.mjs +17 -17
- package/dist/Avatar.mjs.map +1 -1
- package/dist/AvatarGroup.cjs +100 -100
- package/dist/AvatarGroup.cjs.map +1 -1
- package/dist/AvatarGroup.css +34 -34
- package/dist/AvatarGroup.css.map +1 -1
- package/dist/AvatarGroup.mjs +100 -100
- package/dist/AvatarGroup.mjs.map +1 -1
- package/dist/Badge.cjs +68 -92
- package/dist/Badge.cjs.map +1 -1
- package/dist/Badge.css +92 -164
- package/dist/Badge.css.map +1 -1
- package/dist/Badge.mjs +68 -92
- package/dist/Badge.mjs.map +1 -1
- package/dist/Breadcrumbs.cjs +115 -115
- package/dist/Breadcrumbs.cjs.map +1 -1
- package/dist/Breadcrumbs.css +89 -89
- package/dist/Breadcrumbs.css.map +1 -1
- package/dist/Breadcrumbs.mjs +115 -115
- package/dist/Breadcrumbs.mjs.map +1 -1
- package/dist/Button.cjs +152 -236
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css +165 -309
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs +152 -236
- package/dist/Button.mjs.map +1 -1
- package/dist/ButtonGroup.cjs +19 -19
- package/dist/ButtonGroup.cjs.map +1 -1
- package/dist/ButtonGroup.css +15 -15
- package/dist/ButtonGroup.css.map +1 -1
- package/dist/ButtonGroup.mjs +19 -19
- package/dist/ButtonGroup.mjs.map +1 -1
- package/dist/Card.cjs +261 -264
- package/dist/Card.cjs.map +1 -1
- package/dist/Card.css +198 -210
- package/dist/Card.css.map +1 -1
- package/dist/Card.mjs +261 -264
- package/dist/Card.mjs.map +1 -1
- package/dist/CardView.cjs +15 -15
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css +18 -18
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs +15 -15
- package/dist/CardView.mjs.map +1 -1
- package/dist/CenterBaseline.cjs +1 -1
- package/dist/CenterBaseline.css +2 -2
- package/dist/CenterBaseline.mjs +1 -1
- package/dist/Checkbox.cjs +73 -124
- package/dist/Checkbox.cjs.map +1 -1
- package/dist/Checkbox.css +81 -201
- package/dist/Checkbox.css.map +1 -1
- package/dist/Checkbox.mjs +73 -124
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/CheckboxGroup.cjs +49 -49
- package/dist/CheckboxGroup.cjs.map +1 -1
- package/dist/CheckboxGroup.css +41 -41
- package/dist/CheckboxGroup.css.map +1 -1
- package/dist/CheckboxGroup.mjs +49 -49
- package/dist/CheckboxGroup.mjs.map +1 -1
- package/dist/ClearButton.cjs +15 -15
- package/dist/ClearButton.css +17 -17
- package/dist/ClearButton.mjs +15 -15
- package/dist/CloseButton.cjs +35 -35
- package/dist/CloseButton.cjs.map +1 -1
- package/dist/CloseButton.css +33 -33
- package/dist/CloseButton.css.map +1 -1
- package/dist/CloseButton.mjs +35 -35
- package/dist/CloseButton.mjs.map +1 -1
- package/dist/ColorArea.cjs +22 -22
- package/dist/ColorArea.cjs.map +1 -1
- package/dist/ColorArea.css +15 -15
- package/dist/ColorArea.css.map +1 -1
- package/dist/ColorArea.mjs +22 -22
- package/dist/ColorArea.mjs.map +1 -1
- package/dist/ColorField.cjs +38 -38
- package/dist/ColorField.cjs.map +1 -1
- package/dist/ColorField.css +32 -32
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs +38 -38
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorHandle.cjs +21 -27
- package/dist/ColorHandle.cjs.map +1 -1
- package/dist/ColorHandle.css +45 -93
- package/dist/ColorHandle.css.map +1 -1
- package/dist/ColorHandle.mjs +21 -27
- package/dist/ColorHandle.mjs.map +1 -1
- package/dist/ColorSlider.cjs +52 -52
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css +51 -51
- package/dist/ColorSlider.css.map +1 -1
- package/dist/ColorSlider.mjs +52 -52
- package/dist/ColorSlider.mjs.map +1 -1
- package/dist/ColorSwatch.cjs +24 -27
- package/dist/ColorSwatch.cjs.map +1 -1
- package/dist/ColorSwatch.css +29 -41
- package/dist/ColorSwatch.css.map +1 -1
- package/dist/ColorSwatch.mjs +24 -27
- package/dist/ColorSwatch.mjs.map +1 -1
- package/dist/ColorSwatchPicker.cjs +23 -23
- package/dist/ColorSwatchPicker.css +48 -60
- package/dist/ColorSwatchPicker.css.map +1 -1
- package/dist/ColorSwatchPicker.mjs +23 -23
- package/dist/ColorWheel.cjs +22 -22
- package/dist/ColorWheel.cjs.map +1 -1
- package/dist/ColorWheel.css +16 -16
- package/dist/ColorWheel.css.map +1 -1
- package/dist/ColorWheel.mjs +22 -22
- package/dist/ColorWheel.mjs.map +1 -1
- package/dist/ComboBox.cjs +80 -80
- package/dist/ComboBox.css +88 -88
- package/dist/ComboBox.mjs +80 -80
- package/dist/Content.cjs.map +1 -1
- package/dist/Content.mjs.map +1 -1
- package/dist/ContextualHelp.cjs +5 -5
- package/dist/ContextualHelp.cjs.map +1 -1
- package/dist/ContextualHelp.css +38 -38
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs +5 -5
- package/dist/ContextualHelp.mjs.map +1 -1
- package/dist/CustomDialog.cjs +31 -31
- package/dist/CustomDialog.css +25 -25
- package/dist/CustomDialog.mjs +31 -31
- package/dist/Dialog.cjs +17 -17
- package/dist/Dialog.css +64 -64
- package/dist/Dialog.mjs +17 -17
- package/dist/Disclosure.cjs +108 -111
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css +112 -124
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs +108 -111
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs +26 -26
- package/dist/Divider.cjs.map +1 -1
- package/dist/Divider.css +16 -16
- package/dist/Divider.css.map +1 -1
- package/dist/Divider.mjs +26 -26
- package/dist/Divider.mjs.map +1 -1
- package/dist/DropZone.cjs +47 -56
- package/dist/DropZone.cjs.map +1 -1
- package/dist/DropZone.css +56 -80
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs +47 -56
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs +150 -204
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css +150 -246
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs +150 -204
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs +10 -10
- package/dist/Form.cjs.map +1 -1
- package/dist/Form.css +9 -9
- package/dist/Form.css.map +1 -1
- package/dist/Form.mjs +10 -10
- package/dist/Form.mjs.map +1 -1
- package/dist/FullscreenDialog.cjs +5 -5
- package/dist/FullscreenDialog.css +72 -72
- package/dist/FullscreenDialog.mjs +5 -5
- package/dist/IllustratedMessage.cjs +134 -134
- package/dist/IllustratedMessage.cjs.map +1 -1
- package/dist/IllustratedMessage.css +69 -69
- package/dist/IllustratedMessage.css.map +1 -1
- package/dist/IllustratedMessage.mjs +134 -134
- package/dist/IllustratedMessage.mjs.map +1 -1
- package/dist/Image.cjs +12 -12
- package/dist/Image.cjs.map +1 -1
- package/dist/Image.css +13 -13
- package/dist/Image.css.map +1 -1
- package/dist/Image.mjs +12 -12
- package/dist/Image.mjs.map +1 -1
- package/dist/InlineAlert.cjs +77 -104
- package/dist/InlineAlert.cjs.map +1 -1
- package/dist/InlineAlert.css +77 -149
- package/dist/InlineAlert.css.map +1 -1
- package/dist/InlineAlert.mjs +77 -104
- package/dist/InlineAlert.mjs.map +1 -1
- package/dist/Link.cjs +31 -31
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.css +30 -30
- package/dist/Link.css.map +1 -1
- package/dist/Link.mjs +31 -31
- package/dist/Link.mjs.map +1 -1
- package/dist/Menu.cjs +269 -268
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +158 -154
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +269 -268
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs +85 -85
- package/dist/Meter.cjs.map +1 -1
- package/dist/Meter.css +81 -81
- package/dist/Meter.css.map +1 -1
- package/dist/Meter.mjs +85 -85
- package/dist/Meter.mjs.map +1 -1
- package/dist/Modal.cjs +48 -48
- package/dist/Modal.css +46 -46
- package/dist/Modal.mjs +48 -48
- package/dist/NumberField.cjs +115 -115
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css +114 -114
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs +115 -115
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +177 -194
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +167 -223
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +177 -194
- package/dist/Picker.mjs.map +1 -1
- package/dist/Popover.cjs +79 -85
- package/dist/Popover.cjs.map +1 -1
- package/dist/Popover.css +65 -89
- package/dist/Popover.css.map +1 -1
- package/dist/Popover.mjs +79 -85
- package/dist/Popover.mjs.map +1 -1
- package/dist/ProgressBar.cjs +98 -98
- package/dist/ProgressBar.cjs.map +1 -1
- package/dist/ProgressBar.css +92 -92
- package/dist/ProgressBar.css.map +1 -1
- package/dist/ProgressBar.mjs +98 -98
- package/dist/ProgressBar.mjs.map +1 -1
- package/dist/ProgressCircle.cjs +17 -17
- package/dist/ProgressCircle.cjs.map +1 -1
- package/dist/ProgressCircle.css +15 -15
- package/dist/ProgressCircle.css.map +1 -1
- package/dist/ProgressCircle.mjs +17 -17
- package/dist/ProgressCircle.mjs.map +1 -1
- package/dist/Provider.cjs +4 -4
- package/dist/Provider.css +5 -5
- package/dist/Provider.mjs +4 -4
- package/dist/Radio.cjs +80 -152
- package/dist/Radio.cjs.map +1 -1
- package/dist/Radio.css +96 -240
- package/dist/Radio.css.map +1 -1
- package/dist/Radio.mjs +80 -152
- package/dist/Radio.mjs.map +1 -1
- package/dist/RadioGroup.cjs +47 -47
- package/dist/RadioGroup.cjs.map +1 -1
- package/dist/RadioGroup.css +41 -41
- package/dist/RadioGroup.css.map +1 -1
- package/dist/RadioGroup.mjs +47 -47
- 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 +42 -42
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css +47 -47
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs +42 -42
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs +89 -101
- package/dist/SegmentedControl.cjs.map +1 -1
- package/dist/SegmentedControl.css +92 -140
- package/dist/SegmentedControl.css.map +1 -1
- package/dist/SegmentedControl.mjs +89 -101
- package/dist/SegmentedControl.mjs.map +1 -1
- package/dist/Slider.cjs +196 -229
- package/dist/Slider.cjs.map +1 -1
- package/dist/Slider.css +149 -221
- package/dist/Slider.css.map +1 -1
- package/dist/Slider.mjs +196 -229
- package/dist/Slider.mjs.map +1 -1
- package/dist/StatusLight.cjs +56 -56
- package/dist/StatusLight.cjs.map +1 -1
- package/dist/StatusLight.css +59 -59
- package/dist/StatusLight.css.map +1 -1
- package/dist/StatusLight.mjs +56 -56
- package/dist/StatusLight.mjs.map +1 -1
- package/dist/Switch.cjs +74 -107
- package/dist/Switch.cjs.map +1 -1
- package/dist/Switch.css +69 -141
- package/dist/Switch.css.map +1 -1
- package/dist/Switch.mjs +74 -107
- package/dist/Switch.mjs.map +1 -1
- package/dist/TableView.cjs +253 -280
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css +163 -199
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs +253 -280
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +112 -124
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +84 -108
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +112 -124
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TabsPicker.cjs +105 -105
- package/dist/TabsPicker.css +111 -111
- package/dist/TabsPicker.mjs +105 -105
- package/dist/TagGroup.cjs +148 -148
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css +134 -134
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs +148 -148
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs +59 -59
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css +62 -62
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs +59 -59
- package/dist/TextField.mjs.map +1 -1
- package/dist/ToggleButton.cjs +3 -3
- package/dist/ToggleButton.cjs.map +1 -1
- package/dist/ToggleButton.css +12 -12
- package/dist/ToggleButton.css.map +1 -1
- package/dist/ToggleButton.mjs +3 -3
- 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 +57 -60
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css +71 -83
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs +57 -60
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/TreeView.cjs +217 -244
- package/dist/TreeView.cjs.map +1 -1
- package/dist/TreeView.css +166 -190
- package/dist/TreeView.css.map +1 -1
- package/dist/TreeView.mjs +220 -244
- package/dist/TreeView.mjs.map +1 -1
- package/dist/main.cjs +1 -0
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +2 -2
- package/dist/module.mjs.map +1 -1
- package/dist/types.d.ts +77 -72
- 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 +2 -2
- package/icons/Skeleton.cjs.map +1 -1
- package/icons/Skeleton.css +5 -5
- package/icons/Skeleton.css.map +1 -1
- package/icons/Skeleton.mjs +2 -2
- 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 +97 -144
- package/src/index.ts +1 -1
- package/style/__tests__/style-macro.test.js +18 -18
- package/style/dist/spectrum-theme.cjs +10 -20
- package/style/dist/spectrum-theme.cjs.map +1 -1
- package/style/dist/spectrum-theme.mjs +10 -20
- package/style/dist/spectrum-theme.mjs.map +1 -1
- package/style/dist/types.d.ts +0 -4
- package/style/dist/types.d.ts.map +1 -1
- package/style/spectrum-theme.ts +11 -19
package/src/Tabs.tsx
CHANGED
|
@@ -31,11 +31,11 @@ import {createContext, forwardRef, ReactNode, useCallback, useContext, useEffect
|
|
|
31
31
|
import {focusRing, size, style} from '../style' with {type: 'macro'};
|
|
32
32
|
import {getAllowedOverrides, StyleProps, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
|
|
33
33
|
import {IconContext} from './Icon';
|
|
34
|
+
import {inertValue, useEffectEvent, useId, useLabels, useLayoutEffect, useResizeObserver} from '@react-aria/utils';
|
|
34
35
|
import {Picker, PickerItem} from './TabsPicker';
|
|
35
36
|
import {Text, TextContext} from './Content';
|
|
36
37
|
import {useControlledState} from '@react-stately/utils';
|
|
37
38
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
38
|
-
import {useEffectEvent, useId, useLabels, useLayoutEffect, useResizeObserver} from '@react-aria/utils';
|
|
39
39
|
import {useHasTabbableChild} from '@react-aria/focus';
|
|
40
40
|
import {useLocale} from '@react-aria/i18n';
|
|
41
41
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
@@ -44,7 +44,7 @@ export interface TabsProps extends Omit<AriaTabsProps, 'className' | 'style' | '
|
|
|
44
44
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
45
45
|
styles?: StylesPropWithHeight,
|
|
46
46
|
/** The content to display in the tabs. */
|
|
47
|
-
children
|
|
47
|
+
children: ReactNode,
|
|
48
48
|
/**
|
|
49
49
|
* The amount of space between the tabs.
|
|
50
50
|
* @default 'regular'
|
|
@@ -63,17 +63,20 @@ export interface TabProps extends Omit<AriaTabProps, 'children' | 'style' | 'cla
|
|
|
63
63
|
children: ReactNode
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
export interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'style' | 'className' | 'aria-label' | 'aria-labelledby'>, StyleProps {
|
|
66
|
+
export interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'style' | 'className' | 'aria-label' | 'aria-labelledby'>, StyleProps {
|
|
67
|
+
/** The content to display in the tablist. */
|
|
68
|
+
children: ReactNode | ((item: T) => ReactNode)
|
|
69
|
+
}
|
|
67
70
|
|
|
68
71
|
export interface TabPanelProps extends Omit<AriaTabPanelProps, 'children' | 'style' | 'className'>, UnsafeStyles {
|
|
69
72
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
70
73
|
styles?: StylesPropWithHeight,
|
|
71
74
|
/** The content to display in the tab panels. */
|
|
72
|
-
children
|
|
75
|
+
children: ReactNode
|
|
73
76
|
}
|
|
74
77
|
|
|
75
|
-
export const TabsContext = createContext<ContextValue<TabsProps
|
|
76
|
-
const InternalTabsContext = createContext<TabsProps
|
|
78
|
+
export const TabsContext = createContext<ContextValue<Partial<TabsProps>, DOMRefValue<HTMLDivElement>>>(null);
|
|
79
|
+
const InternalTabsContext = createContext<Partial<TabsProps>>({});
|
|
77
80
|
const CollapseContext = createContext({
|
|
78
81
|
showTabs: true,
|
|
79
82
|
menuId: '',
|
|
@@ -346,7 +349,8 @@ const tab = style({
|
|
|
346
349
|
labelBehavior: {
|
|
347
350
|
hide: size(6)
|
|
348
351
|
}
|
|
349
|
-
}
|
|
352
|
+
},
|
|
353
|
+
disableTapHighlight: true
|
|
350
354
|
}, getAllowedOverrides());
|
|
351
355
|
|
|
352
356
|
const icon = style({
|
|
@@ -409,17 +413,12 @@ export function Tab(props: TabProps) {
|
|
|
409
413
|
|
|
410
414
|
const tabPanel = style({
|
|
411
415
|
...focusRing(),
|
|
412
|
-
display: 'flex',
|
|
413
416
|
marginTop: 4,
|
|
414
|
-
marginX: -4,
|
|
415
|
-
paddingX: 4,
|
|
416
417
|
color: 'gray-800',
|
|
417
418
|
flexGrow: 1,
|
|
418
|
-
flexShrink: 1,
|
|
419
419
|
flexBasis: '[0%]',
|
|
420
420
|
minHeight: 0,
|
|
421
|
-
minWidth: 0
|
|
422
|
-
overflow: 'auto'
|
|
421
|
+
minWidth: 0
|
|
423
422
|
}, getAllowedOverrides({height: true}));
|
|
424
423
|
|
|
425
424
|
export function TabPanel(props: TabPanelProps) {
|
|
@@ -489,7 +488,7 @@ let HiddenTabs = function (props: {
|
|
|
489
488
|
return (
|
|
490
489
|
<div
|
|
491
490
|
// @ts-ignore
|
|
492
|
-
inert=
|
|
491
|
+
inert={inertValue(true)}
|
|
493
492
|
ref={listRef}
|
|
494
493
|
className={style({
|
|
495
494
|
display: '[inherit]',
|
|
@@ -518,7 +517,7 @@ let HiddenTabs = function (props: {
|
|
|
518
517
|
);
|
|
519
518
|
};
|
|
520
519
|
|
|
521
|
-
let TabsMenu = (props: {valueId: string, items: Array<Node<any>>, onSelectionChange: TabsProps['onSelectionChange']} & TabsProps) => {
|
|
520
|
+
let TabsMenu = (props: {valueId: string, items: Array<Node<any>>, onSelectionChange: TabsProps['onSelectionChange']} & Omit<TabsProps, 'children'>) => {
|
|
522
521
|
let {id, items, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, valueId} = props;
|
|
523
522
|
let {density, onSelectionChange, selectedKey, isDisabled, disabledKeys, labelBehavior} = useContext(InternalTabsContext);
|
|
524
523
|
let state = useContext(TabListStateContext);
|
|
@@ -613,7 +612,8 @@ let CollapsingTabs = ({collection, containerRef, ...props}: {collection: Collect
|
|
|
613
612
|
}
|
|
614
613
|
}, [collection.size, updateOverflow]);
|
|
615
614
|
|
|
616
|
-
|
|
615
|
+
// start with null so that the first render won't have a flicker
|
|
616
|
+
let prevOrientation = useRef<Orientation | null>(null);
|
|
617
617
|
useLayoutEffect(() => {
|
|
618
618
|
if (collection.size > 0 && prevOrientation.current !== orientation) {
|
|
619
619
|
updateOverflow();
|
package/src/TagGroup.tsx
CHANGED
|
@@ -52,7 +52,7 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
|
52
52
|
// Get types from RSP and extend those?
|
|
53
53
|
export interface TagProps extends Omit<AriaTagProps, 'children' | 'style' | 'className'> {
|
|
54
54
|
/** The children of the tag. */
|
|
55
|
-
children
|
|
55
|
+
children: ReactNode
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
export interface TagGroupProps<T> extends Omit<AriaTagGroupProps, 'children' | 'style' | 'className'>, Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState'>, Omit<SpectrumLabelableProps, 'isRequired' | 'necessityIndicator'>, StyleProps, Omit<HelpTextProps, 'errorMessage'> {
|
|
@@ -80,7 +80,7 @@ export interface TagGroupProps<T> extends Omit<AriaTagGroupProps, 'children' | '
|
|
|
80
80
|
onGroupAction?: () => void
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
export const TagGroupContext = createContext<ContextValue<TagGroupProps<any
|
|
83
|
+
export const TagGroupContext = createContext<ContextValue<Partial<TagGroupProps<any>>, DOMRefValue<HTMLDivElement>>>(null);
|
|
84
84
|
|
|
85
85
|
const helpTextStyles = style({
|
|
86
86
|
gridArea: 'helptext',
|
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
|
@@ -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,10 +35,11 @@ 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,
|
|
39
|
-
import {
|
|
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
|
+
import {useScale} from './utils';
|
|
42
43
|
|
|
43
44
|
interface S2TreeProps {
|
|
44
45
|
// Only detatched is supported right now with the current styles from Spectrum
|
|
@@ -65,10 +66,6 @@ interface TreeRendererContextValue {
|
|
|
65
66
|
}
|
|
66
67
|
const TreeRendererContext = createContext<TreeRendererContextValue>({});
|
|
67
68
|
|
|
68
|
-
function useTreeRendererContext(): TreeRendererContextValue {
|
|
69
|
-
return useContext(TreeRendererContext)!;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
69
|
|
|
73
70
|
let InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});
|
|
74
71
|
|
|
@@ -99,6 +96,7 @@ const tree = style({
|
|
|
99
96
|
|
|
100
97
|
function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
|
|
101
98
|
let {children, isDetached, isEmphasized} = props;
|
|
99
|
+
let scale = useScale();
|
|
102
100
|
|
|
103
101
|
let renderer;
|
|
104
102
|
if (typeof children === 'function') {
|
|
@@ -107,11 +105,15 @@ function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
107
105
|
|
|
108
106
|
let domRef = useDOMRef(ref);
|
|
109
107
|
|
|
108
|
+
let rowHeight = isDetached ? 44 : 40;
|
|
109
|
+
if (scale === 'large') {
|
|
110
|
+
rowHeight = isDetached ? 54 : 50;
|
|
111
|
+
}
|
|
110
112
|
let layout = useMemo(() => {
|
|
111
113
|
return new UNSTABLE_ListLayout({
|
|
112
|
-
rowHeight
|
|
114
|
+
rowHeight
|
|
113
115
|
});
|
|
114
|
-
}, [
|
|
116
|
+
}, [rowHeight]);
|
|
115
117
|
|
|
116
118
|
return (
|
|
117
119
|
<UNSTABLE_Virtualizer layout={layout}>
|
|
@@ -189,9 +191,10 @@ const treeRow = style({
|
|
|
189
191
|
const treeCellGrid = style({
|
|
190
192
|
display: 'grid',
|
|
191
193
|
width: 'full',
|
|
194
|
+
height: 'full',
|
|
192
195
|
alignContent: 'center',
|
|
193
196
|
alignItems: 'center',
|
|
194
|
-
gridTemplateColumns: ['
|
|
197
|
+
gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],
|
|
195
198
|
gridTemplateRows: '1fr',
|
|
196
199
|
gridTemplateAreas: [
|
|
197
200
|
'drag-handle checkbox level-padding expand-button icon content actions actionmenu'
|
|
@@ -219,66 +222,21 @@ const treeCellGrid = style({
|
|
|
219
222
|
forcedColors: 'Highlight'
|
|
220
223
|
}
|
|
221
224
|
},
|
|
222
|
-
|
|
223
|
-
default: 'transparent',
|
|
224
|
-
isSelected: {
|
|
225
|
-
isFirst: 'transparent'
|
|
226
|
-
},
|
|
227
|
-
isDetached: {
|
|
228
|
-
default: 'transparent',
|
|
229
|
-
isSelected: '--rowSelectedBorderColor'
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
borderInlineEndColor: {
|
|
233
|
-
default: 'transparent',
|
|
234
|
-
isSelected: 'transparent',
|
|
235
|
-
isDetached: {
|
|
236
|
-
default: 'transparent',
|
|
237
|
-
isSelected: '--rowSelectedBorderColor'
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
borderBottomColor: {
|
|
241
|
-
default: 'transparent',
|
|
242
|
-
isSelected: 'transparent',
|
|
243
|
-
isNextSelected: 'transparent',
|
|
244
|
-
isNextFocused: 'transparent',
|
|
245
|
-
isDetached: {
|
|
246
|
-
default: 'transparent',
|
|
247
|
-
isSelected: '--rowSelectedBorderColor'
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
borderInlineStartColor: {
|
|
251
|
-
default: 'transparent',
|
|
252
|
-
isSelected: 'transparent',
|
|
225
|
+
borderColor: {
|
|
253
226
|
isDetached: {
|
|
254
227
|
default: 'transparent',
|
|
255
228
|
isSelected: '--rowSelectedBorderColor'
|
|
256
229
|
}
|
|
257
230
|
},
|
|
258
|
-
|
|
259
|
-
default: 0,
|
|
260
|
-
isFirst: {
|
|
261
|
-
default: 1,
|
|
262
|
-
forcedColors: 0
|
|
263
|
-
},
|
|
264
|
-
isDetached: 1
|
|
265
|
-
},
|
|
266
|
-
borderBottomWidth: {
|
|
267
|
-
default: 0,
|
|
268
|
-
isDetached: 1
|
|
269
|
-
},
|
|
270
|
-
borderStartWidth: {
|
|
271
|
-
default: 0,
|
|
272
|
-
isDetached: 1
|
|
273
|
-
},
|
|
274
|
-
borderEndWidth: {
|
|
275
|
-
default: 0,
|
|
231
|
+
borderWidth: {
|
|
276
232
|
isDetached: 1
|
|
277
233
|
},
|
|
278
234
|
borderRadius: {
|
|
279
235
|
isDetached: 'default'
|
|
280
236
|
},
|
|
281
|
-
borderStyle:
|
|
237
|
+
borderStyle: {
|
|
238
|
+
isDetached: 'solid'
|
|
239
|
+
}
|
|
282
240
|
});
|
|
283
241
|
|
|
284
242
|
const treeCheckbox = style({
|
|
@@ -306,8 +264,6 @@ const treeContent = style({
|
|
|
306
264
|
|
|
307
265
|
const treeActions = style({
|
|
308
266
|
gridArea: 'actions',
|
|
309
|
-
flexGrow: 0,
|
|
310
|
-
flexShrink: 0,
|
|
311
267
|
/* 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
268
|
marginStart: 2,
|
|
313
269
|
marginEnd: 4
|
|
@@ -343,104 +299,95 @@ const treeRowFocusIndicator = raw(`
|
|
|
343
299
|
}`
|
|
344
300
|
);
|
|
345
301
|
|
|
346
|
-
|
|
347
302
|
export const TreeViewItem = <T extends object>(props: TreeViewItemProps<T>) => {
|
|
348
303
|
let {
|
|
349
|
-
children,
|
|
350
|
-
childItems,
|
|
351
|
-
hasChildItems,
|
|
352
304
|
href
|
|
353
305
|
} = props;
|
|
354
|
-
|
|
355
|
-
let content;
|
|
356
|
-
let nestedRows;
|
|
357
|
-
let {renderer} = useTreeRendererContext();
|
|
358
306
|
let {isDetached, isEmphasized} = useContext(InternalTreeContext);
|
|
359
307
|
|
|
360
|
-
if (typeof children === 'string') {
|
|
361
|
-
content = <Text>{children}</Text>;
|
|
362
|
-
} else {
|
|
363
|
-
content = [];
|
|
364
|
-
nestedRows = [];
|
|
365
|
-
React.Children.forEach(children, node => {
|
|
366
|
-
if (isValidElement(node) && node.type === TreeViewItem) {
|
|
367
|
-
nestedRows.push(node);
|
|
368
|
-
} else {
|
|
369
|
-
content.push(node);
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (childItems != null && renderer) {
|
|
375
|
-
nestedRows = (
|
|
376
|
-
<Collection items={childItems}>
|
|
377
|
-
{renderer}
|
|
378
|
-
</Collection>
|
|
379
|
-
);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
308
|
return (
|
|
383
309
|
<UNSTABLE_TreeItem
|
|
384
310
|
{...props}
|
|
385
|
-
className={(renderProps) => treeRow({
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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>
|
|
431
369
|
);
|
|
432
370
|
};
|
|
433
371
|
|
|
434
372
|
interface ExpandableRowChevronProps {
|
|
435
373
|
isExpanded?: boolean,
|
|
436
374
|
isDisabled?: boolean,
|
|
437
|
-
isRTL?: boolean
|
|
375
|
+
isRTL?: boolean,
|
|
376
|
+
scale: 'medium' | 'large',
|
|
377
|
+
isHidden?: boolean
|
|
438
378
|
}
|
|
439
379
|
|
|
440
380
|
const expandButton = style<ExpandableRowChevronProps>({
|
|
441
381
|
gridArea: 'expand-button',
|
|
442
|
-
|
|
443
|
-
|
|
382
|
+
color: {
|
|
383
|
+
default: '[inherit]',
|
|
384
|
+
isDisabled: {
|
|
385
|
+
default: 'disabled',
|
|
386
|
+
forcedColors: 'GrayText'
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
height: 40,
|
|
390
|
+
width: 40,
|
|
444
391
|
display: 'flex',
|
|
445
392
|
flexWrap: 'wrap',
|
|
446
393
|
alignContent: 'center',
|
|
@@ -453,16 +400,22 @@ const expandButton = style<ExpandableRowChevronProps>({
|
|
|
453
400
|
isRTL: 'rotate(-90deg)'
|
|
454
401
|
}
|
|
455
402
|
},
|
|
403
|
+
padding: 0,
|
|
456
404
|
transition: 'default',
|
|
457
405
|
backgroundColor: 'transparent',
|
|
458
|
-
borderStyle: 'none'
|
|
406
|
+
borderStyle: 'none',
|
|
407
|
+
disableTapHighlight: true,
|
|
408
|
+
visibility: {
|
|
409
|
+
isHidden: 'hidden'
|
|
410
|
+
}
|
|
459
411
|
});
|
|
460
412
|
|
|
461
413
|
function ExpandableRowChevron(props: ExpandableRowChevronProps) {
|
|
462
414
|
let expandButtonRef = useRef<HTMLButtonElement>(null);
|
|
463
415
|
let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);
|
|
464
|
-
let {isExpanded, isDisabled} = fullProps;
|
|
416
|
+
let {isExpanded, isDisabled, scale, isHidden} = fullProps;
|
|
465
417
|
let {direction} = useLocale();
|
|
418
|
+
isDisabled = isDisabled || isHidden;
|
|
466
419
|
|
|
467
420
|
return (
|
|
468
421
|
<Button
|
|
@@ -472,7 +425,7 @@ function ExpandableRowChevron(props: ExpandableRowChevronProps) {
|
|
|
472
425
|
// Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually "focus" it
|
|
473
426
|
excludeFromTabOrder={isAndroid() && !isDisabled}
|
|
474
427
|
preventFocusOnPress
|
|
475
|
-
className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl'})}>
|
|
428
|
+
className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>
|
|
476
429
|
<Chevron
|
|
477
430
|
className={style({
|
|
478
431
|
scale: {
|
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
|
-
.
|
|
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
|
-
.
|
|
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('"
|
|
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
|
-
.
|
|
76
|
+
.uc {
|
|
77
77
|
border-top-width: 2px;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
.
|
|
81
|
+
.vc {
|
|
82
82
|
border-bottom-width: 2px;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
|
|
86
|
-
.
|
|
87
|
-
border-inline-start-width: var(--
|
|
86
|
+
.s-375toy {
|
|
87
|
+
border-inline-start-width: var(--s);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
|
|
91
|
-
.
|
|
91
|
+
.tc {
|
|
92
92
|
border-inline-end-width: 2px;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
.
|
|
97
|
-
padding-inline-start: var(--
|
|
96
|
+
.C-375tnm {
|
|
97
|
+
padding-inline-start: var(--C);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
.
|
|
102
|
-
padding-inline-end: calc(var(--
|
|
101
|
+
.DI {
|
|
102
|
+
padding-inline-end: calc(var(--k, var(--o)) * 3 / 8);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
.
|
|
107
|
-
width: calc(200px - var(--
|
|
106
|
+
.l-4s570k {
|
|
107
|
+
width: calc(200px - var(--s) - var(--C));
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
|
|
111
|
-
.-
|
|
112
|
-
--
|
|
111
|
+
.-_375toy_s-c {
|
|
112
|
+
--s: 2px;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
|
|
116
|
-
.-
|
|
117
|
-
--
|
|
116
|
+
.-_375tnm_C-I {
|
|
117
|
+
--C: calc(var(--k, var(--o)) * 3 / 8);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|