@webority/mobile-ui 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
- package/lib/commonjs/components/Button/Button.js +1 -1
- package/lib/commonjs/components/Confetti/Confetti.js +1 -1
- package/lib/commonjs/components/Drawer/Drawer.js +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -1
- package/lib/commonjs/components/Slider/Slider.js +1 -1
- package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
- package/lib/commonjs/components/ZoomableImage/ZoomableImage.js +1 -1
- package/lib/module/components/Accordion/Accordion.js +1 -1
- package/lib/module/components/Accordion/index.js +1 -1
- package/lib/module/components/AmountSlider/AmountSlider.js +1 -1
- package/lib/module/components/AmountSlider/index.js +1 -1
- package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
- package/lib/module/components/AnimatePresence/index.js +1 -1
- package/lib/module/components/AppBar/AppBar.js +1 -1
- package/lib/module/components/AppBar/index.js +1 -1
- package/lib/module/components/AppIcon/AppIcon.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bold/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/broken/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/bulk/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/linear/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/outline/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/a.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/b.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/c.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/d.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/e.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/f.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/g.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/h.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/i.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/j.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/k.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/l.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/m.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/n.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/o.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/p.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/q.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/r.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/s.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/t.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/u.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/v.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/w.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/x.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/y.g.js +1 -1
- package/lib/module/components/AppIcon/catalog/twotone/z.g.js +1 -1
- package/lib/module/components/AppIcon/catalog.g.js +1 -1
- package/lib/module/components/AppIcon/defaultIcons.js +1 -1
- package/lib/module/components/AppIcon/glyphs.g.js +1 -1
- package/lib/module/components/AppIcon/index.js +1 -1
- package/lib/module/components/AppIcon/slotIcon.js +1 -1
- package/lib/module/components/AppIcon/variants.g.js +1 -1
- package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
- package/lib/module/components/AsyncBlock/index.js +1 -1
- package/lib/module/components/AuthedImage/AuthedImage.js +1 -1
- package/lib/module/components/AuthedImage/authedImageCache.js +1 -1
- package/lib/module/components/AuthedImage/index.js +1 -1
- package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
- package/lib/module/components/Autocomplete/index.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +1 -1
- package/lib/module/components/Avatar/index.js +1 -1
- package/lib/module/components/Badge/Badge.js +1 -1
- package/lib/module/components/Badge/index.js +1 -1
- package/lib/module/components/Banner/Banner.js +1 -1
- package/lib/module/components/Banner/index.js +1 -1
- package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
- package/lib/module/components/BottomNavigation/index.js +1 -1
- package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
- package/lib/module/components/BottomSheet/index.js +1 -1
- package/lib/module/components/Box/Box.js +1 -1
- package/lib/module/components/Box/index.js +1 -1
- package/lib/module/components/Button/Button.js +1 -1
- package/lib/module/components/Button/index.js +1 -1
- package/lib/module/components/Card/Card.js +1 -1
- package/lib/module/components/Card/index.js +1 -1
- package/lib/module/components/Carousel/Carousel.js +1 -1
- package/lib/module/components/Carousel/index.js +1 -1
- package/lib/module/components/Checkbox/Checkbox.js +1 -1
- package/lib/module/components/Checkbox/index.js +1 -1
- package/lib/module/components/Chip/Chip.js +1 -1
- package/lib/module/components/Chip/index.js +1 -1
- package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
- package/lib/module/components/ChoiceGroup/index.js +1 -1
- package/lib/module/components/Confetti/Confetti.js +1 -1
- package/lib/module/components/Confetti/index.js +1 -1
- package/lib/module/components/DatePicker/DatePicker.js +1 -1
- package/lib/module/components/DatePicker/index.js +1 -1
- package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
- package/lib/module/components/DateRangePicker/index.js +1 -1
- package/lib/module/components/DecimalInput/DecimalInput.js +1 -1
- package/lib/module/components/DecimalInput/index.js +1 -1
- package/lib/module/components/Descriptions/Descriptions.js +1 -1
- package/lib/module/components/Descriptions/index.js +1 -1
- package/lib/module/components/Dialog/Dialog.js +1 -1
- package/lib/module/components/Dialog/index.js +1 -1
- package/lib/module/components/Divider/Divider.js +1 -1
- package/lib/module/components/Divider/index.js +1 -1
- package/lib/module/components/Drawer/Drawer.js +1 -1
- package/lib/module/components/Drawer/index.js +1 -1
- package/lib/module/components/EmptyState/EmptyState.js +1 -1
- package/lib/module/components/EmptyState/index.js +1 -1
- package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -1
- package/lib/module/components/ErrorBoundary/index.js +1 -1
- package/lib/module/components/ErrorBoundary/useErrorHandler.js +1 -1
- package/lib/module/components/ErrorBoundary/withErrorBoundary.js +1 -1
- package/lib/module/components/FieldBase/Chevron.js +1 -1
- package/lib/module/components/FieldBase/ChoiceText.js +1 -1
- package/lib/module/components/FieldBase/FieldBase.js +1 -1
- package/lib/module/components/FieldBase/index.js +1 -1
- package/lib/module/components/FieldBase/useFloatingLabel.js +1 -1
- package/lib/module/components/FilePicker/FilePicker.js +1 -1
- package/lib/module/components/FilePicker/index.js +1 -1
- package/lib/module/components/FileViewer/FileViewer.js +1 -1
- package/lib/module/components/FileViewer/index.js +1 -1
- package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/lib/module/components/FloatingActionButton/index.js +1 -1
- package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
- package/lib/module/components/ForceUpdateDialog/index.js +1 -1
- package/lib/module/components/FormField/FormField.js +1 -1
- package/lib/module/components/FormField/index.js +1 -1
- package/lib/module/components/IconBadge/IconBadge.js +1 -1
- package/lib/module/components/IconBadge/index.js +1 -1
- package/lib/module/components/IconButton/IconButton.js +1 -1
- package/lib/module/components/IconButton/index.js +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/module/components/ImageGallery/index.js +1 -1
- package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
- package/lib/module/components/InlineSelect/index.js +1 -1
- package/lib/module/components/Input/Input.js +1 -1
- package/lib/module/components/Input/index.js +1 -1
- package/lib/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
- package/lib/module/components/KeyboardAwareScrollView/index.js +1 -1
- package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
- package/lib/module/components/KeyboardToolbar/index.js +1 -1
- package/lib/module/components/ListItem/ListItem.js +1 -1
- package/lib/module/components/ListItem/index.js +1 -1
- package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
- package/lib/module/components/LoaderOverlay/index.js +1 -1
- package/lib/module/components/Markdown/Markdown.js +1 -1
- package/lib/module/components/Markdown/index.js +1 -1
- package/lib/module/components/Markdown/parse.js +1 -1
- package/lib/module/components/Modal/Modal.js +1 -1
- package/lib/module/components/Modal/index.js +1 -1
- package/lib/module/components/Notation/Notation.js +1 -1
- package/lib/module/components/Notation/index.js +1 -1
- package/lib/module/components/NumberInput/NumberInput.js +1 -1
- package/lib/module/components/NumberInput/index.js +1 -1
- package/lib/module/components/OTPInput/OTPInput.js +1 -1
- package/lib/module/components/OTPInput/index.js +1 -1
- package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
- package/lib/module/components/OptionSheet/index.js +1 -1
- package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/module/components/PhoneNumberInput/index.js +1 -1
- package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
- package/lib/module/components/PickerTrigger/index.js +1 -1
- package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
- package/lib/module/components/ProfileCompletion/index.js +1 -1
- package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
- package/lib/module/components/ProfilePicker/index.js +1 -1
- package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
- package/lib/module/components/ProgressBar/index.js +1 -1
- package/lib/module/components/ProgressRing/ProgressRing.js +1 -1
- package/lib/module/components/ProgressRing/index.js +1 -1
- package/lib/module/components/Radio/Radio.js +1 -1
- package/lib/module/components/Radio/RadioDot.js +1 -1
- package/lib/module/components/Radio/RadioGroup.js +1 -1
- package/lib/module/components/Radio/index.js +1 -1
- package/lib/module/components/Rating/Rating.js +1 -1
- package/lib/module/components/Rating/index.js +1 -1
- package/lib/module/components/Repeater/Repeater.js +1 -1
- package/lib/module/components/Repeater/index.js +1 -1
- package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
- package/lib/module/components/RichTextEditor/index.js +1 -1
- package/lib/module/components/RichTextEditor/markdownActions.js +1 -1
- package/lib/module/components/SearchBar/SearchBar.js +1 -1
- package/lib/module/components/SearchBar/index.js +1 -1
- package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
- package/lib/module/components/SectionHeader/index.js +1 -1
- package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/module/components/SegmentedControl/index.js +1 -1
- package/lib/module/components/Select/Select.js +1 -1
- package/lib/module/components/Select/index.js +1 -1
- package/lib/module/components/Skeleton/Skeleton.js +1 -1
- package/lib/module/components/Skeleton/SkeletonClock.js +1 -1
- package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/module/components/Skeleton/SkeletonList.js +1 -1
- package/lib/module/components/Skeleton/SkeletonProvider.js +1 -1
- package/lib/module/components/Skeleton/SkeletonSkip.js +1 -1
- package/lib/module/components/Skeleton/index.js +1 -1
- package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
- package/lib/module/components/SlideToConfirm/index.js +1 -1
- package/lib/module/components/Slider/Slider.js +1 -1
- package/lib/module/components/Slider/index.js +1 -1
- package/lib/module/components/Slider/valueText.js +1 -1
- package/lib/module/components/SliderField/SliderField.js +1 -1
- package/lib/module/components/SliderField/index.js +1 -1
- package/lib/module/components/Spinner/Spinner.js +1 -1
- package/lib/module/components/Spinner/index.js +1 -1
- package/lib/module/components/SquircleFill/SquircleFill.js +1 -1
- package/lib/module/components/StatTile/StatTile.js +1 -1
- package/lib/module/components/StatTile/index.js +1 -1
- package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
- package/lib/module/components/StatusBadge/index.js +1 -1
- package/lib/module/components/Stepper/Stepper.js +1 -1
- package/lib/module/components/Stepper/index.js +1 -1
- package/lib/module/components/Swipeable/Swipeable.js +1 -1
- package/lib/module/components/Swipeable/index.js +1 -1
- package/lib/module/components/Switch/Switch.js +1 -1
- package/lib/module/components/Switch/index.js +1 -1
- package/lib/module/components/Tabs/Tabs.js +1 -1
- package/lib/module/components/Tabs/index.js +1 -1
- package/lib/module/components/TagInput/TagInput.js +1 -1
- package/lib/module/components/TagInput/index.js +1 -1
- package/lib/module/components/Text/Text.js +1 -1
- package/lib/module/components/Text/index.js +1 -1
- package/lib/module/components/TimePicker/TimePicker.js +1 -1
- package/lib/module/components/TimePicker/index.js +1 -1
- package/lib/module/components/Timeline/Timeline.js +1 -1
- package/lib/module/components/Timeline/index.js +1 -1
- package/lib/module/components/Toast/Toast.js +1 -1
- package/lib/module/components/Toast/ToastProvider.js +1 -1
- package/lib/module/components/Toast/index.js +1 -1
- package/lib/module/components/Tooltip/Tooltip.js +1 -1
- package/lib/module/components/Tooltip/index.js +1 -1
- package/lib/module/components/Tour/Tour.js +1 -1
- package/lib/module/components/Tour/index.js +1 -1
- package/lib/module/components/ZoomableImage/ZoomableImage.js +1 -1
- package/lib/module/components/ZoomableImage/index.js +1 -1
- package/lib/module/components/index.js +1 -1
- package/lib/module/form/FormContext.js +1 -1
- package/lib/module/form/HookFormField.js +1 -1
- package/lib/module/form/equal.js +1 -1
- package/lib/module/form/index.js +1 -1
- package/lib/module/form/path.js +1 -1
- package/lib/module/form/rules.js +1 -1
- package/lib/module/form/types.js +1 -0
- package/lib/module/form/useField.js +1 -1
- package/lib/module/form/useForm.js +1 -1
- package/lib/module/form/useFormCompletion.js +1 -1
- package/lib/module/form/useHookFormField.js +1 -1
- package/lib/module/hooks/index.js +1 -1
- package/lib/module/hooks/useControllableState.js +1 -1
- package/lib/module/hooks/useDebounce.js +1 -1
- package/lib/module/hooks/useDragToDismiss.js +1 -1
- package/lib/module/hooks/useFlickGuard.js +1 -1
- package/lib/module/hooks/usePressAnimation.js +1 -1
- package/lib/module/hooks/useReducedMotion.js +1 -1
- package/lib/module/hooks/useToggle.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/initUI.js +1 -1
- package/lib/module/network/NetworkStatusBanner.js +1 -1
- package/lib/module/network/index.js +1 -1
- package/lib/module/specs/NativePdfRasterizer.js +1 -1
- package/lib/module/theme/Gradient.js +1 -1
- package/lib/module/theme/ThemeContext.js +1 -1
- package/lib/module/theme/animatedValue.js +1 -1
- package/lib/module/theme/index.js +1 -1
- package/lib/module/theme/merge.js +1 -1
- package/lib/module/theme/textStyle.js +1 -1
- package/lib/module/theme/tokens.js +1 -1
- package/lib/module/theme/types.js +1 -1
- package/lib/module/utils/color.js +1 -1
- package/lib/module/utils/corners.js +1 -1
- package/lib/module/utils/dimensions.js +1 -1
- package/lib/module/utils/feedback.js +1 -1
- package/lib/module/utils/hapticUtils.js +1 -1
- package/lib/module/utils/hashString.js +1 -1
- package/lib/module/utils/index.js +1 -1
- package/lib/module/utils/mergeRefs.js +1 -1
- package/lib/module/utils/responsive.js +1 -1
- package/lib/module/utils/shadows.js +1 -1
- package/lib/module/utils/spacing.js +1 -1
- package/lib/module/utils/squircle.js +1 -1
- package/lib/module/utils/warnUnknownProps.js +1 -1
- package/lib/typescript/commonjs/components/Button/Button.d.ts +5 -0
- package/lib/typescript/module/components/Button/Button.d.ts +5 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useCallback,useEffect,useMemo,useRef}from"react";import{Dimensions,Pressable,StyleSheet,Text,View}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import Animated,{cancelAnimation,runOnJS,useAnimatedStyle,useSharedValue,withSpring}from"react-native-reanimated";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const SPRING_CONFIG={damping:22,stiffness:260,mass:1},DRAG_ACTIVATION_OFFSET=10,RUBBER_BAND_FACTOR=.35,FAIL_OFFSET_Y=15,toneToBg=(e,t)=>{switch(t){case"primary":return e.colors.primary;case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.secondary}},toneToOnColor=(e,t)=>{switch(t){case"primary":return e.colors.onPrimary;case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onSecondary}},Swipeable=e=>{const{children:t,leftActions:n,rightActions:s,threshold:i,fullSwipeThreshold:r,onSwipeOpen:o,onSwipeClose:a,disabled:l=!1,haptic:c,containerStyle:u,contentStyle:h,actionStyle:m,accessibilityLabel:d,testID:p}=e,S=useTheme(),f=S.components.swipeable,g=i??f?.threshold??80,b=r??f?.fullSwipeThreshold??200,w=f?.dragActivationOffset??10,y=f?.rubberBandFactor??.35,v=f?.failOffsetY??15,x=useMemo(()=>({damping:f?.springDamping??SPRING_CONFIG.damping,stiffness:f?.springStiffness??SPRING_CONFIG.stiffness,mass:f?.springMass??SPRING_CONFIG.mass}),[f]),A=useMemo(()=>buildStyles(S),[S]),_=!!n&&n.length>0,O=!!s&&s.length>0,C=Dimensions.get("window").width,I=_?g*(n?.length??0):0,G=O?g*(s?.length??0):0,R=useSharedValue(0),j=useSharedValue(0),N=useRef(null);useEffect(()=>()=>{cancelAnimation(R),cancelAnimation(j)},[R,j]);const P=useCallback(e=>{N.current!==e&&(N.current=e,o?.(e))},[o]),k=useCallback(()=>{null!==N.current&&(N.current=null,a?.())},[a]),T=useCallback(e=>{const t="left"===e?n:s,i=t?.[0];i&&(!1!==c&&triggerHaptic("notificationSuccess"),i.onPress(),R.value=withSpring(0,x),N.current=null,a?.())},[n,s,R,a,x,c]),F=useCallback(()=>{R.value=withSpring(0,x),k()},[R,k,x]),E=useCallback(e=>{const t=resolveHaptic(c,"selection");t&&triggerHaptic(t),e.onPress(),F()},[F,c]),D=useMemo(()=>{const e=I,t=G,n=b,s=-b,i=C,r=-C,o=g,a=_,c=O;return Gesture.Pan().enabled(!l).withTestId(p?`${p}-gesture`:"swipeable-gesture").activeOffsetX([-w,w]).failOffsetY([-v,v]).onStart(()=>{"worklet";j.value=R.value}).onUpdate(n=>{"worklet";const s=j.value+n.translationX;R.value=s>0&&!a||s<0&&!c?0:s>e&&a?e+(s-e)*y:s<-t&&c?(s+t)*y-t:s}).onEnd(()=>{"worklet";const l=R.value;return a&&l>=n?(R.value=withSpring(i,SPRING_CONFIG),void runOnJS(T)("left")):c&&l<=s?(R.value=withSpring(r,SPRING_CONFIG),void runOnJS(T)("right")):a&&l>=o?(R.value=withSpring(e,SPRING_CONFIG),void runOnJS(P)("left")):c&&l<=-o?(R.value=withSpring(-t,SPRING_CONFIG),void runOnJS(P)("right")):(R.value=withSpring(0,x),void runOnJS(k)())})},[l,j,T,b,_,O,I,k,P,G,C,g,R,w,v,y,x,p]),V=useAnimatedStyle(()=>({transform:[{translateX:R.value}]})),B=useAnimatedStyle(()=>({opacity:I>0?Math.min(1,Math.max(0,R.value/I)):0})),M=useAnimatedStyle(()=>({opacity:G>0?Math.min(1,Math.max(0,-R.value/G)):0})),H=useMemo(()=>{const e=[];return n?.forEach(t=>e.push({name:t.key,label:t.label})),s?.forEach(t=>e.push({name:t.key,label:t.label})),e},[n,s]),L=useCallback(e=>{const t=e.nativeEvent.actionName,i=[...n??[],...s??[]].find(e=>e.key===t);i&&(!1!==c&&triggerHaptic("selection"),i.onPress())},[n,s,c]);return _||O?_jsxs(View,{style:[A.root,u],testID:p,accessibilityLabel:d,accessibilityActions:H,onAccessibilityAction:L,children:[_?_jsx(Animated.View,{style:[A.actionsRow,A.actionsLeft,{width:I},m,B],pointerEvents:"box-none",children:n?.map(e=>_jsx(ActionButton,{action:e,theme:S,width:g,onPress:E},e.key))}):null,O?_jsx(Animated.View,{style:[A.actionsRow,A.actionsRight,{width:G},m,M],pointerEvents:"box-none",children:s?.map(e=>_jsx(ActionButton,{action:e,theme:S,width:g,onPress:E},e.key))}):null,_jsx(GestureDetector,{gesture:D,children:_jsx(Animated.View,{style:[A.content,h,V],children:t})})]}):_jsx(View,{style:u,testID:p,children:t})};Swipeable.displayName="Swipeable";const ActionButton=({action:e,theme:t,width:n,onPress:s})=>{const i=e.tone??"neutral",r=toneToBg(t,i);return _jsxs(Pressable,{onPress:()=>s(e),accessibilityRole:"button",accessibilityLabel:e.label,style:[actionStyles.button,{width:n,backgroundColor:r,paddingHorizontal:t.spacing.sm}],children:[e.icon?_jsx(View,{style:actionStyles.icon,children:e.icon}):null,_jsx(Text,{style:[actionStyles.label,{color:toneToOnColor(t,i),fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.semibold}],numberOfLines:1,children:e.label})]})},actionStyles=StyleSheet.create({button:{flexGrow:0,flexShrink:0,alignItems:"center",justifyContent:"center"},icon:{marginBottom:2},label:{textAlign:"center"}}),buildStyles=e=>StyleSheet.create({root:{position:"relative",overflow:"hidden"},content:{backgroundColor:"transparent"},actionsRow:{position:"absolute",top:0,bottom:0,flexDirection:"row"},actionsLeft:{left:0},actionsRight:{right:0,justifyContent:"flex-end"}});export{Swipeable};export default Swipeable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Swipeable}from"./Swipeable.js";
|
|
1
|
+
"use strict";export{default,Swipeable}from"./Swipeable.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef
|
|
1
|
+
"use strict";import{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{triggerHaptic}from"../../utils/hapticUtils.js";import{ChoiceText,hasChoiceDetail}from"../FieldBase/ChoiceText.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const sizeMap={sm:{trackWidth:42,trackHeight:26,thumbSize:22,padding:2},md:{trackWidth:51,trackHeight:31,thumbSize:27,padding:2},lg:{trackWidth:60,trackHeight:36,thumbSize:32,padding:2}},toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},Switch=forwardRef((e,t)=>{const{value:s,defaultValue:i,onChange:r,disabled:a=!1,size:o="md",tone:n="primary",label:c,description:l,error:d,labelLines:u,layout:m="inline",accessibilityLabel:p,haptic:h="selection",bounce:b=!1,style:f,containerStyle:g,trackStyle:y,thumbStyle:w,testID:x,...S}=e,[C,j]=useControllableState({value:s,defaultValue:i??!1,onChange:r}),k=useTheme(),R={...sizeMap[o],...k.components.switch?.[o]??{}},v=k.components.switch?.thumbColor??"#FFFFFF",V=useMemo(()=>buildStyles(k),[k]),A="dark"===k.mode?k.colors.secondary:k.colors.surface.disabled,D=toneColor(k,n),H=useRef(createAnimatedValue(C?1:0)).current;useEffect(()=>{const e=Animated.spring(H,{toValue:C?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[C,H,k.motion.spring.snappy]);const T=useRef(createAnimatedValue(C?1:0)).current;useEffect(()=>{const e=Animated.timing(T,{toValue:C?1:0,duration:k.motion.duration.fast,easing:Easing.out(Easing.ease),useNativeDriver:!1});return e.start(),()=>e.stop()},[C,T,k.motion.duration.fast]);const z=R.padding,_=R.trackWidth-R.thumbSize-R.padding,L=H.interpolate({inputRange:[0,1],outputRange:[z,_]}),E=T.interpolate({inputRange:[0,1],outputRange:[A,D]}),F=useRef(createAnimatedValue(1)).current,P=useRef(!0);useEffect(()=>{if(!b)return;if(P.current)return void(P.current=!1);const e=Animated.sequence([Animated.spring(F,{toValue:1.15,damping:10,stiffness:220,mass:1,useNativeDriver:!0}),Animated.spring(F,{toValue:1,damping:14,stiffness:240,mass:1,useNativeDriver:!0})]);return e.start(),()=>e.stop()},[C,b,F]);const handlePress=e=>{a||(!1!==h&&triggerHaptic(h),j(!C),S.onPressOut?.(e))},I=p??c,N=Boolean(c)||hasChoiceDetail(l,d),W="row"===m&&N,M=_jsx(Animated.View,{style:[V.track,{width:R.trackWidth,height:R.trackHeight,borderRadius:R.trackHeight/2,...smoothCorners,backgroundColor:E},y],children:_jsx(Animated.View,{style:[V.thumb,k.shadows.sm,{backgroundColor:v,width:R.thumbSize,height:R.thumbSize,borderRadius:R.thumbSize/2,...smoothCorners,transform:[{translateX:L},{scale:F}]},w]})});if(W)return _jsxs(Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:I,accessibilityHint:S.accessibilityHint??l,accessibilityState:{checked:C,disabled:a},testID:x,...S,style:({pressed:e})=>[V.row,V.spreadRow,hasChoiceDetail(l,d)?V.rowTop:null,{opacity:a?.55:e?.9:1},g,f],children:[_jsx(ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:V.spreadText}),M]});const B=_jsx(Pressable,{ref:t,onPress:handlePress,disabled:a,accessibilityRole:"switch",accessibilityLabel:I,accessibilityHint:S.accessibilityHint??l,accessibilityState:{checked:C,disabled:a},testID:x,hitSlop:8,...S,style:({pressed:e})=>[{opacity:a?.55:e?.9:1},N?null:f],children:M});return N?_jsxs(View,{style:[V.row,hasChoiceDetail(l,d)?V.rowTop:null,g,f],children:[B,_jsx(ChoiceText,{label:c,description:l,error:d,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:V.text})]}):g?_jsx(View,{style:g,children:B}):B});Switch.displayName="Switch";const buildStyles=e=>StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},track:{justifyContent:"center"},thumb:{position:"absolute",top:2},rowTop:{alignItems:"flex-start"},text:{marginLeft:10},spreadRow:{minHeight:44,justifyContent:"space-between"},spreadText:{flex:1,marginRight:12}});export{Switch};export default Switch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Switch}from"./Switch.js";
|
|
1
|
+
"use strict";export{default,Switch}from"./Switch.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef
|
|
1
|
+
"use strict";import{forwardRef,useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{segmentedControlSizes}from"../SegmentedControl/SegmentedControl.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const tabsSizes={sm:{fontSize:13,paddingVertical:8,paddingHorizontal:4,scrollablePaddingHorizontal:12,iconSize:16},md:{fontSize:15,paddingVertical:12,paddingHorizontal:8,scrollablePaddingHorizontal:16,iconSize:18},lg:{fontSize:17,paddingVertical:16,paddingHorizontal:12,scrollablePaddingHorizontal:24,iconSize:20}},Tabs=forwardRef((e,t)=>{const{tabs:i,activeKey:o,onChange:a,variant:r="underline",radius:n,size:l="md",scrollable:s=!1,align:d="left",style:c,containerStyle:u,tabStyle:p,tabLabelStyle:m,tabIconStyle:g,tabBadgeStyle:b,dividerStyle:f,indicatorStyle:h,progress:y,haptic:S,accessibilityLabel:z,testID:x}=e,v=useTheme(),j=useMemo(()=>buildStyles(v),[v]),C=v.components.tabs,w=tabsSizes[l],H=C?.[l],k=s?H?.scrollablePaddingHorizontal??C?.tabPaddingHorizontal??w.scrollablePaddingHorizontal:H?.paddingHorizontal??C?.tabPaddingHorizontal??w.paddingHorizontal,V=H?.paddingVertical??C?.tabPaddingVertical??w.paddingVertical,I=H?.fontSize??w.fontSize,P=C?.tabIconSpacing??6,_=H?.iconSize??C?.tabIconSize??w.iconSize,R=C?.underlineHeight??2,T=C?.pillInset??4,L=C?.disabledOpacity??.45,F=C?.badgeGap??6,A="segmented"===r,W=v.components.segmentedControl,M=segmentedControlSizes[l],q=W?.[l]?.height??M.height,D=W?.[l]?.fontSize??M.fontSize,B=W?.[l]?.paddingHorizontal??M.paddingHorizontal,E=C?.trackPadding??4,N="number"==typeof n?n:n?v.radius[n]:C?.radius,O=N??v.radius.md,U=void 0===N?v.radius.sm:Math.max(N-E,0),G=N??v.radius.full,K=N??0,X=v.colors.background.tertiary,J=useSquircle(A,O),[Q,Y]=useState({}),Z=useRef(createAnimatedValue(0)).current,$=useRef(createAnimatedValue(0)).current,ee=Q[o],te=i.every(e=>void 0!==Q[e.key]),ie=void 0!==y&&te&&i.length>1,oe=useMemo(()=>ie&&y?y.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].x),extrapolate:"clamp"}):null,[ie,y,i,Q]),ae=useMemo(()=>ie&&y?y.interpolate({inputRange:i.map((e,t)=>t),outputRange:i.map(e=>Q[e.key].width),extrapolate:"clamp"}):null,[ie,y,i,Q]);useEffect(()=>{if(!ee)return;if(ie)return;const e=v.motion.spring.snappy,t=Animated.parallel([Animated.spring(Z,{toValue:ee.x,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1}),Animated.spring($,{toValue:ee.width,damping:e.damping,stiffness:e.stiffness,mass:e.mass,overshootClamping:!0,useNativeDriver:!1})]);return t.start(),()=>t.stop()},[ee,o,Z,$,v.motion.spring.snappy,ie]);const re=useCallback(e=>t=>{const{x:i,width:o}=t.nativeEvent.layout;Y(t=>{const a=t[e];return a&&a.x===i&&a.width===o?t:{...t,[e]:{x:i,width:o}}})},[]),ne=useCallback(e=>{if(e.disabled)return;if(e.key===o)return;const t=resolveHaptic(S,"selection");t&&triggerHaptic(t),a(e.key)},[o,a,S]),le="pills"===r,se=_jsx(Animated.View,{pointerEvents:"none",style:[A?j.indicatorThumb:le?j.indicatorPill:j.indicatorUnderline,A?null:le?{top:T,bottom:T}:{height:R},{width:ae??$,transform:[{translateX:oe??Z}],backgroundColor:A?v.colors.background.elevated:le?v.colors.primaryMuted:v.colors.primary,borderRadius:A?U:le?G:K,...smoothCorners},h]}),renderTabs=()=>i.map(e=>{const t=e.key===o,i=!0===e.disabled,a=t?v.colors.primary:v.colors.text.tertiary,r=renderSlotIcon(e.icon,{color:a,size:_,focused:t,disabled:i});return _jsxs(Pressable,{onPress:()=>ne(e),onLayout:re(e.key),disabled:i,accessibilityRole:"tab",accessibilityLabel:e.label,accessibilityState:{selected:t,disabled:i},android_ripple:A?void 0:{color:v.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[j.tab,s?null:j.tabFlex,A?{paddingHorizontal:B,height:q-2*E}:{paddingHorizontal:k,paddingVertical:V},{opacity:i?L:e&&A&&!t?.7:1,backgroundColor:e&&!A?v.colors.surface.pressed:"transparent"},p],children:[r?_jsx(View,{style:[j.tabIcon,{marginRight:P},g],children:r}):null,_jsx(Text,{style:[j.tabLabel,{color:a,fontSize:A?D:I,fontWeight:t?v.typography.fontWeight.semibold:v.typography.fontWeight.medium},m],numberOfLines:1,children:e.label}),void 0!==e.badge&&null!==e.badge?_jsx(View,{style:[j.tabBadge,{marginLeft:F,backgroundColor:v.colors.primaryMuted,borderRadius:v.radius.full,...smoothCorners,paddingHorizontal:v.spacing.xs},b],children:_jsx(Text,{style:{color:v.colors.primary,fontSize:v.typography.fontSize.xs,fontWeight:v.typography.fontWeight.semibold},numberOfLines:1,children:String(e.badge)})}):null]},e.key)}),de={flexDirection:"row",alignItems:"stretch",justifyContent:s?"flex-start":"center"===d?"center":"flex-start",position:"relative",overflow:"hidden"},ce=_jsxs(_Fragment,A?{children:[se,renderTabs()]}:{children:[renderTabs(),se]});return _jsxs(View,{ref:t,style:[j.container,{borderBottomColor:v.colors.border.secondary,borderBottomWidth:"underline"===r?StyleSheet.hairlineWidth:0},"underline"===r?f:null,A?{padding:E,borderRadius:O,...smoothCorners,backgroundColor:J.active?"transparent":X}:null,c,u],onLayout:J.onLayout,accessibilityRole:"tablist",accessibilityLabel:z,testID:x,children:[J.active&&J.size?_jsx(SquircleFill,{width:J.size.width,height:J.size.height,radius:O,fill:X}):null,s?_jsx(ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[de],keyboardShouldPersistTaps:"handled",children:ce}):_jsx(View,{style:de,children:ce})]})});Tabs.displayName="Tabs";const buildStyles=e=>StyleSheet.create({container:{width:"100%",position:"relative"},tab:{flexDirection:"row",alignItems:"center",justifyContent:"center"},tabFlex:{flex:1},tabIcon:{},tabLabel:{includeFontPadding:!1,flexShrink:1},tabBadge:{minWidth:18,alignItems:"center",justifyContent:"center"},indicatorUnderline:{position:"absolute",left:0,bottom:0},indicatorPill:{position:"absolute",left:0,zIndex:-1},indicatorThumb:{position:"absolute",left:0,top:0,bottom:0}});export{Tabs};export default Tabs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Tabs}from"./Tabs.js";
|
|
1
|
+
"use strict";export{default,Tabs}from"./Tabs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef
|
|
1
|
+
"use strict";import{forwardRef,useCallback,useMemo,useRef,useState}from"react";import{StyleSheet,TextInput,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{fontFor,useTheme}from"../../theme/index.js";import{mergeRefs,resolveHaptic,triggerHaptic}from"../../utils/index.js";import{Chip}from"../Chip/index.js";import{FieldBase}from"../FieldBase/index.js";import{FormField}from"../FormField/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const TagInput=forwardRef((e,t)=>{const{value:r,defaultValue:s,onChange:o,placeholder:i,label:l,helperText:a,error:n,required:u,disabled:p=!1,size:c="md",variant:d,maxTags:m,unique:f=!0,transform:x,separators:h=[","],haptic:g,style:b,testID:y}=e,C=useTheme(),j=useMemo(()=>buildStyles(C),[C]),[v,S]=useControllableState({value:r,defaultValue:s??[],onChange:o}),[T,F]=useState(""),[w,I]=useState(!1),k=useRef(null),_=useMemo(()=>mergeRefs(k,t),[t]),B=useCallback(()=>{p||k.current?.focus()},[p]),H="number"==typeof m&&v.length>=m,R=useCallback(e=>{const t=x?x(e.trim()):e.trim();if(!t)return;if(H)return;if(f&&v.some(e=>e.toLowerCase()===t.toLowerCase()))return void F("");S([...v,t]),F("");const r=resolveHaptic(g,"selection");r&&triggerHaptic(r)},[H,g,S,v,x,f]),V=useCallback(e=>{const t=v.filter((t,r)=>r!==e);S(t);const r=resolveHaptic(g,"selection");r&&triggerHaptic(r)},[g,S,v]),z=useCallback(e=>{const t=h.find(t=>t.length>0&&e.includes(t));if(t){const[r]=e.split(t);return void R(r)}F(e)},[R,h]),D=useCallback(e=>{p||"Backspace"===e.nativeEvent.key&&""===T&&v.length>0&&V(v.length-1)},[p,T,V,v.length]),q=_jsx(FieldBase,{size:c,variant:d,focused:w,disabled:p,error:Boolean(n),filled:v.length>0||T.length>0,onPress:B,pressFeedback:!1,style:b,children:_jsxs(View,{style:j.wrap,children:[v.map((e,t)=>_jsx(Chip,{label:e,size:"sm",onClose:p?void 0:()=>V(t),haptic:g},`${e}-${t}`)),_jsx(TextInput,{ref:_,value:T,onChangeText:z,onKeyPress:D,onSubmitEditing:()=>R(T),onFocus:()=>I(!0),onBlur:()=>{I(!1),R(T)},editable:!p&&!H,placeholder:H?void 0:i,placeholderTextColor:C.colors.text.tertiary,blurOnSubmit:!1,returnKeyType:"done",style:[j.input,{color:C.colors.text.primary,fontSize:C.typography.fontSize.base}],testID:y?`${y}-input`:void 0})]})});return _jsx(View,l||a||n?{testID:y,children:_jsx(FormField,{label:l,helperText:a,error:n,required:u,children:q})}:{testID:y,children:q})});TagInput.displayName="TagInput";const buildStyles=e=>StyleSheet.create({wrap:{flex:1,flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.spacing.xs,paddingVertical:e.spacing.xs},input:{...fontFor(e,"normal"),flexGrow:1,minWidth:80,padding:0}});export default TagInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,TagInput}from"./TagInput.js";
|
|
1
|
+
"use strict";export{default,TagInput}from"./TagInput.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{forwardRef,useMemo}from"react";import{Text as RNText}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{jsx as _jsx}from"react/jsx-runtime";const VARIANTS={display:{size:"4xl",weight:"bold",line:"tight",color:"primary",heading:!0},h1:{size:"3xl",weight:"bold",line:"tight",color:"primary",heading:!0},h2:{size:"2xl",weight:"semibold",line:"tight",color:"primary",heading:!0},h3:{size:"xl",weight:"semibold",line:"tight",color:"primary",heading:!0},title:{size:"lg",weight:"semibold",line:"normal",color:"primary"},body:{size:"base",weight:"normal",line:"normal",color:"primary"},bodySmall:{size:"sm",weight:"normal",line:"normal",color:"secondary"},caption:{size:"xs",weight:"normal",line:"normal",color:"tertiary"},label:{size:"sm",weight:"medium",line:"normal",color:"secondary"},overline:{size:"xs",weight:"semibold",line:"normal",color:"secondary",uppercase:!0,letterSpacing:"wide"}},TEXT_ROLES={primary:!0,secondary:!0,tertiary:!0,inverse:!0,disabled:!0,link:!0,textStrong:!0},TEXT_ROLE_KEY={textStrong:"strong"},SEMANTIC={success:!0,warning:!0,error:!0,info:!0};export const resolveColor=(e,i)=>TEXT_ROLES[i]?e.colors.text[TEXT_ROLE_KEY[i]??i]:SEMANTIC[i]?e.colors[i]:i;const Text=forwardRef((e,i)=>{const{variant:t="body",color:o,weight:r,size:n,align:l,italic:a,underline:s,style:c,children:m,...p}=e,g=useTheme(),d=Object.hasOwn(VARIANTS,t),h=g.textVariants,y=!d&&h&&Object.hasOwn(h,t)?h[t]:void 0,x=useMemo(()=>{if(y){const{typography:e}=g,i="number"==typeof y.size?y.size:e.fontSize[y.size],t="number"==typeof n?n:n?e.fontSize[n]:i,c=y.lineHeight,m=y.letterSpacing;return{fontSize:t,lineHeight:"number"==typeof c?c:c?Math.round(t*e.lineHeight[c]):void 0,color:resolveColor(g,o??y.color??"primary"),textAlign:l,textTransform:y.uppercase?"uppercase":void 0,letterSpacing:"number"!=typeof m&&m?e.letterSpacing[m]:m,fontStyle:a||y.italic?"italic":void 0,fontVariant:y.fontVariant,textDecorationLine:s?"underline":void 0,...fontFor(g,r??y.weight??"normal")}}const e=VARIANTS[d?t:"body"],i="number"==typeof n?n:g.typography.fontSize[n??e.size];return{fontSize:i,lineHeight:Math.round(i*g.typography.lineHeight[e.line]),color:resolveColor(g,o??e.color),textAlign:l,textTransform:e.uppercase?"uppercase":void 0,letterSpacing:e.letterSpacing?g.typography.letterSpacing[e.letterSpacing]:void 0,fontStyle:a?"italic":void 0,textDecorationLine:s?"underline":void 0,...fontFor(g,r??e.weight)}},[g,y,d,t,o,r,n,l,a,s]),f=!!d&&VARIANTS[t].heading;return _jsx(RNText,{ref:i,style:[x,c],maxFontSizeMultiplier:g.maxFontSizeMultiplier,accessibilityRole:f?"header":p.accessibilityRole,...p,children:m})});Text.displayName="Text";export{Text};export default Text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Text}from"./Text.js";
|
|
1
|
+
"use strict";export{Text}from"./Text.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useCallback as t,useEffect as i,useMemo as n,useRef as o,useState as r}from"react";import{AccessibilityInfo as a,Animated as s,Easing as l,Modal as c,Platform as d,Pressable as m,StyleSheet as u,Text as p,View as h}from"react-native";import{GestureDetector as g,GestureHandlerRootView as y}from"react-native-gesture-handler";import{useSafeAreaInsets as f}from"react-native-safe-area-context";import{useDragToDismiss as b}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue as x,setNativeValue as v,useTheme as w}from"../../theme/index.js";import{smoothCorners as I}from"../../utils/corners.js";import{resolveHaptic as S,triggerHaptic as M}from"../../utils/hapticUtils.js";import C from"../Button/Button.js";import{PickerTrigger as D}from"../PickerTrigger/PickerTrigger.js";import{ToastHost as k}from"../Toast/ToastProvider.js";import{jsx as L,jsxs as H,Fragment as R}from"react/jsx-runtime";const A=40,B=Math.floor(2.5),range=(e,t,i=1)=>{const n=[];for(let o=e;o<=t;o+=i)n.push(o);return n},pad2=e=>e.toString().padStart(2,"0"),from24h=(e,t)=>"24h"===t?{displayHour:e,period:"AM"}:0===e?{displayHour:12,period:"AM"}:12===e?{displayHour:12,period:"PM"}:e>12?{displayHour:e-12,period:"PM"}:{displayHour:e,period:"AM"},clampMinuteToStep=(e,t)=>{const i=Math.round(e/t)*t;return Math.min(59,Math.max(0,i))},Wheel=({kind:e,label:r,data:a,selectedIndex:l,onIndexChange:c,formatItem:d,theme:m,haptic:u,testID:g})=>{const y=o(null),f=o(x(l*A)).current,b=o(l),w=o(0);i(()=>{if(b.current!==l){b.current=l;const e=l*A;v(f,e),requestAnimationFrame(()=>{y.current?.scrollToOffset({offset:e,animated:!1})})}},[l,f]);const I=m.components.timePicker?.hapticDebounceMs??35,C=n(()=>s.event([{nativeEvent:{contentOffset:{y:f}}}],{useNativeDriver:!0,listener:e=>{const t=e.nativeEvent.contentOffset.y,i=Math.round(t/A);if(i!==b.current&&i>=0&&i<a.length){const e=Date.now();if(e-w.current>=I){const t=S(u,"selection");t&&M(t),w.current=e}b.current=i}}}),[f,a.length,u,I]),D=t(e=>{const t=e.nativeEvent.contentOffset.y,i=Math.max(0,Math.min(a.length-1,Math.round(t/A)));i!==l&&c(i)},[a.length,c,l]),k=t(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(a.length-1,l+1);e!==l&&c(e)}else if("decrement"===t){const e=Math.max(0,l-1);e!==l&&c(e)}},[a.length,c,l]),R=t(({item:e,index:t})=>{const i=s.subtract(s.divide(f,A),t),n=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),o=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"}),r=t===l;return L(s.View,{style:[T.wheelItem,{opacity:n,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:L(p,{style:[{fontSize:m.typography.fontSize.xl,color:r?m.colors.text.primary:m.colors.text.secondary,fontWeight:r?m.typography.fontWeight.semibold:m.typography.fontWeight.medium,letterSpacing:m.typography.letterSpacing.normal}],children:d(e)})})},[f,l,m,d]),$=t((t,i)=>`${e}-${String(t)}-${i}`,[e]),j=t((e,t)=>({length:A,offset:A*t,index:t}),[]),z=d(a[l]??"");return H(h,{style:T.wheelColumn,testID:g,children:[L(h,{pointerEvents:"none",style:T.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:r,accessibilityValue:{text:z},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:k}),L(s.FlatList,{ref:y,data:a,keyExtractor:$,renderItem:R,getItemLayout:j,showsVerticalScrollIndicator:!1,snapToInterval:A,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:C,onMomentumScrollEnd:D,contentContainerStyle:{paddingVertical:A*B},initialScrollIndex:l,style:T.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:I,value:S,onChange:A,onClose:B,format:T="12h",minuteStep:$=1,title:j="Select Time",confirmLabel:z="Confirm",cancelLabel:P="Cancel",testID:F,style:N,containerStyle:O,headerLabelStyle:W,footerButtonStyle:V,label:E,placeholder:q,helperText:G,error:U,required:Y,disabled:J,size:K,variant:Q,clearable:X,onClear:Z,formatValue:_,triggerStyle:ee,haptic:te}=e,ie=void 0!==e.visible,[ne,oe]=r(!1),re=ie?I:ne,ae=ie?F:F?`${F}-modal`:void 0,se=w(),le=f(),ce=n(()=>buildStyles(se),[se]),de=o(x(0)).current,me=o(x(40)).current,ue=o(x(0)).current,pe=o(0),he=t(()=>{ie?B?.():oe(!1)},[ie,B]),ge=t(()=>{s.parallel([s.timing(de,{toValue:0,duration:se.motion.duration.fast,easing:l.bezier(...se.motion.easing.accelerate),useNativeDriver:!1}),s.timing(me,{toValue:40,duration:se.motion.duration.fast,easing:l.bezier(...se.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>he())},[he,de,me,se.motion.duration.fast,se.motion.easing.accelerate]),{handleGesture:ye}=b({drag:ue,travel:()=>pe.current||320,onDismiss:ge}),fe=n(()=>"24h"===T?range(0,23):range(1,12),[T]),be=n(()=>range(0,59,$),[$]),xe=n(()=>["AM","PM"],[]),ve=n(()=>{const e=S&&Number.isFinite(S.hour)?S.hour:(new Date).getHours(),t=S&&Number.isFinite(S.minute)?S.minute:(new Date).getMinutes(),i=clampMinuteToStep(t,$),{displayHour:n,period:o}=from24h(e,T);return{displayHour:n,minute:i,period:o,hour24:e}},[S,T,$]),[we,Ie]=r(()=>{const e=fe.indexOf(ve.displayHour);return e>=0?e:0}),[Se,Me]=r(()=>{const e=be.indexOf(ve.minute);return e>=0?e:0}),[Ce,De]=r(()=>"PM"===ve.period?1:0);i(()=>{if(!re)return;const e=S&&Number.isFinite(S.hour)?S.hour:(new Date).getHours(),t=S&&Number.isFinite(S.minute)?S.minute:(new Date).getMinutes(),i=clampMinuteToStep(t,$),{displayHour:n,period:o}=from24h(e,T),r=fe.indexOf(n);Ie(r>=0?r:0);const a=be.indexOf(i);Me(a>=0?a:0),De("PM"===o?1:0)},[re,S,T,$,fe,be]),i(()=>{let e;return re?(e=s.parallel([s.timing(de,{toValue:1,duration:se.motion.duration.normal,easing:l.out(l.cubic),useNativeDriver:!1}),s.spring(me,{toValue:0,damping:se.motion.spring.snappy.damping,stiffness:se.motion.spring.snappy.stiffness,mass:se.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(de.setValue(0),v(me,40),v(ue,0)),()=>e?.stop()},[re,de,me,ue,se.motion]);const ke=t(e=>{"ios"!==d.OS&&"android"!==d.OS||a.announceForAccessibility(e)},[]),Le=t(e=>{Ie(e),ke(`Hour ${fe[e]}`)},[fe,ke]),He=t(e=>{Me(e),ke(`${be[e]} minutes`)},[be,ke]),Re=t(e=>{De(e),ke(xe[e]??"")},[xe,ke]),Ae=t(()=>{!1!==te&&M("selection"),ge()},[ge,te]),Be=t(()=>{const e=((e,t,i)=>"24h"===i?e:"AM"===t?12===e?0:e:12===e?12:e+12)(fe[we]??0,xe[Ce]??"AM",T),t=be[Se]??0;!1!==te&&M("notificationSuccess"),A?.({hour:e,minute:t}),ge()},[fe,we,xe,Ce,be,Se,T,A,ge,te]),Te=n(()=>{const e=fe[we]??0,t=be[Se]??0;if("24h"===T)return`${pad2(e)}:${pad2(t)}`;const i=xe[Ce]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[fe,we,be,Se,xe,Ce,T]),$e=t(e=>pad2(Number(e)),[]),je=t(e=>pad2(Number(e)),[]),ze=t(e=>String(e),[]),Pe=t(e=>{if("24h"===T)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[T]),Fe=!ie&&S&&Number.isFinite(S.hour)&&Number.isFinite(S.minute)?(_??Pe)(S):void 0,Ne=L(c,{visible:re,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ge,testID:ae,children:H(y,{collapsable:!1,style:ce.backdrop,children:[L(m,{style:u.absoluteFill,onPress:ge,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),H(s.View,{style:[ce.sheet,{paddingBottom:Math.max(le.bottom,se.spacing.lg),transform:[{translateY:s.add(me,ue)}]},N,O],onLayout:e=>{pe.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:j,children:[L(g,{gesture:ye,children:H(h,{children:[L(h,{style:ce.handle}),L(p,{style:[ce.title,W],accessibilityRole:"header",children:j})]})}),L(h,{style:ce.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${Te}`,children:L(p,{style:ce.summary,children:Te})}),H(h,{style:ce.wheelsRow,children:[H(h,{pointerEvents:"none",style:ce.selectionBand,children:[L(h,{style:ce.bandLine}),L(h,{style:[ce.bandLine,ce.bandLineBottom]})]}),L(Wheel,{kind:"hour",label:"Hour",data:fe,selectedIndex:we,onIndexChange:Le,formatItem:$e,theme:se,haptic:te,testID:"time-picker-hour"}),L(p,{style:ce.separator,children:":"}),L(Wheel,{kind:"minute",label:"Minute",data:be,selectedIndex:Se,onIndexChange:He,formatItem:je,theme:se,haptic:te,testID:"time-picker-minute"}),"12h"===T?H(R,{children:[L(h,{style:ce.spacer}),L(Wheel,{kind:"period",label:"Period",data:xe,selectedIndex:Ce,onIndexChange:Re,formatItem:ze,theme:se,haptic:te,testID:"time-picker-period"})]}):null]}),H(h,{style:ce.footer,children:[L(C,{title:P,haptic:!1,variant:"ghost",tone:"neutral",onPress:Ae,style:[ce.footerBtn,V],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),L(C,{title:z,variant:"solid",tone:"primary",haptic:!1,onPress:Be,style:[ce.footerBtn,V],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),L(k,{})]})});return ie?Ne:H(R,{children:[L(D,{label:E,placeholder:q,helperText:G,error:U,required:Y,disabled:J,size:K,variant:Q,clearable:X,onClear:Z,value:Fe,onPress:()=>oe(!0),triggerStyle:ee,testID:F}),Ne]})},T=u.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:A,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{...u.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return u.create({backdrop:{flex:1,backgroundColor:e.colors.background.overlay,justifyContent:"flex-end"},sheet:{backgroundColor:e.colors.background.elevated,borderTopLeftRadius:e.radius.xl,borderTopRightRadius:e.radius.xl,...I,paddingTop:e.spacing.sm,paddingHorizontal:e.spacing.lg,paddingBottom:e.spacing.xl,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},handle:{alignSelf:"center",width:e.components.timePicker?.handleWidth??36,height:e.components.timePicker?.handleHeight??4,borderRadius:e.radius.full,...I,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},title:{textAlign:"center",fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary,marginBottom:e.spacing.sm},summaryWrap:{alignItems:"center",marginBottom:e.spacing.md},summary:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.primary,letterSpacing:e.typography.letterSpacing.wide},wheelsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:200,position:"relative",marginBottom:e.spacing.lg},selectionBand:{position:"absolute",left:0,right:0,top:A*B,height:A,justifyContent:"space-between"},bandLine:{height:2*u.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},bandLineBottom:{},separator:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.text.primary,paddingHorizontal:e.spacing.xs},spacer:{width:e.spacing.md},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg}})};export{TimePicker};export default TimePicker;
|
|
1
|
+
"use strict";import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,Easing,Modal,Platform,Pressable,StyleSheet,Text,View}from"react-native";import{GestureDetector,GestureHandlerRootView}from"react-native-gesture-handler";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useDragToDismiss}from"../../hooks/useDragToDismiss.js";import{createAnimatedValue,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import Button from"../Button/Button.js";import{PickerTrigger}from"../PickerTrigger/PickerTrigger.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const ITEM_HEIGHT=40,VISIBLE_ITEMS=5,PICKER_HEIGHT=200,CENTER_OFFSET=Math.floor(2.5),HAPTIC_DEBOUNCE_MS=35,range=(e,t,i=1)=>{const a=[];for(let n=e;n<=t;n+=i)a.push(n);return a},pad2=e=>e.toString().padStart(2,"0"),to24h=(e,t,i)=>"24h"===i?e:"AM"===t?12===e?0:e:12===e?12:e+12,from24h=(e,t)=>"24h"===t?{displayHour:e,period:"AM"}:0===e?{displayHour:12,period:"AM"}:12===e?{displayHour:12,period:"PM"}:e>12?{displayHour:e-12,period:"PM"}:{displayHour:e,period:"AM"},clampMinuteToStep=(e,t)=>{const i=Math.round(e/t)*t;return Math.min(59,Math.max(0,i))},Wheel=({kind:e,label:t,data:i,selectedIndex:a,onIndexChange:n,formatItem:s,theme:r,haptic:o,testID:l})=>{const c=useRef(null),u=useRef(createAnimatedValue(40*a)).current,d=useRef(a),m=useRef(0);useEffect(()=>{if(d.current!==a){d.current=a;const e=40*a;setNativeValue(u,e),requestAnimationFrame(()=>{c.current?.scrollToOffset({offset:e,animated:!1})})}},[a,u]);const p=r.components.timePicker?.hapticDebounceMs??35,h=useMemo(()=>Animated.event([{nativeEvent:{contentOffset:{y:u}}}],{useNativeDriver:!0,listener:e=>{const t=e.nativeEvent.contentOffset.y,a=Math.round(t/40);if(a!==d.current&&a>=0&&a<i.length){const e=Date.now();if(e-m.current>=p){const t=resolveHaptic(o,"selection");t&&triggerHaptic(t),m.current=e}d.current=a}}}),[u,i.length,o,p]),g=useCallback(e=>{const t=e.nativeEvent.contentOffset.y,s=Math.max(0,Math.min(i.length-1,Math.round(t/40)));s!==a&&n(s)},[i.length,n,a]),f=useCallback(e=>{const t=e.nativeEvent.actionName;if("increment"===t){const e=Math.min(i.length-1,a+1);e!==a&&n(e)}else if("decrement"===t){const e=Math.max(0,a-1);e!==a&&n(e)}},[i.length,n,a]),y=useCallback(({item:e,index:t})=>{const i=Animated.subtract(Animated.divide(u,40),t),n=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.3,.6,1,.6,.3],extrapolate:"clamp"}),o=i.interpolate({inputRange:[-2,-1,0,1,2],outputRange:[.85,.95,1.05,.95,.85],extrapolate:"clamp"}),l=t===a;return _jsx(Animated.View,{style:[styles.wheelItem,{opacity:n,transform:[{scale:o}]}],accessible:!1,importantForAccessibility:"no",children:_jsx(Text,{style:[{fontSize:r.typography.fontSize.xl,color:l?r.colors.text.primary:r.colors.text.secondary,fontWeight:l?r.typography.fontWeight.semibold:r.typography.fontWeight.medium,letterSpacing:r.typography.letterSpacing.normal}],children:s(e)})})},[u,a,r,s]),b=useCallback((t,i)=>`${e}-${String(t)}-${i}`,[e]),x=useCallback((e,t)=>({length:40,offset:40*t,index:t}),[]),S=s(i[a]??"");return _jsxs(View,{style:styles.wheelColumn,testID:l,children:[_jsx(View,{pointerEvents:"none",style:styles.wheelA11yLayer,accessible:!0,accessibilityRole:"adjustable",accessibilityLabel:t,accessibilityValue:{text:S},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:f}),_jsx(Animated.FlatList,{ref:c,data:i,keyExtractor:b,renderItem:y,getItemLayout:x,showsVerticalScrollIndicator:!1,snapToInterval:40,snapToAlignment:"start",decelerationRate:"fast",bounces:!1,scrollEventThrottle:16,onScroll:h,onMomentumScrollEnd:g,contentContainerStyle:{paddingVertical:40*CENTER_OFFSET},initialScrollIndex:a,style:styles.wheelList,importantForAccessibility:"no-hide-descendants"})]})},TimePicker=e=>{const{visible:t,value:i,onChange:a,onClose:n,format:s="12h",minuteStep:r=1,title:o="Select Time",confirmLabel:l="Confirm",cancelLabel:c="Cancel",testID:u,style:d,containerStyle:m,headerLabelStyle:p,footerButtonStyle:h,label:g,placeholder:f,helperText:y,error:b,required:x,disabled:S,size:v,variant:w,clearable:C,onClear:j,formatValue:k,triggerStyle:T,haptic:I}=e,M=void 0!==e.visible,[_,A]=useState(!1),E=M?t:_,V=M?u:u?`${u}-modal`:void 0,H=useTheme(),R=useSafeAreaInsets(),D=useMemo(()=>buildStyles(H),[H]),P=useRef(createAnimatedValue(0)).current,B=useRef(createAnimatedValue(40)).current,F=useRef(createAnimatedValue(0)).current,L=useRef(0),N=useCallback(()=>{M?n?.():A(!1)},[M,n]),O=useCallback(()=>{Animated.parallel([Animated.timing(P,{toValue:0,duration:H.motion.duration.fast,easing:Easing.bezier(...H.motion.easing.accelerate),useNativeDriver:!1}),Animated.timing(B,{toValue:40,duration:H.motion.duration.fast,easing:Easing.bezier(...H.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>N())},[N,P,B,H.motion.duration.fast,H.motion.easing.accelerate]),{handleGesture:W}=useDragToDismiss({drag:F,travel:()=>L.current||320,onDismiss:O}),$=useMemo(()=>"24h"===s?range(0,23):range(1,12),[s]),z=useMemo(()=>range(0,59,r),[r]),G=useMemo(()=>["AM","PM"],[]),q=useMemo(()=>{const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,r),{displayHour:n,period:o}=from24h(e,s);return{displayHour:n,minute:a,period:o,hour24:e}},[i,s,r]),[U,K]=useState(()=>{const e=$.indexOf(q.displayHour);return e>=0?e:0}),[Y,J]=useState(()=>{const e=z.indexOf(q.minute);return e>=0?e:0}),[Q,X]=useState(()=>"PM"===q.period?1:0);useEffect(()=>{if(!E)return;const e=i&&Number.isFinite(i.hour)?i.hour:(new Date).getHours(),t=i&&Number.isFinite(i.minute)?i.minute:(new Date).getMinutes(),a=clampMinuteToStep(t,r),{displayHour:n,period:o}=from24h(e,s),l=$.indexOf(n);K(l>=0?l:0);const c=z.indexOf(a);J(c>=0?c:0),X("PM"===o?1:0)},[E,i,s,r,$,z]),useEffect(()=>{let e;return E?(e=Animated.parallel([Animated.timing(P,{toValue:1,duration:H.motion.duration.normal,easing:Easing.out(Easing.cubic),useNativeDriver:!1}),Animated.spring(B,{toValue:0,damping:H.motion.spring.snappy.damping,stiffness:H.motion.spring.snappy.stiffness,mass:H.motion.spring.snappy.mass,useNativeDriver:!0})]),e.start()):(P.setValue(0),setNativeValue(B,40),setNativeValue(F,0)),()=>e?.stop()},[E,P,B,F,H.motion]);const Z=useCallback(e=>{"ios"!==Platform.OS&&"android"!==Platform.OS||AccessibilityInfo.announceForAccessibility(e)},[]),ee=useCallback(e=>{K(e),Z(`Hour ${$[e]}`)},[$,Z]),te=useCallback(e=>{J(e),Z(`${z[e]} minutes`)},[z,Z]),ie=useCallback(e=>{X(e),Z(G[e]??"")},[G,Z]),ae=useCallback(()=>{!1!==I&&triggerHaptic("selection"),O()},[O,I]),ne=useCallback(()=>{const e=$[U]??0,t=G[Q]??"AM",i=to24h(e,t,s),n=z[Y]??0;!1!==I&&triggerHaptic("notificationSuccess"),a?.({hour:i,minute:n}),O()},[$,U,G,Q,z,Y,s,a,O,I]),se=useMemo(()=>{const e=$[U]??0,t=z[Y]??0;if("24h"===s)return`${pad2(e)}:${pad2(t)}`;const i=G[Q]??"AM";return`${pad2(e)}:${pad2(t)} ${i}`},[$,U,z,Y,G,Q,s]),re=useCallback(e=>pad2(Number(e)),[]),oe=useCallback(e=>pad2(Number(e)),[]),le=useCallback(e=>String(e),[]),ce=useCallback(e=>{if("24h"===s)return`${pad2(e.hour)}:${pad2(e.minute)}`;const{displayHour:t,period:i}=from24h(e.hour,"12h");return`${t}:${pad2(e.minute)} ${i}`},[s]),ue=!M&&i&&Number.isFinite(i.hour)&&Number.isFinite(i.minute)?(k??ce)(i):void 0,de=_jsx(Modal,{visible:E,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:O,testID:V,children:_jsxs(GestureHandlerRootView,{collapsable:!1,style:D.backdrop,children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:O,accessibilityLabel:"Close time picker",accessibilityRole:"button"}),_jsxs(Animated.View,{style:[D.sheet,{paddingBottom:Math.max(R.bottom,H.spacing.lg),transform:[{translateY:Animated.add(B,F)}]},d,m],onLayout:e=>{L.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessible:!0,accessibilityRole:"none",accessibilityLabel:o,children:[_jsx(GestureDetector,{gesture:W,children:_jsxs(View,{children:[_jsx(View,{style:D.handle}),_jsx(Text,{style:[D.title,p],accessibilityRole:"header",children:o})]})}),_jsx(View,{style:D.summaryWrap,accessibilityLiveRegion:"polite",accessibilityLabel:`Selected ${se}`,children:_jsx(Text,{style:D.summary,children:se})}),_jsxs(View,{style:D.wheelsRow,children:[_jsxs(View,{pointerEvents:"none",style:D.selectionBand,children:[_jsx(View,{style:D.bandLine}),_jsx(View,{style:[D.bandLine,D.bandLineBottom]})]}),_jsx(Wheel,{kind:"hour",label:"Hour",data:$,selectedIndex:U,onIndexChange:ee,formatItem:re,theme:H,haptic:I,testID:"time-picker-hour"}),_jsx(Text,{style:D.separator,children:":"}),_jsx(Wheel,{kind:"minute",label:"Minute",data:z,selectedIndex:Y,onIndexChange:te,formatItem:oe,theme:H,haptic:I,testID:"time-picker-minute"}),"12h"===s?_jsxs(_Fragment,{children:[_jsx(View,{style:D.spacer}),_jsx(Wheel,{kind:"period",label:"Period",data:G,selectedIndex:Q,onIndexChange:ie,formatItem:le,theme:H,haptic:I,testID:"time-picker-period"})]}):null]}),_jsxs(View,{style:D.footer,children:[_jsx(Button,{title:c,haptic:!1,variant:"ghost",tone:"neutral",onPress:ae,style:[D.footerBtn,h],accessibilityHint:"Dismiss without changes",testID:"time-picker-cancel"}),_jsx(Button,{title:l,variant:"solid",tone:"primary",haptic:!1,onPress:ne,style:[D.footerBtn,h],accessibilityHint:"Confirm selected time",testID:"time-picker-confirm"})]})]}),_jsx(ToastHost,{})]})});return M?de:_jsxs(_Fragment,{children:[_jsx(PickerTrigger,{label:g,placeholder:f,helperText:y,error:b,required:x,disabled:S,size:v,variant:w,clearable:C,onClear:j,value:ue,onPress:()=>A(!0),triggerStyle:T,testID:u}),de]})},styles=StyleSheet.create({wheelColumn:{width:64,height:200,overflow:"hidden"},wheelList:{flexGrow:0,height:200},wheelItem:{height:40,alignItems:"center",justifyContent:"center"},wheelA11yLayer:{...StyleSheet.absoluteFill,zIndex:2}}),buildStyles=e=>{const t=e.shadows.xl;return StyleSheet.create({backdrop:{flex:1,backgroundColor:e.colors.background.overlay,justifyContent:"flex-end"},sheet:{backgroundColor:e.colors.background.elevated,borderTopLeftRadius:e.radius.xl,borderTopRightRadius:e.radius.xl,...smoothCorners,paddingTop:e.spacing.sm,paddingHorizontal:e.spacing.lg,paddingBottom:e.spacing.xl,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},handle:{alignSelf:"center",width:e.components.timePicker?.handleWidth??36,height:e.components.timePicker?.handleHeight??4,borderRadius:e.radius.full,...smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},title:{textAlign:"center",fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary,marginBottom:e.spacing.sm},summaryWrap:{alignItems:"center",marginBottom:e.spacing.md},summary:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.primary,letterSpacing:e.typography.letterSpacing.wide},wheelsRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",height:200,position:"relative",marginBottom:e.spacing.lg},selectionBand:{position:"absolute",left:0,right:0,top:40*CENTER_OFFSET,height:40,justifyContent:"space-between"},bandLine:{height:2*StyleSheet.hairlineWidth,backgroundColor:e.colors.primary,opacity:.85},bandLineBottom:{},separator:{fontSize:e.typography.fontSize["2xl"],fontWeight:e.typography.fontWeight.bold,color:e.colors.text.primary,paddingHorizontal:e.spacing.xs},spacer:{width:e.spacing.md},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg}})};export{TimePicker};export default TimePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,TimePicker}from"./TimePicker.js";
|
|
1
|
+
"use strict";export{default,TimePicker}from"./TimePicker.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useCallback,useMemo,useState}from"react";import{StyleSheet,Text,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const DOT=12,HALO=6,RAIL=2,GAP=4,GUTTER=28,HALO_OPACITY=.16;export const Timeline=({items:e,variant:t="feed",orientation:r="vertical",style:o,testID:n})=>{const s=useTheme(),i=s.components.timeline,l=i?.dotSize??12,c=i?.haloWidth??6,a=i?.connectorGap??4,d=l+2*c,m=useMemo(()=>buildStyles(s,l,d,a),[s,l,d,a]),h="horizontal"===r,u=s.colors.border.primary,[g,x]=useState(0),y=useCallback(e=>{const{width:t}=e.nativeEvent.layout;x(e=>e===t?e:t)},[]),p=h&&g>0&&e.length>0?g/e.length:0,renderDisc=(e,t)=>e.icon?_jsx(View,{style:m.disc,children:e.icon}):_jsx(View,{style:[m.disc,{backgroundColor:tintOf(t,.16,s.colors.background.tertiary)}],children:_jsx(View,{style:[m.dot,{backgroundColor:t}]})}),renderText=(e,t)=>_jsxs(_Fragment,{children:[_jsx(Text,{style:[m.title,{fontSize:h?s.typography.fontSize.sm:s.typography.fontSize.base,color:"upcoming"===t?s.colors.text.secondary:s.colors.text.primary},h?m.centred:null],children:e.title}),e.meta?_jsx(Text,{style:[m.meta,{fontSize:s.typography.fontSize.xs,color:s.colors.text.tertiary},h?m.centred:null],children:e.meta}):null,e.description?_jsx(Text,{style:[m.description,{fontSize:s.typography.fontSize.sm,color:s.colors.text.secondary},h?m.centred:null],children:e.description}):null,e.children]}),f=e.map((r,o)=>{const n=r.status??("feed"===t?"done":"upcoming"),i=r.color??(e=>{switch(e){case"done":return s.colors.success;case"current":return s.colors.warning;case"onHold":return s.colors.info;case"rejected":return s.colors.error;case"cancelled":case"skipped":return s.colors.text.tertiary;default:return s.colors.text.disabled}})(n),l=0===o,c=o===e.length-1,d=r.key??`${r.title}-${o}`;return _jsxs(View,h?{style:[m.hColumn,p>0?{width:p,flex:0}:null],children:[_jsxs(View,{style:m.hDotRow,children:[_jsx(View,{style:[m.hSegment,{marginRight:a,backgroundColor:l?"transparent":u}]}),renderDisc(r,i),_jsx(View,{style:[m.hSegment,{marginLeft:a,backgroundColor:c?"transparent":u}]})]}),_jsx(View,{style:m.hBody,children:renderText(r,n)})]}:{style:m.row,children:[_jsxs(View,{style:m.gutter,children:[renderDisc(r,i),c?null:_jsx(View,{style:[m.rail,{backgroundColor:u}]})]}),_jsx(View,{style:[m.body,{paddingBottom:c?0:s.spacing.lg}],children:renderText(r,n)})]},d)});return _jsx(View,{style:[h?m.hRow:null,o],onLayout:h?y:void 0,testID:n,children:f})};const buildStyles=(e,t,r,o)=>StyleSheet.create({row:{flexDirection:"row"},gutter:{width:Math.max(28,r+4),alignItems:"center"},disc:{width:r,height:r,borderRadius:r/2,...smoothCorners,alignItems:"center",justifyContent:"center"},dot:{width:t,height:t,borderRadius:t/2,...smoothCorners},rail:{width:2,flex:1,marginTop:o,borderRadius:1,...smoothCorners},body:{flex:1,gap:2,paddingLeft:e.spacing.sm},hRow:{flexDirection:"row",alignItems:"flex-start"},hColumn:{flex:1,minWidth:0,alignItems:"center"},hDotRow:{alignSelf:"stretch",flexDirection:"row",alignItems:"center"},hSegment:{flex:1,height:2,borderRadius:1,...smoothCorners},hBody:{alignSelf:"stretch",alignItems:"center",paddingHorizontal:e.spacing.xs,marginTop:e.spacing.sm,gap:2},centred:{textAlign:"center"},title:{...fontFor(e,"semibold"),fontWeight:"600"},meta:{...fontFor(e,"normal")},description:{...fontFor(e,"normal")}});export default Timeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Timeline}from"./Timeline.js";
|
|
1
|
+
"use strict";export{default,Timeline}from"./Timeline.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useEffect,useMemo,useRef}from"react";import{Animated,Easing,PanResponder,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,setNativeValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const DEFAULT_SWIPE_DISMISS_THRESHOLD=80,DEFAULT_SWIPE_VELOCITY_THRESHOLD=.5,DEFAULT_STACK_OFFSET=8,DEFAULT_STACK_SCALE_STEP=.04,DEFAULT_AUTO_DISMISS_MS=3e3,Toast=({toast:e,index:t,onDismiss:i,shownAt:s})=>{const n=useTheme(),a=e.variant??"default",r=e.position??"bottom",o=useMemo(()=>buildStyles(n),[n]),l=useMemo(()=>tintFor(n,a),[n,a]),c=n.components.toast,d=c?.iconCircleSize??28,u=c?.iconCircleBorderRadius??14,m=c?.iconGlyphFontSize??16,p=c?.tintBarWidth??4,f=c?.swipeDismissThreshold??80,g=c?.swipeVelocityThreshold??.5,h=c?.stackOffset??8,y=c?.stackScaleStep??.04,S=c?.stackMinScale??.9,b=c?.defaultDurationMs??3e3,x=c?.enableSwipeDismiss??!0,v=c?.enterSpringDamping??18,A=c?.enterSpringStiffness??180,T=c?.enterSpringMass??1,V="top"===r?-120:120,D=useRef(createAnimatedValue(V)).current,w=useRef(createAnimatedValue(0)).current,_=useRef(createAnimatedValue(0)).current,R=useRef(!1),M="top"===r?t*h:-t*h,C=Math.max(1-t*y,S),E=useRef(createAnimatedValue(M)).current;useEffect(()=>{setNativeValue(E,M)},[M,E]);const j=useMemo(()=>Animated.add(D,E),[D,E]),dismiss=()=>{R.current||(R.current=!0,Animated.parallel([Animated.timing(_,{toValue:0,duration:n.motion.duration.fast,easing:Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0}),Animated.timing(D,{toValue:V,duration:n.motion.duration.fast,easing:Easing.bezier(...n.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>i(e.id)))};useEffect(()=>{const t=Animated.parallel([Animated.spring(D,{toValue:0,damping:v,stiffness:A,mass:T,useNativeDriver:!0}),Animated.timing(_,{toValue:1,duration:n.motion.duration.fast,useNativeDriver:!0})]);t.start();const i=e.duration??b;if(i>0){const e=void 0===s?0:Date.now()-s,n=setTimeout(()=>dismiss(),Math.max(i-e,0));return()=>{t.stop(),clearTimeout(n)}}return()=>t.stop()},[]);const L=useMemo(()=>PanResponder.create({onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>Math.abs(t.dy)&&Math.abs(t.dx)>6,onPanResponderMove:(e,t)=>{setNativeValue(w,t.dx);const i=1-.7*Math.min(Math.abs(t.dx)/200,1);setNativeValue(_,i)},onPanResponderTerminate:()=>{Animated.parallel([Animated.spring(w,{toValue:0,damping:n.motion.spring.snappy.damping,stiffness:n.motion.spring.snappy.stiffness,mass:n.motion.spring.snappy.mass,useNativeDriver:!0}),Animated.timing(_,{toValue:1,duration:n.motion.duration.fast,useNativeDriver:!0})]).start()},onPanResponderRelease:(t,s)=>{if(Math.abs(s.dx)>f||Math.abs(s.vx)>g){const t=s.dx>=0?1:-1;Animated.parallel([Animated.timing(w,{toValue:500*t,duration:n.motion.duration.fast,useNativeDriver:!0}),Animated.timing(_,{toValue:0,duration:n.motion.duration.fast,useNativeDriver:!0})]).start(()=>{R.current=!0,i(e.id)})}else Animated.parallel([Animated.spring(w,{toValue:0,useNativeDriver:!0}),Animated.spring(_,{toValue:1,useNativeDriver:!0})]).start()}}),[w,_,f,g,n.motion.duration.fast,n.motion.spring.snappy.damping,n.motion.spring.snappy.stiffness,n.motion.spring.snappy.mass,i,e.id]),N=e.description?`${e.message}. ${e.description}`:e.message;return _jsxs(Animated.View,{...x?L.panHandlers:{},accessibilityRole:"alert",accessibilityLiveRegion:"assertive",accessibilityLabel:N,testID:e.testID,style:[o.container,{backgroundColor:n.colors.background.elevated,borderRadius:n.radius.lg,...smoothCorners,padding:n.spacing.md,...n.shadows.md,shadowColor:n.shadows.md.shadowColor,opacity:_,transform:[{translateY:j},{translateX:w},{scale:C}]},e.style,e.containerStyle],children:[_jsx(View,{style:[o.tintBar,{width:p,backgroundColor:l}]}),_jsxs(View,{style:o.row,children:[(()=>{if(e.icon)return e.icon;const t=defaultGlyph(a);return t?_jsx(View,{style:[o.iconCircle,{width:d,height:d,borderRadius:u,...smoothCorners,backgroundColor:l+"22"},e.iconCircleStyle],children:_jsx(Text,{style:[o.iconGlyph,{color:l,fontSize:m}],accessible:!1,children:t})}):null})(),_jsxs(View,{style:o.textBlock,children:[_jsx(Text,{style:[o.message,{color:n.colors.text.primary,fontSize:n.typography.fontSize.base,...fontFor(n,"semibold")},e.textStyle,e.messageStyle],numberOfLines:2,children:e.message}),e.description?_jsx(Text,{style:[o.description,{color:n.colors.text.secondary,fontSize:n.typography.fontSize.sm}],numberOfLines:3,children:e.description}):null]}),e.action?_jsx(Pressable,{accessibilityRole:"button",accessibilityLabel:e.action.label,onPress:()=>{e.action?.onPress(),dismiss()},style:({pressed:t})=>[o.actionBtn,{backgroundColor:t?n.colors.surface.pressed:"transparent"},e.actionButtonStyle],children:_jsx(Text,{style:{color:l,fontSize:n.typography.fontSize.sm,...fontFor(n,"semibold")},numberOfLines:1,children:e.action.label})}):null]})]})},tintFor=(e,t)=>{switch(t){case"success":return e.colors.success;case"error":return e.colors.error;case"warning":return e.colors.warning;case"info":return e.colors.info;default:return e.colors.text.primary}},defaultGlyph=e=>{switch(e){case"success":return"✓";case"error":return"×";case"warning":return"!";case"info":return"i";default:return""}},buildStyles=e=>StyleSheet.create({container:{overflow:"hidden",marginVertical:4},tintBar:{position:"absolute",left:0,top:0,bottom:0},row:{flexDirection:"row",alignItems:"center",paddingLeft:8},iconCircle:{alignItems:"center",justifyContent:"center",marginRight:12},iconGlyph:{fontWeight:"700",lineHeight:18},textBlock:{flex:1,paddingRight:8},message:{lineHeight:20},description:{marginTop:2,lineHeight:18},actionBtn:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,...smoothCorners,marginLeft:8}});export{Toast};export default Toast;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{createContext,useCallback,useContext,useEffect,useMemo,useRef,useState}from"react";import{StyleSheet,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{useTheme}from"../../theme/index.js";import{triggerHaptic}from"../../utils/hapticUtils.js";import Toast from"./Toast.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const MAX_VISIBLE=3,ToastContext=createContext(null),ToastHostContext=createContext(null);let nextId=0;const makeId=()=>(nextId+=1,`toast-${Date.now().toString(36)}-${nextId.toString(36)}`),defaultHaptic=t=>{switch(t){case"error":return"notificationError";case"success":return"notificationSuccess";case"warning":return"notificationWarning";default:return"selection"}},resolveHaptics=(t,e)=>{if(!1===t)return!1;const o=t?.[e??"default"];return void 0===o?defaultHaptic(e):o};let nextHostId=0;const makeHostId=()=>(nextHostId+=1,nextHostId);let providerCount=0,activeApi=null;const setActiveApi=t=>{activeApi=t},getActiveApi=()=>activeApi;export const ToastProvider=({children:t,maxVisible:e=3,topOffset:o,bottomOffset:s,defaultDuration:r,haptics:n})=>{const a=useRef({defaultDuration:r,haptics:n});a.current={defaultDuration:r,haptics:n};const[i,u]=useState([]),[c,l]=useState([]),d=useCallback(t=>{u(e=>e.filter(e=>e.id!==t))},[]),p=useCallback(()=>{u([])},[]),f=useCallback(t=>{const o=makeId(),{defaultDuration:s,haptics:r}=a.current,n={...t,duration:t.duration??s,id:o,shownAt:Date.now()},i=void 0!==t.haptic?t.haptic:resolveHaptics(r,t.variant);return!1!==i&&triggerHaptic(i),u(t=>{const o=[...t,n];return o.length>e?o.slice(o.length-e):o}),o},[e]),m=useMemo(()=>({show:f,hide:d,hideAll:p}),[f,d,p]);useEffect(()=>(providerCount+=1,setActiveApi(m),()=>{providerCount-=1,providerCount<=0&&(providerCount=0,setActiveApi(null))}),[m]);const h=useCallback(t=>{l(e=>[...e,t])},[]),x=useCallback(t=>{l(e=>e.filter(e=>e!==t))},[]),v=c.length>0?c[c.length-1]:null,g=useMemo(()=>({register:h,unregister:x,activeHostId:v,queue:i,hide:d,topOffset:o,bottomOffset:s}),[h,x,v,i,d,o,s]);return _jsx(ToastContext.Provider,{value:m,children:_jsxs(ToastHostContext.Provider,{value:g,children:[t,null===v?_jsx(ToastLayers,{queue:i,onDismiss:d,topOffset:o,bottomOffset:s}):null]})})};let warnedHost=!1;const warnHostWithoutProvider=()=>{warnedHost||(warnedHost=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] <ToastHost /> rendered outside a <ToastProvider />; it renders nothing. Mount a provider near your app root."))};export const ToastHost=()=>{const t=useContext(ToastHostContext),[e]=useState(makeHostId),o=t?.register,s=t?.unregister;return useEffect(()=>{if(o&&s)return o(e),()=>s(e);warnHostWithoutProvider()},[o,s,e]),t&&t.activeHostId===e?_jsx(ToastLayers,{queue:t.queue,onDismiss:t.hide,topOffset:t.topOffset,bottomOffset:t.bottomOffset}):null};const ToastLayers=({queue:t,onDismiss:e,topOffset:o,bottomOffset:s})=>{const r=useTheme(),n=useSafeAreaInsets(),a=useMemo(()=>buildStyles(),[]),i=t.filter(t=>"top"===(t.position??"bottom")),u=t.filter(t=>"bottom"===(t.position??"bottom"));return _jsxs(_Fragment,{children:[_jsx(View,{testID:"toast-layer-top",pointerEvents:"box-none",style:[a.layer,a.top,{top:(o??n.top)+r.spacing.sm,paddingHorizontal:r.spacing.md}],children:i.map((t,o)=>_jsx(Toast,{toast:t,index:i.length-1-o,shownAt:t.shownAt,onDismiss:e},t.id))}),_jsx(View,{testID:"toast-layer-bottom",pointerEvents:"box-none",style:[a.layer,a.bottom,{bottom:(s??n.bottom)+r.spacing.sm,paddingHorizontal:r.spacing.md}],children:u.map((t,o)=>_jsx(Toast,{toast:t,index:u.length-1-o,shownAt:t.shownAt,onDismiss:e},t.id))})]})};export const useToast=()=>{const t=useContext(ToastContext);if(!t)throw new Error("useToast must be used within a <ToastProvider>.");return t};let warned=!1;const warnNoProvider=()=>{warned||(warned=!0,"undefined"!=typeof __DEV__&&__DEV__&&console.warn("[toast] No <ToastProvider /> mounted; toast() calls are no-ops. Mount a provider near your app root."))},proxy=t=>{const e=getActiveApi();if(!e)return warnNoProvider(),"";const o=t(e);return"string"==typeof o?o:""};export const toast={show:t=>proxy(e=>e.show(t)),success:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"success"})),error:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"error"})),warning:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"warning"})),info:(t,e)=>proxy(o=>o.show({...e,message:t,variant:"info"})),hideAll:()=>{const t=getActiveApi();t?t.hideAll():warnNoProvider()}};const buildStyles=()=>StyleSheet.create({layer:{position:"absolute",left:0,right:0},top:{alignItems:"stretch"},bottom:{alignItems:"stretch"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Toast}from"./Toast.js";export{ToastHost,ToastProvider,toast,useToast}from"./ToastProvider.js";
|
|
1
|
+
"use strict";export{default,Toast}from"./Toast.js";export{ToastHost,ToastProvider,toast,useToast}from"./ToastProvider.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Dimensions,Easing,Modal,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{ToastHost}from"../Toast/ToastProvider.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const DEFAULT_TOOLTIP_GAP=8,DEFAULT_SCREEN_PADDING=8,DEFAULT_PRESS_AUTO_HIDE_MS=4e3,DEFAULT_ARROW_HALF_WIDTH=4,DEFAULT_ARROW_HEIGHT=6,DEFAULT_ARROW_CORNER_PADDING=12,DEFAULT_MAX_WIDTH=240,DEFAULT_LINE_HEIGHT=18,Tooltip=e=>{const{content:t,children:o,placement:r="auto",trigger:s="longPress",visible:i,onVisibleChange:n,hideOnContentPress:a=!0,maxWidth:l,showArrow:u=!0,accessibilityLabel:c,style:m,containerStyle:h,arrowStyle:d,messageStyle:p,testID:g}=e,f=useTheme(),b=useMemo(()=>buildStyles(f),[f]),y=f.components.tooltip,w=y?.gap??8,x=y?.screenPadding??8,T=y?.pressAutoHideMs??4e3,_=y?.arrowHalfWidth??4,A=y?.arrowHeight??6,R=y?.arrowCornerPadding??12,S=y?.lineHeight??18,D=l??y?.maxWidth??240,E=y?.enableScaleAnimation??!1,v=y?.exitDurationMs??150,C="manual"===s||"boolean"==typeof i,[M,L]=useState(!1),j=C?Boolean(i):M,[H,P]=useState(null),[F,O]=useState({width:0,height:0}),V=useRef(null),W=useRef(createAnimatedValue(j?1:E?.85:1)).current,I=useRef(createAnimatedValue(j?1:0)).current,k=useRef(null),N=useRef(!1),U=useCallback(e=>{C||L(e),n?.(e)},[C,n]),z=useCallback(()=>{V.current&&V.current.measureInWindow((e,t,o,r)=>{P({x:e,y:t,width:o,height:r})})},[]),G=useCallback(e=>{z(),U(!0)},[z,U]),B=useCallback(()=>{U(!1)},[U]);useEffect(()=>{if(!N.current)return N.current=!0,j&&(z(),"press"===s&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{B()},T))),()=>{k.current&&(clearTimeout(k.current),k.current=null)};let e;if(j){z();const t=[Animated.timing(I,{toValue:1,duration:f.motion.duration.fast,useNativeDriver:!0})];E&&t.push(Animated.spring(W,{toValue:1,damping:f.motion.spring.snappy.damping,stiffness:f.motion.spring.snappy.stiffness,mass:f.motion.spring.snappy.mass,useNativeDriver:!0})),e=Animated.parallel(t),e.start(),"press"===s&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{B()},T))}else{const t=[Animated.timing(I,{toValue:0,duration:v,easing:Easing.bezier(...f.motion.easing.accelerate),useNativeDriver:!0})];E&&t.push(Animated.timing(W,{toValue:.85,duration:v,easing:Easing.bezier(...f.motion.easing.accelerate),useNativeDriver:!0})),e=Animated.parallel(t),e.start(),k.current&&(clearTimeout(k.current),k.current=null)}return()=>{e?.stop(),k.current&&(clearTimeout(k.current),k.current=null)}},[j]);const q=useMemo(()=>{const e=Dimensions.get("window");if(!H)return{top:x,left:x,placement:"bottom",arrowOffset:0};const t=F.width||Math.min(D,e.width-2*x),o=F.height||0;let s;if("auto"===r){const t={top:H.y,bottom:e.height-(H.y+H.height),left:H.x,right:e.width-(H.x+H.width)},o=Math.max(t.top,t.bottom,t.left,t.right);s=o===t.bottom?"bottom":o===t.top?"top":o===t.right?"right":"left"}else s=r;let i=0,n=0;"top"===s?(i=H.y-o-w,n=H.x+H.width/2-t/2):"bottom"===s?(i=H.y+H.height+w,n=H.x+H.width/2-t/2):"left"===s?(i=H.y+H.height/2-o/2,n=H.x-t-w):(i=H.y+H.height/2-o/2,n=H.x+H.width+w),n=Math.max(x,Math.min(n,e.width-t-x)),i=Math.max(x,Math.min(i,e.height-o-x));let a=0;if("top"===s||"bottom"===s){const e=H.x+H.width/2-n,o=R,r=Math.max(o,t-R);a=Math.max(o,Math.min(e,r))}else{const e=H.y+H.height/2-i,t=R,r=Math.max(t,o-R);a=Math.max(t,Math.min(e,r))}return{top:i,left:n,placement:s,arrowOffset:a}},[H,F,r,D,x,w,R]),X={};if("longPress"===s)X.onLongPress=G,X.accessibilityHint="Long press for more info";else if("press"===s){const e=o.props.onPress;X.onPress=t=>{e?.(t),G(t)}}const J=React.cloneElement(o,X),K=c??("string"==typeof t?t:"Tooltip"),Q=useMemo(()=>{if(!u)return null;const e=f.colors.background.inverse,t={position:"absolute",width:0,height:0,backgroundColor:"transparent",borderStyle:"solid",borderLeftWidth:_,borderRightWidth:_,borderBottomWidth:A,borderTopWidth:0,borderLeftColor:"transparent",borderRightColor:"transparent",borderTopColor:"transparent",borderBottomColor:e};return"top"===q.placement?{...t,bottom:-A,left:q.arrowOffset-_,transform:[{rotate:"180deg"}]}:"bottom"===q.placement?{...t,top:-A,left:q.arrowOffset-_}:"left"===q.placement?{...t,right:-A,top:q.arrowOffset-_,transform:[{rotate:"90deg"}]}:{...t,left:-A,top:q.arrowOffset-_,transform:[{rotate:"-90deg"}]}},[u,q,f,_,A]);return _jsxs(_Fragment,{children:[_jsx(View,{ref:V,collapsable:!1,onLayout:z,testID:g,children:J}),_jsxs(Modal,{visible:j,transparent:!0,statusBarTranslucent:!0,presentationStyle:"overFullScreen",animationType:"none",onRequestClose:B,children:[_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:a?B:void 0,accessibilityLabel:"Close tooltip",accessibilityRole:"button",children:j?_jsxs(Animated.View,{accessibilityRole:"tooltip",accessibilityLiveRegion:"polite",accessibilityLabel:K,onLayout:e=>{const{width:t,height:o}=e.nativeEvent.layout;t===F.width&&o===F.height||O({width:t,height:o})},style:[{position:"absolute",top:q.top,left:q.left,maxWidth:D,opacity:I,transform:[{scale:W}]},m,h],children:[_jsx(View,{style:[b.tooltip,{backgroundColor:f.colors.background.inverse,borderRadius:f.radius.md,...smoothCorners,paddingHorizontal:f.spacing.md,paddingVertical:f.spacing.sm,...f.shadows.lg,shadowColor:f.shadows.lg.shadowColor}],children:"string"==typeof t?_jsx(Text,{style:[{color:f.colors.text.inverse,fontSize:f.typography.fontSize.sm,lineHeight:S},p],children:t}):t}),Q?_jsx(View,{style:[Q,d],pointerEvents:"none"}):null]}):null}),_jsx(ToastHost,{})]})]})},buildStyles=e=>StyleSheet.create({tooltip:{overflow:"hidden"}});export{Tooltip};export default Tooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Tooltip}from"./Tooltip.js";
|
|
1
|
+
"use strict";export{default,Tooltip}from"./Tooltip.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback
|
|
1
|
+
"use strict";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{AccessibilityInfo,Animated,StyleSheet,Text,useWindowDimensions,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{Button}from"../Button/index.js";import{Modal}from"../Modal/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const DEFAULT_GAP=8,DEFAULT_SCREEN_PADDING=8,MAX_CARD_WIDTH=360,HIGHLIGHT_BORDER_WIDTH=2,measureInWindow=e=>new Promise(t=>{const i=e.current;i?i.measureInWindow((e,i,o,n)=>t({x:e,y:i,width:o,height:n})):t(null)}),isOnScreen=(e,t)=>e.width>0&&e.height>0&&e.x<t.width&&e.y<t.height&&e.x+e.width>0&&e.y+e.height>0,Tour=({tourId:e,steps:t,visible:i,onClose:o,seenStore:n,labels:s,haptic:r,testID:a})=>{const l=useTheme(),c=useMemo(()=>buildStyles(l),[l]),u=useWindowDimensions(),d=useRef(u);d.current=u;const h=l.components.tooltip?.gap??8,p=l.components.tooltip?.screenPadding??8,[m,g]=useState(null),[x,y]=useState(0),f=useRef(createAnimatedValue(0)).current,b=useRef(t);b.current=t;const w=useRef(o);w.current=o;const S=useRef(n);S.current=n;const j=useCallback(async(e,t)=>{for(let i=e;i>=0&&i<b.current.length;i+=t){const e=await measureInWindow(b.current[i].target);if(e&&isOnScreen(e,d.current))return{index:i,rect:e}}return null},[]);useEffect(()=>{if(!i)return void g(null);let t=!1;return(async()=>{const i=S.current;if(i&&await i.isSeen(e))return void(t||w.current("alreadySeen"));const o=await j(0,1);t||(o?(y(o.index),g(o)):w.current("noTargets"))})(),()=>{t=!0}},[i,e,j]),useEffect(()=>{if(!m)return;const e=b.current[m.index],t=`Step ${m.index+1} of ${b.current.length}`;AccessibilityInfo.announceForAccessibility([t,e.title,e.description].filter(Boolean).join(". ")),f.setValue(0);const i=Animated.timing(f,{toValue:1,duration:l.motion.duration.fast,useNativeDriver:!0});return i.start(),()=>i.stop()},[m,f,l.motion.duration.fast]);const _=useCallback(async t=>{g(null),await(S.current?.markSeen(e)),w.current(t)},[e]),k=useCallback(async()=>{if(!m)return;const e=await j(m.index+1,1);e?g(e):await _("finished")},[m,j,_]),C=useCallback(async()=>{if(!m)return;const e=await j(m.index-1,-1);e&&g(e)},[m,j]),v=useCallback(()=>{_("skipped")},[_]),D=m?t[m.index]:void 0,I=!!m&&m.index===t.length-1,T=l.spacing.xs,R=m?{x:m.rect.x-T,y:m.rect.y-T,width:m.rect.width+2*T,height:m.rect.height+2*T}:null,A=Math.min(u.width-2*p,360),V=R?(()=>{const e=R.x+R.width/2,t=Math.max(p,Math.min(e-A/2,u.width-A-p)),i=R.y,o=u.height-(R.y+R.height);return o>=i?{left:t,top:R.y+R.height+h,maxHeight:Math.max(o-h-p,0)}:{left:t,bottom:u.height-R.y+h,maxHeight:Math.max(i-h-p,0)}})():null,M=l.colors.background.overlay;return _jsx(Modal,{visible:null!==m,onRequestClose:v,presentation:"fullScreen",backdropPressClose:!1,backdropStyle:c.transparent,contentStyle:c.transparent,accessibilityLabel:D?.title??D?.description,haptic:r,testID:a,children:R&&V&&D?_jsxs(View,{style:StyleSheet.absoluteFill,children:[_jsx(View,{style:[c.dim,{backgroundColor:M,top:0,left:0,right:0,height:Math.max(R.y,0)}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y+R.height,left:0,right:0,bottom:0}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y,left:0,width:Math.max(R.x,0),height:R.height}]}),_jsx(View,{style:[c.dim,{backgroundColor:M,top:R.y,left:R.x+R.width,right:0,height:R.height}]}),_jsx(View,{pointerEvents:"none",style:[c.highlight,{top:R.y,left:R.x,width:R.width,height:R.height}]}),_jsxs(Animated.View,{accessibilityLiveRegion:"polite",style:[c.card,V,{width:A,opacity:f}],testID:a?`${a}-card`:void 0,children:[_jsx(Text,{style:c.position,children:`Step ${(m?.index??0)+1} of ${t.length}`}),D.title?_jsx(Text,{style:c.title,accessibilityRole:"header",children:D.title}):null,_jsx(Text,{style:c.description,children:D.description}),_jsxs(View,{style:c.actions,children:[_jsx(Button,{title:s?.skip??"Skip",variant:"ghost",size:"sm",haptic:r,onPress:v,testID:a?`${a}-skip`:void 0}),_jsxs(View,{style:c.navigation,children:[m&&m.index>x?_jsx(Button,{title:s?.back??"Back",variant:"outline",size:"sm",haptic:r,onPress:()=>{C()},testID:a?`${a}-back`:void 0}):null,_jsx(Button,{title:I?s?.done??"Done":s?.next??"Next",size:"sm",haptic:r,onPress:()=>{k()},testID:a?`${a}-next`:void 0})]})]})]})]}):null})};Tour.displayName="Tour";const buildStyles=e=>StyleSheet.create({transparent:{backgroundColor:"transparent"},dim:{position:"absolute"},highlight:{position:"absolute",borderWidth:2,borderColor:e.colors.primary,borderRadius:e.radius.md,...smoothCorners},card:{position:"absolute",backgroundColor:e.colors.background.elevated,borderRadius:e.radius.lg,...smoothCorners,padding:e.spacing.lg,gap:e.spacing.sm,...e.shadows.lg},position:{color:e.colors.text.tertiary,fontSize:e.typography.fontSize.xs},title:{color:e.colors.text.primary,fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold},description:{color:e.colors.text.secondary,fontSize:e.typography.fontSize.sm},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:e.spacing.xs},navigation:{flexDirection:"row",gap:e.spacing.sm}});export{Tour};export default Tour;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,Tour}from"./Tour.js";
|
|
1
|
+
"use strict";export{default,Tour}from"./Tour.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useCallback,useEffect,useMemo}from"react";import{StyleSheet}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import Animated,{runOnJS,useAnimatedStyle,useSharedValue,withSpring}from"react-native-reanimated";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{jsx as _jsx}from"react/jsx-runtime";const DEFAULT_MAX_SCALE=4,DEFAULT_MIN_SCALE=1,DEFAULT_DOUBLE_TAP_SCALE=2,SPRING_CONFIG={damping:18,stiffness:220,mass:1};export const ZoomableImage=({children:e,maxScale:a=4,minScale:t=1,doubleTapScale:l=2,disabled:r=!1,haptic:u,style:i,accessibilityLabel:n,testID:s})=>{const o=useSharedValue(1),v=useSharedValue(1),c=useSharedValue(0),S=useSharedValue(0),m=useSharedValue(0),d=useSharedValue(0),h=useCallback(()=>{o.value=withSpring(1,SPRING_CONFIG),v.value=1,c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),m.value=0,d.value=0},[o,v,c,S,m,d]);useEffect(()=>{r&&h()},[r,h]);const p=useCallback(()=>{const e=resolveHaptic(u,"impactLight");e&&triggerHaptic(e)},[u]),I=useMemo(()=>Gesture.Pinch().enabled(!r).onStart(()=>{"worklet";v.value=o.value}).onUpdate(e=>{"worklet";const l=v.value*e.scale;o.value=l<t?t+.3*(l-t):l>a?a+.2*(l-a):l}).onEnd(()=>{"worklet";return o.value<t?(o.value=withSpring(t,SPRING_CONFIG),c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),v.value=t,m.value=0,void(d.value=0)):o.value>a?(o.value=withSpring(a,SPRING_CONFIG),void(v.value=a)):void(v.value=o.value)}),[r,o,v,c,S,m,d,t,a]),G=useMemo(()=>Gesture.Pan().enabled(!r).minPointers(1).maxPointers(1).onStart(()=>{"worklet";m.value=c.value,d.value=S.value}).onUpdate(e=>{"worklet";o.value<=1||(c.value=m.value+e.translationX,S.value=d.value+e.translationY)}).onEnd(()=>{"worklet";m.value=c.value,d.value=S.value}),[r,o,c,S,m,d]),g=useMemo(()=>Gesture.Tap().enabled(!r).numberOfTaps(2).onEnd(()=>{"worklet";runOnJS(p)(),o.value>1?(o.value=withSpring(1,SPRING_CONFIG),c.value=withSpring(0,SPRING_CONFIG),S.value=withSpring(0,SPRING_CONFIG),v.value=1,m.value=0,d.value=0):(o.value=withSpring(l,SPRING_CONFIG),v.value=l)}),[r,o,v,c,S,m,d,p,l]),N=useMemo(()=>Gesture.Race(I,G,g),[I,G,g]),w=useAnimatedStyle(()=>({transform:[{translateX:c.value},{translateY:S.value},{scale:o.value}]}));return _jsx(GestureDetector,{gesture:N,children:_jsx(Animated.View,{style:[styles.container,i],testID:s,accessibilityLabel:n,accessibilityState:{disabled:r},children:_jsx(Animated.View,{style:[styles.content,w],children:e})})})};ZoomableImage.displayName="ZoomableImage";const styles=StyleSheet.create({container:{flex:1,alignItems:"center",justifyContent:"center",overflow:"hidden"},content:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"}});export default ZoomableImage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ZoomableImage}from"./ZoomableImage.js";
|
|
1
|
+
"use strict";export{ZoomableImage}from"./ZoomableImage.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Accordion,AccordionGroup}from"./Accordion/index.js";export{AmountSlider}from"./AmountSlider/index.js";export{AnimatePresence}from"./AnimatePresence/index.js";export{AppBar}from"./AppBar/index.js";export{AsyncBlock}from"./AsyncBlock/index.js";export{AuthedImage,authedImageCacheStats,clearAuthedImageCache,getAuthedImageCacheLimit,setAuthedImageCacheLimit}from"./AuthedImage/index.js";export{Autocomplete}from"./Autocomplete/index.js";export{Avatar,AvatarGroup}from"./Avatar/index.js";export{Badge}from"./Badge/index.js";export{Banner}from"./Banner/index.js";export{BottomNavigation}from"./BottomNavigation/index.js";export{BottomSheet,useBottomSheet}from"./BottomSheet/index.js";export{Box,Row,Spacer,Stack}from"./Box/index.js";export{Button}from"./Button/index.js";export{Card}from"./Card/index.js";export{Carousel}from"./Carousel/index.js";export{Checkbox}from"./Checkbox/index.js";export{Chip}from"./Chip/index.js";export{ChoiceGroup}from"./ChoiceGroup/index.js";export{Confetti}from"./Confetti/index.js";export{DatePicker}from"./DatePicker/index.js";export{DateRangePicker}from"./DateRangePicker/index.js";export{cleanDecimalText,DecimalInput,parseDecimalText}from"./DecimalInput/index.js";export{Descriptions}from"./Descriptions/index.js";export{Dialog}from"./Dialog/index.js";export{Divider}from"./Divider/index.js";export{Drawer}from"./Drawer/index.js";export{EmptyState}from"./EmptyState/index.js";export{ErrorBoundary,useErrorHandler,withErrorBoundary}from"./ErrorBoundary/index.js";export{FilePicker,formatFileSize}from"./FilePicker/index.js";export{FileViewer}from"./FileViewer/index.js";export{FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton/index.js";export{ForceUpdateDialog}from"./ForceUpdateDialog/index.js";export{FormField}from"./FormField/index.js";export{IconBadge}from"./IconBadge/index.js";export{IconButton}from"./IconButton/index.js";export{ImageGallery}from"./ImageGallery/index.js";export{InlineSelect}from"./InlineSelect/index.js";export{Input}from"./Input/index.js";export{KeyboardAwareScrollView}from"./KeyboardAwareScrollView/index.js";export{KeyboardToolbar}from"./KeyboardToolbar/index.js";export{ListItem}from"./ListItem/index.js";export{LoaderOverlay,loader,useLoader}from"./LoaderOverlay/index.js";export{Markdown}from"./Markdown/index.js";export{MODAL_DISMISS_GRACE_MS,Modal}from"./Modal/index.js";export{Notation,parseNotation,sym}from"./Notation/index.js";export{NumberInput}from"./NumberInput/index.js";export{OptionSheet}from"./OptionSheet/index.js";export{OTPInput}from"./OTPInput/index.js";export{ALL_CALLING_CODES,DEFAULT_CALLING_CODES,formatE164,PhoneNumberInput,parseE164}from"./PhoneNumberInput/index.js";export{PickerTrigger}from"./PickerTrigger/index.js";export{ProfileCompletion}from"./ProfileCompletion/index.js";export{ProfilePicker}from"./ProfilePicker/index.js";export{ProgressBar}from"./ProgressBar/index.js";export{ProgressRing}from"./ProgressRing/index.js";export{Radio,RadioDot,RadioGroup}from"./Radio/index.js";export{Rating}from"./Rating/index.js";export{Repeater}from"./Repeater/index.js";export{applyMarkdownAction,RichTextEditor}from"./RichTextEditor/index.js";export{SearchBar}from"./SearchBar/index.js";export{SectionHeader}from"./SectionHeader/index.js";export{SegmentedControl}from"./SegmentedControl/index.js";export{Select}from"./Select/index.js";export{Skeleton,SkeletonCircle,SkeletonClockProvider,SkeletonContent,SkeletonList,SkeletonProvider,SkeletonSkip,SkeletonText,useReduceMotion,useSkeletonClock,useSkeletonDefaults}from"./Skeleton/index.js";export{Slider}from"./Slider/index.js";export{SliderField}from"./SliderField/index.js";export{SlideToConfirm}from"./SlideToConfirm/index.js";export{Spinner}from"./Spinner/index.js";export{StatTile}from"./StatTile/index.js";export{StatusBadge}from"./StatusBadge/index.js";export{Stepper}from"./Stepper/index.js";export{Swipeable}from"./Swipeable/index.js";export{Switch}from"./Switch/index.js";export{Tabs}from"./Tabs/index.js";export{TagInput}from"./TagInput/index.js";export{Text}from"./Text/index.js";export{Timeline}from"./Timeline/index.js";export{TimePicker}from"./TimePicker/index.js";export{Toast,ToastHost,ToastProvider,toast,useToast}from"./Toast/index.js";export{Tooltip}from"./Tooltip/index.js";export{Tour}from"./Tour/index.js";export{ZoomableImage}from"./ZoomableImage/index.js";
|
|
1
|
+
"use strict";export{Accordion,AccordionGroup}from"./Accordion/index.js";export{AmountSlider}from"./AmountSlider/index.js";export{AnimatePresence}from"./AnimatePresence/index.js";export{AppBar}from"./AppBar/index.js";export{AsyncBlock}from"./AsyncBlock/index.js";export{AuthedImage,authedImageCacheStats,clearAuthedImageCache,getAuthedImageCacheLimit,setAuthedImageCacheLimit}from"./AuthedImage/index.js";export{Autocomplete}from"./Autocomplete/index.js";export{Avatar,AvatarGroup}from"./Avatar/index.js";export{Badge}from"./Badge/index.js";export{Banner}from"./Banner/index.js";export{BottomNavigation}from"./BottomNavigation/index.js";export{BottomSheet,useBottomSheet}from"./BottomSheet/index.js";export{Box,Row,Spacer,Stack}from"./Box/index.js";export{Button}from"./Button/index.js";export{Card}from"./Card/index.js";export{Carousel}from"./Carousel/index.js";export{Checkbox}from"./Checkbox/index.js";export{Chip}from"./Chip/index.js";export{ChoiceGroup}from"./ChoiceGroup/index.js";export{Confetti}from"./Confetti/index.js";export{DatePicker}from"./DatePicker/index.js";export{DateRangePicker}from"./DateRangePicker/index.js";export{cleanDecimalText,DecimalInput,parseDecimalText}from"./DecimalInput/index.js";export{Descriptions}from"./Descriptions/index.js";export{Dialog}from"./Dialog/index.js";export{Divider}from"./Divider/index.js";export{Drawer}from"./Drawer/index.js";export{EmptyState}from"./EmptyState/index.js";export{ErrorBoundary,useErrorHandler,withErrorBoundary}from"./ErrorBoundary/index.js";export{FilePicker,formatFileSize}from"./FilePicker/index.js";export{FileViewer}from"./FileViewer/index.js";export{FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton/index.js";export{ForceUpdateDialog}from"./ForceUpdateDialog/index.js";export{FormField}from"./FormField/index.js";export{IconBadge}from"./IconBadge/index.js";export{IconButton}from"./IconButton/index.js";export{ImageGallery}from"./ImageGallery/index.js";export{InlineSelect}from"./InlineSelect/index.js";export{Input}from"./Input/index.js";export{KeyboardAwareScrollView}from"./KeyboardAwareScrollView/index.js";export{KeyboardToolbar}from"./KeyboardToolbar/index.js";export{ListItem}from"./ListItem/index.js";export{LoaderOverlay,loader,useLoader}from"./LoaderOverlay/index.js";export{Markdown}from"./Markdown/index.js";export{MODAL_DISMISS_GRACE_MS,Modal}from"./Modal/index.js";export{Notation,parseNotation,sym}from"./Notation/index.js";export{NumberInput}from"./NumberInput/index.js";export{OptionSheet}from"./OptionSheet/index.js";export{OTPInput}from"./OTPInput/index.js";export{ALL_CALLING_CODES,DEFAULT_CALLING_CODES,formatE164,PhoneNumberInput,parseE164}from"./PhoneNumberInput/index.js";export{PickerTrigger}from"./PickerTrigger/index.js";export{ProfileCompletion}from"./ProfileCompletion/index.js";export{ProfilePicker}from"./ProfilePicker/index.js";export{ProgressBar}from"./ProgressBar/index.js";export{ProgressRing}from"./ProgressRing/index.js";export{Radio,RadioDot,RadioGroup}from"./Radio/index.js";export{Rating}from"./Rating/index.js";export{Repeater}from"./Repeater/index.js";export{applyMarkdownAction,RichTextEditor}from"./RichTextEditor/index.js";export{SearchBar}from"./SearchBar/index.js";export{SectionHeader}from"./SectionHeader/index.js";export{SegmentedControl}from"./SegmentedControl/index.js";export{Select}from"./Select/index.js";export{Skeleton,SkeletonCircle,SkeletonClockProvider,SkeletonContent,SkeletonList,SkeletonProvider,SkeletonSkip,SkeletonText,useReduceMotion,useSkeletonClock,useSkeletonDefaults}from"./Skeleton/index.js";export{Slider}from"./Slider/index.js";export{SliderField}from"./SliderField/index.js";export{SlideToConfirm}from"./SlideToConfirm/index.js";export{Spinner}from"./Spinner/index.js";export{StatTile}from"./StatTile/index.js";export{StatusBadge}from"./StatusBadge/index.js";export{Stepper}from"./Stepper/index.js";export{Swipeable}from"./Swipeable/index.js";export{Switch}from"./Switch/index.js";export{Tabs}from"./Tabs/index.js";export{TagInput}from"./TagInput/index.js";export{Text}from"./Text/index.js";export{Timeline}from"./Timeline/index.js";export{TimePicker}from"./TimePicker/index.js";export{Toast,ToastHost,ToastProvider,toast,useToast}from"./Toast/index.js";export{Tooltip}from"./Tooltip/index.js";export{Tour}from"./Tour/index.js";export{ZoomableImage}from"./ZoomableImage/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{createContext,useContext}from"react";import{jsx as _jsx}from"react/jsx-runtime";const FormContext=createContext(null);export const Form=({form:e,children:t})=>_jsx(FormContext.Provider,{value:e,children:t});Form.displayName="Form";export function useFormContext(){const e=useContext(FormContext);if(!e)throw new Error("useFormContext / useField / <FormField name> must be rendered inside a <Form> from @webority/mobile-ui.");return e}export function useOptionalFormContext(){return useContext(FormContext)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React from"react";import{FormField}from"../components/FormField/FormField.js";import{useHookFormField}from"./useHookFormField.js";import{jsx as _jsx}from"react/jsx-runtime";const assignRef=(e,r)=>{"function"==typeof e?e(r):e&&(e.current=r)};export const HookFormField=e=>{const{label:r,helperText:o,required:t,layout:l,labelStyle:i,helperStyle:n,errorStyle:s,containerStyle:a,inputContainerStyle:c,accessibilityLabel:m,testID:u,children:F,hideError:d,...p}=e,y=useHookFormField(p),f="function"==typeof F;let h=null;if(f)h=F(y);else if(React.isValidElement(F)){const e=F.props;h=React.cloneElement(F,{value:y.value,error:y.error,onChangeText:r=>{y.onChangeText(r),e.onChangeText?.(r)},onBlur:r=>{y.onBlur(),e.onBlur?.(r)},ref:r=>{y.ref(r),assignRef(e.ref,r)}})}const x=!f||React.isValidElement(h)&&"error"in h.props;return _jsx(FormField,{label:r,helperText:o,required:t,layout:l,labelStyle:i,helperStyle:n,errorStyle:s,containerStyle:a,inputContainerStyle:c,accessibilityLabel:m,testID:u,error:d??x?void 0:y.error,children:h})};HookFormField.displayName="HookFormField";
|