@react-spectrum/s2 0.6.0 → 0.7.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.
- package/dist/Accordion.cjs.map +1 -1
- package/dist/Accordion.css +1 -5
- package/dist/Accordion.css.map +1 -1
- package/dist/Accordion.mjs.map +1 -1
- package/dist/ActionBar.cjs +2 -2
- package/dist/ActionBar.css +0 -6
- package/dist/ActionBar.css.map +1 -1
- package/dist/ActionBar.mjs +2 -2
- package/dist/ActionButton.cjs +4 -4
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css +0 -6
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs +4 -4
- package/dist/ActionButton.mjs.map +1 -1
- package/dist/ActionButtonGroup.css +1 -5
- package/dist/ActionButtonGroup.css.map +1 -1
- package/dist/ActionMenu.cjs.map +1 -1
- package/dist/ActionMenu.mjs.map +1 -1
- package/dist/AlertDialog.css +1 -5
- package/dist/AlertDialog.css.map +1 -1
- package/dist/Avatar.cjs.map +1 -1
- package/dist/Avatar.css +1 -5
- package/dist/Avatar.css.map +1 -1
- package/dist/Avatar.mjs.map +1 -1
- package/dist/AvatarGroup.cjs +1 -1
- package/dist/AvatarGroup.cjs.map +1 -1
- package/dist/AvatarGroup.css +0 -6
- package/dist/AvatarGroup.css.map +1 -1
- package/dist/AvatarGroup.mjs +1 -1
- package/dist/AvatarGroup.mjs.map +1 -1
- package/dist/Badge.cjs +32 -14
- package/dist/Badge.cjs.map +1 -1
- package/dist/Badge.css +26 -8
- package/dist/Badge.css.map +1 -1
- package/dist/Badge.mjs +33 -15
- package/dist/Badge.mjs.map +1 -1
- package/dist/Breadcrumbs.cjs +7 -7
- package/dist/Breadcrumbs.cjs.map +1 -1
- package/dist/Breadcrumbs.css +0 -6
- package/dist/Breadcrumbs.css.map +1 -1
- package/dist/Breadcrumbs.mjs +8 -8
- package/dist/Breadcrumbs.mjs.map +1 -1
- package/dist/Button.cjs +4 -4
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css +0 -6
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs +4 -4
- package/dist/Button.mjs.map +1 -1
- package/dist/ButtonGroup.cjs +1 -1
- package/dist/ButtonGroup.cjs.map +1 -1
- package/dist/ButtonGroup.css +1 -5
- package/dist/ButtonGroup.css.map +1 -1
- package/dist/ButtonGroup.mjs +1 -1
- package/dist/ButtonGroup.mjs.map +1 -1
- package/dist/Card.cjs +15 -15
- package/dist/Card.cjs.map +1 -1
- package/dist/Card.css +0 -6
- package/dist/Card.css.map +1 -1
- package/dist/Card.mjs +16 -16
- package/dist/Card.mjs.map +1 -1
- package/dist/CardView.cjs +71 -309
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css +1 -5
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs +28 -266
- package/dist/CardView.mjs.map +1 -1
- package/dist/CenterBaseline.cjs +1 -1
- package/dist/CenterBaseline.css +1 -5
- package/dist/CenterBaseline.css.map +1 -1
- package/dist/CenterBaseline.mjs +1 -1
- package/dist/Checkbox.cjs +1 -1
- package/dist/Checkbox.cjs.map +1 -1
- package/dist/Checkbox.css +0 -6
- package/dist/Checkbox.css.map +1 -1
- package/dist/Checkbox.mjs +1 -1
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/CheckboxGroup.cjs.map +1 -1
- package/dist/CheckboxGroup.css +0 -6
- package/dist/CheckboxGroup.css.map +1 -1
- package/dist/CheckboxGroup.mjs.map +1 -1
- package/dist/ClearButton.css +1 -5
- package/dist/ClearButton.css.map +1 -1
- package/dist/CloseButton.cjs.map +1 -1
- package/dist/CloseButton.css +1 -5
- 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 +1 -5
- 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 +0 -6
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorHandle.cjs +3 -3
- package/dist/ColorHandle.css +1 -5
- package/dist/ColorHandle.css.map +1 -1
- package/dist/ColorHandle.mjs +3 -3
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css +0 -6
- 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 +1 -5
- package/dist/ColorSwatch.css.map +1 -1
- package/dist/ColorSwatch.mjs.map +1 -1
- package/dist/ColorSwatchPicker.cjs +1 -1
- package/dist/ColorSwatchPicker.cjs.map +1 -1
- package/dist/ColorSwatchPicker.css +1 -5
- package/dist/ColorSwatchPicker.css.map +1 -1
- package/dist/ColorSwatchPicker.mjs +1 -1
- package/dist/ColorSwatchPicker.mjs.map +1 -1
- package/dist/ColorWheel.cjs.map +1 -1
- package/dist/ColorWheel.css +1 -5
- package/dist/ColorWheel.css.map +1 -1
- package/dist/ColorWheel.mjs.map +1 -1
- package/dist/ComboBox.cjs +2 -2
- package/dist/ComboBox.css +0 -6
- package/dist/ComboBox.css.map +1 -1
- package/dist/ComboBox.mjs +2 -2
- package/dist/Content.cjs +3 -1
- package/dist/Content.cjs.map +1 -1
- package/dist/Content.mjs +3 -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 +0 -6
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs +5 -5
- package/dist/ContextualHelp.mjs.map +1 -1
- package/dist/CustomDialog.css +1 -5
- package/dist/CustomDialog.css.map +1 -1
- package/dist/Dialog.cjs +10 -10
- package/dist/Dialog.css +0 -6
- package/dist/Dialog.css.map +1 -1
- package/dist/Dialog.mjs +10 -10
- package/dist/Disclosure.cjs +2 -2
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css +0 -6
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs +2 -2
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs.map +1 -1
- package/dist/Divider.css +1 -5
- 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 +0 -6
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs +7 -7
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css +0 -6
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs +7 -7
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs.map +1 -1
- package/dist/Form.css +1 -5
- package/dist/Form.css.map +1 -1
- package/dist/Form.mjs.map +1 -1
- package/dist/FullscreenDialog.cjs +5 -5
- package/dist/FullscreenDialog.css +0 -6
- package/dist/FullscreenDialog.css.map +1 -1
- package/dist/FullscreenDialog.mjs +5 -5
- package/dist/IllustratedMessage.cjs +1 -1
- package/dist/IllustratedMessage.cjs.map +1 -1
- package/dist/IllustratedMessage.css +0 -6
- package/dist/IllustratedMessage.css.map +1 -1
- package/dist/IllustratedMessage.mjs +1 -1
- package/dist/IllustratedMessage.mjs.map +1 -1
- package/dist/Image.cjs +14 -2
- package/dist/Image.cjs.map +1 -1
- package/dist/Image.css +1 -5
- package/dist/Image.css.map +1 -1
- package/dist/Image.mjs +15 -3
- package/dist/Image.mjs.map +1 -1
- package/dist/InlineAlert.cjs +1 -1
- package/dist/InlineAlert.css +0 -6
- package/dist/InlineAlert.css.map +1 -1
- package/dist/InlineAlert.mjs +1 -1
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.css +0 -6
- package/dist/Link.css.map +1 -1
- package/dist/Link.mjs.map +1 -1
- package/dist/Menu.cjs +20 -8
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +12 -6
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +21 -9
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs.map +1 -1
- package/dist/Meter.css +0 -6
- package/dist/Meter.css.map +1 -1
- package/dist/Meter.mjs.map +1 -1
- package/dist/Modal.css +1 -5
- package/dist/Modal.css.map +1 -1
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css +0 -6
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +95 -70
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +8 -10
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +96 -71
- package/dist/Picker.mjs.map +1 -1
- package/dist/Popover.cjs +1 -3
- package/dist/Popover.cjs.map +1 -1
- package/dist/Popover.css +5 -9
- package/dist/Popover.css.map +1 -1
- package/dist/Popover.mjs +1 -3
- package/dist/Popover.mjs.map +1 -1
- package/dist/ProgressBar.cjs.map +1 -1
- package/dist/ProgressBar.css +0 -6
- 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 +1 -5
- package/dist/ProgressCircle.css.map +1 -1
- package/dist/ProgressCircle.mjs.map +1 -1
- package/dist/Provider.css +1 -5
- package/dist/Provider.css.map +1 -1
- package/dist/Radio.css +0 -6
- package/dist/Radio.css.map +1 -1
- package/dist/RadioGroup.cjs.map +1 -1
- package/dist/RadioGroup.css +0 -6
- 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 +3 -3
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css +0 -6
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs +3 -3
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs +7 -7
- package/dist/SegmentedControl.cjs.map +1 -1
- package/dist/SegmentedControl.css +0 -6
- package/dist/SegmentedControl.css.map +1 -1
- package/dist/SegmentedControl.mjs +8 -8
- package/dist/SegmentedControl.mjs.map +1 -1
- package/dist/Slider.cjs.map +1 -1
- package/dist/Slider.css +0 -6
- 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 +0 -6
- 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 +0 -6
- package/dist/Switch.css.map +1 -1
- package/dist/Switch.mjs.map +1 -1
- package/dist/TableView.cjs +75 -92
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css +10 -8
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs +76 -93
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +451 -167
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +208 -122
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +451 -167
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TabsPicker.cjs +415 -0
- package/dist/TabsPicker.cjs.map +1 -0
- package/dist/TabsPicker.css +482 -0
- package/dist/TabsPicker.css.map +1 -0
- package/dist/TabsPicker.mjs +409 -0
- package/dist/TabsPicker.mjs.map +1 -0
- package/dist/TagGroup.cjs +13 -13
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css +0 -6
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs +13 -13
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs +1 -1
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css +0 -6
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs +1 -1
- package/dist/TextField.mjs.map +1 -1
- package/dist/ToggleButton.cjs +3 -3
- package/dist/ToggleButton.cjs.map +1 -1
- package/dist/ToggleButton.css +1 -5
- 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 +1 -1
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css +0 -6
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs +1 -1
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/TreeView.cjs +439 -0
- package/dist/TreeView.cjs.map +1 -0
- package/dist/TreeView.css +608 -0
- package/dist/TreeView.css.map +1 -0
- package/dist/TreeView.mjs +432 -0
- package/dist/TreeView.mjs.map +1 -0
- package/dist/main.cjs +5 -0
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +3 -1
- package/dist/module.mjs.map +1 -1
- package/dist/types.d.ts +120 -81
- package/dist/types.d.ts.map +1 -1
- package/icons/3DMaterial.cjs.map +1 -1
- package/icons/3DMaterial.mjs.map +1 -1
- package/icons/ABC.cjs +36 -0
- package/icons/ABC.cjs.map +1 -0
- package/icons/ABC.mjs +25 -0
- package/icons/ABC.mjs.map +1 -0
- package/icons/AlertDiamond.cjs.map +1 -1
- package/icons/AlertDiamond.mjs.map +1 -1
- package/icons/Animation.cjs.map +1 -1
- package/icons/Animation.mjs.map +1 -1
- package/icons/AnimationNo.cjs.map +1 -1
- package/icons/AnimationNo.mjs.map +1 -1
- package/icons/App.cjs +42 -0
- package/icons/App.cjs.map +1 -0
- package/icons/App.mjs +31 -0
- package/icons/App.mjs.map +1 -0
- package/icons/AspectRatio.cjs.map +1 -1
- package/icons/AspectRatio.mjs.map +1 -1
- package/icons/Asset.cjs +1 -5
- package/icons/Asset.cjs.map +1 -1
- package/icons/Asset.mjs +1 -5
- package/icons/Asset.mjs.map +1 -1
- package/icons/AudioWave.cjs.map +1 -1
- package/icons/AudioWave.mjs.map +1 -1
- package/icons/BadgeVerified.cjs.map +1 -1
- package/icons/BadgeVerified.mjs.map +1 -1
- package/icons/Bell.cjs.map +1 -1
- package/icons/Bell.mjs.map +1 -1
- package/icons/Bookmark.cjs +36 -0
- package/icons/Bookmark.cjs.map +1 -0
- package/icons/Bookmark.mjs +25 -0
- package/icons/Bookmark.mjs.map +1 -0
- package/icons/Brand.cjs.map +1 -1
- package/icons/Brand.mjs.map +1 -1
- package/icons/Building.cjs +62 -0
- package/icons/Building.cjs.map +1 -0
- package/icons/Building.mjs +51 -0
- package/icons/Building.mjs.map +1 -0
- package/icons/CalendarEdit.cjs.map +1 -1
- package/icons/CalendarEdit.mjs.map +1 -1
- package/icons/CallCenter.cjs +36 -0
- package/icons/CallCenter.cjs.map +1 -0
- package/icons/CallCenter.mjs +25 -0
- package/icons/CallCenter.mjs.map +1 -0
- package/icons/CameraProperties.cjs.map +1 -1
- package/icons/CameraProperties.mjs.map +1 -1
- package/icons/Channel.cjs.map +1 -1
- package/icons/Channel.mjs.map +1 -1
- package/icons/ChartBarVert.cjs +36 -0
- package/icons/ChartBarVert.cjs.map +1 -0
- package/icons/ChartBarVert.mjs +25 -0
- package/icons/ChartBarVert.mjs.map +1 -0
- package/icons/ChartPie.cjs +36 -0
- package/icons/ChartPie.cjs.map +1 -0
- package/icons/ChartPie.mjs +25 -0
- package/icons/ChartPie.mjs.map +1 -0
- package/icons/ChartTrend.cjs +36 -0
- package/icons/ChartTrend.cjs.map +1 -0
- package/icons/ChartTrend.mjs +25 -0
- package/icons/ChartTrend.mjs.map +1 -0
- package/icons/Chat.cjs +36 -0
- package/icons/Chat.cjs.map +1 -0
- package/icons/Chat.mjs +25 -0
- package/icons/Chat.mjs.map +1 -0
- package/icons/CheckBox.cjs.map +1 -1
- package/icons/CheckBox.mjs.map +1 -1
- package/icons/Checkmark.cjs +8 -8
- package/icons/Checkmark.cjs.map +1 -1
- package/icons/Checkmark.mjs +8 -8
- package/icons/Checkmark.mjs.map +1 -1
- package/icons/ChevronDoubleLeft.cjs +42 -0
- package/icons/ChevronDoubleLeft.cjs.map +1 -0
- package/icons/ChevronDoubleLeft.d.ts +5 -0
- package/icons/ChevronDoubleLeft.mjs +31 -0
- package/icons/ChevronDoubleLeft.mjs.map +1 -0
- package/icons/ChevronDoubleRight.cjs +42 -0
- package/icons/ChevronDoubleRight.cjs.map +1 -0
- package/icons/ChevronDoubleRight.d.ts +5 -0
- package/icons/ChevronDoubleRight.mjs +31 -0
- package/icons/ChevronDoubleRight.mjs.map +1 -0
- package/icons/ChevronDown.cjs +8 -8
- package/icons/ChevronDown.cjs.map +1 -1
- package/icons/ChevronDown.mjs +8 -8
- package/icons/ChevronDown.mjs.map +1 -1
- package/icons/ChevronLeft.cjs.map +1 -1
- package/icons/ChevronLeft.mjs.map +1 -1
- package/icons/ChevronRight.cjs.map +1 -1
- package/icons/ChevronRight.mjs.map +1 -1
- package/icons/ChevronUp.cjs +36 -0
- package/icons/ChevronUp.cjs.map +1 -0
- package/icons/ChevronUp.d.ts +5 -0
- package/icons/ChevronUp.mjs +25 -0
- package/icons/ChevronUp.mjs.map +1 -0
- package/icons/Circle.cjs.map +1 -1
- package/icons/Circle.mjs.map +1 -1
- package/icons/Close.cjs.map +1 -1
- package/icons/Close.mjs.map +1 -1
- package/icons/CloseCaptions.cjs.map +1 -1
- package/icons/CloseCaptions.mjs.map +1 -1
- package/icons/Code.cjs +36 -0
- package/icons/Code.cjs.map +1 -0
- package/icons/Code.d.ts +5 -0
- package/icons/Code.mjs +25 -0
- package/icons/Code.mjs.map +1 -0
- package/icons/Collection.cjs.map +1 -1
- package/icons/Collection.mjs.map +1 -1
- package/icons/ColorHarmony.cjs.map +1 -1
- package/icons/ColorHarmony.mjs.map +1 -1
- package/icons/CommentCheckmark.cjs.map +1 -1
- package/icons/CommentCheckmark.mjs.map +1 -1
- package/icons/CommentHide.cjs.map +1 -1
- package/icons/CommentHide.mjs.map +1 -1
- package/icons/CommentRemove.cjs.map +1 -1
- package/icons/CommentRemove.mjs.map +1 -1
- package/icons/Compare.cjs +42 -0
- package/icons/Compare.cjs.map +1 -0
- package/icons/Compare.d.ts +5 -0
- package/icons/Compare.mjs +31 -0
- package/icons/Compare.mjs.map +1 -0
- package/icons/ContextualTaskBar.cjs.map +1 -1
- package/icons/ContextualTaskBar.mjs.map +1 -1
- package/icons/CornerRadiusBottomLeft.cjs.map +1 -1
- package/icons/CornerRadiusBottomLeft.mjs.map +1 -1
- package/icons/CornerRadiusBottomRight.cjs.map +1 -1
- package/icons/CornerRadiusBottomRight.mjs.map +1 -1
- package/icons/CornerRadiusTopLeft.cjs.map +1 -1
- package/icons/CornerRadiusTopLeft.mjs.map +1 -1
- package/icons/CornerRadiusTopRight.cjs.map +1 -1
- package/icons/CornerRadiusTopRight.mjs.map +1 -1
- package/icons/CursorClick.cjs.map +1 -1
- package/icons/CursorClick.mjs.map +1 -1
- package/icons/Data.cjs +1 -1
- package/icons/Data.cjs.map +1 -1
- package/icons/Data.mjs +1 -1
- package/icons/Data.mjs.map +1 -1
- package/icons/DataAdd.cjs.map +1 -1
- package/icons/DataAdd.mjs.map +1 -1
- package/icons/DataRefresh.cjs +42 -0
- package/icons/DataRefresh.cjs.map +1 -0
- package/icons/DataRefresh.d.ts +5 -0
- package/icons/DataRefresh.mjs +31 -0
- package/icons/DataRefresh.mjs.map +1 -0
- package/icons/DataSettings.cjs +2 -2
- package/icons/DataSettings.cjs.map +1 -1
- package/icons/DataSettings.mjs +2 -2
- package/icons/DataSettings.mjs.map +1 -1
- package/icons/DataUpload.cjs +2 -2
- package/icons/DataUpload.cjs.map +1 -1
- package/icons/DataUpload.mjs +2 -2
- package/icons/DataUpload.mjs.map +1 -1
- package/icons/DeviceTablet.cjs.map +1 -1
- package/icons/DeviceTablet.mjs.map +1 -1
- package/icons/Draw.cjs.map +1 -1
- package/icons/Draw.mjs.map +1 -1
- package/icons/Edit.cjs.map +1 -1
- package/icons/Edit.mjs.map +1 -1
- package/icons/EditNo.cjs.map +1 -1
- package/icons/EditNo.mjs.map +1 -1
- package/icons/Email.cjs.map +1 -1
- package/icons/Email.mjs.map +1 -1
- package/icons/Enterprise.cjs +46 -0
- package/icons/Enterprise.cjs.map +1 -0
- package/icons/Enterprise.d.ts +5 -0
- package/icons/Enterprise.mjs +35 -0
- package/icons/Enterprise.mjs.map +1 -0
- package/icons/Export.cjs +42 -0
- package/icons/Export.cjs.map +1 -0
- package/icons/Export.d.ts +5 -0
- package/icons/Export.mjs +31 -0
- package/icons/Export.mjs.map +1 -0
- package/icons/Filter.cjs.map +1 -1
- package/icons/Filter.mjs.map +1 -1
- package/icons/FlipHorizontal.cjs +1 -21
- package/icons/FlipHorizontal.cjs.map +1 -1
- package/icons/FlipHorizontal.mjs +1 -21
- package/icons/FlipHorizontal.mjs.map +1 -1
- package/icons/FlipVertical.cjs +1 -21
- package/icons/FlipVertical.cjs.map +1 -1
- package/icons/FlipVertical.mjs +1 -21
- package/icons/FlipVertical.mjs.map +1 -1
- package/icons/FolderMoveTo.cjs.map +1 -1
- package/icons/FolderMoveTo.mjs.map +1 -1
- package/icons/FolderSearch.cjs +42 -0
- package/icons/FolderSearch.cjs.map +1 -0
- package/icons/FolderSearch.d.ts +5 -0
- package/icons/FolderSearch.mjs +31 -0
- package/icons/FolderSearch.mjs.map +1 -0
- package/icons/FontPicker.cjs.map +1 -1
- package/icons/FontPicker.mjs.map +1 -1
- package/icons/GlobeGrid.cjs.map +1 -1
- package/icons/GlobeGrid.mjs.map +1 -1
- package/icons/GradientHorizontal.cjs.map +1 -1
- package/icons/GradientHorizontal.mjs.map +1 -1
- package/icons/GridsAndRulers.cjs.map +1 -1
- package/icons/GridsAndRulers.mjs.map +1 -1
- package/icons/Icon.cjs.map +1 -1
- package/icons/Icon.mjs.map +1 -1
- package/icons/Image.cjs.map +1 -1
- package/icons/Image.mjs.map +1 -1
- package/icons/ImageAdd.cjs +1 -5
- package/icons/ImageAdd.cjs.map +1 -1
- package/icons/ImageAdd.mjs +1 -5
- package/icons/ImageAdd.mjs.map +1 -1
- package/icons/ImageBackgroundRemove.cjs.map +1 -1
- package/icons/ImageBackgroundRemove.mjs.map +1 -1
- package/icons/Images.cjs.map +1 -1
- package/icons/Images.mjs.map +1 -1
- package/icons/Import.cjs +42 -0
- package/icons/Import.cjs.map +1 -0
- package/icons/Import.d.ts +5 -0
- package/icons/Import.mjs +31 -0
- package/icons/Import.mjs.map +1 -0
- package/icons/Key.cjs +36 -0
- package/icons/Key.cjs.map +1 -0
- package/icons/Key.d.ts +5 -0
- package/icons/Key.mjs +25 -0
- package/icons/Key.mjs.map +1 -0
- package/icons/ListMultiSelect.cjs.map +1 -1
- package/icons/ListMultiSelect.mjs.map +1 -1
- package/icons/ListNumbered.cjs.map +1 -1
- package/icons/ListNumbered.mjs.map +1 -1
- package/icons/Logo.cjs.map +1 -1
- package/icons/Logo.mjs.map +1 -1
- package/icons/Market.cjs.map +1 -1
- package/icons/Market.mjs.map +1 -1
- package/icons/Microphone.cjs.map +1 -1
- package/icons/Microphone.mjs.map +1 -1
- package/icons/MicrophoneOff.cjs.map +1 -1
- package/icons/MicrophoneOff.mjs.map +1 -1
- package/icons/MusicNote.cjs.map +1 -1
- package/icons/MusicNote.mjs.map +1 -1
- package/icons/OrientationPortrait.cjs.map +1 -1
- package/icons/OrientationPortrait.mjs.map +1 -1
- package/icons/Pause.cjs.map +1 -1
- package/icons/Pause.mjs.map +1 -1
- package/icons/PauseCircle.cjs.map +1 -1
- package/icons/PauseCircle.mjs.map +1 -1
- package/icons/PeopleGroup.cjs +36 -0
- package/icons/PeopleGroup.cjs.map +1 -0
- package/icons/PeopleGroup.d.ts +5 -0
- package/icons/PeopleGroup.mjs +25 -0
- package/icons/PeopleGroup.mjs.map +1 -0
- package/icons/Percentage.cjs.map +1 -1
- package/icons/Percentage.mjs.map +1 -1
- package/icons/PinOff.cjs.map +1 -1
- package/icons/PinOff.mjs.map +1 -1
- package/icons/PinOn.cjs.map +1 -1
- package/icons/PinOn.mjs.map +1 -1
- package/icons/Play.cjs.map +1 -1
- package/icons/Play.mjs.map +1 -1
- package/icons/PluginGear.cjs.map +1 -1
- package/icons/PluginGear.mjs.map +1 -1
- package/icons/Polygon6.cjs.map +1 -1
- package/icons/Polygon6.mjs.map +1 -1
- package/icons/Publish.cjs.map +1 -1
- package/icons/Publish.mjs.map +1 -1
- package/icons/PublishNo.cjs.map +1 -1
- package/icons/PublishNo.mjs.map +1 -1
- package/icons/RadioButton.cjs.map +1 -1
- package/icons/RadioButton.mjs.map +1 -1
- package/icons/RectangleHoriz.cjs.map +1 -1
- package/icons/RectangleHoriz.mjs.map +1 -1
- package/icons/RocketQuickActions.cjs.map +1 -1
- package/icons/RocketQuickActions.mjs.map +1 -1
- package/icons/RotateCW.cjs.map +1 -1
- package/icons/RotateCW.mjs.map +1 -1
- package/icons/Ruler.cjs.map +1 -1
- package/icons/Ruler.mjs.map +1 -1
- package/icons/SaveFloppy.cjs +36 -0
- package/icons/SaveFloppy.cjs.map +1 -0
- package/icons/SaveFloppy.d.ts +5 -0
- package/icons/SaveFloppy.mjs +25 -0
- package/icons/SaveFloppy.mjs.map +1 -0
- package/icons/Select.cjs.map +1 -1
- package/icons/Select.mjs.map +1 -1
- package/icons/Send.cjs.map +1 -1
- package/icons/Send.mjs.map +1 -1
- package/icons/Shuffle.cjs.map +1 -1
- package/icons/Shuffle.mjs.map +1 -1
- package/icons/Skeleton.cjs +8 -6
- package/icons/Skeleton.cjs.map +1 -1
- package/icons/Skeleton.css +3 -5
- package/icons/Skeleton.css.map +1 -1
- package/icons/Skeleton.mjs +9 -7
- package/icons/Skeleton.mjs.map +1 -1
- package/icons/SlowConnectionCircle.cjs.map +1 -1
- package/icons/SlowConnectionCircle.mjs.map +1 -1
- package/icons/SpeedFast.cjs +36 -0
- package/icons/SpeedFast.cjs.map +1 -0
- package/icons/SpeedFast.d.ts +5 -0
- package/icons/SpeedFast.mjs +25 -0
- package/icons/SpeedFast.mjs.map +1 -0
- package/icons/StepBackward.cjs.map +1 -1
- package/icons/StepBackward.mjs.map +1 -1
- package/icons/StepForward.cjs.map +1 -1
- package/icons/StepForward.mjs.map +1 -1
- package/icons/Table.cjs.map +1 -1
- package/icons/Table.mjs.map +1 -1
- package/icons/Tag.cjs.map +1 -1
- package/icons/Tag.mjs.map +1 -1
- package/icons/Target.cjs.map +1 -1
- package/icons/Target.mjs.map +1 -1
- package/icons/TextBold.cjs.map +1 -1
- package/icons/TextBold.mjs.map +1 -1
- package/icons/TextHighlight.cjs.map +1 -1
- package/icons/TextHighlight.mjs.map +1 -1
- package/icons/TextIncrease.cjs.map +1 -1
- package/icons/TextIncrease.mjs.map +1 -1
- package/icons/TextNumbers.cjs.map +1 -1
- package/icons/TextNumbers.mjs.map +1 -1
- package/icons/TextParagraph.cjs.map +1 -1
- package/icons/TextParagraph.mjs.map +1 -1
- package/icons/TextReplaceComment.cjs.map +1 -1
- package/icons/TextReplaceComment.mjs.map +1 -1
- package/icons/Tools.cjs.map +1 -1
- package/icons/Tools.mjs.map +1 -1
- package/icons/TouchOneFingerSwipeLeftRight.cjs.map +1 -1
- package/icons/TouchOneFingerSwipeLeftRight.mjs.map +1 -1
- package/icons/Transcript.cjs.map +1 -1
- package/icons/Transcript.mjs.map +1 -1
- package/icons/Translate.cjs.map +1 -1
- package/icons/Translate.mjs.map +1 -1
- package/icons/UserAvatarCursor.cjs.map +1 -1
- package/icons/UserAvatarCursor.mjs.map +1 -1
- package/icons/UserEdit.cjs.map +1 -1
- package/icons/UserEdit.mjs.map +1 -1
- package/icons/UserGroup.cjs.map +1 -1
- package/icons/UserGroup.mjs.map +1 -1
- package/icons/UserSettings.cjs +44 -0
- package/icons/UserSettings.cjs.map +1 -0
- package/icons/UserSettings.d.ts +5 -0
- package/icons/UserSettings.mjs +33 -0
- package/icons/UserSettings.mjs.map +1 -0
- package/icons/VectorDraw.cjs.map +1 -1
- package/icons/VectorDraw.mjs.map +1 -1
- package/icons/ViewGridFluid.cjs +36 -0
- package/icons/ViewGridFluid.cjs.map +1 -0
- package/icons/ViewGridFluid.d.ts +5 -0
- package/icons/ViewGridFluid.mjs +25 -0
- package/icons/ViewGridFluid.mjs.map +1 -0
- package/icons/ZoomIn.cjs.map +1 -1
- package/icons/ZoomIn.mjs.map +1 -1
- package/icons/ZoomOut.cjs.map +1 -1
- package/icons/ZoomOut.mjs.map +1 -1
- package/package.json +17 -18
- 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/Badge.tsx +27 -8
- package/src/Breadcrumbs.tsx +13 -13
- package/src/Button.tsx +4 -4
- package/src/ButtonGroup.tsx +1 -1
- package/src/Card.tsx +2 -2
- package/src/CardView.tsx +18 -366
- 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 +2 -2
- package/src/ColorSwatchPicker.tsx +1 -2
- package/src/ColorWheel.tsx +1 -1
- package/src/Content.tsx +11 -9
- 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 +19 -5
- package/src/Link.tsx +2 -2
- package/src/Menu.tsx +9 -4
- package/src/Meter.tsx +1 -1
- package/src/NumberField.tsx +1 -1
- package/src/Picker.tsx +81 -60
- package/src/Popover.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 +6 -9
- package/src/Skeleton.tsx +6 -8
- package/src/Slider.tsx +1 -1
- package/src/StatusLight.tsx +1 -1
- package/src/Switch.tsx +1 -1
- package/src/TableView.tsx +67 -71
- package/src/Tabs.tsx +451 -145
- package/src/TabsPicker.tsx +350 -0
- package/src/TagGroup.tsx +4 -4
- package/src/TextField.tsx +2 -2
- package/src/ToggleButton.tsx +2 -2
- package/src/ToggleButtonGroup.tsx +1 -1
- package/src/Tooltip.tsx +4 -4
- package/src/TreeView.tsx +450 -0
- package/src/index.ts +2 -0
- package/src/style-utils.ts +0 -1
- package/style/__tests__/style-macro.test.js +3 -7
- package/style/dist/spectrum-theme.cjs.map +1 -1
- package/style/dist/spectrum-theme.mjs.map +1 -1
- package/style/dist/style-macro.cjs +5 -3
- package/style/dist/style-macro.cjs.map +1 -1
- package/style/dist/style-macro.mjs +5 -3
- package/style/dist/style-macro.mjs.map +1 -1
- package/style/dist/types.d.ts.map +1 -1
- package/style/spectrum-theme.ts +0 -1
- package/style/style-macro.ts +9 -3
- package/icons/CloudStateDefault.cjs +0 -36
- package/icons/CloudStateDefault.cjs.map +0 -1
- package/icons/CloudStateDefault.mjs +0 -25
- package/icons/CloudStateDefault.mjs.map +0 -1
- package/icons/CloudStateDisconnected.cjs +0 -36
- package/icons/CloudStateDisconnected.cjs.map +0 -1
- package/icons/CloudStateDisconnected.mjs +0 -25
- package/icons/CloudStateDisconnected.mjs.map +0 -1
- package/icons/CloudStateError.cjs +0 -36
- package/icons/CloudStateError.cjs.map +0 -1
- package/icons/CloudStateError.mjs +0 -25
- package/icons/CloudStateError.mjs.map +0 -1
- package/icons/CloudStateErrorRed.cjs +0 -46
- package/icons/CloudStateErrorRed.cjs.map +0 -1
- package/icons/CloudStateErrorRed.mjs +0 -35
- package/icons/CloudStateErrorRed.mjs.map +0 -1
- package/icons/CloudStateInProgress.cjs +0 -36
- package/icons/CloudStateInProgress.cjs.map +0 -1
- package/icons/CloudStateInProgress.mjs +0 -25
- package/icons/CloudStateInProgress.mjs.map +0 -1
- package/icons/CloudStateOnline.cjs +0 -50
- package/icons/CloudStateOnline.cjs.map +0 -1
- package/icons/CloudStateOnline.mjs +0 -39
- package/icons/CloudStateOnline.mjs.map +0 -1
- package/icons/CloudStatePaused.cjs +0 -36
- package/icons/CloudStatePaused.cjs.map +0 -1
- package/icons/CloudStatePaused.mjs +0 -25
- package/icons/CloudStatePaused.mjs.map +0 -1
- package/icons/CloudStatePending.cjs +0 -42
- package/icons/CloudStatePending.cjs.map +0 -1
- package/icons/CloudStatePending.mjs +0 -31
- package/icons/CloudStatePending.mjs.map +0 -1
- package/icons/CloudStateSlowConnection.cjs +0 -36
- package/icons/CloudStateSlowConnection.cjs.map +0 -1
- package/icons/CloudStateSlowConnection.mjs +0 -25
- package/icons/CloudStateSlowConnection.mjs.map +0 -1
- /package/icons/{CloudStateDefault.d.ts → ABC.d.ts} +0 -0
- /package/icons/{CloudStateDisconnected.d.ts → App.d.ts} +0 -0
- /package/icons/{CloudStateError.d.ts → Bookmark.d.ts} +0 -0
- /package/icons/{CloudStateErrorRed.d.ts → Building.d.ts} +0 -0
- /package/icons/{CloudStateInProgress.d.ts → CallCenter.d.ts} +0 -0
- /package/icons/{CloudStateOnline.d.ts → ChartBarVert.d.ts} +0 -0
- /package/icons/{CloudStatePaused.d.ts → ChartPie.d.ts} +0 -0
- /package/icons/{CloudStatePending.d.ts → ChartTrend.d.ts} +0 -0
- /package/icons/{CloudStateSlowConnection.d.ts → Chat.d.ts} +0 -0
package/src/TreeView.tsx
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {ActionButtonGroupContext} from './ActionButtonGroup';
|
|
14
|
+
import {ActionMenuContext} from './ActionMenu';
|
|
15
|
+
import {
|
|
16
|
+
Button,
|
|
17
|
+
ButtonContext,
|
|
18
|
+
ListLayout,
|
|
19
|
+
Provider,
|
|
20
|
+
TreeItemProps as RACTreeItemProps,
|
|
21
|
+
TreeProps as RACTreeProps,
|
|
22
|
+
Tree,
|
|
23
|
+
TreeItem,
|
|
24
|
+
TreeItemContent,
|
|
25
|
+
TreeItemContentProps,
|
|
26
|
+
useContextProps,
|
|
27
|
+
Virtualizer
|
|
28
|
+
} from 'react-aria-components';
|
|
29
|
+
import {centerBaseline} from './CenterBaseline';
|
|
30
|
+
import {Checkbox} from './Checkbox';
|
|
31
|
+
import Chevron from '../ui-icons/Chevron';
|
|
32
|
+
import {colorMix, focusRing, fontRelative, lightDark, style} from '../style' with {type: 'macro'};
|
|
33
|
+
import {DOMRef, Key} from '@react-types/shared';
|
|
34
|
+
import {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
|
|
35
|
+
import {IconContext} from './Icon';
|
|
36
|
+
import {isAndroid} from '@react-aria/utils';
|
|
37
|
+
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
38
|
+
import React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useRef} from 'react';
|
|
39
|
+
import {TextContext} from './Content';
|
|
40
|
+
import {useDOMRef} from '@react-spectrum/utils';
|
|
41
|
+
import {useLocale} from 'react-aria';
|
|
42
|
+
import {useScale} from './utils';
|
|
43
|
+
|
|
44
|
+
interface S2TreeProps {
|
|
45
|
+
// Only detatched is supported right now with the current styles from Spectrum
|
|
46
|
+
isDetached?: boolean,
|
|
47
|
+
onAction?: (key: Key) => void,
|
|
48
|
+
// not fully supported yet
|
|
49
|
+
isEmphasized?: boolean
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface TreeViewProps extends Omit<RACTreeProps<any>, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TreeProps {
|
|
53
|
+
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
54
|
+
styles?: StylesPropWithHeight
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style'> {
|
|
58
|
+
/** Whether this item has children, even if not loaded yet. */
|
|
59
|
+
hasChildItems?: boolean
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface TreeRendererContextValue {
|
|
63
|
+
renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>
|
|
64
|
+
}
|
|
65
|
+
const TreeRendererContext = createContext<TreeRendererContextValue>({});
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
let InternalTreeContext = createContext<{isDetached?: boolean, isEmphasized?: boolean}>({});
|
|
69
|
+
|
|
70
|
+
// 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
|
|
71
|
+
// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't
|
|
72
|
+
// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview
|
|
73
|
+
const tree = style({
|
|
74
|
+
...focusRing(),
|
|
75
|
+
outlineOffset: -2, // make certain we are visible inside overflow hidden containers
|
|
76
|
+
userSelect: 'none',
|
|
77
|
+
minHeight: 0,
|
|
78
|
+
minWidth: 0,
|
|
79
|
+
width: 'full',
|
|
80
|
+
height: 'full',
|
|
81
|
+
overflow: 'auto',
|
|
82
|
+
boxSizing: 'border-box',
|
|
83
|
+
justifyContent: {
|
|
84
|
+
isEmpty: 'center'
|
|
85
|
+
},
|
|
86
|
+
alignItems: {
|
|
87
|
+
isEmpty: 'center'
|
|
88
|
+
},
|
|
89
|
+
'--indent': {
|
|
90
|
+
type: 'width',
|
|
91
|
+
value: 16
|
|
92
|
+
}
|
|
93
|
+
}, getAllowedOverrides({height: true}));
|
|
94
|
+
|
|
95
|
+
function TreeView(props: TreeViewProps, ref: DOMRef<HTMLDivElement>) {
|
|
96
|
+
let {children, isDetached, isEmphasized, UNSAFE_className, UNSAFE_style} = props;
|
|
97
|
+
let scale = useScale();
|
|
98
|
+
|
|
99
|
+
let renderer;
|
|
100
|
+
if (typeof children === 'function') {
|
|
101
|
+
renderer = children;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
let domRef = useDOMRef(ref);
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<Virtualizer
|
|
108
|
+
layout={ListLayout}
|
|
109
|
+
layoutOptions={{
|
|
110
|
+
rowHeight: scale === 'large' ? 50 : 40,
|
|
111
|
+
gap: isDetached ? 2 : 0
|
|
112
|
+
}}>
|
|
113
|
+
<TreeRendererContext.Provider value={{renderer}}>
|
|
114
|
+
<InternalTreeContext.Provider value={{isDetached, isEmphasized}}>
|
|
115
|
+
<Tree
|
|
116
|
+
{...props}
|
|
117
|
+
style={UNSAFE_style}
|
|
118
|
+
className={renderProps => (UNSAFE_className ?? '') + tree({isDetached, ...renderProps}, props.styles)}
|
|
119
|
+
selectionBehavior="toggle"
|
|
120
|
+
ref={domRef}>
|
|
121
|
+
{props.children}
|
|
122
|
+
</Tree>
|
|
123
|
+
</InternalTreeContext.Provider>
|
|
124
|
+
</TreeRendererContext.Provider>
|
|
125
|
+
</Virtualizer>
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));
|
|
130
|
+
const selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));
|
|
131
|
+
|
|
132
|
+
const rowBackgroundColor = {
|
|
133
|
+
default: '--s2-container-bg',
|
|
134
|
+
isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),
|
|
135
|
+
isHovered: colorMix('gray-25', 'gray-900', 7),
|
|
136
|
+
isPressed: colorMix('gray-25', 'gray-900', 10),
|
|
137
|
+
isSelected: {
|
|
138
|
+
default: colorMix('gray-25', 'gray-900', 7),
|
|
139
|
+
isEmphasized: selectedBackground,
|
|
140
|
+
isFocusVisibleWithin: {
|
|
141
|
+
default: colorMix('gray-25', 'gray-900', 10),
|
|
142
|
+
isEmphasized: selectedActiveBackground
|
|
143
|
+
},
|
|
144
|
+
isHovered: {
|
|
145
|
+
default: colorMix('gray-25', 'gray-900', 10),
|
|
146
|
+
isEmphasized: selectedActiveBackground
|
|
147
|
+
},
|
|
148
|
+
isPressed: {
|
|
149
|
+
default: colorMix('gray-25', 'gray-900', 10),
|
|
150
|
+
isEmphasized: selectedActiveBackground
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
forcedColors: {
|
|
154
|
+
default: 'Background'
|
|
155
|
+
}
|
|
156
|
+
} as const;
|
|
157
|
+
|
|
158
|
+
const treeRow = style({
|
|
159
|
+
position: 'relative',
|
|
160
|
+
display: 'flex',
|
|
161
|
+
height: 40,
|
|
162
|
+
width: 'full',
|
|
163
|
+
boxSizing: 'border-box',
|
|
164
|
+
font: 'ui',
|
|
165
|
+
color: 'body',
|
|
166
|
+
outlineStyle: 'none',
|
|
167
|
+
cursor: {
|
|
168
|
+
default: 'default',
|
|
169
|
+
isLink: 'pointer'
|
|
170
|
+
},
|
|
171
|
+
'--rowBackgroundColor': {
|
|
172
|
+
type: 'backgroundColor',
|
|
173
|
+
value: rowBackgroundColor
|
|
174
|
+
},
|
|
175
|
+
'--rowFocusIndicatorColor': {
|
|
176
|
+
type: 'outlineColor',
|
|
177
|
+
value: {
|
|
178
|
+
default: 'focus-ring',
|
|
179
|
+
forcedColors: 'Highlight'
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
const treeCellGrid = style({
|
|
186
|
+
display: 'grid',
|
|
187
|
+
width: 'full',
|
|
188
|
+
height: 'full',
|
|
189
|
+
boxSizing: 'border-box',
|
|
190
|
+
alignContent: 'center',
|
|
191
|
+
alignItems: 'center',
|
|
192
|
+
gridTemplateColumns: ['auto', 'auto', 'auto', 'auto', 'auto', '1fr', 'minmax(0, auto)', 'auto'],
|
|
193
|
+
gridTemplateRows: '1fr',
|
|
194
|
+
gridTemplateAreas: [
|
|
195
|
+
'drag-handle checkbox level-padding expand-button icon content actions actionmenu'
|
|
196
|
+
],
|
|
197
|
+
backgroundColor: '--rowBackgroundColor',
|
|
198
|
+
paddingEnd: 4, // account for any focus rings on the last item in the cell
|
|
199
|
+
color: {
|
|
200
|
+
isDisabled: {
|
|
201
|
+
default: 'gray-400',
|
|
202
|
+
forcedColors: 'GrayText'
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
'--rowSelectedBorderColor': {
|
|
206
|
+
type: 'outlineColor',
|
|
207
|
+
value: {
|
|
208
|
+
default: 'gray-800',
|
|
209
|
+
isFocusVisible: 'focus-ring',
|
|
210
|
+
forcedColors: 'Highlight'
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
'--rowForcedFocusBorderColor': {
|
|
214
|
+
type: 'outlineColor',
|
|
215
|
+
value: {
|
|
216
|
+
default: 'focus-ring',
|
|
217
|
+
forcedColors: 'Highlight'
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
borderColor: {
|
|
221
|
+
isDetached: {
|
|
222
|
+
default: 'transparent',
|
|
223
|
+
isSelected: '--rowSelectedBorderColor'
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
borderWidth: {
|
|
227
|
+
isDetached: 1
|
|
228
|
+
},
|
|
229
|
+
borderRadius: {
|
|
230
|
+
isDetached: 'default'
|
|
231
|
+
},
|
|
232
|
+
borderStyle: {
|
|
233
|
+
isDetached: 'solid'
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
const treeCheckbox = style({
|
|
238
|
+
gridArea: 'checkbox',
|
|
239
|
+
marginStart: 12,
|
|
240
|
+
marginEnd: 0,
|
|
241
|
+
paddingEnd: 0
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
const treeIcon = style({
|
|
245
|
+
gridArea: 'icon',
|
|
246
|
+
marginEnd: 'text-to-visual',
|
|
247
|
+
'--iconPrimary': {
|
|
248
|
+
type: 'fill',
|
|
249
|
+
value: 'currentColor'
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
const treeContent = style({
|
|
254
|
+
gridArea: 'content',
|
|
255
|
+
textOverflow: 'ellipsis',
|
|
256
|
+
whiteSpace: 'nowrap',
|
|
257
|
+
overflow: 'hidden'
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
const treeActions = style({
|
|
261
|
+
gridArea: 'actions',
|
|
262
|
+
/* 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 */
|
|
263
|
+
marginStart: 2,
|
|
264
|
+
marginEnd: 4
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
const treeActionMenu = style({
|
|
268
|
+
gridArea: 'actionmenu'
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
const cellFocus = {
|
|
272
|
+
outlineStyle: {
|
|
273
|
+
default: 'none',
|
|
274
|
+
isFocusVisible: 'solid'
|
|
275
|
+
},
|
|
276
|
+
outlineOffset: -2,
|
|
277
|
+
outlineWidth: 2,
|
|
278
|
+
outlineColor: 'focus-ring',
|
|
279
|
+
borderRadius: '[6px]'
|
|
280
|
+
} as const;
|
|
281
|
+
|
|
282
|
+
const treeRowFocusIndicator = raw(`
|
|
283
|
+
&:before {
|
|
284
|
+
content: "";
|
|
285
|
+
display: inline-block;
|
|
286
|
+
position: sticky;
|
|
287
|
+
inset-inline-start: 0;
|
|
288
|
+
width: 3px;
|
|
289
|
+
height: 100%;
|
|
290
|
+
margin-inline-end: -3px;
|
|
291
|
+
margin-block-end: 1px;
|
|
292
|
+
z-index: 3;
|
|
293
|
+
background-color: var(--rowFocusIndicatorColor);
|
|
294
|
+
}`
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
export const TreeViewItem = (props: TreeViewItemProps) => {
|
|
298
|
+
let {
|
|
299
|
+
href
|
|
300
|
+
} = props;
|
|
301
|
+
let {isDetached, isEmphasized} = useContext(InternalTreeContext);
|
|
302
|
+
|
|
303
|
+
return (
|
|
304
|
+
<TreeItem
|
|
305
|
+
{...props}
|
|
306
|
+
className={(renderProps) => treeRow({
|
|
307
|
+
...renderProps,
|
|
308
|
+
isLink: !!href, isEmphasized
|
|
309
|
+
}) + (renderProps.isFocusVisible && !isDetached ? ' ' + treeRowFocusIndicator : '')} />
|
|
310
|
+
);
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
export interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {
|
|
314
|
+
/** Rendered contents of the tree item or child items. */
|
|
315
|
+
children: ReactNode
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export const TreeViewItemContent = (props: TreeViewItemContentProps) => {
|
|
319
|
+
let {
|
|
320
|
+
children
|
|
321
|
+
} = props;
|
|
322
|
+
let {isDetached, isEmphasized} = useContext(InternalTreeContext);
|
|
323
|
+
let scale = useScale();
|
|
324
|
+
|
|
325
|
+
return (
|
|
326
|
+
<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
|
+
</TreeItemContent>
|
|
369
|
+
);
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
interface ExpandableRowChevronProps {
|
|
373
|
+
isExpanded?: boolean,
|
|
374
|
+
isDisabled?: boolean,
|
|
375
|
+
isRTL?: boolean,
|
|
376
|
+
scale: 'medium' | 'large',
|
|
377
|
+
isHidden?: boolean
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
const expandButton = style<ExpandableRowChevronProps>({
|
|
381
|
+
gridArea: 'expand-button',
|
|
382
|
+
color: {
|
|
383
|
+
default: '[inherit]',
|
|
384
|
+
isDisabled: {
|
|
385
|
+
default: 'disabled',
|
|
386
|
+
forcedColors: 'GrayText'
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
height: 40,
|
|
390
|
+
width: 40,
|
|
391
|
+
display: 'flex',
|
|
392
|
+
flexWrap: 'wrap',
|
|
393
|
+
alignContent: 'center',
|
|
394
|
+
justifyContent: 'center',
|
|
395
|
+
outlineStyle: 'none',
|
|
396
|
+
cursor: 'default',
|
|
397
|
+
transform: {
|
|
398
|
+
isExpanded: {
|
|
399
|
+
default: 'rotate(90deg)',
|
|
400
|
+
isRTL: 'rotate(-90deg)'
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
padding: 0,
|
|
404
|
+
transition: 'default',
|
|
405
|
+
backgroundColor: 'transparent',
|
|
406
|
+
borderStyle: 'none',
|
|
407
|
+
disableTapHighlight: true,
|
|
408
|
+
visibility: {
|
|
409
|
+
isHidden: 'hidden'
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
function ExpandableRowChevron(props: ExpandableRowChevronProps) {
|
|
414
|
+
let expandButtonRef = useRef<HTMLButtonElement>(null);
|
|
415
|
+
let [fullProps, ref] = useContextProps({...props, slot: 'chevron'}, expandButtonRef, ButtonContext);
|
|
416
|
+
let {isExpanded, isDisabled, scale, isHidden} = fullProps;
|
|
417
|
+
let {direction} = useLocale();
|
|
418
|
+
isDisabled = isDisabled || isHidden;
|
|
419
|
+
|
|
420
|
+
return (
|
|
421
|
+
<Button
|
|
422
|
+
{...props}
|
|
423
|
+
ref={ref}
|
|
424
|
+
slot="chevron"
|
|
425
|
+
// Override tabindex so that grid keyboard nav skips over it. Needs -1 so android talkback can actually "focus" it
|
|
426
|
+
excludeFromTabOrder={isAndroid() && !isDisabled}
|
|
427
|
+
preventFocusOnPress
|
|
428
|
+
className={renderProps => expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})}>
|
|
429
|
+
<Chevron
|
|
430
|
+
className={style({
|
|
431
|
+
scale: {
|
|
432
|
+
direction: {
|
|
433
|
+
ltr: '1',
|
|
434
|
+
rtl: '-1'
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
'--iconPrimary': {
|
|
438
|
+
type: 'fill',
|
|
439
|
+
value: 'currentColor'
|
|
440
|
+
}
|
|
441
|
+
})({direction})} />
|
|
442
|
+
</Button>
|
|
443
|
+
);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* A tree view provides users with a way to navigate nested hierarchical information.
|
|
448
|
+
*/
|
|
449
|
+
const _TreeView = forwardRef(TreeView);
|
|
450
|
+
export {_TreeView as TreeView};
|
package/src/index.ts
CHANGED
|
@@ -76,6 +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, TreeViewItemContent} from './TreeView';
|
|
79
80
|
|
|
80
81
|
export {pressScale} from './pressScale';
|
|
81
82
|
|
|
@@ -144,4 +145,5 @@ export type {TextFieldProps, TextAreaProps} from './TextField';
|
|
|
144
145
|
export type {ToggleButtonProps} from './ToggleButton';
|
|
145
146
|
export type {ToggleButtonGroupProps} from './ToggleButtonGroup';
|
|
146
147
|
export type {TooltipProps} from './Tooltip';
|
|
148
|
+
export type {TreeViewProps, TreeViewItemProps, TreeViewItemContentProps} from './TreeView';
|
|
147
149
|
export type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';
|
package/src/style-utils.ts
CHANGED
|
@@ -37,9 +37,7 @@ describe('style-macro', () => {
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
expect(css).toMatchInlineSnapshot(`
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
@layer _.a, _.b, _.c, UNSAFE_overrides;
|
|
40
|
+
"@layer _.a, _.b, _.c;
|
|
43
41
|
|
|
44
42
|
@layer _.b {
|
|
45
43
|
.A-13alit4c {
|
|
@@ -61,7 +59,7 @@ describe('style-macro', () => {
|
|
|
61
59
|
|
|
62
60
|
"
|
|
63
61
|
`);
|
|
64
|
-
expect(js).toMatchInlineSnapshot('"
|
|
62
|
+
expect(js).toMatchInlineSnapshot('" A-13alit4c A-13alit4ed"');
|
|
65
63
|
});
|
|
66
64
|
|
|
67
65
|
it('should support self references', () => {
|
|
@@ -72,9 +70,7 @@ describe('style-macro', () => {
|
|
|
72
70
|
});
|
|
73
71
|
|
|
74
72
|
expect(css).toMatchInlineSnapshot(`
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
@layer _.a, _.b, UNSAFE_overrides;
|
|
73
|
+
"@layer _.a, _.b;
|
|
78
74
|
|
|
79
75
|
@layer _.a {
|
|
80
76
|
.uc {
|