@react-spectrum/s2 1.0.0 → 1.2.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.cjs.map +1 -1
- package/dist/Accordion.css +2 -2
- package/dist/Accordion.css.map +1 -1
- package/dist/Accordion.mjs +3 -3
- package/dist/Accordion.mjs.map +1 -1
- package/dist/ActionBar.cjs +62 -61
- package/dist/ActionBar.cjs.map +1 -1
- package/dist/ActionBar.css +58 -58
- package/dist/ActionBar.css.map +1 -1
- package/dist/ActionBar.mjs +62 -61
- package/dist/ActionBar.mjs.map +1 -1
- package/dist/ActionButton.cjs +234 -234
- package/dist/ActionButton.cjs.map +1 -1
- package/dist/ActionButton.css +160 -160
- package/dist/ActionButton.css.map +1 -1
- package/dist/ActionButton.mjs +234 -234
- 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 +17 -17
- package/dist/Avatar.css +16 -16
- package/dist/Avatar.mjs +17 -17
- package/dist/AvatarGroup.cjs +121 -121
- package/dist/AvatarGroup.css +31 -31
- package/dist/AvatarGroup.mjs +121 -121
- package/dist/Badge.cjs +197 -197
- package/dist/Badge.css +125 -125
- package/dist/Badge.mjs +197 -197
- package/dist/Breadcrumbs.cjs +235 -235
- package/dist/Breadcrumbs.cjs.map +1 -1
- package/dist/Breadcrumbs.css +100 -100
- package/dist/Breadcrumbs.css.map +1 -1
- package/dist/Breadcrumbs.mjs +235 -235
- package/dist/Breadcrumbs.mjs.map +1 -1
- package/dist/Button.cjs +333 -333
- package/dist/Button.cjs.map +1 -1
- package/dist/Button.css +174 -174
- package/dist/Button.css.map +1 -1
- package/dist/Button.mjs +333 -333
- 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 +169 -169
- package/dist/Calendar.cjs.map +1 -1
- package/dist/Calendar.css +134 -134
- package/dist/Calendar.css.map +1 -1
- package/dist/Calendar.mjs +169 -169
- package/dist/Calendar.mjs.map +1 -1
- package/dist/Card.cjs +310 -310
- package/dist/Card.cjs.map +1 -1
- package/dist/Card.css +206 -206
- package/dist/Card.css.map +1 -1
- package/dist/Card.mjs +310 -310
- package/dist/Card.mjs.map +1 -1
- package/dist/CardView.cjs +19 -19
- package/dist/CardView.cjs.map +1 -1
- package/dist/CardView.css +17 -17
- package/dist/CardView.css.map +1 -1
- package/dist/CardView.mjs +19 -19
- 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 +162 -162
- package/dist/Checkbox.cjs.map +1 -1
- package/dist/Checkbox.css +95 -91
- package/dist/Checkbox.css.map +1 -1
- package/dist/Checkbox.mjs +162 -162
- package/dist/Checkbox.mjs.map +1 -1
- package/dist/CheckboxGroup.cjs +44 -44
- package/dist/CheckboxGroup.cjs.map +1 -1
- package/dist/CheckboxGroup.css +37 -37
- package/dist/CheckboxGroup.css.map +1 -1
- package/dist/CheckboxGroup.mjs +44 -44
- package/dist/CheckboxGroup.mjs.map +1 -1
- 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 +30 -30
- package/dist/ClearButton.css +30 -30
- package/dist/ClearButton.mjs +30 -30
- package/dist/CloseButton.cjs +56 -56
- package/dist/CloseButton.css +47 -47
- package/dist/CloseButton.mjs +56 -56
- package/dist/ColorArea.cjs +17 -17
- package/dist/ColorArea.cjs.map +1 -1
- package/dist/ColorArea.css +16 -16
- package/dist/ColorArea.css.map +1 -1
- package/dist/ColorArea.mjs +17 -17
- package/dist/ColorArea.mjs.map +1 -1
- package/dist/ColorField.cjs +32 -32
- package/dist/ColorField.cjs.map +1 -1
- package/dist/ColorField.css +27 -27
- package/dist/ColorField.css.map +1 -1
- package/dist/ColorField.mjs +32 -32
- package/dist/ColorField.mjs.map +1 -1
- package/dist/ColorHandle.cjs +27 -27
- package/dist/ColorHandle.css +42 -42
- package/dist/ColorHandle.mjs +27 -27
- package/dist/ColorSlider.cjs +109 -109
- package/dist/ColorSlider.cjs.map +1 -1
- package/dist/ColorSlider.css +52 -52
- package/dist/ColorSlider.css.map +1 -1
- package/dist/ColorSlider.mjs +109 -109
- package/dist/ColorSlider.mjs.map +1 -1
- package/dist/ColorSwatch.cjs +30 -30
- package/dist/ColorSwatch.cjs.map +1 -1
- package/dist/ColorSwatch.css +29 -29
- package/dist/ColorSwatch.css.map +1 -1
- package/dist/ColorSwatch.mjs +30 -30
- package/dist/ColorSwatch.mjs.map +1 -1
- package/dist/ColorSwatchPicker.cjs +30 -30
- package/dist/ColorSwatchPicker.css +48 -48
- package/dist/ColorSwatchPicker.mjs +30 -30
- package/dist/ColorWheel.cjs +31 -27
- package/dist/ColorWheel.cjs.map +1 -1
- package/dist/ColorWheel.css +17 -17
- package/dist/ColorWheel.css.map +1 -1
- package/dist/ColorWheel.mjs +31 -27
- package/dist/ColorWheel.mjs.map +1 -1
- package/dist/ComboBox.cjs +383 -383
- package/dist/ComboBox.cjs.map +1 -1
- package/dist/ComboBox.css +187 -187
- package/dist/ComboBox.css.map +1 -1
- package/dist/ComboBox.mjs +383 -383
- package/dist/ComboBox.mjs.map +1 -1
- package/dist/ContextualHelp.cjs +70 -41
- package/dist/ContextualHelp.cjs.map +1 -1
- package/dist/ContextualHelp.css +71 -71
- package/dist/ContextualHelp.css.map +1 -1
- package/dist/ContextualHelp.mjs +74 -46
- 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 +173 -173
- package/dist/DatePicker.cjs.map +1 -1
- package/dist/DatePicker.css +128 -128
- package/dist/DatePicker.css.map +1 -1
- package/dist/DatePicker.mjs +173 -173
- package/dist/DatePicker.mjs.map +1 -1
- package/dist/DateRangePicker.cjs +56 -56
- package/dist/DateRangePicker.cjs.map +1 -1
- package/dist/DateRangePicker.css +59 -59
- package/dist/DateRangePicker.css.map +1 -1
- package/dist/DateRangePicker.mjs +56 -56
- package/dist/DateRangePicker.mjs.map +1 -1
- package/dist/Dialog.cjs +17 -17
- package/dist/Dialog.cjs.map +1 -1
- package/dist/Dialog.css +70 -70
- package/dist/Dialog.css.map +1 -1
- package/dist/Dialog.mjs +17 -17
- package/dist/Dialog.mjs.map +1 -1
- package/dist/Disclosure.cjs +120 -120
- package/dist/Disclosure.cjs.map +1 -1
- package/dist/Disclosure.css +112 -112
- package/dist/Disclosure.css.map +1 -1
- package/dist/Disclosure.mjs +120 -120
- package/dist/Disclosure.mjs.map +1 -1
- package/dist/Divider.cjs +26 -26
- package/dist/Divider.cjs.map +1 -1
- package/dist/Divider.css +25 -25
- package/dist/Divider.css.map +1 -1
- package/dist/Divider.mjs +26 -26
- package/dist/Divider.mjs.map +1 -1
- package/dist/DropZone.cjs +62 -62
- package/dist/DropZone.cjs.map +1 -1
- package/dist/DropZone.css +57 -57
- package/dist/DropZone.css.map +1 -1
- package/dist/DropZone.mjs +62 -62
- package/dist/DropZone.mjs.map +1 -1
- package/dist/Field.cjs +351 -351
- package/dist/Field.cjs.map +1 -1
- package/dist/Field.css +147 -147
- package/dist/Field.css.map +1 -1
- package/dist/Field.mjs +351 -351
- package/dist/Field.mjs.map +1 -1
- package/dist/Form.cjs +10 -10
- package/dist/Form.cjs.map +1 -1
- package/dist/Form.css +9 -9
- package/dist/Form.css.map +1 -1
- package/dist/Form.mjs +10 -10
- package/dist/Form.mjs.map +1 -1
- package/dist/FullscreenDialog.cjs +5 -5
- package/dist/FullscreenDialog.cjs.map +1 -1
- package/dist/FullscreenDialog.css +78 -78
- package/dist/FullscreenDialog.css.map +1 -1
- package/dist/FullscreenDialog.mjs +5 -5
- package/dist/FullscreenDialog.mjs.map +1 -1
- package/dist/IllustratedMessage.cjs +229 -229
- package/dist/IllustratedMessage.css +72 -72
- package/dist/IllustratedMessage.mjs +229 -229
- package/dist/Image.cjs +14 -14
- package/dist/Image.css +14 -14
- package/dist/Image.mjs +14 -14
- package/dist/InlineAlert.cjs +101 -101
- package/dist/InlineAlert.css +76 -76
- package/dist/InlineAlert.mjs +101 -101
- package/dist/Link.cjs +50 -50
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.css +41 -41
- package/dist/Link.css.map +1 -1
- package/dist/Link.mjs +50 -50
- package/dist/Link.mjs.map +1 -1
- package/dist/LinkOut.cjs +8 -8
- package/dist/LinkOut.css +8 -8
- package/dist/LinkOut.mjs +8 -8
- package/dist/ListView.cjs +777 -0
- package/dist/ListView.cjs.map +1 -0
- package/dist/ListView.css +740 -0
- package/dist/ListView.css.map +1 -0
- package/dist/ListView.mjs +770 -0
- package/dist/ListView.mjs.map +1 -0
- package/dist/Menu.cjs +540 -445
- package/dist/Menu.cjs.map +1 -1
- package/dist/Menu.css +234 -190
- package/dist/Menu.css.map +1 -1
- package/dist/Menu.mjs +541 -447
- package/dist/Menu.mjs.map +1 -1
- package/dist/Meter.cjs +154 -154
- package/dist/Meter.cjs.map +1 -1
- package/dist/Meter.css +91 -91
- package/dist/Meter.css.map +1 -1
- package/dist/Meter.mjs +154 -154
- package/dist/Meter.mjs.map +1 -1
- package/dist/Modal.cjs +66 -66
- package/dist/Modal.cjs.map +1 -1
- package/dist/Modal.css +54 -54
- package/dist/Modal.css.map +1 -1
- package/dist/Modal.mjs +66 -66
- package/dist/Modal.mjs.map +1 -1
- package/dist/NotificationBadge.cjs +57 -57
- package/dist/NotificationBadge.css +49 -49
- package/dist/NotificationBadge.mjs +57 -57
- package/dist/NumberField.cjs +115 -115
- package/dist/NumberField.cjs.map +1 -1
- package/dist/NumberField.css +99 -99
- package/dist/NumberField.css.map +1 -1
- package/dist/NumberField.mjs +115 -115
- package/dist/NumberField.mjs.map +1 -1
- package/dist/Picker.cjs +337 -285
- package/dist/Picker.cjs.map +1 -1
- package/dist/Picker.css +173 -173
- package/dist/Picker.css.map +1 -1
- package/dist/Picker.mjs +339 -287
- package/dist/Picker.mjs.map +1 -1
- package/dist/Popover.cjs +89 -89
- package/dist/Popover.cjs.map +1 -1
- package/dist/Popover.css +70 -70
- package/dist/Popover.css.map +1 -1
- package/dist/Popover.mjs +89 -89
- package/dist/Popover.mjs.map +1 -1
- package/dist/ProgressBar.cjs +164 -164
- package/dist/ProgressBar.cjs.map +1 -1
- package/dist/ProgressBar.css +99 -99
- package/dist/ProgressBar.css.map +1 -1
- package/dist/ProgressBar.mjs +164 -164
- package/dist/ProgressBar.mjs.map +1 -1
- package/dist/ProgressCircle.cjs +32 -32
- package/dist/ProgressCircle.cjs.map +1 -1
- package/dist/ProgressCircle.css +24 -24
- package/dist/ProgressCircle.css.map +1 -1
- package/dist/ProgressCircle.mjs +32 -32
- package/dist/ProgressCircle.mjs.map +1 -1
- package/dist/Provider.cjs +11 -11
- package/dist/Provider.css +10 -10
- package/dist/Provider.mjs +11 -11
- package/dist/Radio.cjs +146 -146
- package/dist/Radio.cjs.map +1 -1
- package/dist/Radio.css +78 -78
- package/dist/Radio.css.map +1 -1
- package/dist/Radio.mjs +146 -146
- package/dist/Radio.mjs.map +1 -1
- package/dist/RadioGroup.cjs +42 -42
- package/dist/RadioGroup.cjs.map +1 -1
- package/dist/RadioGroup.css +37 -37
- package/dist/RadioGroup.css.map +1 -1
- package/dist/RadioGroup.mjs +42 -42
- package/dist/RadioGroup.mjs.map +1 -1
- 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/SearchField.cjs +42 -42
- package/dist/SearchField.cjs.map +1 -1
- package/dist/SearchField.css +45 -45
- package/dist/SearchField.css.map +1 -1
- package/dist/SearchField.mjs +42 -42
- package/dist/SearchField.mjs.map +1 -1
- package/dist/SegmentedControl.cjs +180 -180
- package/dist/SegmentedControl.css +123 -123
- package/dist/SegmentedControl.mjs +180 -180
- package/dist/SelectBoxGroup.cjs +144 -144
- package/dist/SelectBoxGroup.cjs.map +1 -1
- package/dist/SelectBoxGroup.css +120 -120
- package/dist/SelectBoxGroup.css.map +1 -1
- package/dist/SelectBoxGroup.mjs +144 -144
- package/dist/SelectBoxGroup.mjs.map +1 -1
- package/dist/Slider.cjs +295 -295
- package/dist/Slider.cjs.map +1 -1
- package/dist/Slider.css +154 -154
- package/dist/Slider.css.map +1 -1
- package/dist/Slider.mjs +295 -295
- package/dist/Slider.mjs.map +1 -1
- package/dist/StatusLight.cjs +116 -116
- package/dist/StatusLight.css +59 -59
- package/dist/StatusLight.mjs +116 -116
- package/dist/Switch.cjs +155 -155
- package/dist/Switch.cjs.map +1 -1
- package/dist/Switch.css +74 -74
- package/dist/Switch.css.map +1 -1
- package/dist/Switch.mjs +155 -155
- package/dist/Switch.mjs.map +1 -1
- package/dist/TableView.cjs +448 -424
- package/dist/TableView.cjs.map +1 -1
- package/dist/TableView.css +232 -204
- package/dist/TableView.css.map +1 -1
- package/dist/TableView.mjs +450 -426
- package/dist/TableView.mjs.map +1 -1
- package/dist/Tabs.cjs +127 -127
- package/dist/Tabs.cjs.map +1 -1
- package/dist/Tabs.css +105 -105
- package/dist/Tabs.css.map +1 -1
- package/dist/Tabs.mjs +127 -127
- package/dist/Tabs.mjs.map +1 -1
- package/dist/TabsPicker.cjs +127 -127
- package/dist/TabsPicker.cjs.map +1 -1
- package/dist/TabsPicker.css +108 -108
- package/dist/TabsPicker.css.map +1 -1
- package/dist/TabsPicker.mjs +127 -127
- package/dist/TabsPicker.mjs.map +1 -1
- package/dist/TagGroup.cjs +204 -204
- package/dist/TagGroup.cjs.map +1 -1
- package/dist/TagGroup.css +146 -146
- package/dist/TagGroup.css.map +1 -1
- package/dist/TagGroup.mjs +204 -204
- package/dist/TagGroup.mjs.map +1 -1
- package/dist/TextField.cjs +59 -59
- package/dist/TextField.cjs.map +1 -1
- package/dist/TextField.css +54 -54
- package/dist/TextField.css.map +1 -1
- package/dist/TextField.mjs +59 -59
- package/dist/TextField.mjs.map +1 -1
- package/dist/TimeField.cjs +52 -52
- package/dist/TimeField.cjs.map +1 -1
- package/dist/TimeField.css +47 -47
- package/dist/TimeField.css.map +1 -1
- package/dist/TimeField.mjs +52 -52
- package/dist/TimeField.mjs.map +1 -1
- package/dist/Toast.cjs +121 -121
- package/dist/Toast.cjs.map +1 -1
- package/dist/Toast.css +110 -110
- package/dist/Toast.css.map +1 -1
- package/dist/Toast.mjs +122 -122
- package/dist/Toast.mjs.map +1 -1
- package/dist/ToggleButton.cjs +3 -3
- package/dist/ToggleButton.cjs.map +1 -1
- package/dist/ToggleButton.css +12 -12
- package/dist/ToggleButton.css.map +1 -1
- package/dist/ToggleButton.mjs +3 -3
- package/dist/ToggleButton.mjs.map +1 -1
- package/dist/ToggleButtonGroup.cjs.map +1 -1
- package/dist/ToggleButtonGroup.mjs.map +1 -1
- package/dist/Tooltip.cjs +78 -78
- package/dist/Tooltip.cjs.map +1 -1
- package/dist/Tooltip.css +65 -65
- package/dist/Tooltip.css.map +1 -1
- package/dist/Tooltip.mjs +78 -78
- package/dist/Tooltip.mjs.map +1 -1
- package/dist/TreeView.cjs +191 -141
- package/dist/TreeView.cjs.map +1 -1
- package/dist/TreeView.css +143 -127
- package/dist/TreeView.css.map +1 -1
- package/dist/TreeView.mjs +191 -141
- package/dist/TreeView.mjs.map +1 -1
- package/dist/ar-AE.cjs +1 -0
- package/dist/ar-AE.cjs.map +1 -1
- package/dist/ar-AE.mjs +1 -0
- package/dist/ar-AE.mjs.map +1 -1
- package/dist/bg-BG.cjs +1 -0
- package/dist/bg-BG.cjs.map +1 -1
- package/dist/bg-BG.mjs +1 -0
- package/dist/bg-BG.mjs.map +1 -1
- package/dist/cs-CZ.cjs +1 -0
- package/dist/cs-CZ.cjs.map +1 -1
- package/dist/cs-CZ.mjs +1 -0
- package/dist/cs-CZ.mjs.map +1 -1
- package/dist/da-DK.cjs +1 -0
- package/dist/da-DK.cjs.map +1 -1
- package/dist/da-DK.mjs +1 -0
- package/dist/da-DK.mjs.map +1 -1
- package/dist/de-DE.cjs +1 -0
- package/dist/de-DE.cjs.map +1 -1
- package/dist/de-DE.mjs +1 -0
- package/dist/de-DE.mjs.map +1 -1
- package/dist/el-GR.cjs +1 -0
- package/dist/el-GR.cjs.map +1 -1
- package/dist/el-GR.mjs +1 -0
- package/dist/el-GR.mjs.map +1 -1
- package/dist/en-US.cjs +1 -0
- package/dist/en-US.cjs.map +1 -1
- package/dist/en-US.mjs +1 -0
- package/dist/en-US.mjs.map +1 -1
- package/dist/es-ES.cjs +1 -0
- package/dist/es-ES.cjs.map +1 -1
- package/dist/es-ES.mjs +1 -0
- package/dist/es-ES.mjs.map +1 -1
- package/dist/et-EE.cjs +1 -0
- package/dist/et-EE.cjs.map +1 -1
- package/dist/et-EE.mjs +1 -0
- package/dist/et-EE.mjs.map +1 -1
- package/dist/fi-FI.cjs +1 -0
- package/dist/fi-FI.cjs.map +1 -1
- package/dist/fi-FI.mjs +1 -0
- package/dist/fi-FI.mjs.map +1 -1
- package/dist/fr-FR.cjs +1 -0
- package/dist/fr-FR.cjs.map +1 -1
- package/dist/fr-FR.mjs +1 -0
- package/dist/fr-FR.mjs.map +1 -1
- package/dist/he-IL.cjs +1 -0
- package/dist/he-IL.cjs.map +1 -1
- package/dist/he-IL.mjs +1 -0
- package/dist/he-IL.mjs.map +1 -1
- package/dist/hr-HR.cjs +1 -0
- package/dist/hr-HR.cjs.map +1 -1
- package/dist/hr-HR.mjs +1 -0
- package/dist/hr-HR.mjs.map +1 -1
- package/dist/hu-HU.cjs +1 -0
- package/dist/hu-HU.cjs.map +1 -1
- package/dist/hu-HU.mjs +1 -0
- package/dist/hu-HU.mjs.map +1 -1
- package/dist/it-IT.cjs +1 -0
- package/dist/it-IT.cjs.map +1 -1
- package/dist/it-IT.mjs +1 -0
- package/dist/it-IT.mjs.map +1 -1
- package/dist/ja-JP.cjs +1 -0
- package/dist/ja-JP.cjs.map +1 -1
- package/dist/ja-JP.mjs +1 -0
- package/dist/ja-JP.mjs.map +1 -1
- package/dist/ko-KR.cjs +1 -0
- package/dist/ko-KR.cjs.map +1 -1
- package/dist/ko-KR.mjs +1 -0
- package/dist/ko-KR.mjs.map +1 -1
- package/dist/lt-LT.cjs +1 -0
- package/dist/lt-LT.cjs.map +1 -1
- package/dist/lt-LT.mjs +1 -0
- package/dist/lt-LT.mjs.map +1 -1
- package/dist/lv-LV.cjs +1 -0
- package/dist/lv-LV.cjs.map +1 -1
- package/dist/lv-LV.mjs +1 -0
- package/dist/lv-LV.mjs.map +1 -1
- package/dist/main.cjs +7 -0
- package/dist/main.cjs.map +1 -1
- package/dist/module.mjs +5 -3
- package/dist/module.mjs.map +1 -1
- package/dist/nb-NO.cjs +1 -0
- package/dist/nb-NO.cjs.map +1 -1
- package/dist/nb-NO.mjs +1 -0
- package/dist/nb-NO.mjs.map +1 -1
- package/dist/nl-NL.cjs +1 -0
- package/dist/nl-NL.cjs.map +1 -1
- package/dist/nl-NL.mjs +1 -0
- package/dist/nl-NL.mjs.map +1 -1
- package/dist/pl-PL.cjs +1 -0
- package/dist/pl-PL.cjs.map +1 -1
- package/dist/pl-PL.mjs +1 -0
- package/dist/pl-PL.mjs.map +1 -1
- package/dist/pt-BR.cjs +1 -0
- package/dist/pt-BR.cjs.map +1 -1
- package/dist/pt-BR.mjs +1 -0
- package/dist/pt-BR.mjs.map +1 -1
- package/dist/pt-PT.cjs +1 -0
- package/dist/pt-PT.cjs.map +1 -1
- package/dist/pt-PT.mjs +1 -0
- package/dist/pt-PT.mjs.map +1 -1
- package/dist/ro-RO.cjs +1 -0
- package/dist/ro-RO.cjs.map +1 -1
- package/dist/ro-RO.mjs +1 -0
- package/dist/ro-RO.mjs.map +1 -1
- package/dist/ru-RU.cjs +1 -0
- package/dist/ru-RU.cjs.map +1 -1
- package/dist/ru-RU.mjs +1 -0
- package/dist/ru-RU.mjs.map +1 -1
- package/dist/sk-SK.cjs +1 -0
- package/dist/sk-SK.cjs.map +1 -1
- package/dist/sk-SK.mjs +1 -0
- package/dist/sk-SK.mjs.map +1 -1
- package/dist/sl-SI.cjs +1 -0
- package/dist/sl-SI.cjs.map +1 -1
- package/dist/sl-SI.mjs +1 -0
- package/dist/sl-SI.mjs.map +1 -1
- package/dist/sr-SP.cjs +1 -0
- package/dist/sr-SP.cjs.map +1 -1
- package/dist/sr-SP.mjs +1 -0
- package/dist/sr-SP.mjs.map +1 -1
- package/dist/sv-SE.cjs +1 -0
- package/dist/sv-SE.cjs.map +1 -1
- package/dist/sv-SE.mjs +1 -0
- package/dist/sv-SE.mjs.map +1 -1
- package/dist/tr-TR.cjs +1 -0
- package/dist/tr-TR.cjs.map +1 -1
- package/dist/tr-TR.mjs +1 -0
- package/dist/tr-TR.mjs.map +1 -1
- package/dist/types.d.ts +143 -76
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.cjs +1 -0
- package/dist/uk-UA.cjs.map +1 -1
- package/dist/uk-UA.mjs +1 -0
- package/dist/uk-UA.mjs.map +1 -1
- package/dist/zh-CN.cjs +1 -0
- package/dist/zh-CN.cjs.map +1 -1
- package/dist/zh-CN.mjs +1 -0
- package/dist/zh-CN.mjs.map +1 -1
- package/dist/zh-TW.cjs +1 -0
- package/dist/zh-TW.cjs.map +1 -1
- package/dist/zh-TW.mjs +1 -0
- package/dist/zh-TW.mjs.map +1 -1
- package/icons/Icon.cjs +12 -12
- package/icons/Icon.css +9 -9
- package/icons/Icon.mjs +12 -12
- package/icons/Skeleton.cjs +2 -2
- package/icons/Skeleton.cjs.map +1 -1
- package/icons/Skeleton.css +6 -6
- package/icons/Skeleton.mjs +2 -2
- package/icons/Skeleton.mjs.map +1 -1
- package/icons/runtime.cjs +16 -3
- package/icons/runtime.cjs.map +1 -1
- package/icons/runtime.mjs +16 -3
- package/icons/runtime.mjs.map +1 -1
- package/package.json +21 -21
- package/src/Accordion.tsx +1 -1
- package/src/ActionBar.tsx +2 -2
- package/src/ActionButton.tsx +1 -1
- package/src/Breadcrumbs.tsx +2 -2
- package/src/Button.tsx +2 -2
- package/src/Calendar.tsx +1 -1
- package/src/Card.tsx +1 -1
- package/src/CardView.tsx +1 -1
- package/src/Checkbox.tsx +2 -1
- package/src/CheckboxGroup.tsx +1 -1
- package/src/CoachMark.tsx +1 -1
- package/src/ColorArea.tsx +1 -1
- package/src/ColorField.tsx +1 -1
- package/src/ColorSlider.tsx +1 -1
- package/src/ColorSwatch.tsx +1 -1
- package/src/ColorWheel.tsx +2 -2
- package/src/ComboBox.tsx +4 -3
- package/src/ContextualHelp.tsx +81 -43
- package/src/CustomDialog.tsx +1 -1
- package/src/DateField.tsx +1 -1
- package/src/DatePicker.tsx +1 -1
- package/src/DateRangePicker.tsx +1 -1
- package/src/Dialog.tsx +1 -1
- package/src/Disclosure.tsx +2 -2
- package/src/Divider.tsx +1 -1
- package/src/DropZone.tsx +1 -1
- package/src/Field.tsx +6 -6
- package/src/Form.tsx +1 -1
- package/src/FullscreenDialog.tsx +1 -1
- package/src/Link.tsx +1 -1
- package/src/ListView.tsx +782 -0
- package/src/Menu.tsx +111 -29
- package/src/Meter.tsx +1 -1
- package/src/Modal.tsx +1 -1
- package/src/NumberField.tsx +1 -1
- package/src/Picker.tsx +75 -14
- package/src/Popover.tsx +2 -1
- package/src/ProgressBar.tsx +1 -1
- package/src/ProgressCircle.tsx +1 -1
- package/src/Radio.tsx +1 -1
- package/src/RadioGroup.tsx +1 -1
- package/src/RangeCalendar.tsx +1 -1
- package/src/SearchField.tsx +1 -1
- package/src/SelectBoxGroup.tsx +1 -1
- package/src/Slider.tsx +1 -1
- package/src/Switch.tsx +1 -1
- package/src/TableView.tsx +37 -19
- package/src/Tabs.tsx +4 -4
- package/src/TabsPicker.tsx +2 -2
- package/src/TagGroup.tsx +2 -2
- package/src/TextField.tsx +1 -1
- package/src/TimeField.tsx +1 -1
- package/src/Toast.tsx +3 -3
- package/src/ToggleButton.tsx +1 -1
- package/src/ToggleButtonGroup.tsx +1 -1
- package/src/Tooltip.tsx +1 -1
- package/src/TreeView.tsx +53 -12
- package/src/index.ts +6 -3
- package/style/__tests__/mergeStyles.test.ts +68 -0
- package/style/__tests__/style-macro.test.js +50 -30
- package/style/dist/style-macro.cjs +65 -14
- package/style/dist/style-macro.cjs.map +1 -1
- package/style/dist/style-macro.mjs +65 -14
- package/style/dist/style-macro.mjs.map +1 -1
- package/style/runtime.ts +21 -5
- package/style/style-macro.ts +81 -16
- package/style/__tests__/mergeStyles.test.js +0 -32
package/src/Menu.tsx
CHANGED
|
@@ -34,21 +34,25 @@ import {centerBaseline} from './CenterBaseline';
|
|
|
34
34
|
import {centerPadding, control, controlFont, controlSize, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
|
|
35
35
|
import CheckmarkIcon from '../ui-icons/Checkmark';
|
|
36
36
|
import ChevronRightIcon from '../ui-icons/Chevron';
|
|
37
|
-
import {createContext, forwardRef, JSX, ReactNode, useContext, useRef, useState} from 'react';
|
|
37
|
+
import {createContext, forwardRef, JSX, ReactElement, ReactNode, useContext, useRef, useState} from 'react';
|
|
38
38
|
import {divider} from './Divider';
|
|
39
39
|
import {DOMRef, DOMRefValue, GlobalDOMAttributes, PressEvent} from '@react-types/shared';
|
|
40
40
|
import {edgeToText} from '../style/spectrum-theme' with {type: 'macro'};
|
|
41
41
|
import {forwardRefType} from './types';
|
|
42
42
|
import {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';
|
|
43
|
-
import {IconContext} from './Icon';
|
|
44
|
-
import {ImageContext} from './Image';
|
|
43
|
+
import {IconContext} from './Icon';
|
|
44
|
+
import {ImageContext} from './Image'; // chevron right removed??
|
|
45
|
+
import InfoCircleIcon from '../s2wf-icons/S2_Icon_InfoCircle_20_N.svg';
|
|
45
46
|
import {InPopoverContext, Popover, PopoverContext} from './Popover';
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
import intlMessages from '../intl/*.json';
|
|
46
49
|
import LinkOutIcon from '../ui-icons/LinkOut';
|
|
47
50
|
import {mergeStyles} from '../style/runtime';
|
|
48
51
|
import {Placement, useLocale} from 'react-aria';
|
|
49
52
|
import {PressResponder} from '@react-aria/interactions';
|
|
50
53
|
import {pressScale} from './pressScale';
|
|
51
|
-
import {useGlobalListeners} from '@react-aria/utils';
|
|
54
|
+
import {useGlobalListeners, useId} from '@react-aria/utils';
|
|
55
|
+
import {useLocalizedStringFormatter} from '@react-aria/i18n';
|
|
52
56
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
53
57
|
// viewbox on LinkOut is super weird just because i copied the icon from designs...
|
|
54
58
|
// need to strip id's from icons
|
|
@@ -74,7 +78,7 @@ export interface MenuTriggerProps extends AriaMenuTriggerProps {
|
|
|
74
78
|
shouldFlip?: boolean
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
export interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'dependencies' | 'renderEmptyState' | keyof GlobalDOMAttributes>, StyleProps {
|
|
81
|
+
export interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'render' | 'dependencies' | 'renderEmptyState' | keyof GlobalDOMAttributes>, StyleProps {
|
|
78
82
|
/**
|
|
79
83
|
* The size of the Menu.
|
|
80
84
|
*
|
|
@@ -317,6 +321,7 @@ let keyboard = style<{size: 'S' | 'M' | 'L' | 'XL', isDisabled: boolean}>({
|
|
|
317
321
|
|
|
318
322
|
let descriptor = style({
|
|
319
323
|
gridArea: 'descriptor',
|
|
324
|
+
placeSelf: 'end',
|
|
320
325
|
marginStart: 8,
|
|
321
326
|
'--iconPrimary': {
|
|
322
327
|
type: 'fill',
|
|
@@ -324,6 +329,19 @@ let descriptor = style({
|
|
|
324
329
|
}
|
|
325
330
|
});
|
|
326
331
|
|
|
332
|
+
let descriptorIcon = style<{size: 'S' | 'M' | 'L' | 'XL'}>({
|
|
333
|
+
marginEnd: 0,
|
|
334
|
+
display: 'block',
|
|
335
|
+
size: {
|
|
336
|
+
size: {
|
|
337
|
+
S: 16,
|
|
338
|
+
M: 20,
|
|
339
|
+
L: 24,
|
|
340
|
+
XL: 26
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
|
|
327
345
|
let InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean, hideLinkOutIcon: boolean}>({
|
|
328
346
|
size: 'M',
|
|
329
347
|
isSubmenu: false,
|
|
@@ -331,6 +349,7 @@ let InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu
|
|
|
331
349
|
});
|
|
332
350
|
|
|
333
351
|
let InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);
|
|
352
|
+
let UnavailableContext = createContext(false);
|
|
334
353
|
|
|
335
354
|
let wrappingDiv = style({
|
|
336
355
|
display: 'flex',
|
|
@@ -421,12 +440,8 @@ export function Divider(props: SeparatorProps): ReactNode {
|
|
|
421
440
|
);
|
|
422
441
|
}
|
|
423
442
|
|
|
424
|
-
export interface MenuSectionProps<T extends object> extends Omit<AriaMenuSectionProps<T>, 'style' | 'className' | keyof GlobalDOMAttributes> {
|
|
425
|
-
|
|
426
|
-
* The children of the menu section.
|
|
427
|
-
*/
|
|
428
|
-
children?: ReactNode
|
|
429
|
-
}
|
|
443
|
+
export interface MenuSectionProps<T extends object> extends Omit<AriaMenuSectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes> {}
|
|
444
|
+
|
|
430
445
|
export function MenuSection<T extends object>(props: MenuSectionProps<T>): ReactNode {
|
|
431
446
|
// remember, context doesn't work if it's around Section nor inside
|
|
432
447
|
let {size} = useContext(InternalMenuContext);
|
|
@@ -442,7 +457,7 @@ export function MenuSection<T extends object>(props: MenuSectionProps<T>): React
|
|
|
442
457
|
);
|
|
443
458
|
}
|
|
444
459
|
|
|
445
|
-
export interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
460
|
+
export interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
446
461
|
/**
|
|
447
462
|
* The contents of the item.
|
|
448
463
|
*/
|
|
@@ -463,6 +478,33 @@ const linkIconSize = {
|
|
|
463
478
|
XL: 'XL'
|
|
464
479
|
} as const;
|
|
465
480
|
|
|
481
|
+
interface UnavailableIconWrapperProps {
|
|
482
|
+
direction: 'ltr' | 'rtl',
|
|
483
|
+
size: 'S' | 'M' | 'L' | 'XL',
|
|
484
|
+
id?: string
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
function UnavailableIconWrapper(props: UnavailableIconWrapperProps) {
|
|
488
|
+
let {direction, size, id} = props;
|
|
489
|
+
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
|
|
490
|
+
|
|
491
|
+
return (
|
|
492
|
+
<div slot="descriptor" className={mergeStyles(descriptor, style({marginBottom: fontRelative(-1)}))} id={id}>
|
|
493
|
+
<Provider values={[[IconContext, {slots: {icon: {styles: descriptorIcon({size})}}}]]}>
|
|
494
|
+
<InfoCircleIcon
|
|
495
|
+
aria-label={stringFormatter.format('menu.unavailable')}
|
|
496
|
+
className={style({
|
|
497
|
+
scaleX: {
|
|
498
|
+
direction: {
|
|
499
|
+
rtl: -1
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
})({direction})} />
|
|
503
|
+
</Provider>
|
|
504
|
+
</div>
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
|
|
466
508
|
export function MenuItem(props: MenuItemProps): ReactNode {
|
|
467
509
|
let ref = useRef(null);
|
|
468
510
|
let isLink = props.href != null;
|
|
@@ -470,9 +512,13 @@ export function MenuItem(props: MenuItemProps): ReactNode {
|
|
|
470
512
|
let {size, hideLinkOutIcon} = useContext(InternalMenuContext);
|
|
471
513
|
let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);
|
|
472
514
|
let {direction} = useLocale();
|
|
515
|
+
let isUnavailable = useContext(UnavailableContext);
|
|
516
|
+
let infoIconId = useId();
|
|
517
|
+
|
|
473
518
|
return (
|
|
474
519
|
<AriaMenuItem
|
|
475
520
|
{...props}
|
|
521
|
+
aria-describedby={isUnavailable ? infoIconId : undefined}
|
|
476
522
|
textValue={textValue}
|
|
477
523
|
ref={ref}
|
|
478
524
|
style={pressScale(ref, props.UNSAFE_style)}
|
|
@@ -522,17 +568,21 @@ export function MenuItem(props: MenuItemProps): ReactNode {
|
|
|
522
568
|
</div>
|
|
523
569
|
)}
|
|
524
570
|
{renderProps.hasSubmenu && (
|
|
525
|
-
|
|
526
|
-
<
|
|
527
|
-
|
|
528
|
-
className={
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
571
|
+
isUnavailable
|
|
572
|
+
? <UnavailableIconWrapper direction={direction} size={size} id={infoIconId} />
|
|
573
|
+
: (
|
|
574
|
+
<div slot="descriptor" className={descriptor}>
|
|
575
|
+
<ChevronRightIcon
|
|
576
|
+
size={size}
|
|
577
|
+
className={style({
|
|
578
|
+
scaleX: {
|
|
579
|
+
direction: {
|
|
580
|
+
rtl: -1
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
})({direction})} />
|
|
584
|
+
</div>
|
|
585
|
+
)
|
|
536
586
|
)}
|
|
537
587
|
</Provider>
|
|
538
588
|
</>
|
|
@@ -587,11 +637,13 @@ function MenuTrigger(props: MenuTriggerProps): ReactNode {
|
|
|
587
637
|
shouldFlip: props.shouldFlip
|
|
588
638
|
}}>
|
|
589
639
|
<PopoverContext.Provider value={{hideArrow: true, offset: 8, crossOffset: 0, placement, shouldFlip}}>
|
|
590
|
-
<
|
|
591
|
-
<
|
|
592
|
-
{
|
|
593
|
-
|
|
594
|
-
|
|
640
|
+
<InPopoverContext.Provider value={false}>
|
|
641
|
+
<AriaMenuTrigger {...props}>
|
|
642
|
+
<PressResponder onPressStart={onPressStart} isPressed={isPressed}>
|
|
643
|
+
{props.children}
|
|
644
|
+
</PressResponder>
|
|
645
|
+
</AriaMenuTrigger>
|
|
646
|
+
</InPopoverContext.Provider>
|
|
595
647
|
</PopoverContext.Provider>
|
|
596
648
|
</InternalMenuTriggerContext.Provider>
|
|
597
649
|
);
|
|
@@ -613,7 +665,37 @@ function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {
|
|
|
613
665
|
);
|
|
614
666
|
}
|
|
615
667
|
|
|
616
|
-
export {
|
|
668
|
+
export interface UnavailableMenuItemTriggerProps {
|
|
669
|
+
/**
|
|
670
|
+
* The contents of the UnavailableMenuItemTrigger. The first child should be a MenuItem and the second child be a ContextualHelpPopover.
|
|
671
|
+
*/
|
|
672
|
+
children: ReactElement[],
|
|
673
|
+
/**
|
|
674
|
+
* Whether the menu item is currently unavailable.
|
|
675
|
+
* @default false
|
|
676
|
+
*/
|
|
677
|
+
isUnavailable?: boolean
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
function UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {
|
|
681
|
+
let {isUnavailable = false, children} = props;
|
|
682
|
+
if (isUnavailable) {
|
|
683
|
+
return (
|
|
684
|
+
<UnavailableContext.Provider value={isUnavailable}>
|
|
685
|
+
<AriaSubmenuTrigger>
|
|
686
|
+
{children[0]}
|
|
687
|
+
<PopoverContext.Provider value={{hideArrow: true, offset: -2, crossOffset: -8, placement: 'end top'}}>
|
|
688
|
+
{children[1]}
|
|
689
|
+
</PopoverContext.Provider>
|
|
690
|
+
</AriaSubmenuTrigger>
|
|
691
|
+
</UnavailableContext.Provider>
|
|
692
|
+
);
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
return children[0] as JSX.Element;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
export {MenuTrigger, SubmenuTrigger, UnavailableMenuItemTrigger};
|
|
617
699
|
|
|
618
700
|
// This is purely so that storybook generates the types for both Menu and MenuTrigger
|
|
619
701
|
interface ICombined<T extends object> extends MenuProps<T>, Omit<MenuTriggerProps, 'children'> {}
|
package/src/Meter.tsx
CHANGED
|
@@ -48,7 +48,7 @@ interface MeterStyleProps {
|
|
|
48
48
|
labelPosition?: LabelPosition
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export interface MeterProps extends Omit<AriaMeterProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, MeterStyleProps, StyleProps {
|
|
51
|
+
export interface MeterProps extends Omit<AriaMeterProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>, MeterStyleProps, StyleProps {
|
|
52
52
|
/** The content to display as the label. */
|
|
53
53
|
label?: ReactNode
|
|
54
54
|
}
|
package/src/Modal.tsx
CHANGED
|
@@ -18,7 +18,7 @@ import {ModalOverlay, ModalOverlayProps, Modal as RACModal, useLocale} from 'rea
|
|
|
18
18
|
import {style} from '../style' with {type: 'macro'};
|
|
19
19
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
20
20
|
|
|
21
|
-
interface ModalProps extends Omit<ModalOverlayProps, 'className' | 'style' | keyof GlobalDOMAttributes> {
|
|
21
|
+
interface ModalProps extends Omit<ModalOverlayProps, 'className' | 'style' | 'render' | keyof GlobalDOMAttributes> {
|
|
22
22
|
/**
|
|
23
23
|
* The size of the Modal.
|
|
24
24
|
*
|
package/src/NumberField.tsx
CHANGED
|
@@ -38,7 +38,7 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
export interface NumberFieldProps extends
|
|
41
|
-
Omit<AriaNumberFieldProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>,
|
|
41
|
+
Omit<AriaNumberFieldProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>,
|
|
42
42
|
StyleProps,
|
|
43
43
|
SpectrumLabelableProps,
|
|
44
44
|
HelpTextProps,
|
package/src/Picker.tsx
CHANGED
|
@@ -29,6 +29,7 @@ import {
|
|
|
29
29
|
ListLayout,
|
|
30
30
|
Provider,
|
|
31
31
|
SectionProps,
|
|
32
|
+
SelectStateContext,
|
|
32
33
|
SelectValue,
|
|
33
34
|
Virtualizer
|
|
34
35
|
} from 'react-aria-components';
|
|
@@ -50,6 +51,7 @@ import CheckmarkIcon from '../ui-icons/Checkmark';
|
|
|
50
51
|
import ChevronIcon from '../ui-icons/Chevron';
|
|
51
52
|
import {control, controlBorderRadius, controlFont, field, fieldInput, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};
|
|
52
53
|
import {createHideableComponent} from '@react-aria/collections';
|
|
54
|
+
import {createShadowTreeWalker, getOwnerDocument, isFocusable, useGlobalListeners, useSlotId} from '@react-aria/utils';
|
|
53
55
|
import {
|
|
54
56
|
Divider,
|
|
55
57
|
listbox,
|
|
@@ -76,9 +78,8 @@ import {PressResponder} from '@react-aria/interactions';
|
|
|
76
78
|
import {pressScale} from './pressScale';
|
|
77
79
|
import {ProgressCircle} from './ProgressCircle';
|
|
78
80
|
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
79
|
-
import React, {createContext, forwardRef, ReactNode, useContext, useMemo, useRef, useState} from 'react';
|
|
81
|
+
import React, {createContext, forwardRef, ReactNode, useContext, useEffect, useMemo, useRef, useState} from 'react';
|
|
80
82
|
import {useFocusableRef} from '@react-spectrum/utils';
|
|
81
|
-
import {useGlobalListeners, useSlotId} from '@react-aria/utils';
|
|
82
83
|
import {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';
|
|
83
84
|
import {useScale} from './utils';
|
|
84
85
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
@@ -98,7 +99,7 @@ export interface PickerStyleProps {
|
|
|
98
99
|
|
|
99
100
|
type SelectionMode = 'single' | 'multiple';
|
|
100
101
|
export interface PickerProps<T extends object, M extends SelectionMode = 'single'> extends
|
|
101
|
-
Omit<AriaSelectProps<T, M>, 'children' | 'style' | 'className' | 'allowsEmptyCollection' | keyof GlobalDOMAttributes>,
|
|
102
|
+
Omit<AriaSelectProps<T, M>, 'children' | 'style' | 'className' | 'render' | 'allowsEmptyCollection' | keyof GlobalDOMAttributes>,
|
|
102
103
|
PickerStyleProps,
|
|
103
104
|
StyleProps,
|
|
104
105
|
SpectrumLabelableProps,
|
|
@@ -123,7 +124,13 @@ export interface PickerProps<T extends object, M extends SelectionMode = 'single
|
|
|
123
124
|
/** Width of the menu. By default, matches width of the trigger. Note that the minimum width of the dropdown is always equal to the trigger's width. */
|
|
124
125
|
menuWidth?: number,
|
|
125
126
|
/** The current loading state of the Picker. */
|
|
126
|
-
loadingState?: LoadingState
|
|
127
|
+
loadingState?: LoadingState,
|
|
128
|
+
/**
|
|
129
|
+
* Custom renderer for the picker value. Allows one to provide a custom element to render selected items.
|
|
130
|
+
*
|
|
131
|
+
* @note The returned ReactNode should not have interactable elements as it will break accessibility.
|
|
132
|
+
*/
|
|
133
|
+
renderValue?: (selectedItems: T[]) => ReactNode
|
|
127
134
|
}
|
|
128
135
|
|
|
129
136
|
interface PickerButtonProps extends PickerStyleProps, ButtonRenderProps {}
|
|
@@ -227,7 +234,8 @@ const valueStyles = style({
|
|
|
227
234
|
},
|
|
228
235
|
truncate: true,
|
|
229
236
|
display: 'flex',
|
|
230
|
-
alignItems: 'center'
|
|
237
|
+
alignItems: 'center',
|
|
238
|
+
height: '100%'
|
|
231
239
|
});
|
|
232
240
|
|
|
233
241
|
const iconStyles = style({
|
|
@@ -298,6 +306,7 @@ export const Picker = /*#__PURE__*/ (forwardRef as forwardRefType)(function Pick
|
|
|
298
306
|
placeholder = stringFormatter.format('picker.placeholder'),
|
|
299
307
|
isQuiet,
|
|
300
308
|
loadingState,
|
|
309
|
+
renderValue,
|
|
301
310
|
onLoadMore,
|
|
302
311
|
...pickerProps
|
|
303
312
|
} = props;
|
|
@@ -376,6 +385,7 @@ export const Picker = /*#__PURE__*/ (forwardRef as forwardRefType)(function Pick
|
|
|
376
385
|
</FieldLabel>
|
|
377
386
|
<PickerButton
|
|
378
387
|
loadingState={loadingState}
|
|
388
|
+
renderValue={renderValue}
|
|
379
389
|
isOpen={isOpen}
|
|
380
390
|
isQuiet={isQuiet}
|
|
381
391
|
isFocusVisible={isFocusVisible}
|
|
@@ -482,7 +492,14 @@ const avatarSize = {
|
|
|
482
492
|
XL: 26
|
|
483
493
|
} as const;
|
|
484
494
|
|
|
485
|
-
|
|
495
|
+
// https://w3c.github.io/aria/#widget_roles
|
|
496
|
+
let INTERACTIVE_ARIA_ROLES = new Set([
|
|
497
|
+
'application', 'button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem',
|
|
498
|
+
'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'searchbox', 'separator',
|
|
499
|
+
'slider', 'spinbutton', 'switch', 'tab', 'textbox', 'treeitem'
|
|
500
|
+
]);
|
|
501
|
+
|
|
502
|
+
interface PickerButtonInnerProps<T extends object> extends PickerStyleProps, Omit<AriaSelectRenderProps, 'isRequired' | 'isFocused'>, Pick<PickerProps<T>, 'loadingState' | 'renderValue'> {
|
|
486
503
|
loadingCircle: ReactNode,
|
|
487
504
|
buttonRef: RefObject<HTMLButtonElement | null>
|
|
488
505
|
}
|
|
@@ -498,9 +515,40 @@ const PickerButton = createHideableComponent(function PickerButton<T extends obj
|
|
|
498
515
|
isDisabled,
|
|
499
516
|
loadingState,
|
|
500
517
|
loadingCircle,
|
|
501
|
-
buttonRef
|
|
518
|
+
buttonRef,
|
|
519
|
+
renderValue
|
|
502
520
|
} = props;
|
|
503
521
|
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');
|
|
522
|
+
let renderValueRef = useRef(null);
|
|
523
|
+
|
|
524
|
+
let state = useContext(SelectStateContext)!;
|
|
525
|
+
useEffect(() => {
|
|
526
|
+
if (process.env.NODE_ENV === 'production' || !renderValue) {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
if (!renderValueRef.current) {
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
let doc = getOwnerDocument(renderValueRef.current);
|
|
535
|
+
let walker = createShadowTreeWalker(
|
|
536
|
+
doc,
|
|
537
|
+
renderValueRef.current,
|
|
538
|
+
NodeFilter.SHOW_ELEMENT,
|
|
539
|
+
{
|
|
540
|
+
acceptNode(node: Element) {
|
|
541
|
+
let role = node.getAttribute('role');
|
|
542
|
+
let interactive = isFocusable(node) || (role != null && INTERACTIVE_ARIA_ROLES.has(role));
|
|
543
|
+
return interactive ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
);
|
|
547
|
+
let next = walker.nextNode();
|
|
548
|
+
if (next) {
|
|
549
|
+
console.warn('Picker\'s value should not have interactive children for accessibility.');
|
|
550
|
+
}
|
|
551
|
+
}, [state.selectedItems, renderValue]);
|
|
504
552
|
|
|
505
553
|
// For mouse interactions, pickers open on press start. When the popover underlay appears
|
|
506
554
|
// it covers the trigger button, causing onPressEnd to fire immediately and no press scaling
|
|
@@ -533,8 +581,20 @@ const PickerButton = createHideableComponent(function PickerButton<T extends obj
|
|
|
533
581
|
})}>
|
|
534
582
|
{(renderProps) => (
|
|
535
583
|
<>
|
|
536
|
-
<SelectValue
|
|
584
|
+
<SelectValue
|
|
585
|
+
className={
|
|
586
|
+
valueStyles({isQuiet}) +
|
|
587
|
+
(renderValue ? '' : ' ' + raw('&> :not([slot=icon], [slot=avatar], [slot=label], [data-slot=label]) {display: none;}'))
|
|
588
|
+
}>
|
|
537
589
|
{({selectedItems, defaultChildren}) => {
|
|
590
|
+
const selectedValues = selectedItems.filter((item): item is T => item != null);
|
|
591
|
+
const defaultRenderedValue = selectedItems.length <= 1
|
|
592
|
+
? defaultChildren
|
|
593
|
+
: <Text slot="label">{stringFormatter.format('picker.selectedCount', {count: selectedItems.length})}</Text>;
|
|
594
|
+
const renderedValue = selectedItems.length > 0 && renderValue
|
|
595
|
+
? renderValue(selectedValues)
|
|
596
|
+
: defaultRenderedValue;
|
|
597
|
+
|
|
538
598
|
return (
|
|
539
599
|
<Provider
|
|
540
600
|
values={[
|
|
@@ -579,10 +639,11 @@ const PickerButton = createHideableComponent(function PickerButton<T extends obj
|
|
|
579
639
|
}],
|
|
580
640
|
[InsideSelectValueContext, true]
|
|
581
641
|
]}>
|
|
582
|
-
{
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
642
|
+
{renderValue ? (
|
|
643
|
+
<div ref={renderValueRef} style={{display: 'contents'}}>
|
|
644
|
+
{renderedValue}
|
|
645
|
+
</div>
|
|
646
|
+
) : renderedValue}
|
|
586
647
|
</Provider>
|
|
587
648
|
);
|
|
588
649
|
}}
|
|
@@ -604,7 +665,7 @@ const PickerButton = createHideableComponent(function PickerButton<T extends obj
|
|
|
604
665
|
);
|
|
605
666
|
});
|
|
606
667
|
|
|
607
|
-
export interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
668
|
+
export interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
608
669
|
children: ReactNode
|
|
609
670
|
}
|
|
610
671
|
|
|
@@ -675,7 +736,7 @@ function DefaultProvider({context, value, children}: {context: React.Context<any
|
|
|
675
736
|
return <context.Provider value={value}>{children}</context.Provider>;
|
|
676
737
|
}
|
|
677
738
|
|
|
678
|
-
export interface PickerSectionProps<T extends object> extends Omit<SectionProps<T>, 'style' | 'className' | keyof GlobalDOMAttributes>, StyleProps {}
|
|
739
|
+
export interface PickerSectionProps<T extends object> extends Omit<SectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, StyleProps {}
|
|
679
740
|
export function PickerSection<T extends object>(props: PickerSectionProps<T>): ReactNode {
|
|
680
741
|
let {size} = useContext(InternalPickerContext);
|
|
681
742
|
return (
|
package/src/Popover.tsx
CHANGED
|
@@ -40,6 +40,7 @@ export interface PopoverProps extends UnsafeStyles, Omit<AriaPopoverProps,
|
|
|
40
40
|
'shouldUpdatePosition' |
|
|
41
41
|
'style' |
|
|
42
42
|
'className' |
|
|
43
|
+
'render' |
|
|
43
44
|
keyof GlobalDOMAttributes
|
|
44
45
|
> {
|
|
45
46
|
/**
|
|
@@ -255,7 +256,7 @@ export interface PopoverDialogProps extends Pick<PopoverProps,
|
|
|
255
256
|
'triggerRef' |
|
|
256
257
|
'isOpen' |
|
|
257
258
|
'onOpenChange'
|
|
258
|
-
>, Omit<DialogProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
259
|
+
>, Omit<DialogProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
259
260
|
/**
|
|
260
261
|
* The children of the popover.
|
|
261
262
|
*/
|
package/src/ProgressBar.tsx
CHANGED
|
@@ -50,7 +50,7 @@ interface ProgressBarStyleProps {
|
|
|
50
50
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
export interface ProgressBarProps extends Omit<AriaProgressBarProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, ProgressBarStyleProps, StyleProps {
|
|
53
|
+
export interface ProgressBarProps extends Omit<AriaProgressBarProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>, ProgressBarStyleProps, StyleProps {
|
|
54
54
|
/** The content to display as the label. */
|
|
55
55
|
label?: ReactNode
|
|
56
56
|
}
|
package/src/ProgressCircle.tsx
CHANGED
|
@@ -104,7 +104,7 @@ const hcmStroke = style({
|
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
|
|
107
|
-
export interface ProgressCircleProps extends Omit<RACProgressBarProps, 'children' | 'style' | 'valueLabel' | 'formatOptions' | 'label' | 'className' | keyof GlobalDOMAttributes>, ProgressCircleStyleProps, UnsafeStyles {
|
|
107
|
+
export interface ProgressCircleProps extends Omit<RACProgressBarProps, 'children' | 'style' | 'valueLabel' | 'formatOptions' | 'label' | 'className' | 'render' | keyof GlobalDOMAttributes>, ProgressCircleStyleProps, UnsafeStyles {
|
|
108
108
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
109
109
|
styles?: StylesPropWithHeight
|
|
110
110
|
}
|
package/src/Radio.tsx
CHANGED
|
@@ -24,7 +24,7 @@ import {forwardRef, ReactNode, useContext, useRef} from 'react';
|
|
|
24
24
|
import {pressScale} from './pressScale';
|
|
25
25
|
import {useFocusableRef} from '@react-spectrum/utils';
|
|
26
26
|
|
|
27
|
-
export interface RadioProps extends Omit<AriaRadioProps, 'className' | 'style' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
27
|
+
export interface RadioProps extends Omit<AriaRadioProps, 'className' | 'style' | 'render' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
28
28
|
/**
|
|
29
29
|
* The label for the element.
|
|
30
30
|
*/
|
package/src/RadioGroup.tsx
CHANGED
|
@@ -24,7 +24,7 @@ import {style} from '../style' with {type: 'macro'};
|
|
|
24
24
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
25
25
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
26
26
|
|
|
27
|
-
export interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'className' | 'style' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps {
|
|
27
|
+
export interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps {
|
|
28
28
|
/**
|
|
29
29
|
* The Radios contained within the RadioGroup.
|
|
30
30
|
*/
|
package/src/RangeCalendar.tsx
CHANGED
|
@@ -34,7 +34,7 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
export interface RangeCalendarProps<T extends DateValue>
|
|
37
|
-
extends Omit<AriaRangeCalendarProps<T>, 'visibleDuration' | 'style' | 'className' | 'children' | 'styles' | keyof GlobalDOMAttributes>,
|
|
37
|
+
extends Omit<AriaRangeCalendarProps<T>, 'visibleDuration' | 'style' | 'className' | 'render' | 'children' | 'styles' | keyof GlobalDOMAttributes>,
|
|
38
38
|
StyleProps {
|
|
39
39
|
/**
|
|
40
40
|
* The error message to display when the calendar is invalid.
|
package/src/SearchField.tsx
CHANGED
|
@@ -32,7 +32,7 @@ import SearchIcon from '../s2wf-icons/S2_Icon_Search_20_N.svg';
|
|
|
32
32
|
import {TextFieldRef} from '@react-types/textfield';
|
|
33
33
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
34
34
|
|
|
35
|
-
export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'className' | 'style' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
|
|
35
|
+
export interface SearchFieldProps extends Omit<AriaSearchFieldProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
|
|
36
36
|
/**
|
|
37
37
|
* The size of the SearchField.
|
|
38
38
|
*
|
package/src/SelectBoxGroup.tsx
CHANGED
|
@@ -30,7 +30,7 @@ import {TextContext} from './Content';
|
|
|
30
30
|
import {useFocusVisible} from 'react-aria';
|
|
31
31
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
32
32
|
|
|
33
|
-
export interface SelectBoxGroupProps<T> extends StyleProps, Omit<ListBoxProps<T>, keyof GlobalDOMAttributes | 'layout' | 'dragAndDropHooks' | 'dependencies' | 'renderEmptyState' | 'children' | 'onAction' | 'shouldFocusOnHover' | 'selectionBehavior' | 'shouldSelectOnPressUp' | 'shouldFocusWrap' | 'style' | 'className'> {
|
|
33
|
+
export interface SelectBoxGroupProps<T> extends StyleProps, Omit<ListBoxProps<T>, keyof GlobalDOMAttributes | 'layout' | 'dragAndDropHooks' | 'dependencies' | 'renderEmptyState' | 'children' | 'onAction' | 'shouldFocusOnHover' | 'selectionBehavior' | 'shouldSelectOnPressUp' | 'shouldFocusWrap' | 'style' | 'className' | 'render'> {
|
|
34
34
|
/**
|
|
35
35
|
* The SelectBox elements contained within the SelectBoxGroup.
|
|
36
36
|
*/
|
package/src/Slider.tsx
CHANGED
|
@@ -32,7 +32,7 @@ import {useFocusableRef} from '@react-spectrum/utils';
|
|
|
32
32
|
import {useLocale, useNumberFormatter} from '@react-aria/i18n';
|
|
33
33
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
34
34
|
|
|
35
|
-
export interface SliderBaseProps<T> extends Omit<AriaSliderProps<T>, 'children' | 'style' | 'className' | 'orientation' | keyof GlobalDOMAttributes>, Omit<SpectrumLabelableProps, 'necessityIndicator' | 'isRequired'>, StyleProps {
|
|
35
|
+
export interface SliderBaseProps<T> extends Omit<AriaSliderProps<T>, 'children' | 'style' | 'className' | 'render' | 'orientation' | keyof GlobalDOMAttributes>, Omit<SpectrumLabelableProps, 'necessityIndicator' | 'isRequired'>, StyleProps {
|
|
36
36
|
children?: ReactNode,
|
|
37
37
|
/**
|
|
38
38
|
* The size of the Slider.
|
package/src/Switch.tsx
CHANGED
|
@@ -42,7 +42,7 @@ interface SwitchStyleProps {
|
|
|
42
42
|
|
|
43
43
|
interface RenderProps extends SwitchRenderProps, SwitchStyleProps {}
|
|
44
44
|
|
|
45
|
-
export interface SwitchProps extends Omit<AriaSwitchProps, 'className' | 'style' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | keyof GlobalDOMAttributes>, StyleProps, SwitchStyleProps {
|
|
45
|
+
export interface SwitchProps extends Omit<AriaSwitchProps, 'className' | 'style' | 'render' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | keyof GlobalDOMAttributes>, StyleProps, SwitchStyleProps {
|
|
46
46
|
children?: ReactNode
|
|
47
47
|
}
|
|
48
48
|
|