@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/TableView.tsx
CHANGED
|
@@ -17,10 +17,12 @@ import {
|
|
|
17
17
|
ButtonContext,
|
|
18
18
|
CellRenderProps,
|
|
19
19
|
Collection,
|
|
20
|
+
CollectionRendererContext,
|
|
20
21
|
ColumnRenderProps,
|
|
21
22
|
ColumnResizer,
|
|
22
23
|
ContextValue,
|
|
23
24
|
DEFAULT_SLOT,
|
|
25
|
+
DefaultCollectionRenderer,
|
|
24
26
|
Form,
|
|
25
27
|
Key,
|
|
26
28
|
OverlayTriggerStateContext,
|
|
@@ -59,7 +61,7 @@ import Close from '../s2wf-icons/S2_Icon_Close_20_N.svg';
|
|
|
59
61
|
import {ColumnSize} from '@react-types/table';
|
|
60
62
|
import {CustomDialog, DialogContainer} from '..';
|
|
61
63
|
import {DOMProps, DOMRef, DOMRefValue, forwardRefType, GlobalDOMAttributes, LinkDOMProps, LoadingState, Node} from '@react-types/shared';
|
|
62
|
-
import {getActiveElement, getOwnerDocument, useLayoutEffect, useObjectRef} from '@react-aria/utils';
|
|
64
|
+
import {getActiveElement, getOwnerDocument, isFocusWithin, nodeContains, useLayoutEffect, useObjectRef} from '@react-aria/utils';
|
|
63
65
|
import {GridNode} from '@react-types/grid';
|
|
64
66
|
import {IconContext} from './Icon';
|
|
65
67
|
// @ts-ignore
|
|
@@ -120,7 +122,7 @@ interface S2TableProps {
|
|
|
120
122
|
}
|
|
121
123
|
|
|
122
124
|
// TODO: Note that loadMore and loadingState are now on the Table instead of on the TableBody
|
|
123
|
-
export interface TableViewProps extends Omit<RACTableProps, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks' | keyof GlobalDOMAttributes>, DOMProps, UnsafeStyles, S2TableProps {
|
|
125
|
+
export interface TableViewProps extends Omit<RACTableProps, 'style' | 'className' | 'render' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks' | keyof GlobalDOMAttributes>, DOMProps, UnsafeStyles, S2TableProps {
|
|
124
126
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
125
127
|
styles?: StylesPropWithHeight
|
|
126
128
|
}
|
|
@@ -388,7 +390,7 @@ const centeredWrapper = style({
|
|
|
388
390
|
height: 'full'
|
|
389
391
|
});
|
|
390
392
|
|
|
391
|
-
export interface TableBodyProps<T> extends Omit<RACTableBodyProps<T>, 'style' | 'className' | keyof GlobalDOMAttributes> {}
|
|
393
|
+
export interface TableBodyProps<T> extends Omit<RACTableBodyProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes> {}
|
|
392
394
|
|
|
393
395
|
/**
|
|
394
396
|
* The body of a `<Table>`, containing the table rows.
|
|
@@ -439,7 +441,9 @@ export const TableBody = /*#__PURE__*/ (forwardRef as forwardRefType)(function T
|
|
|
439
441
|
if (renderEmptyState != null && !isLoading) {
|
|
440
442
|
emptyRender = (props: TableBodyRenderProps) => (
|
|
441
443
|
<div className={centeredWrapper}>
|
|
442
|
-
{
|
|
444
|
+
<CollectionRendererContext.Provider value={DefaultCollectionRenderer}>
|
|
445
|
+
{renderEmptyState(props)}
|
|
446
|
+
</CollectionRendererContext.Provider>
|
|
443
447
|
</div>
|
|
444
448
|
);
|
|
445
449
|
} else if (loadingState === 'loading') {
|
|
@@ -522,7 +526,7 @@ const columnStyles = style({
|
|
|
522
526
|
forcedColorAdjust: 'none'
|
|
523
527
|
});
|
|
524
528
|
|
|
525
|
-
export interface ColumnProps extends Omit<RACColumnProps, 'style' | 'className' | keyof GlobalDOMAttributes> {
|
|
529
|
+
export interface ColumnProps extends Omit<RACColumnProps, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes> {
|
|
526
530
|
/** Whether the column should render a divider between it and the next column. */
|
|
527
531
|
showDivider?: boolean,
|
|
528
532
|
/** Whether the column allows resizing. */
|
|
@@ -885,7 +889,7 @@ const selectAllCheckboxColumn = style({
|
|
|
885
889
|
backgroundColor: 'gray-75'
|
|
886
890
|
});
|
|
887
891
|
|
|
888
|
-
export interface TableHeaderProps<T> extends Omit<RACTableHeaderProps<T>, 'style' | 'className' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd' | keyof GlobalDOMAttributes> {}
|
|
892
|
+
export interface TableHeaderProps<T> extends Omit<RACTableHeaderProps<T>, 'style' | 'className' | 'render' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd' | keyof GlobalDOMAttributes> {}
|
|
889
893
|
|
|
890
894
|
/**
|
|
891
895
|
* A header within a `<Table>`, containing the table columns.
|
|
@@ -943,20 +947,13 @@ const commonCellStyles = {
|
|
|
943
947
|
borderXWidth: 0,
|
|
944
948
|
borderStyle: 'solid',
|
|
945
949
|
position: 'relative',
|
|
946
|
-
color:
|
|
947
|
-
default: 'gray-800',
|
|
948
|
-
forcedColors: 'ButtonText'
|
|
949
|
-
},
|
|
950
|
+
color: '--rowTextColor',
|
|
950
951
|
outlineStyle: 'none',
|
|
951
952
|
paddingX: 16 // table-edge-to-content
|
|
952
953
|
} as const;
|
|
953
954
|
|
|
954
955
|
const cell = style<CellRenderProps & S2TableProps & {isDivider: boolean}>({
|
|
955
956
|
...commonCellStyles,
|
|
956
|
-
color: {
|
|
957
|
-
default: baseColor('neutral-subdued'),
|
|
958
|
-
isSelected: baseColor('neutral')
|
|
959
|
-
},
|
|
960
957
|
paddingY: centerPadding(),
|
|
961
958
|
minHeight: {
|
|
962
959
|
default: 40,
|
|
@@ -1030,7 +1027,7 @@ const cellContent = style({
|
|
|
1030
1027
|
}
|
|
1031
1028
|
});
|
|
1032
1029
|
|
|
1033
|
-
export interface CellProps extends Omit<RACCellProps, 'style' | 'className' | keyof GlobalDOMAttributes>, Pick<ColumnProps, 'align' | 'showDivider'> {
|
|
1030
|
+
export interface CellProps extends Omit<RACCellProps, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, Pick<ColumnProps, 'align' | 'showDivider'> {
|
|
1034
1031
|
/** @private */
|
|
1035
1032
|
isSticky?: boolean,
|
|
1036
1033
|
/** The content to render as the cell children. */
|
|
@@ -1220,7 +1217,7 @@ function EditableCellInner(props: EditableCellProps & {isFocusVisible: boolean,
|
|
|
1220
1217
|
if (isOpen) {
|
|
1221
1218
|
let activeElement = getActiveElement(getOwnerDocument(formRef.current));
|
|
1222
1219
|
if (activeElement
|
|
1223
|
-
&& formRef.current
|
|
1220
|
+
&& nodeContains(formRef.current, activeElement)
|
|
1224
1221
|
// not going to handle contenteditable https://stackoverflow.com/questions/6139107/programmatically-select-text-in-a-contenteditable-html-element
|
|
1225
1222
|
// seems like an edge case anyways
|
|
1226
1223
|
&& (
|
|
@@ -1301,7 +1298,7 @@ function EditableCellInner(props: EditableCellProps & {isFocusVisible: boolean,
|
|
|
1301
1298
|
onOpenChange={setIsOpen}
|
|
1302
1299
|
ref={popoverRef}
|
|
1303
1300
|
shouldCloseOnInteractOutside={() => {
|
|
1304
|
-
if (!popoverRef.current
|
|
1301
|
+
if (!isFocusWithin(popoverRef.current)) {
|
|
1305
1302
|
return false;
|
|
1306
1303
|
}
|
|
1307
1304
|
formRef.current?.requestSubmit();
|
|
@@ -1393,6 +1390,16 @@ const rowBackgroundColor = {
|
|
|
1393
1390
|
}
|
|
1394
1391
|
} as const;
|
|
1395
1392
|
|
|
1393
|
+
const rowTextColor = {
|
|
1394
|
+
default: baseColor('neutral-subdued'),
|
|
1395
|
+
isSelected: baseColor('neutral'),
|
|
1396
|
+
isDisabled: {
|
|
1397
|
+
default: 'disabled',
|
|
1398
|
+
forcedColors: 'GrayText'
|
|
1399
|
+
},
|
|
1400
|
+
forcedColors: 'ButtonText'
|
|
1401
|
+
} as const;
|
|
1402
|
+
|
|
1396
1403
|
const row = style<RowRenderProps & S2TableProps>({
|
|
1397
1404
|
height: 'full',
|
|
1398
1405
|
position: 'relative',
|
|
@@ -1402,6 +1409,10 @@ const row = style<RowRenderProps & S2TableProps>({
|
|
|
1402
1409
|
type: 'backgroundColor',
|
|
1403
1410
|
value: rowBackgroundColor
|
|
1404
1411
|
},
|
|
1412
|
+
'--rowTextColor': {
|
|
1413
|
+
type: 'color',
|
|
1414
|
+
value: rowTextColor
|
|
1415
|
+
},
|
|
1405
1416
|
'--rowFocusIndicatorColor': {
|
|
1406
1417
|
type: 'outlineColor',
|
|
1407
1418
|
value: {
|
|
@@ -1446,6 +1457,13 @@ const row = style<RowRenderProps & S2TableProps>({
|
|
|
1446
1457
|
forcedColorAdjust: 'none'
|
|
1447
1458
|
});
|
|
1448
1459
|
|
|
1460
|
+
const selectionCheckbox = style({
|
|
1461
|
+
visibility: {
|
|
1462
|
+
default: 'visible',
|
|
1463
|
+
':is([slot="selection"][data-disabled="true"])': 'hidden'
|
|
1464
|
+
}
|
|
1465
|
+
});
|
|
1466
|
+
|
|
1449
1467
|
export interface RowProps<T> extends Pick<RACRowProps<T>, 'id' | 'columns' | 'isDisabled' | 'onAction' | 'children' | 'textValue' | 'dependencies' | keyof GlobalDOMAttributes>, LinkDOMProps {}
|
|
1450
1468
|
|
|
1451
1469
|
/**
|
|
@@ -1465,14 +1483,14 @@ export const Row = /*#__PURE__*/ (forwardRef as forwardRefType)(function Row<T e
|
|
|
1465
1483
|
className={renderProps => row({
|
|
1466
1484
|
...renderProps,
|
|
1467
1485
|
...tableVisualOptions
|
|
1468
|
-
}) + (renderProps.isFocusVisible
|
|
1486
|
+
}) + (renderProps.isFocusVisible ? ' ' + raw('&:before { content: ""; display: inline-block; position: sticky; inset-inline-start: 0; width: 3px; height: 100%; margin-inline-end: -3px; margin-block-end: 1px; z-index: 3; background-color: var(--rowFocusIndicatorColor)') : '')}
|
|
1469
1487
|
{...otherProps}>
|
|
1470
1488
|
{selectionMode !== 'none' && selectionBehavior === 'toggle' && (
|
|
1471
1489
|
// Not sure what we want to do with this className, in Cell it currently overrides the className that would have been applied.
|
|
1472
1490
|
// The `spread` otherProps must be after className in Cell.
|
|
1473
1491
|
// @ts-ignore
|
|
1474
1492
|
<Cell isSticky className={checkboxCellStyle}>
|
|
1475
|
-
<Checkbox slot="selection" />
|
|
1493
|
+
<Checkbox slot="selection" styles={selectionCheckbox} />
|
|
1476
1494
|
</Cell>
|
|
1477
1495
|
)}
|
|
1478
1496
|
<Collection items={columns} dependencies={[...dependencies, columns]}>
|
package/src/Tabs.tsx
CHANGED
|
@@ -42,7 +42,7 @@ import {useHasTabbableChild} from '@react-aria/focus';
|
|
|
42
42
|
import {useLocale} from '@react-aria/i18n';
|
|
43
43
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
44
44
|
|
|
45
|
-
export interface TabsProps extends Omit<AriaTabsProps, 'className' | 'style' | 'children' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
45
|
+
export interface TabsProps extends Omit<AriaTabsProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
46
46
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
47
47
|
styles?: StylesPropWithHeight,
|
|
48
48
|
/** The content to display in the tabs. */
|
|
@@ -60,17 +60,17 @@ export interface TabsProps extends Omit<AriaTabsProps, 'className' | 'style' | '
|
|
|
60
60
|
labelBehavior?: 'show' | 'hide'
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
export interface TabProps extends Omit<AriaTabProps, 'children' | 'style' | 'className' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
63
|
+
export interface TabProps extends Omit<AriaTabProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {
|
|
64
64
|
/** The content to display in the tab. */
|
|
65
65
|
children: ReactNode
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'style' | 'className' | 'aria-label' | 'aria-labelledby' | keyof GlobalDOMAttributes>, StyleProps {
|
|
68
|
+
export interface TabListProps<T> extends Omit<AriaTabListProps<T>, 'style' | 'className' | 'render' | 'aria-label' | 'aria-labelledby' | keyof GlobalDOMAttributes>, StyleProps {
|
|
69
69
|
/** The content to display in the tablist. */
|
|
70
70
|
children: ReactNode | ((item: T) => ReactNode)
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
export interface TabPanelProps extends Omit<AriaTabPanelProps, 'children' | 'style' | 'className' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
73
|
+
export interface TabPanelProps extends Omit<AriaTabPanelProps, 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, UnsafeStyles {
|
|
74
74
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
75
75
|
styles?: StylesPropWithHeight,
|
|
76
76
|
/** The content to display in the tab panels. */
|
package/src/TabsPicker.tsx
CHANGED
|
@@ -56,7 +56,7 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
|
56
56
|
export interface PickerStyleProps {
|
|
57
57
|
}
|
|
58
58
|
export interface PickerProps<T extends object> extends
|
|
59
|
-
Omit<AriaSelectProps<T>, 'children' | 'style' | 'className' | 'placeholder'>,
|
|
59
|
+
Omit<AriaSelectProps<T>, 'children' | 'style' | 'className' | 'render' | 'placeholder'>,
|
|
60
60
|
PickerStyleProps,
|
|
61
61
|
StyleProps,
|
|
62
62
|
SpectrumLabelableProps,
|
|
@@ -318,7 +318,7 @@ function TabLine(props: {isDisabled?: boolean}) {
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
|
|
321
|
-
export interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className'>, StyleProps {
|
|
321
|
+
export interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'render'>, StyleProps {
|
|
322
322
|
children: ReactNode
|
|
323
323
|
}
|
|
324
324
|
export function PickerItem(props: PickerItemProps): ReactNode {
|
package/src/TagGroup.tsx
CHANGED
|
@@ -52,12 +52,12 @@ import {useLocalizedStringFormatter} from '@react-aria/i18n';
|
|
|
52
52
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
53
53
|
|
|
54
54
|
// Get types from RSP and extend those?
|
|
55
|
-
export interface TagProps extends Omit<AriaTagProps, 'children' | 'style' | 'className' | 'onClick' | keyof GlobalDOMAttributes>, LabelableProps {
|
|
55
|
+
export interface TagProps extends Omit<AriaTagProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, LabelableProps {
|
|
56
56
|
/** The children of the tag. */
|
|
57
57
|
children: ReactNode
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export interface TagGroupProps<T> extends Omit<AriaTagGroupProps, 'children' | 'style' | 'className' | keyof GlobalDOMAttributes>, Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState'>, Omit<SpectrumLabelableProps, 'isRequired' | 'necessityIndicator'>, StyleProps, Omit<HelpTextProps, 'errorMessage'> {
|
|
60
|
+
export interface TagGroupProps<T> extends Omit<AriaTagGroupProps, 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState'>, Omit<SpectrumLabelableProps, 'isRequired' | 'necessityIndicator'>, StyleProps, Omit<HelpTextProps, 'errorMessage'> {
|
|
61
61
|
/** A description for the tag group. */
|
|
62
62
|
description?: ReactNode,
|
|
63
63
|
/**
|
package/src/TextField.tsx
CHANGED
|
@@ -33,7 +33,7 @@ import {StyleString} from '../style/types';
|
|
|
33
33
|
import {TextFieldRef} from '@react-types/textfield';
|
|
34
34
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
35
35
|
|
|
36
|
-
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
|
|
36
|
+
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<InputProps, 'placeholder'> {
|
|
37
37
|
/**
|
|
38
38
|
* The size of the text field.
|
|
39
39
|
*
|
package/src/TimeField.tsx
CHANGED
|
@@ -27,7 +27,7 @@ import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
export interface TimeFieldProps<T extends TimeValue> extends
|
|
30
|
-
Omit<AriaTimeFieldProps<T>, 'children' | 'className' | 'style' | keyof GlobalDOMAttributes>,
|
|
30
|
+
Omit<AriaTimeFieldProps<T>, 'children' | 'className' | 'style' | 'render' | keyof GlobalDOMAttributes>,
|
|
31
31
|
StyleProps,
|
|
32
32
|
SpectrumLabelableProps,
|
|
33
33
|
HelpTextProps {
|
package/src/Toast.tsx
CHANGED
|
@@ -19,7 +19,7 @@ import Chevron from '../s2wf-icons/S2_Icon_ChevronDown_20_N.svg';
|
|
|
19
19
|
import {CloseButton} from './CloseButton';
|
|
20
20
|
import {createContext, ReactNode, useContext, useEffect, useMemo, useRef} from 'react';
|
|
21
21
|
import {DOMProps} from '@react-types/shared';
|
|
22
|
-
import {filterDOMProps, isWebKit, useEvent} from '@react-aria/utils';
|
|
22
|
+
import {filterDOMProps, getEventTarget, isWebKit, useEvent} from '@react-aria/utils';
|
|
23
23
|
import {flushSync} from 'react-dom';
|
|
24
24
|
import {focusRing, style} from '../style' with {type: 'macro'};
|
|
25
25
|
import {FocusScope, useModalOverlay} from 'react-aria';
|
|
@@ -34,7 +34,7 @@ import {useMediaQuery} from '@react-spectrum/utils';
|
|
|
34
34
|
import {useOverlayTriggerState} from 'react-stately';
|
|
35
35
|
|
|
36
36
|
export type ToastPlacement = 'top' | 'top end' | 'bottom' | 'bottom end';
|
|
37
|
-
export interface ToastContainerProps extends Omit<ToastRegionProps<SpectrumToastValue>, 'queue' | 'children' | 'style' | 'className'> {
|
|
37
|
+
export interface ToastContainerProps extends Omit<ToastRegionProps<SpectrumToastValue>, 'queue' | 'children' | 'style' | 'className' | 'render'> {
|
|
38
38
|
/**
|
|
39
39
|
* Placement of the toast container on the page.
|
|
40
40
|
* @default "bottom"
|
|
@@ -446,7 +446,7 @@ function SpectrumToastList({placement, align, reduceMotion}) {
|
|
|
446
446
|
let toastListRef = useRef(null);
|
|
447
447
|
useEvent(toastListRef, 'click', (e) => {
|
|
448
448
|
// Have to check if this is a button because stopPropagation in react events doesn't affect native events.
|
|
449
|
-
if (!isExpanded && !(e
|
|
449
|
+
if (!isExpanded && !(getEventTarget(e) as Element)?.closest('button')) {
|
|
450
450
|
toggleExpanded();
|
|
451
451
|
}
|
|
452
452
|
});
|
package/src/ToggleButton.tsx
CHANGED
|
@@ -26,7 +26,7 @@ import {useFocusableRef} from '@react-spectrum/utils';
|
|
|
26
26
|
import {useFormProps} from './Form';
|
|
27
27
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
28
28
|
|
|
29
|
-
export interface ToggleButtonProps extends Omit<RACToggleButtonProps, 'className' | 'style' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ActionButtonStyleProps {
|
|
29
|
+
export interface ToggleButtonProps extends Omit<RACToggleButtonProps, 'className' | 'style' | 'render' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ActionButtonStyleProps {
|
|
30
30
|
/** The content to display in the button. */
|
|
31
31
|
children: ReactNode,
|
|
32
32
|
/** Whether the button should be displayed with an [emphasized style](https://spectrum.adobe.com/page/action-button/#Emphasis). */
|
|
@@ -16,7 +16,7 @@ import {createContext, ForwardedRef, forwardRef} from 'react';
|
|
|
16
16
|
import {DOMProps, GlobalDOMAttributes} from '@react-types/shared';
|
|
17
17
|
import {useSpectrumContextProps} from './useSpectrumContextProps';
|
|
18
18
|
|
|
19
|
-
export interface ToggleButtonGroupProps extends ActionButtonGroupProps, Omit<RACToggleButtonGroupProps, 'children' | 'style' | 'className' | keyof GlobalDOMAttributes>, DOMProps {
|
|
19
|
+
export interface ToggleButtonGroupProps extends ActionButtonGroupProps, Omit<RACToggleButtonGroupProps, 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, DOMProps {
|
|
20
20
|
/** Whether the button should be displayed with an [emphasized style](https://spectrum.adobe.com/page/action-button/#Emphasis). */
|
|
21
21
|
isEmphasized?: boolean
|
|
22
22
|
}
|
package/src/Tooltip.tsx
CHANGED
|
@@ -38,7 +38,7 @@ export interface TooltipTriggerProps extends Omit<AriaTooltipTriggerComponentPro
|
|
|
38
38
|
placement?: 'start' | 'end' | 'right' | 'left' | 'top' | 'bottom'
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export interface TooltipProps extends Omit<AriaTooltipProps, 'children' | 'className' | 'style' | 'triggerRef' | 'UNSTABLE_portalContainer' | 'isEntering' | 'isExiting' | 'placement' | 'containerPadding' | 'offset' | 'crossOffset' | 'shouldFlip' | 'arrowBoundaryOffset' | 'isOpen' | 'defaultOpen' | 'onOpenChange' | keyof GlobalDOMAttributes>, DOMProps, UnsafeStyles {
|
|
41
|
+
export interface TooltipProps extends Omit<AriaTooltipProps, 'children' | 'className' | 'style' | 'render' | 'triggerRef' | 'UNSTABLE_portalContainer' | 'isEntering' | 'isExiting' | 'placement' | 'containerPadding' | 'offset' | 'crossOffset' | 'shouldFlip' | 'arrowBoundaryOffset' | 'isOpen' | 'defaultOpen' | 'onOpenChange' | keyof GlobalDOMAttributes>, DOMProps, UnsafeStyles {
|
|
42
42
|
/** The content of the tooltip. */
|
|
43
43
|
children: ReactNode
|
|
44
44
|
}
|
package/src/TreeView.tsx
CHANGED
|
@@ -41,21 +41,24 @@ import {ProgressCircle} from './ProgressCircle';
|
|
|
41
41
|
import {raw} from '../style/style-macro' with {type: 'macro'};
|
|
42
42
|
import React, {createContext, forwardRef, JSXElementConstructor, ReactElement, ReactNode, useRef} from 'react';
|
|
43
43
|
import {Text, TextContext} from './Content';
|
|
44
|
+
import {useActionBarContainer} from './ActionBar';
|
|
44
45
|
import {useDOMRef} from '@react-spectrum/utils';
|
|
45
46
|
import {useLocale, useLocalizedStringFormatter} from 'react-aria';
|
|
46
47
|
import {useScale} from './utils';
|
|
47
48
|
|
|
48
49
|
interface S2TreeProps {
|
|
49
50
|
/** Handler that is called when a user performs an action on a row. */
|
|
50
|
-
onAction?: (key: Key) => void
|
|
51
|
+
onAction?: (key: Key) => void,
|
|
52
|
+
/** Provides the ActionBar to display when items are selected in the TreeView. */
|
|
53
|
+
renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
export interface TreeViewProps<T> extends Omit<RACTreeProps<T>, 'style' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks' | keyof GlobalDOMAttributes>, UnsafeStyles, S2TreeProps {
|
|
56
|
+
export interface TreeViewProps<T> extends Omit<RACTreeProps<T>, 'style' | 'className' | 'render' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks' | keyof GlobalDOMAttributes>, UnsafeStyles, S2TreeProps {
|
|
54
57
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
55
58
|
styles?: StylesPropWithHeight
|
|
56
59
|
}
|
|
57
60
|
|
|
58
|
-
export interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style' | 'onClick' | keyof GlobalDOMAttributes> {
|
|
61
|
+
export interface TreeViewItemProps extends Omit<RACTreeItemProps, 'className' | 'style' | 'render' | 'onClick' | keyof GlobalDOMAttributes> {
|
|
59
62
|
/** Whether this item has children, even if not loaded yet. */
|
|
60
63
|
hasChildItems?: boolean
|
|
61
64
|
}
|
|
@@ -71,6 +74,16 @@ interface TreeRendererContextValue {
|
|
|
71
74
|
const TreeRendererContext = createContext<TreeRendererContextValue>({});
|
|
72
75
|
|
|
73
76
|
|
|
77
|
+
const treeViewWrapper = style({
|
|
78
|
+
minHeight: 0,
|
|
79
|
+
minWidth: 0,
|
|
80
|
+
display: 'flex',
|
|
81
|
+
isolation: 'isolate',
|
|
82
|
+
disableTapHighlight: true,
|
|
83
|
+
position: 'relative',
|
|
84
|
+
overflow: 'clip'
|
|
85
|
+
}, getAllowedOverrides({height: true}));
|
|
86
|
+
|
|
74
87
|
// TODO: the below is needed so the borders of the top and bottom row isn't cut off if the TreeView is wrapped within a container by always reserving the 2px needed for the
|
|
75
88
|
// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't
|
|
76
89
|
// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview
|
|
@@ -94,7 +107,7 @@ const tree = style({
|
|
|
94
107
|
type: 'width',
|
|
95
108
|
value: 16
|
|
96
109
|
}
|
|
97
|
-
}
|
|
110
|
+
});
|
|
98
111
|
|
|
99
112
|
/**
|
|
100
113
|
* A tree view provides users with a way to navigate nested hierarchical information.
|
|
@@ -109,8 +122,11 @@ export const TreeView = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tr
|
|
|
109
122
|
}
|
|
110
123
|
|
|
111
124
|
let domRef = useDOMRef(ref);
|
|
125
|
+
let scrollRef = useRef<HTMLElement | null>(null);
|
|
112
126
|
|
|
113
|
-
|
|
127
|
+
let {selectedKeys, onSelectionChange, actionBar, actionBarHeight} = useActionBarContainer({...props, scrollRef});
|
|
128
|
+
|
|
129
|
+
let treeContent = (
|
|
114
130
|
<Virtualizer
|
|
115
131
|
layout={ListLayout}
|
|
116
132
|
layoutOptions={{
|
|
@@ -119,15 +135,36 @@ export const TreeView = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tr
|
|
|
119
135
|
<TreeRendererContext.Provider value={{renderer}}>
|
|
120
136
|
<Tree
|
|
121
137
|
{...props}
|
|
122
|
-
style={
|
|
123
|
-
|
|
138
|
+
style={{
|
|
139
|
+
...(!props.renderActionBar ? UNSAFE_style : {}),
|
|
140
|
+
paddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0,
|
|
141
|
+
scrollPaddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0
|
|
142
|
+
}}
|
|
143
|
+
className={renderProps => (!props.renderActionBar ? (UNSAFE_className ?? '') : '') + tree({...renderProps})}
|
|
124
144
|
selectionBehavior="toggle"
|
|
125
|
-
|
|
145
|
+
selectedKeys={selectedKeys}
|
|
146
|
+
defaultSelectedKeys={undefined}
|
|
147
|
+
onSelectionChange={onSelectionChange}
|
|
148
|
+
ref={props.renderActionBar ? (scrollRef as any) : domRef}>
|
|
126
149
|
{props.children}
|
|
127
150
|
</Tree>
|
|
128
151
|
</TreeRendererContext.Provider>
|
|
129
152
|
</Virtualizer>
|
|
130
153
|
);
|
|
154
|
+
|
|
155
|
+
if (props.renderActionBar) {
|
|
156
|
+
return (
|
|
157
|
+
<div
|
|
158
|
+
ref={domRef}
|
|
159
|
+
className={(UNSAFE_className ?? '') + treeViewWrapper(null, props.styles)}
|
|
160
|
+
style={UNSAFE_style}>
|
|
161
|
+
{treeContent}
|
|
162
|
+
{actionBar}
|
|
163
|
+
</div>
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return treeContent;
|
|
131
168
|
});
|
|
132
169
|
|
|
133
170
|
const rowBackgroundColor = {
|
|
@@ -217,7 +254,11 @@ const treeCheckbox = style({
|
|
|
217
254
|
gridArea: 'checkbox',
|
|
218
255
|
marginStart: 12,
|
|
219
256
|
marginEnd: 0,
|
|
220
|
-
paddingEnd: 0
|
|
257
|
+
paddingEnd: 0,
|
|
258
|
+
visibility: {
|
|
259
|
+
default: 'visible',
|
|
260
|
+
isDisabled: 'hidden'
|
|
261
|
+
}
|
|
221
262
|
});
|
|
222
263
|
|
|
223
264
|
const treeIcon = style({
|
|
@@ -302,7 +343,7 @@ export const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode
|
|
|
302
343
|
<div className={treeCellGrid({isDisabled, isNextSelected, isSelected, isFirst, isNextFocused})}>
|
|
303
344
|
{selectionMode !== 'none' && selectionBehavior === 'toggle' && (
|
|
304
345
|
// TODO: add transition?
|
|
305
|
-
<div className={treeCheckbox}>
|
|
346
|
+
<div className={treeCheckbox({isDisabled: isDisabled || !state.selectionManager.canSelectItem(id) || state.disabledKeys.has(id)})}>
|
|
306
347
|
<Checkbox slot="selection" />
|
|
307
348
|
</div>
|
|
308
349
|
)}
|
|
@@ -319,8 +360,8 @@ export const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode
|
|
|
319
360
|
render: centerBaseline({slot: 'icon', styles: treeIcon}),
|
|
320
361
|
styles: style({size: fontRelative(20), flexShrink: 0})
|
|
321
362
|
}],
|
|
322
|
-
[ActionButtonGroupContext, {styles: treeActions}],
|
|
323
|
-
[ActionMenuContext, {styles: treeActionMenu, isQuiet: true}]
|
|
363
|
+
[ActionButtonGroupContext, {styles: treeActions, isDisabled}],
|
|
364
|
+
[ActionMenuContext, {styles: treeActionMenu, isQuiet: true, isDisabled}]
|
|
324
365
|
]}>
|
|
325
366
|
{typeof children === 'string' ? <Text>{children}</Text> : children}
|
|
326
367
|
</Provider>
|
package/src/index.ts
CHANGED
|
@@ -37,7 +37,7 @@ export {ColorSwatch, ColorSwatchContext} from './ColorSwatch';
|
|
|
37
37
|
export {ColorSwatchPicker, ColorSwatchPickerContext} from './ColorSwatchPicker';
|
|
38
38
|
export {ColorWheel, ColorWheelContext} from './ColorWheel';
|
|
39
39
|
export {ComboBox, ComboBoxItem, ComboBoxSection, ComboBoxContext} from './ComboBox';
|
|
40
|
-
export {ContextualHelp, ContextualHelpContext} from './ContextualHelp';
|
|
40
|
+
export {ContextualHelp, ContextualHelpContext, ContextualHelpPopover} from './ContextualHelp';
|
|
41
41
|
export {DateField, DateFieldContext} from './DateField';
|
|
42
42
|
export {DatePicker, DatePickerContext} from './DatePicker';
|
|
43
43
|
export {DateRangePicker, DateRangePickerContext} from './DateRangePicker';
|
|
@@ -57,7 +57,8 @@ export {Image, ImageContext} from './Image';
|
|
|
57
57
|
export {ImageCoordinator} from './ImageCoordinator';
|
|
58
58
|
export {InlineAlert, InlineAlertContext} from './InlineAlert';
|
|
59
59
|
export {Link, LinkContext} from './Link';
|
|
60
|
-
export {
|
|
60
|
+
export {ListView, ListViewContext, ListViewItem} from './ListView';
|
|
61
|
+
export {MenuItem, MenuTrigger, Menu, MenuSection, SubmenuTrigger, UnavailableMenuItemTrigger, MenuContext} from './Menu';
|
|
61
62
|
export {Meter, MeterContext} from './Meter';
|
|
62
63
|
export {NotificationBadge, NotificationBadgeContext} from './NotificationBadge';
|
|
63
64
|
export {NumberField, NumberFieldContext} from './NumberField';
|
|
@@ -119,6 +120,7 @@ export type {ColorSwatchProps} from './ColorSwatch';
|
|
|
119
120
|
export type {ColorSwatchPickerProps} from './ColorSwatchPicker';
|
|
120
121
|
export type {ColorWheelProps} from './ColorWheel';
|
|
121
122
|
export type {ComboBoxProps, ComboBoxItemProps, ComboBoxSectionProps} from './ComboBox';
|
|
123
|
+
export type {ContextualHelpProps, ContextualHelpStyleProps, ContextualHelpPopoverProps} from './ContextualHelp';
|
|
122
124
|
export type {DateFieldProps} from './DateField';
|
|
123
125
|
export type {DatePickerProps} from './DatePicker';
|
|
124
126
|
export type {DateRangePickerProps} from './DateRangePicker';
|
|
@@ -136,7 +138,8 @@ export type {InlineAlertProps} from './InlineAlert';
|
|
|
136
138
|
export type {ImageProps} from './Image';
|
|
137
139
|
export type {ImageCoordinatorProps} from './ImageCoordinator';
|
|
138
140
|
export type {LinkProps} from './Link';
|
|
139
|
-
export type {
|
|
141
|
+
export type {ListViewProps, ListViewItemProps} from './ListView';
|
|
142
|
+
export type {MenuTriggerProps, MenuProps, MenuItemProps, MenuSectionProps, SubmenuTriggerProps, UnavailableMenuItemTriggerProps} from './Menu';
|
|
140
143
|
export type {MeterProps} from './Meter';
|
|
141
144
|
export type {NotificationBadgeProps} from './NotificationBadge';
|
|
142
145
|
export type {PickerProps, PickerItemProps, PickerSectionProps} from './Picker';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import {mergeStyles} from '../runtime';
|
|
14
|
+
import {style} from '../spectrum-theme';
|
|
15
|
+
|
|
16
|
+
function stripMacro(css) {
|
|
17
|
+
return css.replaceAll(/ -macro-static-[0-9a-zA-Z]+/gi, '').replaceAll(/ -macro-dynamic-[0-9a-zA-Z]+/gi, '');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
describe('mergeStyles', () => {
|
|
21
|
+
it('should merge styles', () => {
|
|
22
|
+
let a = style({backgroundColor: 'red-1000', color: 'pink-100'});
|
|
23
|
+
let b = style({fontSize: 'body-xs', backgroundColor: 'gray-50'});
|
|
24
|
+
let expected = style({backgroundColor: 'gray-50', color: 'pink-100', fontSize: 'body-xs'});
|
|
25
|
+
let merged = mergeStyles(a, b);
|
|
26
|
+
expect(stripMacro(merged)).toBe(stripMacro(expected.toString()));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('should merge with arbitrary values', () => {
|
|
30
|
+
let a = style({backgroundColor: 'red-1000', color: '[hotpink]'});
|
|
31
|
+
let b = style({fontSize: '[15px]', backgroundColor: 'gray-50'});
|
|
32
|
+
let expected = style({backgroundColor: 'gray-50', color: '[hotpink]', fontSize: '[15px]'});
|
|
33
|
+
let merged = mergeStyles(a, b);
|
|
34
|
+
expect(stripMacro(merged)).toBe(stripMacro(expected.toString()));
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
describe('when merging styles with macros', () => {
|
|
38
|
+
it('should not merge multiple static macro classes', () => {
|
|
39
|
+
let a = style({backgroundColor: 'red-1000', color: 'pink-100'});
|
|
40
|
+
let b = style({fontSize: 'body-xs', backgroundColor: 'gray-50'});
|
|
41
|
+
let merged = mergeStyles(a, b);
|
|
42
|
+
// expect the merged styles to include two static different macro classes within the string
|
|
43
|
+
let macroClasses = merged.match(/-macro-static-[0-9a-zA-Z]+/g);
|
|
44
|
+
expect(macroClasses).toHaveLength(2);
|
|
45
|
+
expect(macroClasses![0] !== macroClasses![1]);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should not merge multiple dynamic macro classes', () => {
|
|
49
|
+
let a = style({backgroundColor: 'red-1000', color: {default: '[hotpink]', isDisabled: 'gray-400'}});
|
|
50
|
+
let b = style({fontSize: '[15px]', backgroundColor: {default: 'gray-50', isDisabled: 'gray-400'}});
|
|
51
|
+
let merged = mergeStyles(a({isDisabled: true}), b({isDisabled: false}));
|
|
52
|
+
let macroClasses = merged.match(/-macro-dynamic-[0-9a-zA-Z]+/g);
|
|
53
|
+
expect(macroClasses).toHaveLength(2);
|
|
54
|
+
expect(macroClasses![0] !== macroClasses![1]);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('should retain both static and dynamic macro classes', () => {
|
|
58
|
+
let a = style({backgroundColor: 'red-1000', color: {default: '[hotpink]', isDisabled: 'gray-400'}});
|
|
59
|
+
let b = style({fontSize: 'body-xs', backgroundColor: 'gray-50'});
|
|
60
|
+
let merged = mergeStyles(a({isDisabled: true}), b);
|
|
61
|
+
let staticMacroClasses = merged.match(/-macro-static-[0-9a-zA-Z]+/g);
|
|
62
|
+
expect(staticMacroClasses).toHaveLength(1);
|
|
63
|
+
let dynamicMacroClasses = merged.match(/-macro-dynamic-[0-9a-zA-Z]+/g);
|
|
64
|
+
expect(dynamicMacroClasses).toHaveLength(1);
|
|
65
|
+
expect(staticMacroClasses![0] !== dynamicMacroClasses![0]);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|