@react-spectrum/s2 0.11.1 → 0.12.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 +3 -3
- package/dist/Accordion.css +2 -2
- package/dist/Accordion.mjs +3 -3
- package/dist/ActionBar.cjs +61 -62
- package/dist/ActionBar.cjs.map +1 -1
- package/dist/ActionBar.css +62 -66
- package/dist/ActionBar.css.map +1 -1
- package/dist/ActionBar.mjs +61 -62
- package/dist/ActionBar.mjs.map +1 -1
- package/dist/ActionButton.cjs +356 -250
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css +208 -144
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs +357 -251
- package/dist/ActionButton.mjs.map +1 -1
- package/dist/ActionButtonGroup.cjs +16 -16
- package/dist/ActionButtonGroup.css +9 -9
- package/dist/ActionButtonGroup.mjs +16 -16
- package/dist/Add.cjs +10 -10
- package/dist/Add.css +6 -6
- package/dist/Add.mjs +10 -10
- package/dist/AlertDialog.cjs +3 -3
- package/dist/AlertDialog.css +3 -3
- package/dist/AlertDialog.mjs +3 -3
- package/dist/Asterisk.cjs +6 -6
- package/dist/Asterisk.css +4 -4
- package/dist/Asterisk.mjs +6 -6
- package/dist/Avatar.cjs +20 -16
- package/dist/Avatar.cjs.map +1 -1
- package/dist/Avatar.css +22 -14
- package/dist/Avatar.css.map +1 -1
- package/dist/Avatar.mjs +20 -16
- package/dist/Avatar.mjs.map +1 -1
- package/dist/AvatarGroup.cjs +135 -135
- package/dist/AvatarGroup.css +33 -33
- package/dist/AvatarGroup.mjs +135 -135
- package/dist/Badge.cjs +207 -207
- package/dist/Badge.css +127 -127
- package/dist/Badge.mjs +207 -207
- package/dist/Breadcrumbs.cjs +255 -255
- package/dist/Breadcrumbs.css +109 -109
- package/dist/Breadcrumbs.mjs +255 -255
- package/dist/Button.cjs +356 -354
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css +179 -179
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs +357 -356
- package/dist/Button.mjs.map +1 -1
- package/dist/ButtonGroup.cjs +21 -21
- package/dist/ButtonGroup.css +15 -15
- package/dist/ButtonGroup.mjs +21 -21
- package/dist/Calendar.cjs +127 -127
- package/dist/Calendar.cjs.map +1 -1
- package/dist/Calendar.css +134 -134
- package/dist/Calendar.css.map +1 -1
- package/dist/Calendar.mjs +127 -127
- package/dist/Calendar.mjs.map +1 -1
- package/dist/Card.cjs +335 -311
- package/dist/Card.cjs.map +1 -1
- package/dist/Card.css +213 -213
- package/dist/Card.css.map +1 -1
- package/dist/Card.mjs +335 -311
- package/dist/Card.mjs.map +1 -1
- package/dist/CardView.cjs +25 -19
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css +16 -16
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs +26 -20
- 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 +171 -171
- package/dist/Checkbox.css +92 -92
- package/dist/Checkbox.mjs +171 -171
- package/dist/CheckboxGroup.cjs +46 -46
- package/dist/CheckboxGroup.css +38 -38
- package/dist/CheckboxGroup.mjs +46 -46
- package/dist/Checkmark.cjs +12 -12
- package/dist/Checkmark.css +8 -8
- package/dist/Checkmark.mjs +12 -12
- package/dist/Chevron.cjs +12 -12
- package/dist/Chevron.css +10 -10
- package/dist/Chevron.mjs +12 -12
- package/dist/ClearButton.cjs +29 -29
- package/dist/ClearButton.css +29 -29
- package/dist/ClearButton.mjs +29 -29
- package/dist/CloseButton.cjs +55 -55
- package/dist/CloseButton.css +46 -46
- package/dist/CloseButton.mjs +55 -55
- package/dist/ColorArea.cjs +25 -18
- package/dist/ColorArea.cjs.map +1 -1
- package/dist/ColorArea.css +16 -16
- package/dist/ColorArea.css.map +1 -1
- package/dist/ColorArea.mjs +26 -19
- package/dist/ColorArea.mjs.map +1 -1
- package/dist/ColorField.cjs +33 -33
- package/dist/ColorField.cjs.map +1 -1
- package/dist/ColorField.css +28 -28
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs +33 -33
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorHandle.cjs +27 -27
- package/dist/ColorHandle.css +43 -43
- package/dist/ColorHandle.mjs +27 -27
- package/dist/ColorSlider.cjs +122 -121
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css +54 -54
- package/dist/ColorSlider.css.map +1 -1
- package/dist/ColorSlider.mjs +122 -121
- package/dist/ColorSlider.mjs.map +1 -1
- package/dist/ColorSwatch.cjs +30 -30
- package/dist/ColorSwatch.css +29 -29
- package/dist/ColorSwatch.mjs +30 -30
- package/dist/ColorSwatchPicker.cjs +28 -28
- package/dist/ColorSwatchPicker.css +46 -46
- package/dist/ColorSwatchPicker.mjs +28 -28
- package/dist/ColorWheel.cjs +26 -26
- package/dist/ColorWheel.css +17 -17
- package/dist/ColorWheel.mjs +26 -26
- package/dist/ComboBox.cjs +474 -452
- package/dist/ComboBox.cjs.map +1 -1
- package/dist/ComboBox.css +213 -185
- package/dist/ComboBox.css.map +1 -1
- package/dist/ComboBox.mjs +475 -453
- package/dist/ComboBox.mjs.map +1 -1
- package/dist/ContextualHelp.cjs +36 -33
- package/dist/ContextualHelp.cjs.map +1 -1
- package/dist/ContextualHelp.css +68 -60
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs +37 -34
- package/dist/ContextualHelp.mjs.map +1 -1
- package/dist/Cross.cjs +14 -14
- package/dist/Cross.css +10 -10
- package/dist/Cross.mjs +14 -14
- package/dist/CustomDialog.cjs +26 -26
- package/dist/CustomDialog.cjs.map +1 -1
- package/dist/CustomDialog.css +25 -25
- package/dist/CustomDialog.css.map +1 -1
- package/dist/CustomDialog.mjs +26 -26
- package/dist/CustomDialog.mjs.map +1 -1
- package/dist/Dash.cjs +10 -10
- package/dist/Dash.css +6 -6
- package/dist/Dash.mjs +10 -10
- package/dist/DateField.cjs +74 -74
- package/dist/DateField.cjs.map +1 -1
- package/dist/DateField.css +77 -77
- package/dist/DateField.css.map +1 -1
- package/dist/DateField.mjs +74 -74
- package/dist/DateField.mjs.map +1 -1
- package/dist/DatePicker.cjs +194 -191
- package/dist/DatePicker.cjs.map +1 -1
- package/dist/DatePicker.css +138 -126
- package/dist/DatePicker.css.map +1 -1
- package/dist/DatePicker.mjs +195 -192
- package/dist/DatePicker.mjs.map +1 -1
- package/dist/DateRangePicker.cjs +57 -57
- package/dist/DateRangePicker.cjs.map +1 -1
- package/dist/DateRangePicker.css +60 -60
- package/dist/DateRangePicker.css.map +1 -1
- package/dist/DateRangePicker.mjs +57 -57
- package/dist/DateRangePicker.mjs.map +1 -1
- package/dist/Dialog.cjs +17 -17
- package/dist/Dialog.cjs.map +1 -1
- package/dist/Dialog.css +88 -84
- package/dist/Dialog.css.map +1 -1
- package/dist/Dialog.mjs +17 -17
- package/dist/Dialog.mjs.map +1 -1
- package/dist/Disclosure.cjs +128 -147
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css +144 -112
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs +128 -147
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs +26 -26
- package/dist/Divider.css +25 -25
- package/dist/Divider.mjs +26 -26
- package/dist/DropZone.cjs +63 -63
- package/dist/DropZone.cjs.map +1 -1
- package/dist/DropZone.css +58 -58
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs +63 -63
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs +370 -370
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css +146 -142
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs +370 -370
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs +10 -10
- package/dist/Form.css +9 -9
- package/dist/Form.mjs +10 -10
- package/dist/FullscreenDialog.cjs +5 -5
- package/dist/FullscreenDialog.cjs.map +1 -1
- package/dist/FullscreenDialog.css +93 -93
- package/dist/FullscreenDialog.css.map +1 -1
- package/dist/FullscreenDialog.mjs +5 -5
- package/dist/FullscreenDialog.mjs.map +1 -1
- package/dist/IllustratedMessage.cjs +257 -257
- package/dist/IllustratedMessage.css +78 -78
- package/dist/IllustratedMessage.mjs +257 -257
- package/dist/Image.cjs +25 -17
- package/dist/Image.cjs.map +1 -1
- package/dist/Image.css +14 -14
- package/dist/Image.css.map +1 -1
- package/dist/Image.mjs +25 -17
- package/dist/Image.mjs.map +1 -1
- package/dist/InlineAlert.cjs +138 -153
- package/dist/InlineAlert.cjs.map +1 -1
- package/dist/InlineAlert.css +82 -151
- package/dist/InlineAlert.css.map +1 -1
- package/dist/InlineAlert.mjs +138 -153
- package/dist/InlineAlert.mjs.map +1 -1
- package/dist/Link.cjs +55 -55
- package/dist/Link.css +46 -46
- package/dist/Link.mjs +55 -55
- package/dist/LinkOut.cjs +8 -8
- package/dist/LinkOut.css +8 -8
- package/dist/LinkOut.mjs +8 -8
- package/dist/Menu.cjs +529 -501
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +195 -191
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +529 -502
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs +164 -164
- package/dist/Meter.css +93 -93
- package/dist/Meter.mjs +164 -164
- package/dist/Modal.cjs +90 -70
- package/dist/Modal.cjs.map +1 -1
- package/dist/Modal.css +76 -60
- package/dist/Modal.css.map +1 -1
- package/dist/Modal.mjs +90 -70
- package/dist/Modal.mjs.map +1 -1
- package/dist/NotificationBadge.cjs +59 -59
- package/dist/NotificationBadge.css +51 -51
- package/dist/NotificationBadge.mjs +59 -59
- package/dist/NumberField.cjs +116 -116
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css +100 -100
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs +116 -116
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +424 -349
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +200 -180
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +428 -353
- package/dist/Picker.mjs.map +1 -1
- package/dist/Popover.cjs +120 -116
- package/dist/Popover.cjs.map +1 -1
- package/dist/Popover.css +86 -82
- package/dist/Popover.css.map +1 -1
- package/dist/Popover.mjs +121 -118
- package/dist/Popover.mjs.map +1 -1
- package/dist/ProgressBar.cjs +174 -174
- package/dist/ProgressBar.css +101 -101
- package/dist/ProgressBar.mjs +174 -174
- package/dist/ProgressCircle.cjs +32 -32
- package/dist/ProgressCircle.css +24 -24
- package/dist/ProgressCircle.mjs +32 -32
- package/dist/Provider.cjs +11 -11
- package/dist/Provider.cjs.map +1 -1
- package/dist/Provider.css +13 -13
- package/dist/Provider.css.map +1 -1
- package/dist/Provider.mjs +11 -11
- package/dist/Provider.mjs.map +1 -1
- package/dist/Radio.cjs +155 -155
- package/dist/Radio.css +79 -79
- package/dist/Radio.mjs +155 -155
- package/dist/RadioGroup.cjs +43 -43
- package/dist/RadioGroup.css +38 -38
- package/dist/RadioGroup.mjs +43 -43
- package/dist/RangeCalendar.cjs +8 -8
- package/dist/RangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar.css +10 -10
- package/dist/RangeCalendar.css.map +1 -1
- package/dist/RangeCalendar.mjs +8 -8
- package/dist/RangeCalendar.mjs.map +1 -1
- package/dist/RangeSlider.cjs.map +1 -1
- package/dist/RangeSlider.mjs.map +1 -1
- package/dist/SearchField.cjs +43 -43
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css +46 -46
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs +43 -43
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs +193 -224
- package/dist/SegmentedControl.cjs.map +1 -1
- package/dist/SegmentedControl.css +146 -118
- package/dist/SegmentedControl.css.map +1 -1
- package/dist/SegmentedControl.mjs +196 -227
- package/dist/SegmentedControl.mjs.map +1 -1
- package/dist/SelectBoxGroup.cjs +161 -159
- package/dist/SelectBoxGroup.cjs.map +1 -1
- package/dist/SelectBoxGroup.css +123 -123
- package/dist/SelectBoxGroup.css.map +1 -1
- package/dist/SelectBoxGroup.mjs +161 -159
- package/dist/SelectBoxGroup.mjs.map +1 -1
- package/dist/Slider.cjs +300 -300
- package/dist/Slider.css +151 -151
- package/dist/Slider.mjs +300 -300
- package/dist/StatusLight.cjs +126 -126
- package/dist/StatusLight.css +61 -61
- package/dist/StatusLight.mjs +126 -126
- package/dist/Switch.cjs +163 -163
- package/dist/Switch.css +74 -74
- package/dist/Switch.mjs +163 -163
- package/dist/TableView.cjs +340 -328
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css +176 -172
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs +340 -328
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +150 -190
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +128 -100
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +153 -193
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TabsPicker.cjs +169 -161
- package/dist/TabsPicker.cjs.map +1 -1
- package/dist/TabsPicker.css +116 -124
- package/dist/TabsPicker.css.map +1 -1
- package/dist/TabsPicker.mjs +170 -162
- package/dist/TabsPicker.mjs.map +1 -1
- package/dist/TagGroup.cjs +226 -218
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css +147 -147
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs +226 -218
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs +65 -63
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css +58 -54
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs +65 -63
- package/dist/TextField.mjs.map +1 -1
- package/dist/TimeField.cjs +53 -53
- package/dist/TimeField.cjs.map +1 -1
- package/dist/TimeField.css +48 -48
- package/dist/TimeField.css.map +1 -1
- package/dist/TimeField.mjs +53 -53
- package/dist/TimeField.mjs.map +1 -1
- package/dist/Toast.cjs +120 -120
- package/dist/Toast.css +108 -108
- package/dist/Toast.mjs +120 -120
- package/dist/ToggleButton.cjs +3 -3
- package/dist/ToggleButton.css +12 -12
- package/dist/ToggleButton.mjs +3 -3
- package/dist/Tooltip.cjs +84 -83
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css +74 -70
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs +84 -83
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/TreeView.cjs +150 -148
- package/dist/TreeView.cjs.map +1 -1
- package/dist/TreeView.css +147 -147
- package/dist/TreeView.css.map +1 -1
- package/dist/TreeView.mjs +151 -149
- package/dist/TreeView.mjs.map +1 -1
- package/dist/ar-AE.cjs +5 -0
- package/dist/ar-AE.cjs.map +1 -1
- package/dist/ar-AE.mjs +5 -0
- package/dist/ar-AE.mjs.map +1 -1
- package/dist/bg-BG.cjs +5 -0
- package/dist/bg-BG.cjs.map +1 -1
- package/dist/bg-BG.mjs +5 -0
- package/dist/bg-BG.mjs.map +1 -1
- package/dist/cs-CZ.cjs +5 -0
- package/dist/cs-CZ.cjs.map +1 -1
- package/dist/cs-CZ.mjs +5 -0
- package/dist/cs-CZ.mjs.map +1 -1
- package/dist/da-DK.cjs +5 -0
- package/dist/da-DK.cjs.map +1 -1
- package/dist/da-DK.mjs +5 -0
- package/dist/da-DK.mjs.map +1 -1
- package/dist/de-DE.cjs +5 -0
- package/dist/de-DE.cjs.map +1 -1
- package/dist/de-DE.mjs +5 -0
- package/dist/de-DE.mjs.map +1 -1
- package/dist/el-GR.cjs +5 -0
- package/dist/el-GR.cjs.map +1 -1
- package/dist/el-GR.mjs +5 -0
- package/dist/el-GR.mjs.map +1 -1
- package/dist/en-US.cjs +21 -16
- package/dist/en-US.cjs.map +1 -1
- package/dist/en-US.mjs +21 -16
- package/dist/en-US.mjs.map +1 -1
- package/dist/es-ES.cjs +5 -0
- package/dist/es-ES.cjs.map +1 -1
- package/dist/es-ES.mjs +5 -0
- package/dist/es-ES.mjs.map +1 -1
- package/dist/et-EE.cjs +5 -0
- package/dist/et-EE.cjs.map +1 -1
- package/dist/et-EE.mjs +5 -0
- package/dist/et-EE.mjs.map +1 -1
- package/dist/fi-FI.cjs +5 -0
- package/dist/fi-FI.cjs.map +1 -1
- package/dist/fi-FI.mjs +5 -0
- package/dist/fi-FI.mjs.map +1 -1
- package/dist/fr-FR.cjs +5 -0
- package/dist/fr-FR.cjs.map +1 -1
- package/dist/fr-FR.mjs +5 -0
- package/dist/fr-FR.mjs.map +1 -1
- package/dist/he-IL.cjs +5 -0
- package/dist/he-IL.cjs.map +1 -1
- package/dist/he-IL.mjs +5 -0
- package/dist/he-IL.mjs.map +1 -1
- package/dist/hr-HR.cjs +5 -0
- package/dist/hr-HR.cjs.map +1 -1
- package/dist/hr-HR.mjs +5 -0
- package/dist/hr-HR.mjs.map +1 -1
- package/dist/hu-HU.cjs +5 -0
- package/dist/hu-HU.cjs.map +1 -1
- package/dist/hu-HU.mjs +5 -0
- package/dist/hu-HU.mjs.map +1 -1
- package/dist/it-IT.cjs +5 -0
- package/dist/it-IT.cjs.map +1 -1
- package/dist/it-IT.mjs +5 -0
- package/dist/it-IT.mjs.map +1 -1
- package/dist/ja-JP.cjs +5 -0
- package/dist/ja-JP.cjs.map +1 -1
- package/dist/ja-JP.mjs +5 -0
- package/dist/ja-JP.mjs.map +1 -1
- package/dist/ko-KR.cjs +5 -0
- package/dist/ko-KR.cjs.map +1 -1
- package/dist/ko-KR.mjs +5 -0
- package/dist/ko-KR.mjs.map +1 -1
- package/dist/lt-LT.cjs +5 -0
- package/dist/lt-LT.cjs.map +1 -1
- package/dist/lt-LT.mjs +5 -0
- package/dist/lt-LT.mjs.map +1 -1
- package/dist/lv-LV.cjs +5 -0
- package/dist/lv-LV.cjs.map +1 -1
- package/dist/lv-LV.mjs +5 -0
- package/dist/lv-LV.mjs.map +1 -1
- package/dist/main.cjs +2 -0
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +3 -3
- package/dist/module.mjs.map +1 -1
- package/dist/nb-NO.cjs +5 -0
- package/dist/nb-NO.cjs.map +1 -1
- package/dist/nb-NO.mjs +5 -0
- package/dist/nb-NO.mjs.map +1 -1
- package/dist/nl-NL.cjs +5 -0
- package/dist/nl-NL.cjs.map +1 -1
- package/dist/nl-NL.mjs +5 -0
- package/dist/nl-NL.mjs.map +1 -1
- package/dist/pl-PL.cjs +5 -0
- package/dist/pl-PL.cjs.map +1 -1
- package/dist/pl-PL.mjs +5 -0
- package/dist/pl-PL.mjs.map +1 -1
- package/dist/pt-BR.cjs +5 -0
- package/dist/pt-BR.cjs.map +1 -1
- package/dist/pt-BR.mjs +5 -0
- package/dist/pt-BR.mjs.map +1 -1
- package/dist/pt-PT.cjs +5 -0
- package/dist/pt-PT.cjs.map +1 -1
- package/dist/pt-PT.mjs +5 -0
- package/dist/pt-PT.mjs.map +1 -1
- package/dist/ro-RO.cjs +5 -0
- package/dist/ro-RO.cjs.map +1 -1
- package/dist/ro-RO.mjs +5 -0
- package/dist/ro-RO.mjs.map +1 -1
- package/dist/ru-RU.cjs +5 -0
- package/dist/ru-RU.cjs.map +1 -1
- package/dist/ru-RU.mjs +5 -0
- package/dist/ru-RU.mjs.map +1 -1
- package/dist/sk-SK.cjs +5 -0
- package/dist/sk-SK.cjs.map +1 -1
- package/dist/sk-SK.mjs +5 -0
- package/dist/sk-SK.mjs.map +1 -1
- package/dist/sl-SI.cjs +5 -0
- package/dist/sl-SI.cjs.map +1 -1
- package/dist/sl-SI.mjs +5 -0
- package/dist/sl-SI.mjs.map +1 -1
- package/dist/sr-SP.cjs +5 -0
- package/dist/sr-SP.cjs.map +1 -1
- package/dist/sr-SP.mjs +5 -0
- package/dist/sr-SP.mjs.map +1 -1
- package/dist/sv-SE.cjs +5 -0
- package/dist/sv-SE.cjs.map +1 -1
- package/dist/sv-SE.mjs +5 -0
- package/dist/sv-SE.mjs.map +1 -1
- package/dist/tr-TR.cjs +5 -0
- package/dist/tr-TR.cjs.map +1 -1
- package/dist/tr-TR.mjs +5 -0
- package/dist/tr-TR.mjs.map +1 -1
- package/dist/types.d.ts +147 -87
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.cjs +5 -0
- package/dist/uk-UA.cjs.map +1 -1
- package/dist/uk-UA.mjs +5 -0
- package/dist/uk-UA.mjs.map +1 -1
- package/dist/zh-CN.cjs +5 -0
- package/dist/zh-CN.cjs.map +1 -1
- package/dist/zh-CN.mjs +5 -0
- package/dist/zh-CN.mjs.map +1 -1
- package/dist/zh-TW.cjs +5 -0
- package/dist/zh-TW.cjs.map +1 -1
- package/dist/zh-TW.mjs +5 -0
- package/dist/zh-TW.mjs.map +1 -1
- package/icons/Icon.cjs +10 -10
- package/icons/Icon.css +9 -9
- package/icons/Icon.mjs +10 -10
- package/icons/Skeleton.cjs +2 -2
- package/icons/Skeleton.css +6 -6
- package/icons/Skeleton.mjs +2 -2
- package/package.json +20 -20
- package/page.css +7 -7
- package/src/ActionBar.tsx +5 -3
- package/src/ActionButton.tsx +112 -32
- package/src/Avatar.tsx +4 -1
- package/src/Button.tsx +27 -28
- package/src/Calendar.tsx +3 -0
- package/src/Card.tsx +22 -7
- package/src/CardView.tsx +9 -1
- package/src/ColorArea.tsx +10 -2
- package/src/ColorField.tsx +3 -2
- package/src/ColorSlider.tsx +3 -2
- package/src/ComboBox.tsx +69 -44
- package/src/ContextualHelp.tsx +36 -32
- package/src/CustomDialog.tsx +1 -1
- package/src/DateField.tsx +4 -0
- package/src/DatePicker.tsx +28 -20
- package/src/DateRangePicker.tsx +5 -1
- package/src/Dialog.tsx +6 -3
- package/src/Disclosure.tsx +20 -16
- package/src/DropZone.tsx +5 -2
- package/src/Field.tsx +4 -1
- package/src/FullscreenDialog.tsx +1 -1
- package/src/Image.tsx +30 -8
- package/src/InlineAlert.tsx +10 -27
- package/src/Menu.tsx +57 -45
- package/src/Modal.tsx +99 -74
- package/src/NumberField.tsx +3 -2
- package/src/Picker.tsx +114 -51
- package/src/Popover.tsx +57 -35
- package/src/Provider.tsx +1 -1
- package/src/RangeCalendar.tsx +3 -0
- package/src/RangeSlider.tsx +3 -0
- package/src/SearchField.tsx +2 -1
- package/src/SegmentedControl.tsx +16 -44
- package/src/SelectBoxGroup.tsx +21 -23
- package/src/TableView.tsx +7 -6
- package/src/Tabs.tsx +34 -70
- package/src/TabsPicker.tsx +35 -26
- package/src/TagGroup.tsx +44 -36
- package/src/TextField.tsx +11 -6
- package/src/TimeField.tsx +4 -0
- package/src/Tooltip.tsx +3 -0
- package/src/TreeView.tsx +2 -2
- package/src/index.ts +3 -2
- package/src/page.macro.ts +2 -2
- package/src/style-utils.ts +4 -3
- package/style/__tests__/style-macro.test.js +56 -56
- package/style/dist/spectrum-theme.cjs +36 -6
- package/style/dist/spectrum-theme.cjs.map +1 -1
- package/style/dist/spectrum-theme.mjs +36 -6
- package/style/dist/spectrum-theme.mjs.map +1 -1
- package/style/dist/types.d.ts +1 -0
- package/style/dist/types.d.ts.map +1 -1
- package/style/spectrum-theme.ts +10 -8
- package/style/tokens.ts +10 -0
package/src/SelectBoxGroup.tsx
CHANGED
|
@@ -26,6 +26,7 @@ import {IllustrationContext} from '../src/Icon';
|
|
|
26
26
|
import {pressScale} from './pressScale';
|
|
27
27
|
import React, {createContext, forwardRef, ReactNode, useContext, useMemo, useRef} from 'react';
|
|
28
28
|
import {TextContext} from './Content';
|
|
29
|
+
import {useFocusVisible} from 'react-aria';
|
|
29
30
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
30
31
|
|
|
31
32
|
export interface SelectBoxGroupProps<T> extends StyleProps, Omit<ListBoxProps<T>, keyof GlobalDOMAttributes | 'layout' | 'dragAndDropHooks' | 'dependencies' | 'renderEmptyState' | 'children' | 'onAction' | 'shouldFocusOnHover' | 'selectionBehavior' | 'shouldSelectOnPressUp' | 'shouldFocusWrap' | 'style' | 'className'> {
|
|
@@ -293,7 +294,7 @@ const gridStyles = style<{orientation?: Orientation}>({
|
|
|
293
294
|
*/
|
|
294
295
|
export function SelectBox(props: SelectBoxProps): ReactNode {
|
|
295
296
|
let {children, isDisabled: individualDisabled = false, UNSAFE_style, UNSAFE_className, styles, ...otherProps} = props;
|
|
296
|
-
|
|
297
|
+
|
|
297
298
|
let {
|
|
298
299
|
orientation = 'vertical',
|
|
299
300
|
isDisabled: groupDisabled = false
|
|
@@ -301,6 +302,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
|
|
|
301
302
|
|
|
302
303
|
const isDisabled = individualDisabled || groupDisabled;
|
|
303
304
|
const ref = useRef<HTMLDivElement>(null);
|
|
305
|
+
let {isFocusVisible} = useFocusVisible();
|
|
304
306
|
|
|
305
307
|
return (
|
|
306
308
|
<ListBoxItem
|
|
@@ -308,6 +310,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
|
|
|
308
310
|
ref={ref}
|
|
309
311
|
className={renderProps => (UNSAFE_className || '') + selectBoxStyles({
|
|
310
312
|
...renderProps,
|
|
313
|
+
isFocusVisible: isFocusVisible && renderProps.isFocused,
|
|
311
314
|
orientation
|
|
312
315
|
}, styles)}
|
|
313
316
|
style={pressScale(ref, UNSAFE_style)}
|
|
@@ -315,7 +318,7 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
|
|
|
315
318
|
{({isSelected, isDisabled, isHovered}) => {
|
|
316
319
|
return (
|
|
317
320
|
<>
|
|
318
|
-
<div
|
|
321
|
+
<div
|
|
319
322
|
className={style({
|
|
320
323
|
position: 'absolute',
|
|
321
324
|
top: 8,
|
|
@@ -330,8 +333,8 @@ export function SelectBox(props: SelectBoxProps): ReactNode {
|
|
|
330
333
|
isDisabled,
|
|
331
334
|
size: 'M'
|
|
332
335
|
} as any)}>
|
|
333
|
-
<Checkmark
|
|
334
|
-
size="S"
|
|
336
|
+
<Checkmark
|
|
337
|
+
size="S"
|
|
335
338
|
className={iconStyles} />
|
|
336
339
|
</div>
|
|
337
340
|
)}
|
|
@@ -382,27 +385,22 @@ export const SelectBoxGroup = /*#__PURE__*/ forwardRef(function SelectBoxGroup<T
|
|
|
382
385
|
...otherProps
|
|
383
386
|
} = props;
|
|
384
387
|
|
|
385
|
-
const selectBoxContextValue = useMemo(
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
isDisabled
|
|
390
|
-
};
|
|
391
|
-
return contextValue;
|
|
392
|
-
},
|
|
393
|
-
[orientation, isDisabled]
|
|
394
|
-
);
|
|
388
|
+
const selectBoxContextValue = useMemo(() => ({
|
|
389
|
+
orientation,
|
|
390
|
+
isDisabled
|
|
391
|
+
}), [orientation, isDisabled]);
|
|
395
392
|
|
|
396
393
|
return (
|
|
397
|
-
<
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
394
|
+
<SelectBoxContext.Provider value={selectBoxContextValue}>
|
|
395
|
+
<ListBox
|
|
396
|
+
selectionMode={selectionMode}
|
|
397
|
+
layout="grid"
|
|
398
|
+
orientation={orientation}
|
|
399
|
+
className={(UNSAFE_className || '') + gridStyles({orientation}, styles)}
|
|
400
|
+
style={UNSAFE_style}
|
|
401
|
+
{...otherProps}>
|
|
404
402
|
{children}
|
|
405
|
-
</
|
|
406
|
-
</
|
|
403
|
+
</ListBox>
|
|
404
|
+
</SelectBoxContext.Provider>
|
|
407
405
|
);
|
|
408
406
|
});
|
package/src/TableView.tsx
CHANGED
|
@@ -55,7 +55,6 @@ import {IconContext} from './Icon';
|
|
|
55
55
|
import intlMessages from '../intl/*.json';
|
|
56
56
|
import {LayoutNode} from '@react-stately/layout';
|
|
57
57
|
import {Menu, MenuItem, MenuSection, MenuTrigger} from './Menu';
|
|
58
|
-
import {mergeStyles} from '../style/runtime';
|
|
59
58
|
import Nubbin from '../ui-icons/S2_MoveHorizontalTableWidget.svg';
|
|
60
59
|
import {ProgressCircle} from './ProgressCircle';
|
|
61
60
|
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
@@ -125,10 +124,12 @@ const tableWrapper = style({
|
|
|
125
124
|
position: 'relative',
|
|
126
125
|
// Clip ActionBar animation.
|
|
127
126
|
overflow: 'clip'
|
|
128
|
-
});
|
|
127
|
+
}, getAllowedOverrides({height: true}));
|
|
129
128
|
|
|
130
129
|
const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boolean}>({
|
|
131
130
|
width: 'full',
|
|
131
|
+
height: 'full',
|
|
132
|
+
boxSizing: 'border-box',
|
|
132
133
|
userSelect: 'none',
|
|
133
134
|
minHeight: 0,
|
|
134
135
|
minWidth: 0,
|
|
@@ -163,7 +164,7 @@ const table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boo
|
|
|
163
164
|
scrollPaddingStart: {
|
|
164
165
|
isCheckboxSelection: 40
|
|
165
166
|
}
|
|
166
|
-
}
|
|
167
|
+
});
|
|
167
168
|
|
|
168
169
|
// component-height-100
|
|
169
170
|
const DEFAULT_HEADER_HEIGHT = {
|
|
@@ -320,7 +321,7 @@ export const TableView = forwardRef(function TableView(props: TableViewProps, re
|
|
|
320
321
|
onResize={propsOnResize}
|
|
321
322
|
onResizeEnd={onResizeEnd}
|
|
322
323
|
onResizeStart={onResizeStart}
|
|
323
|
-
className={(UNSAFE_className || '') +
|
|
324
|
+
className={(UNSAFE_className || '') + tableWrapper(null, styles)}
|
|
324
325
|
style={UNSAFE_style}>
|
|
325
326
|
<Virtualizer
|
|
326
327
|
layout={S2TableLayout}
|
|
@@ -461,7 +462,7 @@ const cellFocus = {
|
|
|
461
462
|
} as const;
|
|
462
463
|
|
|
463
464
|
function CellFocusRing() {
|
|
464
|
-
return <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />;
|
|
465
|
+
return <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0, pointerEvents: 'none'})({isFocusVisible: true})} />;
|
|
465
466
|
}
|
|
466
467
|
|
|
467
468
|
const columnStyles = style({
|
|
@@ -1035,8 +1036,8 @@ export const Cell = forwardRef(function Cell(props: CellProps, ref: DOMRef<HTMLD
|
|
|
1035
1036
|
{...otherProps}>
|
|
1036
1037
|
{({isFocusVisible}) => (
|
|
1037
1038
|
<>
|
|
1038
|
-
{isFocusVisible && <CellFocusRing />}
|
|
1039
1039
|
<span className={cellContent({...tableVisualOptions, isSticky, align: align || 'start'})}>{children}</span>
|
|
1040
|
+
{isFocusVisible && <CellFocusRing />}
|
|
1040
1041
|
</>
|
|
1041
1042
|
)}
|
|
1042
1043
|
</RACCell>
|
package/src/Tabs.tsx
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
Tab as RACTab,
|
|
23
23
|
TabList as RACTabList,
|
|
24
24
|
Tabs as RACTabs,
|
|
25
|
+
SelectionIndicator,
|
|
25
26
|
TabListStateContext,
|
|
26
27
|
TabRenderProps
|
|
27
28
|
} from 'react-aria-components';
|
|
@@ -36,7 +37,7 @@ import {inertValue, useEffectEvent, useId, useLabels, useLayoutEffect, useResize
|
|
|
36
37
|
import {Picker, PickerItem} from './TabsPicker';
|
|
37
38
|
import {Text, TextContext} from './Content';
|
|
38
39
|
import {useControlledState} from '@react-stately/utils';
|
|
39
|
-
import {useDOMRef
|
|
40
|
+
import {useDOMRef} from '@react-spectrum/utils';
|
|
40
41
|
import {useHasTabbableChild} from '@react-aria/focus';
|
|
41
42
|
import {useLocale} from '@react-aria/i18n';
|
|
42
43
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
@@ -79,7 +80,6 @@ export interface TabPanelProps extends Omit<AriaTabPanelProps, 'children' | 'sty
|
|
|
79
80
|
export const TabsContext = createContext<ContextValue<Partial<TabsProps>, DOMRefValue<HTMLDivElement>>>(null);
|
|
80
81
|
const InternalTabsContext = createContext<Partial<TabsProps> & {
|
|
81
82
|
tablistRef?: RefObject<HTMLDivElement | null>,
|
|
82
|
-
prevRef?: RefObject<DOMRect | null>,
|
|
83
83
|
selectedKey?: Key | null
|
|
84
84
|
}>({});
|
|
85
85
|
|
|
@@ -133,14 +133,6 @@ export const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLD
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
let tablistRef = useRef<HTMLDivElement | null>(null);
|
|
136
|
-
let prevRef = useRef<DOMRect | null>(null);
|
|
137
|
-
|
|
138
|
-
let onChange = useEffectEvent((val: Key) => {
|
|
139
|
-
if (tablistRef.current) {
|
|
140
|
-
prevRef.current = tablistRef.current.querySelector('[role=tab][data-selected=true]')?.getBoundingClientRect() ?? null;
|
|
141
|
-
}
|
|
142
|
-
setValue(val);
|
|
143
|
-
});
|
|
144
136
|
|
|
145
137
|
return (
|
|
146
138
|
<Provider
|
|
@@ -152,8 +144,7 @@ export const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLD
|
|
|
152
144
|
disabledKeys,
|
|
153
145
|
selectedKey: value,
|
|
154
146
|
tablistRef,
|
|
155
|
-
|
|
156
|
-
onSelectionChange: onChange,
|
|
147
|
+
onSelectionChange: setValue,
|
|
157
148
|
labelBehavior,
|
|
158
149
|
'aria-label': props['aria-label'],
|
|
159
150
|
'aria-labelledby': props['aria-labelledby']
|
|
@@ -164,7 +155,7 @@ export const Tabs = forwardRef(function Tabs(props: TabsProps, ref: DOMRef<HTMLD
|
|
|
164
155
|
<CollapsingTabs
|
|
165
156
|
{...props}
|
|
166
157
|
selectedKey={value}
|
|
167
|
-
onSelectionChange={
|
|
158
|
+
onSelectionChange={setValue}
|
|
168
159
|
collection={collection}
|
|
169
160
|
containerRef={domRef} />
|
|
170
161
|
)}
|
|
@@ -294,6 +285,13 @@ const selectedIndicator = style<{isDisabled: boolean, orientation?: Orientation}
|
|
|
294
285
|
vertical: '[2px]'
|
|
295
286
|
}
|
|
296
287
|
},
|
|
288
|
+
contain: 'strict',
|
|
289
|
+
transition: {
|
|
290
|
+
default: '[translate,width,height]',
|
|
291
|
+
'@media (prefers-reduced-motion: reduce)': 'none'
|
|
292
|
+
},
|
|
293
|
+
transitionDuration: 200,
|
|
294
|
+
transitionTimingFunction: 'out',
|
|
297
295
|
bottom: {
|
|
298
296
|
default: 0
|
|
299
297
|
},
|
|
@@ -353,6 +351,7 @@ const tab = style<TabRenderProps & {density?: 'compact' | 'regular', labelBehavi
|
|
|
353
351
|
alignItems: 'center',
|
|
354
352
|
position: 'relative',
|
|
355
353
|
cursor: 'default',
|
|
354
|
+
textDecoration: 'none',
|
|
356
355
|
flexShrink: 0,
|
|
357
356
|
transition: 'default',
|
|
358
357
|
paddingX: {
|
|
@@ -373,7 +372,7 @@ const icon = style({
|
|
|
373
372
|
});
|
|
374
373
|
|
|
375
374
|
export function Tab(props: TabProps): ReactNode {
|
|
376
|
-
let {density, orientation, labelBehavior
|
|
375
|
+
let {density, orientation, labelBehavior} = useContext(InternalTabsContext) ?? {};
|
|
377
376
|
|
|
378
377
|
let contentId = useId();
|
|
379
378
|
let ariaLabelledBy = props['aria-labelledby'] || '';
|
|
@@ -389,7 +388,6 @@ export function Tab(props: TabProps): ReactNode {
|
|
|
389
388
|
{({
|
|
390
389
|
// @ts-ignore
|
|
391
390
|
isMenu,
|
|
392
|
-
isSelected,
|
|
393
391
|
isDisabled
|
|
394
392
|
}) => {
|
|
395
393
|
if (isMenu) {
|
|
@@ -416,10 +414,8 @@ export function Tab(props: TabProps): ReactNode {
|
|
|
416
414
|
}]
|
|
417
415
|
]}>
|
|
418
416
|
<TabInner
|
|
419
|
-
isSelected={isSelected}
|
|
420
417
|
orientation={orientation!}
|
|
421
|
-
isDisabled={isDisabled}
|
|
422
|
-
prevRef={prevRef}>
|
|
418
|
+
isDisabled={isDisabled}>
|
|
423
419
|
{typeof props.children === 'string' ? <Text>{props.children}</Text> : props.children}
|
|
424
420
|
</TabInner>
|
|
425
421
|
</Provider>
|
|
@@ -430,53 +426,17 @@ export function Tab(props: TabProps): ReactNode {
|
|
|
430
426
|
);
|
|
431
427
|
}
|
|
432
428
|
|
|
433
|
-
function TabInner({
|
|
434
|
-
isSelected: boolean,
|
|
429
|
+
function TabInner({isDisabled, orientation, children}: {
|
|
435
430
|
isDisabled: boolean,
|
|
436
431
|
orientation: Orientation,
|
|
437
|
-
children: ReactNode
|
|
438
|
-
prevRef?: RefObject<DOMRect | null>
|
|
432
|
+
children: ReactNode
|
|
439
433
|
}) {
|
|
440
|
-
let reduceMotion = useMediaQuery('(prefers-reduced-motion: reduce)');
|
|
441
434
|
let ref = useRef<HTMLDivElement | null>(null);
|
|
442
|
-
|
|
443
|
-
useLayoutEffect(() => {
|
|
444
|
-
if (isSelected && prevRef?.current && ref?.current && !reduceMotion) {
|
|
445
|
-
let currentItem = ref?.current.getBoundingClientRect();
|
|
446
|
-
|
|
447
|
-
if (orientation === 'horizontal') {
|
|
448
|
-
let deltaX = prevRef.current.left - currentItem.left;
|
|
449
|
-
ref.current.animate(
|
|
450
|
-
[
|
|
451
|
-
{transform: `translateX(${deltaX}px)`, width: `${prevRef.current.width}px`},
|
|
452
|
-
{transform: 'translateX(0px)', width: '100%'}
|
|
453
|
-
],
|
|
454
|
-
{
|
|
455
|
-
duration: 200,
|
|
456
|
-
easing: 'ease-out'
|
|
457
|
-
}
|
|
458
|
-
);
|
|
459
|
-
} else {
|
|
460
|
-
let deltaY = prevRef.current.top - currentItem.top;
|
|
461
|
-
ref.current.animate(
|
|
462
|
-
[
|
|
463
|
-
{transform: `translateY(${deltaY}px)`, height: `${prevRef.current.height}px`},
|
|
464
|
-
{transform: 'translateY(0px)', height: '100%'}
|
|
465
|
-
],
|
|
466
|
-
{
|
|
467
|
-
duration: 200,
|
|
468
|
-
easing: 'ease-out'
|
|
469
|
-
}
|
|
470
|
-
);
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
prevRef.current = null;
|
|
474
|
-
}
|
|
475
|
-
}, [isSelected, reduceMotion, prevRef, orientation]);
|
|
435
|
+
let isHidden = useContext(HiddenTabsContext);
|
|
476
436
|
|
|
477
437
|
return (
|
|
478
438
|
<>
|
|
479
|
-
{
|
|
439
|
+
{!isHidden && <SelectionIndicator ref={ref} className={selectedIndicator({isDisabled, orientation})} />}
|
|
480
440
|
{children}
|
|
481
441
|
</>
|
|
482
442
|
);
|
|
@@ -548,6 +508,8 @@ function isEveryTabDisabled<T>(collection: Collection<Node<T>> | undefined, disa
|
|
|
548
508
|
return false;
|
|
549
509
|
}
|
|
550
510
|
|
|
511
|
+
const HiddenTabsContext = createContext(false);
|
|
512
|
+
|
|
551
513
|
let HiddenTabs = function (props: {
|
|
552
514
|
listRef: RefObject<HTMLDivElement | null>,
|
|
553
515
|
items: Array<Node<any>>,
|
|
@@ -572,18 +534,20 @@ let HiddenTabs = function (props: {
|
|
|
572
534
|
overflow: 'hidden',
|
|
573
535
|
opacity: 0
|
|
574
536
|
})}>
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
537
|
+
<HiddenTabsContext.Provider value>
|
|
538
|
+
{items.map((item) => {
|
|
539
|
+
// pull off individual props as an allow list, don't want refs or other props getting through
|
|
540
|
+
return (
|
|
541
|
+
<div
|
|
542
|
+
data-hidden-tab
|
|
543
|
+
style={item.props.UNSAFE_style}
|
|
544
|
+
key={item.key}
|
|
545
|
+
className={item.props.className({size, density})}>
|
|
546
|
+
{item.props.children({size, density})}
|
|
547
|
+
</div>
|
|
548
|
+
);
|
|
549
|
+
})}
|
|
550
|
+
</HiddenTabsContext.Provider>
|
|
587
551
|
</div>
|
|
588
552
|
);
|
|
589
553
|
};
|
package/src/TabsPicker.tsx
CHANGED
|
@@ -44,8 +44,8 @@ import {FocusableRef, FocusableRefValue, SpectrumLabelableProps} from '@react-ty
|
|
|
44
44
|
import {forwardRefType} from './types';
|
|
45
45
|
import {HeaderContext, HeadingContext, Text, TextContext} from './Content';
|
|
46
46
|
import {IconContext} from './Icon';
|
|
47
|
-
import {Placement} from 'react-aria';
|
|
48
|
-
import {
|
|
47
|
+
import {Placement, useLocale} from 'react-aria';
|
|
48
|
+
import {Popover} from './Popover';
|
|
49
49
|
import {pressScale} from './pressScale';
|
|
50
50
|
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
51
51
|
import React, {createContext, forwardRef, ReactNode, useContext, useRef} from 'react';
|
|
@@ -178,6 +178,9 @@ function Picker<T extends object>(props: PickerProps<T>, ref: FocusableRef<HTMLB
|
|
|
178
178
|
const menuOffset: number = 6;
|
|
179
179
|
const size = 'M';
|
|
180
180
|
let ariaLabelledby = props['aria-labelledby'] ?? '';
|
|
181
|
+
let {direction: dir} = useLocale();
|
|
182
|
+
let RTLFlipOffset = dir === 'rtl' ? -1 : 1;
|
|
183
|
+
|
|
181
184
|
return (
|
|
182
185
|
<div>
|
|
183
186
|
<AriaSelect
|
|
@@ -241,37 +244,43 @@ function Picker<T extends object>(props: PickerProps<T>, ref: FocusableRef<HTMLB
|
|
|
241
244
|
size={size}
|
|
242
245
|
className={iconStyles} />
|
|
243
246
|
</Button>
|
|
244
|
-
<
|
|
247
|
+
<Popover
|
|
245
248
|
hideArrow
|
|
246
249
|
offset={menuOffset}
|
|
250
|
+
crossOffset={RTLFlipOffset * -12}
|
|
247
251
|
placement={`${direction} ${align}` as Placement}
|
|
248
252
|
shouldFlip={shouldFlip}
|
|
249
253
|
styles={style({
|
|
250
|
-
marginStart: -12,
|
|
251
254
|
minWidth: 192,
|
|
252
|
-
width: 'calc(var(--trigger-width)
|
|
255
|
+
width: 'calc(var(--trigger-width) - 24)'
|
|
253
256
|
})}>
|
|
254
|
-
<
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
257
|
+
<div
|
|
258
|
+
className={style({
|
|
259
|
+
display: 'flex',
|
|
260
|
+
size: 'full'
|
|
261
|
+
})}>
|
|
262
|
+
<Provider
|
|
263
|
+
values={[
|
|
264
|
+
[HeaderContext, {styles: sectionHeader({size})}],
|
|
265
|
+
[HeadingContext, {
|
|
266
|
+
// @ts-ignore
|
|
267
|
+
role: 'presentation',
|
|
268
|
+
styles: sectionHeading
|
|
269
|
+
}],
|
|
270
|
+
[TextContext, {
|
|
271
|
+
slots: {
|
|
272
|
+
description: {styles: description({size})}
|
|
273
|
+
}
|
|
274
|
+
}]
|
|
275
|
+
]}>
|
|
276
|
+
<ListBox
|
|
277
|
+
items={items}
|
|
278
|
+
className={menu}>
|
|
279
|
+
{children}
|
|
280
|
+
</ListBox>
|
|
281
|
+
</Provider>
|
|
282
|
+
</div>
|
|
283
|
+
</Popover>
|
|
275
284
|
</>
|
|
276
285
|
)}
|
|
277
286
|
</AriaSelect>
|
package/src/TagGroup.tsx
CHANGED
|
@@ -323,7 +323,15 @@ function TagGroupInner<T>({
|
|
|
323
323
|
style={item.props.UNSAFE_style}
|
|
324
324
|
key={item.key}
|
|
325
325
|
className={item.props.className({size, allowsRemoving: Boolean(onRemove)})}>
|
|
326
|
-
|
|
326
|
+
<TagWrapper
|
|
327
|
+
key={item.key}
|
|
328
|
+
id={item.key}
|
|
329
|
+
textValue={item.textValue}
|
|
330
|
+
isInRealDOM
|
|
331
|
+
size={size}
|
|
332
|
+
allowsRemoving={!!onRemove}
|
|
333
|
+
{...item.props}
|
|
334
|
+
children={item.props.children({size, allowsRemoving: Boolean(onRemove), isInCtx: true})} />
|
|
327
335
|
</div>
|
|
328
336
|
);
|
|
329
337
|
})}
|
|
@@ -516,41 +524,41 @@ function TagWrapper({children, isDisabled, allowsRemoving, isInRealDOM, isEmphas
|
|
|
516
524
|
return (
|
|
517
525
|
<>
|
|
518
526
|
{isInRealDOM && (
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
527
|
+
<div
|
|
528
|
+
className={style({
|
|
529
|
+
display: 'flex',
|
|
530
|
+
minWidth: 0,
|
|
531
|
+
alignItems: 'center',
|
|
532
|
+
gap: 'text-to-visual',
|
|
533
|
+
forcedColorAdjust: 'none',
|
|
534
|
+
backgroundColor: 'transparent'
|
|
535
|
+
})}>
|
|
536
|
+
<Provider
|
|
537
|
+
values={[
|
|
538
|
+
[TextContext, {styles: style({order: 1, truncate: true})}],
|
|
539
|
+
[IconContext, {
|
|
540
|
+
render: centerBaseline({slot: 'icon', styles: style({order: 0})}),
|
|
541
|
+
styles: style({size: fontRelative(20), marginStart: '--iconMargin', flexShrink: 0})
|
|
542
|
+
}],
|
|
543
|
+
[AvatarContext, {
|
|
544
|
+
size: avatarSize[size],
|
|
545
|
+
styles: style({order: 0})
|
|
546
|
+
}],
|
|
547
|
+
[ImageContext, {
|
|
548
|
+
styles: style({
|
|
549
|
+
size: fontRelative(20),
|
|
550
|
+
flexShrink: 0,
|
|
551
|
+
order: 0,
|
|
552
|
+
aspectRatio: 'square',
|
|
553
|
+
objectFit: 'contain',
|
|
554
|
+
borderRadius: 'sm'
|
|
555
|
+
})
|
|
556
|
+
}]
|
|
557
|
+
]}>
|
|
558
|
+
{children}
|
|
559
|
+
</Provider>
|
|
560
|
+
</div>
|
|
561
|
+
)}
|
|
554
562
|
{!isInRealDOM && children}
|
|
555
563
|
{allowsRemoving && isInRealDOM && (
|
|
556
564
|
<ClearButton
|
package/src/TextField.tsx
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
composeRenderProps,
|
|
19
19
|
ContextValue,
|
|
20
20
|
InputContext,
|
|
21
|
+
InputProps,
|
|
21
22
|
useSlottedContext
|
|
22
23
|
} from 'react-aria-components';
|
|
23
24
|
import {centerPadding, controlSize, field, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
|
|
@@ -25,14 +26,14 @@ import {createContext, forwardRef, ReactNode, Ref, useContext, useImperativeHand
|
|
|
25
26
|
import {createFocusableRef} from '@react-spectrum/utils';
|
|
26
27
|
import {FieldErrorIcon, FieldGroup, FieldLabel, HelpText, Input} from './Field';
|
|
27
28
|
import {FormContext, useFormProps} from './Form';
|
|
28
|
-
import {GlobalDOMAttributes, HelpTextProps, SpectrumLabelableProps} from '@react-types/shared';
|
|
29
|
+
import {GlobalDOMAttributes, HelpTextProps, RefObject, SpectrumLabelableProps} from '@react-types/shared';
|
|
29
30
|
import {mergeRefs} from '@react-aria/utils';
|
|
30
31
|
import {style} from '../style' with {type: 'macro'};
|
|
31
32
|
import {StyleString} from '../style/types';
|
|
32
33
|
import {TextFieldRef} from '@react-types/textfield';
|
|
33
34
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
34
35
|
|
|
35
|
-
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps {
|
|
36
|
+
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
|
|
36
37
|
/**
|
|
37
38
|
* The size of the text field.
|
|
38
39
|
*
|
|
@@ -159,7 +160,7 @@ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldP
|
|
|
159
160
|
|
|
160
161
|
function TextAreaInput() {
|
|
161
162
|
// Force re-render when value changes so we update the height.
|
|
162
|
-
useSlottedContext(AriaTextAreaContext) ?? {};
|
|
163
|
+
let {placeholder} = useSlottedContext(AriaTextAreaContext) ?? {};
|
|
163
164
|
let onHeightChange = (input: HTMLTextAreaElement) => {
|
|
164
165
|
// TODO: only do this if an explicit height is not given?
|
|
165
166
|
if (input) {
|
|
@@ -180,20 +181,24 @@ function TextAreaInput() {
|
|
|
180
181
|
input.style.alignSelf = prevAlignment;
|
|
181
182
|
}
|
|
182
183
|
};
|
|
184
|
+
let {ref} = useSlottedContext(InputContext) ?? {};
|
|
183
185
|
|
|
184
186
|
return (
|
|
185
187
|
<AriaTextArea
|
|
186
|
-
ref={onHeightChange}
|
|
188
|
+
ref={mergeRefs(onHeightChange, ref as RefObject<HTMLTextAreaElement | null>)}
|
|
187
189
|
// Workaround for baseline alignment bug in Safari.
|
|
188
190
|
// https://bugs.webkit.org/show_bug.cgi?id=142968
|
|
189
|
-
placeholder=
|
|
191
|
+
placeholder={placeholder ?? ' '}
|
|
190
192
|
className={style({
|
|
191
193
|
paddingX: 0,
|
|
192
194
|
paddingY: centerPadding(),
|
|
193
195
|
minHeight: controlSize(),
|
|
194
196
|
boxSizing: 'border-box',
|
|
195
197
|
backgroundColor: 'transparent',
|
|
196
|
-
color:
|
|
198
|
+
color: {
|
|
199
|
+
default: 'inherit',
|
|
200
|
+
'::placeholder': 'gray-600'
|
|
201
|
+
},
|
|
197
202
|
fontFamily: 'inherit',
|
|
198
203
|
fontSize: 'inherit',
|
|
199
204
|
fontWeight: 'inherit',
|
package/src/TimeField.tsx
CHANGED
|
@@ -41,6 +41,10 @@ export interface TimeFieldProps<T extends TimeValue> extends
|
|
|
41
41
|
|
|
42
42
|
export const TimeFieldContext = createContext<ContextValue<Partial<TimeFieldProps<any>>, HTMLDivElement>>(null);
|
|
43
43
|
|
|
44
|
+
/**
|
|
45
|
+
* TimeFields allow users to enter and edit time values using a keyboard.
|
|
46
|
+
* Each part of the time is displayed in an individually editable segment.
|
|
47
|
+
*/
|
|
44
48
|
export const TimeField = /*#__PURE__*/ (forwardRef as forwardRefType)(function TimeField<T extends TimeValue>(
|
|
45
49
|
props: TimeFieldProps<T>, ref: Ref<HTMLDivElement>
|
|
46
50
|
): ReactElement {
|
package/src/Tooltip.tsx
CHANGED
package/src/TreeView.tsx
CHANGED
|
@@ -40,7 +40,7 @@ import intlMessages from '../intl/*.json';
|
|
|
40
40
|
import {ProgressCircle} from './ProgressCircle';
|
|
41
41
|
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
42
42
|
import React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useContext, useRef} from 'react';
|
|
43
|
-
import {TextContext} from './Content';
|
|
43
|
+
import {Text, TextContext} from './Content';
|
|
44
44
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
45
45
|
import {useLocale, useLocalizedStringFormatter} from 'react-aria';
|
|
46
46
|
import {useScale} from './utils';
|
|
@@ -372,7 +372,7 @@ export const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode
|
|
|
372
372
|
[ActionButtonGroupContext, {styles: treeActions}],
|
|
373
373
|
[ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]
|
|
374
374
|
]}>
|
|
375
|
-
{children}
|
|
375
|
+
{typeof children === 'string' ? <Text>{children}</Text> : children}
|
|
376
376
|
</Provider>
|
|
377
377
|
{isFocusVisible && isDetached && <div role="presentation" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />}
|
|
378
378
|
</div>
|
package/src/index.ts
CHANGED
|
@@ -65,7 +65,7 @@ export {Picker, PickerItem, PickerSection, PickerContext} from './Picker';
|
|
|
65
65
|
export {Popover} from './Popover';
|
|
66
66
|
export {ProgressBar, ProgressBarContext} from './ProgressBar';
|
|
67
67
|
export {ProgressCircle, ProgressCircleContext} from './ProgressCircle';
|
|
68
|
-
export {Provider} from './Provider';
|
|
68
|
+
export {Provider, ColorSchemeContext} from './Provider';
|
|
69
69
|
export {Radio} from './Radio';
|
|
70
70
|
export {RadioGroup, RadioGroupContext} from './RadioGroup';
|
|
71
71
|
export {RangeCalendar, RangeCalendarContext} from './RangeCalendar';
|
|
@@ -94,6 +94,7 @@ export {pressScale} from './pressScale';
|
|
|
94
94
|
export {Autocomplete} from 'react-aria-components';
|
|
95
95
|
export {Collection} from 'react-aria-components';
|
|
96
96
|
export {FileTrigger} from 'react-aria-components';
|
|
97
|
+
export {parseColor} from 'react-aria-components';
|
|
97
98
|
|
|
98
99
|
export type {AccordionProps} from './Accordion';
|
|
99
100
|
export type {ActionBarProps} from './ActionBar';
|
|
@@ -167,4 +168,4 @@ export type {ToggleButtonProps} from './ToggleButton';
|
|
|
167
168
|
export type {ToggleButtonGroupProps} from './ToggleButtonGroup';
|
|
168
169
|
export type {TooltipProps} from './Tooltip';
|
|
169
170
|
export type {TreeViewProps, TreeViewItemProps, TreeViewItemContentProps, TreeViewLoadMoreItemProps} from './TreeView';
|
|
170
|
-
export type {AutocompleteProps, FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps, SortDescriptor} from 'react-aria-components';
|
|
171
|
+
export type {AutocompleteProps, FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps, SortDescriptor, Color, Key, Selection} from 'react-aria-components';
|