reshaped 4.2.0 → 4.3.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +1 -1
- package/dist/bundle.cjs +2 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.d.cts +158 -0
- package/dist/components/Accordion/Accordion.context.d.ts +1 -1
- package/dist/components/Accordion/Accordion.d.ts +1 -1
- package/dist/components/Accordion/Accordion.js +2 -2
- package/dist/components/Accordion/Accordion.types.d.ts +3 -3
- package/dist/components/Accordion/AccordionContent.d.ts +1 -1
- package/dist/components/Accordion/AccordionContent.js +3 -3
- package/dist/components/Accordion/AccordionControlled.d.ts +1 -1
- package/dist/components/Accordion/AccordionControlled.js +3 -3
- package/dist/components/Accordion/AccordionTrigger.d.ts +1 -1
- package/dist/components/Accordion/AccordionTrigger.js +5 -5
- package/dist/components/Accordion/AccordionUncontrolled.d.ts +1 -1
- package/dist/components/Accordion/AccordionUncontrolled.js +1 -1
- package/dist/components/Accordion/index.d.ts +4 -4
- package/dist/components/Accordion/index.js +3 -3
- package/dist/components/Accordion/tests/Accordion.stories.d.ts +3 -3
- package/dist/components/Accordion/tests/Accordion.stories.js +152 -158
- package/dist/components/Actionable/Actionable.d.ts +1 -1
- package/dist/components/Actionable/Actionable.types.d.ts +1 -1
- package/dist/components/Actionable/index.d.ts +2 -2
- package/dist/components/Actionable/index.js +1 -1
- package/dist/components/Actionable/tests/Actionable.stories.d.ts +1 -1
- package/dist/components/Actionable/tests/Actionable.stories.js +136 -142
- package/dist/components/Alert/Alert.d.ts +1 -1
- package/dist/components/Alert/Alert.js +3 -3
- package/dist/components/Alert/Alert.types.d.ts +3 -3
- package/dist/components/Alert/index.d.ts +2 -2
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/Alert/tests/Alert.stories.d.ts +1 -1
- package/dist/components/Alert/tests/Alert.stories.js +46 -52
- package/dist/components/Autocomplete/Autocomplete.d.ts +1 -1
- package/dist/components/Autocomplete/Autocomplete.js +10 -8
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +5 -5
- package/dist/components/Autocomplete/index.d.ts +2 -2
- package/dist/components/Autocomplete/index.js +1 -1
- package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +2 -2
- package/dist/components/Autocomplete/tests/Autocomplete.stories.js +118 -124
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/Avatar.js +5 -5
- package/dist/components/Avatar/Avatar.types.d.ts +3 -3
- package/dist/components/Avatar/index.d.ts +2 -2
- package/dist/components/Avatar/index.js +1 -1
- package/dist/components/Avatar/tests/Avatar.stories.d.ts +1 -1
- package/dist/components/Avatar/tests/Avatar.stories.js +122 -128
- package/dist/components/Badge/Badge.context.d.ts +7 -0
- package/dist/components/Badge/Badge.context.js +8 -0
- package/dist/components/Badge/Badge.d.ts +4 -3
- package/dist/components/Badge/Badge.js +26 -6
- package/dist/components/Badge/Badge.module.css +1 -1
- package/dist/components/Badge/Badge.types.d.ts +3 -3
- package/dist/components/Badge/BadgeContainer.d.ts +2 -1
- package/dist/components/Badge/BadgeContainer.js +5 -1
- package/dist/components/Badge/index.d.ts +3 -3
- package/dist/components/Badge/index.js +2 -2
- package/dist/components/Badge/tests/Badge.stories.d.ts +3 -2
- package/dist/components/Badge/tests/Badge.stories.js +298 -274
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js +6 -6
- package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +2 -2
- package/dist/components/Breadcrumbs/BreadcrumbsItem.d.ts +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbsItem.js +2 -2
- package/dist/components/Breadcrumbs/index.d.ts +3 -3
- package/dist/components/Breadcrumbs/index.js +2 -2
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +2 -2
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.js +137 -143
- package/dist/components/Button/Button.d.ts +7 -7
- package/dist/components/Button/Button.js +4 -4
- package/dist/components/Button/Button.module.css +1 -1
- package/dist/components/Button/Button.types.d.ts +5 -5
- package/dist/components/Button/ButtonAligner.d.ts +1 -1
- package/dist/components/Button/ButtonAligner.js +1 -1
- package/dist/components/Button/ButtonGroup.d.ts +1 -1
- package/dist/components/Button/index.d.ts +4 -4
- package/dist/components/Button/index.js +3 -3
- package/dist/components/Button/tests/Button.stories.d.ts +9 -12
- package/dist/components/Button/tests/Button.stories.js +590 -585
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js +2 -2
- package/dist/components/Calendar/Calendar.module.css +1 -1
- package/dist/components/Calendar/Calendar.utils.d.ts +1 -1
- package/dist/components/Calendar/CalendarControlled.d.ts +1 -1
- package/dist/components/Calendar/CalendarControlled.js +7 -7
- package/dist/components/Calendar/CalendarControls.d.ts +1 -1
- package/dist/components/Calendar/CalendarControls.js +8 -8
- package/dist/components/Calendar/CalendarDate.d.ts +1 -1
- package/dist/components/Calendar/CalendarDate.js +5 -2
- package/dist/components/Calendar/CalendarMonth.d.ts +1 -1
- package/dist/components/Calendar/CalendarMonth.js +2 -2
- package/dist/components/Calendar/CalendarUncontrolled.d.ts +1 -1
- package/dist/components/Calendar/CalendarUncontrolled.js +1 -1
- package/dist/components/Calendar/CalendarYear.d.ts +1 -1
- package/dist/components/Calendar/CalendarYear.js +3 -3
- package/dist/components/Calendar/index.d.ts +2 -2
- package/dist/components/Calendar/index.js +1 -1
- package/dist/components/Calendar/tests/Calendar.stories.d.ts +2 -1
- package/dist/components/Calendar/tests/Calendar.stories.js +237 -228
- package/dist/components/Calendar/useCalendarKeyboardNavigation.js +3 -3
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +3 -3
- package/dist/components/Card/Card.types.d.ts +3 -3
- package/dist/components/Card/index.d.ts +2 -2
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Card/tests/Card.stories.d.ts +1 -1
- package/dist/components/Card/tests/Card.stories.js +111 -117
- package/dist/components/Carousel/Carousel.d.ts +1 -1
- package/dist/components/Carousel/Carousel.js +5 -5
- package/dist/components/Carousel/Carousel.types.d.ts +3 -3
- package/dist/components/Carousel/CarouselControl.d.ts +1 -1
- package/dist/components/Carousel/CarouselControl.js +4 -4
- package/dist/components/Carousel/index.d.ts +2 -2
- package/dist/components/Carousel/index.js +1 -1
- package/dist/components/Carousel/tests/Carousel.stories.d.ts +1 -1
- package/dist/components/Carousel/tests/Carousel.stories.js +163 -169
- package/dist/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.js +10 -8
- package/dist/components/Checkbox/Checkbox.types.d.ts +2 -2
- package/dist/components/Checkbox/index.d.ts +2 -2
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +1 -1
- package/dist/components/Checkbox/tests/Checkbox.stories.js +97 -103
- package/dist/components/CheckboxGroup/CheckboxGroup.context.d.ts +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.js +2 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.types.d.ts +2 -2
- package/dist/components/CheckboxGroup/CheckboxGroupControlled.d.ts +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupControlled.js +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.d.ts +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.js +1 -1
- package/dist/components/CheckboxGroup/index.d.ts +3 -3
- package/dist/components/CheckboxGroup/index.js +2 -2
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +1 -1
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.js +44 -50
- package/dist/components/Container/Container.d.ts +1 -1
- package/dist/components/Container/Container.js +1 -1
- package/dist/components/Container/Container.types.d.ts +3 -3
- package/dist/components/Container/index.d.ts +2 -2
- package/dist/components/Container/index.js +1 -1
- package/dist/components/Container/tests/Container.stories.d.ts +1 -1
- package/dist/components/Container/tests/Container.stories.js +55 -61
- package/dist/components/ContentToggle/ContentToggle.d.ts +1 -1
- package/dist/components/ContentToggle/ContentToggle.js +1 -1
- package/dist/components/ContentToggle/ContentToggle.types.d.ts +1 -1
- package/dist/components/ContentToggle/index.d.ts +2 -2
- package/dist/components/ContentToggle/index.js +1 -1
- package/dist/components/ContentToggle/tests/ContentToggle.stories.d.ts +1 -1
- package/dist/components/ContentToggle/tests/ContentToggle.stories.js +32 -38
- package/dist/components/ContextMenu/ContextMenu.d.ts +1 -1
- package/dist/components/ContextMenu/ContextMenu.js +6 -6
- package/dist/components/ContextMenu/ContextMenu.types.d.ts +10 -2
- package/dist/components/ContextMenu/index.d.ts +3 -3
- package/dist/components/ContextMenu/index.js +2 -2
- package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +13 -6
- package/dist/components/ContextMenu/tests/ContextMenu.stories.js +164 -70
- package/dist/components/Dismissible/Dismissible.d.ts +1 -1
- package/dist/components/Dismissible/Dismissible.js +2 -2
- package/dist/components/Dismissible/Dismissible.types.d.ts +1 -1
- package/dist/components/Dismissible/index.d.ts +2 -2
- package/dist/components/Dismissible/index.js +1 -1
- package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +1 -1
- package/dist/components/Dismissible/tests/Dismissible.stories.js +60 -66
- package/dist/components/Divider/Divider.d.ts +1 -1
- package/dist/components/Divider/Divider.js +3 -3
- package/dist/components/Divider/Divider.types.d.ts +2 -2
- package/dist/components/Divider/index.d.ts +2 -2
- package/dist/components/Divider/index.js +1 -1
- package/dist/components/Divider/tests/Divider.stories.d.ts +1 -1
- package/dist/components/Divider/tests/Divider.stories.js +85 -91
- package/dist/components/DropdownMenu/DropdownMenu.context.d.ts +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +6 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +18 -12
- package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +5 -5
- package/dist/components/DropdownMenu/index.d.ts +3 -3
- package/dist/components/DropdownMenu/index.js +2 -2
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +8 -8
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +247 -253
- package/dist/components/Expandable/Expandable.d.ts +1 -1
- package/dist/components/Expandable/Expandable.js +3 -3
- package/dist/components/Expandable/Expandable.module.css +1 -1
- package/dist/components/Expandable/Expandable.types.d.ts +1 -1
- package/dist/components/Expandable/index.d.ts +2 -2
- package/dist/components/Expandable/index.js +1 -1
- package/dist/components/Expandable/tests/Expandable.stories.d.ts +1 -1
- package/dist/components/Expandable/tests/Expandable.stories.js +56 -62
- package/dist/components/FileUpload/FileUpload.d.ts +1 -1
- package/dist/components/FileUpload/FileUpload.js +3 -3
- package/dist/components/FileUpload/FileUpload.types.d.ts +3 -3
- package/dist/components/FileUpload/index.d.ts +2 -2
- package/dist/components/FileUpload/index.js +1 -1
- package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +2 -2
- package/dist/components/FileUpload/tests/FileUpload.stories.js +102 -108
- package/dist/components/Flyout/Flyout.constants.d.ts +0 -3
- package/dist/components/Flyout/Flyout.constants.js +0 -17
- package/dist/components/Flyout/Flyout.context.d.ts +1 -1
- package/dist/components/Flyout/Flyout.d.ts +1 -1
- package/dist/components/Flyout/Flyout.js +2 -2
- package/dist/components/Flyout/Flyout.module.css +1 -1
- package/dist/components/Flyout/Flyout.types.d.ts +5 -2
- package/dist/components/Flyout/FlyoutContent.d.ts +1 -1
- package/dist/components/Flyout/FlyoutContent.js +11 -8
- package/dist/components/Flyout/FlyoutControlled.d.ts +1 -1
- package/dist/components/Flyout/FlyoutControlled.js +72 -20
- package/dist/components/Flyout/FlyoutTrigger.d.ts +1 -1
- package/dist/components/Flyout/FlyoutTrigger.js +1 -1
- package/dist/components/Flyout/FlyoutUncontrolled.d.ts +1 -1
- package/dist/components/Flyout/FlyoutUncontrolled.js +1 -1
- package/dist/components/Flyout/index.d.ts +5 -5
- package/dist/components/Flyout/index.js +4 -4
- package/dist/components/Flyout/tests/Flyout.stories.d.ts +7 -0
- package/dist/components/Flyout/tests/Flyout.stories.js +521 -386
- package/dist/components/Flyout/useFlyout.d.ts +1 -1
- package/dist/components/Flyout/useFlyout.js +1 -1
- package/dist/components/FormControl/FormControl.context.d.ts +1 -3
- package/dist/components/FormControl/FormControl.d.ts +1 -1
- package/dist/components/FormControl/FormControl.js +20 -11
- package/dist/components/FormControl/FormControl.types.d.ts +4 -5
- package/dist/components/FormControl/FormControl.utilities.d.ts +1 -1
- package/dist/components/FormControl/FormControlCaption.d.ts +1 -1
- package/dist/components/FormControl/FormControlCaption.js +14 -8
- package/dist/components/FormControl/FormControlError.d.ts +1 -1
- package/dist/components/FormControl/FormControlError.js +2 -2
- package/dist/components/FormControl/FormControlHelper.d.ts +1 -1
- package/dist/components/FormControl/FormControlHelper.js +2 -2
- package/dist/components/FormControl/FormControlLabel.d.ts +1 -1
- package/dist/components/FormControl/FormControlLabel.js +5 -5
- package/dist/components/FormControl/index.d.ts +6 -6
- package/dist/components/FormControl/index.js +5 -5
- package/dist/components/FormControl/tests/FormControl.stories.d.ts +4 -4
- package/dist/components/FormControl/tests/FormControl.stories.js +114 -113
- package/dist/components/Grid/Grid.d.ts +1 -1
- package/dist/components/Grid/Grid.js +2 -2
- package/dist/components/Grid/Grid.types.d.ts +3 -3
- package/dist/components/Grid/index.d.ts +2 -2
- package/dist/components/Grid/index.js +1 -1
- package/dist/components/Grid/tests/Grid.stories.d.ts +2 -2
- package/dist/components/Grid/tests/Grid.stories.js +180 -186
- package/dist/components/Hidden/Hidden.d.ts +1 -1
- package/dist/components/Hidden/Hidden.js +1 -1
- package/dist/components/Hidden/Hidden.types.d.ts +1 -1
- package/dist/components/Hidden/index.d.ts +2 -2
- package/dist/components/Hidden/index.js +1 -1
- package/dist/components/Hidden/tests/Hidden.stories.d.ts +1 -1
- package/dist/components/Hidden/tests/Hidden.stories.js +33 -39
- package/dist/components/HiddenInput/HiddenInput.d.ts +1 -1
- package/dist/components/HiddenInput/HiddenInput.js +5 -7
- package/dist/components/HiddenInput/HiddenInput.types.d.ts +2 -2
- package/dist/components/HiddenInput/index.d.ts +2 -2
- package/dist/components/HiddenInput/index.js +1 -1
- package/dist/components/HiddenInput/tests/HiddenInput.stories.d.ts +5 -1
- package/dist/components/HiddenInput/tests/HiddenInput.stories.js +138 -119
- package/dist/components/HiddenVisually/HiddenVisually.d.ts +1 -1
- package/dist/components/HiddenVisually/index.d.ts +2 -2
- package/dist/components/HiddenVisually/index.js +1 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +1 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +14 -20
- package/dist/components/Icon/Icon.d.ts +1 -1
- package/dist/components/Icon/Icon.js +1 -1
- package/dist/components/Icon/Icon.types.d.ts +2 -2
- package/dist/components/Icon/index.d.ts +2 -2
- package/dist/components/Icon/index.js +1 -1
- package/dist/components/Icon/tests/Icon.stories.d.ts +1 -1
- package/dist/components/Icon/tests/Icon.stories.js +78 -84
- package/dist/components/IconToggle/IconToggle.d.ts +1 -1
- package/dist/components/IconToggle/IconToggle.js +2 -2
- package/dist/components/IconToggle/IconToggle.module.css +1 -1
- package/dist/components/IconToggle/IconToggle.types.d.ts +1 -1
- package/dist/components/IconToggle/index.d.ts +2 -2
- package/dist/components/IconToggle/index.js +1 -1
- package/dist/components/IconToggle/tests/IconToggle.stories.d.ts +1 -1
- package/dist/components/IconToggle/tests/IconToggle.stories.js +12 -18
- package/dist/components/Image/Image.d.ts +1 -1
- package/dist/components/Image/Image.js +8 -5
- package/dist/components/Image/Image.module.css +1 -1
- package/dist/components/Image/Image.types.d.ts +3 -3
- package/dist/components/Image/index.d.ts +2 -2
- package/dist/components/Image/index.js +1 -1
- package/dist/components/Image/tests/Image.stories.d.ts +6 -5
- package/dist/components/Image/tests/Image.stories.js +182 -151
- package/dist/components/Link/Link.d.ts +3 -3
- package/dist/components/Link/Link.js +2 -2
- package/dist/components/Link/Link.types.d.ts +2 -2
- package/dist/components/Link/index.d.ts +2 -2
- package/dist/components/Link/index.js +1 -1
- package/dist/components/Link/tests/Link.stories.d.ts +3 -3
- package/dist/components/Link/tests/Link.stories.js +98 -104
- package/dist/components/Loader/Loader.d.ts +1 -1
- package/dist/components/Loader/Loader.js +1 -1
- package/dist/components/Loader/Loader.types.d.ts +2 -2
- package/dist/components/Loader/index.d.ts +2 -2
- package/dist/components/Loader/index.js +1 -1
- package/dist/components/Loader/tests/Loader.stories.d.ts +1 -1
- package/dist/components/Loader/tests/Loader.stories.js +43 -49
- package/dist/components/LoaderText/LoaderText.d.ts +1 -1
- package/dist/components/LoaderText/LoaderText.js +2 -2
- package/dist/components/LoaderText/LoaderText.types.d.ts +2 -2
- package/dist/components/LoaderText/index.d.ts +2 -2
- package/dist/components/LoaderText/index.js +1 -1
- package/dist/components/LoaderText/tests/LoaderText.stories.d.ts +1 -1
- package/dist/components/LoaderText/tests/LoaderText.stories.js +35 -41
- package/dist/components/MenuItem/MenuItem.d.ts +7 -6
- package/dist/components/MenuItem/MenuItem.js +6 -6
- package/dist/components/MenuItem/MenuItem.module.css +1 -1
- package/dist/components/MenuItem/MenuItem.types.d.ts +7 -4
- package/dist/components/MenuItem/MenuItemAligner.d.ts +1 -1
- package/dist/components/MenuItem/MenuItemAligner.js +1 -1
- package/dist/components/MenuItem/index.d.ts +3 -3
- package/dist/components/MenuItem/index.js +2 -2
- package/dist/components/MenuItem/tests/MenuItem.stories.d.ts +11 -6
- package/dist/components/MenuItem/tests/MenuItem.stories.js +157 -143
- package/dist/components/Modal/Modal.d.ts +1 -1
- package/dist/components/Modal/Modal.js +27 -187
- package/dist/components/Modal/Modal.module.css +1 -1
- package/dist/components/Modal/Modal.types.d.ts +5 -4
- package/dist/components/Modal/index.d.ts +2 -2
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/Modal/tests/Modal.stories.d.ts +3 -3
- package/dist/components/Modal/tests/Modal.stories.js +277 -269
- package/dist/components/Modal/useModalDrag.d.ts +21 -0
- package/dist/components/Modal/useModalDrag.js +318 -0
- package/dist/components/NumberField/NumberField.d.ts +1 -1
- package/dist/components/NumberField/NumberField.js +2 -2
- package/dist/components/NumberField/NumberField.types.d.ts +2 -2
- package/dist/components/NumberField/NumberFieldControlled.d.ts +1 -1
- package/dist/components/NumberField/NumberFieldControlled.js +29 -20
- package/dist/components/NumberField/NumberFieldUncontrolled.d.ts +1 -1
- package/dist/components/NumberField/NumberFieldUncontrolled.js +1 -1
- package/dist/components/NumberField/index.d.ts +2 -2
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/NumberField/tests/NumberField.stories.d.ts +1 -1
- package/dist/components/NumberField/tests/NumberField.stories.js +182 -188
- package/dist/components/Overlay/Overlay.d.ts +1 -1
- package/dist/components/Overlay/Overlay.js +14 -13
- package/dist/components/Overlay/Overlay.module.css +1 -1
- package/dist/components/Overlay/Overlay.types.d.ts +1 -1
- package/dist/components/Overlay/index.d.ts +2 -2
- package/dist/components/Overlay/index.js +1 -1
- package/dist/components/Overlay/tests/Overlay.stories.d.ts +1 -1
- package/dist/components/Overlay/tests/Overlay.stories.js +127 -131
- package/dist/components/Pagination/Pagination.d.ts +1 -1
- package/dist/components/Pagination/Pagination.js +2 -2
- package/dist/components/Pagination/Pagination.types.d.ts +1 -1
- package/dist/components/Pagination/PaginationControlled.d.ts +1 -1
- package/dist/components/Pagination/PaginationControlled.js +5 -5
- package/dist/components/Pagination/PaginationUncontrolled.d.ts +1 -1
- package/dist/components/Pagination/PaginationUncontrolled.js +1 -1
- package/dist/components/Pagination/index.d.ts +2 -2
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/Pagination/tests/Pagination.stories.d.ts +1 -1
- package/dist/components/Pagination/tests/Pagination.stories.js +55 -61
- package/dist/components/PinField/PinField.d.ts +1 -1
- package/dist/components/PinField/PinField.js +2 -2
- package/dist/components/PinField/PinField.types.d.ts +2 -2
- package/dist/components/PinField/PinFieldControlled.d.ts +1 -1
- package/dist/components/PinField/PinFieldControlled.js +46 -16
- package/dist/components/PinField/PinFieldUncontrolled.d.ts +1 -1
- package/dist/components/PinField/PinFieldUncontrolled.js +1 -1
- package/dist/components/PinField/index.d.ts +2 -2
- package/dist/components/PinField/index.js +1 -1
- package/dist/components/PinField/tests/PinField.stories.d.ts +1 -1
- package/dist/components/PinField/tests/PinField.stories.js +121 -127
- package/dist/components/Popover/Popover.d.ts +2 -2
- package/dist/components/Popover/Popover.js +4 -4
- package/dist/components/Popover/Popover.types.d.ts +1 -1
- package/dist/components/Popover/index.d.ts +3 -3
- package/dist/components/Popover/index.js +2 -2
- package/dist/components/Popover/tests/Popover.stories.d.ts +4 -4
- package/dist/components/Popover/tests/Popover.stories.js +231 -237
- package/dist/components/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/components/ProgressBar/ProgressBar.js +1 -1
- package/dist/components/ProgressBar/ProgressBar.types.d.ts +1 -1
- package/dist/components/ProgressBar/index.d.ts +2 -2
- package/dist/components/ProgressBar/index.js +1 -1
- package/dist/components/ProgressBar/tests/ProgressBar.stories.d.ts +1 -1
- package/dist/components/ProgressBar/tests/ProgressBar.stories.js +72 -78
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
- package/dist/components/ProgressIndicator/ProgressIndicator.types.d.ts +1 -1
- package/dist/components/ProgressIndicator/index.d.ts +2 -2
- package/dist/components/ProgressIndicator/index.js +1 -1
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +1 -1
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.js +52 -58
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/Radio/Radio.js +10 -6
- package/dist/components/Radio/Radio.types.d.ts +2 -2
- package/dist/components/Radio/index.d.ts +2 -2
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/Radio/tests/Radio.stories.d.ts +1 -1
- package/dist/components/Radio/tests/Radio.stories.js +85 -91
- package/dist/components/RadioGroup/RadioGroup.context.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/RadioGroup/RadioGroup.types.d.ts +3 -3
- package/dist/components/RadioGroup/RadioGroupControlled.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroupControlled.js +1 -1
- package/dist/components/RadioGroup/RadioGroupUncontrolled.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroupUncontrolled.js +1 -1
- package/dist/components/RadioGroup/index.d.ts +3 -3
- package/dist/components/RadioGroup/index.js +2 -2
- package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +1 -1
- package/dist/components/RadioGroup/tests/RadioGroup.stories.js +38 -44
- package/dist/components/Reshaped/Reshaped.d.ts +1 -1
- package/dist/components/Reshaped/Reshaped.js +7 -7
- package/dist/components/Reshaped/Reshaped.types.d.ts +3 -3
- package/dist/components/Reshaped/index.d.ts +2 -2
- package/dist/components/Reshaped/index.js +1 -1
- package/dist/components/Reshaped/tests/Reshaped.stories.js +56 -62
- package/dist/components/Resizable/Resizable.d.ts +1 -1
- package/dist/components/Resizable/Resizable.js +2 -2
- package/dist/components/Resizable/Resizable.types.d.ts +2 -2
- package/dist/components/Resizable/ResizableContext.d.ts +1 -1
- package/dist/components/Resizable/ResizableHandle.d.ts +1 -1
- package/dist/components/Resizable/ResizableHandle.js +3 -3
- package/dist/components/Resizable/index.d.ts +3 -3
- package/dist/components/Resizable/index.js +2 -2
- package/dist/components/Resizable/tests/Resizable.stories.d.ts +3 -3
- package/dist/components/Resizable/tests/Resizable.stories.js +131 -137
- package/dist/components/ScrollArea/ScrollArea.d.ts +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +32 -19
- package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
- package/dist/components/ScrollArea/ScrollArea.types.d.ts +3 -3
- package/dist/components/ScrollArea/index.d.ts +2 -2
- package/dist/components/ScrollArea/index.js +1 -1
- package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +1 -1
- package/dist/components/ScrollArea/tests/ScrollArea.stories.js +220 -226
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/Select/Select.js +11 -6
- package/dist/components/Select/Select.types.d.ts +7 -7
- package/dist/components/Select/SelectCustom.d.ts +1 -1
- package/dist/components/Select/SelectCustom.js +2 -2
- package/dist/components/Select/SelectCustomControlled.d.ts +1 -1
- package/dist/components/Select/SelectCustomControlled.js +27 -14
- package/dist/components/Select/SelectCustomUncontrolled.d.ts +1 -1
- package/dist/components/Select/SelectCustomUncontrolled.js +1 -1
- package/dist/components/Select/SelectEndContent.d.ts +1 -1
- package/dist/components/Select/SelectEndContent.js +3 -3
- package/dist/components/Select/SelectGroup.d.ts +1 -1
- package/dist/components/Select/SelectGroup.js +2 -2
- package/dist/components/Select/SelectHiddenInput.d.ts +1 -1
- package/dist/components/Select/SelectNative.d.ts +1 -1
- package/dist/components/Select/SelectNative.js +4 -4
- package/dist/components/Select/SelectOption.d.ts +1 -1
- package/dist/components/Select/SelectOption.js +1 -1
- package/dist/components/Select/SelectStartContent.d.ts +1 -1
- package/dist/components/Select/SelectStartContent.js +2 -2
- package/dist/components/Select/SelectTrigger.d.ts +1 -1
- package/dist/components/Select/SelectTrigger.js +8 -8
- package/dist/components/Select/index.d.ts +5 -5
- package/dist/components/Select/index.js +4 -4
- package/dist/components/Select/tests/Select.stories.d.ts +4 -4
- package/dist/components/Select/tests/Select.stories.js +452 -470
- package/dist/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/components/Skeleton/Skeleton.js +1 -1
- package/dist/components/Skeleton/Skeleton.types.d.ts +2 -2
- package/dist/components/Skeleton/index.d.ts +2 -2
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +1 -1
- package/dist/components/Skeleton/tests/Skeleton.stories.js +39 -45
- package/dist/components/Slider/Slider.d.ts +1 -1
- package/dist/components/Slider/Slider.js +2 -2
- package/dist/components/Slider/Slider.types.d.ts +2 -1
- package/dist/components/Slider/SliderControlled.d.ts +1 -1
- package/dist/components/Slider/SliderControlled.js +11 -7
- package/dist/components/Slider/SliderThumb.d.ts +1 -1
- package/dist/components/Slider/SliderThumb.js +5 -6
- package/dist/components/Slider/SliderUncontrolled.d.ts +1 -1
- package/dist/components/Slider/SliderUncontrolled.js +1 -1
- package/dist/components/Slider/index.d.ts +2 -2
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/Slider/tests/Slider.stories.d.ts +1 -1
- package/dist/components/Slider/tests/Slider.stories.js +172 -178
- package/dist/components/Switch/Switch.d.ts +1 -1
- package/dist/components/Switch/Switch.js +8 -5
- package/dist/components/Switch/Switch.types.d.ts +2 -2
- package/dist/components/Switch/index.d.ts +2 -2
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Switch/tests/Switch.stories.d.ts +1 -1
- package/dist/components/Switch/tests/Switch.stories.js +90 -98
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.js +2 -2
- package/dist/components/Table/Table.types.d.ts +1 -1
- package/dist/components/Table/index.d.ts +2 -2
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Table/tests/Table.stories.d.ts +6 -6
- package/dist/components/Table/tests/Table.stories.js +281 -287
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.js +2 -2
- package/dist/components/Tabs/Tabs.types.d.ts +3 -3
- package/dist/components/Tabs/TabsContext.d.ts +1 -1
- package/dist/components/Tabs/TabsControlled.d.ts +1 -1
- package/dist/components/Tabs/TabsControlled.js +2 -2
- package/dist/components/Tabs/TabsItem.d.ts +2 -2
- package/dist/components/Tabs/TabsItem.js +6 -6
- package/dist/components/Tabs/TabsList.d.ts +1 -1
- package/dist/components/Tabs/TabsList.js +10 -10
- package/dist/components/Tabs/TabsPanel.d.ts +1 -1
- package/dist/components/Tabs/TabsPanel.js +2 -2
- package/dist/components/Tabs/TabsUncontrolled.d.ts +1 -1
- package/dist/components/Tabs/TabsUncontrolled.js +1 -1
- package/dist/components/Tabs/index.d.ts +5 -5
- package/dist/components/Tabs/index.js +4 -4
- package/dist/components/Tabs/tests/Tabs.stories.d.ts +4 -4
- package/dist/components/Tabs/tests/Tabs.stories.js +503 -509
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/Text/Text.js +2 -2
- package/dist/components/Text/Text.types.d.ts +2 -2
- package/dist/components/Text/index.d.ts +2 -2
- package/dist/components/Text/index.js +1 -1
- package/dist/components/Text/tests/Text.stories.d.ts +1 -1
- package/dist/components/Text/tests/Text.stories.js +159 -165
- package/dist/components/TextArea/TextArea.d.ts +1 -1
- package/dist/components/TextArea/TextArea.js +9 -5
- package/dist/components/TextArea/TextArea.types.d.ts +3 -3
- package/dist/components/TextArea/index.d.ts +3 -3
- package/dist/components/TextArea/index.js +2 -2
- package/dist/components/TextArea/tests/TextArea.stories.d.ts +2 -2
- package/dist/components/TextArea/tests/TextArea.stories.js +131 -137
- package/dist/components/TextField/TextField.d.ts +1 -1
- package/dist/components/TextField/TextField.js +11 -7
- package/dist/components/TextField/TextField.types.d.ts +4 -4
- package/dist/components/TextField/index.d.ts +3 -3
- package/dist/components/TextField/index.js +2 -2
- package/dist/components/TextField/tests/TextField.stories.d.ts +2 -2
- package/dist/components/TextField/tests/TextField.stories.js +160 -166
- package/dist/components/Theme/GlobalColorMode.d.ts +1 -1
- package/dist/components/Theme/GlobalColorMode.js +5 -5
- package/dist/components/Theme/Theme.context.d.ts +1 -1
- package/dist/components/Theme/Theme.d.ts +1 -1
- package/dist/components/Theme/Theme.js +4 -4
- package/dist/components/Theme/Theme.types.d.ts +1 -1
- package/dist/components/Theme/index.d.ts +4 -4
- package/dist/components/Theme/index.js +3 -3
- package/dist/components/Theme/tests/Theme.stories.d.ts +1 -1
- package/dist/components/Theme/tests/Theme.stories.js +99 -138
- package/dist/components/Theme/useTheme.d.ts +7 -7
- package/dist/components/Theme/useTheme.js +1 -1
- package/dist/components/Toast/Toast.constants.d.ts +1 -1
- package/dist/components/Toast/Toast.context.d.ts +1 -1
- package/dist/components/Toast/Toast.context.js +1 -1
- package/dist/components/Toast/Toast.d.ts +1 -1
- package/dist/components/Toast/Toast.js +4 -4
- package/dist/components/Toast/Toast.types.d.ts +2 -2
- package/dist/components/Toast/ToastContainer.d.ts +1 -1
- package/dist/components/Toast/ToastContainer.js +4 -4
- package/dist/components/Toast/ToastProvider.d.ts +1 -1
- package/dist/components/Toast/ToastProvider.js +4 -4
- package/dist/components/Toast/ToastRegion.d.ts +1 -1
- package/dist/components/Toast/ToastRegion.js +2 -2
- package/dist/components/Toast/index.d.ts +3 -3
- package/dist/components/Toast/index.js +2 -2
- package/dist/components/Toast/tests/Toast.stories.js +199 -205
- package/dist/components/Toast/useToast.d.ts +1 -1
- package/dist/components/Toast/useToast.js +1 -1
- package/dist/components/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/components/ToggleButton/ToggleButton.js +2 -2
- package/dist/components/ToggleButton/ToggleButton.types.d.ts +1 -1
- package/dist/components/ToggleButton/ToggleButtonControlled.d.ts +1 -1
- package/dist/components/ToggleButton/ToggleButtonControlled.js +2 -2
- package/dist/components/ToggleButton/ToggleButtonUncontrolled.d.ts +1 -1
- package/dist/components/ToggleButton/ToggleButtonUncontrolled.js +2 -2
- package/dist/components/ToggleButton/index.d.ts +2 -2
- package/dist/components/ToggleButton/index.js +1 -1
- package/dist/components/ToggleButton/tests/ToggleButton.stories.d.ts +1 -1
- package/dist/components/ToggleButton/tests/ToggleButton.stories.js +60 -66
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.context.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.js +2 -2
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.types.d.ts +2 -2
- package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroupControlled.js +3 -3
- package/dist/components/ToggleButtonGroup/ToggleButtonGroupUncontrolled.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroupUncontrolled.js +1 -1
- package/dist/components/ToggleButtonGroup/index.d.ts +3 -3
- package/dist/components/ToggleButtonGroup/index.js +2 -2
- package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.d.ts +1 -1
- package/dist/components/ToggleButtonGroup/tests/ToggleButtonGroup.stories.js +134 -140
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +3 -1
- package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
- package/dist/components/Tooltip/index.d.ts +2 -2
- package/dist/components/Tooltip/index.js +1 -1
- package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +1 -1
- package/dist/components/Tooltip/tests/Tooltip.stories.js +144 -150
- package/dist/components/View/View.d.ts +1 -1
- package/dist/components/View/View.js +4 -4
- package/dist/components/View/View.types.d.ts +5 -5
- package/dist/components/View/index.d.ts +2 -2
- package/dist/components/View/index.js +1 -1
- package/dist/components/View/tests/View.stories.d.ts +2 -2
- package/dist/components/View/tests/View.stories.js +1098 -1131
- package/dist/components/_private/Aligner/Aligner.d.ts +1 -1
- package/dist/components/_private/Aligner/Aligner.types.d.ts +1 -1
- package/dist/components/_private/Aligner/index.d.ts +2 -2
- package/dist/components/_private/Aligner/index.js +1 -1
- package/dist/components/_private/Freeze/Freeze.d.ts +4 -0
- package/dist/components/_private/Freeze/Freeze.js +46 -0
- package/dist/components/_private/Freeze/Freeze.module.css +1 -0
- package/dist/components/_private/Freeze/Freeze.types.d.ts +14 -0
- package/dist/components/_private/Freeze/Freeze.types.js +1 -0
- package/dist/components/_private/Freeze/index.d.ts +1 -0
- package/dist/components/_private/Freeze/index.js +1 -0
- package/dist/components/_private/Freeze/tests/Freeze.stories.d.ts +7 -0
- package/dist/components/_private/Freeze/tests/Freeze.stories.js +82 -0
- package/dist/components/_private/Portal/Portal.d.ts +1 -1
- package/dist/components/_private/Portal/Portal.js +11 -5
- package/dist/components/_private/Portal/Portal.types.d.ts +1 -1
- package/dist/components/_private/Portal/index.d.ts +2 -2
- package/dist/components/_private/Portal/index.js +1 -1
- package/dist/components/_private/Portal/tests/Portal.stories.d.ts +2 -0
- package/dist/components/_private/Portal/tests/Portal.stories.js +40 -15
- package/dist/components/_private/Presence/Presence.d.ts +1 -1
- package/dist/components/_private/Presence/Presence.js +1 -1
- package/dist/components/_private/Presence/Presence.types.d.ts +1 -1
- package/dist/components/_private/Presence/index.d.ts +1 -1
- package/dist/components/_private/Presence/index.js +1 -1
- package/dist/hooks/_internal/useDrag.js +4 -4
- package/dist/hooks/_internal/useFadeSide.js +2 -2
- package/dist/hooks/_internal/useSingletonHotkeys.js +4 -0
- package/dist/hooks/_internal/useSingletonRTL.d.ts +5 -0
- package/dist/hooks/_internal/useSingletonRTL.js +2 -2
- package/dist/hooks/_internal/useSingletonViewport.d.ts +1 -1
- package/dist/hooks/_internal/useSingletonViewport.js +1 -1
- package/dist/hooks/tests/useDrag.stories.js +57 -63
- package/dist/hooks/tests/useElementId.stories.js +7 -13
- package/dist/hooks/tests/useHandlerRef.stories.js +12 -18
- package/dist/hooks/tests/useHotkeys.stories.d.ts +3 -0
- package/dist/hooks/tests/useHotkeys.stories.js +65 -54
- package/dist/hooks/tests/useKeyboardArrowNavigation.stories.js +56 -62
- package/dist/hooks/tests/useKeyboardMode.stories.js +16 -22
- package/dist/hooks/tests/useOnClickOutside.stories.d.ts +10 -0
- package/dist/hooks/tests/useOnClickOutside.stories.js +130 -48
- package/dist/hooks/tests/useRTL.stories.js +8 -14
- package/dist/hooks/tests/useResponsiveClientValue.stories.js +8 -14
- package/dist/hooks/tests/useScrollLock.stories.js +37 -43
- package/dist/hooks/tests/useToggle.stories.js +20 -26
- package/dist/hooks/useHandlerRef.js +1 -1
- package/dist/hooks/useHotkeys.d.ts +1 -1
- package/dist/hooks/useHotkeys.js +1 -1
- package/dist/hooks/useIsDismissible.js +1 -1
- package/dist/hooks/useKeyboardArrowNavigation.js +1 -1
- package/dist/hooks/useKeyboardMode.d.ts +1 -1
- package/dist/hooks/useKeyboardMode.js +1 -1
- package/dist/hooks/useOnClickOutside.js +23 -19
- package/dist/hooks/useRTL.d.ts +2 -2
- package/dist/hooks/useRTL.js +4 -2
- package/dist/hooks/useResponsiveClientValue.d.ts +1 -1
- package/dist/hooks/useResponsiveClientValue.js +1 -1
- package/dist/hooks/useViewport.d.ts +1 -1
- package/dist/hooks/useViewport.js +1 -1
- package/dist/index.d.ts +139 -139
- package/dist/index.js +76 -76
- package/dist/styles/mixin.d.ts +1 -1
- package/dist/styles/mixin.js +18 -18
- package/dist/styles/resolvers/align/index.d.ts +1 -1
- package/dist/styles/resolvers/align/index.js +1 -1
- package/dist/styles/resolvers/aspectRatio/index.d.ts +1 -1
- package/dist/styles/resolvers/aspectRatio/index.js +1 -1
- package/dist/styles/resolvers/bleed/index.d.ts +1 -1
- package/dist/styles/resolvers/bleed/index.js +1 -1
- package/dist/styles/resolvers/border/index.d.ts +1 -1
- package/dist/styles/resolvers/border/index.js +1 -1
- package/dist/styles/resolvers/height/index.d.ts +1 -1
- package/dist/styles/resolvers/height/index.js +1 -1
- package/dist/styles/resolvers/inset/index.d.ts +2 -2
- package/dist/styles/resolvers/inset/index.js +12 -2
- package/dist/styles/resolvers/inset/inset.css +1 -1
- package/dist/styles/resolvers/justify/index.d.ts +1 -1
- package/dist/styles/resolvers/justify/index.js +1 -1
- package/dist/styles/resolvers/margin/index.d.ts +1 -1
- package/dist/styles/resolvers/margin/index.js +1 -1
- package/dist/styles/resolvers/maxHeight/index.d.ts +1 -1
- package/dist/styles/resolvers/maxHeight/index.js +1 -1
- package/dist/styles/resolvers/maxWidth/index.d.ts +1 -1
- package/dist/styles/resolvers/maxWidth/index.js +1 -1
- package/dist/styles/resolvers/minHeight/index.d.ts +1 -1
- package/dist/styles/resolvers/minHeight/index.js +1 -1
- package/dist/styles/resolvers/minWidth/index.d.ts +1 -1
- package/dist/styles/resolvers/minWidth/index.js +1 -1
- package/dist/styles/resolvers/padding/index.d.ts +1 -1
- package/dist/styles/resolvers/padding/index.js +1 -1
- package/dist/styles/resolvers/position/index.d.ts +1 -1
- package/dist/styles/resolvers/position/index.js +1 -1
- package/dist/styles/resolvers/radius/index.d.ts +1 -1
- package/dist/styles/resolvers/radius/index.js +1 -1
- package/dist/styles/resolvers/shadow/index.d.ts +1 -1
- package/dist/styles/resolvers/textAlign/index.d.ts +1 -1
- package/dist/styles/resolvers/textAlign/index.js +1 -1
- package/dist/styles/resolvers/width/index.d.ts +1 -1
- package/dist/styles/resolvers/width/index.js +1 -1
- package/dist/styles/resolvers/zIndex/index.d.ts +1 -1
- package/dist/styles/types.d.ts +2 -2
- package/dist/tests/ShadowDOM.stories.js +46 -86
- package/dist/tests/ThemesPlayground.js +22 -22
- package/dist/tests/themes.stories.js +207 -250
- package/dist/themes/slate/theme.css +1 -1
- package/dist/utilities/animation.d.ts +17 -0
- package/dist/utilities/animation.js +73 -0
- package/dist/utilities/props.d.ts +2 -2
- package/dist/utilities/storybook/Example.js +2 -2
- package/dist/utilities/storybook/index.d.ts +2 -2
- package/dist/utilities/storybook/index.js +2 -2
- package/package.json +8 -7
- package/dist/bundle.d.ts +0 -158
- package/dist/bundle.js +0 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { OverlayInstance } from "../../components/Overlay/index.js";
|
|
2
|
+
import type * as T from "./Modal.types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Swipe gesture closing the modal, moving it with the finger and continuing
|
|
5
|
+
* the release animation from the velocity the gesture ended with
|
|
6
|
+
*/
|
|
7
|
+
declare const useModalDrag: (args: {
|
|
8
|
+
position: T.Position;
|
|
9
|
+
rootRef: React.RefObject<HTMLDivElement | null>;
|
|
10
|
+
overlayRef: React.RefObject<OverlayInstance | null>;
|
|
11
|
+
active?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
transparentOverlay?: boolean;
|
|
14
|
+
containerRef?: T.Props["containerRef"];
|
|
15
|
+
onClose?: T.Props["onClose"];
|
|
16
|
+
}) => {
|
|
17
|
+
dragging: boolean;
|
|
18
|
+
handleTouchStart: (e: React.TouchEvent) => void;
|
|
19
|
+
handleTransitionEnd: (e: React.TransitionEvent) => void;
|
|
20
|
+
};
|
|
21
|
+
export default useModalDrag;
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { enableScroll, disableScroll } from "@reshaped/utilities/internal";
|
|
4
|
+
import useHandlerRef from "../../hooks/useHandlerRef.js";
|
|
5
|
+
import useIsomorphicLayoutEffect from "../../hooks/useIsomorphicLayoutEffect.js";
|
|
6
|
+
import useRTL from "../../hooks/useRTL.js";
|
|
7
|
+
import { resolveSpringTransition } from "../../utilities/animation.js";
|
|
8
|
+
/** Distance in px the modal has to be dragged before it starts following the finger */
|
|
9
|
+
const THRESHOLD = 32;
|
|
10
|
+
/** Screen edge zone in px reserved for the browser back gesture */
|
|
11
|
+
const EDGE_BOUNDARY = 32;
|
|
12
|
+
/**
|
|
13
|
+
* Distance in px the finger has to travel before the gesture resolves into a swipe or a scroll,
|
|
14
|
+
* a swipe also stops the modal content from scrolling for the rest of the gesture
|
|
15
|
+
*/
|
|
16
|
+
const DIRECTION_THRESHOLD = 8;
|
|
17
|
+
/** Velocity in px/ms closing the modal on release regardless of the dragged distance */
|
|
18
|
+
const VELOCITY_THRESHOLD = 0.4;
|
|
19
|
+
/** Time window in ms used for measuring the release velocity */
|
|
20
|
+
const VELOCITY_WINDOW = 100;
|
|
21
|
+
const VELOCITY_SAMPLES = 10;
|
|
22
|
+
const getInitialState = () => ({
|
|
23
|
+
origin: 0,
|
|
24
|
+
oppositeOrigin: 0,
|
|
25
|
+
previous: 0,
|
|
26
|
+
seed: 0,
|
|
27
|
+
distance: 0,
|
|
28
|
+
overshoot: false,
|
|
29
|
+
offset: 0,
|
|
30
|
+
size: 1,
|
|
31
|
+
samples: [],
|
|
32
|
+
intent: null,
|
|
33
|
+
closing: false,
|
|
34
|
+
returning: false,
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Dragging past the open position is damped the same way as in Base UI,
|
|
38
|
+
* so the modal resists the finger like a rubber band
|
|
39
|
+
*/
|
|
40
|
+
const dampOvershoot = (distance) => -Math.sqrt(-distance);
|
|
41
|
+
const undampOvershoot = (offset) => -(offset ** 2);
|
|
42
|
+
/**
|
|
43
|
+
* Distance in px the modal is currently rendered at from its open position, towards the closing direction,
|
|
44
|
+
* negative when it's past the open position.
|
|
45
|
+
* Resolved from the transform so a gesture can pick up an animation that is still in flight,
|
|
46
|
+
* the dragging class disables transitions and would otherwise snap the modal to the animation target
|
|
47
|
+
*/
|
|
48
|
+
const getRenderedOffset = (style, args) => {
|
|
49
|
+
const { transform } = style;
|
|
50
|
+
if (!transform || transform === "none")
|
|
51
|
+
return 0;
|
|
52
|
+
const matrix = new DOMMatrixReadOnly(transform);
|
|
53
|
+
return (args.axis === "y" ? matrix.m42 : matrix.m41) * args.closingSign;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Distance in px the modal travels to its closed position, including its offset from the container edge
|
|
57
|
+
*/
|
|
58
|
+
const getClosingSize = (el, style, args) => {
|
|
59
|
+
const size = args.axis === "y" ? el.offsetHeight : el.offsetWidth;
|
|
60
|
+
const edgeOffset = args.axis === "y" ? style.bottom : args.closingSign === -1 ? style.left : style.right;
|
|
61
|
+
return Math.max(1, size + (parseFloat(edgeOffset) || 0));
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Element can still scroll its content in the direction the finger moves when closing the modal,
|
|
65
|
+
* this scroll takes priority over the swipe
|
|
66
|
+
*/
|
|
67
|
+
const canScrollTowardsClosing = (el, args) => {
|
|
68
|
+
const vertical = args.axis === "y";
|
|
69
|
+
const maxScroll = vertical ? el.scrollHeight - el.clientHeight : el.scrollWidth - el.clientWidth;
|
|
70
|
+
if (maxScroll <= 0)
|
|
71
|
+
return false;
|
|
72
|
+
// Content with overflow hidden can't be scrolled with the finger
|
|
73
|
+
const style = window.getComputedStyle(el);
|
|
74
|
+
const overflow = vertical ? style.overflowY : style.overflowX;
|
|
75
|
+
if (overflow !== "auto" && overflow !== "scroll")
|
|
76
|
+
return false;
|
|
77
|
+
// Distance left to scroll towards the top or left side, scrollLeft goes from 0 to negative values in RTL
|
|
78
|
+
const rtl = !vertical && style.direction === "rtl";
|
|
79
|
+
const scroll = vertical ? el.scrollTop : el.scrollLeft;
|
|
80
|
+
const startDistance = rtl ? maxScroll + scroll : scroll;
|
|
81
|
+
// Finger moving down or right reveals the content on the top or left side and vice versa
|
|
82
|
+
return (args.closingSign === 1 ? startDistance : maxScroll - startDistance) >= 1;
|
|
83
|
+
};
|
|
84
|
+
/** Velocity in px/ms measured over the most recent samples, signed on the drag axis */
|
|
85
|
+
const getVelocity = (state, time) => {
|
|
86
|
+
const samples = state.samples.filter((sample) => time - sample.time <= VELOCITY_WINDOW);
|
|
87
|
+
const first = samples[0];
|
|
88
|
+
const last = samples[samples.length - 1];
|
|
89
|
+
if (!first || !last || first === last)
|
|
90
|
+
return 0;
|
|
91
|
+
return (last.coordinate - first.coordinate) / (last.time - first.time);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Swipe gesture closing the modal, moving it with the finger and continuing
|
|
95
|
+
* the release animation from the velocity the gesture ended with
|
|
96
|
+
*/
|
|
97
|
+
const useModalDrag = (args) => {
|
|
98
|
+
const { position, rootRef, overlayRef, active, disabled, transparentOverlay, containerRef } = args;
|
|
99
|
+
const onCloseRef = useHandlerRef(args.onClose);
|
|
100
|
+
const [dragging, setDragging] = useState(false);
|
|
101
|
+
const stateRef = useRef(getInitialState());
|
|
102
|
+
const frameRef = useRef(null);
|
|
103
|
+
const [rtl] = useRTL();
|
|
104
|
+
const axis = position === "bottom" ? "y" : "x";
|
|
105
|
+
// Drawers attached to the left side close towards the negative coordinates
|
|
106
|
+
const leftSide = rtl ? position === "end" : position === "start";
|
|
107
|
+
const closingSign = leftSide ? -1 : 1;
|
|
108
|
+
const render = useCallback(() => {
|
|
109
|
+
const rootEl = rootRef.current;
|
|
110
|
+
const state = stateRef.current;
|
|
111
|
+
if (!rootEl)
|
|
112
|
+
return;
|
|
113
|
+
// A gesture picking up an animation starts on an already moving modal, so it skips the dead zone
|
|
114
|
+
const threshold = state.seed ? 0 : THRESHOLD;
|
|
115
|
+
const closingDistance = state.seed + state.distance;
|
|
116
|
+
state.offset =
|
|
117
|
+
closingDistance < 0
|
|
118
|
+
? dampOvershoot(closingDistance)
|
|
119
|
+
: Math.max(0, closingDistance - threshold);
|
|
120
|
+
rootEl.style.setProperty("--rs-modal-drag", `${state.offset * closingSign}px`);
|
|
121
|
+
if (transparentOverlay)
|
|
122
|
+
return;
|
|
123
|
+
const progress = Math.min(1, Math.max(0, closingDistance) / state.size);
|
|
124
|
+
overlayRef.current?.setOpacity(1 - progress * 0.5);
|
|
125
|
+
}, [closingSign, transparentOverlay, rootRef, overlayRef]);
|
|
126
|
+
const reset = useCallback(() => {
|
|
127
|
+
stateRef.current = getInitialState();
|
|
128
|
+
render();
|
|
129
|
+
}, [render]);
|
|
130
|
+
const setScrollLock = useCallback((locked) => {
|
|
131
|
+
const style = rootRef.current?.style;
|
|
132
|
+
if (locked)
|
|
133
|
+
style?.setProperty("overflow", "hidden");
|
|
134
|
+
else
|
|
135
|
+
style?.removeProperty("overflow");
|
|
136
|
+
}, [rootRef]);
|
|
137
|
+
/**
|
|
138
|
+
* Continues the release animation from the current gesture velocity,
|
|
139
|
+
* velocity is passed in px/ms and is positive when moving towards the closing direction
|
|
140
|
+
*/
|
|
141
|
+
const setReleaseTransition = useCallback((releaseArgs) => {
|
|
142
|
+
const rootEl = rootRef.current;
|
|
143
|
+
const { offset, size } = stateRef.current;
|
|
144
|
+
const displacement = offset - (releaseArgs.closing ? size : 0);
|
|
145
|
+
// Without a displacement no transition will run and the override would stay applied
|
|
146
|
+
if (!rootEl || !displacement)
|
|
147
|
+
return;
|
|
148
|
+
const { duration, easing } = resolveSpringTransition({
|
|
149
|
+
displacement,
|
|
150
|
+
velocity: releaseArgs.velocity,
|
|
151
|
+
});
|
|
152
|
+
rootEl.style.setProperty("transition-duration", `${Math.round(duration)}ms`);
|
|
153
|
+
rootEl.style.setProperty("transition-timing-function", easing);
|
|
154
|
+
}, [rootRef]);
|
|
155
|
+
const resetReleaseTransition = useCallback(() => {
|
|
156
|
+
const style = rootRef.current?.style;
|
|
157
|
+
style?.removeProperty("transition-duration");
|
|
158
|
+
style?.removeProperty("transition-timing-function");
|
|
159
|
+
}, [rootRef]);
|
|
160
|
+
const handleTouchStart = (e) => {
|
|
161
|
+
if (disabled || position === "center")
|
|
162
|
+
return;
|
|
163
|
+
// Prevent swipe to close from happening when user is working with text selection
|
|
164
|
+
if (window.getSelection()?.toString())
|
|
165
|
+
return;
|
|
166
|
+
const rootEl = rootRef.current;
|
|
167
|
+
const touch = e.targetTouches[0];
|
|
168
|
+
let currentEl = e.target;
|
|
169
|
+
let overshoot = true;
|
|
170
|
+
while (currentEl && (currentEl === rootEl || rootEl?.contains(currentEl))) {
|
|
171
|
+
// Prioritize scrolling over modal swiping when content can scroll on the drag axis,
|
|
172
|
+
// scrolling on the perpendicular axis is resolved from the gesture direction instead
|
|
173
|
+
if (canScrollTowardsClosing(currentEl, { axis, closingSign }))
|
|
174
|
+
return;
|
|
175
|
+
// Start dragging only when starting on static elements
|
|
176
|
+
if (currentEl.matches("input,textarea"))
|
|
177
|
+
return;
|
|
178
|
+
// Content scrolling in the opposite direction takes priority over dragging past the open position
|
|
179
|
+
if (canScrollTowardsClosing(currentEl, { axis, closingSign: -closingSign }))
|
|
180
|
+
overshoot = false;
|
|
181
|
+
currentEl = currentEl.parentElement;
|
|
182
|
+
}
|
|
183
|
+
// Prevent the drag handling when browser is trying to navigate to a previous page
|
|
184
|
+
if (axis === "x" && closingSign === -1 && touch.clientX < EDGE_BOUNDARY)
|
|
185
|
+
return;
|
|
186
|
+
// Measured before the state is replaced, a transition in flight resolves to its current position
|
|
187
|
+
const rootStyle = rootEl && window.getComputedStyle(rootEl);
|
|
188
|
+
const renderedOffset = active && rootStyle ? getRenderedOffset(rootStyle, { axis, closingSign }) : 0;
|
|
189
|
+
// Damped offset past the open position is converted back to the dragged distance
|
|
190
|
+
const seed = renderedOffset < 0 ? undampOvershoot(renderedOffset) : renderedOffset;
|
|
191
|
+
const origin = axis === "y" ? touch.clientY : touch.clientX;
|
|
192
|
+
// The previous gesture can be left unresolved, e.g. when the modal stays open after a drag close
|
|
193
|
+
stateRef.current = {
|
|
194
|
+
...getInitialState(),
|
|
195
|
+
origin,
|
|
196
|
+
oppositeOrigin: axis === "y" ? touch.clientX : touch.clientY,
|
|
197
|
+
previous: origin,
|
|
198
|
+
seed,
|
|
199
|
+
overshoot,
|
|
200
|
+
size: rootEl && rootStyle ? getClosingSize(rootEl, rootStyle, { axis, closingSign }) : 1,
|
|
201
|
+
};
|
|
202
|
+
resetReleaseTransition();
|
|
203
|
+
render();
|
|
204
|
+
if (containerRef?.current)
|
|
205
|
+
disableScroll();
|
|
206
|
+
setDragging(true);
|
|
207
|
+
};
|
|
208
|
+
const handleTransitionEnd = (e) => {
|
|
209
|
+
if (e.propertyName !== "transform")
|
|
210
|
+
return;
|
|
211
|
+
if (e.currentTarget !== e.target)
|
|
212
|
+
return;
|
|
213
|
+
resetReleaseTransition();
|
|
214
|
+
// Once modal is closed - reset its drag data
|
|
215
|
+
if (active)
|
|
216
|
+
return;
|
|
217
|
+
reset();
|
|
218
|
+
setScrollLock(false);
|
|
219
|
+
};
|
|
220
|
+
// Modal returns to its open position after the dragging class is removed,
|
|
221
|
+
// so the transition is applied to the reset instead of snapping back
|
|
222
|
+
useIsomorphicLayoutEffect(() => {
|
|
223
|
+
if (dragging || !stateRef.current.returning)
|
|
224
|
+
return;
|
|
225
|
+
reset();
|
|
226
|
+
}, [dragging, reset]);
|
|
227
|
+
useEffect(() => {
|
|
228
|
+
if (!dragging)
|
|
229
|
+
return;
|
|
230
|
+
const handleTouchMove = (e) => {
|
|
231
|
+
const state = stateRef.current;
|
|
232
|
+
const touch = e.targetTouches[0];
|
|
233
|
+
const coordinate = axis === "y" ? touch.clientY : touch.clientX;
|
|
234
|
+
const oppositeCoordinate = axis === "y" ? touch.clientX : touch.clientY;
|
|
235
|
+
const travel = Math.abs(coordinate - state.origin);
|
|
236
|
+
const oppositeTravel = Math.abs(oppositeCoordinate - state.oppositeOrigin);
|
|
237
|
+
// Resolve the gesture direction once, so scrolling the content on the perpendicular axis
|
|
238
|
+
// doesn't move the modal and swiping the modal doesn't scroll the content.
|
|
239
|
+
// The previous coordinate stays at the origin until then, so the swipe doesn't lose the travelled distance
|
|
240
|
+
if (!state.intent) {
|
|
241
|
+
if (Math.max(travel, oppositeTravel) < DIRECTION_THRESHOLD)
|
|
242
|
+
return;
|
|
243
|
+
state.intent = travel > oppositeTravel ? "swipe" : "scroll";
|
|
244
|
+
}
|
|
245
|
+
if (state.intent === "scroll")
|
|
246
|
+
return;
|
|
247
|
+
const rootEl = rootRef.current;
|
|
248
|
+
if (rootEl && canScrollTowardsClosing(rootEl, { axis, closingSign }))
|
|
249
|
+
return;
|
|
250
|
+
// Positive when moving towards the closing direction
|
|
251
|
+
const delta = (coordinate - state.previous) * closingSign;
|
|
252
|
+
state.previous = coordinate;
|
|
253
|
+
if (delta > 0)
|
|
254
|
+
setScrollLock(true);
|
|
255
|
+
state.distance += delta;
|
|
256
|
+
// Clamped at the open position when the content scrolls in that direction instead
|
|
257
|
+
if (!state.overshoot)
|
|
258
|
+
state.distance = Math.max(-state.seed, state.distance);
|
|
259
|
+
state.samples.push({ time: e.timeStamp, coordinate });
|
|
260
|
+
if (state.samples.length > VELOCITY_SAMPLES)
|
|
261
|
+
state.samples.shift();
|
|
262
|
+
if (frameRef.current !== null)
|
|
263
|
+
return;
|
|
264
|
+
frameRef.current = window.requestAnimationFrame(() => {
|
|
265
|
+
frameRef.current = null;
|
|
266
|
+
render();
|
|
267
|
+
});
|
|
268
|
+
};
|
|
269
|
+
const handleTouchEnd = (e) => {
|
|
270
|
+
const state = stateRef.current;
|
|
271
|
+
// Positive when moving towards the closing direction
|
|
272
|
+
const velocity = getVelocity(state, e.timeStamp) * closingSign;
|
|
273
|
+
const flicked = velocity > VELOCITY_THRESHOLD;
|
|
274
|
+
const dragged = state.distance > THRESHOLD && velocity >= 0;
|
|
275
|
+
state.closing = flicked || dragged;
|
|
276
|
+
state.returning = !state.closing;
|
|
277
|
+
// Apply the pending frame before the release so the transition starts from the current position
|
|
278
|
+
if (frameRef.current !== null) {
|
|
279
|
+
window.cancelAnimationFrame(frameRef.current);
|
|
280
|
+
frameRef.current = null;
|
|
281
|
+
render();
|
|
282
|
+
}
|
|
283
|
+
// Finger velocity doesn't match the damped movement past the open position, so it settles from rest
|
|
284
|
+
setReleaseTransition({ closing: state.closing, velocity: state.offset < 0 ? 0 : velocity });
|
|
285
|
+
if (containerRef?.current)
|
|
286
|
+
enableScroll();
|
|
287
|
+
if (state.returning)
|
|
288
|
+
setScrollLock(false);
|
|
289
|
+
setDragging(false);
|
|
290
|
+
if (state.closing)
|
|
291
|
+
onCloseRef.current?.({ reason: "drag" });
|
|
292
|
+
};
|
|
293
|
+
document.addEventListener("touchmove", handleTouchMove, { passive: true });
|
|
294
|
+
document.addEventListener("touchend", handleTouchEnd, { passive: true });
|
|
295
|
+
return () => {
|
|
296
|
+
if (frameRef.current !== null) {
|
|
297
|
+
window.cancelAnimationFrame(frameRef.current);
|
|
298
|
+
frameRef.current = null;
|
|
299
|
+
}
|
|
300
|
+
if (!stateRef.current.closing)
|
|
301
|
+
setScrollLock(false);
|
|
302
|
+
document.removeEventListener("touchmove", handleTouchMove);
|
|
303
|
+
document.removeEventListener("touchend", handleTouchEnd);
|
|
304
|
+
};
|
|
305
|
+
}, [
|
|
306
|
+
dragging,
|
|
307
|
+
axis,
|
|
308
|
+
closingSign,
|
|
309
|
+
containerRef,
|
|
310
|
+
rootRef,
|
|
311
|
+
onCloseRef,
|
|
312
|
+
render,
|
|
313
|
+
setScrollLock,
|
|
314
|
+
setReleaseTransition,
|
|
315
|
+
]);
|
|
316
|
+
return { dragging, handleTouchStart, handleTransitionEnd };
|
|
317
|
+
};
|
|
318
|
+
export default useModalDrag;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import NumberFieldControlled from "./NumberFieldControlled";
|
|
3
|
-
import NumberFieldUncontrolled from "./NumberFieldUncontrolled";
|
|
2
|
+
import NumberFieldControlled from "./NumberFieldControlled.js";
|
|
3
|
+
import NumberFieldUncontrolled from "./NumberFieldUncontrolled.js";
|
|
4
4
|
const NumberField = (props) => {
|
|
5
5
|
const { value } = props;
|
|
6
6
|
if (value !== undefined)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TextFieldBaseProps } from "../../components/TextField";
|
|
2
|
-
import type * as G from "../../types/global";
|
|
1
|
+
import type { TextFieldBaseProps } from "../../components/TextField/index.js";
|
|
2
|
+
import type * as G from "../../types/global.js";
|
|
3
3
|
export type BaseProps = Omit<TextFieldBaseProps, "endSlot" | "onChange" | "rounded" | "multiline"> & {
|
|
4
4
|
/** Callback when the component value is changed */
|
|
5
5
|
onChange?: G.ChangeHandler<number>;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
|
-
import Actionable from "../../components/Actionable";
|
|
5
|
-
import { useFormControl } from "../../components/FormControl";
|
|
6
|
-
import Icon from "../../components/Icon";
|
|
7
|
-
import TextField from "../../components/TextField";
|
|
8
|
-
import useElementId from "../../hooks/useElementId";
|
|
9
|
-
import useHandlerRef from "../../hooks/useHandlerRef";
|
|
10
|
-
import useHotkeys from "../../hooks/useHotkeys";
|
|
11
|
-
import { responsiveClassNames, responsivePropDependency } from "../../utilities/props";
|
|
12
|
-
import * as keys from "../../constants/keys";
|
|
13
|
-
import IconChevronDown from "../../icons/ChevronDown";
|
|
14
|
-
import IconChevronUp from "../../icons/ChevronUp";
|
|
15
|
-
import IconMinus from "../../icons/Minus";
|
|
16
|
-
import IconPlus from "../../icons/Plus";
|
|
4
|
+
import Actionable from "../../components/Actionable/index.js";
|
|
5
|
+
import { useFormControl } from "../../components/FormControl/index.js";
|
|
6
|
+
import Icon from "../../components/Icon/index.js";
|
|
7
|
+
import TextField from "../../components/TextField/index.js";
|
|
8
|
+
import useElementId from "../../hooks/useElementId.js";
|
|
9
|
+
import useHandlerRef from "../../hooks/useHandlerRef.js";
|
|
10
|
+
import useHotkeys from "../../hooks/useHotkeys.js";
|
|
11
|
+
import { responsiveClassNames, responsivePropDependency } from "../../utilities/props.js";
|
|
12
|
+
import * as keys from "../../constants/keys.js";
|
|
13
|
+
import IconChevronDown from "../../icons/ChevronDown.js";
|
|
14
|
+
import IconChevronUp from "../../icons/ChevronUp.js";
|
|
15
|
+
import IconMinus from "../../icons/Minus.js";
|
|
16
|
+
import IconPlus from "../../icons/Plus.js";
|
|
17
17
|
import s from "./NumberField.module.css";
|
|
18
18
|
const NumberFieldControlled = (props) => {
|
|
19
19
|
const { increaseAriaLabel, decreaseAriaLabel, min, max, step = 1, name, value, onChange, size = "medium", ...textFieldProps } = props;
|
|
@@ -22,8 +22,10 @@ const NumberFieldControlled = (props) => {
|
|
|
22
22
|
const inputId = formControl?.attributes.id || props.inputAttributes?.id || id;
|
|
23
23
|
const disabled = formControl?.disabled || props.disabled;
|
|
24
24
|
const hasError = formControl?.hasError || props.hasError;
|
|
25
|
-
const increaseDisabled = disabled || (value && max
|
|
26
|
-
const decreaseDisabled = disabled || (value && min
|
|
25
|
+
const increaseDisabled = disabled || (value !== null && max !== undefined && value >= max);
|
|
26
|
+
const decreaseDisabled = disabled || (value !== null && min !== undefined && value <= min);
|
|
27
|
+
// Numeric keyboard on mobile doesn't include the decimal separator and the minus sign
|
|
28
|
+
const inputMode = step % 1 !== 0 || (min !== undefined && min < 0) ? "decimal" : "numeric";
|
|
27
29
|
const inputRef = React.useRef(null);
|
|
28
30
|
const rootRef = React.useRef(null);
|
|
29
31
|
const [textValue, setTextValue] = React.useState(value?.toString() || "");
|
|
@@ -102,9 +104,7 @@ const NumberFieldControlled = (props) => {
|
|
|
102
104
|
}, 50);
|
|
103
105
|
}, 500);
|
|
104
106
|
};
|
|
105
|
-
const
|
|
106
|
-
if (disabled)
|
|
107
|
-
return;
|
|
107
|
+
const clearControlTimers = React.useCallback(() => {
|
|
108
108
|
if (pressedTimeoutRef.current) {
|
|
109
109
|
clearTimeout(pressedTimeoutRef.current);
|
|
110
110
|
pressedTimeoutRef.current = null;
|
|
@@ -113,6 +113,11 @@ const NumberFieldControlled = (props) => {
|
|
|
113
113
|
clearTimeout(changeIntervalRef.current);
|
|
114
114
|
changeIntervalRef.current = null;
|
|
115
115
|
}
|
|
116
|
+
}, []);
|
|
117
|
+
const handleControlPointerUp = () => {
|
|
118
|
+
if (disabled)
|
|
119
|
+
return;
|
|
120
|
+
clearControlTimers();
|
|
116
121
|
};
|
|
117
122
|
useHotkeys({
|
|
118
123
|
[keys.UP]: handleIncrease,
|
|
@@ -123,8 +128,10 @@ const NumberFieldControlled = (props) => {
|
|
|
123
128
|
});
|
|
124
129
|
React.useEffect(() => {
|
|
125
130
|
valueRef.current = value;
|
|
126
|
-
|
|
131
|
+
// Keep the typed text if it already represents the value, e.g. "1." while typing "1.5"
|
|
132
|
+
setTextValue((prev) => (parseFloat(prev) === value ? prev : (value?.toString() ?? "")));
|
|
127
133
|
}, [value]);
|
|
134
|
+
React.useEffect(() => clearControlTimers, [clearControlTimers]);
|
|
128
135
|
const mouseIconSize = responsivePropDependency(size, (size) => {
|
|
129
136
|
return size === "large" || size === "xlarge" ? 4 : 3;
|
|
130
137
|
});
|
|
@@ -139,6 +146,7 @@ const NumberFieldControlled = (props) => {
|
|
|
139
146
|
onPointerDown: (e) => handleControlPointerDown(e, handleIncrease),
|
|
140
147
|
onPointerUp: handleControlPointerUp,
|
|
141
148
|
onPointerLeave: handleControlPointerUp,
|
|
149
|
+
onPointerCancel: handleControlPointerUp,
|
|
142
150
|
// Prevent menu from opening on long press
|
|
143
151
|
onContextMenu: (e) => e.preventDefault(),
|
|
144
152
|
}, children: [_jsx(Icon, { svg: IconChevronUp, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconPlus, size: touchIconSize, className: s["icon--touch"] })] }), _jsxs(Actionable, { className: s.control, disabled: decreaseDisabled, disableFocusRing: true, as: "span", attributes: {
|
|
@@ -149,6 +157,7 @@ const NumberFieldControlled = (props) => {
|
|
|
149
157
|
onPointerDown: (e) => handleControlPointerDown(e, handleDecrease),
|
|
150
158
|
onPointerUp: handleControlPointerUp,
|
|
151
159
|
onPointerLeave: handleControlPointerUp,
|
|
160
|
+
onPointerCancel: handleControlPointerUp,
|
|
152
161
|
// Prevent menu from opening on long press
|
|
153
162
|
onContextMenu: (e) => e.preventDefault(),
|
|
154
163
|
}, children: [_jsx(Icon, { svg: IconChevronDown, size: mouseIconSize, className: s["icon--mouse"] }), _jsx(Icon, { svg: IconMinus, size: touchIconSize, className: s["icon--touch"] })] })] }) }));
|
|
@@ -165,7 +174,7 @@ const NumberFieldControlled = (props) => {
|
|
|
165
174
|
}, inputAttributes: {
|
|
166
175
|
...textFieldProps.inputAttributes,
|
|
167
176
|
ref: inputRef,
|
|
168
|
-
inputMode
|
|
177
|
+
inputMode,
|
|
169
178
|
autoComplete: "off",
|
|
170
179
|
autoCorrect: "off",
|
|
171
180
|
spellCheck: "false",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
|
-
import NumberFieldControlled from "./NumberFieldControlled";
|
|
4
|
+
import NumberFieldControlled from "./NumberFieldControlled.js";
|
|
5
5
|
const NumberFieldUncontrolled = (props) => {
|
|
6
6
|
const { defaultValue, onChange } = props;
|
|
7
7
|
const [value, setValue] = React.useState(defaultValue ?? null);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from "./NumberField";
|
|
2
|
-
export type { Props as NumberFieldProps } from "./NumberField.types";
|
|
1
|
+
export { default } from "./NumberField.js";
|
|
2
|
+
export type { Props as NumberFieldProps } from "./NumberField.types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from "./NumberField";
|
|
1
|
+
export { default } from "./NumberField.js";
|
|
@@ -2,7 +2,7 @@ import { StoryObj } from "@storybook/react-vite";
|
|
|
2
2
|
import { Mock } from "storybook/test";
|
|
3
3
|
declare const _default: {
|
|
4
4
|
title: string;
|
|
5
|
-
component: import("react").FC<import("../../../components/NumberField").NumberFieldProps>;
|
|
5
|
+
component: import("react").FC<import("../../../components/NumberField/index.js").NumberFieldProps>;
|
|
6
6
|
parameters: {
|
|
7
7
|
iframe: {
|
|
8
8
|
url: string;
|