@react-spectrum/s2 0.5.0 → 0.6.0
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 +5 -8
- package/dist/Accordion.cjs.map +1 -1
- package/dist/Accordion.css +2 -2
- package/dist/Accordion.css.map +1 -1
- package/dist/Accordion.mjs +5 -8
- package/dist/Accordion.mjs.map +1 -1
- package/dist/ActionBar.cjs +264 -0
- package/dist/ActionBar.cjs.map +1 -0
- package/dist/ActionBar.css +267 -0
- package/dist/ActionBar.css.map +1 -0
- package/dist/ActionBar.mjs +257 -0
- package/dist/ActionBar.mjs.map +1 -0
- package/dist/ActionButton.cjs +121 -147
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css +133 -153
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs +122 -148
- package/dist/ActionButton.mjs.map +1 -1
- package/dist/ActionButtonGroup.cjs +6 -9
- package/dist/ActionButtonGroup.cjs.map +1 -1
- package/dist/ActionButtonGroup.css +3 -3
- package/dist/ActionButtonGroup.css.map +1 -1
- package/dist/ActionButtonGroup.mjs +6 -9
- package/dist/ActionButtonGroup.mjs.map +1 -1
- package/dist/ActionMenu.cjs +2 -5
- package/dist/ActionMenu.cjs.map +1 -1
- package/dist/ActionMenu.mjs +2 -5
- package/dist/ActionMenu.mjs.map +1 -1
- package/dist/AlertDialog.cjs +2 -5
- package/dist/AlertDialog.cjs.map +1 -1
- package/dist/AlertDialog.css.map +1 -1
- package/dist/AlertDialog.mjs +2 -5
- package/dist/AlertDialog.mjs.map +1 -1
- package/dist/Avatar.cjs +12 -15
- package/dist/Avatar.cjs.map +1 -1
- package/dist/Avatar.css +11 -11
- package/dist/Avatar.css.map +1 -1
- package/dist/Avatar.mjs +12 -15
- package/dist/Avatar.mjs.map +1 -1
- package/dist/AvatarGroup.cjs +99 -102
- package/dist/AvatarGroup.cjs.map +1 -1
- package/dist/AvatarGroup.css +31 -31
- package/dist/AvatarGroup.css.map +1 -1
- package/dist/AvatarGroup.mjs +99 -102
- package/dist/AvatarGroup.mjs.map +1 -1
- package/dist/Badge.cjs +99 -102
- package/dist/Badge.cjs.map +1 -1
- package/dist/Badge.css +76 -76
- package/dist/Badge.css.map +1 -1
- package/dist/Badge.mjs +99 -102
- package/dist/Badge.mjs.map +1 -1
- package/dist/Breadcrumbs.cjs +93 -94
- package/dist/Breadcrumbs.cjs.map +1 -1
- package/dist/Breadcrumbs.css +70 -64
- package/dist/Breadcrumbs.css.map +1 -1
- package/dist/Breadcrumbs.mjs +94 -95
- package/dist/Breadcrumbs.mjs.map +1 -1
- package/dist/Button.cjs +305 -278
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css +255 -182
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs +307 -280
- package/dist/Button.mjs.map +1 -1
- package/dist/ButtonGroup.cjs +17 -20
- package/dist/ButtonGroup.cjs.map +1 -1
- package/dist/ButtonGroup.css +11 -11
- package/dist/ButtonGroup.css.map +1 -1
- package/dist/ButtonGroup.mjs +18 -21
- package/dist/ButtonGroup.mjs.map +1 -1
- package/dist/Card.cjs +167 -167
- package/dist/Card.css +121 -121
- package/dist/Card.mjs +167 -167
- package/dist/CardView.cjs +47 -21
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css +39 -15
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs +49 -23
- 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 +58 -62
- package/dist/Checkbox.cjs.map +1 -1
- package/dist/Checkbox.css +54 -54
- package/dist/Checkbox.css.map +1 -1
- package/dist/Checkbox.mjs +59 -63
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/CheckboxGroup.cjs +43 -45
- package/dist/CheckboxGroup.cjs.map +1 -1
- package/dist/CheckboxGroup.css +32 -32
- package/dist/CheckboxGroup.css.map +1 -1
- package/dist/CheckboxGroup.mjs +44 -46
- package/dist/CheckboxGroup.mjs.map +1 -1
- package/dist/ClearButton.cjs +7 -8
- package/dist/ClearButton.cjs.map +1 -1
- package/dist/ClearButton.css +5 -5
- package/dist/ClearButton.css.map +1 -1
- package/dist/ClearButton.mjs +7 -8
- package/dist/ClearButton.mjs.map +1 -1
- package/dist/CloseButton.cjs +40 -53
- package/dist/CloseButton.cjs.map +1 -1
- package/dist/CloseButton.css +45 -49
- package/dist/CloseButton.css.map +1 -1
- package/dist/CloseButton.mjs +40 -53
- package/dist/CloseButton.mjs.map +1 -1
- package/dist/ColorArea.cjs +12 -15
- package/dist/ColorArea.cjs.map +1 -1
- package/dist/ColorArea.css +10 -10
- package/dist/ColorArea.css.map +1 -1
- package/dist/ColorArea.mjs +12 -15
- package/dist/ColorArea.mjs.map +1 -1
- package/dist/ColorField.cjs +31 -34
- package/dist/ColorField.cjs.map +1 -1
- package/dist/ColorField.css +24 -24
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs +32 -35
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorHandle.cjs +11 -11
- package/dist/ColorHandle.css +19 -19
- package/dist/ColorHandle.mjs +11 -11
- package/dist/ColorSlider.cjs +43 -46
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css +43 -43
- package/dist/ColorSlider.css.map +1 -1
- package/dist/ColorSlider.mjs +44 -47
- package/dist/ColorSlider.mjs.map +1 -1
- package/dist/ColorSwatch.cjs +8 -11
- package/dist/ColorSwatch.cjs.map +1 -1
- package/dist/ColorSwatch.css +14 -14
- package/dist/ColorSwatch.css.map +1 -1
- package/dist/ColorSwatch.mjs +9 -12
- package/dist/ColorSwatch.mjs.map +1 -1
- package/dist/ColorSwatchPicker.cjs +15 -18
- package/dist/ColorSwatchPicker.cjs.map +1 -1
- package/dist/ColorSwatchPicker.css +33 -33
- package/dist/ColorSwatchPicker.css.map +1 -1
- package/dist/ColorSwatchPicker.mjs +15 -18
- package/dist/ColorSwatchPicker.mjs.map +1 -1
- package/dist/ColorWheel.cjs +18 -21
- package/dist/ColorWheel.cjs.map +1 -1
- package/dist/ColorWheel.css +15 -15
- package/dist/ColorWheel.css.map +1 -1
- package/dist/ColorWheel.mjs +18 -21
- package/dist/ColorWheel.mjs.map +1 -1
- package/dist/ComboBox.cjs +61 -61
- package/dist/ComboBox.cjs.map +1 -1
- package/dist/ComboBox.css +52 -52
- package/dist/ComboBox.css.map +1 -1
- package/dist/ComboBox.mjs +62 -62
- package/dist/ComboBox.mjs.map +1 -1
- package/dist/Content.cjs +12 -19
- package/dist/Content.cjs.map +1 -1
- package/dist/Content.mjs +12 -19
- package/dist/Content.mjs.map +1 -1
- package/dist/ContextualHelp.cjs +7 -10
- package/dist/ContextualHelp.cjs.map +1 -1
- package/dist/ContextualHelp.css +23 -23
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs +7 -10
- package/dist/ContextualHelp.mjs.map +1 -1
- package/dist/CustomDialog.cjs +10 -13
- package/dist/CustomDialog.cjs.map +1 -1
- package/dist/CustomDialog.css +9 -9
- package/dist/CustomDialog.css.map +1 -1
- package/dist/CustomDialog.mjs +10 -13
- package/dist/CustomDialog.mjs.map +1 -1
- package/dist/Dialog.cjs +12 -16
- package/dist/Dialog.cjs.map +1 -1
- package/dist/Dialog.css +39 -39
- package/dist/Dialog.css.map +1 -1
- package/dist/Dialog.mjs +12 -16
- package/dist/Dialog.mjs.map +1 -1
- package/dist/Disclosure.cjs +60 -69
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css +49 -49
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs +61 -70
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs +15 -19
- package/dist/Divider.cjs.map +1 -1
- package/dist/Divider.css +18 -18
- package/dist/Divider.css.map +1 -1
- package/dist/Divider.mjs +15 -19
- package/dist/Divider.mjs.map +1 -1
- package/dist/DropZone.cjs +30 -33
- package/dist/DropZone.cjs.map +1 -1
- package/dist/DropZone.css +26 -26
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs +30 -33
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs +133 -131
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css +76 -84
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs +133 -131
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs +6 -9
- package/dist/Form.cjs.map +1 -1
- package/dist/Form.css +3 -3
- package/dist/Form.css.map +1 -1
- package/dist/Form.mjs +6 -9
- package/dist/Form.mjs.map +1 -1
- package/dist/FullscreenDialog.cjs +7 -10
- package/dist/FullscreenDialog.cjs.map +1 -1
- package/dist/FullscreenDialog.css +54 -54
- package/dist/FullscreenDialog.css.map +1 -1
- package/dist/FullscreenDialog.mjs +7 -10
- package/dist/FullscreenDialog.mjs.map +1 -1
- package/dist/IllustratedMessage.cjs +128 -132
- package/dist/IllustratedMessage.cjs.map +1 -1
- package/dist/IllustratedMessage.css +58 -58
- package/dist/IllustratedMessage.css.map +1 -1
- package/dist/IllustratedMessage.mjs +128 -132
- package/dist/IllustratedMessage.mjs.map +1 -1
- package/dist/Image.cjs +12 -13
- package/dist/Image.cjs.map +1 -1
- package/dist/Image.css +11 -11
- package/dist/Image.css.map +1 -1
- package/dist/Image.mjs +13 -14
- package/dist/Image.mjs.map +1 -1
- package/dist/InlineAlert.cjs +75 -84
- package/dist/InlineAlert.cjs.map +1 -1
- package/dist/InlineAlert.css +59 -63
- package/dist/InlineAlert.css.map +1 -1
- package/dist/InlineAlert.mjs +76 -85
- package/dist/InlineAlert.mjs.map +1 -1
- package/dist/Link.cjs +36 -39
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.css +42 -42
- package/dist/Link.css.map +1 -1
- package/dist/Link.mjs +37 -40
- package/dist/Link.mjs.map +1 -1
- package/dist/Menu.cjs +322 -234
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +118 -116
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +323 -235
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs +66 -70
- package/dist/Meter.cjs.map +1 -1
- package/dist/Meter.css +69 -73
- package/dist/Meter.css.map +1 -1
- package/dist/Meter.mjs +66 -70
- package/dist/Meter.mjs.map +1 -1
- package/dist/Modal.cjs +36 -45
- package/dist/Modal.cjs.map +1 -1
- package/dist/Modal.css +48 -72
- package/dist/Modal.css.map +1 -1
- package/dist/Modal.mjs +37 -46
- package/dist/Modal.mjs.map +1 -1
- package/dist/NumberField.cjs +66 -69
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css +70 -70
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs +67 -70
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +122 -122
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +84 -84
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +123 -123
- package/dist/Picker.mjs.map +1 -1
- package/dist/Popover.cjs +47 -69
- package/dist/Popover.cjs.map +1 -1
- package/dist/Popover.css +55 -126
- package/dist/Popover.css.map +1 -1
- package/dist/Popover.mjs +48 -70
- package/dist/Popover.mjs.map +1 -1
- package/dist/ProgressBar.cjs +85 -87
- package/dist/ProgressBar.cjs.map +1 -1
- package/dist/ProgressBar.css +81 -85
- package/dist/ProgressBar.css.map +1 -1
- package/dist/ProgressBar.mjs +85 -87
- package/dist/ProgressBar.mjs.map +1 -1
- package/dist/ProgressCircle.cjs +16 -18
- package/dist/ProgressCircle.cjs.map +1 -1
- package/dist/ProgressCircle.css +16 -16
- package/dist/ProgressCircle.css.map +1 -1
- package/dist/ProgressCircle.mjs +16 -18
- package/dist/ProgressCircle.mjs.map +1 -1
- package/dist/Provider.cjs +5 -5
- package/dist/Provider.css +6 -6
- package/dist/Provider.mjs +5 -5
- package/dist/Radio.cjs +54 -58
- package/dist/Radio.cjs.map +1 -1
- package/dist/Radio.css +50 -50
- package/dist/Radio.css.map +1 -1
- package/dist/Radio.mjs +55 -59
- package/dist/Radio.mjs.map +1 -1
- package/dist/RadioGroup.cjs +39 -43
- package/dist/RadioGroup.cjs.map +1 -1
- package/dist/RadioGroup.css +32 -32
- package/dist/RadioGroup.css.map +1 -1
- package/dist/RadioGroup.mjs +40 -44
- package/dist/RadioGroup.mjs.map +1 -1
- package/dist/RangeSlider.cjs +2 -3
- package/dist/RangeSlider.cjs.map +1 -1
- package/dist/RangeSlider.mjs +3 -4
- package/dist/RangeSlider.mjs.map +1 -1
- package/dist/SearchField.cjs +34 -37
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css +30 -30
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs +35 -38
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs +67 -73
- package/dist/SegmentedControl.cjs.map +1 -1
- package/dist/SegmentedControl.css +63 -63
- package/dist/SegmentedControl.css.map +1 -1
- package/dist/SegmentedControl.mjs +68 -74
- package/dist/SegmentedControl.mjs.map +1 -1
- package/dist/Slider.cjs +111 -112
- package/dist/Slider.cjs.map +1 -1
- package/dist/Slider.css +87 -87
- package/dist/Slider.css.map +1 -1
- package/dist/Slider.mjs +112 -113
- package/dist/Slider.mjs.map +1 -1
- package/dist/StatusLight.cjs +28 -32
- package/dist/StatusLight.cjs.map +1 -1
- package/dist/StatusLight.css +26 -26
- package/dist/StatusLight.css.map +1 -1
- package/dist/StatusLight.mjs +28 -32
- package/dist/StatusLight.mjs.map +1 -1
- package/dist/Switch.cjs +56 -60
- package/dist/Switch.cjs.map +1 -1
- package/dist/Switch.css +48 -48
- package/dist/Switch.css.map +1 -1
- package/dist/Switch.mjs +57 -61
- package/dist/Switch.mjs.map +1 -1
- package/dist/TableView.cjs +209 -196
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css +95 -95
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs +211 -198
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +59 -62
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +42 -42
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +59 -62
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TagGroup.cjs +122 -124
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css +93 -93
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs +122 -124
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs +44 -55
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css +33 -33
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs +45 -56
- package/dist/TextField.mjs.map +1 -1
- package/dist/ToggleButton.cjs +6 -9
- package/dist/ToggleButton.cjs.map +1 -1
- package/dist/ToggleButton.css +7 -7
- package/dist/ToggleButton.css.map +1 -1
- package/dist/ToggleButton.mjs +6 -9
- package/dist/ToggleButton.mjs.map +1 -1
- package/dist/ToggleButtonGroup.cjs +2 -5
- package/dist/ToggleButtonGroup.cjs.map +1 -1
- package/dist/ToggleButtonGroup.mjs +2 -5
- package/dist/ToggleButtonGroup.mjs.map +1 -1
- package/dist/Tooltip.cjs +48 -48
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css +55 -70
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs +49 -49
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/ar-AE.cjs +10 -2
- package/dist/ar-AE.cjs.map +1 -1
- package/dist/ar-AE.mjs +10 -2
- package/dist/ar-AE.mjs.map +1 -1
- package/dist/bg-BG.cjs +11 -2
- package/dist/bg-BG.cjs.map +1 -1
- package/dist/bg-BG.mjs +11 -2
- package/dist/bg-BG.mjs.map +1 -1
- package/dist/cs-CZ.cjs +7 -2
- package/dist/cs-CZ.cjs.map +1 -1
- package/dist/cs-CZ.mjs +7 -2
- package/dist/cs-CZ.mjs.map +1 -1
- package/dist/da-DK.cjs +12 -4
- package/dist/da-DK.cjs.map +1 -1
- package/dist/da-DK.mjs +12 -4
- package/dist/da-DK.mjs.map +1 -1
- package/dist/de-DE.cjs +11 -2
- package/dist/de-DE.cjs.map +1 -1
- package/dist/de-DE.mjs +11 -2
- package/dist/de-DE.mjs.map +1 -1
- package/dist/el-GR.cjs +11 -2
- package/dist/el-GR.cjs.map +1 -1
- package/dist/el-GR.mjs +11 -2
- package/dist/el-GR.mjs.map +1 -1
- package/dist/en-US.cjs +8 -0
- package/dist/en-US.cjs.map +1 -1
- package/dist/en-US.mjs +8 -0
- package/dist/en-US.mjs.map +1 -1
- package/dist/es-ES.cjs +11 -2
- package/dist/es-ES.cjs.map +1 -1
- package/dist/es-ES.mjs +11 -2
- package/dist/es-ES.mjs.map +1 -1
- package/dist/et-EE.cjs +10 -2
- package/dist/et-EE.cjs.map +1 -1
- package/dist/et-EE.mjs +10 -2
- package/dist/et-EE.mjs.map +1 -1
- package/dist/fi-FI.cjs +10 -2
- package/dist/fi-FI.cjs.map +1 -1
- package/dist/fi-FI.mjs +10 -2
- package/dist/fi-FI.mjs.map +1 -1
- package/dist/fr-FR.cjs +11 -2
- package/dist/fr-FR.cjs.map +1 -1
- package/dist/fr-FR.mjs +11 -2
- package/dist/fr-FR.mjs.map +1 -1
- package/dist/he-IL.cjs +11 -2
- package/dist/he-IL.cjs.map +1 -1
- package/dist/he-IL.mjs +11 -2
- package/dist/he-IL.mjs.map +1 -1
- package/dist/hr-HR.cjs +7 -2
- package/dist/hr-HR.cjs.map +1 -1
- package/dist/hr-HR.mjs +7 -2
- package/dist/hr-HR.mjs.map +1 -1
- package/dist/hu-HU.cjs +10 -2
- package/dist/hu-HU.cjs.map +1 -1
- package/dist/hu-HU.mjs +10 -2
- package/dist/hu-HU.mjs.map +1 -1
- package/dist/it-IT.cjs +11 -2
- package/dist/it-IT.cjs.map +1 -1
- package/dist/it-IT.mjs +11 -2
- package/dist/it-IT.mjs.map +1 -1
- package/dist/ja-JP.cjs +10 -2
- package/dist/ja-JP.cjs.map +1 -1
- package/dist/ja-JP.mjs +10 -2
- package/dist/ja-JP.mjs.map +1 -1
- package/dist/ko-KR.cjs +12 -4
- package/dist/ko-KR.cjs.map +1 -1
- package/dist/ko-KR.mjs +12 -4
- package/dist/ko-KR.mjs.map +1 -1
- package/dist/lt-LT.cjs +9 -4
- package/dist/lt-LT.cjs.map +1 -1
- package/dist/lt-LT.mjs +9 -4
- package/dist/lt-LT.mjs.map +1 -1
- package/dist/lv-LV.cjs +11 -3
- package/dist/lv-LV.cjs.map +1 -1
- package/dist/lv-LV.mjs +11 -3
- package/dist/lv-LV.mjs.map +1 -1
- package/dist/main.cjs +4 -0
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +3 -1
- package/dist/module.mjs.map +1 -1
- package/dist/nb-NO.cjs +9 -4
- package/dist/nb-NO.cjs.map +1 -1
- package/dist/nb-NO.mjs +9 -4
- package/dist/nb-NO.mjs.map +1 -1
- package/dist/nl-NL.cjs +10 -2
- package/dist/nl-NL.cjs.map +1 -1
- package/dist/nl-NL.mjs +10 -2
- package/dist/nl-NL.mjs.map +1 -1
- package/dist/pl-PL.cjs +8 -3
- package/dist/pl-PL.cjs.map +1 -1
- package/dist/pl-PL.mjs +8 -3
- package/dist/pl-PL.mjs.map +1 -1
- package/dist/pt-BR.cjs +11 -2
- package/dist/pt-BR.cjs.map +1 -1
- package/dist/pt-BR.mjs +11 -2
- package/dist/pt-BR.mjs.map +1 -1
- package/dist/pt-PT.cjs +11 -2
- package/dist/pt-PT.cjs.map +1 -1
- package/dist/pt-PT.mjs +11 -2
- package/dist/pt-PT.mjs.map +1 -1
- package/dist/ro-RO.cjs +12 -3
- package/dist/ro-RO.cjs.map +1 -1
- package/dist/ro-RO.mjs +12 -3
- package/dist/ro-RO.mjs.map +1 -1
- package/dist/ru-RU.cjs +7 -2
- package/dist/ru-RU.cjs.map +1 -1
- package/dist/ru-RU.mjs +7 -2
- package/dist/ru-RU.mjs.map +1 -1
- package/dist/sk-SK.cjs +7 -2
- package/dist/sk-SK.cjs.map +1 -1
- package/dist/sk-SK.mjs +7 -2
- package/dist/sk-SK.mjs.map +1 -1
- package/dist/sl-SI.cjs +7 -2
- package/dist/sl-SI.cjs.map +1 -1
- package/dist/sl-SI.mjs +7 -2
- package/dist/sl-SI.mjs.map +1 -1
- package/dist/sr-SP.cjs +7 -2
- package/dist/sr-SP.cjs.map +1 -1
- package/dist/sr-SP.mjs +7 -2
- package/dist/sr-SP.mjs.map +1 -1
- package/dist/sv-SE.cjs +11 -2
- package/dist/sv-SE.cjs.map +1 -1
- package/dist/sv-SE.mjs +11 -2
- package/dist/sv-SE.mjs.map +1 -1
- package/dist/tr-TR.cjs +10 -2
- package/dist/tr-TR.cjs.map +1 -1
- package/dist/tr-TR.mjs +10 -2
- package/dist/tr-TR.mjs.map +1 -1
- package/dist/types.d.ts +109 -89
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.cjs +7 -2
- package/dist/uk-UA.cjs.map +1 -1
- package/dist/uk-UA.mjs +7 -2
- package/dist/uk-UA.mjs.map +1 -1
- package/dist/zh-CN.cjs +10 -2
- package/dist/zh-CN.cjs.map +1 -1
- package/dist/zh-CN.mjs +10 -2
- package/dist/zh-CN.mjs.map +1 -1
- package/dist/zh-TW.cjs +10 -2
- package/dist/zh-TW.cjs.map +1 -1
- package/dist/zh-TW.mjs +10 -2
- package/dist/zh-TW.mjs.map +1 -1
- package/icons/Skeleton.cjs +2 -2
- package/icons/Skeleton.css +5 -5
- package/icons/Skeleton.mjs +2 -2
- package/package.json +20 -21
- package/src/Accordion.tsx +5 -8
- package/src/ActionBar.tsx +229 -0
- package/src/ActionButton.tsx +25 -52
- package/src/ActionButtonGroup.tsx +9 -11
- package/src/ActionMenu.tsx +5 -8
- package/src/AlertDialog.tsx +5 -8
- package/src/Avatar.tsx +5 -8
- package/src/AvatarGroup.tsx +5 -8
- package/src/Badge.tsx +5 -8
- package/src/Breadcrumbs.tsx +6 -12
- package/src/Button.tsx +197 -154
- package/src/ButtonGroup.tsx +5 -8
- package/src/CardView.tsx +37 -12
- package/src/Checkbox.tsx +6 -9
- package/src/CheckboxGroup.tsx +6 -9
- package/src/ClearButton.tsx +2 -5
- package/src/CloseButton.tsx +21 -31
- package/src/ColorArea.tsx +5 -8
- package/src/ColorField.tsx +5 -8
- package/src/ColorSlider.tsx +5 -8
- package/src/ColorSwatch.tsx +5 -8
- package/src/ColorSwatchPicker.tsx +5 -8
- package/src/ColorWheel.tsx +5 -8
- package/src/ComboBox.tsx +7 -9
- package/src/Content.tsx +12 -30
- package/src/ContextualHelp.tsx +5 -8
- package/src/CustomDialog.tsx +5 -8
- package/src/Dialog.tsx +6 -9
- package/src/Disclosure.tsx +15 -24
- package/src/Divider.tsx +16 -25
- package/src/DropZone.tsx +5 -8
- package/src/Field.tsx +25 -32
- package/src/Form.tsx +5 -8
- package/src/FullscreenDialog.tsx +5 -8
- package/src/IllustratedMessage.tsx +6 -9
- package/src/Image.tsx +3 -6
- package/src/InlineAlert.tsx +6 -10
- package/src/Link.tsx +13 -21
- package/src/Menu.tsx +69 -33
- package/src/Meter.tsx +13 -23
- package/src/Modal.tsx +22 -52
- package/src/NumberField.tsx +5 -8
- package/src/Picker.tsx +7 -9
- package/src/Popover.tsx +30 -104
- package/src/ProgressBar.tsx +14 -24
- package/src/ProgressCircle.tsx +18 -24
- package/src/Radio.tsx +6 -9
- package/src/RadioGroup.tsx +6 -9
- package/src/RangeSlider.tsx +2 -5
- package/src/SearchField.tsx +5 -8
- package/src/SegmentedControl.tsx +10 -16
- package/src/Slider.tsx +2 -5
- package/src/StatusLight.tsx +6 -9
- package/src/Switch.tsx +6 -9
- package/src/TableView.tsx +53 -50
- package/src/Tabs.tsx +5 -8
- package/src/TagGroup.tsx +7 -14
- package/src/TextField.tsx +20 -28
- package/src/ToggleButton.tsx +7 -9
- package/src/ToggleButtonGroup.tsx +5 -8
- package/src/Tooltip.tsx +30 -51
- package/src/bar-utils.ts +3 -10
- package/src/index.ts +2 -0
- package/src/style-utils.ts +15 -8
- package/style/dist/main.cjs +1 -0
- package/style/dist/main.cjs.map +1 -1
- package/style/dist/module.mjs +2 -2
- package/style/dist/module.mjs.map +1 -1
- package/style/dist/spectrum-theme.cjs +72 -5
- package/style/dist/spectrum-theme.cjs.map +1 -1
- package/style/dist/spectrum-theme.mjs +72 -6
- package/style/dist/spectrum-theme.mjs.map +1 -1
- package/style/dist/style-macro.cjs +13 -1
- package/style/dist/style-macro.cjs.map +1 -1
- package/style/dist/style-macro.mjs +13 -1
- package/style/dist/style-macro.mjs.map +1 -1
- package/style/dist/types.d.ts +50 -29
- package/style/dist/types.d.ts.map +1 -1
- package/style/index.ts +1 -1
- package/style/spectrum-theme.ts +72 -7
- package/style/style-macro.ts +20 -4
- package/style/tokens.ts +30 -0
- package/style/types.ts +1 -1
package/src/Breadcrumbs.tsx
CHANGED
|
@@ -97,7 +97,8 @@ const wrapper = style<BreadcrumbsStyleProps>({
|
|
|
97
97
|
|
|
98
98
|
const InternalBreadcrumbsContext = createContext<BreadcrumbsProps<any>>({});
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
/** Breadcrumbs show hierarchy and navigational context for a user’s location within an application. */
|
|
101
|
+
export const Breadcrumbs = /*#__PURE__*/ (forwardRef as forwardRefType)(function Breadcrumbs<T extends object>(props: BreadcrumbsProps<T>, ref: DOMRef<HTMLOListElement>) {
|
|
101
102
|
[props, ref] = useSpectrumContextProps(props, ref, BreadcrumbsContext);
|
|
102
103
|
let domRef = useDOMRef(ref);
|
|
103
104
|
let {
|
|
@@ -129,7 +130,7 @@ function Breadcrumbs<T extends object>(props: BreadcrumbsProps<T>, ref: DOMRef<H
|
|
|
129
130
|
</CollapsingCollection>
|
|
130
131
|
</Provider>
|
|
131
132
|
);
|
|
132
|
-
}
|
|
133
|
+
});
|
|
133
134
|
|
|
134
135
|
let BreadcrumbMenu = (props: {items: Array<Node<any>>, onAction: BreadcrumbsProps<unknown>['onAction']}) => {
|
|
135
136
|
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
|
|
@@ -162,10 +163,6 @@ let BreadcrumbMenu = (props: {items: Array<Node<any>>, onAction: BreadcrumbsProp
|
|
|
162
163
|
);
|
|
163
164
|
};
|
|
164
165
|
|
|
165
|
-
/** Breadcrumbs show hierarchy and navigational context for a user’s location within an application. */
|
|
166
|
-
let _Breadcrumbs = /*#__PURE__*/ (forwardRef as forwardRefType)(Breadcrumbs);
|
|
167
|
-
export {_Breadcrumbs as Breadcrumbs};
|
|
168
|
-
|
|
169
166
|
let HiddenBreadcrumbs = function (props: {listRef: RefObject<HTMLDivElement | null>, items: Array<Node<any>>, size: string}) {
|
|
170
167
|
let {listRef, items, size} = props;
|
|
171
168
|
return (
|
|
@@ -296,7 +293,8 @@ export interface BreadcrumbProps extends Omit<AriaBreadcrumbItemProps, 'children
|
|
|
296
293
|
children?: ReactNode
|
|
297
294
|
}
|
|
298
295
|
|
|
299
|
-
|
|
296
|
+
/** An individual Breadcrumb for Breadcrumbs. */
|
|
297
|
+
export const Breadcrumb = /*#__PURE__*/ (forwardRef as forwardRefType)(function Breadcrumb({children, ...props}: BreadcrumbProps, ref: DOMRef<HTMLLIElement>) {
|
|
300
298
|
let {href, target, rel, download, ping, referrerPolicy} = props;
|
|
301
299
|
let {size = 'M'} = useContext(InternalBreadcrumbsContext) ?? {};
|
|
302
300
|
let domRef = useDOMRef(ref);
|
|
@@ -351,11 +349,7 @@ function Breadcrumb({children, ...props}: BreadcrumbProps, ref: DOMRef<HTMLLIEle
|
|
|
351
349
|
}}
|
|
352
350
|
</AriaBreadcrumb>
|
|
353
351
|
);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/** An individual Breadcrumb for Breadcrumbs. */
|
|
357
|
-
let _Breadcrumb = /*#__PURE__*/ (forwardRef as forwardRefType)(Breadcrumb);
|
|
358
|
-
export {_Breadcrumb as Breadcrumb};
|
|
352
|
+
});
|
|
359
353
|
|
|
360
354
|
// Context for passing the count for the custom renderer
|
|
361
355
|
let CollapseContext = createContext<{
|
package/src/Button.tsx
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {baseColor, focusRing, fontRelative, style} from '../style' with {type: 'macro'};
|
|
13
|
+
import {baseColor, focusRing, fontRelative, linearGradient, style} from '../style' with {type: 'macro'};
|
|
14
14
|
import {ButtonRenderProps, ContextValue, Link, LinkProps, OverlayTriggerStateContext, Provider, Button as RACButton, ButtonProps as RACButtonProps} from 'react-aria-components';
|
|
15
15
|
import {centerBaseline} from './CenterBaseline';
|
|
16
|
-
import {centerPadding, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
|
|
16
|
+
import {centerPadding, getAllowedOverrides, staticColor, StyleProps} from './style-utils' with {type: 'macro'};
|
|
17
17
|
import {createContext, forwardRef, ReactNode, useContext, useEffect, useState} from 'react';
|
|
18
18
|
import {FocusableRef, FocusableRefValue} from '@react-types/shared';
|
|
19
19
|
import {IconContext} from './Icon';
|
|
@@ -34,7 +34,7 @@ interface ButtonStyleProps {
|
|
|
34
34
|
*
|
|
35
35
|
* @default 'primary'
|
|
36
36
|
*/
|
|
37
|
-
variant?: 'primary' | 'secondary' | 'accent' | 'negative',
|
|
37
|
+
variant?: 'primary' | 'secondary' | 'accent' | 'negative' | 'premium' | 'genai',
|
|
38
38
|
/**
|
|
39
39
|
* The background style of the Button.
|
|
40
40
|
*
|
|
@@ -48,7 +48,7 @@ interface ButtonStyleProps {
|
|
|
48
48
|
*/
|
|
49
49
|
size?: 'S' | 'M' | 'L' | 'XL',
|
|
50
50
|
/** The static color style to apply. Useful when the Button appears over a color background. */
|
|
51
|
-
staticColor?: 'white' | 'black'
|
|
51
|
+
staticColor?: 'white' | 'black' | 'auto'
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
export interface ButtonProps extends Omit<RACButtonProps, 'className' | 'style' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange'>, StyleProps, ButtonStyleProps {
|
|
@@ -65,8 +65,9 @@ export const ButtonContext = createContext<ContextValue<ButtonProps, FocusableRe
|
|
|
65
65
|
export const LinkButtonContext = createContext<ContextValue<ButtonProps, FocusableRefValue<HTMLAnchorElement>>>(null);
|
|
66
66
|
|
|
67
67
|
const iconOnly = ':has([slot=icon]):not(:has([data-rsp-slot=text]))';
|
|
68
|
-
const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
68
|
+
const button = style<ButtonRenderProps & ButtonStyleProps & {isStaticColor: boolean}>({
|
|
69
69
|
...focusRing(),
|
|
70
|
+
...staticColor(),
|
|
70
71
|
position: 'relative',
|
|
71
72
|
display: 'flex',
|
|
72
73
|
alignItems: {
|
|
@@ -101,6 +102,10 @@ const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
|
101
102
|
fillStyle: {
|
|
102
103
|
fill: 0,
|
|
103
104
|
outline: 2
|
|
105
|
+
},
|
|
106
|
+
variant: {
|
|
107
|
+
premium: 0,
|
|
108
|
+
genai: 0
|
|
104
109
|
}
|
|
105
110
|
},
|
|
106
111
|
'--labelPadding': {
|
|
@@ -120,21 +125,12 @@ const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
|
120
125
|
secondary: baseColor('gray-300')
|
|
121
126
|
},
|
|
122
127
|
isDisabled: 'disabled',
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
secondary: baseColor('transparent-white-300')
|
|
128
|
-
},
|
|
129
|
-
isDisabled: 'transparent-white-300'
|
|
128
|
+
isStaticColor: {
|
|
129
|
+
variant: {
|
|
130
|
+
primary: baseColor('transparent-overlay-800'),
|
|
131
|
+
secondary: baseColor('transparent-overlay-300')
|
|
130
132
|
},
|
|
131
|
-
|
|
132
|
-
variant: {
|
|
133
|
-
primary: baseColor('transparent-black-800'),
|
|
134
|
-
secondary: baseColor('transparent-black-300')
|
|
135
|
-
},
|
|
136
|
-
isDisabled: 'transparent-black-300'
|
|
137
|
-
}
|
|
133
|
+
isDisabled: 'transparent-overlay-300'
|
|
138
134
|
},
|
|
139
135
|
forcedColors: {
|
|
140
136
|
default: 'ButtonBorder',
|
|
@@ -149,52 +145,56 @@ const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
|
149
145
|
primary: 'neutral',
|
|
150
146
|
secondary: baseColor('gray-100'),
|
|
151
147
|
accent: 'accent',
|
|
152
|
-
negative: 'negative'
|
|
148
|
+
negative: 'negative',
|
|
149
|
+
premium: 'gray-100',
|
|
150
|
+
genai: 'gray-100'
|
|
153
151
|
},
|
|
154
152
|
isDisabled: 'disabled'
|
|
155
153
|
},
|
|
156
154
|
outline: {
|
|
155
|
+
variant: {
|
|
156
|
+
premium: 'gray-100',
|
|
157
|
+
genai: 'gray-100'
|
|
158
|
+
},
|
|
157
159
|
default: 'transparent',
|
|
158
160
|
isHovered: 'gray-100',
|
|
159
161
|
isPressed: 'gray-100',
|
|
160
162
|
isFocusVisible: 'gray-100',
|
|
161
|
-
isDisabled:
|
|
163
|
+
isDisabled: {
|
|
164
|
+
default: 'transparent',
|
|
165
|
+
variant: {
|
|
166
|
+
premium: 'gray-100',
|
|
167
|
+
genai: 'gray-100'
|
|
168
|
+
}
|
|
169
|
+
}
|
|
162
170
|
}
|
|
163
171
|
},
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
isDisabled: 'transparent-white-100'
|
|
172
|
+
isStaticColor: {
|
|
173
|
+
fillStyle: {
|
|
174
|
+
fill: {
|
|
175
|
+
variant: {
|
|
176
|
+
primary: baseColor('transparent-overlay-800'),
|
|
177
|
+
secondary: baseColor('transparent-overlay-100'),
|
|
178
|
+
premium: 'transparent-overlay-100',
|
|
179
|
+
genai: 'transparent-overlay-100'
|
|
173
180
|
},
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
black: {
|
|
184
|
-
fillStyle: {
|
|
185
|
-
fill: {
|
|
186
|
-
variant: {
|
|
187
|
-
primary: baseColor('transparent-black-800'),
|
|
188
|
-
secondary: baseColor('transparent-black-100')
|
|
189
|
-
},
|
|
190
|
-
isDisabled: 'transparent-black-100'
|
|
181
|
+
isDisabled: 'transparent-overlay-100'
|
|
182
|
+
},
|
|
183
|
+
outline: {
|
|
184
|
+
variant: {
|
|
185
|
+
premium: 'transparent-overlay-100',
|
|
186
|
+
genai: 'transparent-overlay-100'
|
|
191
187
|
},
|
|
192
|
-
|
|
188
|
+
default: 'transparent',
|
|
189
|
+
isHovered: 'transparent-overlay-100',
|
|
190
|
+
isPressed: 'transparent-overlay-100',
|
|
191
|
+
isFocusVisible: 'transparent-overlay-100',
|
|
192
|
+
isDisabled: {
|
|
193
193
|
default: 'transparent',
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
194
|
+
variant: {
|
|
195
|
+
premium: 'transparent-overlay-100',
|
|
196
|
+
genai: 'transparent-overlay-100'
|
|
197
|
+
}
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -217,40 +217,40 @@ const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
|
217
217
|
primary: 'gray-25',
|
|
218
218
|
secondary: 'neutral',
|
|
219
219
|
accent: 'white',
|
|
220
|
-
negative: 'white'
|
|
220
|
+
negative: 'white',
|
|
221
|
+
premium: 'white',
|
|
222
|
+
genai: 'white'
|
|
221
223
|
},
|
|
222
224
|
isDisabled: 'disabled'
|
|
223
225
|
},
|
|
224
226
|
outline: {
|
|
225
227
|
default: 'neutral',
|
|
228
|
+
variant: {
|
|
229
|
+
premium: 'white',
|
|
230
|
+
genai: 'white'
|
|
231
|
+
},
|
|
226
232
|
isDisabled: 'disabled'
|
|
227
233
|
}
|
|
228
234
|
},
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
238
|
-
outline: baseColor('transparent-white-800')
|
|
235
|
+
isStaticColor: {
|
|
236
|
+
fillStyle: {
|
|
237
|
+
fill: {
|
|
238
|
+
variant: {
|
|
239
|
+
primary: 'auto',
|
|
240
|
+
secondary: baseColor('transparent-overlay-800'),
|
|
241
|
+
premium: 'white',
|
|
242
|
+
genai: 'white'
|
|
243
|
+
}
|
|
239
244
|
},
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
fill: {
|
|
245
|
-
variant: {
|
|
246
|
-
primary: 'white',
|
|
247
|
-
secondary: baseColor('transparent-black-800')
|
|
248
|
-
}
|
|
245
|
+
outline: {
|
|
246
|
+
variant: {
|
|
247
|
+
premium: 'white',
|
|
248
|
+
genai: 'white'
|
|
249
249
|
},
|
|
250
|
-
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
|
|
250
|
+
default: baseColor('transparent-overlay-800')
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
isDisabled: 'transparent-overlay-400'
|
|
254
254
|
},
|
|
255
255
|
forcedColors: {
|
|
256
256
|
fillStyle: {
|
|
@@ -271,17 +271,55 @@ const button = style<ButtonRenderProps & ButtonStyleProps>({
|
|
|
271
271
|
},
|
|
272
272
|
outlineColor: {
|
|
273
273
|
default: 'focus-ring',
|
|
274
|
-
|
|
275
|
-
white: 'white',
|
|
276
|
-
black: 'black'
|
|
277
|
-
},
|
|
274
|
+
isStaticColor: 'transparent-overlay-1000',
|
|
278
275
|
forcedColors: 'Highlight'
|
|
279
276
|
},
|
|
280
277
|
forcedColorAdjust: 'none',
|
|
281
278
|
disableTapHighlight: true
|
|
282
279
|
}, getAllowedOverrides());
|
|
283
280
|
|
|
284
|
-
|
|
281
|
+
// Put the gradient background on a separate element from the button to work around a Safari
|
|
282
|
+
// bug where transitions of custom properties cause layout flickering if any properties use rems. 🤣
|
|
283
|
+
// https://bugs.webkit.org/show_bug.cgi?id=285622
|
|
284
|
+
const gradient = style({
|
|
285
|
+
position: 'absolute',
|
|
286
|
+
inset: 0,
|
|
287
|
+
zIndex: -1,
|
|
288
|
+
transition: 'default',
|
|
289
|
+
borderRadius: '[inherit]',
|
|
290
|
+
backgroundImage: {
|
|
291
|
+
variant: {
|
|
292
|
+
premium: {
|
|
293
|
+
default: linearGradient('to bottom right', ['fuchsia-900', 0], ['indigo-900', 66], ['blue-900', 100]),
|
|
294
|
+
isHovered: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100]),
|
|
295
|
+
isPressed: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100]),
|
|
296
|
+
isFocusVisible: linearGradient('to bottom right', ['fuchsia-1000', 0], ['indigo-1000', 66], ['blue-1000', 100])
|
|
297
|
+
},
|
|
298
|
+
genai: {
|
|
299
|
+
default: linearGradient('to bottom right', ['red-900', 0], ['magenta-900', 33], ['indigo-900', 100]),
|
|
300
|
+
isHovered: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100]),
|
|
301
|
+
isPressed: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100]),
|
|
302
|
+
isFocusVisible: linearGradient('to bottom right', ['red-1000', 0], ['magenta-1000', 33], ['indigo-1000', 100])
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
isDisabled: 'none',
|
|
306
|
+
forcedColors: 'none'
|
|
307
|
+
},
|
|
308
|
+
// Force gradient colors to remain static between light and dark theme.
|
|
309
|
+
colorScheme: {
|
|
310
|
+
variant: {
|
|
311
|
+
premium: 'light',
|
|
312
|
+
genai: 'light'
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Buttons allow users to perform an action.
|
|
319
|
+
* They have multiple styles for various needs, and are ideal for calling attention to
|
|
320
|
+
* where a user needs to do something in order to move forward in a flow.
|
|
321
|
+
*/
|
|
322
|
+
export const Button = forwardRef(function Button(props: ButtonProps, ref: FocusableRef<HTMLButtonElement>) {
|
|
285
323
|
[props, ref] = useSpectrumContextProps(props, ref, ButtonContext);
|
|
286
324
|
props = useFormProps(props);
|
|
287
325
|
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
|
|
@@ -327,80 +365,90 @@ function Button(props: ButtonProps, ref: FocusableRef<HTMLButtonElement>) {
|
|
|
327
365
|
variant,
|
|
328
366
|
fillStyle,
|
|
329
367
|
size,
|
|
330
|
-
staticColor
|
|
368
|
+
staticColor,
|
|
369
|
+
isStaticColor: !!staticColor
|
|
331
370
|
}, props.styles)}>
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
371
|
+
{(renderProps) => (<>
|
|
372
|
+
{variant === 'genai' || variant === 'premium'
|
|
373
|
+
? (
|
|
374
|
+
<span
|
|
375
|
+
className={gradient({
|
|
376
|
+
...renderProps,
|
|
377
|
+
// Retain hover styles when an overlay is open.
|
|
378
|
+
isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false,
|
|
379
|
+
isDisabled: renderProps.isDisabled || isProgressVisible,
|
|
380
|
+
variant
|
|
381
|
+
})} />
|
|
382
|
+
)
|
|
383
|
+
: null}
|
|
384
|
+
<Provider
|
|
385
|
+
values={[
|
|
386
|
+
[SkeletonContext, null],
|
|
387
|
+
[TextContext, {
|
|
388
|
+
styles: style({
|
|
389
|
+
paddingY: '--labelPadding',
|
|
390
|
+
order: 1,
|
|
391
|
+
opacity: {
|
|
392
|
+
default: 1,
|
|
393
|
+
isProgressVisible: 0
|
|
394
|
+
}
|
|
395
|
+
})({isProgressVisible}),
|
|
396
|
+
// @ts-ignore data-attributes allowed on all JSX elements, but adding to DOMProps has been problematic in the past
|
|
397
|
+
'data-rsp-slot': 'text'
|
|
398
|
+
}],
|
|
399
|
+
[IconContext, {
|
|
400
|
+
render: centerBaseline({slot: 'icon', styles: style({order: 0})}),
|
|
401
|
+
styles: style({
|
|
402
|
+
size: fontRelative(20),
|
|
403
|
+
marginStart: '--iconMargin',
|
|
404
|
+
flexShrink: 0,
|
|
405
|
+
opacity: {
|
|
406
|
+
default: 1,
|
|
407
|
+
isProgressVisible: 0
|
|
408
|
+
}
|
|
409
|
+
})({isProgressVisible})
|
|
410
|
+
}]
|
|
411
|
+
]}>
|
|
412
|
+
{typeof props.children === 'string' ? <Text>{props.children}</Text> : props.children}
|
|
413
|
+
{isPending &&
|
|
414
|
+
<div
|
|
415
|
+
className={style({
|
|
416
|
+
position: 'absolute',
|
|
417
|
+
top: '[50%]',
|
|
418
|
+
left: '[50%]',
|
|
419
|
+
transform: 'translate(-50%, -50%)',
|
|
420
|
+
opacity: {
|
|
421
|
+
default: 0,
|
|
422
|
+
isProgressVisible: 1
|
|
423
|
+
}
|
|
424
|
+
})({isProgressVisible, isPending})}>
|
|
425
|
+
<ProgressCircle
|
|
426
|
+
isIndeterminate
|
|
427
|
+
aria-label={stringFormatter.format('button.pending')}
|
|
428
|
+
size="S"
|
|
429
|
+
staticColor={staticColor}
|
|
430
|
+
styles={style({
|
|
380
431
|
size: {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
432
|
+
size: {
|
|
433
|
+
S: 14,
|
|
434
|
+
M: 18,
|
|
435
|
+
L: 20,
|
|
436
|
+
XL: 24
|
|
437
|
+
}
|
|
385
438
|
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
439
|
+
})({size})} />
|
|
440
|
+
</div>
|
|
441
|
+
}
|
|
442
|
+
</Provider>
|
|
443
|
+
</>)}
|
|
391
444
|
</RACButton>
|
|
392
445
|
);
|
|
393
|
-
}
|
|
446
|
+
});
|
|
394
447
|
|
|
395
448
|
/**
|
|
396
|
-
*
|
|
397
|
-
* They have multiple styles for various needs, and are ideal for calling attention to
|
|
398
|
-
* where a user needs to do something in order to move forward in a flow.
|
|
449
|
+
* A LinkButton combines the functionality of a link with the appearance of a button. Useful for allowing users to navigate to another page.
|
|
399
450
|
*/
|
|
400
|
-
|
|
401
|
-
export {_Button as Button};
|
|
402
|
-
|
|
403
|
-
function LinkButton(props: LinkButtonProps, ref: FocusableRef<HTMLAnchorElement>) {
|
|
451
|
+
export const LinkButton = forwardRef(function LinkButton(props: LinkButtonProps, ref: FocusableRef<HTMLAnchorElement>) {
|
|
404
452
|
[props, ref] = useSpectrumContextProps(props, ref, LinkButtonContext);
|
|
405
453
|
props = useFormProps(props);
|
|
406
454
|
let domRef = useFocusableRef(ref);
|
|
@@ -419,6 +467,7 @@ function LinkButton(props: LinkButtonProps, ref: FocusableRef<HTMLAnchorElement>
|
|
|
419
467
|
fillStyle: props.fillStyle || 'fill',
|
|
420
468
|
size: props.size || 'M',
|
|
421
469
|
staticColor: props.staticColor,
|
|
470
|
+
isStaticColor: !!props.staticColor,
|
|
422
471
|
isPending: false
|
|
423
472
|
}, props.styles)}>
|
|
424
473
|
<Provider
|
|
@@ -438,10 +487,4 @@ function LinkButton(props: LinkButtonProps, ref: FocusableRef<HTMLAnchorElement>
|
|
|
438
487
|
</Provider>
|
|
439
488
|
</Link>
|
|
440
489
|
);
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
/**
|
|
444
|
-
* A LinkButton combines the functionality of a link with the appearance of a button. Useful for allowing users to navigate to another page.
|
|
445
|
-
*/
|
|
446
|
-
let _LinkButton = forwardRef(LinkButton);
|
|
447
|
-
export {_LinkButton as LinkButton};
|
|
490
|
+
});
|
package/src/ButtonGroup.tsx
CHANGED
|
@@ -101,7 +101,10 @@ const buttongroup = style<ButtonGroupStyleProps>({
|
|
|
101
101
|
}
|
|
102
102
|
}, getAllowedOverrides());
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
/**
|
|
105
|
+
* ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.
|
|
106
|
+
*/
|
|
107
|
+
export const ButtonGroup = forwardRef(function ButtonGroup(props: ButtonGroupProps, ref: DOMRef<HTMLDivElement>) {
|
|
105
108
|
[props, ref] = useSpectrumContextProps(props, ref, ButtonGroupContext);
|
|
106
109
|
let domRef = useDOMRef(ref);
|
|
107
110
|
let {
|
|
@@ -178,10 +181,4 @@ function ButtonGroup(props: ButtonGroupProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
178
181
|
</Provider>
|
|
179
182
|
</div>
|
|
180
183
|
);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other.
|
|
185
|
-
*/
|
|
186
|
-
const _ButtonGroup = forwardRef(ButtonGroup);
|
|
187
|
-
export {_ButtonGroup as ButtonGroup};
|
|
184
|
+
});
|
package/src/CardView.tsx
CHANGED
|
@@ -19,12 +19,13 @@ import {
|
|
|
19
19
|
UNSTABLE_Virtualizer
|
|
20
20
|
} from 'react-aria-components';
|
|
21
21
|
import {CardContext, InternalCardViewContext} from './Card';
|
|
22
|
-
import {createContext, forwardRef, useMemo, useState} from 'react';
|
|
22
|
+
import {createContext, forwardRef, ReactElement, useMemo, useRef, useState} from 'react';
|
|
23
23
|
import {DOMRef, DOMRefValue, forwardRefType, Key, LayoutDelegate, LoadingState, Node} from '@react-types/shared';
|
|
24
24
|
import {focusRing, style} from '../style' with {type: 'macro'};
|
|
25
25
|
import {getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};
|
|
26
26
|
import {ImageCoordinator} from './ImageCoordinator';
|
|
27
27
|
import {InvalidationContext, Layout, LayoutInfo, Rect, Size} from '@react-stately/virtualizer';
|
|
28
|
+
import {useActionBarContainer} from './ActionBar';
|
|
28
29
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
29
30
|
import {useEffectEvent, useLayoutEffect, useLoadMore, useResizeObserver} from '@react-aria/utils';
|
|
30
31
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
@@ -60,7 +61,9 @@ export interface CardViewProps<T> extends Omit<GridListProps<T>, 'layout' | 'key
|
|
|
60
61
|
/** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */
|
|
61
62
|
onLoadMore?: () => void,
|
|
62
63
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
63
|
-
styles?: StylesPropWithHeight
|
|
64
|
+
styles?: StylesPropWithHeight,
|
|
65
|
+
/** Provides the ActionBar to render when cards are selected in the CardView. */
|
|
66
|
+
renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
class FlexibleGridLayout<T extends object> extends Layout<Node<T>, GridLayoutOptions> {
|
|
@@ -514,6 +517,7 @@ const cardViewStyles = style({
|
|
|
514
517
|
display: {
|
|
515
518
|
isEmpty: 'flex'
|
|
516
519
|
},
|
|
520
|
+
boxSizing: 'border-box',
|
|
517
521
|
flexDirection: 'column',
|
|
518
522
|
alignItems: 'center',
|
|
519
523
|
justifyContent: 'center',
|
|
@@ -529,10 +533,12 @@ const cardViewStyles = style({
|
|
|
529
533
|
|
|
530
534
|
export const CardViewContext = createContext<ContextValue<CardViewProps<any>, DOMRefValue<HTMLDivElement>>>(null);
|
|
531
535
|
|
|
532
|
-
function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDivElement>) {
|
|
536
|
+
export const CardView = /*#__PURE__*/ (forwardRef as forwardRefType)(function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDivElement>) {
|
|
533
537
|
[props, ref] = useSpectrumContextProps(props, ref, CardViewContext);
|
|
534
538
|
let {children, layout: layoutName = 'grid', size: sizeProp = 'M', density = 'regular', variant = 'primary', selectionStyle = 'checkbox', UNSAFE_className = '', UNSAFE_style, styles, ...otherProps} = props;
|
|
535
539
|
let domRef = useDOMRef(ref);
|
|
540
|
+
let innerRef = useRef(null);
|
|
541
|
+
let scrollRef = props.renderActionBar ? innerRef : domRef;
|
|
536
542
|
let layout = useMemo(() => {
|
|
537
543
|
return layoutName === 'waterfall' ? new WaterfallLayout() : new FlexibleGridLayout();
|
|
538
544
|
}, [layoutName]);
|
|
@@ -540,7 +546,7 @@ function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDiv
|
|
|
540
546
|
// This calculates the maximum t-shirt size where at least two columns fit in the available width.
|
|
541
547
|
let [maxSizeIndex, setMaxSizeIndex] = useState(SIZES.length - 1);
|
|
542
548
|
let updateSize = useEffectEvent(() => {
|
|
543
|
-
let w =
|
|
549
|
+
let w = scrollRef.current?.clientWidth ?? 0;
|
|
544
550
|
let i = SIZES.length - 1;
|
|
545
551
|
while (i > 0) {
|
|
546
552
|
let opts = layoutOptions[SIZES[i]][density];
|
|
@@ -553,7 +559,7 @@ function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDiv
|
|
|
553
559
|
});
|
|
554
560
|
|
|
555
561
|
useResizeObserver({
|
|
556
|
-
ref:
|
|
562
|
+
ref: scrollRef,
|
|
557
563
|
box: 'border-box',
|
|
558
564
|
onResize: updateSize
|
|
559
565
|
});
|
|
@@ -570,23 +576,32 @@ function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDiv
|
|
|
570
576
|
isLoading: props.loadingState !== 'idle' && props.loadingState !== 'error',
|
|
571
577
|
items: props.items, // TODO: ideally this would be the collection. items won't exist for static collections, or those using <Collection>
|
|
572
578
|
onLoadMore: props.onLoadMore
|
|
573
|
-
},
|
|
579
|
+
}, scrollRef);
|
|
574
580
|
|
|
575
581
|
let ctx = useMemo(() => ({size, variant}), [size, variant]);
|
|
576
582
|
|
|
577
|
-
|
|
583
|
+
let {selectedKeys, onSelectionChange, actionBar, actionBarHeight} = useActionBarContainer({...props, scrollRef});
|
|
584
|
+
|
|
585
|
+
let cardView = (
|
|
578
586
|
<UNSTABLE_Virtualizer layout={layout} layoutOptions={options}>
|
|
579
587
|
<InternalCardViewContext.Provider value={GridListItem}>
|
|
580
588
|
<CardContext.Provider value={ctx}>
|
|
581
589
|
<ImageCoordinator>
|
|
582
590
|
<AriaGridList
|
|
583
|
-
ref={
|
|
591
|
+
ref={scrollRef}
|
|
584
592
|
{...otherProps}
|
|
585
593
|
layout="grid"
|
|
586
594
|
selectionBehavior={selectionStyle === 'highlight' ? 'replace' : 'toggle'}
|
|
595
|
+
selectedKeys={selectedKeys}
|
|
596
|
+
defaultSelectedKeys={undefined}
|
|
597
|
+
onSelectionChange={onSelectionChange}
|
|
587
598
|
style={{
|
|
588
599
|
...UNSAFE_style,
|
|
589
|
-
|
|
600
|
+
// Add padding at the bottom when the action bar is visible so users can scroll to the last items.
|
|
601
|
+
// Also add scroll padding so keyboard navigating preserves the padding.
|
|
602
|
+
paddingBottom: actionBarHeight > 0 ? actionBarHeight + options.minSpace.height : 0,
|
|
603
|
+
scrollPadding: options.minSpace.height,
|
|
604
|
+
scrollPaddingBottom: actionBarHeight + options.minSpace.height
|
|
590
605
|
}}
|
|
591
606
|
className={renderProps => UNSAFE_className + cardViewStyles({...renderProps, isLoading: props.loadingState === 'loading'}, styles)}>
|
|
592
607
|
{children}
|
|
@@ -596,7 +611,17 @@ function CardView<T extends object>(props: CardViewProps<T>, ref: DOMRef<HTMLDiv
|
|
|
596
611
|
</InternalCardViewContext.Provider>
|
|
597
612
|
</UNSTABLE_Virtualizer>
|
|
598
613
|
);
|
|
599
|
-
}
|
|
600
614
|
|
|
601
|
-
|
|
602
|
-
|
|
615
|
+
// Add extra wrapper if there is an action bar so we can position relative to it.
|
|
616
|
+
// ActionBar cannot be inside the GridList due to ARIA and focus management requirements.
|
|
617
|
+
if (props.renderActionBar) {
|
|
618
|
+
return (
|
|
619
|
+
<div ref={domRef} className={style({position: 'relative', overflow: 'clip', size: 'fit'})}>
|
|
620
|
+
{cardView}
|
|
621
|
+
{actionBar}
|
|
622
|
+
</div>
|
|
623
|
+
);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
return cardView;
|
|
627
|
+
});
|