@react-spectrum/s2 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/CenterBaseline.cjs +12 -0
- package/dist/exports/CenterBaseline.cjs.map +1 -0
- package/dist/exports/CenterBaseline.mjs +7 -0
- package/dist/exports/CenterBaseline.mjs.map +1 -0
- package/dist/exports/Skeleton.cjs +1 -0
- package/dist/exports/Skeleton.cjs.map +1 -1
- package/dist/exports/Skeleton.mjs +2 -2
- package/dist/exports/Skeleton.mjs.map +1 -1
- package/dist/exports/index.cjs +3 -0
- package/dist/exports/index.cjs.map +1 -1
- package/dist/exports/index.mjs +3 -1
- package/dist/exports/index.mjs.map +1 -1
- package/dist/private/Accordion.cjs +2 -2
- package/dist/private/Accordion.css +2 -2
- package/dist/private/Accordion.mjs +2 -2
- package/dist/private/ActionBar.cjs +59 -59
- package/dist/private/ActionBar.cjs.map +1 -1
- package/dist/private/ActionBar.css +58 -58
- package/dist/private/ActionBar.css.map +1 -1
- package/dist/private/ActionBar.mjs +59 -59
- package/dist/private/ActionBar.mjs.map +1 -1
- package/dist/private/ActionButton.cjs +247 -247
- package/dist/private/ActionButton.cjs.map +1 -1
- package/dist/private/ActionButton.css +169 -169
- package/dist/private/ActionButton.css.map +1 -1
- package/dist/private/ActionButton.mjs +247 -247
- package/dist/private/ActionButton.mjs.map +1 -1
- package/dist/private/ActionButtonGroup.cjs +15 -15
- package/dist/private/ActionButtonGroup.css +9 -9
- package/dist/private/ActionButtonGroup.mjs +15 -15
- package/dist/private/ActionMenu.cjs.map +1 -1
- package/dist/private/ActionMenu.mjs.map +1 -1
- package/dist/private/Add.cjs +10 -10
- package/dist/private/Add.css +6 -6
- package/dist/private/Add.mjs +10 -10
- package/dist/private/AlertDialog.cjs +3 -3
- package/dist/private/AlertDialog.cjs.map +1 -1
- package/dist/private/AlertDialog.css +3 -3
- package/dist/private/AlertDialog.css.map +1 -1
- package/dist/private/AlertDialog.mjs +3 -3
- package/dist/private/AlertDialog.mjs.map +1 -1
- package/dist/private/Asterisk.cjs +6 -6
- package/dist/private/Asterisk.css +4 -4
- package/dist/private/Asterisk.mjs +6 -6
- package/dist/private/Avatar.cjs +16 -16
- package/dist/private/Avatar.css +16 -16
- package/dist/private/Avatar.mjs +16 -16
- package/dist/private/AvatarGroup.cjs +120 -120
- package/dist/private/AvatarGroup.css +31 -31
- package/dist/private/AvatarGroup.mjs +120 -120
- package/dist/private/Badge.cjs +197 -197
- package/dist/private/Badge.css +125 -125
- package/dist/private/Badge.mjs +197 -197
- package/dist/private/Breadcrumbs.cjs +234 -234
- package/dist/private/Breadcrumbs.cjs.map +1 -1
- package/dist/private/Breadcrumbs.css +100 -100
- package/dist/private/Breadcrumbs.css.map +1 -1
- package/dist/private/Breadcrumbs.mjs +234 -234
- package/dist/private/Breadcrumbs.mjs.map +1 -1
- package/dist/private/Button.cjs +335 -326
- package/dist/private/Button.cjs.map +1 -1
- package/dist/private/Button.css +176 -172
- package/dist/private/Button.css.map +1 -1
- package/dist/private/Button.mjs +335 -326
- package/dist/private/Button.mjs.map +1 -1
- package/dist/private/ButtonGroup.cjs +23 -20
- package/dist/private/ButtonGroup.cjs.map +1 -1
- package/dist/private/ButtonGroup.css +19 -15
- package/dist/private/ButtonGroup.css.map +1 -1
- package/dist/private/ButtonGroup.mjs +23 -20
- package/dist/private/ButtonGroup.mjs.map +1 -1
- package/dist/private/Calendar.cjs +232 -232
- package/dist/private/Calendar.cjs.map +1 -1
- package/dist/private/Calendar.css +149 -149
- package/dist/private/Calendar.css.map +1 -1
- package/dist/private/Calendar.mjs +232 -232
- package/dist/private/Calendar.mjs.map +1 -1
- package/dist/private/Card.cjs +309 -309
- package/dist/private/Card.css +206 -206
- package/dist/private/Card.mjs +309 -309
- package/dist/private/CardView.cjs +17 -17
- package/dist/private/CardView.css +17 -17
- package/dist/private/CardView.mjs +17 -17
- package/dist/private/CenterBaseline.cjs +1 -1
- package/dist/private/CenterBaseline.cjs.map +1 -1
- package/dist/private/CenterBaseline.css +2 -2
- package/dist/private/CenterBaseline.css.map +1 -1
- package/dist/private/CenterBaseline.mjs +1 -1
- package/dist/private/CenterBaseline.mjs.map +1 -1
- package/dist/private/Checkbox.cjs +188 -188
- package/dist/private/Checkbox.css +110 -110
- package/dist/private/Checkbox.mjs +188 -188
- package/dist/private/CheckboxGroup.cjs +43 -43
- package/dist/private/CheckboxGroup.css +37 -37
- package/dist/private/CheckboxGroup.mjs +43 -43
- package/dist/private/Checkmark.cjs +12 -12
- package/dist/private/Checkmark.css +8 -8
- package/dist/private/Checkmark.mjs +12 -12
- package/dist/private/Chevron.cjs +12 -12
- package/dist/private/Chevron.css +10 -10
- package/dist/private/Chevron.mjs +12 -12
- package/dist/private/ClearButton.cjs +30 -30
- package/dist/private/ClearButton.css +30 -30
- package/dist/private/ClearButton.mjs +30 -30
- package/dist/private/CloseButton.cjs +52 -52
- package/dist/private/CloseButton.cjs.map +1 -1
- package/dist/private/CloseButton.css +46 -46
- package/dist/private/CloseButton.css.map +1 -1
- package/dist/private/CloseButton.mjs +52 -52
- package/dist/private/CloseButton.mjs.map +1 -1
- package/dist/private/ColorArea.cjs +16 -16
- package/dist/private/ColorArea.css +16 -16
- package/dist/private/ColorArea.mjs +16 -16
- package/dist/private/ColorField.cjs +31 -31
- package/dist/private/ColorField.css +27 -27
- package/dist/private/ColorField.mjs +31 -31
- package/dist/private/ColorHandle.cjs +27 -27
- package/dist/private/ColorHandle.css +42 -42
- package/dist/private/ColorHandle.mjs +27 -27
- package/dist/private/ColorSlider.cjs +108 -108
- package/dist/private/ColorSlider.css +52 -52
- package/dist/private/ColorSlider.mjs +108 -108
- package/dist/private/ColorSwatch.cjs +29 -29
- package/dist/private/ColorSwatch.css +29 -29
- package/dist/private/ColorSwatch.mjs +29 -29
- package/dist/private/ColorSwatchPicker.cjs +29 -29
- package/dist/private/ColorSwatchPicker.css +48 -48
- package/dist/private/ColorSwatchPicker.mjs +29 -29
- package/dist/private/ColorWheel.cjs +26 -26
- package/dist/private/ColorWheel.css +17 -17
- package/dist/private/ColorWheel.mjs +26 -26
- package/dist/private/ComboBox.cjs +381 -381
- package/dist/private/ComboBox.cjs.map +1 -1
- package/dist/private/ComboBox.css +188 -188
- package/dist/private/ComboBox.css.map +1 -1
- package/dist/private/ComboBox.mjs +381 -381
- package/dist/private/ComboBox.mjs.map +1 -1
- package/dist/private/ContextualHelp.cjs +5 -5
- package/dist/private/ContextualHelp.cjs.map +1 -1
- package/dist/private/ContextualHelp.css +50 -50
- package/dist/private/ContextualHelp.css.map +1 -1
- package/dist/private/ContextualHelp.mjs +5 -5
- package/dist/private/ContextualHelp.mjs.map +1 -1
- package/dist/private/CornerTriangle.cjs +8 -8
- package/dist/private/CornerTriangle.css +6 -6
- package/dist/private/CornerTriangle.mjs +8 -8
- package/dist/private/Cross.cjs +14 -14
- package/dist/private/Cross.css +10 -10
- package/dist/private/Cross.mjs +14 -14
- package/dist/private/CustomDialog.cjs +25 -25
- package/dist/private/CustomDialog.css +25 -25
- package/dist/private/CustomDialog.mjs +25 -25
- package/dist/private/Dash.cjs +10 -10
- package/dist/private/Dash.css +6 -6
- package/dist/private/Dash.mjs +10 -10
- package/dist/private/DateField.cjs +73 -73
- package/dist/private/DateField.css +77 -77
- package/dist/private/DateField.mjs +73 -73
- package/dist/private/DatePicker.cjs +172 -172
- package/dist/private/DatePicker.cjs.map +1 -1
- package/dist/private/DatePicker.css +128 -128
- package/dist/private/DatePicker.css.map +1 -1
- package/dist/private/DatePicker.mjs +172 -172
- package/dist/private/DatePicker.mjs.map +1 -1
- package/dist/private/DateRangePicker.cjs +55 -55
- package/dist/private/DateRangePicker.cjs.map +1 -1
- package/dist/private/DateRangePicker.css +59 -59
- package/dist/private/DateRangePicker.css.map +1 -1
- package/dist/private/DateRangePicker.mjs +55 -55
- package/dist/private/DateRangePicker.mjs.map +1 -1
- package/dist/private/Dialog.cjs +17 -17
- package/dist/private/Dialog.css +70 -70
- package/dist/private/Dialog.mjs +17 -17
- package/dist/private/Disclosure.cjs +144 -122
- package/dist/private/Disclosure.cjs.map +1 -1
- package/dist/private/Disclosure.css +112 -112
- package/dist/private/Disclosure.css.map +1 -1
- package/dist/private/Disclosure.mjs +144 -122
- package/dist/private/Disclosure.mjs.map +1 -1
- package/dist/private/Divider.cjs +25 -25
- package/dist/private/Divider.css +25 -25
- package/dist/private/Divider.mjs +25 -25
- package/dist/private/DragHandle.cjs +8 -8
- package/dist/private/DragHandle.css +6 -6
- package/dist/private/DragHandle.mjs +8 -8
- package/dist/private/DragPreview.cjs +154 -154
- package/dist/private/DragPreview.css +106 -106
- package/dist/private/DragPreview.mjs +154 -154
- package/dist/private/DropZone.cjs +61 -61
- package/dist/private/DropZone.cjs.map +1 -1
- package/dist/private/DropZone.css +57 -57
- package/dist/private/DropZone.css.map +1 -1
- package/dist/private/DropZone.mjs +61 -61
- package/dist/private/DropZone.mjs.map +1 -1
- package/dist/private/Field.cjs +360 -360
- package/dist/private/Field.cjs.map +1 -1
- package/dist/private/Field.css +160 -160
- package/dist/private/Field.css.map +1 -1
- package/dist/private/Field.mjs +360 -360
- package/dist/private/Field.mjs.map +1 -1
- package/dist/private/Form.cjs +9 -9
- package/dist/private/Form.css +9 -9
- package/dist/private/Form.mjs +9 -9
- package/dist/private/FullscreenDialog.cjs +5 -5
- package/dist/private/FullscreenDialog.css +78 -78
- package/dist/private/FullscreenDialog.mjs +5 -5
- package/dist/private/IllustratedMessage.cjs +228 -228
- package/dist/private/IllustratedMessage.css +72 -72
- package/dist/private/IllustratedMessage.mjs +228 -228
- package/dist/private/Image.cjs +14 -14
- package/dist/private/Image.css +14 -14
- package/dist/private/Image.mjs +14 -14
- package/dist/private/InlineAlert.cjs +100 -100
- package/dist/private/InlineAlert.cjs.map +1 -1
- package/dist/private/InlineAlert.css +76 -76
- package/dist/private/InlineAlert.css.map +1 -1
- package/dist/private/InlineAlert.mjs +100 -100
- package/dist/private/InlineAlert.mjs.map +1 -1
- package/dist/private/LabeledValue.cjs +134 -134
- package/dist/private/LabeledValue.css +63 -63
- package/dist/private/LabeledValue.mjs +134 -134
- package/dist/private/Link.cjs +49 -49
- package/dist/private/Link.css +41 -41
- package/dist/private/Link.mjs +49 -49
- package/dist/private/LinkOut.cjs +8 -8
- package/dist/private/LinkOut.css +8 -8
- package/dist/private/LinkOut.mjs +8 -8
- package/dist/private/ListView.cjs +245 -245
- package/dist/private/ListView.cjs.map +1 -1
- package/dist/private/ListView.css +177 -177
- package/dist/private/ListView.css.map +1 -1
- package/dist/private/ListView.mjs +245 -245
- package/dist/private/ListView.mjs.map +1 -1
- package/dist/private/Menu.cjs +446 -446
- package/dist/private/Menu.cjs.map +1 -1
- package/dist/private/Menu.css +196 -196
- package/dist/private/Menu.css.map +1 -1
- package/dist/private/Menu.mjs +446 -446
- package/dist/private/Menu.mjs.map +1 -1
- package/dist/private/Meter.cjs +153 -153
- package/dist/private/Meter.css +91 -91
- package/dist/private/Meter.mjs +153 -153
- package/dist/private/Modal.cjs +74 -74
- package/dist/private/Modal.css +59 -59
- package/dist/private/Modal.mjs +74 -74
- package/dist/private/NotificationBadge.cjs +56 -56
- package/dist/private/NotificationBadge.cjs.map +1 -1
- package/dist/private/NotificationBadge.css +49 -49
- package/dist/private/NotificationBadge.css.map +1 -1
- package/dist/private/NotificationBadge.mjs +56 -56
- package/dist/private/NotificationBadge.mjs.map +1 -1
- package/dist/private/NumberField.cjs +114 -114
- package/dist/private/NumberField.css +99 -99
- package/dist/private/NumberField.mjs +114 -114
- package/dist/private/Picker.cjs +275 -275
- package/dist/private/Picker.cjs.map +1 -1
- package/dist/private/Picker.css +173 -173
- package/dist/private/Picker.css.map +1 -1
- package/dist/private/Picker.mjs +275 -275
- package/dist/private/Picker.mjs.map +1 -1
- package/dist/private/Popover.cjs +95 -95
- package/dist/private/Popover.cjs.map +1 -1
- package/dist/private/Popover.css +75 -75
- package/dist/private/Popover.css.map +1 -1
- package/dist/private/Popover.mjs +95 -95
- package/dist/private/Popover.mjs.map +1 -1
- package/dist/private/ProgressBar.cjs +163 -163
- package/dist/private/ProgressBar.css +99 -99
- package/dist/private/ProgressBar.mjs +163 -163
- package/dist/private/ProgressCircle.cjs +34 -31
- package/dist/private/ProgressCircle.cjs.map +1 -1
- package/dist/private/ProgressCircle.css +24 -24
- package/dist/private/ProgressCircle.css.map +1 -1
- package/dist/private/ProgressCircle.mjs +34 -31
- package/dist/private/ProgressCircle.mjs.map +1 -1
- package/dist/private/Provider.cjs +19 -19
- package/dist/private/Provider.css +15 -15
- package/dist/private/Provider.mjs +19 -19
- package/dist/private/RadioGroup.cjs +208 -208
- package/dist/private/RadioGroup.css +113 -113
- package/dist/private/RadioGroup.mjs +208 -208
- package/dist/private/RangeCalendar.cjs +16 -16
- package/dist/private/RangeCalendar.cjs.map +1 -1
- package/dist/private/RangeCalendar.css +17 -17
- package/dist/private/RangeCalendar.css.map +1 -1
- package/dist/private/RangeCalendar.mjs +16 -16
- package/dist/private/RangeCalendar.mjs.map +1 -1
- package/dist/private/RangeSlider.cjs.map +1 -1
- package/dist/private/RangeSlider.mjs.map +1 -1
- package/dist/private/SearchField.cjs +41 -41
- package/dist/private/SearchField.css +45 -45
- package/dist/private/SearchField.mjs +41 -41
- package/dist/private/SegmentedControl.cjs +178 -178
- package/dist/private/SegmentedControl.css +123 -123
- package/dist/private/SegmentedControl.mjs +178 -178
- package/dist/private/SelectBoxGroup.cjs +142 -142
- package/dist/private/SelectBoxGroup.css +120 -120
- package/dist/private/SelectBoxGroup.mjs +142 -142
- package/dist/private/Slider.cjs +292 -292
- package/dist/private/Slider.css +159 -159
- package/dist/private/Slider.mjs +292 -292
- package/dist/private/StatusLight.cjs +115 -115
- package/dist/private/StatusLight.css +59 -59
- package/dist/private/StatusLight.mjs +115 -115
- package/dist/private/Switch.cjs +171 -171
- package/dist/private/Switch.css +85 -85
- package/dist/private/Switch.mjs +171 -171
- package/dist/private/TableView.cjs +551 -534
- package/dist/private/TableView.cjs.map +1 -1
- package/dist/private/TableView.css +329 -303
- package/dist/private/TableView.css.map +1 -1
- package/dist/private/TableView.mjs +551 -534
- package/dist/private/TableView.mjs.map +1 -1
- package/dist/private/Tabs.cjs +131 -125
- package/dist/private/Tabs.cjs.map +1 -1
- package/dist/private/Tabs.css +105 -105
- package/dist/private/Tabs.css.map +1 -1
- package/dist/private/Tabs.mjs +131 -125
- package/dist/private/Tabs.mjs.map +1 -1
- package/dist/private/TabsPicker.cjs +127 -127
- package/dist/private/TabsPicker.css +108 -108
- package/dist/private/TabsPicker.mjs +127 -127
- package/dist/private/TagGroup.cjs +203 -203
- package/dist/private/TagGroup.cjs.map +1 -1
- package/dist/private/TagGroup.css +146 -146
- package/dist/private/TagGroup.css.map +1 -1
- package/dist/private/TagGroup.mjs +203 -203
- package/dist/private/TagGroup.mjs.map +1 -1
- package/dist/private/TextField.cjs +58 -58
- package/dist/private/TextField.css +54 -54
- package/dist/private/TextField.mjs +58 -58
- package/dist/private/TimeField.cjs +51 -51
- package/dist/private/TimeField.css +47 -47
- package/dist/private/TimeField.mjs +51 -51
- package/dist/private/Toast.cjs +120 -120
- package/dist/private/Toast.cjs.map +1 -1
- package/dist/private/Toast.css +110 -110
- package/dist/private/Toast.css.map +1 -1
- package/dist/private/Toast.mjs +120 -120
- package/dist/private/Toast.mjs.map +1 -1
- package/dist/private/ToggleButton.cjs +16 -16
- package/dist/private/ToggleButton.css +23 -23
- package/dist/private/ToggleButton.mjs +16 -16
- package/dist/private/Tooltip.cjs +86 -86
- package/dist/private/Tooltip.css +70 -70
- package/dist/private/Tooltip.mjs +86 -86
- package/dist/private/TreeView.cjs +229 -229
- package/dist/private/TreeView.cjs.map +1 -1
- package/dist/private/TreeView.css +184 -184
- package/dist/private/TreeView.css.map +1 -1
- package/dist/private/TreeView.mjs +229 -229
- package/dist/private/TreeView.mjs.map +1 -1
- package/dist/private/dnd-utils.cjs +42 -42
- package/dist/private/dnd-utils.css +39 -39
- package/dist/private/dnd-utils.mjs +42 -42
- package/dist/types/exports/CenterBaseline.d.ts +1 -0
- package/dist/types/exports/Skeleton.d.ts +1 -1
- package/dist/types/exports/index.d.ts +1 -0
- package/dist/types/src/CenterBaseline.d.ts +17 -0
- package/dist/types/src/ContextualHelp.d.ts +1 -1
- package/dist/types/src/Disclosure.d.ts +6 -1
- package/dist/types/src/ListView.d.ts +1 -1
- package/dist/types/src/Menu.d.ts +1 -1
- package/dist/types/src/Popover.d.ts +2 -2
- package/dist/types/src/style-utils.d.ts +4 -1
- package/exports/CenterBaseline.ts +1 -0
- package/exports/Skeleton.ts +1 -1
- package/exports/index.ts +2 -0
- package/icons/Icon.cjs +10 -10
- package/icons/Icon.css +9 -9
- package/icons/Icon.mjs +10 -10
- package/icons/Skeleton.cjs +2 -2
- package/icons/Skeleton.css +6 -6
- package/icons/Skeleton.mjs +2 -2
- package/package.json +6 -6
- package/src/ActionBar.tsx +0 -1
- package/src/ActionButton.tsx +0 -1
- package/src/ActionMenu.tsx +0 -1
- package/src/AlertDialog.tsx +0 -1
- package/src/Breadcrumbs.tsx +0 -4
- package/src/Button.tsx +12 -3
- package/src/ButtonGroup.tsx +1 -0
- package/src/Calendar.tsx +0 -1
- package/src/CenterBaseline.tsx +17 -0
- package/src/CloseButton.tsx +0 -1
- package/src/ComboBox.tsx +0 -1
- package/src/ContextualHelp.tsx +1 -2
- package/src/DatePicker.tsx +0 -1
- package/src/DateRangePicker.tsx +0 -1
- package/src/Disclosure.tsx +92 -79
- package/src/DropZone.tsx +0 -1
- package/src/Field.tsx +0 -1
- package/src/InlineAlert.tsx +0 -1
- package/src/ListView.tsx +0 -2
- package/src/Menu.tsx +1 -8
- package/src/NotificationBadge.tsx +0 -1
- package/src/Picker.tsx +0 -1
- package/src/Popover.tsx +2 -1
- package/src/ProgressCircle.tsx +1 -1
- package/src/RangeCalendar.tsx +0 -1
- package/src/RangeSlider.tsx +0 -1
- package/src/TableView.tsx +75 -37
- package/src/Tabs.tsx +9 -2
- package/src/TagGroup.tsx +0 -1
- package/src/Toast.tsx +0 -3
- package/src/TreeView.tsx +0 -1
- package/src/style-utils.ts +13 -2
- package/style/__tests__/style-macro.test.js +73 -71
- package/style/dist/main.cjs +25 -25
- package/style/dist/module.mjs +13 -13
- package/style/dist/properties.mjs +3 -3
- package/style/dist/spectrum-theme.cjs +224 -224
- package/style/dist/spectrum-theme.mjs +217 -217
- package/style/dist/style-macro.cjs +100 -100
- package/style/dist/style-macro.mjs +94 -94
- package/style/dist/style-utils.cjs +51 -39
- package/style/dist/style-utils.cjs.map +1 -1
- package/style/dist/style-utils.mjs +50 -38
- package/style/dist/style-utils.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/TreeView.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButtonGroupContext} from './ActionButtonGroup';\nimport {ActionMenuContext} from './ActionMenu';\nimport {\n baseColor,\n color,\n colorMix,\n focusRing,\n fontRelative,\n style\n} from '../style' with {type: 'macro'};\nimport {Button, ButtonContext} from 'react-aria-components/Button';\nimport {centerBaseline} from './CenterBaseline';\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {css} from '../style/style-macro' with {type: 'macro'};\nimport {\n DOMRef,\n forwardRefType,\n GlobalDOMAttributes,\n ItemDropTarget,\n Key,\n LoadingState\n} from '@react-types/shared';\nimport {DragHandleButton, InsertionIndicator} from './dnd-utils';\nimport {DragPreview} from './DragPreview';\nimport {\n getAllowedOverrides,\n StylesPropWithHeight,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {IconContext} from './Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {ProgressCircle} from './ProgressCircle';\nimport {Provider, useContextProps} from 'react-aria-components/slots';\nimport {\n TreeItemProps as RACTreeItemProps,\n TreeProps as RACTreeProps,\n Tree,\n TreeItem,\n TreeItemContent,\n TreeItemContentProps,\n TreeItemRenderProps,\n TreeLoadMoreItem,\n TreeLoadMoreItemProps,\n TreeRenderProps\n} from 'react-aria-components/Tree';\nimport React, {\n createContext,\n forwardRef,\n JSXElementConstructor,\n ReactElement,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {S2ListLayout} from './ListView';\nimport {Text, TextContext} from './Content';\nimport {TreeState} from 'react-stately/useTreeState';\nimport {useActionBarContainer} from './ActionBar';\nimport {useDOMRef} from './useDOMRef';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useScale} from './utils';\nimport {Virtualizer} from 'react-aria-components/Virtualizer';\n\ninterface S2TreeProps {\n /** Handler that is called when a user performs an action on a row. */\n onAction?: (key: Key) => void;\n /** Provides the ActionBar to display when items are selected in the TreeView. */\n renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement;\n}\n\ninterface TreeViewStyleProps {\n /**\n * How selection should be displayed. For guidance on when to use which option, refer to the\n * [Spectrum](https://spectrum.adobe.com/page/tree-view/#Checkbox-or-highlight-selection-style)\n * page.\n *\n * @default 'checkbox'\n */\n selectionStyle?: 'highlight' | 'checkbox';\n}\n\nexport interface TreeViewProps<T>\n extends\n Omit<\n RACTreeProps<T>,\n | 'style'\n | 'className'\n | 'render'\n | 'onRowAction'\n | 'selectionBehavior'\n | 'onScroll'\n | 'onCellAction'\n | keyof GlobalDOMAttributes\n >,\n UnsafeStyles,\n S2TreeProps,\n TreeViewStyleProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n}\n\nexport interface TreeViewItemProps extends Omit<\n RACTreeItemProps,\n 'className' | 'style' | 'render' | 'onClick' | keyof GlobalDOMAttributes\n> {\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean;\n}\n\nexport interface TreeViewLoadMoreItemProps extends Pick<TreeLoadMoreItemProps, 'onLoadMore'> {\n /** The current loading state of the TreeView or TreeView row. */\n loadingState?: LoadingState;\n}\n\ninterface TreeRendererContextValue {\n renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>;\n}\nconst TreeRendererContext = createContext<TreeRendererContextValue>({});\n\nconst treeViewWrapper = style(\n {\n minHeight: 0,\n height: 'full',\n minWidth: 160,\n display: 'flex',\n isolation: 'isolate',\n disableTapHighlight: true,\n position: 'relative',\n overflow: 'clip',\n '--indicator-level-padding': {\n type: 'width',\n value: {\n // 4 (start gap) + 10 (drag handle) + (hasCheckbox ? 16 + 8 : 0) + 40 (expand button)\n // keep in sync with treeCellGrid gridTemplateColumns\n default: 54,\n hasCheckbox: 78\n }\n },\n '--root-drop-radius': {\n type: 'borderTopStartRadius',\n value: 'sm'\n }\n },\n getAllowedOverrides({height: true})\n);\n\n// TODO: can't use border cuz it means the contents of the tree are no longer\n// flush with its container. Outline and box shadow are affected by the outlineOffset we\n// have in the tree styles and result in the rows clipping the drop outline. This approach\n// avoids that\nconst rootDropOutline = css(`\n &:has([role=\"treegrid\"][data-drop-target])::after {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border: 2px solid ${color('blue-800')};\n border-radius: var(--root-drop-radius);\n z-index: 2;\n }\n @media (forced-colors: active) {\n &:has([role=\"treegrid\"][data-drop-target])::after {\n border-color: Highlight;\n }\n }\n`);\n\n// These are the same as ListView. we didn't have v3 tree dnd and dont have designs so to be adjusted later\nconst dropTargetBackground = colorMix('gray-25', 'blue-900', 10);\nconst rootDropSelectedRowBackground = colorMix('gray-25', 'blue-900', 28);\nconst rowDropBackground = colorMix('gray-25', 'blue-900', 10);\nconst rootRowDropStyles = {\n default: dropTargetBackground,\n isSelected: rootDropSelectedRowBackground,\n forcedColors: 'Background'\n} as const;\nconst rowDropStyles = {\n default: rowDropBackground,\n isSelected: rowDropBackground,\n forcedColors: 'Background'\n} as const;\n\n// 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\n// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't\n// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview\nconst tree = style<TreeRenderProps>({\n ...focusRing(),\n outlineOffset: -2, // make certain we are visible inside overflow hidden containers\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n width: 'full',\n height: 'full',\n overflow: 'auto',\n boxSizing: 'border-box',\n backgroundColor: {\n isDropTarget: {\n default: dropTargetBackground,\n forcedColors: 'Background'\n }\n },\n justifyContent: {\n isEmpty: 'center'\n },\n alignItems: {\n isEmpty: 'center'\n },\n '--indent': {\n type: 'width',\n value: 16\n }\n});\n\nlet InternalTreeViewContext = createContext<{selectionStyle?: 'highlight' | 'checkbox'}>({});\n\n/**\n * A tree view provides users with a way to navigate nested hierarchical information.\n */\nexport const TreeView = /*#__PURE__*/ (forwardRef as forwardRefType)(function TreeView<T>(\n props: TreeViewProps<T>,\n ref: DOMRef<HTMLDivElement>\n) {\n let {\n children,\n selectionStyle = 'checkbox',\n UNSAFE_className,\n UNSAFE_style,\n dragAndDropHooks\n } = props;\n let scale = useScale();\n\n if (dragAndDropHooks && dragAndDropHooks.renderDragPreview == null) {\n dragAndDropHooks.renderDragPreview = items => <DragPreview items={items} />;\n }\n\n let hasCheckbox = props.selectionMode !== 'none' && selectionStyle !== 'highlight';\n\n if (dragAndDropHooks) {\n dragAndDropHooks.renderDropIndicator = target => (\n <InsertionIndicator target={target as ItemDropTarget} />\n );\n }\n let renderer;\n if (typeof children === 'function') {\n renderer = children;\n }\n\n let domRef = useDOMRef(ref);\n let scrollRef = useRef<HTMLDivElement | null>(null);\n\n let {selectedKeys, onSelectionChange, actionBar, actionBarHeight} = useActionBarContainer({\n ...props,\n scrollRef\n });\n\n return (\n <div\n ref={domRef}\n className={\n (UNSAFE_className ?? '') +\n treeViewWrapper({hasCheckbox}, props.styles) +\n ' ' +\n rootDropOutline\n }\n style={UNSAFE_style}>\n <Virtualizer\n layout={S2ListLayout}\n layoutOptions={{\n rowHeight: scale === 'large' ? 50 : 40,\n dropIndicatorThickness: 0\n }}>\n <TreeRendererContext.Provider value={{renderer}}>\n <InternalTreeViewContext.Provider value={{selectionStyle}}>\n <Tree\n {...props}\n dragAndDropHooks={dragAndDropHooks}\n style={{\n paddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0,\n scrollPaddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0\n }}\n className={renderProps => tree(renderProps)}\n selectionBehavior={selectionStyle === 'highlight' ? 'replace' : 'toggle'}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={undefined}\n onSelectionChange={onSelectionChange}\n ref={scrollRef}>\n {props.children}\n </Tree>\n </InternalTreeViewContext.Provider>\n </TreeRendererContext.Provider>\n </Virtualizer>\n {actionBar}\n </div>\n );\n});\n\nconst rowBackgroundColor = {\n default: '--s2-container-bg',\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),\n isHovered: colorMix('gray-25', 'gray-900', 7),\n isPressed: colorMix('gray-25', 'gray-900', 7),\n isSelected: {\n default: colorMix('gray-25', 'gray-900', 7),\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 10),\n isHovered: colorMix('gray-25', 'gray-900', 10),\n isPressed: colorMix('gray-25', 'gray-900', 10)\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst treeRow = style<TreeItemRenderProps & {isLink?: boolean; isPreviousSelected?: boolean}>({\n outlineStyle: {\n default: 'none',\n isDropTarget: 'solid'\n },\n outlineWidth: {\n isDropTarget: 2\n },\n outlineOffset: {\n isDropTarget: -2\n },\n outlineColor: {\n isDropTarget: 'blue-800',\n forcedColors: {\n isDropTarget: 'Highlight'\n }\n },\n position: 'relative',\n display: 'flex',\n height: 40,\n width: 'full',\n boxSizing: 'border-box',\n font: 'ui',\n color: {\n default: baseColor('neutral-subdued'),\n isSelected: baseColor('neutral'),\n forcedColors: 'ButtonText'\n },\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--borderRadiusTreeItem': {\n type: 'borderTopStartRadius',\n value: 'sm'\n },\n borderRadius: 'sm'\n});\n\nconst treeCellGrid = style({\n display: 'grid',\n width: 'full',\n height: 'full',\n boxSizing: 'border-box',\n borderRadius: 'sm',\n alignContent: 'center',\n alignItems: 'center',\n // TODO: will have to update these to match design\n gridTemplateColumns: [\n 4,\n 'auto',\n 'auto',\n 'auto',\n 'auto',\n 'auto',\n '1fr',\n 'minmax(0, auto)',\n 'auto'\n ],\n gridTemplateRows: '1fr',\n gridTemplateAreas: [\n '. drag-handle checkbox level-padding expand-button icon content actions actionmenu'\n ],\n paddingEnd: 4, // account for any focus rings on the last item in the cell\n color: {\n isDisabled: {\n default: 'gray-400',\n forcedColors: 'GrayText'\n },\n forcedColors: 'ButtonText',\n selectionStyle: {\n highlight: {\n isSelected: {\n forcedColors: 'HighlightText'\n }\n }\n }\n },\n '--rowSelectedBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'gray-800',\n isFocusVisible: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--rowForcedFocusBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--borderColor': {\n type: 'borderColor',\n value: {\n default: 'transparent',\n selectionStyle: {\n highlight: 'blue-900'\n },\n forcedColors: 'ButtonBorder'\n }\n },\n forcedColorAdjust: 'none'\n});\n\nconst treeRowBackground = style({\n position: 'absolute',\n zIndex: -1,\n inset: 0,\n backgroundColor: {\n default: '--rowBackgroundColor',\n forcedColors: 'Background',\n selectionStyle: {\n highlight: {\n default: '--rowBackgroundColor',\n isSelected: {\n default: colorMix('gray-25', 'blue-900', 10),\n isHovered: colorMix('gray-25', 'blue-900', 15),\n isPressed: colorMix('gray-25', 'blue-900', 15),\n isFocusVisible: colorMix('gray-25', 'blue-900', 15),\n forcedColors: 'Highlight'\n }\n }\n },\n ':is([role=\"treegrid\"][data-drop-target] *)': rootRowDropStyles,\n isDropTarget: rowDropStyles\n },\n borderTopStartRadius: {\n default: '--borderRadiusTreeItem',\n isPreviousSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderTopEndRadius: {\n default: '--borderRadiusTreeItem',\n isPreviousSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderBottomStartRadius: {\n default: '--borderRadiusTreeItem',\n isNextSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderBottomEndRadius: {\n default: '--borderRadiusTreeItem',\n isNextSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderTopWidth: {\n default: 1,\n isPreviousSelected: 0\n },\n borderBottomWidth: {\n default: 1,\n isNextSelected: 0\n },\n borderStartWidth: 1,\n borderEndWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: 'transparent',\n isSelected: '--borderColor'\n }\n});\n\nconst treeCheckbox = style({\n gridArea: 'checkbox',\n marginStart: 8,\n marginEnd: 0,\n paddingEnd: 0,\n visibility: {\n default: 'visible',\n isDisabled: 'hidden'\n }\n});\n\nconst treeIcon = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst treeContent = style({\n gridArea: 'content',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n});\n\nconst treeActions = style({\n gridArea: 'actions',\n /* TODO: I made this one up, confirm desired behavior. These paddings are to make sure the action group has enough padding for the focus ring */\n marginStart: 2,\n marginEnd: 4\n});\n\nconst treeActionMenu = style({\n gridArea: 'actionmenu'\n});\n\nconst treeDragButtonContainer = style({\n gridArea: 'drag-handle',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 10\n});\n\nlet treeRowFocusRing = style({\n ...focusRing(),\n outlineOffset: {\n default: -2,\n forcedColors: -3\n },\n outlineWidth: {\n default: 2,\n forcedColors: '[3px]'\n },\n outlineColor: {\n default: 'focus-ring',\n forcedColors: 'Highlight',\n selectionStyle: {\n highlight: {\n default: 'focus-ring',\n forcedColors: 'ButtonBorder'\n }\n }\n },\n position: 'absolute',\n inset: 0,\n top: {\n default: '[-1px]',\n isFirstItem: 0\n },\n bottom: {\n selectionStyle: {\n checkbox: 0,\n highlight: {\n default: 0,\n isNextSelected: '[-1px]',\n isSelected: {\n default: 0,\n isNextSelected: 0\n }\n }\n }\n },\n borderRadius: 'sm',\n zIndex: 1,\n pointerEvents: 'none'\n});\n\nexport const TreeViewItem = (props: TreeViewItemProps): ReactNode => {\n let {href} = props;\n\n return (\n <TreeItem\n {...props}\n className={renderProps =>\n treeRow({\n ...renderProps,\n isLink: !!href\n })\n }\n />\n );\n};\n\nexport interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {\n /** Rendered contents of the tree item or child items. */\n children: ReactNode;\n}\n\nexport const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode => {\n let {children} = props;\n let scale = useScale();\n\n let {selectionStyle} = useContext(InternalTreeViewContext);\n\n return (\n <TreeItemContent>\n {({\n isExpanded,\n hasChildItems,\n selectionMode,\n selectionBehavior,\n isDisabled,\n isSelected,\n id,\n state,\n isHovered,\n isFocusVisible,\n isFocusVisibleWithin,\n allowsDragging,\n isDropTarget\n }) => {\n return (\n <div\n className={treeCellGrid({\n isDisabled,\n isNextSelected: isNextSelected(id, state),\n isSelected,\n selectionStyle\n })}>\n <div\n className={treeRowBackground({\n isHovered,\n isFocusVisible,\n isSelected,\n selectionStyle,\n isNextSelected: isNextSelected(id, state),\n isPreviousSelected: isPrevSelected(id, state),\n isDropTarget\n })}\n />\n {isFocusVisible && (\n <div\n className={treeRowFocusRing({\n isFocusVisible,\n selectionStyle,\n isSelected,\n isNextSelected: isNextSelected(id, state),\n isFirstItem: isFirstItem(id, state)\n })}\n />\n )}\n {allowsDragging && (\n <div className={treeDragButtonContainer}>\n {!isDisabled && <DragHandleButton isFocusVisibleWithin={isFocusVisibleWithin} />}\n </div>\n )}\n {selectionMode !== 'none' &&\n selectionBehavior === 'toggle' &&\n selectionStyle !== 'highlight' && (\n // TODO: add transition?\n <div\n className={treeCheckbox({\n isDisabled:\n isDisabled ||\n !state.selectionManager.canSelectItem(id) ||\n state.disabledKeys.has(id)\n })}>\n <Checkbox slot=\"selection\" />\n </div>\n )}\n <div\n className={style({\n gridArea: 'level-padding',\n width: 'calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))'\n })}\n />\n <ExpandableRowChevron\n isDisabled={isDisabled}\n isExpanded={isExpanded}\n scale={scale}\n isHidden={!hasChildItems}\n />\n <Provider\n values={[\n [TextContext, {styles: treeContent}],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: treeIcon}),\n styles: style({size: fontRelative(20), flexShrink: 0})\n }\n ],\n [ActionButtonGroupContext, {styles: treeActions, isDisabled}],\n [ActionMenuContext, {styles: treeActionMenu, isQuiet: true, isDisabled}]\n ]}>\n {typeof children === 'string' ? <Text>{children}</Text> : children}\n </Provider>\n </div>\n );\n }}\n </TreeItemContent>\n );\n};\n\nconst centeredWrapper = style({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: 'full'\n});\n\nexport const TreeViewLoadMoreItem = (props: TreeViewLoadMoreItemProps): ReactNode => {\n let {loadingState, onLoadMore} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n return (\n <TreeLoadMoreItem\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n className={style({width: 'full', marginY: 4})}>\n {() => {\n return (\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loadingMore')}\n />\n </div>\n );\n }}\n </TreeLoadMoreItem>\n );\n};\n\ninterface ExpandableRowChevronProps {\n isExpanded?: boolean;\n isDisabled?: boolean;\n isRTL?: boolean;\n scale: 'medium' | 'large';\n isHidden?: boolean;\n}\n\nconst expandButton = style<ExpandableRowChevronProps>({\n gridArea: 'expand-button',\n color: {\n default: 'inherit',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n height: 40,\n width: 40,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'center',\n justifyContent: 'center',\n outlineStyle: 'none',\n cursor: 'default',\n transform: {\n isExpanded: {\n default: 'rotate(90deg)',\n isRTL: 'rotate(-90deg)'\n }\n },\n padding: 0,\n transition: 'default',\n backgroundColor: 'transparent',\n borderStyle: 'none',\n disableTapHighlight: true,\n visibility: {\n isHidden: 'hidden'\n }\n});\n\nfunction ExpandableRowChevron(props: ExpandableRowChevronProps) {\n let expandButtonRef = useRef<HTMLButtonElement>(null);\n let [fullProps, ref] = useContextProps(\n {...props, slot: 'chevron'},\n expandButtonRef,\n ButtonContext\n );\n let {isExpanded, scale, isHidden} = fullProps;\n let {direction} = useLocale();\n\n return (\n <Button\n {...props}\n ref={ref}\n slot=\"chevron\"\n className={renderProps =>\n expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})\n }>\n <Chevron\n className={style({\n scale: {\n direction: {\n ltr: '1',\n rtl: '-1'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })({direction})}\n />\n </Button>\n );\n}\n\nfunction isNextSelected(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n let keyAfter = state.collection.getKeyAfter(id);\n\n // We need to skip non-item nodes because the selection manager will map non-item nodes to their parent before checking selection\n let node = keyAfter != null ? state.collection.getItem(keyAfter) : null;\n while (node && node.type !== 'item' && keyAfter != null) {\n keyAfter = state.collection.getKeyAfter(keyAfter);\n node = keyAfter != null ? state.collection.getItem(keyAfter) : null;\n }\n\n return keyAfter != null && state.selectionManager.isSelected(keyAfter);\n}\n\nfunction isPrevSelected(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n let keyBefore = state.collection.getKeyBefore(id);\n return keyBefore != null && state.selectionManager.isSelected(keyBefore);\n}\n\nfunction isFirstItem(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n return state.collection.getFirstKey() === id;\n}\n"],"names":[],"version":3,"file":"TreeView.mjs.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/TreeView.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ActionButtonGroupContext} from './ActionButtonGroup';\nimport {ActionMenuContext} from './ActionMenu';\nimport {\n baseColor,\n color,\n colorMix,\n focusRing,\n fontRelative,\n style\n} from '../style' with {type: 'macro'};\nimport {Button, ButtonContext} from 'react-aria-components/Button';\nimport {centerBaseline} from './CenterBaseline';\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {css} from '../style/style-macro' with {type: 'macro'};\nimport {\n DOMRef,\n forwardRefType,\n GlobalDOMAttributes,\n ItemDropTarget,\n Key,\n LoadingState\n} from '@react-types/shared';\nimport {DragHandleButton, InsertionIndicator} from './dnd-utils';\nimport {DragPreview} from './DragPreview';\nimport {\n getAllowedOverrides,\n StylesPropWithHeight,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {IconContext} from './Icon';\nimport intlMessages from '../intl/*.json';\nimport {ProgressCircle} from './ProgressCircle';\nimport {Provider, useContextProps} from 'react-aria-components/slots';\nimport {\n TreeItemProps as RACTreeItemProps,\n TreeProps as RACTreeProps,\n Tree,\n TreeItem,\n TreeItemContent,\n TreeItemContentProps,\n TreeItemRenderProps,\n TreeLoadMoreItem,\n TreeLoadMoreItemProps,\n TreeRenderProps\n} from 'react-aria-components/Tree';\nimport React, {\n createContext,\n forwardRef,\n JSXElementConstructor,\n ReactElement,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {S2ListLayout} from './ListView';\nimport {Text, TextContext} from './Content';\nimport {TreeState} from 'react-stately/useTreeState';\nimport {useActionBarContainer} from './ActionBar';\nimport {useDOMRef} from './useDOMRef';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\nimport {useScale} from './utils';\nimport {Virtualizer} from 'react-aria-components/Virtualizer';\n\ninterface S2TreeProps {\n /** Handler that is called when a user performs an action on a row. */\n onAction?: (key: Key) => void;\n /** Provides the ActionBar to display when items are selected in the TreeView. */\n renderActionBar?: (selectedKeys: 'all' | Set<Key>) => ReactElement;\n}\n\ninterface TreeViewStyleProps {\n /**\n * How selection should be displayed. For guidance on when to use which option, refer to the\n * [Spectrum](https://spectrum.adobe.com/page/tree-view/#Checkbox-or-highlight-selection-style)\n * page.\n *\n * @default 'checkbox'\n */\n selectionStyle?: 'highlight' | 'checkbox';\n}\n\nexport interface TreeViewProps<T>\n extends\n Omit<\n RACTreeProps<T>,\n | 'style'\n | 'className'\n | 'render'\n | 'onRowAction'\n | 'selectionBehavior'\n | 'onScroll'\n | 'onCellAction'\n | keyof GlobalDOMAttributes\n >,\n UnsafeStyles,\n S2TreeProps,\n TreeViewStyleProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight;\n}\n\nexport interface TreeViewItemProps extends Omit<\n RACTreeItemProps,\n 'className' | 'style' | 'render' | 'onClick' | keyof GlobalDOMAttributes\n> {\n /** Whether this item has children, even if not loaded yet. */\n hasChildItems?: boolean;\n}\n\nexport interface TreeViewLoadMoreItemProps extends Pick<TreeLoadMoreItemProps, 'onLoadMore'> {\n /** The current loading state of the TreeView or TreeView row. */\n loadingState?: LoadingState;\n}\n\ninterface TreeRendererContextValue {\n renderer?: (item) => ReactElement<any, string | JSXElementConstructor<any>>;\n}\nconst TreeRendererContext = createContext<TreeRendererContextValue>({});\n\nconst treeViewWrapper = style(\n {\n minHeight: 0,\n height: 'full',\n minWidth: 160,\n display: 'flex',\n isolation: 'isolate',\n disableTapHighlight: true,\n position: 'relative',\n overflow: 'clip',\n '--indicator-level-padding': {\n type: 'width',\n value: {\n // 4 (start gap) + 10 (drag handle) + (hasCheckbox ? 16 + 8 : 0) + 40 (expand button)\n // keep in sync with treeCellGrid gridTemplateColumns\n default: 54,\n hasCheckbox: 78\n }\n },\n '--root-drop-radius': {\n type: 'borderTopStartRadius',\n value: 'sm'\n }\n },\n getAllowedOverrides({height: true})\n);\n\n// TODO: can't use border cuz it means the contents of the tree are no longer\n// flush with its container. Outline and box shadow are affected by the outlineOffset we\n// have in the tree styles and result in the rows clipping the drop outline. This approach\n// avoids that\nconst rootDropOutline = css(`\n &:has([role=\"treegrid\"][data-drop-target])::after {\n content: \"\";\n position: absolute;\n inset: 0;\n pointer-events: none;\n border: 2px solid ${color('blue-800')};\n border-radius: var(--root-drop-radius);\n z-index: 2;\n }\n @media (forced-colors: active) {\n &:has([role=\"treegrid\"][data-drop-target])::after {\n border-color: Highlight;\n }\n }\n`);\n\n// These are the same as ListView. we didn't have v3 tree dnd and dont have designs so to be adjusted later\nconst dropTargetBackground = colorMix('gray-25', 'blue-900', 10);\nconst rootDropSelectedRowBackground = colorMix('gray-25', 'blue-900', 28);\nconst rowDropBackground = colorMix('gray-25', 'blue-900', 10);\nconst rootRowDropStyles = {\n default: dropTargetBackground,\n isSelected: rootDropSelectedRowBackground,\n forcedColors: 'Background'\n} as const;\nconst rowDropStyles = {\n default: rowDropBackground,\n isSelected: rowDropBackground,\n forcedColors: 'Background'\n} as const;\n\n// 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\n// keyboard focus ring. Perhaps find a different way of rendering the outlines since the top of the item doesn't\n// scroll into view due to how the ring is offset. Alternatively, have the tree render the top/bottom outline like it does in Listview\nconst tree = style<TreeRenderProps>({\n ...focusRing(),\n outlineOffset: -2, // make certain we are visible inside overflow hidden containers\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n width: 'full',\n height: 'full',\n overflow: 'auto',\n boxSizing: 'border-box',\n backgroundColor: {\n isDropTarget: {\n default: dropTargetBackground,\n forcedColors: 'Background'\n }\n },\n justifyContent: {\n isEmpty: 'center'\n },\n alignItems: {\n isEmpty: 'center'\n },\n '--indent': {\n type: 'width',\n value: 16\n }\n});\n\nlet InternalTreeViewContext = createContext<{selectionStyle?: 'highlight' | 'checkbox'}>({});\n\n/**\n * A tree view provides users with a way to navigate nested hierarchical information.\n */\nexport const TreeView = /*#__PURE__*/ (forwardRef as forwardRefType)(function TreeView<T>(\n props: TreeViewProps<T>,\n ref: DOMRef<HTMLDivElement>\n) {\n let {\n children,\n selectionStyle = 'checkbox',\n UNSAFE_className,\n UNSAFE_style,\n dragAndDropHooks\n } = props;\n let scale = useScale();\n\n if (dragAndDropHooks && dragAndDropHooks.renderDragPreview == null) {\n dragAndDropHooks.renderDragPreview = items => <DragPreview items={items} />;\n }\n\n let hasCheckbox = props.selectionMode !== 'none' && selectionStyle !== 'highlight';\n\n if (dragAndDropHooks) {\n dragAndDropHooks.renderDropIndicator = target => (\n <InsertionIndicator target={target as ItemDropTarget} />\n );\n }\n let renderer;\n if (typeof children === 'function') {\n renderer = children;\n }\n\n let domRef = useDOMRef(ref);\n let scrollRef = useRef<HTMLDivElement | null>(null);\n\n let {selectedKeys, onSelectionChange, actionBar, actionBarHeight} = useActionBarContainer({\n ...props,\n scrollRef\n });\n\n return (\n <div\n ref={domRef}\n className={\n (UNSAFE_className ?? '') +\n treeViewWrapper({hasCheckbox}, props.styles) +\n ' ' +\n rootDropOutline\n }\n style={UNSAFE_style}>\n <Virtualizer\n layout={S2ListLayout}\n layoutOptions={{\n rowHeight: scale === 'large' ? 50 : 40,\n dropIndicatorThickness: 0\n }}>\n <TreeRendererContext.Provider value={{renderer}}>\n <InternalTreeViewContext.Provider value={{selectionStyle}}>\n <Tree\n {...props}\n dragAndDropHooks={dragAndDropHooks}\n style={{\n paddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0,\n scrollPaddingBottom: actionBarHeight > 0 ? actionBarHeight + 8 : 0\n }}\n className={renderProps => tree(renderProps)}\n selectionBehavior={selectionStyle === 'highlight' ? 'replace' : 'toggle'}\n selectedKeys={selectedKeys}\n defaultSelectedKeys={undefined}\n onSelectionChange={onSelectionChange}\n ref={scrollRef}>\n {props.children}\n </Tree>\n </InternalTreeViewContext.Provider>\n </TreeRendererContext.Provider>\n </Virtualizer>\n {actionBar}\n </div>\n );\n});\n\nconst rowBackgroundColor = {\n default: '--s2-container-bg',\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7),\n isHovered: colorMix('gray-25', 'gray-900', 7),\n isPressed: colorMix('gray-25', 'gray-900', 7),\n isSelected: {\n default: colorMix('gray-25', 'gray-900', 7),\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 10),\n isHovered: colorMix('gray-25', 'gray-900', 10),\n isPressed: colorMix('gray-25', 'gray-900', 10)\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst treeRow = style<TreeItemRenderProps & {isLink?: boolean; isPreviousSelected?: boolean}>({\n outlineStyle: {\n default: 'none',\n isDropTarget: 'solid'\n },\n outlineWidth: {\n isDropTarget: 2\n },\n outlineOffset: {\n isDropTarget: -2\n },\n outlineColor: {\n isDropTarget: 'blue-800',\n forcedColors: {\n isDropTarget: 'Highlight'\n }\n },\n position: 'relative',\n display: 'flex',\n height: 40,\n width: 'full',\n boxSizing: 'border-box',\n font: 'ui',\n color: {\n default: baseColor('neutral-subdued'),\n isSelected: baseColor('neutral'),\n forcedColors: 'ButtonText'\n },\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--borderRadiusTreeItem': {\n type: 'borderTopStartRadius',\n value: 'sm'\n },\n borderRadius: 'sm'\n});\n\nconst treeCellGrid = style({\n display: 'grid',\n width: 'full',\n height: 'full',\n boxSizing: 'border-box',\n borderRadius: 'sm',\n alignContent: 'center',\n alignItems: 'center',\n // TODO: will have to update these to match design\n gridTemplateColumns: [\n 4,\n 'auto',\n 'auto',\n 'auto',\n 'auto',\n 'auto',\n '1fr',\n 'minmax(0, auto)',\n 'auto'\n ],\n gridTemplateRows: '1fr',\n gridTemplateAreas: [\n '. drag-handle checkbox level-padding expand-button icon content actions actionmenu'\n ],\n paddingEnd: 4, // account for any focus rings on the last item in the cell\n color: {\n isDisabled: {\n default: 'gray-400',\n forcedColors: 'GrayText'\n },\n forcedColors: 'ButtonText',\n selectionStyle: {\n highlight: {\n isSelected: {\n forcedColors: 'HighlightText'\n }\n }\n }\n },\n '--rowSelectedBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'gray-800',\n isFocusVisible: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--rowForcedFocusBorderColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n '--borderColor': {\n type: 'borderColor',\n value: {\n default: 'transparent',\n selectionStyle: {\n highlight: 'blue-900'\n },\n forcedColors: 'ButtonBorder'\n }\n },\n forcedColorAdjust: 'none'\n});\n\nconst treeRowBackground = style({\n position: 'absolute',\n zIndex: -1,\n inset: 0,\n backgroundColor: {\n default: '--rowBackgroundColor',\n forcedColors: 'Background',\n selectionStyle: {\n highlight: {\n default: '--rowBackgroundColor',\n isSelected: {\n default: colorMix('gray-25', 'blue-900', 10),\n isHovered: colorMix('gray-25', 'blue-900', 15),\n isPressed: colorMix('gray-25', 'blue-900', 15),\n isFocusVisible: colorMix('gray-25', 'blue-900', 15),\n forcedColors: 'Highlight'\n }\n }\n },\n ':is([role=\"treegrid\"][data-drop-target] *)': rootRowDropStyles,\n isDropTarget: rowDropStyles\n },\n borderTopStartRadius: {\n default: '--borderRadiusTreeItem',\n isPreviousSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderTopEndRadius: {\n default: '--borderRadiusTreeItem',\n isPreviousSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderBottomStartRadius: {\n default: '--borderRadiusTreeItem',\n isNextSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderBottomEndRadius: {\n default: '--borderRadiusTreeItem',\n isNextSelected: {\n default: '--borderRadiusTreeItem',\n isSelected: 'none'\n }\n },\n borderTopWidth: {\n default: 1,\n isPreviousSelected: 0\n },\n borderBottomWidth: {\n default: 1,\n isNextSelected: 0\n },\n borderStartWidth: 1,\n borderEndWidth: 1,\n borderStyle: 'solid',\n borderColor: {\n default: 'transparent',\n isSelected: '--borderColor'\n }\n});\n\nconst treeCheckbox = style({\n gridArea: 'checkbox',\n marginStart: 8,\n marginEnd: 0,\n paddingEnd: 0,\n visibility: {\n default: 'visible',\n isDisabled: 'hidden'\n }\n});\n\nconst treeIcon = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst treeContent = style({\n gridArea: 'content',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n});\n\nconst treeActions = style({\n gridArea: 'actions',\n /* TODO: I made this one up, confirm desired behavior. These paddings are to make sure the action group has enough padding for the focus ring */\n marginStart: 2,\n marginEnd: 4\n});\n\nconst treeActionMenu = style({\n gridArea: 'actionmenu'\n});\n\nconst treeDragButtonContainer = style({\n gridArea: 'drag-handle',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 10\n});\n\nlet treeRowFocusRing = style({\n ...focusRing(),\n outlineOffset: {\n default: -2,\n forcedColors: -3\n },\n outlineWidth: {\n default: 2,\n forcedColors: '[3px]'\n },\n outlineColor: {\n default: 'focus-ring',\n forcedColors: 'Highlight',\n selectionStyle: {\n highlight: {\n default: 'focus-ring',\n forcedColors: 'ButtonBorder'\n }\n }\n },\n position: 'absolute',\n inset: 0,\n top: {\n default: '[-1px]',\n isFirstItem: 0\n },\n bottom: {\n selectionStyle: {\n checkbox: 0,\n highlight: {\n default: 0,\n isNextSelected: '[-1px]',\n isSelected: {\n default: 0,\n isNextSelected: 0\n }\n }\n }\n },\n borderRadius: 'sm',\n zIndex: 1,\n pointerEvents: 'none'\n});\n\nexport const TreeViewItem = (props: TreeViewItemProps): ReactNode => {\n let {href} = props;\n\n return (\n <TreeItem\n {...props}\n className={renderProps =>\n treeRow({\n ...renderProps,\n isLink: !!href\n })\n }\n />\n );\n};\n\nexport interface TreeViewItemContentProps extends Omit<TreeItemContentProps, 'children'> {\n /** Rendered contents of the tree item or child items. */\n children: ReactNode;\n}\n\nexport const TreeViewItemContent = (props: TreeViewItemContentProps): ReactNode => {\n let {children} = props;\n let scale = useScale();\n\n let {selectionStyle} = useContext(InternalTreeViewContext);\n\n return (\n <TreeItemContent>\n {({\n isExpanded,\n hasChildItems,\n selectionMode,\n selectionBehavior,\n isDisabled,\n isSelected,\n id,\n state,\n isHovered,\n isFocusVisible,\n isFocusVisibleWithin,\n allowsDragging,\n isDropTarget\n }) => {\n return (\n <div\n className={treeCellGrid({\n isDisabled,\n isNextSelected: isNextSelected(id, state),\n isSelected,\n selectionStyle\n })}>\n <div\n className={treeRowBackground({\n isHovered,\n isFocusVisible,\n isSelected,\n selectionStyle,\n isNextSelected: isNextSelected(id, state),\n isPreviousSelected: isPrevSelected(id, state),\n isDropTarget\n })}\n />\n {isFocusVisible && (\n <div\n className={treeRowFocusRing({\n isFocusVisible,\n selectionStyle,\n isSelected,\n isNextSelected: isNextSelected(id, state),\n isFirstItem: isFirstItem(id, state)\n })}\n />\n )}\n {allowsDragging && (\n <div className={treeDragButtonContainer}>\n {!isDisabled && <DragHandleButton isFocusVisibleWithin={isFocusVisibleWithin} />}\n </div>\n )}\n {selectionMode !== 'none' &&\n selectionBehavior === 'toggle' &&\n selectionStyle !== 'highlight' && (\n // TODO: add transition?\n <div\n className={treeCheckbox({\n isDisabled:\n isDisabled ||\n !state.selectionManager.canSelectItem(id) ||\n state.disabledKeys.has(id)\n })}>\n <Checkbox slot=\"selection\" />\n </div>\n )}\n <div\n className={style({\n gridArea: 'level-padding',\n width: 'calc(calc(var(--tree-item-level, 0) - 1) * var(--indent))'\n })}\n />\n <ExpandableRowChevron\n isDisabled={isDisabled}\n isExpanded={isExpanded}\n scale={scale}\n isHidden={!hasChildItems}\n />\n <Provider\n values={[\n [TextContext, {styles: treeContent}],\n [\n IconContext,\n {\n render: centerBaseline({slot: 'icon', styles: treeIcon}),\n styles: style({size: fontRelative(20), flexShrink: 0})\n }\n ],\n [ActionButtonGroupContext, {styles: treeActions, isDisabled}],\n [ActionMenuContext, {styles: treeActionMenu, isQuiet: true, isDisabled}]\n ]}>\n {typeof children === 'string' ? <Text>{children}</Text> : children}\n </Provider>\n </div>\n );\n }}\n </TreeItemContent>\n );\n};\n\nconst centeredWrapper = style({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: 'full'\n});\n\nexport const TreeViewLoadMoreItem = (props: TreeViewLoadMoreItemProps): ReactNode => {\n let {loadingState, onLoadMore} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n return (\n <TreeLoadMoreItem\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n className={style({width: 'full', marginY: 4})}>\n {() => {\n return (\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loadingMore')}\n />\n </div>\n );\n }}\n </TreeLoadMoreItem>\n );\n};\n\ninterface ExpandableRowChevronProps {\n isExpanded?: boolean;\n isDisabled?: boolean;\n isRTL?: boolean;\n scale: 'medium' | 'large';\n isHidden?: boolean;\n}\n\nconst expandButton = style<ExpandableRowChevronProps>({\n gridArea: 'expand-button',\n color: {\n default: 'inherit',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n height: 40,\n width: 40,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'center',\n justifyContent: 'center',\n outlineStyle: 'none',\n cursor: 'default',\n transform: {\n isExpanded: {\n default: 'rotate(90deg)',\n isRTL: 'rotate(-90deg)'\n }\n },\n padding: 0,\n transition: 'default',\n backgroundColor: 'transparent',\n borderStyle: 'none',\n disableTapHighlight: true,\n visibility: {\n isHidden: 'hidden'\n }\n});\n\nfunction ExpandableRowChevron(props: ExpandableRowChevronProps) {\n let expandButtonRef = useRef<HTMLButtonElement>(null);\n let [fullProps, ref] = useContextProps(\n {...props, slot: 'chevron'},\n expandButtonRef,\n ButtonContext\n );\n let {isExpanded, scale, isHidden} = fullProps;\n let {direction} = useLocale();\n\n return (\n <Button\n {...props}\n ref={ref}\n slot=\"chevron\"\n className={renderProps =>\n expandButton({...renderProps, isExpanded, isRTL: direction === 'rtl', scale, isHidden})\n }>\n <Chevron\n className={style({\n scale: {\n direction: {\n ltr: '1',\n rtl: '-1'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })({direction})}\n />\n </Button>\n );\n}\n\nfunction isNextSelected(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n let keyAfter = state.collection.getKeyAfter(id);\n\n // We need to skip non-item nodes because the selection manager will map non-item nodes to their parent before checking selection\n let node = keyAfter != null ? state.collection.getItem(keyAfter) : null;\n while (node && node.type !== 'item' && keyAfter != null) {\n keyAfter = state.collection.getKeyAfter(keyAfter);\n node = keyAfter != null ? state.collection.getItem(keyAfter) : null;\n }\n\n return keyAfter != null && state.selectionManager.isSelected(keyAfter);\n}\n\nfunction isPrevSelected(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n let keyBefore = state.collection.getKeyBefore(id);\n return keyBefore != null && state.selectionManager.isSelected(keyBefore);\n}\n\nfunction isFirstItem(id: Key | undefined, state: TreeState<unknown>) {\n if (id == null || !state) {\n return false;\n }\n return state.collection.getFirstKey() === id;\n}\n"],"names":[],"version":3,"file":"TreeView.mjs.map"}
|
|
@@ -31,22 +31,22 @@ $parcel$export(module.exports, "DragHandleButton", () => $f1f08ef5de95f8eb$expor
|
|
|
31
31
|
|
|
32
32
|
let $f1f08ef5de95f8eb$var$insertionIndicatorWrapper = function anonymous(props) {
|
|
33
33
|
let rules = " ";
|
|
34
|
-
rules += '
|
|
35
|
-
rules += '
|
|
36
|
-
rules += '
|
|
37
|
-
rules += '
|
|
38
|
-
rules += '
|
|
39
|
-
rules += '
|
|
40
|
-
rules += '
|
|
41
|
-
if (props.isRoot) rules += '
|
|
42
|
-
else rules += '
|
|
43
|
-
if (props.isDropTarget) rules += '
|
|
44
|
-
else rules += '
|
|
45
|
-
if (props.isDropTarget) rules += '
|
|
46
|
-
if (props.isDropTarget) rules += ' -_3xYcJd-
|
|
47
|
-
else rules += ' -_3xYcJd-
|
|
48
|
-
if (props.isDropTarget) rules += ' -_3xYcJd-
|
|
49
|
-
rules += '
|
|
34
|
+
rules += ' _Pa151';
|
|
35
|
+
rules += ' Wr151';
|
|
36
|
+
rules += ' _lr151';
|
|
37
|
+
rules += ' _Ar151';
|
|
38
|
+
rules += ' _zr151';
|
|
39
|
+
rules += ' sd151';
|
|
40
|
+
rules += ' eb151';
|
|
41
|
+
if (props.isRoot) rules += ' Iy151';
|
|
42
|
+
else rules += ' IyEbn5c151';
|
|
43
|
+
if (props.isDropTarget) rules += ' poPoFpe151';
|
|
44
|
+
else rules += ' pw151';
|
|
45
|
+
if (props.isDropTarget) rules += ' pld151';
|
|
46
|
+
if (props.isDropTarget) rules += ' -_3xYcJd-gX151';
|
|
47
|
+
else rules += ' -_3xYcJd-g9151';
|
|
48
|
+
if (props.isDropTarget) rules += ' -_3xYcJd-lga151';
|
|
49
|
+
rules += ' _yb151';
|
|
50
50
|
return rules;
|
|
51
51
|
};
|
|
52
52
|
function $f1f08ef5de95f8eb$export$2c0bab5914a9d088({ target: target }) {
|
|
@@ -105,32 +105,32 @@ function $f1f08ef5de95f8eb$export$2c0bab5914a9d088({ target: target }) {
|
|
|
105
105
|
}
|
|
106
106
|
let $f1f08ef5de95f8eb$var$dragButton = function anonymous(props) {
|
|
107
107
|
let rules = " ";
|
|
108
|
-
rules += '
|
|
109
|
-
rules += '
|
|
110
|
-
rules += '
|
|
111
|
-
rules += '
|
|
112
|
-
rules += '
|
|
113
|
-
rules += '
|
|
114
|
-
rules += '
|
|
115
|
-
rules += '
|
|
116
|
-
rules += '
|
|
117
|
-
rules += '
|
|
118
|
-
rules += '
|
|
119
|
-
rules += '
|
|
120
|
-
rules += '
|
|
121
|
-
rules += '
|
|
122
|
-
rules += '
|
|
123
|
-
rules += '
|
|
124
|
-
rules += '
|
|
125
|
-
rules += '
|
|
126
|
-
rules += '
|
|
127
|
-
rules += '
|
|
128
|
-
if (props.isFocusVisible) rules += '
|
|
129
|
-
else rules += '
|
|
130
|
-
rules += '
|
|
131
|
-
rules += '
|
|
132
|
-
rules += '
|
|
133
|
-
rules += ' -_8sjo0b-
|
|
108
|
+
rules += ' p40ub4c151';
|
|
109
|
+
rules += ' sd151';
|
|
110
|
+
rules += ' eb151';
|
|
111
|
+
rules += ' _Ca151';
|
|
112
|
+
rules += ' Fo151';
|
|
113
|
+
rules += ' Zi151';
|
|
114
|
+
rules += ' Td151';
|
|
115
|
+
rules += ' Qd151';
|
|
116
|
+
rules += ' Sd151';
|
|
117
|
+
rules += ' Rd151';
|
|
118
|
+
rules += ' Jy151';
|
|
119
|
+
rules += ' Gy151';
|
|
120
|
+
rules += ' Iy151';
|
|
121
|
+
rules += ' Hy151';
|
|
122
|
+
rules += ' g9151';
|
|
123
|
+
rules += ' _je151';
|
|
124
|
+
rules += ' oa151';
|
|
125
|
+
rules += ' na151';
|
|
126
|
+
rules += ' ka151';
|
|
127
|
+
rules += ' ja151';
|
|
128
|
+
if (props.isFocusVisible) rules += ' _Lf151';
|
|
129
|
+
else rules += ' _Le151';
|
|
130
|
+
rules += ' Oh151';
|
|
131
|
+
rules += ' Olc151';
|
|
132
|
+
rules += ' _Mc151';
|
|
133
|
+
rules += ' -_8sjo0b-t5ZbAob151';
|
|
134
134
|
return rules;
|
|
135
135
|
};
|
|
136
136
|
function $f1f08ef5de95f8eb$export$4c99a519d851f90c({ isFocusVisibleWithin: isFocusVisibleWithin }) {
|
|
@@ -1,145 +1,145 @@
|
|
|
1
1
|
@layer _.a {
|
|
2
|
-
.
|
|
2
|
+
._Pa151 {
|
|
3
3
|
position: absolute;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.
|
|
6
|
+
.Wr151 {
|
|
7
7
|
top: 0;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
.
|
|
10
|
+
._lr151 {
|
|
11
11
|
bottom: 0;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.
|
|
14
|
+
._Ar151 {
|
|
15
15
|
inset-inline-start: 0;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.
|
|
18
|
+
._zr151 {
|
|
19
19
|
inset-inline-end: 0;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
.
|
|
22
|
+
.IyEbn5c151 {
|
|
23
23
|
margin-inline-start: calc((var(--drop-level, 1) - 1) * var(--indent) + var(--indicator-level-padding));
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.
|
|
26
|
+
.pw151 {
|
|
27
27
|
color: #0000;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.
|
|
30
|
+
.poPoFpe151 {
|
|
31
31
|
color: light-dark(#4b75ff, #4069fd);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.-_3xYcJd-
|
|
34
|
+
.-_3xYcJd-g9151 {
|
|
35
35
|
--indicator-circle-bg: transparent;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.-_3xYcJd-
|
|
38
|
+
.-_3xYcJd-gX151 {
|
|
39
39
|
--indicator-circle-bg: light-dark(#fff, #111);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
.
|
|
42
|
+
._yb151 {
|
|
43
43
|
forced-color-adjust: none;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
.
|
|
46
|
+
.p40ub4c151 {
|
|
47
47
|
color: inherit;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.
|
|
50
|
+
.sd151 {
|
|
51
51
|
display: flex;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
.
|
|
54
|
+
.eb151 {
|
|
55
55
|
align-items: center;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
.
|
|
58
|
+
._Ca151 {
|
|
59
59
|
justify-content: center;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
.
|
|
62
|
+
.Fo151 {
|
|
63
63
|
height: calc(1.375rem * var(--s2-scale));
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
.
|
|
66
|
+
.Zi151 {
|
|
67
67
|
width: calc(.625rem * var(--s2-scale));
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
.
|
|
70
|
+
.Td151 {
|
|
71
71
|
padding-top: 0;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
.
|
|
74
|
+
.Qd151 {
|
|
75
75
|
padding-bottom: 0;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
.
|
|
78
|
+
.Sd151 {
|
|
79
79
|
padding-inline-start: 0;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
.
|
|
82
|
+
.Rd151 {
|
|
83
83
|
padding-inline-end: 0;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
.
|
|
86
|
+
.Jy151 {
|
|
87
87
|
margin-top: 0;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
.
|
|
90
|
+
.Gy151 {
|
|
91
91
|
margin-bottom: 0;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
.
|
|
94
|
+
.Iy151 {
|
|
95
95
|
margin-inline-start: 0;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
.
|
|
98
|
+
.Hy151 {
|
|
99
99
|
margin-inline-end: 0;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
.
|
|
102
|
+
.g9151 {
|
|
103
103
|
background-color: #0000;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.
|
|
106
|
+
._je151 {
|
|
107
107
|
border-style: none;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
.
|
|
110
|
+
.oa151 {
|
|
111
111
|
border-start-start-radius: .25rem;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
.
|
|
114
|
+
.na151 {
|
|
115
115
|
border-start-end-radius: .25rem;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
.
|
|
118
|
+
.ka151 {
|
|
119
119
|
border-end-start-radius: .25rem;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
.
|
|
122
|
+
.ja151 {
|
|
123
123
|
border-end-end-radius: .25rem;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
.
|
|
126
|
+
._Le151 {
|
|
127
127
|
outline-style: none;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
.
|
|
130
|
+
._Lf151 {
|
|
131
131
|
outline-style: solid;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
.
|
|
134
|
+
.Oh151 {
|
|
135
135
|
outline-color: light-dark(#4b75ff, #4069fd);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
.
|
|
138
|
+
._Mc151 {
|
|
139
139
|
outline-width: 2px;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
.-_8sjo0b-
|
|
142
|
+
.-_8sjo0b-t5ZbAob151 {
|
|
143
143
|
--iconPrimary: currentColor;
|
|
144
144
|
}
|
|
145
145
|
}
|
|
@@ -148,15 +148,15 @@
|
|
|
148
148
|
|
|
149
149
|
@layer _.b.l {
|
|
150
150
|
@media (forced-colors: active) {
|
|
151
|
-
.
|
|
151
|
+
.pld151 {
|
|
152
152
|
color: highlight;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
.-_3xYcJd-
|
|
155
|
+
.-_3xYcJd-lga151 {
|
|
156
156
|
--indicator-circle-bg: Background;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
.
|
|
159
|
+
.Olc151 {
|
|
160
160
|
outline-color: highlight;
|
|
161
161
|
}
|
|
162
162
|
}
|
|
@@ -24,22 +24,22 @@ import {useVisuallyHidden as $7m476$useVisuallyHidden} from "react-aria/Visually
|
|
|
24
24
|
|
|
25
25
|
let $3c1ab1fd8f31a3e2$var$insertionIndicatorWrapper = function anonymous(props) {
|
|
26
26
|
let rules = " ";
|
|
27
|
-
rules += '
|
|
28
|
-
rules += '
|
|
29
|
-
rules += '
|
|
30
|
-
rules += '
|
|
31
|
-
rules += '
|
|
32
|
-
rules += '
|
|
33
|
-
rules += '
|
|
34
|
-
if (props.isRoot) rules += '
|
|
35
|
-
else rules += '
|
|
36
|
-
if (props.isDropTarget) rules += '
|
|
37
|
-
else rules += '
|
|
38
|
-
if (props.isDropTarget) rules += '
|
|
39
|
-
if (props.isDropTarget) rules += ' -_3xYcJd-
|
|
40
|
-
else rules += ' -_3xYcJd-
|
|
41
|
-
if (props.isDropTarget) rules += ' -_3xYcJd-
|
|
42
|
-
rules += '
|
|
27
|
+
rules += ' _Pa151';
|
|
28
|
+
rules += ' Wr151';
|
|
29
|
+
rules += ' _lr151';
|
|
30
|
+
rules += ' _Ar151';
|
|
31
|
+
rules += ' _zr151';
|
|
32
|
+
rules += ' sd151';
|
|
33
|
+
rules += ' eb151';
|
|
34
|
+
if (props.isRoot) rules += ' Iy151';
|
|
35
|
+
else rules += ' IyEbn5c151';
|
|
36
|
+
if (props.isDropTarget) rules += ' poPoFpe151';
|
|
37
|
+
else rules += ' pw151';
|
|
38
|
+
if (props.isDropTarget) rules += ' pld151';
|
|
39
|
+
if (props.isDropTarget) rules += ' -_3xYcJd-gX151';
|
|
40
|
+
else rules += ' -_3xYcJd-g9151';
|
|
41
|
+
if (props.isDropTarget) rules += ' -_3xYcJd-lga151';
|
|
42
|
+
rules += ' _yb151';
|
|
43
43
|
return rules;
|
|
44
44
|
};
|
|
45
45
|
function $3c1ab1fd8f31a3e2$export$2c0bab5914a9d088({ target: target }) {
|
|
@@ -98,32 +98,32 @@ function $3c1ab1fd8f31a3e2$export$2c0bab5914a9d088({ target: target }) {
|
|
|
98
98
|
}
|
|
99
99
|
let $3c1ab1fd8f31a3e2$var$dragButton = function anonymous(props) {
|
|
100
100
|
let rules = " ";
|
|
101
|
-
rules += '
|
|
102
|
-
rules += '
|
|
103
|
-
rules += '
|
|
104
|
-
rules += '
|
|
105
|
-
rules += '
|
|
106
|
-
rules += '
|
|
107
|
-
rules += '
|
|
108
|
-
rules += '
|
|
109
|
-
rules += '
|
|
110
|
-
rules += '
|
|
111
|
-
rules += '
|
|
112
|
-
rules += '
|
|
113
|
-
rules += '
|
|
114
|
-
rules += '
|
|
115
|
-
rules += '
|
|
116
|
-
rules += '
|
|
117
|
-
rules += '
|
|
118
|
-
rules += '
|
|
119
|
-
rules += '
|
|
120
|
-
rules += '
|
|
121
|
-
if (props.isFocusVisible) rules += '
|
|
122
|
-
else rules += '
|
|
123
|
-
rules += '
|
|
124
|
-
rules += '
|
|
125
|
-
rules += '
|
|
126
|
-
rules += ' -_8sjo0b-
|
|
101
|
+
rules += ' p40ub4c151';
|
|
102
|
+
rules += ' sd151';
|
|
103
|
+
rules += ' eb151';
|
|
104
|
+
rules += ' _Ca151';
|
|
105
|
+
rules += ' Fo151';
|
|
106
|
+
rules += ' Zi151';
|
|
107
|
+
rules += ' Td151';
|
|
108
|
+
rules += ' Qd151';
|
|
109
|
+
rules += ' Sd151';
|
|
110
|
+
rules += ' Rd151';
|
|
111
|
+
rules += ' Jy151';
|
|
112
|
+
rules += ' Gy151';
|
|
113
|
+
rules += ' Iy151';
|
|
114
|
+
rules += ' Hy151';
|
|
115
|
+
rules += ' g9151';
|
|
116
|
+
rules += ' _je151';
|
|
117
|
+
rules += ' oa151';
|
|
118
|
+
rules += ' na151';
|
|
119
|
+
rules += ' ka151';
|
|
120
|
+
rules += ' ja151';
|
|
121
|
+
if (props.isFocusVisible) rules += ' _Lf151';
|
|
122
|
+
else rules += ' _Le151';
|
|
123
|
+
rules += ' Oh151';
|
|
124
|
+
rules += ' Olc151';
|
|
125
|
+
rules += ' _Mc151';
|
|
126
|
+
rules += ' -_8sjo0b-t5ZbAob151';
|
|
127
127
|
return rules;
|
|
128
128
|
};
|
|
129
129
|
function $3c1ab1fd8f31a3e2$export$4c99a519d851f90c({ isFocusVisibleWithin: isFocusVisibleWithin }) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CenterBaseline } from '../src/CenterBaseline';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Skeleton, useIsSkeleton } from '../src/Skeleton';
|
|
1
|
+
export { Skeleton, SkeletonContext, useIsSkeleton } from '../src/Skeleton';
|
|
2
2
|
export type { SkeletonProps } from '../src/Skeleton';
|
|
@@ -78,6 +78,7 @@ export { Tooltip, TooltipTrigger } from '../src/Tooltip';
|
|
|
78
78
|
export { TreeView, TreeViewItem, TreeViewItemContent, TreeViewLoadMoreItem } from '../src/TreeView';
|
|
79
79
|
export { pressScale } from '../src/pressScale';
|
|
80
80
|
export { mergeStyles } from '../style/runtime';
|
|
81
|
+
export { CenterBaseline } from '../src/CenterBaseline';
|
|
81
82
|
export { Autocomplete } from 'react-aria-components/Autocomplete';
|
|
82
83
|
export { Collection } from 'react-aria/Collection';
|
|
83
84
|
export { FileTrigger } from 'react-aria-components/FileTrigger';
|
|
@@ -7,6 +7,23 @@ interface CenterBaselineProps extends DOMAttributes {
|
|
|
7
7
|
children: ReactNode;
|
|
8
8
|
slot?: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Vertically centers its children against the surrounding text baseline.
|
|
12
|
+
* Use this to align icons or other inline elements with adjacent text without
|
|
13
|
+
* breaking baseline alignment.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* import {CenterBaseline} from '@react-spectrum/s2/CenterBaseline';
|
|
17
|
+
* import {style} from '@react-spectrum/s2/style' with {type: 'macro'};
|
|
18
|
+
* import CheckmarkIcon from '@react-spectrum/s2/icons/Checkmark';
|
|
19
|
+
*
|
|
20
|
+
* <span className={style({display: 'flex', gap: 4, alignItems: 'baseline'})}>
|
|
21
|
+
* <CenterBaseline>
|
|
22
|
+
* <CheckmarkIcon />
|
|
23
|
+
* </CenterBaseline>
|
|
24
|
+
* <span>Done</span>
|
|
25
|
+
* </span>;
|
|
26
|
+
*/
|
|
10
27
|
export declare function CenterBaseline(props: CenterBaselineProps): ReactNode;
|
|
11
28
|
export declare const centerBaselineBefore: string;
|
|
12
29
|
export declare function centerBaseline(props?: Omit<CenterBaselineProps, 'children'>): (icon: ReactNode) => ReactNode;
|
|
@@ -5,7 +5,7 @@ import { DialogTriggerProps } from './DialogTrigger';
|
|
|
5
5
|
import { Placement } from 'react-aria-components/Popover';
|
|
6
6
|
import { PopoverDialogProps } from './Popover';
|
|
7
7
|
import { StyleProps } from './style-utils';
|
|
8
|
-
export interface ContextualHelpPopoverProps extends PopoverDialogProps {
|
|
8
|
+
export interface ContextualHelpPopoverProps extends Omit<PopoverDialogProps, 'isNonModal'> {
|
|
9
9
|
/**
|
|
10
10
|
* The children of the contextual help popover. Supports Heading, Content, and Footer elements.
|
|
11
11
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AriaLabelingProps, DOMProps, DOMRefValue, GlobalDOMAttributes } from '@react-types/shared';
|
|
2
2
|
import { ContextValue } from 'react-aria-components/slots';
|
|
3
3
|
import { DisclosurePanelProps as RACDisclosurePanelProps, DisclosureProps as RACDisclosureProps } from 'react-aria-components/Disclosure';
|
|
4
|
-
import { StyleProps, UnsafeStyles } from './style-utils';
|
|
4
|
+
import { StyleProps, StylesPropWithFont, UnsafeStyles } from './style-utils';
|
|
5
5
|
import React, { ReactNode } from 'react';
|
|
6
6
|
export interface DisclosureProps extends Omit<RACDisclosureProps, 'className' | 'style' | 'render' | 'children' | keyof GlobalDOMAttributes>, StyleProps {
|
|
7
7
|
/**
|
|
@@ -36,6 +36,11 @@ export interface DisclosureTitleProps extends UnsafeStyles, DOMProps {
|
|
|
36
36
|
level?: number;
|
|
37
37
|
/** The contents of the disclosure header. */
|
|
38
38
|
children: React.ReactNode;
|
|
39
|
+
/**
|
|
40
|
+
* Spectrum-defined styles, returned by the `style()` macro. Only allows overriding
|
|
41
|
+
* `font`, `fontFamily`, `fontWeight`, `fontSize`, and `lineHeight`.
|
|
42
|
+
*/
|
|
43
|
+
styles?: StylesPropWithFont;
|
|
39
44
|
}
|
|
40
45
|
interface DisclosureHeaderProps extends UnsafeStyles, DOMProps {
|
|
41
46
|
children: React.ReactNode;
|
|
@@ -6,7 +6,7 @@ import { GridListItemProps, GridListProps } from 'react-aria-components/GridList
|
|
|
6
6
|
import { Key } from '@react-types/shared';
|
|
7
7
|
import { LayoutInfo } from 'react-aria-components/Virtualizer';
|
|
8
8
|
import { ListLayout } from 'react-stately/useVirtualizerState';
|
|
9
|
-
export interface ListViewProps<T> extends Omit<GridListProps<T>, 'className' | 'style' | 'children' | 'selectionBehavior' | 'layout' | 'render' | '
|
|
9
|
+
export interface ListViewProps<T> extends Omit<GridListProps<T>, 'className' | 'style' | 'children' | 'selectionBehavior' | 'layout' | 'render' | 'orientation' | keyof GlobalDOMAttributes>, DOMProps, UnsafeStyles, ListViewStylesProps, SlotProps {
|
|
10
10
|
/** Spectrum-defined styles, returned by the `style()` macro. */
|
|
11
11
|
styles?: StylesPropWithHeight;
|
|
12
12
|
/** The current loading state of the ListView. */
|
package/dist/types/src/Menu.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface MenuTriggerProps extends AriaMenuTriggerProps {
|
|
|
24
24
|
*/
|
|
25
25
|
shouldFlip?: boolean;
|
|
26
26
|
}
|
|
27
|
-
export interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'render' | '
|
|
27
|
+
export interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'render' | 'renderEmptyState' | keyof GlobalDOMAttributes>, StyleProps {
|
|
28
28
|
/**
|
|
29
29
|
* The size of the Menu.
|
|
30
30
|
*
|