@react-spectrum/s2 1.3.1 → 1.4.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/exports/Accordion.cjs.map +1 -1
- package/dist/exports/Accordion.mjs.map +1 -1
- package/dist/exports/ActionMenu.cjs.map +1 -1
- package/dist/exports/ActionMenu.mjs.map +1 -1
- package/dist/exports/Card.cjs.map +1 -1
- package/dist/exports/Card.mjs.map +1 -1
- package/dist/exports/CardView.cjs.map +1 -1
- package/dist/exports/CardView.mjs.map +1 -1
- package/dist/exports/ColorArea.cjs.map +1 -1
- package/dist/exports/ColorArea.mjs.map +1 -1
- package/dist/exports/ColorField.cjs.map +1 -1
- package/dist/exports/ColorField.mjs.map +1 -1
- package/dist/exports/ColorSlider.cjs.map +1 -1
- package/dist/exports/ColorSlider.mjs.map +1 -1
- package/dist/exports/ColorSwatch.cjs.map +1 -1
- package/dist/exports/ColorSwatch.mjs.map +1 -1
- package/dist/exports/ColorSwatchPicker.cjs.map +1 -1
- package/dist/exports/ColorSwatchPicker.mjs.map +1 -1
- package/dist/exports/ColorWheel.cjs.map +1 -1
- package/dist/exports/ColorWheel.mjs.map +1 -1
- package/dist/exports/ContextualHelp.cjs.map +1 -1
- package/dist/exports/ContextualHelp.mjs.map +1 -1
- package/dist/exports/Disclosure.cjs.map +1 -1
- package/dist/exports/Disclosure.mjs.map +1 -1
- package/dist/exports/DragPreview.cjs +12 -0
- package/dist/exports/DragPreview.cjs.map +1 -0
- package/dist/exports/DragPreview.mjs +7 -0
- package/dist/exports/DragPreview.mjs.map +1 -0
- package/dist/exports/Icon.cjs.map +1 -1
- package/dist/exports/Icon.mjs.map +1 -1
- package/dist/exports/LabeledValue.cjs +13 -0
- package/dist/exports/LabeledValue.cjs.map +1 -0
- package/dist/exports/LabeledValue.mjs +7 -0
- package/dist/exports/LabeledValue.mjs.map +1 -0
- package/dist/exports/Menu.cjs.map +1 -1
- package/dist/exports/Menu.mjs.map +1 -1
- package/dist/exports/SegmentedControl.cjs.map +1 -1
- package/dist/exports/SegmentedControl.mjs.map +1 -1
- package/dist/exports/TableView.cjs +1 -0
- package/dist/exports/TableView.cjs.map +1 -1
- package/dist/exports/TableView.mjs +2 -2
- package/dist/exports/TableView.mjs.map +1 -1
- package/dist/exports/TreeView.cjs.map +1 -1
- package/dist/exports/TreeView.mjs.map +1 -1
- package/dist/exports/index.cjs +17 -0
- package/dist/exports/index.cjs.map +1 -1
- package/dist/exports/index.mjs +10 -2
- package/dist/exports/index.mjs.map +1 -1
- package/dist/exports/useAsyncList.cjs.map +1 -1
- package/dist/exports/useAsyncList.mjs.map +1 -1
- package/dist/exports/useDragAndDrop.cjs +21 -0
- package/dist/exports/useDragAndDrop.cjs.map +1 -0
- package/dist/exports/useDragAndDrop.mjs +11 -0
- package/dist/exports/useDragAndDrop.mjs.map +1 -0
- package/dist/private/Accordion.cjs +2 -2
- package/dist/private/Accordion.cjs.map +1 -1
- package/dist/private/Accordion.css +2 -2
- package/dist/private/Accordion.css.map +1 -1
- package/dist/private/Accordion.mjs +2 -2
- package/dist/private/Accordion.mjs.map +1 -1
- package/dist/private/ActionBar.cjs +61 -61
- 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 +61 -61
- package/dist/private/ActionBar.mjs.map +1 -1
- package/dist/private/ActionButton.cjs +350 -323
- package/dist/private/ActionButton.cjs.map +1 -1
- package/dist/private/ActionButton.css +203 -167
- package/dist/private/ActionButton.css.map +1 -1
- package/dist/private/ActionButton.mjs +351 -324
- package/dist/private/ActionButton.mjs.map +1 -1
- package/dist/private/ActionButtonGroup.cjs +15 -15
- package/dist/private/ActionButtonGroup.cjs.map +1 -1
- package/dist/private/ActionButtonGroup.css +9 -9
- package/dist/private/ActionButtonGroup.css.map +1 -1
- package/dist/private/ActionButtonGroup.mjs +15 -15
- package/dist/private/ActionButtonGroup.mjs.map +1 -1
- 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.cjs.map +1 -1
- package/dist/private/Add.css +6 -6
- package/dist/private/Add.css.map +1 -1
- package/dist/private/Add.mjs +10 -10
- package/dist/private/Add.mjs.map +1 -1
- 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.cjs.map +1 -1
- package/dist/private/Asterisk.css +4 -4
- package/dist/private/Asterisk.css.map +1 -1
- package/dist/private/Asterisk.mjs +6 -6
- package/dist/private/Asterisk.mjs.map +1 -1
- package/dist/private/Avatar.cjs +16 -16
- package/dist/private/Avatar.cjs.map +1 -1
- package/dist/private/Avatar.css +16 -16
- package/dist/private/Avatar.css.map +1 -1
- package/dist/private/Avatar.mjs +16 -16
- package/dist/private/Avatar.mjs.map +1 -1
- package/dist/private/AvatarGroup.cjs +120 -120
- package/dist/private/AvatarGroup.cjs.map +1 -1
- package/dist/private/AvatarGroup.css +31 -31
- package/dist/private/AvatarGroup.css.map +1 -1
- package/dist/private/AvatarGroup.mjs +120 -120
- package/dist/private/AvatarGroup.mjs.map +1 -1
- package/dist/private/Badge.cjs +197 -197
- package/dist/private/Badge.cjs.map +1 -1
- package/dist/private/Badge.css +125 -125
- package/dist/private/Badge.css.map +1 -1
- package/dist/private/Badge.mjs +197 -197
- package/dist/private/Badge.mjs.map +1 -1
- 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 +326 -335
- package/dist/private/Button.cjs.map +1 -1
- package/dist/private/Button.css +172 -180
- package/dist/private/Button.css.map +1 -1
- package/dist/private/Button.mjs +326 -335
- package/dist/private/Button.mjs.map +1 -1
- package/dist/private/ButtonGroup.cjs +20 -20
- package/dist/private/ButtonGroup.cjs.map +1 -1
- package/dist/private/ButtonGroup.css +15 -15
- package/dist/private/ButtonGroup.css.map +1 -1
- package/dist/private/ButtonGroup.mjs +20 -20
- package/dist/private/ButtonGroup.mjs.map +1 -1
- package/dist/private/Calendar.cjs +263 -312
- package/dist/private/Calendar.cjs.map +1 -1
- package/dist/private/Calendar.css +155 -167
- package/dist/private/Calendar.css.map +1 -1
- package/dist/private/Calendar.mjs +266 -315
- package/dist/private/Calendar.mjs.map +1 -1
- package/dist/private/Card.cjs +309 -309
- package/dist/private/Card.cjs.map +1 -1
- package/dist/private/Card.css +206 -206
- package/dist/private/Card.css.map +1 -1
- package/dist/private/Card.mjs +309 -309
- package/dist/private/Card.mjs.map +1 -1
- package/dist/private/CardView.cjs +17 -17
- package/dist/private/CardView.cjs.map +1 -1
- package/dist/private/CardView.css +17 -17
- package/dist/private/CardView.css.map +1 -1
- package/dist/private/CardView.mjs +17 -17
- package/dist/private/CardView.mjs.map +1 -1
- package/dist/private/CenterBaseline.cjs +5 -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 +5 -1
- package/dist/private/CenterBaseline.mjs.map +1 -1
- package/dist/private/Checkbox.cjs +268 -208
- package/dist/private/Checkbox.cjs.map +1 -1
- package/dist/private/Checkbox.css +170 -98
- package/dist/private/Checkbox.css.map +1 -1
- package/dist/private/Checkbox.mjs +269 -209
- package/dist/private/Checkbox.mjs.map +1 -1
- package/dist/private/CheckboxGroup.cjs +44 -43
- package/dist/private/CheckboxGroup.cjs.map +1 -1
- package/dist/private/CheckboxGroup.css +37 -37
- package/dist/private/CheckboxGroup.css.map +1 -1
- package/dist/private/CheckboxGroup.mjs +44 -43
- package/dist/private/CheckboxGroup.mjs.map +1 -1
- package/dist/private/Checkmark.cjs +12 -12
- package/dist/private/Checkmark.cjs.map +1 -1
- package/dist/private/Checkmark.css +8 -8
- package/dist/private/Checkmark.css.map +1 -1
- package/dist/private/Checkmark.mjs +12 -12
- package/dist/private/Checkmark.mjs.map +1 -1
- package/dist/private/Chevron.cjs +12 -12
- package/dist/private/Chevron.cjs.map +1 -1
- package/dist/private/Chevron.css +10 -10
- package/dist/private/Chevron.css.map +1 -1
- package/dist/private/Chevron.mjs +12 -12
- package/dist/private/Chevron.mjs.map +1 -1
- package/dist/private/ClearButton.cjs +30 -30
- package/dist/private/ClearButton.cjs.map +1 -1
- package/dist/private/ClearButton.css +30 -30
- package/dist/private/ClearButton.css.map +1 -1
- package/dist/private/ClearButton.mjs +30 -30
- package/dist/private/ClearButton.mjs.map +1 -1
- package/dist/private/CloseButton.cjs +52 -57
- package/dist/private/CloseButton.cjs.map +1 -1
- package/dist/private/CloseButton.css +47 -51
- package/dist/private/CloseButton.css.map +1 -1
- package/dist/private/CloseButton.mjs +52 -57
- package/dist/private/CloseButton.mjs.map +1 -1
- package/dist/private/ColorArea.cjs +16 -16
- package/dist/private/ColorArea.cjs.map +1 -1
- package/dist/private/ColorArea.css +16 -16
- package/dist/private/ColorArea.css.map +1 -1
- package/dist/private/ColorArea.mjs +16 -16
- package/dist/private/ColorArea.mjs.map +1 -1
- package/dist/private/ColorField.cjs +44 -33
- package/dist/private/ColorField.cjs.map +1 -1
- package/dist/private/ColorField.css +27 -27
- package/dist/private/ColorField.css.map +1 -1
- package/dist/private/ColorField.mjs +44 -33
- package/dist/private/ColorField.mjs.map +1 -1
- package/dist/private/ColorHandle.cjs +27 -27
- package/dist/private/ColorHandle.cjs.map +1 -1
- package/dist/private/ColorHandle.css +42 -42
- package/dist/private/ColorHandle.css.map +1 -1
- package/dist/private/ColorHandle.mjs +27 -27
- package/dist/private/ColorHandle.mjs.map +1 -1
- package/dist/private/ColorSlider.cjs +113 -109
- package/dist/private/ColorSlider.cjs.map +1 -1
- package/dist/private/ColorSlider.css +52 -52
- package/dist/private/ColorSlider.css.map +1 -1
- package/dist/private/ColorSlider.mjs +113 -109
- package/dist/private/ColorSlider.mjs.map +1 -1
- package/dist/private/ColorSwatch.cjs +29 -29
- package/dist/private/ColorSwatch.cjs.map +1 -1
- package/dist/private/ColorSwatch.css +29 -29
- package/dist/private/ColorSwatch.css.map +1 -1
- package/dist/private/ColorSwatch.mjs +29 -29
- package/dist/private/ColorSwatch.mjs.map +1 -1
- package/dist/private/ColorSwatchPicker.cjs +29 -29
- package/dist/private/ColorSwatchPicker.cjs.map +1 -1
- package/dist/private/ColorSwatchPicker.css +48 -48
- package/dist/private/ColorSwatchPicker.css.map +1 -1
- package/dist/private/ColorSwatchPicker.mjs +29 -29
- package/dist/private/ColorSwatchPicker.mjs.map +1 -1
- package/dist/private/ColorWheel.cjs +26 -26
- package/dist/private/ColorWheel.cjs.map +1 -1
- package/dist/private/ColorWheel.css +17 -17
- package/dist/private/ColorWheel.css.map +1 -1
- package/dist/private/ColorWheel.mjs +26 -26
- package/dist/private/ColorWheel.mjs.map +1 -1
- package/dist/private/ComboBox.cjs +384 -405
- package/dist/private/ComboBox.cjs.map +1 -1
- package/dist/private/ComboBox.css +192 -188
- package/dist/private/ComboBox.css.map +1 -1
- package/dist/private/ComboBox.mjs +385 -406
- package/dist/private/ComboBox.mjs.map +1 -1
- package/dist/private/Content.cjs +2 -1
- package/dist/private/Content.cjs.map +1 -1
- package/dist/private/Content.mjs +2 -1
- package/dist/private/Content.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 +76 -0
- package/dist/private/CornerTriangle.cjs.map +1 -0
- package/dist/private/CornerTriangle.css +26 -0
- package/dist/private/CornerTriangle.css.map +1 -0
- package/dist/private/CornerTriangle.mjs +71 -0
- package/dist/private/CornerTriangle.mjs.map +1 -0
- package/dist/private/Cross.cjs +14 -14
- package/dist/private/Cross.cjs.map +1 -1
- package/dist/private/Cross.css +10 -10
- package/dist/private/Cross.css.map +1 -1
- package/dist/private/Cross.mjs +14 -14
- package/dist/private/Cross.mjs.map +1 -1
- package/dist/private/CustomDialog.cjs +27 -26
- package/dist/private/CustomDialog.cjs.map +1 -1
- package/dist/private/CustomDialog.css +25 -25
- package/dist/private/CustomDialog.css.map +1 -1
- package/dist/private/CustomDialog.mjs +27 -26
- package/dist/private/CustomDialog.mjs.map +1 -1
- package/dist/private/Dash.cjs +10 -10
- package/dist/private/Dash.cjs.map +1 -1
- package/dist/private/Dash.css +6 -6
- package/dist/private/Dash.css.map +1 -1
- package/dist/private/Dash.mjs +10 -10
- package/dist/private/Dash.mjs.map +1 -1
- package/dist/private/DateField.cjs +73 -73
- package/dist/private/DateField.cjs.map +1 -1
- package/dist/private/DateField.css +77 -77
- package/dist/private/DateField.css.map +1 -1
- package/dist/private/DateField.mjs +73 -73
- package/dist/private/DateField.mjs.map +1 -1
- 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 +21 -18
- package/dist/private/Dialog.cjs.map +1 -1
- package/dist/private/Dialog.css +70 -70
- package/dist/private/Dialog.css.map +1 -1
- package/dist/private/Dialog.mjs +21 -18
- package/dist/private/Dialog.mjs.map +1 -1
- package/dist/private/DialogContainer.cjs.map +1 -1
- package/dist/private/DialogContainer.mjs.map +1 -1
- package/dist/private/DialogTrigger.cjs.map +1 -1
- package/dist/private/DialogTrigger.mjs.map +1 -1
- package/dist/private/Disclosure.cjs +119 -119
- 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 +119 -119
- package/dist/private/Disclosure.mjs.map +1 -1
- package/dist/private/Divider.cjs +25 -25
- package/dist/private/Divider.cjs.map +1 -1
- package/dist/private/Divider.css +25 -25
- package/dist/private/Divider.css.map +1 -1
- package/dist/private/Divider.mjs +25 -25
- package/dist/private/Divider.mjs.map +1 -1
- package/dist/private/DragHandle.cjs +76 -0
- package/dist/private/DragHandle.cjs.map +1 -0
- package/dist/private/DragHandle.css +26 -0
- package/dist/private/DragHandle.css.map +1 -0
- package/dist/private/DragHandle.mjs +71 -0
- package/dist/private/DragHandle.mjs.map +1 -0
- package/dist/private/DragPreview.cjs +297 -0
- package/dist/private/DragPreview.cjs.map +1 -0
- package/dist/private/DragPreview.css +459 -0
- package/dist/private/DragPreview.css.map +1 -0
- package/dist/private/DragPreview.mjs +288 -0
- package/dist/private/DragPreview.mjs.map +1 -0
- 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 +421 -372
- package/dist/private/Field.cjs.map +1 -1
- package/dist/private/Field.css +206 -154
- package/dist/private/Field.css.map +1 -1
- package/dist/private/Field.mjs +422 -373
- package/dist/private/Field.mjs.map +1 -1
- package/dist/private/Fonts.cjs.map +1 -1
- package/dist/private/Fonts.mjs.map +1 -1
- package/dist/private/Form.cjs +9 -9
- package/dist/private/Form.cjs.map +1 -1
- package/dist/private/Form.css +9 -9
- package/dist/private/Form.css.map +1 -1
- package/dist/private/Form.mjs +9 -9
- package/dist/private/Form.mjs.map +1 -1
- package/dist/private/FullscreenDialog.cjs +7 -6
- package/dist/private/FullscreenDialog.cjs.map +1 -1
- package/dist/private/FullscreenDialog.css +78 -78
- package/dist/private/FullscreenDialog.css.map +1 -1
- package/dist/private/FullscreenDialog.mjs +7 -6
- package/dist/private/FullscreenDialog.mjs.map +1 -1
- package/dist/private/IllustratedMessage.cjs +228 -228
- package/dist/private/IllustratedMessage.cjs.map +1 -1
- package/dist/private/IllustratedMessage.css +72 -72
- package/dist/private/IllustratedMessage.css.map +1 -1
- package/dist/private/IllustratedMessage.mjs +228 -228
- package/dist/private/IllustratedMessage.mjs.map +1 -1
- package/dist/private/Image.cjs +16 -16
- package/dist/private/Image.cjs.map +1 -1
- package/dist/private/Image.css +14 -14
- package/dist/private/Image.css.map +1 -1
- package/dist/private/Image.mjs +16 -16
- package/dist/private/Image.mjs.map +1 -1
- package/dist/private/ImageCoordinator.cjs.map +1 -1
- package/dist/private/ImageCoordinator.mjs.map +1 -1
- 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 +359 -0
- package/dist/private/LabeledValue.cjs.map +1 -0
- package/dist/private/LabeledValue.css +285 -0
- package/dist/private/LabeledValue.css.map +1 -0
- package/dist/private/LabeledValue.mjs +353 -0
- package/dist/private/LabeledValue.mjs.map +1 -0
- package/dist/private/Link.cjs +49 -49
- package/dist/private/Link.cjs.map +1 -1
- package/dist/private/Link.css +41 -41
- package/dist/private/Link.css.map +1 -1
- package/dist/private/Link.mjs +49 -49
- package/dist/private/Link.mjs.map +1 -1
- package/dist/private/LinkOut.cjs +8 -8
- package/dist/private/LinkOut.cjs.map +1 -1
- package/dist/private/LinkOut.css +8 -8
- package/dist/private/LinkOut.css.map +1 -1
- package/dist/private/LinkOut.mjs +8 -8
- package/dist/private/LinkOut.mjs.map +1 -1
- package/dist/private/ListView.cjs +422 -489
- package/dist/private/ListView.cjs.map +1 -1
- package/dist/private/ListView.css +276 -348
- package/dist/private/ListView.css.map +1 -1
- package/dist/private/ListView.mjs +422 -488
- package/dist/private/ListView.mjs.map +1 -1
- package/dist/private/Menu.cjs +489 -471
- package/dist/private/Menu.cjs.map +1 -1
- package/dist/private/Menu.css +205 -205
- package/dist/private/Menu.css.map +1 -1
- package/dist/private/Menu.mjs +489 -471
- package/dist/private/Menu.mjs.map +1 -1
- package/dist/private/Meter.cjs +153 -153
- package/dist/private/Meter.cjs.map +1 -1
- package/dist/private/Meter.css +91 -91
- package/dist/private/Meter.css.map +1 -1
- package/dist/private/Meter.mjs +153 -153
- package/dist/private/Meter.mjs.map +1 -1
- package/dist/private/Modal.cjs +74 -74
- package/dist/private/Modal.cjs.map +1 -1
- package/dist/private/Modal.css +59 -59
- package/dist/private/Modal.css.map +1 -1
- package/dist/private/Modal.mjs +74 -74
- package/dist/private/Modal.mjs.map +1 -1
- 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 +115 -114
- package/dist/private/NumberField.cjs.map +1 -1
- package/dist/private/NumberField.css +99 -99
- package/dist/private/NumberField.css.map +1 -1
- package/dist/private/NumberField.mjs +115 -114
- package/dist/private/NumberField.mjs.map +1 -1
- package/dist/private/Picker.cjs +277 -277
- 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 +277 -277
- 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.cjs.map +1 -1
- package/dist/private/ProgressBar.css +99 -99
- package/dist/private/ProgressBar.css.map +1 -1
- package/dist/private/ProgressBar.mjs +163 -163
- package/dist/private/ProgressBar.mjs.map +1 -1
- package/dist/private/ProgressCircle.cjs +31 -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 +31 -31
- package/dist/private/ProgressCircle.mjs.map +1 -1
- package/dist/private/Provider.cjs +19 -19
- package/dist/private/Provider.cjs.map +1 -1
- package/dist/private/Provider.css +15 -15
- package/dist/private/Provider.css.map +1 -1
- package/dist/private/Provider.mjs +19 -19
- package/dist/private/Provider.mjs.map +1 -1
- package/dist/private/RadioGroup.cjs +251 -203
- package/dist/private/RadioGroup.cjs.map +1 -1
- package/dist/private/RadioGroup.css +167 -135
- package/dist/private/RadioGroup.css.map +1 -1
- package/dist/private/RadioGroup.mjs +252 -204
- package/dist/private/RadioGroup.mjs.map +1 -1
- package/dist/private/RangeCalendar.cjs +19 -17
- 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 +19 -17
- package/dist/private/RangeCalendar.mjs.map +1 -1
- package/dist/private/RangeSlider.cjs +7 -15
- package/dist/private/RangeSlider.cjs.map +1 -1
- package/dist/private/RangeSlider.mjs +8 -16
- package/dist/private/RangeSlider.mjs.map +1 -1
- package/dist/private/S2_CornerTriangleSize100.cjs +26 -0
- package/dist/private/S2_CornerTriangleSize100.cjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize100.mjs +21 -0
- package/dist/private/S2_CornerTriangleSize100.mjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize200.cjs +26 -0
- package/dist/private/S2_CornerTriangleSize200.cjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize200.mjs +21 -0
- package/dist/private/S2_CornerTriangleSize200.mjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize300.cjs +26 -0
- package/dist/private/S2_CornerTriangleSize300.cjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize300.mjs +21 -0
- package/dist/private/S2_CornerTriangleSize300.mjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize75.cjs +26 -0
- package/dist/private/S2_CornerTriangleSize75.cjs.map +1 -0
- package/dist/private/S2_CornerTriangleSize75.mjs +21 -0
- package/dist/private/S2_CornerTriangleSize75.mjs.map +1 -0
- package/dist/private/S2_DragHandleSize100.cjs +60 -0
- package/dist/private/S2_DragHandleSize100.cjs.map +1 -0
- package/dist/private/S2_DragHandleSize100.mjs +55 -0
- package/dist/private/S2_DragHandleSize100.mjs.map +1 -0
- package/dist/private/S2_DragHandleSize200.cjs +60 -0
- package/dist/private/S2_DragHandleSize200.cjs.map +1 -0
- package/dist/private/S2_DragHandleSize200.mjs +55 -0
- package/dist/private/S2_DragHandleSize200.mjs.map +1 -0
- package/dist/private/S2_DragHandleSize300.cjs +60 -0
- package/dist/private/S2_DragHandleSize300.cjs.map +1 -0
- package/dist/private/S2_DragHandleSize300.mjs +55 -0
- package/dist/private/S2_DragHandleSize300.mjs.map +1 -0
- package/dist/private/S2_DragHandleSize75.cjs +60 -0
- package/dist/private/S2_DragHandleSize75.cjs.map +1 -0
- package/dist/private/S2_DragHandleSize75.mjs +55 -0
- package/dist/private/S2_DragHandleSize75.mjs.map +1 -0
- package/dist/private/SearchField.cjs +41 -41
- package/dist/private/SearchField.cjs.map +1 -1
- package/dist/private/SearchField.css +45 -45
- package/dist/private/SearchField.css.map +1 -1
- package/dist/private/SearchField.mjs +41 -41
- package/dist/private/SearchField.mjs.map +1 -1
- package/dist/private/SegmentedControl.cjs +178 -178
- package/dist/private/SegmentedControl.cjs.map +1 -1
- package/dist/private/SegmentedControl.css +123 -123
- package/dist/private/SegmentedControl.css.map +1 -1
- package/dist/private/SegmentedControl.mjs +178 -178
- package/dist/private/SegmentedControl.mjs.map +1 -1
- package/dist/private/SelectBoxGroup.cjs +142 -142
- package/dist/private/SelectBoxGroup.cjs.map +1 -1
- package/dist/private/SelectBoxGroup.css +120 -120
- package/dist/private/SelectBoxGroup.css.map +1 -1
- package/dist/private/SelectBoxGroup.mjs +142 -142
- package/dist/private/SelectBoxGroup.mjs.map +1 -1
- package/dist/private/SkeletonCollection.cjs.map +1 -1
- package/dist/private/SkeletonCollection.mjs.map +1 -1
- package/dist/private/Slider.cjs +318 -332
- package/dist/private/Slider.cjs.map +1 -1
- package/dist/private/Slider.css +177 -157
- package/dist/private/Slider.css.map +1 -1
- package/dist/private/Slider.mjs +319 -333
- package/dist/private/Slider.mjs.map +1 -1
- package/dist/private/StatusLight.cjs +115 -115
- package/dist/private/StatusLight.cjs.map +1 -1
- package/dist/private/StatusLight.css +59 -59
- package/dist/private/StatusLight.css.map +1 -1
- package/dist/private/StatusLight.mjs +115 -115
- package/dist/private/StatusLight.mjs.map +1 -1
- package/dist/private/Switch.cjs +219 -176
- package/dist/private/Switch.cjs.map +1 -1
- package/dist/private/Switch.css +128 -84
- package/dist/private/Switch.css.map +1 -1
- package/dist/private/Switch.mjs +219 -176
- package/dist/private/Switch.mjs.map +1 -1
- package/dist/private/TableView.cjs +735 -518
- package/dist/private/TableView.cjs.map +1 -1
- package/dist/private/TableView.css +528 -308
- package/dist/private/TableView.css.map +1 -1
- package/dist/private/TableView.mjs +737 -521
- package/dist/private/TableView.mjs.map +1 -1
- package/dist/private/Tabs.cjs +123 -123
- 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 +123 -123
- package/dist/private/Tabs.mjs.map +1 -1
- package/dist/private/TabsPicker.cjs +130 -129
- package/dist/private/TabsPicker.cjs.map +1 -1
- package/dist/private/TabsPicker.css +108 -108
- package/dist/private/TabsPicker.css.map +1 -1
- package/dist/private/TabsPicker.mjs +130 -129
- package/dist/private/TabsPicker.mjs.map +1 -1
- 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 +84 -73
- package/dist/private/TextField.cjs.map +1 -1
- package/dist/private/TextField.css +54 -54
- package/dist/private/TextField.css.map +1 -1
- package/dist/private/TextField.mjs +85 -74
- package/dist/private/TextField.mjs.map +1 -1
- package/dist/private/TimeField.cjs +51 -51
- package/dist/private/TimeField.cjs.map +1 -1
- package/dist/private/TimeField.css +47 -47
- package/dist/private/TimeField.css.map +1 -1
- package/dist/private/TimeField.mjs +51 -51
- package/dist/private/TimeField.mjs.map +1 -1
- package/dist/private/Toast.cjs +122 -121
- 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 +122 -121
- package/dist/private/Toast.mjs.map +1 -1
- package/dist/private/Toast.module_css.cjs +21 -21
- package/dist/private/Toast.module_css.cjs.map +1 -1
- package/dist/private/Toast.module_css.mjs +21 -21
- package/dist/private/Toast.module_css.mjs.map +1 -1
- package/dist/private/Toast_module.css +44 -44
- package/dist/private/Toast_module.css.map +1 -1
- package/dist/private/ToggleButton.cjs +59 -26
- package/dist/private/ToggleButton.cjs.map +1 -1
- package/dist/private/ToggleButton.css +56 -12
- package/dist/private/ToggleButton.css.map +1 -1
- package/dist/private/ToggleButton.mjs +60 -27
- package/dist/private/ToggleButton.mjs.map +1 -1
- package/dist/private/ToggleButtonGroup.cjs.map +1 -1
- package/dist/private/ToggleButtonGroup.mjs.map +1 -1
- package/dist/private/Tooltip.cjs +86 -86
- package/dist/private/Tooltip.cjs.map +1 -1
- package/dist/private/Tooltip.css +70 -70
- package/dist/private/Tooltip.css.map +1 -1
- package/dist/private/Tooltip.mjs +86 -86
- package/dist/private/Tooltip.mjs.map +1 -1
- package/dist/private/TreeView.cjs +300 -233
- package/dist/private/TreeView.cjs.map +1 -1
- package/dist/private/TreeView.css +243 -181
- package/dist/private/TreeView.css.map +1 -1
- package/dist/private/TreeView.mjs +301 -234
- package/dist/private/TreeView.mjs.map +1 -1
- package/dist/private/dnd-utils.cjs +149 -0
- package/dist/private/dnd-utils.cjs.map +1 -0
- package/dist/private/dnd-utils.css +164 -0
- package/dist/private/dnd-utils.css.map +1 -0
- package/dist/private/dnd-utils.mjs +143 -0
- package/dist/private/dnd-utils.mjs.map +1 -0
- package/dist/private/font-faces.css.map +1 -1
- package/dist/private/intl/ar-AE.cjs +1 -0
- package/dist/private/intl/ar-AE.cjs.map +1 -1
- package/dist/private/intl/ar-AE.mjs +1 -0
- package/dist/private/intl/ar-AE.mjs.map +1 -1
- package/dist/private/intl/bg-BG.cjs +1 -0
- package/dist/private/intl/bg-BG.cjs.map +1 -1
- package/dist/private/intl/bg-BG.mjs +1 -0
- package/dist/private/intl/bg-BG.mjs.map +1 -1
- package/dist/private/intl/cs-CZ.cjs +1 -0
- package/dist/private/intl/cs-CZ.cjs.map +1 -1
- package/dist/private/intl/cs-CZ.mjs +1 -0
- package/dist/private/intl/cs-CZ.mjs.map +1 -1
- package/dist/private/intl/da-DK.cjs +1 -0
- package/dist/private/intl/da-DK.cjs.map +1 -1
- package/dist/private/intl/da-DK.mjs +1 -0
- package/dist/private/intl/da-DK.mjs.map +1 -1
- package/dist/private/intl/de-DE.cjs +1 -0
- package/dist/private/intl/de-DE.cjs.map +1 -1
- package/dist/private/intl/de-DE.mjs +1 -0
- package/dist/private/intl/de-DE.mjs.map +1 -1
- package/dist/private/intl/el-GR.cjs +1 -0
- package/dist/private/intl/el-GR.cjs.map +1 -1
- package/dist/private/intl/el-GR.mjs +1 -0
- package/dist/private/intl/el-GR.mjs.map +1 -1
- package/dist/private/intl/en-US.cjs +1 -0
- package/dist/private/intl/en-US.cjs.map +1 -1
- package/dist/private/intl/en-US.mjs +1 -0
- package/dist/private/intl/en-US.mjs.map +1 -1
- package/dist/private/intl/es-ES.cjs +1 -0
- package/dist/private/intl/es-ES.cjs.map +1 -1
- package/dist/private/intl/es-ES.mjs +1 -0
- package/dist/private/intl/es-ES.mjs.map +1 -1
- package/dist/private/intl/et-EE.cjs +1 -0
- package/dist/private/intl/et-EE.cjs.map +1 -1
- package/dist/private/intl/et-EE.mjs +1 -0
- package/dist/private/intl/et-EE.mjs.map +1 -1
- package/dist/private/intl/fi-FI.cjs +1 -0
- package/dist/private/intl/fi-FI.cjs.map +1 -1
- package/dist/private/intl/fi-FI.mjs +1 -0
- package/dist/private/intl/fi-FI.mjs.map +1 -1
- package/dist/private/intl/fr-FR.cjs +1 -0
- package/dist/private/intl/fr-FR.cjs.map +1 -1
- package/dist/private/intl/fr-FR.mjs +1 -0
- package/dist/private/intl/fr-FR.mjs.map +1 -1
- package/dist/private/intl/he-IL.cjs +1 -0
- package/dist/private/intl/he-IL.cjs.map +1 -1
- package/dist/private/intl/he-IL.mjs +1 -0
- package/dist/private/intl/he-IL.mjs.map +1 -1
- package/dist/private/intl/hr-HR.cjs +1 -0
- package/dist/private/intl/hr-HR.cjs.map +1 -1
- package/dist/private/intl/hr-HR.mjs +1 -0
- package/dist/private/intl/hr-HR.mjs.map +1 -1
- package/dist/private/intl/hu-HU.cjs +1 -0
- package/dist/private/intl/hu-HU.cjs.map +1 -1
- package/dist/private/intl/hu-HU.mjs +1 -0
- package/dist/private/intl/hu-HU.mjs.map +1 -1
- package/dist/private/intl/it-IT.cjs +1 -0
- package/dist/private/intl/it-IT.cjs.map +1 -1
- package/dist/private/intl/it-IT.mjs +1 -0
- package/dist/private/intl/it-IT.mjs.map +1 -1
- package/dist/private/intl/ja-JP.cjs +1 -0
- package/dist/private/intl/ja-JP.cjs.map +1 -1
- package/dist/private/intl/ja-JP.mjs +1 -0
- package/dist/private/intl/ja-JP.mjs.map +1 -1
- package/dist/private/intl/ko-KR.cjs +1 -0
- package/dist/private/intl/ko-KR.cjs.map +1 -1
- package/dist/private/intl/ko-KR.mjs +1 -0
- package/dist/private/intl/ko-KR.mjs.map +1 -1
- package/dist/private/intl/lt-LT.cjs +1 -0
- package/dist/private/intl/lt-LT.cjs.map +1 -1
- package/dist/private/intl/lt-LT.mjs +1 -0
- package/dist/private/intl/lt-LT.mjs.map +1 -1
- package/dist/private/intl/lv-LV.cjs +1 -0
- package/dist/private/intl/lv-LV.cjs.map +1 -1
- package/dist/private/intl/lv-LV.mjs +1 -0
- package/dist/private/intl/lv-LV.mjs.map +1 -1
- package/dist/private/intl/nb-NO.cjs +1 -0
- package/dist/private/intl/nb-NO.cjs.map +1 -1
- package/dist/private/intl/nb-NO.mjs +1 -0
- package/dist/private/intl/nb-NO.mjs.map +1 -1
- package/dist/private/intl/nl-NL.cjs +1 -0
- package/dist/private/intl/nl-NL.cjs.map +1 -1
- package/dist/private/intl/nl-NL.mjs +1 -0
- package/dist/private/intl/nl-NL.mjs.map +1 -1
- package/dist/private/intl/pl-PL.cjs +1 -0
- package/dist/private/intl/pl-PL.cjs.map +1 -1
- package/dist/private/intl/pl-PL.mjs +1 -0
- package/dist/private/intl/pl-PL.mjs.map +1 -1
- package/dist/private/intl/pt-BR.cjs +1 -0
- package/dist/private/intl/pt-BR.cjs.map +1 -1
- package/dist/private/intl/pt-BR.mjs +1 -0
- package/dist/private/intl/pt-BR.mjs.map +1 -1
- package/dist/private/intl/pt-PT.cjs +1 -0
- package/dist/private/intl/pt-PT.cjs.map +1 -1
- package/dist/private/intl/pt-PT.mjs +1 -0
- package/dist/private/intl/pt-PT.mjs.map +1 -1
- package/dist/private/intl/ro-RO.cjs +1 -0
- package/dist/private/intl/ro-RO.cjs.map +1 -1
- package/dist/private/intl/ro-RO.mjs +1 -0
- package/dist/private/intl/ro-RO.mjs.map +1 -1
- package/dist/private/intl/ru-RU.cjs +1 -0
- package/dist/private/intl/ru-RU.cjs.map +1 -1
- package/dist/private/intl/ru-RU.mjs +1 -0
- package/dist/private/intl/ru-RU.mjs.map +1 -1
- package/dist/private/intl/sk-SK.cjs +1 -0
- package/dist/private/intl/sk-SK.cjs.map +1 -1
- package/dist/private/intl/sk-SK.mjs +1 -0
- package/dist/private/intl/sk-SK.mjs.map +1 -1
- package/dist/private/intl/sl-SI.cjs +1 -0
- package/dist/private/intl/sl-SI.cjs.map +1 -1
- package/dist/private/intl/sl-SI.mjs +1 -0
- package/dist/private/intl/sl-SI.mjs.map +1 -1
- package/dist/private/intl/sr-SP.cjs +1 -0
- package/dist/private/intl/sr-SP.cjs.map +1 -1
- package/dist/private/intl/sr-SP.mjs +1 -0
- package/dist/private/intl/sr-SP.mjs.map +1 -1
- package/dist/private/intl/sv-SE.cjs +1 -0
- package/dist/private/intl/sv-SE.cjs.map +1 -1
- package/dist/private/intl/sv-SE.mjs +1 -0
- package/dist/private/intl/sv-SE.mjs.map +1 -1
- package/dist/private/intl/tr-TR.cjs +1 -0
- package/dist/private/intl/tr-TR.cjs.map +1 -1
- package/dist/private/intl/tr-TR.mjs +1 -0
- package/dist/private/intl/tr-TR.mjs.map +1 -1
- package/dist/private/intl/uk-UA.cjs +1 -0
- package/dist/private/intl/uk-UA.cjs.map +1 -1
- package/dist/private/intl/uk-UA.mjs +1 -0
- package/dist/private/intl/uk-UA.mjs.map +1 -1
- package/dist/private/intl/zh-CN.cjs +1 -0
- package/dist/private/intl/zh-CN.cjs.map +1 -1
- package/dist/private/intl/zh-CN.mjs +1 -0
- package/dist/private/intl/zh-CN.mjs.map +1 -1
- package/dist/private/intl/zh-TW.cjs +1 -0
- package/dist/private/intl/zh-TW.cjs.map +1 -1
- package/dist/private/intl/zh-TW.mjs +1 -0
- package/dist/private/intl/zh-TW.mjs.map +1 -1
- package/dist/private/pressScale.cjs.map +1 -1
- package/dist/private/pressScale.mjs.map +1 -1
- package/dist/private/useDOMRef.cjs +3 -2
- package/dist/private/useDOMRef.cjs.map +1 -1
- package/dist/private/useDOMRef.mjs +3 -2
- package/dist/private/useDOMRef.mjs.map +1 -1
- package/dist/private/useDragAndDrop.cjs +25 -0
- package/dist/private/useDragAndDrop.cjs.map +1 -0
- package/dist/private/useDragAndDrop.mjs +20 -0
- package/dist/private/useDragAndDrop.mjs.map +1 -0
- package/dist/types/exports/DragPreview.d.ts +2 -0
- package/dist/types/exports/LabeledValue.d.ts +2 -0
- package/dist/types/exports/TableView.d.ts +2 -2
- package/dist/types/exports/index.d.ts +11 -2
- package/dist/types/exports/useDragAndDrop.d.ts +8 -0
- package/dist/types/src/Accordion.d.ts +22 -6
- package/dist/types/src/ActionBar.d.ts +6 -2
- package/dist/types/src/ActionButton.d.ts +15 -5
- package/dist/types/src/ActionButtonGroup.d.ts +13 -4
- package/dist/types/src/ActionMenu.d.ts +1 -1
- package/dist/types/src/AlertDialog.d.ts +3 -1
- package/dist/types/src/Avatar.d.ts +1 -0
- package/dist/types/src/AvatarGroup.d.ts +1 -0
- package/dist/types/src/Badge.d.ts +6 -2
- package/dist/types/src/Breadcrumbs.d.ts +1 -1
- package/dist/types/src/Button.d.ts +2 -1
- package/dist/types/src/Calendar.d.ts +8 -5
- package/dist/types/src/Card.d.ts +4 -1
- package/dist/types/src/CardView.d.ts +6 -1
- package/dist/types/src/CenterBaseline.d.ts +2 -1
- package/dist/types/src/Checkbox.d.ts +5 -5
- package/dist/types/src/CoachMark.d.ts +3 -3
- package/dist/types/src/ColorArea.d.ts +2 -1
- package/dist/types/src/ColorField.d.ts +6 -0
- package/dist/types/src/ColorSwatch.d.ts +2 -0
- package/dist/types/src/ColorSwatchPicker.d.ts +3 -0
- package/dist/types/src/ComboBox.d.ts +18 -7
- package/dist/types/src/ContextualHelp.d.ts +5 -2
- package/dist/types/src/CustomDialog.d.ts +1 -0
- package/dist/types/src/DatePicker.d.ts +5 -2
- package/dist/types/src/DateRangePicker.d.ts +3 -1
- package/dist/types/src/Dialog.d.ts +3 -2
- package/dist/types/src/DialogTrigger.d.ts +3 -3
- package/dist/types/src/Disclosure.d.ts +10 -4
- package/dist/types/src/Divider.d.ts +2 -0
- package/dist/types/src/DragPreview.d.ts +42 -0
- package/dist/types/src/DropZone.d.ts +1 -0
- package/dist/types/src/Field.d.ts +5 -3
- package/dist/types/src/Form.d.ts +3 -1
- package/dist/types/src/FullscreenDialog.d.ts +4 -2
- package/dist/types/src/Image.d.ts +6 -5
- package/dist/types/src/ImageCoordinator.d.ts +3 -1
- package/dist/types/src/InlineAlert.d.ts +4 -2
- package/dist/types/src/LabeledValue.d.ts +61 -0
- package/dist/types/src/Link.d.ts +1 -0
- package/dist/types/src/ListBox.d.ts +1 -1
- package/dist/types/src/ListView.d.ts +12 -24
- package/dist/types/src/Menu.d.ts +8 -6
- package/dist/types/src/Meter.d.ts +4 -1
- package/dist/types/src/NumberField.d.ts +9 -1
- package/dist/types/src/Picker.d.ts +12 -7
- package/dist/types/src/Popover.d.ts +2 -1
- package/dist/types/src/ProgressBar.d.ts +3 -2
- package/dist/types/src/ProgressCircle.d.ts +2 -2
- package/dist/types/src/Provider.d.ts +6 -3
- package/dist/types/src/RadioGroup.d.ts +2 -2
- package/dist/types/src/RangeCalendar.d.ts +4 -2
- package/dist/types/src/RangeSlider.d.ts +6 -3
- package/dist/types/src/SelectBoxGroup.d.ts +3 -1
- package/dist/types/src/SkeletonCollection.d.ts +2 -1
- package/dist/types/src/Slider.d.ts +2 -1
- package/dist/types/src/Switch.d.ts +5 -5
- package/dist/types/src/TableView.d.ts +29 -9
- package/dist/types/src/Tabs.d.ts +5 -2
- package/dist/types/src/TabsPicker.d.ts +9 -4
- package/dist/types/src/TagGroup.d.ts +10 -4
- package/dist/types/src/TextField.d.ts +5 -0
- package/dist/types/src/Toast.d.ts +2 -1
- package/dist/types/src/ToggleButton.d.ts +9 -2
- package/dist/types/src/ToggleButtonGroup.d.ts +4 -1
- package/dist/types/src/TreeView.d.ts +6 -3
- package/dist/types/src/dnd-utils.d.ts +8 -0
- package/dist/types/src/pressScale.d.ts +20 -0
- package/dist/types/src/style-utils.d.ts +30 -26
- package/dist/types/src/useDOMRef.d.ts +3 -3
- package/dist/types/src/useDragAndDrop.d.ts +9 -0
- package/dist/types/style/index.d.ts +27 -33
- package/dist/types/style/runtime.d.ts +6 -8
- package/dist/types/style/spectrum-theme.d.ts +42 -50
- package/dist/types/style/style-macro.d.ts +7 -9
- package/dist/types/style/tokens.d.ts +2 -2
- package/dist/types/ui-icons/CornerTriangle.d.ts +4 -0
- package/dist/types/ui-icons/DragHandle.d.ts +4 -0
- package/exports/Accordion.ts +17 -2
- package/exports/ActionMenu.ts +14 -2
- package/exports/Card.ts +16 -2
- package/exports/CardView.ts +16 -2
- package/exports/ColorArea.ts +8 -1
- package/exports/ColorField.ts +8 -1
- package/exports/ColorSlider.ts +8 -1
- package/exports/ColorSwatch.ts +8 -1
- package/exports/ColorSwatchPicker.ts +8 -1
- package/exports/ColorWheel.ts +8 -1
- package/exports/ContextualHelp.ts +5 -1
- package/exports/Disclosure.ts +7 -1
- package/exports/DragPreview.ts +2 -0
- package/exports/Icon.ts +6 -1
- package/exports/LabeledValue.ts +2 -0
- package/exports/Menu.ts +17 -2
- package/exports/SegmentedControl.ts +5 -1
- package/exports/TableView.ts +27 -3
- package/exports/TreeView.ts +6 -1
- package/exports/index.ts +174 -17
- package/exports/useAsyncList.ts +7 -1
- package/exports/useDragAndDrop.ts +36 -0
- package/icons/Icon.cjs +10 -10
- package/icons/Icon.cjs.map +1 -1
- package/icons/Icon.css +9 -9
- package/icons/Icon.css.map +1 -1
- package/icons/Icon.mjs +10 -10
- package/icons/Icon.mjs.map +1 -1
- package/icons/Skeleton.cjs +2 -2
- package/icons/Skeleton.cjs.map +1 -1
- package/icons/Skeleton.css +6 -6
- package/icons/Skeleton.css.map +1 -1
- package/icons/Skeleton.mjs +2 -2
- package/icons/Skeleton.mjs.map +1 -1
- package/icons/runtime.cjs.map +1 -1
- package/icons/runtime.mjs.map +1 -1
- package/icons/useMediaQuery.cjs.map +1 -1
- package/icons/useMediaQuery.mjs.map +1 -1
- package/icons/useSpectrumContextProps.cjs.map +1 -1
- package/icons/useSpectrumContextProps.mjs.map +1 -1
- package/illustrations/gradient/generic1/Conversationbubbles.cjs.map +1 -1
- package/illustrations/gradient/generic1/Conversationbubbles.mjs.map +1 -1
- package/illustrations/gradient/generic2/Conversationbubbles.cjs.map +1 -1
- package/illustrations/gradient/generic2/Conversationbubbles.mjs.map +1 -1
- package/illustrations/linear/BrowserNotCompatible.cjs.map +1 -1
- package/illustrations/linear/BrowserNotCompatible.mjs.map +1 -1
- package/illustrations/linear/CloudStateDisconnected.cjs.map +1 -1
- package/illustrations/linear/CloudStateDisconnected.mjs.map +1 -1
- package/illustrations/linear/ConfettiCelebration.cjs.map +1 -1
- package/illustrations/linear/ConfettiCelebration.mjs.map +1 -1
- package/illustrations/linear/Conversationbubbles.cjs.map +1 -1
- package/illustrations/linear/Conversationbubbles.mjs.map +1 -1
- package/illustrations/linear/MegaphonePromoteExpressive.cjs.map +1 -1
- package/illustrations/linear/MegaphonePromoteExpressive.mjs.map +1 -1
- package/illustrations/linear/NoInternetConnection.cjs.map +1 -1
- package/illustrations/linear/NoInternetConnection.mjs.map +1 -1
- package/package.json +30 -30
- package/src/Accordion.tsx +97 -59
- package/src/ActionBar.tsx +102 -44
- package/src/ActionButton.tsx +359 -252
- package/src/ActionButtonGroup.tsx +59 -38
- package/src/ActionMenu.tsx +21 -9
- package/src/AlertDialog.tsx +28 -25
- package/src/Avatar.tsx +41 -28
- package/src/AvatarGroup.tsx +34 -16
- package/src/Badge.tsx +167 -129
- package/src/Breadcrumbs.tsx +173 -96
- package/src/Button.tsx +390 -288
- package/src/ButtonGroup.tsx +70 -52
- package/src/Calendar.tsx +230 -173
- package/src/Card.tsx +395 -303
- package/src/CardView.tsx +126 -61
- package/src/CenterBaseline.tsx +15 -7
- package/src/Checkbox.tsx +152 -57
- package/src/CheckboxGroup.tsx +96 -63
- package/src/ClearButton.tsx +6 -3
- package/src/CloseButton.tsx +71 -44
- package/src/CoachMark.tsx +204 -192
- package/src/ColorArea.tsx +49 -28
- package/src/ColorField.tsx +83 -36
- package/src/ColorHandle.tsx +36 -25
- package/src/ColorSlider.tsx +123 -90
- package/src/ColorSwatch.tsx +71 -43
- package/src/ColorSwatchPicker.tsx +71 -52
- package/src/ColorWheel.tsx +75 -54
- package/src/ComboBox.tsx +311 -187
- package/src/Content.tsx +59 -38
- package/src/ContextualHelp.tsx +82 -49
- package/src/CustomDialog.tsx +41 -33
- package/src/DateField.tsx +57 -27
- package/src/DatePicker.tsx +117 -65
- package/src/DateRangePicker.tsx +209 -157
- package/src/Dialog.tsx +24 -16
- package/src/DialogContainer.tsx +4 -7
- package/src/DialogTrigger.tsx +4 -6
- package/src/Disclosure.tsx +102 -80
- package/src/Divider.tsx +71 -49
- package/src/DragPreview.tsx +193 -0
- package/src/DropZone.tsx +71 -40
- package/src/Field.tsx +239 -107
- package/src/Fonts.tsx +18 -11
- package/src/Form.tsx +42 -27
- package/src/FullscreenDialog.tsx +24 -39
- package/src/Icon.tsx +70 -33
- package/src/IllustratedMessage.tsx +98 -69
- package/src/Image.tsx +105 -49
- package/src/ImageCoordinator.tsx +39 -24
- package/src/InlineAlert.tsx +90 -80
- package/src/LabeledValue.tsx +344 -0
- package/src/Link.tsx +99 -45
- package/src/ListBox.tsx +2 -9
- package/src/ListView.tsx +486 -280
- package/src/Menu.tsx +313 -180
- package/src/Meter.tsx +51 -21
- package/src/Modal.tsx +90 -81
- package/src/NotificationBadge.tsx +98 -73
- package/src/NumberField.tsx +160 -90
- package/src/Picker.tsx +311 -171
- package/src/Popover.tsx +195 -149
- package/src/ProgressBar.tsx +81 -56
- package/src/ProgressCircle.tsx +70 -48
- package/src/Provider.tsx +16 -16
- package/src/RadioGroup.tsx +164 -55
- package/src/RangeCalendar.tsx +63 -41
- package/src/RangeSlider.tsx +48 -35
- package/src/SearchField.tsx +110 -75
- package/src/SegmentedControl.tsx +101 -76
- package/src/SelectBoxGroup.tsx +231 -191
- package/src/Skeleton.tsx +75 -49
- package/src/SkeletonCollection.tsx +16 -16
- package/src/Slider.tsx +135 -83
- package/src/StatusLight.tsx +61 -22
- package/src/Switch.tsx +122 -38
- package/src/TableView.tsx +1002 -356
- package/src/Tabs.tsx +327 -183
- package/src/TabsPicker.tsx +152 -107
- package/src/TagGroup.tsx +175 -80
- package/src/TextField.tsx +120 -54
- package/src/TimeField.tsx +48 -23
- package/src/Toast.module.css +11 -5
- package/src/Toast.tsx +119 -84
- package/src/ToggleButton.tsx +99 -25
- package/src/ToggleButtonGroup.tsx +22 -6
- package/src/Toolbar.tsx +0 -1
- package/src/Tooltip.tsx +64 -26
- package/src/TreeView.tsx +346 -91
- package/src/bar-utils.ts +65 -68
- package/src/dnd-utils.tsx +127 -0
- package/src/font-faces.css +129 -33
- package/src/page.macro.ts +2 -2
- package/src/pressScale.ts +24 -1
- package/src/progress-utils.tsx +1 -1
- package/src/style-utils.ts +214 -212
- package/src/useDOMRef.ts +26 -11
- package/src/useDragAndDrop.ts +32 -0
- package/src/useMediaQuery.ts +2 -4
- package/src/useSpectrumContextProps.ts +5 -1
- package/style/__tests__/mergeStyles.test.ts +15 -4
- package/style/__tests__/style-macro.test.js +81 -71
- package/style/dist/main.cjs.map +1 -1
- package/style/dist/module.mjs.map +1 -1
- package/style/dist/spectrum-theme.cjs +4 -5
- package/style/dist/spectrum-theme.cjs.map +1 -1
- package/style/dist/spectrum-theme.mjs +4 -5
- package/style/dist/spectrum-theme.mjs.map +1 -1
- package/style/dist/style-macro.cjs +2 -1
- package/style/dist/style-macro.cjs.map +1 -1
- package/style/dist/style-macro.mjs +2 -1
- package/style/dist/style-macro.mjs.map +1 -1
- package/style/dist/style-utils.cjs.map +1 -1
- package/style/dist/style-utils.mjs.map +1 -1
- package/style/index.ts +105 -74
- package/style/package.json +2 -2
- package/style/runtime.ts +6 -8
- package/style/spectrum-theme.ts +482 -194
- package/style/style-macro.ts +310 -121
- package/style/tokens.ts +79 -41
- package/style/types.ts +146 -70
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.cjs.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.cjs.map"}
|
package/dist/private/Image.css
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
1
|
@layer _.a {
|
|
2
|
-
.
|
|
2
|
+
.gH131 {
|
|
3
3
|
background-color: light-dark(#e9e9e9, #2c2c2c);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.
|
|
6
|
+
._Nc131 {
|
|
7
7
|
overflow-x: hidden;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
.
|
|
10
|
+
.Pc131 {
|
|
11
11
|
overflow-y: hidden;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.
|
|
14
|
+
.sb131 {
|
|
15
15
|
display: block;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.
|
|
18
|
+
.Za131 {
|
|
19
19
|
width: 100%;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
.
|
|
22
|
+
.Fb131 {
|
|
23
23
|
height: 100%;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.
|
|
26
|
+
._Ia131 {
|
|
27
27
|
opacity: 0;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.
|
|
30
|
+
._Ib131 {
|
|
31
31
|
opacity: 1;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.
|
|
34
|
+
.Ye131 {
|
|
35
35
|
transition-property: none;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.
|
|
38
|
+
.Yf131 {
|
|
39
39
|
transition-property: opacity;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
.
|
|
42
|
+
.Xe131 {
|
|
43
43
|
transition-duration: .5s;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
.
|
|
46
|
+
._2b131 {
|
|
47
47
|
transition-timing-function: cubic-bezier(.45, 0, .4, 1);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.
|
|
50
|
+
._H40ub4c131 {
|
|
51
51
|
object-fit: inherit;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
.
|
|
54
|
+
.__D40ub4c131 {
|
|
55
55
|
object-position: inherit;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"ACsKsB;EAAA;;;;EAAA;;;;EAAA;;;;EAKJ;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EA6IU;;;;EAAA","sources":["a1371b57e9afeb00","packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["@import \"be7e52eb05f9e81c\";\n@import \"b32b10d1bd9c4a50\";\n@import \"0e039ca03c56f78b\";\n","import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.css.map"}
|
|
1
|
+
{"mappings":"ACqLsB;EAAA;;;;EAAA;;;;EAAA;;;;EAKJ;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAAA;;;;EAwJU;;;;EAAA","sources":["a1371b57e9afeb00","packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["@import \"be7e52eb05f9e81c\";\n@import \"b32b10d1bd9c4a50\";\n@import \"0e039ca03c56f78b\";\n","import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.css.map"}
|
package/dist/private/Image.mjs
CHANGED
|
@@ -50,21 +50,21 @@ function $dbd6f0b2503b938c$var$reducer(state, action) {
|
|
|
50
50
|
return state;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
const $dbd6f0b2503b938c$var$wrapperStyles = "
|
|
53
|
+
const $dbd6f0b2503b938c$var$wrapperStyles = " gH131 _Nc131 Pc131";
|
|
54
54
|
const $dbd6f0b2503b938c$var$imgStyles = function anonymous(props) {
|
|
55
55
|
let rules = " ";
|
|
56
|
-
rules += '
|
|
57
|
-
rules += '
|
|
58
|
-
rules += '
|
|
59
|
-
rules += '
|
|
60
|
-
rules += '
|
|
61
|
-
if (props.isRevealed) rules += '
|
|
62
|
-
else rules += '
|
|
63
|
-
if (props.isTransitioning) rules += '
|
|
64
|
-
else rules += '
|
|
65
|
-
rules += '
|
|
66
|
-
if (props.isTransitioning) rules += '
|
|
67
|
-
else rules += '
|
|
56
|
+
rules += ' sb131';
|
|
57
|
+
rules += ' Za131';
|
|
58
|
+
rules += ' Fb131';
|
|
59
|
+
rules += ' _H40ub4c131';
|
|
60
|
+
rules += ' __D40ub4c131';
|
|
61
|
+
if (props.isRevealed) rules += ' _Ib131';
|
|
62
|
+
else rules += ' _Ia131';
|
|
63
|
+
if (props.isTransitioning) rules += ' Yf131';
|
|
64
|
+
else rules += ' Ye131';
|
|
65
|
+
rules += ' Xe131';
|
|
66
|
+
if (props.isTransitioning) rules += ' _2b131';
|
|
67
|
+
else rules += ' _2b131';
|
|
68
68
|
return rules;
|
|
69
69
|
};
|
|
70
70
|
const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwardRef)(function Image(props, domRef) {
|
|
@@ -124,8 +124,8 @@ const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwa
|
|
|
124
124
|
(0, $5AH9h$useLayoutEffect)(()=>{
|
|
125
125
|
if (hidden) return;
|
|
126
126
|
// In React act environments, run immediately.
|
|
127
|
-
// @ts-ignore
|
|
128
|
-
|
|
127
|
+
let isTestEnv = // @ts-ignore
|
|
128
|
+
typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';
|
|
129
129
|
let runTask = isTestEnv ? (fn)=>fn() : queueMicrotask;
|
|
130
130
|
// If the image is already loaded, update state immediately instead of waiting for onLoad.
|
|
131
131
|
let img = imgRef.current;
|
|
@@ -162,7 +162,7 @@ const $dbd6f0b2503b938c$export$3e431a229df88919 = /*#__PURE__*/ (0, $5AH9h$forwa
|
|
|
162
162
|
})
|
|
163
163
|
});
|
|
164
164
|
if (Array.isArray(srcProp)) img = /*#__PURE__*/ (0, $5AH9h$jsxs)("picture", {
|
|
165
|
-
className: "
|
|
165
|
+
className: " _H40ub4c131 __D40ub4c131",
|
|
166
166
|
children: [
|
|
167
167
|
srcProp.map((source, i)=>{
|
|
168
168
|
let { colorScheme: sourceColorScheme, ...sourceProps } = source;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {createContext, ForwardedRef, forwardRef, HTMLAttributeReferrerPolicy, JSX, ReactNode, useCallback, useContext, useMemo, useReducer, useRef, version} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined,\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color scheme setting.\n */\n colorScheme?: 'light' | 'dark',\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined,\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined,\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[],\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string,\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials',\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync',\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto',\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy',\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy,\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number,\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number,\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString,\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode,\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup,\n /**\n * Associates the image with a microdata object.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean\n}\n\nexport const ImageContext = createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState,\n src: string,\n startTime: number,\n loadTime: number\n}\n\ntype Action = \n | {type: 'update', src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(props: ImageProps, domRef: ForwardedRef<HTMLDivElement>): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(() => typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp, [srcProp]);\n \n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n // @ts-ignore\n let isTestEnv = typeof IS_REACT_ACT_ENVIRONMENT === 'boolean' ? IS_REACT_ACT_ENVIRONMENT : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})} />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`} />\n );\n }\n\n return sourceColorScheme === colorScheme\n ? <source key={i} {...sourceProps} />\n : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={UNSAFE_className + mergeStyles(wrapperStyles, styles) + ' ' + (isAnimating ? loadingStyle : '')}>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [slot, hidden, domRef, UNSAFE_style, UNSAFE_className, styles, isAnimating, errorState, alt, crossOrigin, decoding, fetchPriority, loading, referrerPolicy, width, height, onLoad, onError, isRevealed, isTransitioning, srcProp, itemProp, colorScheme]);\n});\n\nfunction getFetchPriorityProp(fetchPriority?: 'high' | 'low' | 'auto'): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.mjs.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/Image.tsx"],"sourcesContent":["import {ColorSchemeContext} from './Provider';\nimport {ContextValue, SlotProps} from 'react-aria-components/slots';\nimport {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributeReferrerPolicy,\n JSX,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n version\n} from 'react';\nimport {DefaultImageGroup, ImageGroup} from './ImageCoordinator';\nimport {loadingStyle, useIsSkeleton, useLoadingAnimation} from './Skeleton';\nimport {mergeStyles} from '../style/runtime';\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils';\nimport {useLayoutEffect} from 'react-aria/private/utils/useLayoutEffect';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface ImageSource {\n /**\n * A comma-separated list of image URLs and descriptors.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#srcset).\n */\n srcSet?: string | undefined;\n /**\n * The color scheme for this image source. Unlike `media`, this respects the `Provider` color\n * scheme setting.\n */\n colorScheme?: 'light' | 'dark';\n /**\n * A media query describing when the source should render.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#media).\n */\n media?: string | undefined;\n /**\n * A list of source sizes that describe the final rendered width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#sizes).\n */\n sizes?: string | undefined;\n /**\n * The mime type of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#type).\n */\n type?: string | undefined;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source#height).\n */\n height?: number;\n}\n\nexport interface ImageProps extends UnsafeStyles, SlotProps {\n /** The URL of the image or a list of conditional sources. */\n src?: string | ImageSource[];\n // TODO\n // srcSet?: string,\n // sizes?: string,\n /** Accessible alt text for the image. */\n alt?: string;\n /**\n * Indicates if the fetching of the image must be done using a CORS request.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin).\n */\n crossOrigin?: 'anonymous' | 'use-credentials';\n /**\n * Whether the browser should decode images synchronously or asynchronously.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding).\n */\n decoding?: 'async' | 'auto' | 'sync';\n /**\n * Provides a hint of the relative priority to use when fetching the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#fetchpriority).\n */\n fetchPriority?: 'high' | 'low' | 'auto';\n /**\n * Whether the image should be loaded immediately or lazily when scrolled into view.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading).\n */\n loading?: 'eager' | 'lazy';\n /**\n * A string indicating which referrer to use when fetching the resource.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#referrerpolicy).\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * The intrinsic width of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#width).\n */\n width?: number;\n /**\n * The intrinsic height of the image.\n * [See MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img#height).\n */\n height?: number;\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StyleString;\n /** A function that is called to render a fallback when the image fails to load. */\n renderError?: () => ReactNode;\n /**\n * A group of images to coordinate between, matching the group passed to the `<ImageCoordinator>`\n * component. If not provided, the default image group is used.\n */\n group?: ImageGroup;\n /**\n * Associates the image with a microdata object. See\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/itemprop).\n */\n itemProp?: string;\n}\n\ninterface ImageContextValue extends ImageProps {\n hidden?: boolean;\n}\n\nexport const ImageContext =\n createContext<ContextValue<Partial<ImageContextValue>, HTMLDivElement>>(null);\n\ntype ImageState = 'loading' | 'loaded' | 'revealed' | 'error';\ninterface State {\n state: ImageState;\n src: string;\n startTime: number;\n loadTime: number;\n}\n\ntype Action =\n | {type: 'update'; src: string}\n | {type: 'loaded'}\n | {type: 'revealed'}\n | {type: 'error'};\n\nfunction createState(src: string): State {\n return {\n state: 'loading',\n src,\n startTime: Date.now(),\n loadTime: 0\n };\n}\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'update': {\n return {\n state: 'loading',\n src: action.src,\n startTime: Date.now(),\n loadTime: 0\n };\n }\n case 'loaded':\n case 'error': {\n return {\n ...state,\n state: action.type\n };\n }\n case 'revealed': {\n return {\n ...state,\n state: 'revealed',\n loadTime: Date.now() - state.startTime\n };\n }\n default:\n return state;\n }\n}\n\nconst wrapperStyles = style({\n backgroundColor: 'gray-100',\n overflow: 'hidden'\n});\n\nconst imgStyles = style({\n display: 'block',\n width: 'full',\n height: 'full',\n objectFit: 'inherit',\n objectPosition: 'inherit',\n opacity: {\n default: 0,\n isRevealed: 1\n },\n transition: {\n default: 'none',\n isTransitioning: 'opacity'\n },\n transitionDuration: 500\n});\n\n/**\n * An image with support for skeleton loading and custom error states.\n */\nexport const Image = forwardRef(function Image(\n props: ImageProps,\n domRef: ForwardedRef<HTMLDivElement>\n): JSX.Element | null {\n [props, domRef] = useSpectrumContextProps(props, domRef, ImageContext);\n\n let {\n src: srcProp = '',\n styles,\n UNSAFE_className = '',\n UNSAFE_style,\n renderError,\n group = DefaultImageGroup,\n // TODO\n // srcSet,\n // sizes,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n slot,\n width,\n height,\n itemProp\n } = props;\n let hidden = (props as ImageContextValue).hidden;\n let colorScheme = useContext(ColorSchemeContext);\n let cacheKey = useMemo(\n () => (typeof srcProp === 'object' ? JSON.stringify(srcProp) : srcProp),\n [srcProp]\n );\n\n let {revealAll, register, unregister, load} = useContext(group);\n let [{state, src: lastCacheKey, loadTime}, dispatch] = useReducer(reducer, cacheKey, createState);\n\n if (cacheKey !== lastCacheKey && !hidden) {\n dispatch({type: 'update', src: cacheKey});\n }\n\n if (state === 'loaded' && revealAll && !hidden) {\n dispatch({type: 'revealed'});\n }\n\n let imgRef = useRef<HTMLImageElement | null>(null);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n register(cacheKey);\n return () => {\n unregister(cacheKey);\n };\n }, [hidden, register, unregister, cacheKey]);\n\n let onLoad = useCallback(() => {\n load(cacheKey);\n dispatch({type: 'loaded'});\n }, [load, cacheKey]);\n\n let onError = useCallback(() => {\n dispatch({type: 'error'});\n unregister(cacheKey);\n }, [unregister, cacheKey]);\n\n let isSkeleton = useIsSkeleton();\n let isAnimating = isSkeleton || state === 'loading' || state === 'loaded';\n let animation = useLoadingAnimation(isAnimating);\n useLayoutEffect(() => {\n if (hidden) {\n return;\n }\n\n // In React act environments, run immediately.\n let isTestEnv =\n // @ts-ignore\n typeof IS_REACT_ACT_ENVIRONMENT === 'boolean'\n ? // @ts-ignore\n IS_REACT_ACT_ENVIRONMENT\n : typeof jest !== 'undefined';\n let runTask = isTestEnv ? fn => fn() : queueMicrotask;\n\n // If the image is already loaded, update state immediately instead of waiting for onLoad.\n let img = imgRef.current;\n if (state === 'loading' && img?.complete) {\n if (img.naturalWidth === 0 && img.naturalHeight === 0) {\n // Queue a microtask so we don't hit React's update limit.\n // TODO: is this necessary?\n runTask(onError);\n } else {\n runTask(onLoad);\n }\n }\n\n animation(domRef.current);\n });\n\n if (props.alt == null && process.env.NODE_ENV !== 'production') {\n console.warn(\n 'The `alt` prop was not provided to an image. ' +\n 'Add `alt` text for screen readers, or set `alt=\"\"` prop to indicate that the image ' +\n 'is decorative or redundant with displayed text and should not be announced by screen readers.'\n );\n }\n\n let errorState = !isSkeleton && state === 'error' && renderError?.();\n let isRevealed = state === 'revealed' && !isSkeleton;\n let isTransitioning = isRevealed && loadTime > 200;\n return useMemo(() => {\n let img = (\n <img\n {...getFetchPriorityProp(fetchPriority)}\n src={typeof srcProp === 'string' && srcProp ? srcProp : undefined}\n alt={alt}\n crossOrigin={crossOrigin}\n decoding={decoding}\n loading={loading}\n referrerPolicy={referrerPolicy}\n width={width}\n height={height}\n ref={imgRef}\n itemProp={itemProp}\n onLoad={onLoad}\n onError={onError}\n className={imgStyles({isRevealed, isTransitioning})}\n />\n );\n\n if (Array.isArray(srcProp)) {\n img = (\n <picture className={style({objectFit: 'inherit', objectPosition: 'inherit'})}>\n {srcProp.map((source, i) => {\n let {colorScheme: sourceColorScheme, ...sourceProps} = source;\n if (sourceColorScheme) {\n if (!colorScheme || colorScheme === 'light dark') {\n return (\n <source\n key={i}\n {...sourceProps}\n media={`${source.media ? `${source.media} and ` : ''}(prefers-color-scheme: ${sourceColorScheme})`}\n />\n );\n }\n\n return sourceColorScheme === colorScheme ? <source key={i} {...sourceProps} /> : null;\n } else {\n return <source key={i} {...sourceProps} />;\n }\n })}\n {img}\n </picture>\n );\n }\n\n return hidden ? null : (\n <div\n ref={domRef}\n slot={slot || undefined}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(wrapperStyles, styles) +\n ' ' +\n (isAnimating ? loadingStyle : '')\n }>\n {errorState}\n {!errorState && img}\n </div>\n );\n }, [\n slot,\n hidden,\n domRef,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n isAnimating,\n errorState,\n alt,\n crossOrigin,\n decoding,\n fetchPriority,\n loading,\n referrerPolicy,\n width,\n height,\n onLoad,\n onError,\n isRevealed,\n isTransitioning,\n srcProp,\n itemProp,\n colorScheme\n ]);\n});\n\nfunction getFetchPriorityProp(\n fetchPriority?: 'high' | 'low' | 'auto'\n): Record<string, string | undefined> {\n const pieces = version.split('.');\n const major = parseInt(pieces[0], 10);\n if (major >= 19) {\n return {fetchPriority};\n }\n return {fetchpriority: fetchPriority};\n}\n"],"names":[],"version":3,"file":"Image.mjs.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {\n Context,\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer\n} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode;\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet\n * loaded.\n *\n * @default 5000\n */\n timeout?: number;\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup;\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean;\n register(url: string): void;\n unregister(url: string): void;\n load(url: string): void;\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean;\n timedOut: boolean;\n loadStartTime: number;\n loaded: Map<string, boolean>;\n}\n\ntype Action =\n | {type: 'register'; url: string}\n | {type: 'unregister'; url: string}\n | {type: 'load'; url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(\n () => {\n dispatch({type: 'timeout'});\n },\n loadStartTime + timeout - Date.now()\n );\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(\n () => (\n <group.Provider value={{revealAll, register, unregister, load}}>{children}</group.Provider>\n ),\n [group, children, revealAll, register, unregister, load]\n );\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.cjs.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;
|
|
1
|
+
{"mappings":"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","sources":["packages/@react-spectrum/s2/src/ImageCoordinator.tsx"],"sourcesContent":["import {\n Context,\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer\n} from 'react';\n\nexport interface ImageCoordinatorProps {\n /** Children within the ImageCoordinator. */\n children: ReactNode;\n /**\n * Time in milliseconds after which images are always displayed, even if all images are not yet\n * loaded.\n *\n * @default 5000\n */\n timeout?: number;\n /**\n * A group of images to coordinate between, matching the group passed to the `<Image>` component.\n * If not provided, the default image group is used.\n */\n group?: ImageGroup;\n}\n\nexport type ImageGroup = Context<ImageGroupValue>;\n\ninterface ImageGroupValue {\n revealAll: boolean;\n register(url: string): void;\n unregister(url: string): void;\n load(url: string): void;\n}\n\nconst defaultContext: ImageGroupValue = {\n revealAll: true,\n register() {},\n unregister() {},\n load() {}\n};\n\nexport const DefaultImageGroup = createImageGroup();\n\nexport function createImageGroup(): ImageGroup {\n return createContext(defaultContext);\n}\n\ninterface State {\n loadedAll: boolean;\n timedOut: boolean;\n loadStartTime: number;\n loaded: Map<string, boolean>;\n}\n\ntype Action =\n | {type: 'register'; url: string}\n | {type: 'unregister'; url: string}\n | {type: 'load'; url: string}\n | {type: 'timeout'};\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'register': {\n if (state.loaded.get(action.url) !== false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, false);\n return {\n loadedAll: false,\n // If we had previously loaded all items, then reset the timed out state\n // since this is the first item of a new batch.\n timedOut: state.loadedAll ? false : state.timedOut,\n loadStartTime: state.loadedAll ? Date.now() : state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'unregister': {\n if (state.loaded.has(action.url)) {\n let loaded = new Map(state.loaded);\n loaded.delete(action.url);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'load': {\n if (state.loaded.get(action.url) === false) {\n let loaded = new Map(state.loaded);\n loaded.set(action.url, true);\n return {\n loadedAll: isAllLoaded(loaded),\n timedOut: state.timedOut,\n loadStartTime: state.loadStartTime,\n loaded\n };\n }\n return state;\n }\n case 'timeout': {\n if (!state.loadedAll && !state.timedOut) {\n return {\n ...state,\n timedOut: true\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n\nfunction isAllLoaded(loaded: Map<string, boolean>) {\n for (let isLoaded of loaded.values()) {\n if (!isLoaded) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * An ImageCoordinator coordinates loading behavior for a group of images.\n * Images within an ImageCoordinator are revealed together once all of them have loaded.\n */\nexport function ImageCoordinator(props: ImageCoordinatorProps): ReactNode {\n // If we are already inside another ImageCoordinator, just pass\n // through children and coordinate loading at the root.\n let ctx = useContext(props.group || DefaultImageGroup);\n if (ctx !== defaultContext) {\n return props.children;\n }\n\n return <ImageCoordinatorRoot {...props} />;\n}\n\nfunction ImageCoordinatorRoot(props: ImageCoordinatorProps) {\n let {children, timeout = 5000, group = DefaultImageGroup} = props;\n let [{loadedAll, timedOut, loadStartTime}, dispatch] = useReducer(reducer, {\n loadedAll: true,\n timedOut: false,\n loadStartTime: 0,\n loaded: new Map()\n });\n\n let register = useCallback((url: string) => dispatch({type: 'register', url}), []);\n let unregister = useCallback((url: string) => dispatch({type: 'unregister', url}), []);\n let load = useCallback((url: string) => dispatch({type: 'load', url}), []);\n\n useEffect(() => {\n if (!loadedAll) {\n let timeoutId = setTimeout(\n () => {\n dispatch({type: 'timeout'});\n },\n loadStartTime + timeout - Date.now()\n );\n\n return () => clearTimeout(timeoutId);\n }\n }, [loadStartTime, loadedAll, timeout]);\n\n let revealAll = loadedAll || timedOut;\n return useMemo(\n () => (\n <group.Provider value={{revealAll, register, unregister, load}}>{children}</group.Provider>\n ),\n [group, children, revealAll, register, unregister, load]\n );\n}\n"],"names":[],"version":3,"file":"ImageCoordinator.mjs.map"}
|