@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{forwardRef
|
|
1
|
+
"use strict";import{forwardRef,useMemo}from"react";import{StyleSheet,Text,View}from"react-native";import{useTheme}from"../../theme/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const spacingFor=(e,t)=>{switch(t){case"sm":return e.spacing.sm;case"md":return e.spacing.md;case"lg":return e.spacing.lg;default:return 0}},Divider=forwardRef((e,t)=>{const{orientation:i="horizontal",thickness:r=1,color:o,spacing:n="none",inset:s=0,label:l,labelPosition:a="center",style:c,testID:m}=e,h=useTheme(),g=o??h.colors.border.primary,d=spacingFor(h,n),f=useMemo(()=>buildStyles(h),[h]);if("vertical"===i)return _jsx(View,{ref:t,accessibilityRole:"none",testID:m,style:[f.vertical,{width:r,backgroundColor:g,marginHorizontal:d,marginTop:s},c]});if(l){const e="start"===a?0:1,i="end"===a?0:1;return _jsxs(View,{ref:t,accessibilityRole:"none",testID:m,style:[f.horizontalRow,{marginVertical:d,marginLeft:s},c],children:[e>0?_jsx(View,{style:[f.horizontalLine,{height:r,backgroundColor:g,flex:e}]}):null,_jsx(Text,{style:f.label,numberOfLines:1,children:l}),i>0?_jsx(View,{style:[f.horizontalLine,{height:r,backgroundColor:g,flex:i}]}):null]})}return _jsx(View,{ref:t,accessibilityRole:"none",testID:m,style:[f.horizontalLine,{height:r,backgroundColor:g,marginVertical:d,marginLeft:s},c]})});Divider.displayName="Divider";const buildStyles=e=>StyleSheet.create({horizontalRow:{flexDirection:"row",alignItems:"center",width:"100%"},horizontalLine:{width:"100%",alignSelf:"stretch"},vertical:{alignSelf:"stretch"},label:{marginHorizontal:e.spacing.sm,color:e.colors.text.tertiary,fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.medium}});export{Divider};export default Divider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Divider,default}from"./Divider.js";
|
|
1
|
+
"use strict";export{Divider,default}from"./Divider.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{forwardRef,useCallback,useEffect,useImperativeHandle,useMemo,useRef,useState}from"react";import{Dimensions,Pressable,StyleSheet,View}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import Animated,{Extrapolation,interpolate,runOnJS,useAnimatedStyle,useSharedValue,withSpring}from"react-native-reanimated";import{useSafeAreaInsets}from"react-native-safe-area-context";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 DEFAULT_CLOSE_VELOCITY_THRESHOLD=1e3,DEFAULT_DRAG_ACTIVATION_OFFSET=10,Drawer=forwardRef((e,t)=>{const{visible:a,defaultVisible:r=!1,onChange:s,side:o="left",width:i,enableSwipe:l=!0,enableBackdropPress:n=!0,backdropOpacity:u=.5,haptic:c,containerStyle:d,children:p,accessibilityLabel:f,testID:h}=e,m=useTheme(),b=useSafeAreaInsets(),g="boolean"==typeof a,S=m.components.drawer,v=S?.closeVelocityThreshold??1e3,w=S?.dragActivationOffset??10,[y,x]=useState(()=>Dimensions.get("window"));useEffect(()=>{const e=Dimensions.addEventListener("change",({window:e})=>x(e));return()=>e.remove()},[]);const k="left"===o||"right"===o,D=useMemo(()=>resolveSize(i,k,y),[i,k,y]),C=useMemo(()=>{switch(o){case"left":case"top":return-D;case"right":case"bottom":return D}},[o,D]),E=useSharedValue(r?0:C),A=useSharedValue(r?0:C),[M,O]=useState(r),V=useSharedValue(r);useEffect(()=>{M||(E.value=C,A.value=C)},[C,M,E,A]);const _=m.motion.spring.snappy,j=useCallback(()=>{E.value=withSpring(0,_)},[E,_]),L=useCallback(()=>{E.value=withSpring(C,_)},[E,C,_]),T=useCallback(e=>{O(t=>t===e?t:(s?.(e),e)),V.value=e},[s,V]),R=useCallback(()=>{T(!0),j()},[T,j]),I=useCallback(()=>{T(!1),L()},[T,L]),F=useCallback(()=>{M?I():R()},[M,R,I]);useImperativeHandle(t,()=>({open:R,close:I,toggle:F}),[R,I,F]),useEffect(()=>{g&&a!==M&&(a?R():I())},[a]);const H=useMemo(()=>{const e=C,t=o,a=l;let r=Gesture.Pan();return r=k?r.activeOffsetX([-w,w]).failOffsetY([-15,15]):r.activeOffsetY([-w,w]).failOffsetX([-15,15]),r.onStart(()=>{"worklet";a&&(A.value=E.value)}).onUpdate(t=>{"worklet";if(!a)return;const r=k?t.translationX:t.translationY,s=A.value+r,o=Math.min(0,e),i=Math.max(0,e);E.value=s<o?o+.25*(s-o):s>i?i+.25*(s-i):s}).onEnd(r=>{"worklet";if(!a)return;const s=k?r.velocityX:r.velocityY,o=E.value;let i=!1;i="left"===t||"top"===t?s<-v:s>v;const l=Math.abs(e),n=Math.abs(o)/l;i||n>.5?(runOnJS(T)(!1),E.value=withSpring(e,_)):(runOnJS(T)(!0),E.value=withSpring(0,_))})},[C,A,l,k,E,T,o,_,v,w]),P=useAnimatedStyle(()=>k?{transform:[{translateX:E.value}]}:{transform:[{translateY:E.value}]}),Y=useAnimatedStyle(()=>({opacity:interpolate(E.value,[C,0],[0,u],Extrapolation.CLAMP),pointerEvents:Math.abs(E.value-C)<.5?"none":"auto"}),[C,u]),G=useMemo(()=>buildStyles(m),[m]),N=useCallback(()=>{if(!n)return;const e=resolveHaptic(c,"selection");e&&triggerHaptic(e),I()},[n,I,c]),X=useMemo(()=>{switch(o){case"left":return{position:"absolute",top:0,bottom:0,left:0,width:D,paddingTop:b.top,paddingBottom:b.bottom,paddingLeft:b.left};case"right":return{position:"absolute",top:0,bottom:0,right:0,width:D,paddingTop:b.top,paddingBottom:b.bottom,paddingRight:b.right};case"top":return{position:"absolute",top:0,left:0,right:0,height:D,paddingTop:b.top,paddingLeft:b.left,paddingRight:b.right};case"bottom":return{position:"absolute",bottom:0,left:0,right:0,height:D,paddingBottom:b.bottom,paddingLeft:b.left,paddingRight:b.right}}},[o,D,b]),B=useRef(r);return M&&(B.current=!0),B.current?_jsxs(View,{style:StyleSheet.absoluteFill,pointerEvents:"box-none",testID:h,accessibilityViewIsModal:M,children:[_jsx(Animated.View,{style:[G.backdrop,{backgroundColor:m.colors.background.overlay},Y],children:_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:N,accessibilityRole:"button",accessibilityLabel:"Close drawer",disabled:!n||!M})}),_jsx(GestureDetector,{gesture:H,children:_jsx(Animated.View,{accessibilityRole:"alert",accessibilityLabel:f??"Drawer",style:[X,{backgroundColor:m.colors.background.elevated,...m.shadows.xl},d,P],children:_jsx(View,{style:G.content,children:p})})})]}):null});Drawer.displayName="Drawer";const resolveSize=(e,t,a)=>{if("number"==typeof e)return e;if("string"==typeof e){const r=parseFloat(e);if(Number.isNaN(r))return t?280:Math.round(.4*a.height);return r/100*(t?a.width:a.height)}return t?280:Math.round(.4*a.height)},buildStyles=e=>StyleSheet.create({backdrop:{...StyleSheet.absoluteFill},content:{flex:1}});export{Drawer};export default Drawer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Drawer,default}from"./Drawer.js";
|
|
1
|
+
"use strict";export{Drawer,default}from"./Drawer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{forwardRef,useMemo}from"react";import{Animated,Pressable,StyleSheet,Text,View}from"react-native";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{triggerHaptic}from"../../utils/hapticUtils.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const SIZE_FALLBACK={sm:{iconSize:48,titleFontSize:"lg",descriptionFontSize:"sm",paddingVertical:"lg"},md:{iconSize:64,titleFontSize:"xl",descriptionFontSize:"base",paddingVertical:"xl"},lg:{iconSize:80,titleFontSize:"2xl",descriptionFontSize:"base",paddingVertical:"2xl"}},sizeFor=(e,t)=>{const i={...SIZE_FALLBACK[t],...e.components.emptyState?.[t]??{}};return{iconSize:i.iconSize,titleSize:e.typography.fontSize[i.titleFontSize],descriptionSize:e.typography.fontSize[i.descriptionFontSize],paddingVertical:e.spacing[i.paddingVertical]}},ActionButton=({action:e,variant:t})=>{const i=useTheme(),{scale:r,pressIn:o,pressOut:s}=usePressAnimation({enabled:!0}),n=useMemo(()=>buildActionStyles(i),[i]),l="primary"===t,a=useSquircle(!0,i.radius.md),fillFor=e=>l?i.colors.primary:e?i.colors.surface.pressed:"transparent";return _jsx(Animated.View,{style:{transform:[{scale:r}]},children:_jsx(Pressable,{onPress:()=>{triggerHaptic("selection"),e.onPress()},onPressIn:o,onPressOut:s,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:a.onLayout,android_ripple:{color:l?i.colors.primaryHover:i.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[n.button,l?n.buttonPrimary:n.buttonSecondary,!e||l||a.active?null:n.buttonSecondaryPressed,a.active?n.buttonSquircleHost:null],children:({pressed:t})=>_jsxs(_Fragment,{children:[a.active&&a.size?_jsx(SquircleFill,{width:a.size.width,height:a.size.height,radius:i.radius.md,fill:fillFor(t),stroke:l?void 0:i.colors.border.primary,strokeWidth:l?0:1,outset:l?0:1}):null,_jsx(Text,{style:[n.buttonText,l?n.buttonTextPrimary:n.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=forwardRef((e,t)=>{const{icon:i,title:r,description:o,action:s,secondaryAction:n,size:l="md",fill:a=!1,style:c,testID:d}=e,u=useTheme(),m=useMemo(()=>sizeFor(u,l),[u,l]),p=useMemo(()=>buildStyles(u),[u]);return _jsxs(View,{ref:t,accessibilityRole:"summary",testID:d,style:[p.root,{paddingVertical:m.paddingVertical},a?p.fill:null,c],children:[i?_jsx(View,{style:[p.iconCircle,{width:m.iconSize,height:m.iconSize,borderRadius:m.iconSize/2,...smoothCorners}],children:i}):null,_jsx(Text,{style:[p.title,{fontSize:m.titleSize,...fontFor(u,"semibold")}],children:r}),o?_jsx(Text,{style:[p.description,{fontSize:m.descriptionSize}],children:o}):null,s||n?_jsxs(View,{style:p.actions,children:[s?_jsx(ActionButton,{action:s,variant:"primary"}):null,n?_jsx(ActionButton,{action:n,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.spacing.lg,gap:e.spacing.md},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors.surface.disabled,alignItems:"center",justifyContent:"center"},title:{color:e.colors.text.primary,textAlign:"center"},description:{color:e.colors.text.secondary,textAlign:"center",maxWidth:320,lineHeight:e.typography.fontSize.base*e.typography.lineHeight.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,marginTop:e.spacing.xs}}),buildActionStyles=e=>StyleSheet.create({button:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,minHeight:42,borderRadius:e.radius.md,...smoothCorners,alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border.primary},buttonSecondaryPressed:{backgroundColor:e.colors.surface.pressed},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.typography.fontSize.base,...fontFor(e,"semibold")},buttonTextPrimary:{color:e.colors.onPrimary},buttonTextSecondary:{color:e.colors.text.primary}});export{EmptyState};export default EmptyState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,EmptyState}from"./EmptyState.js";
|
|
1
|
+
"use strict";export{default,EmptyState}from"./EmptyState.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Logger
|
|
1
|
+
"use strict";import{Logger}from"@webority/mobile-core";import React,{useMemo}from"react";import{StyleSheet,Text,View}from"react-native";import{useTheme}from"../../theme/index.js";import{EmptyState}from"../EmptyState/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const COMPONENT_STACK_LIMIT=500,DEFAULT_TITLE="Something went wrong",DEFAULT_MESSAGE="An unexpected error occurred. Please try again.",hasResetKeysChanged=(e,t)=>e!==t&&(!e||!t||e.length!==t.length||e.some((e,r)=>e!==t[r])),DefaultFallback=({error:e,reset:t,title:r,message:o,testID:s})=>{const n=useTheme(),i=useMemo(()=>buildStyles(n),[n]),a="undefined"!=typeof __DEV__&&__DEV__;return _jsxs(View,{style:i.root,testID:s,children:[_jsx(EmptyState,{title:r??DEFAULT_TITLE,description:o??DEFAULT_MESSAGE,action:{label:"Try again",onPress:t,testID:s?`${s}-retry`:void 0}}),a?_jsx(Text,{style:i.devError,testID:s?`${s}-dev-error`:void 0,children:e.message}):null]})},buildStyles=e=>StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.primary,padding:e.spacing.lg},devError:{marginTop:e.spacing.md,color:e.colors.error,fontSize:e.typography.fontSize.sm,textAlign:"center"}});export class ErrorBoundary extends React.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidUpdate(e){this.state.error&&hasResetKeysChanged(e.resetKeys,this.props.resetKeys)&&this.reset()}componentDidCatch(e,t){const r=(t.componentStack??"").slice(0,500);Logger.recordError(e,{errorType:"RenderError",componentStack:r});try{this.props.onError?.(e,{componentStack:r})}catch(e){Logger.error("[@webority/mobile-ui] ErrorBoundary onError threw; the boundary itself is unaffected.",e)}}reset=()=>{this.setState({error:null}),this.props.onReset?.()};render(){const{error:e}=this.state;if(!e)return this.props.children;const{fallback:t,title:r,message:o,testID:s}=this.props;return void 0!==t?"function"==typeof t?t(e,this.reset):t:_jsx(DefaultFallback,{error:e,reset:this.reset,title:r,message:o,testID:s})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ErrorBoundary}from"./ErrorBoundary.js";export{useErrorHandler}from"./useErrorHandler.js";export{withErrorBoundary}from"./withErrorBoundary.js";
|
|
1
|
+
"use strict";export{ErrorBoundary}from"./ErrorBoundary.js";export{useErrorHandler}from"./useErrorHandler.js";export{withErrorBoundary}from"./withErrorBoundary.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback
|
|
1
|
+
"use strict";import{useCallback,useState}from"react";export const useErrorHandler=()=>{const[,r]=useState();return useCallback(t=>{r(()=>{throw t instanceof Error?t:new Error(String(t))})},[])};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React from"react";import{ErrorBoundary}from"./ErrorBoundary.js";import{jsx as _jsx}from"react/jsx-runtime";export const withErrorBoundary=(r,o)=>{const t=r.displayName??r.name??"Component",Wrapped=t=>_jsx(ErrorBoundary,{...o,children:_jsx(r,{...t})});return Wrapped.displayName=`withErrorBoundary(${t})`,Wrapped};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{useEffect,useRef}from"react";import{Animated,View}from"react-native";import{createAnimatedValue,useTheme}from"../../theme/index.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{jsx as _jsx}from"react/jsx-runtime";export const Chevron=({color:e,size:t,open:o,style:r})=>{const n=useTheme(),i=useRef(createAnimatedValue(o?1:0)).current;useEffect(()=>{if(void 0===o)return;const e=Animated.timing(i,{toValue:o?1:0,duration:n.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[o,i,n.motion.duration.fast]);const s=(n.icons?.chevronDown??defaultIcons.chevronDown)({size:t,color:e}),a={width:t,height:t,alignItems:"center",justifyContent:"center"};if(void 0===o)return _jsx(View,{style:[a,r],children:s});const c=i.interpolate({inputRange:[0,1],outputRange:["0deg","180deg"]});return _jsx(Animated.View,{style:[a,{transform:[{rotate:c}]},r],children:s})};export default Chevron;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{StyleSheet
|
|
1
|
+
"use strict";import{StyleSheet,Text,View}from"react-native";import{fontFor,useTheme}from"../../theme/index.js";import{FieldErrorGlyph,hasFieldText}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const hasChoiceDetail=(e,s)=>hasFieldText(e)||hasFieldText(s);export const ChoiceText=({label:e,description:s,error:t,disabled:o=!1,labelLines:l,descriptionLines:r,style:i,labelStyle:n})=>{const a=useTheme();if(!hasFieldText(e)&&!hasFieldText(s)&&!hasFieldText(t))return null;const c=a.typography.fontSize.sm;return _jsxs(View,{style:[styles.column,i],children:[hasFieldText(e)?_jsx(Text,{style:[{color:o?a.colors.text.disabled:a.colors.text.primary,fontSize:a.typography.fontSize.base,...fontFor(a,"normal")},n],numberOfLines:l,children:e}):null,hasFieldText(s)?_jsx(Text,{style:{color:o?a.colors.text.disabled:a.colors.text.secondary,fontSize:c,marginTop:a.spacing.xs/2,...fontFor(a,"normal")},numberOfLines:r,children:s}):null,hasFieldText(t)?_jsxs(View,{style:[styles.errorRow,{marginTop:a.spacing.xs,columnGap:a.spacing.xs}],accessibilityLiveRegion:"polite",children:[_jsx(FieldErrorGlyph,{size:c,color:a.colors.field.message}),_jsx(Text,{style:{flexShrink:1,color:a.colors.field.message,fontSize:c,...fontFor(a,"normal")},children:t})]}):null]})};const styles=StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useEffect as t,useMemo as o,useRef as r}from"react";import{Animated as i,Easing as l,Pressable as n,StyleSheet as d,Text as a,View as s}from"react-native";import{createAnimatedValue as c,fontFor as b,useTheme as g}from"../../theme/index.js";import{smoothCorners as p}from"../../utils/corners.js";import{defaultIcons as u}from"../AppIcon/defaultIcons.js";import{SquircleFill as h,useSquircle as m}from"../SquircleFill/SquircleFill.js";import{jsx as f,jsxs as z,Fragment as y}from"react/jsx-runtime";const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"};export const pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const o=e[t];if(o&&"transparent"!==o)return o}return e.bottom};export const resolveFieldTextStyle=(e,t={})=>{const{disabled:o=!1}=t,r=e.components.field,i=e.colors.field;return{color:o?r?.disabledTextColor??i.textDisabled:r?.textColor??i.text,placeholderColor:r?.placeholderColor??(o?i.placeholderDisabled:i.placeholder),weightStyle:r?.fontWeight?{fontWeight:r.fontWeight}:b(e,"normal")}};export const RequiredMark=()=>{const e=g(),t=e.components.field;return f(a,{style:{color:t?.requiredMarkerColor??e.colors.error},children:` ${t?.requiredMarker??"*"}`})};export const RequiredPlaceholder=({text:e,color:t,fontSize:o,weightStyle:r,align:i="center",paddingTop:l,textAlign:n})=>f(s,{pointerEvents:"none",style:[d.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:z(a,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:o,...r,includeFontPadding:!1,textAlign:n},children:[e,f(RequiredMark,{})]})});export const FieldErrorGlyph=({size:e,color:t})=>{const o=g(),r=o.icons?.error??u.error;return f(y,{children:r({size:e,color:t})})};export const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;export const fieldTextAsString=e=>"string"==typeof e?e:void 0;export const FieldLabel=({children:e,size:t="md",required:o=!1,help:r,color:i,style:l})=>{const n=g(),d=resolveFieldSize(n,t),c=hasFieldText(r),p=z(a,{style:[F.label,{color:i??n.colors.field.label,fontSize:d.labelFontSize,...b(n,"semibold"),marginBottom:c?0:d.labelGap},c?F.labelShrink:null,l],children:[e,o?f(RequiredMark,{}):null]});return c?z(s,{style:[F.labelRow,{marginBottom:d.labelGap}],children:[p,f(s,{style:[F.help,{marginLeft:n.spacing.xs}],children:r})]}):p};export const FieldMessage=({text:e,error:t=!1,size:o="md",style:r})=>{const i=g(),l=resolveFieldSize(i,o);if(!hasFieldText(e))return null;const n=t?i.colors.field.message:i.colors.text.secondary;return z(s,{style:[F.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?f(FieldErrorGlyph,{size:l.messageFontSize,color:n}):null,f(a,{style:[F.messageText,{color:n,fontSize:l.messageFontSize,...b(i,"normal")},r],children:e})]})};const F=d.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}});export const resolveFieldSize=(e,t)=>{const o=e.components.field?.[t],r=S[t];return{paddingHorizontal:o?.paddingHorizontal??r.paddingHorizontal,paddingVertical:o?.paddingVertical??r.paddingVertical,minHeight:o?.minHeight??r.minHeight,fontSize:o?.fontSize??r.fontSize,borderRadius:o?.borderRadius??r.borderRadius,iconSize:o?.iconSize??r.iconSize,labelFontSize:o?.labelFontSize??r.labelFontSize,labelGap:o?.labelGap??r.labelGap,messageFontSize:o?.messageFontSize??r.messageFontSize,messageGap:o?.messageGap??r.messageGap}};const S={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}};export const resolveVariantColors=(e,t,o)=>{const r=e.components.field?.[t],i=e.colors.field;let l,n,d,a,s;"outlined"===t?(l=i.background,n=i.backgroundFocused,d=i.backgroundDisabled,a=i.border,s=e.colors.border.width):"underline"===t?(l="transparent",n=void 0,d="transparent",a={bottom:i.border},s={bottom:e.colors.border.width}):(l=i.background,n=void 0,d=i.backgroundDisabled,a="transparent",s=0);const wrapToIdleShape=e=>"string"==typeof a?e:{bottom:e},c=expandColorSides(o?.borderIdle??r?.borderIdle??a),b=expandColorSides(o?.borderFocused??r?.borderFocused??wrapToIdleShape(i.borderFocused)),g=expandColorSides(o?.borderError??r?.borderError??wrapToIdleShape(i.borderError)),p=expandColorSides(o?.borderDisabled??r?.borderDisabled??a),u="number"==typeof(h=o?.borderWidth??r?.borderWidth??s)?{top:h,right:h,bottom:h,left:h}:{top:h.top??0,right:h.right??0,bottom:h.bottom??0,left:h.left??0};var h;return{backgroundIdleEmpty:o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundIdleFilled:o?.backgroundIdleFilled??r?.backgroundIdleFilled??o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundFocused:o?.backgroundFocused??r?.backgroundFocused??n,backgroundError:o?.backgroundError??r?.backgroundError??void 0,backgroundDisabled:o?.backgroundDisabled??r?.backgroundDisabled??d,borderIdle:c,borderFocused:b,borderError:g,borderDisabled:p,borderWidth:u,borderFocusedRepresentative:pickRepresentativeBorderColor(b)}};export const FieldBase=e=>{const{size:d="md",variant:a,focused:b=!1,disabled:u=!1,error:F=!1,filled:S=!1,leading:x,leadingDivider:k=!1,trailing:R,slotAlign:v="center",slotLineHeight:C,topNotch:H,children:I,onPress:w,pressFeedback:D=!0,minHeight:L,maxHeight:T,width:E,height:W,paddingHorizontal:G,paddingLeft:B,paddingRight:V,paddingVertical:j,borderRadius:q,borderTopLeftRadius:M,borderTopRightRadius:P,borderBottomLeftRadius:A,borderBottomRightRadius:N,borderWidth:O,borderTopWidth:$,borderRightWidth:J,borderBottomWidth:K,borderLeftWidth:Q,gap:U,fillOverrides:X,style:Y,testID:Z,accessibilityRole:_,accessibilityLabel:ee,accessibilityState:te,accessibilityHint:oe}=e,re=g(),ie=o(()=>buildStyles(),[]),le=a??re.components.field?.defaultVariant??"outlined",ne=resolveFieldSize(re,d),de=o(()=>resolveVariantColors(re,le,X),[re,le,X]),ae=F?2:b?1:0,se=r(c(ae)).current;t(()=>{const e=i.timing(se,{toValue:ae,duration:re.motion.duration.fast,easing:l.bezier(...re.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[ae,se,re.motion.duration.fast,re.motion.easing.standard]);const ce=[0,1,2],be=S?de.backgroundIdleFilled:de.backgroundIdleEmpty,ge=de.backgroundFocused??be,pe=de.backgroundError??be,ue=u?de.backgroundDisabled:se.interpolate({inputRange:ce,outputRange:[be,ge,pe]}),he=de.borderIdle,me=de.borderFocused,fe=de.borderError,ze={top:$,right:J,bottom:K,left:Q},ye={top:ze.top??O??de.borderWidth.top,right:ze.right??O??de.borderWidth.right,bottom:ze.bottom??O??de.borderWidth.bottom,left:ze.left??O??de.borderWidth.left},Fe={minHeight:W??L??ne.minHeight,maxHeight:T,paddingHorizontal:G??ne.paddingHorizontal,paddingVertical:j??ne.paddingVertical,paddingLeft:B??G??ne.paddingHorizontal,paddingRight:V??G??ne.paddingHorizontal,backgroundColor:ue,columnGap:U??re.spacing.md,alignItems:"top"===v?"flex-start":"center"},Se="underline"===le,xe=Se?0:q??ne.borderRadius,ke=Se?{tl:0,tr:0,bl:0,br:0}:{tl:M??xe,tr:P??xe,bl:A??xe,br:N??xe};Fe.borderTopLeftRadius=ke.tl,Fe.borderTopRightRadius=ke.tr,Fe.borderBottomLeftRadius=ke.bl,Fe.borderBottomRightRadius=ke.br,Fe.borderCurve=p.borderCurve,Fe.borderTopWidth=ye.top,Fe.borderRightWidth=ye.right,Fe.borderBottomWidth=ye.bottom,Fe.borderLeftWidth=ye.left;const sideColor=e=>se.interpolate({inputRange:ce,outputRange:[he[e],me[e],fe[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,Re=!Se&&ke.tl===ke.tr&&ke.tl===ke.bl&&ke.tl===ke.br&&sameOnEverySide(ye)&&sameOnEverySide(he)&&sameOnEverySide(me)&&sameOnEverySide(fe)&&sameOnEverySide(de.borderDisabled),ve=m(Re,ke.tl);if(ve.active)Fe.backgroundColor="transparent",Fe.borderTopColor="transparent",Fe.borderRightColor="transparent",Fe.borderBottomColor="transparent",Fe.borderLeftColor="transparent";else if(u){const e=de.borderDisabled;Fe.borderTopColor=e.top,Fe.borderRightColor=e.right,Fe.borderBottomColor=e.bottom,Fe.borderLeftColor=e.left}else Fe.borderTopColor=sideColor("top"),Fe.borderRightColor=sideColor("right"),Fe.borderBottomColor=sideColor("bottom"),Fe.borderLeftColor=sideColor("left");const Ce=u?de.borderDisabled.top:sideColor("top"),He=r(ae);He.current=ae,t(()=>{se.setValue(He.current)},[de,se]),void 0!==E&&(Fe.width=E),void 0!==W&&(Fe.height=W);const Ie={disabled:u,...te},we="top"===v,De=we?{alignSelf:"flex-start",marginTop:Math.max(0,((C??ne.iconSize)-ne.iconSize)/2)}:null,Le=W??L??ne.minHeight,Te=(()=>{if(!H)return 0;const e=Math.min(ke.tl,Le/2),t=H.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),Ee=H&&ye.top>0?f(i.View,{pointerEvents:"none",style:{position:"absolute",top:-ye.top,left:H.left-ye.left,width:H.width,height:ye.top+Te,backgroundColor:ue}}):null,renderInner=e=>z(y,{children:[ve.active&&ve.size?f(h,{width:ve.size.width,height:ve.size.height,radius:ke.tl,fill:e&&!u?re.colors.surface.pressed:ue,stroke:Ce,strokeWidth:ye.top,outset:ye.top}):null,Ee,null!=x?f(s,{style:[ie.slot,De],children:x}):null,null!=x&&k?f(s,{pointerEvents:"none",style:[ie.divider,De,{height:ne.iconSize,backgroundColor:re.colors.field.border}]}):null,f(s,{style:[ie.content,we?ie.contentTop:null],children:I}),null!=R?f(s,{style:[ie.slot,De],children:R}):null]}),We=f(i.View,{onLayout:ve.onLayout,style:[ie.box,Fe,Y],accessibilityRole:_,accessibilityLabel:ee,accessibilityHint:oe,accessibilityState:Ie,testID:Z,children:renderInner(!1)});return w&&!D?f(n,{onPress:w,disabled:u,accessible:!1,children:We}):w?f(n,{onPress:w,disabled:u,accessibilityRole:_??"button",accessibilityLabel:ee,accessibilityHint:oe,accessibilityState:Ie,testID:Z,children:({pressed:e})=>f(i.View,{onLayout:ve.onLayout,style:[ie.box,Fe,!e||u||ve.active?null:{backgroundColor:re.colors.surface.pressed},Y],children:renderInner(e)})}):We};FieldBase.displayName="FieldBase";const buildStyles=()=>d.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});export default FieldBase;
|
|
1
|
+
"use strict";import React,{useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0};export const pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const o=e[t];if(o&&"transparent"!==o)return o}return e.bottom};export const resolveFieldTextStyle=(e,t={})=>{const{disabled:o=!1}=t,r=e.components.field,i=e.colors.field;return{color:o?r?.disabledTextColor??i.textDisabled:r?.textColor??i.text,placeholderColor:r?.placeholderColor??(o?i.placeholderDisabled:i.placeholder),weightStyle:r?.fontWeight?{fontWeight:r.fontWeight}:fontFor(e,"normal")}};export const RequiredMark=()=>{const e=useTheme(),t=e.components.field;return _jsx(Text,{style:{color:t?.requiredMarkerColor??e.colors.error},children:` ${t?.requiredMarker??"*"}`})};export const RequiredPlaceholder=({text:e,color:t,fontSize:o,weightStyle:r,align:i="center",paddingTop:l,textAlign:n})=>_jsx(View,{pointerEvents:"none",style:[StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:_jsxs(Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:o,...r,includeFontPadding:!1,textAlign:n},children:[e,_jsx(RequiredMark,{})]})});export const FieldErrorGlyph=({size:e,color:t})=>{const o=useTheme(),r=o.icons?.error??defaultIcons.error;return _jsx(_Fragment,{children:r({size:e,color:t})})};export const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;export const fieldTextAsString=e=>"string"==typeof e?e:void 0;export const FieldLabel=({children:e,size:t="md",required:o=!1,help:r,color:i,style:l})=>{const n=useTheme(),s=resolveFieldSize(n,t),d=hasFieldText(r),a=_jsxs(Text,{style:[familyStyles.label,{color:i??n.colors.field.label,fontSize:s.labelFontSize,...fontFor(n,"semibold"),marginBottom:d?0:s.labelGap},d?familyStyles.labelShrink:null,l],children:[e,o?_jsx(RequiredMark,{}):null]});return d?_jsxs(View,{style:[familyStyles.labelRow,{marginBottom:s.labelGap}],children:[a,_jsx(View,{style:[familyStyles.help,{marginLeft:n.spacing.xs}],children:r})]}):a};export const FieldMessage=({text:e,error:t=!1,size:o="md",style:r})=>{const i=useTheme(),l=resolveFieldSize(i,o);if(!hasFieldText(e))return null;const n=t?i.colors.field.message:i.colors.text.secondary;return _jsxs(View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?_jsx(FieldErrorGlyph,{size:l.messageFontSize,color:n}):null,_jsx(Text,{style:[familyStyles.messageText,{color:n,fontSize:l.messageFontSize,...fontFor(i,"normal")},r],children:e})]})};const familyStyles=StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}});export const resolveFieldSize=(e,t)=>{const o=e.components.field?.[t],r=DEFAULT_SIZES[t];return{paddingHorizontal:o?.paddingHorizontal??r.paddingHorizontal,paddingVertical:o?.paddingVertical??r.paddingVertical,minHeight:o?.minHeight??r.minHeight,fontSize:o?.fontSize??r.fontSize,borderRadius:o?.borderRadius??r.borderRadius,iconSize:o?.iconSize??r.iconSize,labelFontSize:o?.labelFontSize??r.labelFontSize,labelGap:o?.labelGap??r.labelGap,messageFontSize:o?.messageFontSize??r.messageFontSize,messageGap:o?.messageGap??r.messageGap}};const DEFAULT_SIZES={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}};export const resolveVariantColors=(e,t,o)=>{const r=e.components.field?.[t],i=e.colors.field;let l,n,s,d,a;"outlined"===t?(l=i.background,n=i.backgroundFocused,s=i.backgroundDisabled,d=i.border,a=e.colors.border.width):"underline"===t?(l="transparent",n=void 0,s="transparent",d={bottom:i.border},a={bottom:e.colors.border.width}):(l=i.background,n=void 0,s=i.backgroundDisabled,d="transparent",a=0);const wrapToIdleShape=e=>"string"==typeof d?e:{bottom:e},c=expandColorSides(o?.borderIdle??r?.borderIdle??d),b=expandColorSides(o?.borderFocused??r?.borderFocused??wrapToIdleShape(i.borderFocused)),p=expandColorSides(o?.borderError??r?.borderError??wrapToIdleShape(i.borderError)),g=expandColorSides(o?.borderDisabled??r?.borderDisabled??d),u=expandWidthSides(o?.borderWidth??r?.borderWidth??a);return{backgroundIdleEmpty:o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundIdleFilled:o?.backgroundIdleFilled??r?.backgroundIdleFilled??o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundFocused:o?.backgroundFocused??r?.backgroundFocused??n,backgroundError:o?.backgroundError??r?.backgroundError??void 0,backgroundDisabled:o?.backgroundDisabled??r?.backgroundDisabled??s,borderIdle:c,borderFocused:b,borderError:p,borderDisabled:g,borderWidth:u,borderFocusedRepresentative:pickRepresentativeBorderColor(b)}};export const FieldBase=e=>{const{size:t="md",variant:o,focused:r=!1,disabled:i=!1,error:l=!1,filled:n=!1,leading:s,leadingDivider:d=!1,trailing:a,slotAlign:c="center",slotLineHeight:b,topNotch:p,children:g,onPress:u,pressFeedback:m=!0,minHeight:h,maxHeight:f,width:x,height:S,paddingHorizontal:y,paddingLeft:F,paddingRight:z,paddingVertical:R,borderRadius:k,borderTopLeftRadius:C,borderTopRightRadius:T,borderBottomLeftRadius:j,borderBottomRightRadius:v,borderWidth:w,borderTopWidth:I,borderRightWidth:_,borderBottomWidth:E,borderLeftWidth:V,gap:H,fillOverrides:D,style:L,testID:W,accessibilityRole:G,accessibilityLabel:B,accessibilityState:q,accessibilityHint:A}=e,M=useTheme(),P=useMemo(()=>buildStyles(),[]),N=o??M.components.field?.defaultVariant??"outlined",O=resolveFieldSize(M,t),U=useMemo(()=>resolveVariantColors(M,N,D),[M,N,D]),Z=l?2:r?1:0,$=useRef(createAnimatedValue(Z)).current;useEffect(()=>{const e=Animated.timing($,{toValue:Z,duration:M.motion.duration.fast,easing:Easing.bezier(...M.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Z,$,M.motion.duration.fast,M.motion.easing.standard]);const J=[0,1,2],K=n?U.backgroundIdleFilled:U.backgroundIdleEmpty,Q=U.backgroundFocused??K,X=U.backgroundError??K,Y=i?U.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,X]}),ee=U.borderIdle,te=U.borderFocused,oe=U.borderError,re={top:I,right:_,bottom:E,left:V},ie={top:re.top??w??U.borderWidth.top,right:re.right??w??U.borderWidth.right,bottom:re.bottom??w??U.borderWidth.bottom,left:re.left??w??U.borderWidth.left},le={minHeight:S??h??O.minHeight,maxHeight:f,paddingHorizontal:y??O.paddingHorizontal,paddingVertical:R??O.paddingVertical,paddingLeft:F??y??O.paddingHorizontal,paddingRight:z??y??O.paddingHorizontal,backgroundColor:Y,columnGap:H??M.spacing.md,alignItems:"top"===c?"flex-start":"center"},ne="underline"===N,se=ne?0:k??O.borderRadius,de=ne?{tl:0,tr:0,bl:0,br:0}:{tl:C??se,tr:T??se,bl:j??se,br:v??se};le.borderTopLeftRadius=de.tl,le.borderTopRightRadius=de.tr,le.borderBottomLeftRadius=de.bl,le.borderBottomRightRadius=de.br,le.borderCurve=smoothCorners.borderCurve,le.borderTopWidth=ie.top,le.borderRightWidth=ie.right,le.borderBottomWidth=ie.bottom,le.borderLeftWidth=ie.left;const sideColor=e=>$.interpolate({inputRange:J,outputRange:[ee[e],te[e],oe[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,ae=!ne&&de.tl===de.tr&&de.tl===de.bl&&de.tl===de.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(oe)&&sameOnEverySide(U.borderDisabled),ce=useSquircle(ae,de.tl);if(ce.active)le.backgroundColor="transparent",le.borderTopColor="transparent",le.borderRightColor="transparent",le.borderBottomColor="transparent",le.borderLeftColor="transparent";else if(i){const e=U.borderDisabled;le.borderTopColor=e.top,le.borderRightColor=e.right,le.borderBottomColor=e.bottom,le.borderLeftColor=e.left}else le.borderTopColor=sideColor("top"),le.borderRightColor=sideColor("right"),le.borderBottomColor=sideColor("bottom"),le.borderLeftColor=sideColor("left");const be=i?U.borderDisabled.top:sideColor("top"),pe=useRef(Z);pe.current=Z,useEffect(()=>{$.setValue(pe.current)},[U,$]),void 0!==x&&(le.width=x),void 0!==S&&(le.height=S);const ge={disabled:i,...q},ue="top"===c,me=ue?{alignSelf:"flex-start",marginTop:Math.max(0,((b??O.iconSize)-O.iconSize)/2)}:null,he=S??h??O.minHeight,fe=(()=>{if(!p)return 0;const e=Math.min(de.tl,he/2),t=p.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),xe=p&&ie.top>0?_jsx(Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:p.left-ie.left,width:p.width,height:ie.top+fe,backgroundColor:Y}}):null,renderInner=e=>_jsxs(_Fragment,{children:[ce.active&&ce.size?_jsx(SquircleFill,{width:ce.size.width,height:ce.size.height,radius:de.tl,fill:e&&!i?M.colors.surface.pressed:Y,stroke:be,strokeWidth:ie.top,outset:ie.top}):null,xe,null!=s?_jsx(View,{style:[P.slot,me],children:s}):null,null!=s&&d?_jsx(View,{pointerEvents:"none",style:[P.divider,me,{height:O.iconSize,backgroundColor:M.colors.field.border}]}):null,_jsx(View,{style:[P.content,ue?P.contentTop:null],children:g}),null!=a?_jsx(View,{style:[P.slot,me],children:a}):null]}),Se=_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,L],accessibilityRole:G,accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,testID:W,children:renderInner(!1)});return u&&!m?_jsx(Pressable,{onPress:u,disabled:i,accessible:!1,children:Se}):u?_jsx(Pressable,{onPress:u,disabled:i,accessibilityRole:G??"button",accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,testID:W,children:({pressed:e})=>_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,!e||i||ce.active?null:{backgroundColor:M.colors.surface.pressed},L],children:renderInner(e)})}):Se};FieldBase.displayName="FieldBase";const buildStyles=()=>StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});export default FieldBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,FieldBase,FieldErrorGlyph,FieldLabel,FieldMessage,fieldTextAsString,hasFieldText,RequiredMark,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"./FieldBase.js";export{FLOATED_LABEL_SCALE,useFloatingLabel}from"./useFloatingLabel.js";
|
|
1
|
+
"use strict";export{default,FieldBase,FieldErrorGlyph,FieldLabel,FieldMessage,fieldTextAsString,hasFieldText,RequiredMark,RequiredPlaceholder,resolveFieldSize,resolveFieldTextStyle}from"./FieldBase.js";export{FLOATED_LABEL_SCALE,useFloatingLabel}from"./useFloatingLabel.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEffect
|
|
1
|
+
"use strict";import{useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,StyleSheet}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{hasFieldText,RequiredMark}from"./FieldBase.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export const FLOATED_LABEL_SCALE=.85;const FLOATED_LABEL_LIFT=1,NOTCH_GAP=4;export const useFloatingLabel=({label:e,enabled:t,floated:n,required:i=!1,variant:a,sizeTokens:r,leadingOffset:o,trailingOffset:s=0,textAlign:l="left",paddingLeft:u,lineHeight:d,restNudge:g=0,floatTrim:m=0,color:f,style:c})=>{const h=useTheme(),p=useRef(createAnimatedValue(n?1:0)).current,x=useRef(createAnimatedValue(n?1:0)).current,A="outlined"===a,[R,E]=useState(null);return useEffect(()=>{const e=n?1:0,timing=(t,n)=>Animated.timing(t,{toValue:e,duration:h.motion.duration.fast,easing:Easing.bezier(...h.motion.easing.standard),useNativeDriver:n});A||x.setValue(e);const t=A?Animated.parallel([timing(p,!0),timing(x,!1)]):timing(p,!0);return t.start(),()=>t.stop()},[n,A,p,x,h.motion.duration.fast,h.motion.easing.standard]),useMemo(()=>{if(!t||!hasFieldText(e))return{node:null,topNotch:void 0};const n=d??R?.height??r.fontSize,a=null!=d?r.paddingVertical+g:Math.max(0,(r.minHeight-n)/2),L=-(a+n/2+1-m),S=p.interpolate({inputRange:[0,1],outputRange:[0,L]}),T=p.interpolate({inputRange:[0,1],outputRange:[1,.85]}),j=-o,v=p.interpolate({inputRange:[0,1],outputRange:[0,j]}),F="right"===l?{right:r.paddingHorizontal+s,transformOrigin:"right center"}:"center"===l?{alignSelf:"center",transformOrigin:"center"}:{left:u+o,transformOrigin:"left center"},_=R?.85*R.width:0,y=R?"right"===l?R.width-_:"center"===l?(R.width-_)/2:0:0,O=A&&R?{left:R.x+j+y-4,width:x.interpolate({inputRange:[0,1],outputRange:[0,_+8]})}:void 0;return{node:_jsxs(Animated.Text,{pointerEvents:"none",onLayout:e=>{const{x:t,width:n,height:i}=e.nativeEvent.layout;E(e=>e&&e.x===t&&e.width===n&&e.height===i?e:{x:t,width:n,height:i})},style:[styles.label,F,{top:a,color:f,fontSize:r.fontSize,lineHeight:d,...fontFor(h,"medium"),transform:[{translateX:v},{translateY:S},{scale:T}]},c],children:[e,i?_jsx(RequiredMark,{}):null]}),topNotch:O}},[t,e,i,A,r,o,s,l,u,d,g,m,f,c,p,x,R,h])};const styles=StyleSheet.create({label:{position:"absolute",zIndex:1}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{forwardRef as r,useCallback as t,useImperativeHandle as o,useMemo as i,useRef as l,useState as n}from"react";import{Image as s,Pressable as a,ScrollView as c,StyleSheet as d,Text as u,View as g}from"react-native";import{useControllableState as h}from"../../hooks/index.js";import{fontFor as p,useTheme as m}from"../../theme/index.js";import{resolveHaptic as y,triggerHaptic as b}from"../../utils/index.js";import{smoothCorners as f}from"../../utils/corners.js";import{defaultIcons as x}from"../AppIcon/defaultIcons.js";import{OptionSheet as T}from"../OptionSheet/OptionSheet.js";import{Spinner as v}from"../Spinner/index.js";import{jsx as S,jsxs as z}from"react/jsx-runtime";let k=0;const C={trigger:"Attach file",addMore:"Add more",sheetTitle:"Add from",removeFile:e=>`Remove ${e}`,retry:"Retry upload",errorTooMany:e=>`You can attach up to ${e} files.`,errorTooLarge:(e,r)=>`${e} is larger than ${r} MB.`,errorWrongType:e=>`${e} is not an accepted file type.`};export const formatFileSize=e=>{if(void 0===e||e<=0)return"";const r=["B","KB","MB","GB"];let t=e,o=0;for(;t>=1024&&o<r.length-1;)t/=1024,o+=1;return`${t>=10||0===o?Math.round(t):Math.round(10*t)/10} ${r[o]}`};export const matchesAccept=(e,r)=>!r||0===r.length||!!e&&r.some(r=>"*/*"===r||"*"===r||(r.endsWith("/*")?e.startsWith(r.slice(0,r.length-1)):e===r));const extensionOf=e=>{const r=e.lastIndexOf(".");return r<=0||r===e.length-1?"FILE":e.slice(r+1).toUpperCase().slice(0,4)},P=r((e,r)=>{const{files:d,defaultFiles:P,onChange:F,sources:R,maxFiles:w,maxSizeMB:j,accept:B,validate:O,process:I,variant:M="card",renderFile:$,renderTrigger:L,disabled:W=!1,helperText:A,error:E,labels:G,haptic:V,onPick:D,onRemove:H,onError:U,onFilePress:N,onRetry:K,style:Y,accessibilityLabel:q,testID:J}=e,Q=m(),X=i(()=>buildStyles(Q),[Q]),Z=i(()=>({...C,...G}),[G]),_=Q.components.filePicker,ee=_?.thumbnailSize??84,re=_?.borderRadius??Q.radius.md,te=_?.dashedBorderColor??Q.colors.primary,[oe,ie]=h({value:d,defaultValue:P??[],onChange:F}),le=l(oe);le.current=oe;const ne=t(e=>{le.current=e,ie(e)},[ie]),[se,ae]=n(null),[ce,de]=n(!1),ue=E??se??void 0,ge="number"==typeof w&&oe.length>=w,he=t((e,r)=>{0!==e.length&&(ae(e[0]),e.forEach(e=>U?.(e,r)),!1!==V&&b("notificationError"))},[U,V]),pe=t(async e=>{let r;try{r=await e.pick()}catch(e){return void he([e instanceof Error?e.message:String(e)])}if(!r||0===r.length)return;const t=[];let o=r.map(e=>({id:"wfp-"+ ++k,name:e.name??e.uri.split("/").pop()??"file",uri:e.uri,type:e.type,size:e.size,meta:e.meta,status:"idle"}));if("number"==typeof w){const e=Math.max(0,w-le.current.length);o.length>e&&(t.push(Z.errorTooMany(w)),o=o.slice(0,e))}const i=[];for(const e of o){if("number"==typeof j&&"number"==typeof e.size&&e.size>1024*j*1024){t.push(Z.errorTooLarge(e.name,j));continue}if(!matchesAccept(e.type,B)){t.push(Z.errorWrongType(e.name));continue}const r=O?.(e);r?t.push(r):i.push(e)}if(he(t),0===i.length)return;if(!I){ne([...le.current,...i]),ae(t.length>0?t[0]:null);const e=y(V,"selection");return e&&b(e),void D?.(i)}const l=i.map(e=>({...e,status:"processing"}));ne([...le.current,...l]);const n=[];for(const e of l)try{const r=await I({...e,status:"idle"}),t={...r,id:e.id,status:r.status??"idle"};ne(le.current.map(r=>r.id===e.id?t:r)),n.push(t)}catch(r){ne(le.current.filter(r=>r.id!==e.id)),he([r instanceof Error?r.message:String(r)],e)}if(n.length>0){0===t.length&&ae(null);const e=y(V,"selection");e&&b(e),D?.(n)}},[w,j,B,O,I,Z,he,ne,D,V]),me=t(e=>{if(W||ge)return;const r=e?R.find(r=>r.key===e):1===R.length?R[0]:void 0;r?pe(r):R.length>1&&de(!0)},[W,ge,R,pe]),ye=t(e=>{if(W)return;ne(le.current.filter(r=>r.id!==e.id)),ae(null);const r=y(V,"selection");r&&b(r),H?.(e)},[W,ne,H,V]),be=t(()=>{ne([]),ae(null)},[ne]);o(r,()=>({open:me,clear:be}),[me,be]);const fe=0===oe.length?Z.trigger:`${oe.length} file${1===oe.length?"":"s"} attached`,xe=q??`Attachments. ${fe}`,statusText=e=>{switch(e.status){case"processing":return"Processing…";case"uploading":return`Uploading ${Math.round(100*(e.progress??0))}%`;case"done":return"Uploaded";case"error":return e.error??"Failed";default:return""}},fileA11yLabel=e=>[e.name,formatFileSize(e.size),statusText(e)].filter(Boolean).join(", "),Te=Q.icons?.attachment??x.attachment,renderStatusOverlay=e=>{if("processing"===e.status)return S(g,{style:[X.tileOverlay,{backgroundColor:Q.colors.background.overlay}],children:S(v,{size:"sm"})});if("uploading"===e.status){const r=Math.round(100*(e.progress??0));return z(g,{style:[X.tileOverlay,{backgroundColor:Q.colors.background.overlay}],children:[S(u,{style:[X.tileOverlayText,{color:Q.colors.onOverlay}],children:`${r}%`}),S(g,{style:[X.tileProgressTrack,{backgroundColor:Q.colors.border.primary}],children:S(g,{style:[X.tileProgressFill,{width:`${r}%`,backgroundColor:Q.colors.primary}]})})]})}return"done"===e.status?S(g,{style:[X.doneBadge,{backgroundColor:Q.colors.success}],children:S(u,{style:[X.doneBadgeText,{color:Q.colors.onSuccess}],children:"✓"})}):null},renderThumbnail=e=>{const r=(e=>e.thumbnailUrl??((e=>!0===e.type?.startsWith("image/")||!e.type&&/\.(png|jpe?g|gif|webp|heic)$/i.test(e.name))(e)?e.uri??e.url:void 0))(e);return r?S(s,{source:{uri:r},style:X.thumbnailImage}):S(g,{style:[X.extensionTile,{backgroundColor:Q.colors.background.secondary}],children:S(u,{style:[X.extensionText,{color:Q.colors.text.secondary,...p(Q,"semibold")}],children:extensionOf(e.name)})})},removeButton=e=>S(a,{onPress:()=>ye(e),disabled:W,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z.removeFile(e.name),style:[X.removeButton,{backgroundColor:Q.colors.background.overlay}],children:S(u,{style:[X.removeButtonText,{color:Q.colors.onOverlay}],children:"×"})}),retryButton=e=>K&&"error"===e.status?S(a,{onPress:()=>K(e),disabled:W,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z.retry,children:S(u,{style:[X.retryText,{color:Q.colors.primary}],children:"↻"})}):null,renderOneFile=(e,r)=>{const t={file:e,index:r,disabled:W,remove:()=>ye(e),retry:K?()=>K(e):void 0},o=$?$(t):"card"===M?(e=>{const{file:r}=e;return z(g,{style:[X.tile,{width:ee,height:ee,borderRadius:re,...f,borderColor:"error"===r.status?Q.colors.error:Q.colors.border.primary}],children:[renderThumbnail(r),renderStatusOverlay(r),"error"===r.status?S(g,{style:[X.tileOverlay,{backgroundColor:Q.colors.background.overlay}],children:retryButton(r)}):null,removeButton(r)]})})(t):(e=>{const{file:r}=e,t=statusText(r);return z(g,{style:[X.listRow,{borderRadius:re,...f,borderColor:"error"===r.status?Q.colors.error:Q.colors.border.primary,backgroundColor:Q.colors.background.primary}],children:[z(g,{style:[X.listThumb,{borderRadius:Q.radius.sm,...f}],children:[renderThumbnail(r),"processing"===r.status?S(g,{style:[X.tileOverlay,{backgroundColor:Q.colors.background.overlay}],children:S(v,{size:"sm"})}):null]}),z(g,{style:X.listTextWrap,children:[S(u,{numberOfLines:1,ellipsizeMode:"middle",style:[X.listName,{color:Q.colors.text.primary,fontSize:Q.typography.fontSize.sm,...p(Q,"medium")}],children:r.name}),S(u,{numberOfLines:1,style:[X.listSubtitle,{color:"error"===r.status?Q.colors.error:Q.colors.text.tertiary,fontSize:Q.typography.fontSize.xs}],children:[formatFileSize(r.size),t].filter(Boolean).join(" · ")}),"uploading"===r.status?S(g,{style:[X.listProgressTrack,{backgroundColor:Q.colors.border.primary}],children:S(g,{style:[X.listProgressFill,{width:`${Math.round(100*(r.progress??0))}%`,backgroundColor:Q.colors.primary}]})}):null]}),retryButton(r),S(a,{onPress:()=>ye(r),disabled:W,hitSlop:8,accessibilityRole:"button",accessibilityLabel:Z.removeFile(r.name),children:S(u,{style:[X.listRemoveText,{color:Q.colors.text.tertiary}],children:"×"})})]})})(t);return S(a,{onPress:N?()=>N(e):void 0,disabled:W||!N,accessibilityLabel:fileA11yLabel(e),children:o},e.id)},ve={open:me,disabled:W||ge,fileCount:oe.length,atCapacity:ge},dashedTrigger=e=>z(a,{onPress:()=>me(),disabled:W||ge,accessibilityRole:"button",accessibilityLabel:xe,accessibilityState:{disabled:W||ge},style:({pressed:r})=>[X.trigger,e?X.triggerCompact:null,{borderRadius:re,...f,borderColor:te,backgroundColor:r?Q.colors.surface.pressed:Q.colors.background.primary,opacity:W||ge?.55:1}],children:[z(g,{style:X.triggerRow,children:[Te?Te({size:16,color:Q.colors.primary}):null,S(u,{style:[X.triggerText,{color:Q.colors.primary,fontSize:Q.typography.fontSize.sm,...p(Q,"medium")}],children:0===oe.length?Z.trigger:Z.addMore})]}),!e&&A?S(u,{style:[X.helperText,{color:Q.colors.text.tertiary,fontSize:Q.typography.fontSize.xs}],children:A}):null]}),Se=S(a,{onPress:()=>me(),disabled:W||ge,accessibilityRole:"button",accessibilityLabel:Z.addMore,style:({pressed:e})=>[X.tile,X.addTile,{width:ee,height:ee,borderRadius:re,...f,borderColor:te,backgroundColor:e?Q.colors.surface.pressed:"transparent",opacity:W||ge?.55:1}],children:S(u,{style:[X.addTileText,{color:Q.colors.primary}],children:"+"})});return z(g,{style:[X.container,Y],testID:J,accessibilityLabel:xe,children:["card"===M?0===oe.length?L?L(ve):dashedTrigger(!1):z(c,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[X.strip,{columnGap:Q.spacing.sm}],children:[oe.map(renderOneFile),L?L(ve):ge||W?null:Se]}):z(g,{style:{rowGap:Q.spacing.sm},children:[L?L(ve):ge?null:dashedTrigger(oe.length>0),oe.map(renderOneFile)]}),ue?S(u,{accessibilityLiveRegion:"polite",style:[X.errorText,{color:Q.colors.error,fontSize:Q.typography.fontSize.xs,marginTop:Q.spacing.xxs}],children:ue}):null,S(T,{open:ce,onClose:()=>de(!1),title:Z.sheetTitle,options:R,labelOf:e=>e.label,getValue:e=>e.key,disabledOf:()=>!1,descriptionOf:e=>e.description,iconOf:e=>e.icon,isSelected:()=>!1,onSelect:e=>{de(!1),pe(e)}})]})});P.displayName="FilePicker";const buildStyles=e=>d.create({container:{width:"100%"},trigger:{borderWidth:1,borderStyle:"dashed",alignItems:"center",paddingVertical:14,paddingHorizontal:16},triggerCompact:{paddingVertical:10},triggerRow:{flexDirection:"row",alignItems:"center",columnGap:8},triggerText:{includeFontPadding:!1},helperText:{includeFontPadding:!1,marginTop:6,textAlign:"center"},strip:{paddingVertical:2},tile:{borderWidth:1,overflow:"hidden"},addTile:{borderStyle:"dashed",alignItems:"center",justifyContent:"center"},addTileText:{fontSize:28,includeFontPadding:!1},thumbnailImage:{width:"100%",height:"100%",resizeMode:"cover"},extensionTile:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},extensionText:{fontSize:12,letterSpacing:1,includeFontPadding:!1},tileOverlay:{...d.absoluteFill,alignItems:"center",justifyContent:"center"},tileOverlayText:{fontSize:12,includeFontPadding:!1,marginBottom:6},tileProgressTrack:{position:"absolute",left:8,right:8,bottom:8,height:3,borderRadius:2,...f,overflow:"hidden"},tileProgressFill:{height:"100%",borderRadius:2,...f},doneBadge:{position:"absolute",right:4,bottom:4,width:18,height:18,borderRadius:9,...f,alignItems:"center",justifyContent:"center"},doneBadgeText:{fontSize:11,includeFontPadding:!1},removeButton:{position:"absolute",top:4,right:4,width:20,height:20,borderRadius:10,...f,alignItems:"center",justifyContent:"center"},removeButtonText:{fontSize:13,lineHeight:15,includeFontPadding:!1},retryText:{fontSize:20,includeFontPadding:!1},listRow:{flexDirection:"row",alignItems:"center",borderWidth:1,padding:10,columnGap:10},listThumb:{width:40,height:40,overflow:"hidden"},listTextWrap:{flex:1},listName:{includeFontPadding:!1},listSubtitle:{includeFontPadding:!1,marginTop:2},listProgressTrack:{height:3,borderRadius:2,...f,overflow:"hidden",marginTop:6},listProgressFill:{height:"100%",borderRadius:2,...f},listRemoveText:{fontSize:22,includeFontPadding:!1,paddingHorizontal:4},errorText:{includeFontPadding:!1}});export{P as FilePicker};export default P;
|
|
1
|
+
"use strict";import React,{forwardRef,useCallback,useImperativeHandle,useMemo,useRef,useState}from"react";import{Image,Pressable,ScrollView,StyleSheet,Text,View}from"react-native";import{useControllableState}from"../../hooks/index.js";import{fontFor,useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{OptionSheet}from"../OptionSheet/OptionSheet.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";let fileIdSeq=0;const nextFileId=()=>"wfp-"+ ++fileIdSeq,DEFAULT_LABELS={trigger:"Attach file",addMore:"Add more",sheetTitle:"Add from",removeFile:e=>`Remove ${e}`,retry:"Retry upload",errorTooMany:e=>`You can attach up to ${e} files.`,errorTooLarge:(e,r)=>`${e} is larger than ${r} MB.`,errorWrongType:e=>`${e} is not an accepted file type.`};export const formatFileSize=e=>{if(void 0===e||e<=0)return"";const r=["B","KB","MB","GB"];let t=e,o=0;for(;t>=1024&&o<r.length-1;)t/=1024,o+=1;return`${t>=10||0===o?Math.round(t):Math.round(10*t)/10} ${r[o]}`};export const matchesAccept=(e,r)=>!r||0===r.length||!!e&&r.some(r=>"*/*"===r||"*"===r||(r.endsWith("/*")?e.startsWith(r.slice(0,r.length-1)):e===r));const isImage=e=>!0===e.type?.startsWith("image/")||!e.type&&/\.(png|jpe?g|gif|webp|heic)$/i.test(e.name),imageSourceOf=e=>e.thumbnailUrl??(isImage(e)?e.uri??e.url:void 0),extensionOf=e=>{const r=e.lastIndexOf(".");return r<=0||r===e.length-1?"FILE":e.slice(r+1).toUpperCase().slice(0,4)},FilePicker=forwardRef((e,r)=>{const{files:t,defaultFiles:o,onChange:i,sources:s,maxFiles:l,maxSizeMB:n,accept:a,validate:c,process:d,variant:u="card",renderFile:g,renderTrigger:h,disabled:p=!1,helperText:m,error:y,labels:b,haptic:f,onPick:x,onRemove:S,onError:T,onFilePress:j,onRetry:C,style:v,accessibilityLabel:w,testID:k}=e,_=useTheme(),F=useMemo(()=>buildStyles(_),[_]),P=useMemo(()=>({...DEFAULT_LABELS,...b}),[b]),z=_.components.filePicker,R=z?.thumbnailSize??84,I=z?.borderRadius??_.radius.md,V=z?.dashedBorderColor??_.colors.primary,[O,B]=useControllableState({value:t,defaultValue:o??[],onChange:i}),L=useRef(O);L.current=O;const M=useCallback(e=>{L.current=e,B(e)},[B]),[H,$]=useState(null),[A,E]=useState(!1),W=y??H??void 0,D="number"==typeof l&&O.length>=l,U=useCallback((e,r)=>{0!==e.length&&($(e[0]),e.forEach(e=>T?.(e,r)),!1!==f&&triggerHaptic("notificationError"))},[T,f]),G=useCallback(async e=>{let r;try{r=await e.pick()}catch(e){return void U([e instanceof Error?e.message:String(e)])}if(!r||0===r.length)return;const t=[];let o=r.map(e=>({id:nextFileId(),name:e.name??e.uri.split("/").pop()??"file",uri:e.uri,type:e.type,size:e.size,meta:e.meta,status:"idle"}));if("number"==typeof l){const e=Math.max(0,l-L.current.length);o.length>e&&(t.push(P.errorTooMany(l)),o=o.slice(0,e))}const i=[];for(const e of o){if("number"==typeof n&&"number"==typeof e.size&&e.size>1024*n*1024){t.push(P.errorTooLarge(e.name,n));continue}if(!matchesAccept(e.type,a)){t.push(P.errorWrongType(e.name));continue}const r=c?.(e);r?t.push(r):i.push(e)}if(U(t),0===i.length)return;if(!d){M([...L.current,...i]),$(t.length>0?t[0]:null);const e=resolveHaptic(f,"selection");return e&&triggerHaptic(e),void x?.(i)}const s=i.map(e=>({...e,status:"processing"}));M([...L.current,...s]);const u=[];for(const e of s)try{const r=await d({...e,status:"idle"}),t={...r,id:e.id,status:r.status??"idle"};M(L.current.map(r=>r.id===e.id?t:r)),u.push(t)}catch(r){M(L.current.filter(r=>r.id!==e.id)),U([r instanceof Error?r.message:String(r)],e)}if(u.length>0){0===t.length&&$(null);const e=resolveHaptic(f,"selection");e&&triggerHaptic(e),x?.(u)}},[l,n,a,c,d,P,U,M,x,f]),N=useCallback(e=>{if(p||D)return;const r=e?s.find(r=>r.key===e):1===s.length?s[0]:void 0;r?G(r):s.length>1&&E(!0)},[p,D,s,G]),q=useCallback(e=>{if(p)return;M(L.current.filter(r=>r.id!==e.id)),$(null);const r=resolveHaptic(f,"selection");r&&triggerHaptic(r),S?.(e)},[p,M,S,f]),K=useCallback(()=>{M([]),$(null)},[M]);useImperativeHandle(r,()=>({open:N,clear:K}),[N,K]);const Y=0===O.length?P.trigger:`${O.length} file${1===O.length?"":"s"} attached`,J=w??`Attachments. ${Y}`,statusText=e=>{switch(e.status){case"processing":return"Processing…";case"uploading":return`Uploading ${Math.round(100*(e.progress??0))}%`;case"done":return"Uploaded";case"error":return e.error??"Failed";default:return""}},fileA11yLabel=e=>[e.name,formatFileSize(e.size),statusText(e)].filter(Boolean).join(", "),Q=_.icons?.attachment??defaultIcons.attachment,renderStatusOverlay=e=>{if("processing"===e.status)return _jsx(View,{style:[F.tileOverlay,{backgroundColor:_.colors.background.overlay}],children:_jsx(Spinner,{size:"sm"})});if("uploading"===e.status){const r=Math.round(100*(e.progress??0));return _jsxs(View,{style:[F.tileOverlay,{backgroundColor:_.colors.background.overlay}],children:[_jsx(Text,{style:[F.tileOverlayText,{color:_.colors.onOverlay}],children:`${r}%`}),_jsx(View,{style:[F.tileProgressTrack,{backgroundColor:_.colors.border.primary}],children:_jsx(View,{style:[F.tileProgressFill,{width:`${r}%`,backgroundColor:_.colors.primary}]})})]})}return"done"===e.status?_jsx(View,{style:[F.doneBadge,{backgroundColor:_.colors.success}],children:_jsx(Text,{style:[F.doneBadgeText,{color:_.colors.onSuccess}],children:"✓"})}):null},renderThumbnail=e=>{const r=imageSourceOf(e);return r?_jsx(Image,{source:{uri:r},style:F.thumbnailImage}):_jsx(View,{style:[F.extensionTile,{backgroundColor:_.colors.background.secondary}],children:_jsx(Text,{style:[F.extensionText,{color:_.colors.text.secondary,...fontFor(_,"semibold")}],children:extensionOf(e.name)})})},removeButton=e=>_jsx(Pressable,{onPress:()=>q(e),disabled:p,hitSlop:8,accessibilityRole:"button",accessibilityLabel:P.removeFile(e.name),style:[F.removeButton,{backgroundColor:_.colors.background.overlay}],children:_jsx(Text,{style:[F.removeButtonText,{color:_.colors.onOverlay}],children:"×"})}),retryButton=e=>C&&"error"===e.status?_jsx(Pressable,{onPress:()=>C(e),disabled:p,hitSlop:8,accessibilityRole:"button",accessibilityLabel:P.retry,children:_jsx(Text,{style:[F.retryText,{color:_.colors.primary}],children:"↻"})}):null,renderOneFile=(e,r)=>{const t={file:e,index:r,disabled:p,remove:()=>q(e),retry:C?()=>C(e):void 0},o=g?g(t):"card"===u?(e=>{const{file:r}=e;return _jsxs(View,{style:[F.tile,{width:R,height:R,borderRadius:I,...smoothCorners,borderColor:"error"===r.status?_.colors.error:_.colors.border.primary}],children:[renderThumbnail(r),renderStatusOverlay(r),"error"===r.status?_jsx(View,{style:[F.tileOverlay,{backgroundColor:_.colors.background.overlay}],children:retryButton(r)}):null,removeButton(r)]})})(t):(e=>{const{file:r}=e,t=statusText(r);return _jsxs(View,{style:[F.listRow,{borderRadius:I,...smoothCorners,borderColor:"error"===r.status?_.colors.error:_.colors.border.primary,backgroundColor:_.colors.background.primary}],children:[_jsxs(View,{style:[F.listThumb,{borderRadius:_.radius.sm,...smoothCorners}],children:[renderThumbnail(r),"processing"===r.status?_jsx(View,{style:[F.tileOverlay,{backgroundColor:_.colors.background.overlay}],children:_jsx(Spinner,{size:"sm"})}):null]}),_jsxs(View,{style:F.listTextWrap,children:[_jsx(Text,{numberOfLines:1,ellipsizeMode:"middle",style:[F.listName,{color:_.colors.text.primary,fontSize:_.typography.fontSize.sm,...fontFor(_,"medium")}],children:r.name}),_jsx(Text,{numberOfLines:1,style:[F.listSubtitle,{color:"error"===r.status?_.colors.error:_.colors.text.tertiary,fontSize:_.typography.fontSize.xs}],children:[formatFileSize(r.size),t].filter(Boolean).join(" · ")}),"uploading"===r.status?_jsx(View,{style:[F.listProgressTrack,{backgroundColor:_.colors.border.primary}],children:_jsx(View,{style:[F.listProgressFill,{width:`${Math.round(100*(r.progress??0))}%`,backgroundColor:_.colors.primary}]})}):null]}),retryButton(r),_jsx(Pressable,{onPress:()=>q(r),disabled:p,hitSlop:8,accessibilityRole:"button",accessibilityLabel:P.removeFile(r.name),children:_jsx(Text,{style:[F.listRemoveText,{color:_.colors.text.tertiary}],children:"×"})})]})})(t);return _jsx(Pressable,{onPress:j?()=>j(e):void 0,disabled:p||!j,accessibilityLabel:fileA11yLabel(e),children:o},e.id)},X={open:N,disabled:p||D,fileCount:O.length,atCapacity:D},dashedTrigger=e=>_jsxs(Pressable,{onPress:()=>N(),disabled:p||D,accessibilityRole:"button",accessibilityLabel:J,accessibilityState:{disabled:p||D},style:({pressed:r})=>[F.trigger,e?F.triggerCompact:null,{borderRadius:I,...smoothCorners,borderColor:V,backgroundColor:r?_.colors.surface.pressed:_.colors.background.primary,opacity:p||D?.55:1}],children:[_jsxs(View,{style:F.triggerRow,children:[Q?Q({size:16,color:_.colors.primary}):null,_jsx(Text,{style:[F.triggerText,{color:_.colors.primary,fontSize:_.typography.fontSize.sm,...fontFor(_,"medium")}],children:0===O.length?P.trigger:P.addMore})]}),!e&&m?_jsx(Text,{style:[F.helperText,{color:_.colors.text.tertiary,fontSize:_.typography.fontSize.xs}],children:m}):null]}),Z=_jsx(Pressable,{onPress:()=>N(),disabled:p||D,accessibilityRole:"button",accessibilityLabel:P.addMore,style:({pressed:e})=>[F.tile,F.addTile,{width:R,height:R,borderRadius:I,...smoothCorners,borderColor:V,backgroundColor:e?_.colors.surface.pressed:"transparent",opacity:p||D?.55:1}],children:_jsx(Text,{style:[F.addTileText,{color:_.colors.primary}],children:"+"})});return _jsxs(View,{style:[F.container,v],testID:k,accessibilityLabel:J,children:["card"===u?0===O.length?h?h(X):dashedTrigger(!1):_jsxs(ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[F.strip,{columnGap:_.spacing.sm}],children:[O.map(renderOneFile),h?h(X):D||p?null:Z]}):_jsxs(View,{style:{rowGap:_.spacing.sm},children:[h?h(X):D?null:dashedTrigger(O.length>0),O.map(renderOneFile)]}),W?_jsx(Text,{accessibilityLiveRegion:"polite",style:[F.errorText,{color:_.colors.error,fontSize:_.typography.fontSize.xs,marginTop:_.spacing.xxs}],children:W}):null,_jsx(OptionSheet,{open:A,onClose:()=>E(!1),title:P.sheetTitle,options:s,labelOf:e=>e.label,getValue:e=>e.key,disabledOf:()=>!1,descriptionOf:e=>e.description,iconOf:e=>e.icon,isSelected:()=>!1,onSelect:e=>{E(!1),G(e)}})]})});FilePicker.displayName="FilePicker";const buildStyles=e=>StyleSheet.create({container:{width:"100%"},trigger:{borderWidth:1,borderStyle:"dashed",alignItems:"center",paddingVertical:14,paddingHorizontal:16},triggerCompact:{paddingVertical:10},triggerRow:{flexDirection:"row",alignItems:"center",columnGap:8},triggerText:{includeFontPadding:!1},helperText:{includeFontPadding:!1,marginTop:6,textAlign:"center"},strip:{paddingVertical:2},tile:{borderWidth:1,overflow:"hidden"},addTile:{borderStyle:"dashed",alignItems:"center",justifyContent:"center"},addTileText:{fontSize:28,includeFontPadding:!1},thumbnailImage:{width:"100%",height:"100%",resizeMode:"cover"},extensionTile:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},extensionText:{fontSize:12,letterSpacing:1,includeFontPadding:!1},tileOverlay:{...StyleSheet.absoluteFill,alignItems:"center",justifyContent:"center"},tileOverlayText:{fontSize:12,includeFontPadding:!1,marginBottom:6},tileProgressTrack:{position:"absolute",left:8,right:8,bottom:8,height:3,borderRadius:2,...smoothCorners,overflow:"hidden"},tileProgressFill:{height:"100%",borderRadius:2,...smoothCorners},doneBadge:{position:"absolute",right:4,bottom:4,width:18,height:18,borderRadius:9,...smoothCorners,alignItems:"center",justifyContent:"center"},doneBadgeText:{fontSize:11,includeFontPadding:!1},removeButton:{position:"absolute",top:4,right:4,width:20,height:20,borderRadius:10,...smoothCorners,alignItems:"center",justifyContent:"center"},removeButtonText:{fontSize:13,lineHeight:15,includeFontPadding:!1},retryText:{fontSize:20,includeFontPadding:!1},listRow:{flexDirection:"row",alignItems:"center",borderWidth:1,padding:10,columnGap:10},listThumb:{width:40,height:40,overflow:"hidden"},listTextWrap:{flex:1},listName:{includeFontPadding:!1},listSubtitle:{includeFontPadding:!1,marginTop:2},listProgressTrack:{height:3,borderRadius:2,...smoothCorners,overflow:"hidden",marginTop:6},listProgressFill:{height:"100%",borderRadius:2,...smoothCorners},listRemoveText:{fontSize:22,includeFontPadding:!1,paddingHorizontal:4},errorText:{includeFontPadding:!1}});export{FilePicker};export default FilePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,FilePicker,formatFileSize}from"./FilePicker.js";
|
|
1
|
+
"use strict";export{default,FilePicker,formatFileSize}from"./FilePicker.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Logger
|
|
1
|
+
"use strict";import{Logger,publicClient}from"@webority/mobile-core";import{downloadFile}from"@webority/mobile-core/download";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{Image,PixelRatio,ScrollView,StyleSheet,useWindowDimensions,View}from"react-native";import PdfRasterizer from"../../specs/NativePdfRasterizer.js";import{hashString}from"../../utils/hashString.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx}from"react/jsx-runtime";const HAS_SCHEME=/^[a-z][a-z0-9+.-]*:/i,MAX_RENDER_SCALE=3,RENDER_WINDOW=1,toError=e=>e instanceof Error?e:new Error(String(e)),scaleForWidth=(e,t)=>{if(t<=0)return 1;const r=e/t*PixelRatio.get();return Math.min(Math.max(r,1),3)},cacheFileName=e=>{const t=(e.split("#")[0]?.split("?")[0]??"").split("/").pop()??"",r=/\.[a-z0-9]{1,8}$/i.exec(t)?.[0]??"";return`${hashString(e)}${r.toLowerCase()}`},localPathFromSource=async e=>{if(!HAS_SCHEME.test(e.uri)||e.uri.startsWith("file://"))return e.uri.replace(/^file:\/\//,"");return(await downloadFile({client:e.client??publicClient,url:e.uri,fileName:cacheFileName(e.uri),headers:e.headers,overwrite:!1===e.cache})).path};export const FileViewer=({source:e,onLoadComplete:t,onPageChanged:r,onError:i,loadingIndicator:a,style:o,testID:s,accessibilityLabel:n})=>{const{width:l}=useWindowDimensions(),[c,u]=useState(0),[h,d]=useState({width:612,height:792}),f=h.height/h.width,[m,p]=useState({}),[g,w]=useState(0),y=useRef(null),S=useRef(i);S.current=i;const b=useRef(t);b.current=t;const x=useRef(r);x.current=r;const E=useMemo(()=>({uri:e.uri,headers:e.headers,client:e.client,cache:e.cache}),[e.uri,e.headers,e.client,e.cache]);useEffect(()=>{let e=!1;return(async()=>{if(PdfRasterizer)try{const t=await localPathFromSource(E);if(e)return;const r=await PdfRasterizer.open(t);if(e)return void await PdfRasterizer.close(r.handle).catch(()=>{});y.current=r.handle,u(r.pageCount),w(0),p({}),r.pageWidth>0&&r.pageHeight>0&&d({width:r.pageWidth,height:r.pageHeight}),b.current?.(r.pageCount)}catch(t){if(!e){const e=toError(t);Logger.error("[@webority/mobile-ui] FileViewer failed to load.",e),S.current?.(e)}}else S.current?.(new Error("[@webority/mobile-ui] PdfRasterizer native module is not linked. Run pod install / rebuild the app after adding @webority/mobile-ui."))})(),()=>{e=!0}},[E]),useEffect(()=>()=>{const e=y.current;e&&PdfRasterizer?.close(e).catch(()=>{})},[]);const R=useCallback(async e=>{const t=y.current;if(t&&PdfRasterizer)try{const r=scaleForWidth(l,h.width),i=await PdfRasterizer.renderPage(t,e,r);p(t=>t[e]?t:{...t,[e]:i})}catch(t){Logger.error(`[@webority/mobile-ui] FileViewer failed to render page ${e}.`,toError(t))}},[h.width,l]),P=l*f;useEffect(()=>{if(0===c)return;const e=Math.max(0,g-1),t=Math.min(c-1,g+1);for(let r=e;r<=t;r+=1)R(r)},[g,c,R]);const M=useCallback(e=>{if(P<=0)return;const t=Math.min(c-1,Math.max(0,Math.round(e.nativeEvent.contentOffset.y/P)));w(e=>(e!==t&&x.current?.(t+1,c),t))},[c,P]),j=useMemo(()=>Array.from({length:c},(e,t)=>t),[c]),z=Math.max(0,g-1),C=Math.min(c-1,g+1);return _jsx(View,{style:[styles.root,o],testID:s,accessible:void 0!==n,accessibilityLabel:n,accessibilityRole:"none",children:0===c?_jsx(View,{style:styles.pagePlaceholder,children:a?a():_jsx(Spinner,{size:"lg"})}):_jsx(ScrollView,{onScroll:M,scrollEventThrottle:32,showsVerticalScrollIndicator:!0,removeClippedSubviews:!0,children:j.map(e=>{const t=e>=z&&e<=C,r=t?m[e]:void 0;return _jsx(View,{style:[styles.page,{width:l,height:P}],children:r?_jsx(Image,{source:{uri:r},style:styles.pageImage,resizeMode:"contain",accessible:!1}):_jsx(View,{style:styles.pagePlaceholder,children:t?a?.()??_jsx(Spinner,{size:"lg"}):null})},e)})})})};FileViewer.displayName="FileViewer";const styles=StyleSheet.create({root:{flex:1},page:{alignSelf:"center"},pageImage:{flex:1},pagePlaceholder:{flex:1,alignItems:"center",justifyContent:"center"}});export default FileViewer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{FileViewer}from"./FileViewer.js";
|
|
1
|
+
"use strict";export{FileViewer}from"./FileViewer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t,{forwardRef as e,useCallback as o,useEffect as n,useMemo as r,useRef as i,useState as s}from"react";import{Animated as a,Easing as l,Pressable as c,StyleSheet as d,Text as u,View as m}from"react-native";import{useSafeAreaInsets as p}from"react-native-safe-area-context";import{usePressAnimation as g}from"../../hooks/usePressAnimation.js";import{createAnimatedValue as b,setNativeValue as f,useTheme as y}from"../../theme/index.js";import{ACCENT_PRESSED_TINT as h}from"../../utils/color.js";import{smoothCorners as v}from"../../utils/corners.js";import{resolveHaptic as R,triggerHaptic as w}from"../../utils/hapticUtils.js";import{jsx as S,Fragment as I,jsxs as x}from"react/jsx-runtime";const z={sm:{diameter:40,iconSize:18,fontSize:13,labelPaddingHorizontal:14},md:{diameter:56,iconSize:22,fontSize:15,labelPaddingHorizontal:18},lg:{diameter:72,iconSize:28,fontSize:16,labelPaddingHorizontal:22}},toneBackground=(t,e)=>{switch(e){case"success":return t.colors.success;case"warning":return t.colors.warning;case"error":return t.colors.error;case"neutral":return t.colors.background.tertiary;default:return t.colors.primary}},pressedTintFor=(t,e)=>"neutral"===e?t.colors.surface.pressed:h,toneForeground=(t,e)=>{if("neutral"===e)return t.colors.text.primary;switch(e){case"success":return t.colors.onSuccess;case"warning":return t.colors.onWarning;case"error":return t.colors.onError;default:return t.colors.onPrimary}},C=e((t,e)=>{const{icon:o,onPress:s,label:d,size:h="md",tone:C="primary",position:D,bottomOffset:P,disabled:k=!1,hideOnScroll:L=!1,isScrolling:j=!1,accessibilityLabel:O,accessibilityHint:V,haptic:E,style:H,containerStyle:A,labelStyle:B,testID:F}=t,$=y(),N=p(),T=z[h],W=r(()=>buildStyles($),[$]),{scale:Y,pressIn:G,pressOut:M}=g({enabled:!k}),Q=$.components.floatingActionButton,U=Q?.edgeOffset??24,q=Q?.bottomOffset??24,J=i(b(0)).current;n(()=>{if(!L)return void f(J,0);const t=a.timing(J,{toValue:j?1:0,duration:$.motion.duration.normal,easing:l.bezier(...$.motion.easing.standard),useNativeDriver:!0});return t.start(),()=>t.stop()},[L,j,J,$.motion.duration.normal,$.motion.easing.standard]);const K=J.interpolate({inputRange:[0,1],outputRange:[0,T.diameter+(P??q)+N.bottom+U]}),X=J.interpolate({inputRange:[0,1],outputRange:[1,0]}),Z=o,_="string"==typeof d&&d.length>0,tt=k?$.colors.surface.disabled:toneBackground($,C),et=k?$.colors.text.disabled:toneForeground($,C),ot=r(()=>{if(!D)return null;const t=(P??q)+N.bottom;switch(D){case"bottomLeft":return{position:"absolute",bottom:t,left:U};case"bottomCenter":return{position:"absolute",bottom:t,alignSelf:"center"};default:return{position:"absolute",bottom:t,right:U}}},[D,P,N.bottom,q,U]);return S(a.View,{style:[ot,{transform:[{translateY:K},{scale:Y}],opacity:X},A,H],pointerEvents:L&&j?"none":"auto",children:S(c,{ref:e,onPress:t=>{if(k)return;const e=R(E,"impactLight");e&&w(e),s()},onPressIn:G,onPressOut:M,disabled:k,accessibilityRole:"button",accessibilityLabel:O,accessibilityHint:V,accessibilityState:{disabled:k},testID:F,style:[W.base,_?{height:T.diameter,paddingHorizontal:T.labelPaddingHorizontal,borderRadius:T.diameter/2,...v}:{width:T.diameter,height:T.diameter,borderRadius:T.diameter/2,...v},$.shadows.lg,{backgroundColor:tt,opacity:k?.55:1}],children:({pressed:t})=>x(I,{children:[t&&!k?S(m,{pointerEvents:"none",testID:"fab-pressed",style:[W.pressedTint,{backgroundColor:pressedTintFor($,C),borderRadius:T.diameter/2,...v}]}):null,Z,_?S(u,{style:[W.label,{color:et,fontSize:T.fontSize,fontWeight:$.typography.fontWeight.semibold,marginLeft:$.spacing.sm},B],numberOfLines:1,children:d}):null]})})})});C.displayName="FloatingActionButton";const buildStyles=t=>d.create({base:{flexDirection:"row",alignItems:"center",justifyContent:"center",overflow:"hidden"},pressedTint:{position:"absolute",top:0,right:0,bottom:0,left:0},label:{includeFontPadding:!1}}),FloatingActionButtonGroup=e=>{const{primaryIcon:g,primaryActiveIcon:C,actions:D,open:P,defaultOpen:k=!1,onOpenChange:L,position:j="bottomRight",bottomOffset:O,size:V="md",accessibilityLabel:E="Quick actions",haptic:H,hideOnScroll:A=!1,isScrolling:B=!1,containerStyle:F,secondaryActionStyle:$,labelPillStyle:N,labelStyle:T,testID:W}=e,Y=y(),G=p(),M=z[V],Q=r(()=>buildGroupStyles(Y),[Y]),U=Y.components.floatingActionButton,q=U?.edgeOffset??24,J=U?.bottomOffset??24,K=U?.secondaryGap??16,X=U?.staggerMs??50,Z="boolean"==typeof P,[_,tt]=s(k),et=Z?P:_,ot=i(b(0)).current;n(()=>{if(!A)return void f(ot,0);const t=a.timing(ot,{toValue:B?1:0,duration:Y.motion.duration.normal,easing:l.bezier(...Y.motion.easing.standard),useNativeDriver:!0});return t.start(),()=>t.stop()},[A,B,ot,Y.motion.duration.normal,Y.motion.easing.standard]);const nt=A&&B;n(()=>{nt&&et&&(Z||tt(!1),L?.(!1))},[nt,et,Z,L]);const rt=ot.interpolate({inputRange:[0,1],outputRange:[0,M.diameter+(O??J)+G.bottom+q]}),it=ot.interpolate({inputRange:[0,1],outputRange:[1,0]}),st=i(b(et?1:0)).current,at=i([]),[lt,ct]=s(0);n(()=>{const t=at.current;if(t.length!==D.length){if(t.length<D.length){const e=t.slice();for(let o=t.length;o<D.length;o+=1)e.push(new a.Value(et?1:0));at.current=e}else at.current=t.slice(0,D.length);ct(t=>t+1)}},[D.length]),n(()=>{const t=a.timing(st,{toValue:et?1:0,duration:Y.motion.duration.normal,easing:l.bezier(...Y.motion.easing.standard),useNativeDriver:!0});t.start();const e=at.current.map(t=>a.timing(t,{toValue:et?1:0,duration:Y.motion.duration.normal,easing:l.bezier(...Y.motion.easing.standard),useNativeDriver:!0})),o=et?e:[...e].reverse(),n=a.stagger(X,o);return n.start(),()=>{t.stop(),n.stop()}},[et,st,Y.motion.duration.normal,Y.motion.easing.standard,D.length,lt,X]);const dt=o(t=>{const e=R(H,"impactLight");e&&w(e),Z||tt(t),L?.(t)},[Z,L,H]),ut=o(()=>{dt(!et)},[et,dt]),mt=o(t=>{!1!==H&&w("selection"),t.onPress(),Z||tt(!1),L?.(!1)},[Z,L,H]),pt=o(()=>{et&&dt(!1)},[et,dt]),gt=r(()=>{const t=(O??J)+G.bottom;switch(j){case"bottomLeft":return{position:"absolute",bottom:t,left:q,alignItems:"flex-start"};case"bottomCenter":return{position:"absolute",bottom:t,alignSelf:"center",alignItems:"center"};default:return{position:"absolute",bottom:t,right:q,alignItems:"flex-end"}}},[j,O,G.bottom,J,q]),slotOffset=t=>-(M.diameter+K)*(t+1),bt=r(()=>{switch(j){case"bottomLeft":return{left:0,right:0,justifyContent:"flex-start"};case"bottomCenter":return{left:0,right:0,justifyContent:"center"};default:return{left:0,right:0,justifyContent:"flex-end"}}},[j]),ft=.78*M.diameter,yt=r(()=>{const t=ft+Y.spacing.sm;switch(j){case"bottomLeft":return{left:t,alignItems:"flex-start"};case"bottomCenter":return{right:M.diameter/2+ft/2+Y.spacing.sm,alignItems:"flex-end"};default:return{right:t,alignItems:"flex-end"}}},[j,ft,M.diameter,Y.spacing.sm]),ht=st.interpolate({inputRange:[0,1],outputRange:[0,.4]}),vt=st.interpolate({inputRange:[0,1],outputRange:["0deg","45deg"]});return x(I,{children:[et?S(a.View,{pointerEvents:et?"auto":"none",style:[d.absoluteFill,{backgroundColor:Y.colors.background.overlay,opacity:ht}],children:S(c,{style:d.absoluteFill,onPress:pt,accessibilityElementsHidden:!0,importantForAccessibility:"no",testID:W?`${W}-backdrop`:void 0})}):null,x(a.View,{pointerEvents:nt?"none":"box-none",style:[gt,{transform:[{translateY:rt}],opacity:it},F],accessibilityRole:"menu",testID:W,children:[D.map((e,o)=>{const n=at.current[o];if(!n)return null;const r=n.interpolate({inputRange:[0,1],outputRange:[0,slotOffset(o)]}),i=n.interpolate({inputRange:[0,1],outputRange:[.6,1]}),s=toneBackground(Y,e.tone??"primary"),l=toneForeground(Y,e.tone??"primary"),d=e.label?S(m,{pointerEvents:"none",style:[Q.labelSlot,yt],testID:W?`${W}-label-${e.key}`:void 0,children:S(m,{style:[Q.labelPill,Y.shadows.sm,{backgroundColor:Y.colors.background.elevated,paddingHorizontal:Y.spacing.sm,paddingVertical:Y.spacing.xs,borderRadius:Y.radius.sm,...v},N],children:S(u,{style:[{color:Y.colors.text.primary,fontSize:Y.typography.fontSize.sm,fontWeight:Y.typography.fontWeight.medium},T],numberOfLines:1,children:e.label})})}):null;return x(a.View,{pointerEvents:et?"auto":"none",style:[Q.secondaryRow,bt,{position:"absolute",bottom:0,opacity:n,transform:[{translateY:r},{scale:i}]}],children:[S(c,{onPress:()=>mt(e),accessibilityRole:"menuitem",accessibilityLabel:e.accessibilityLabel,style:[Q.fabBase,Y.shadows.md,{width:ft,height:ft,borderRadius:ft/2,...v,backgroundColor:s},$],testID:W?`${W}-action-${e.key}`:void 0,children:({pressed:o})=>x(I,{children:[o?S(m,{pointerEvents:"none",testID:"fab-pressed",style:[Q.pressedTint,{backgroundColor:pressedTintFor(Y,e.tone??"primary"),borderRadius:ft/2,...v}]}):null,t.isValidElement(e.icon)?e.icon:S(u,{style:{color:l},children:String(e.icon??"")})]})}),d]},e.key)}),S(c,{onPress:ut,accessibilityRole:"button",accessibilityLabel:E,accessibilityState:{expanded:et},style:[Q.fabBase,Y.shadows.lg,{width:M.diameter,height:M.diameter,borderRadius:M.diameter/2,...v,backgroundColor:Y.colors.primary}],testID:W?`${W}-primary`:void 0,children:({pressed:t})=>x(I,{children:[t?S(m,{pointerEvents:"none",testID:"fab-pressed",style:[Q.pressedTint,{backgroundColor:h,borderRadius:M.diameter/2,...v}]}):null,S(a.View,{style:C?void 0:{transform:[{rotate:vt}]},children:et&&C?C:g})]})})]})]})},buildGroupStyles=t=>d.create({fabBase:{flexDirection:"row",alignItems:"center",justifyContent:"center",overflow:"hidden"},pressedTint:{position:"absolute",top:0,right:0,bottom:0,left:0},secondaryRow:{flexDirection:"row",alignItems:"center"},labelSlot:{position:"absolute",top:0,bottom:0,justifyContent:"center"},labelPill:{alignSelf:"auto"}});export{C as FloatingActionButton,FloatingActionButtonGroup};export default C;
|
|
1
|
+
"use strict";import React,{forwardRef,useCallback,useEffect,useMemo,useRef,useState}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{useSafeAreaInsets}from"react-native-safe-area-context";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{createAnimatedValue,setNativeValue,useTheme}from"../../theme/index.js";import{ACCENT_PRESSED_TINT}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{resolveHaptic,triggerHaptic}from"../../utils/hapticUtils.js";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const sizeMap={sm:{diameter:40,iconSize:18,fontSize:13,labelPaddingHorizontal:14},md:{diameter:56,iconSize:22,fontSize:15,labelPaddingHorizontal:18},lg:{diameter:72,iconSize:28,fontSize:16,labelPaddingHorizontal:22}},toneBackground=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;case"neutral":return e.colors.background.tertiary;default:return e.colors.primary}},pressedTintFor=(e,t)=>"neutral"===t?e.colors.surface.pressed:ACCENT_PRESSED_TINT,toneForeground=(e,t)=>{if("neutral"===t)return e.colors.text.primary;switch(t){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},FloatingActionButton=forwardRef((e,t)=>{const{icon:o,onPress:n,label:s,size:r="md",tone:i="primary",position:a,bottomOffset:l,disabled:c=!1,hideOnScroll:u=!1,isScrolling:d=!1,accessibilityLabel:m,accessibilityHint:g,haptic:p,style:b,containerStyle:f,labelStyle:h,testID:y}=e,S=useTheme(),x=useSafeAreaInsets(),R=sizeMap[r],C=useMemo(()=>buildStyles(S),[S]),{scale:j,pressIn:v,pressOut:w}=usePressAnimation({enabled:!c}),A=S.components.floatingActionButton,_=A?.edgeOffset??24,E=A?.bottomOffset??24,I=useRef(createAnimatedValue(0)).current;useEffect(()=>{if(!u)return void setNativeValue(I,0);const e=Animated.timing(I,{toValue:d?1:0,duration:S.motion.duration.normal,easing:Easing.bezier(...S.motion.easing.standard),useNativeDriver:!0});return e.start(),()=>e.stop()},[u,d,I,S.motion.duration.normal,S.motion.easing.standard]);const P=I.interpolate({inputRange:[0,1],outputRange:[0,R.diameter+(l??E)+x.bottom+_]}),k=I.interpolate({inputRange:[0,1],outputRange:[1,0]}),z=o,V="string"==typeof s&&s.length>0,T=c?S.colors.surface.disabled:toneBackground(S,i),F=c?S.colors.text.disabled:toneForeground(S,i),D=useMemo(()=>{if(!a)return null;const e=(l??E)+x.bottom;switch(a){case"bottomLeft":return{position:"absolute",bottom:e,left:_};case"bottomCenter":return{position:"absolute",bottom:e,alignSelf:"center"};default:return{position:"absolute",bottom:e,right:_}}},[a,l,x.bottom,E,_]);return _jsx(Animated.View,{style:[D,{transform:[{translateY:P},{scale:j}],opacity:k},f,b],pointerEvents:u&&d?"none":"auto",children:_jsx(Pressable,{ref:t,onPress:e=>{if(c)return;const t=resolveHaptic(p,"impactLight");t&&triggerHaptic(t),n()},onPressIn:v,onPressOut:w,disabled:c,accessibilityRole:"button",accessibilityLabel:m,accessibilityHint:g,accessibilityState:{disabled:c},testID:y,style:[C.base,V?{height:R.diameter,paddingHorizontal:R.labelPaddingHorizontal,borderRadius:R.diameter/2,...smoothCorners}:{width:R.diameter,height:R.diameter,borderRadius:R.diameter/2,...smoothCorners},S.shadows.lg,{backgroundColor:T,opacity:c?.55:1}],children:({pressed:e})=>_jsxs(_Fragment,{children:[e&&!c?_jsx(View,{pointerEvents:"none",testID:"fab-pressed",style:[C.pressedTint,{backgroundColor:pressedTintFor(S,i),borderRadius:R.diameter/2,...smoothCorners}]}):null,z,V?_jsx(Text,{style:[C.label,{color:F,fontSize:R.fontSize,fontWeight:S.typography.fontWeight.semibold,marginLeft:S.spacing.sm},h],numberOfLines:1,children:s}):null]})})})});FloatingActionButton.displayName="FloatingActionButton";const buildStyles=e=>StyleSheet.create({base:{flexDirection:"row",alignItems:"center",justifyContent:"center",overflow:"hidden"},pressedTint:{position:"absolute",top:0,right:0,bottom:0,left:0},label:{includeFontPadding:!1}}),FloatingActionButtonGroup=e=>{const{primaryIcon:t,primaryActiveIcon:o,actions:n,open:s,defaultOpen:r=!1,onOpenChange:i,position:a="bottomRight",bottomOffset:l,size:c="md",accessibilityLabel:u="Quick actions",haptic:d,hideOnScroll:m=!1,isScrolling:g=!1,containerStyle:p,secondaryActionStyle:b,labelPillStyle:f,labelStyle:h,testID:y}=e,S=useTheme(),x=useSafeAreaInsets(),R=sizeMap[c],C=useMemo(()=>buildGroupStyles(S),[S]),j=S.components.floatingActionButton,v=j?.edgeOffset??24,w=j?.bottomOffset??24,A=j?.secondaryGap??16,_=j?.staggerMs??50,E="boolean"==typeof s,[I,P]=useState(r),k=E?s:I,z=useRef(createAnimatedValue(0)).current;useEffect(()=>{if(!m)return void setNativeValue(z,0);const e=Animated.timing(z,{toValue:g?1:0,duration:S.motion.duration.normal,easing:Easing.bezier(...S.motion.easing.standard),useNativeDriver:!0});return e.start(),()=>e.stop()},[m,g,z,S.motion.duration.normal,S.motion.easing.standard]);const V=m&&g;useEffect(()=>{V&&k&&(E||P(!1),i?.(!1))},[V,k,E,i]);const T=z.interpolate({inputRange:[0,1],outputRange:[0,R.diameter+(l??w)+x.bottom+v]}),F=z.interpolate({inputRange:[0,1],outputRange:[1,0]}),D=useRef(createAnimatedValue(k?1:0)).current,H=useRef([]),[B,L]=useState(0);useEffect(()=>{const e=H.current;if(e.length!==n.length){if(e.length<n.length){const t=e.slice();for(let o=e.length;o<n.length;o+=1)t.push(new Animated.Value(k?1:0));H.current=t}else H.current=e.slice(0,n.length);L(e=>e+1)}},[n.length]),useEffect(()=>{const e=Animated.timing(D,{toValue:k?1:0,duration:S.motion.duration.normal,easing:Easing.bezier(...S.motion.easing.standard),useNativeDriver:!0});e.start();const t=H.current.map(e=>Animated.timing(e,{toValue:k?1:0,duration:S.motion.duration.normal,easing:Easing.bezier(...S.motion.easing.standard),useNativeDriver:!0})),o=k?t:[...t].reverse(),n=Animated.stagger(_,o);return n.start(),()=>{e.stop(),n.stop()}},[k,D,S.motion.duration.normal,S.motion.easing.standard,n.length,B,_]);const N=useCallback(e=>{const t=resolveHaptic(d,"impactLight");t&&triggerHaptic(t),E||P(e),i?.(e)},[E,i,d]),O=useCallback(()=>{N(!k)},[k,N]),M=useCallback(e=>{!1!==d&&triggerHaptic("selection"),e.onPress(),E||P(!1),i?.(!1)},[E,i,d]),$=useCallback(()=>{k&&N(!1)},[k,N]),G=useMemo(()=>{const e=(l??w)+x.bottom;switch(a){case"bottomLeft":return{position:"absolute",bottom:e,left:v,alignItems:"flex-start"};case"bottomCenter":return{position:"absolute",bottom:e,alignSelf:"center",alignItems:"center"};default:return{position:"absolute",bottom:e,right:v,alignItems:"flex-end"}}},[a,l,x.bottom,w,v]),slotOffset=e=>-(R.diameter+A)*(e+1),W=useMemo(()=>{switch(a){case"bottomLeft":return{left:0,right:0,justifyContent:"flex-start"};case"bottomCenter":return{left:0,right:0,justifyContent:"center"};default:return{left:0,right:0,justifyContent:"flex-end"}}},[a]),Y=.78*R.diameter,Q=useMemo(()=>{const e=Y+S.spacing.sm;switch(a){case"bottomLeft":return{left:e,alignItems:"flex-start"};case"bottomCenter":return{right:R.diameter/2+Y/2+S.spacing.sm,alignItems:"flex-end"};default:return{right:e,alignItems:"flex-end"}}},[a,Y,R.diameter,S.spacing.sm]),U=D.interpolate({inputRange:[0,1],outputRange:[0,.4]}),q=D.interpolate({inputRange:[0,1],outputRange:["0deg","45deg"]});return _jsxs(_Fragment,{children:[k?_jsx(Animated.View,{pointerEvents:k?"auto":"none",style:[StyleSheet.absoluteFill,{backgroundColor:S.colors.background.overlay,opacity:U}],children:_jsx(Pressable,{style:StyleSheet.absoluteFill,onPress:$,accessibilityElementsHidden:!0,importantForAccessibility:"no",testID:y?`${y}-backdrop`:void 0})}):null,_jsxs(Animated.View,{pointerEvents:V?"none":"box-none",style:[G,{transform:[{translateY:T}],opacity:F},p],accessibilityRole:"menu",testID:y,children:[n.map((e,t)=>{const o=H.current[t];if(!o)return null;const n=o.interpolate({inputRange:[0,1],outputRange:[0,slotOffset(t)]}),s=o.interpolate({inputRange:[0,1],outputRange:[.6,1]}),r=toneBackground(S,e.tone??"primary"),i=toneForeground(S,e.tone??"primary"),a=e.label?_jsx(View,{pointerEvents:"none",style:[C.labelSlot,Q],testID:y?`${y}-label-${e.key}`:void 0,children:_jsx(View,{style:[C.labelPill,S.shadows.sm,{backgroundColor:S.colors.background.elevated,paddingHorizontal:S.spacing.sm,paddingVertical:S.spacing.xs,borderRadius:S.radius.sm,...smoothCorners},f],children:_jsx(Text,{style:[{color:S.colors.text.primary,fontSize:S.typography.fontSize.sm,fontWeight:S.typography.fontWeight.medium},h],numberOfLines:1,children:e.label})})}):null;return _jsxs(Animated.View,{pointerEvents:k?"auto":"none",style:[C.secondaryRow,W,{position:"absolute",bottom:0,opacity:o,transform:[{translateY:n},{scale:s}]}],children:[_jsx(Pressable,{onPress:()=>M(e),accessibilityRole:"menuitem",accessibilityLabel:e.accessibilityLabel,style:[C.fabBase,S.shadows.md,{width:Y,height:Y,borderRadius:Y/2,...smoothCorners,backgroundColor:r},b],testID:y?`${y}-action-${e.key}`:void 0,children:({pressed:t})=>_jsxs(_Fragment,{children:[t?_jsx(View,{pointerEvents:"none",testID:"fab-pressed",style:[C.pressedTint,{backgroundColor:pressedTintFor(S,e.tone??"primary"),borderRadius:Y/2,...smoothCorners}]}):null,React.isValidElement(e.icon)?e.icon:_jsx(Text,{style:{color:i},children:String(e.icon??"")})]})}),a]},e.key)}),_jsx(Pressable,{onPress:O,accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{expanded:k},style:[C.fabBase,S.shadows.lg,{width:R.diameter,height:R.diameter,borderRadius:R.diameter/2,...smoothCorners,backgroundColor:S.colors.primary}],testID:y?`${y}-primary`:void 0,children:({pressed:e})=>_jsxs(_Fragment,{children:[e?_jsx(View,{pointerEvents:"none",testID:"fab-pressed",style:[C.pressedTint,{backgroundColor:ACCENT_PRESSED_TINT,borderRadius:R.diameter/2,...smoothCorners}]}):null,_jsx(Animated.View,{style:o?void 0:{transform:[{rotate:q}]},children:k&&o?o:t})]})})]})]})},buildGroupStyles=e=>StyleSheet.create({fabBase:{flexDirection:"row",alignItems:"center",justifyContent:"center",overflow:"hidden"},pressedTint:{position:"absolute",top:0,right:0,bottom:0,left:0},secondaryRow:{flexDirection:"row",alignItems:"center"},labelSlot:{position:"absolute",top:0,bottom:0,justifyContent:"center"},labelPill:{alignSelf:"auto"}});export{FloatingActionButton,FloatingActionButtonGroup};export default FloatingActionButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton.js";
|
|
1
|
+
"use strict";export{default,FloatingActionButton,FloatingActionButtonGroup}from"./FloatingActionButton.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Logger
|
|
1
|
+
"use strict";import{Logger,VersionCheck}from"@webority/mobile-core";import React,{useCallback,useState}from"react";import{Dialog}from"../Dialog/index.js";import{jsx as _jsx}from"react/jsx-runtime";export const ForceUpdateDialog=({visible:e,onClose:t,mandatory:a=!1,updateUrl:o,title:l="Update available",message:s="A new version of the app is available. Please update to continue using the latest features and security improvements.",updateLabel:r="Update now",laterLabel:i="Later",containerStyle:n,titleStyle:c,messageStyle:p,testID:m})=>{const[u,d]=useState(!1),g=useCallback(()=>{d(!0),(async()=>{try{await VersionCheck.openUpdateUrl(o??null)}catch(e){Logger.error("[ForceUpdateDialog] Failed to open store URL",e)}finally{d(!1)}})()},[o]),b=useCallback(()=>{a||t?.()},[a,t]);return _jsx(Dialog,{visible:e,onClose:b,title:l,message:s,variant:"info",actions:a?[{label:r,onPress:g,tone:"primary",loading:u}]:[{label:i,onPress:b,tone:"neutral"},{label:r,onPress:g,tone:"primary",loading:u}],dismissOnAction:!1,containerStyle:n,titleStyle:c,messageStyle:p,testID:m})};export default ForceUpdateDialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,ForceUpdateDialog}from"./ForceUpdateDialog.js";
|
|
1
|
+
"use strict";export{default,ForceUpdateDialog}from"./ForceUpdateDialog.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
"use strict";import React,{forwardRef,useEffect,useMemo,useRef}from"react";import{Animated,StyleSheet,Text,View}from"react-native";import{useOptionalFormContext}from"../../form/FormContext.js";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{fieldTextAsString,hasFieldText,RequiredMark}from"../FieldBase/index.js";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const FormField=forwardRef((e,t)=>{const{label:r,help:i,helperText:l,error:n,required:o=!1,name:s,children:a,layout:c="stacked",helperLines:u,labelStyle:d,helperStyle:m,errorStyle:x,containerStyle:f,inputContainerStyle:p,accessibilityLabel:h,testID:y}=e,F=useTheme(),S=useMemo(()=>buildStyles(F),[F]),b=useOptionalFormContext(),g=null!=s&&null!=b,T=g?b.getFieldProps(s):null,j="function"==typeof a,w=g?j?T?.error:void 0:n,R=fieldTextAsString(g?T?.error:n),k=useRef(createAnimatedValue(w?1:0)).current;useEffect(()=>{const e=Animated.timing(k,{toValue:w?1:0,duration:F.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[w,k,F.motion.duration.fast]);const v=useMemo(()=>{if(h)return h;const e=fieldTextAsString(r);return e?R?`${e}, error: ${R}`:e:void 0},[h,r,R]),I=hasFieldText(r),V=_jsxs(Text,{style:[S.label,"inline"!==c||hasFieldText(i)?null:S.labelInline,hasFieldText(i)?S.labelShrink:null,d],children:[r,o?_jsx(RequiredMark,{}):null]}),_=I?hasFieldText(i)?_jsxs(View,{style:[S.labelRow,"inline"===c?S.labelInline:null],children:[V,_jsx(View,{style:[S.help,{marginLeft:F.spacing.xs}],children:i})]}):V:null,A="inline"===c?S.inputInline:S.inputStacked,L=hasFieldText(w),C=!L&&hasFieldText(l),z=(()=>{if(j)return T?a(T):null;if(g&&T&&React.isValidElement(a)){const e=a,t=e.props.onChangeText,r=e.props.onBlur,i=e.props.onFocus;return React.cloneElement(e,{value:T.value,onChangeText:e=>{T.onChangeText(e),t?.(e)},onBlur:e=>{T.onBlur(),r?.(e)},onFocus:e=>{T.onFocus(),i?.(e)},error:T.error,ref:e=>b.registerField(s,e??null)})}return a})(),D=o&&!I&&React.isValidElement(z)?React.cloneElement(z,{required:!0}):z;return _jsxs(View,{ref:t,style:["inline"===c?S.rootInline:S.rootStacked,f],accessibilityLabel:v,accessibilityHint:R||void 0,testID:y,children:[_,_jsx(View,{style:[A,p],children:D}),C?_jsx(Text,{style:[S.helper,m],numberOfLines:u||void 0,children:l}):null,L?_jsx(Animated.Text,{style:[S.error,{opacity:k},x],numberOfLines:u||void 0,accessibilityLiveRegion:"polite",children:w}):null]})});FormField.displayName="FormField";const buildStyles=e=>StyleSheet.create({rootStacked:{flexDirection:"column",gap:e.spacing.xs},rootInline:{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:e.spacing.xs},label:{fontSize:e.typography.fontSize.sm,...fontFor(e,"medium"),color:e.colors.text.secondary},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},labelInline:{width:e.components.formField?.inlineLabelWidth??"35%"},inputStacked:{width:"100%"},inputInline:{flex:1,minWidth:0},helper:{fontSize:e.typography.fontSize.sm,color:e.colors.text.tertiary},error:{fontSize:e.typography.fontSize.sm,color:e.colors.error}});export{FormField};export default FormField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{default,FormField}from"./FormField.js";
|
|
1
|
+
"use strict";export{default,FormField}from"./FormField.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef
|
|
1
|
+
"use strict";import{forwardRef}from"react";import{StyleSheet,View}from"react-native";import{useTheme}from"../../theme/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{jsx as _jsx}from"react/jsx-runtime";const SIZE_MAP={sm:{diameter:32,icon:16},md:{diameter:40,icon:20},lg:{diameter:56,icon:28}},FILL_OPACITY=.14,inkFor=(e,r)=>{switch(r){case"secondary":return e.colors.secondary;case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;case"info":return e.colors.info;case"neutral":return e.colors.text.secondary;default:return e.colors.primary}},IconBadge=forwardRef((e,r)=>{const{icon:o,iconVariant:t,size:s="md",tone:i="primary",accessibilityLabel:c,style:n,testID:a}=e,l=useTheme(),d=SIZE_MAP[s],m=inkFor(l,i),u="neutral"===i?l.colors.background.tertiary:tintOf(m,.14,l.colors.background.tertiary),y={color:m,size:d.icon,disabled:!1},f=void 0!==c;return _jsx(View,{ref:r,testID:a,accessible:f,accessibilityRole:f?"image":void 0,accessibilityLabel:c,importantForAccessibility:f?"yes":"no",style:[styles.base,{width:d.diameter,height:d.diameter,borderRadius:d.diameter/2,...smoothCorners,backgroundColor:u},n],children:renderSlotIcon(o,y,t)})});IconBadge.displayName="IconBadge";const styles=StyleSheet.create({base:{alignItems:"center",justifyContent:"center"}});export{IconBadge};export default IconBadge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{IconBadge}from"./IconBadge.js";
|
|
1
|
+
"use strict";export{IconBadge}from"./IconBadge.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef
|
|
1
|
+
"use strict";import{forwardRef}from"react";import{Animated,Pressable,StyleSheet}from"react-native";import{usePressAnimation}from"../../hooks/usePressAnimation.js";import{useTheme}from"../../theme/index.js";import{resolveHaptic,triggerHaptic}from"../../utils/index.js";import{tintOf}from"../../utils/color.js";import{smoothCorners}from"../../utils/corners.js";import{renderSlotIcon}from"../AppIcon/slotIcon.js";import{Spinner}from"../Spinner/index.js";import{jsx as _jsx}from"react/jsx-runtime";const GLASS_RIM_WIDTH=1,SOFT_FILL_OPACITY=.14,SIZE_MAP={sm:{diameter:32,icon:16},md:{diameter:40,icon:20},lg:{diameter:48,icon:24}},toneFor=(e,r)=>{switch(r){case"secondary":return{base:e.colors.secondary,on:e.colors.onSecondary,fg:e.colors.secondary};case"success":return{base:e.colors.success,on:e.colors.onSuccess,fg:e.colors.success};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,fg:e.colors.warning};case"error":return{base:e.colors.error,on:e.colors.onError,fg:e.colors.error};case"neutral":return{base:e.colors.background.tertiary,on:e.colors.text.primary,fg:e.colors.text.primary};default:return{base:e.colors.primary,on:e.colors.onPrimary,fg:e.colors.primary}}},IconButton=forwardRef((e,r)=>{const{icon:o,iconVariant:s,onPress:t,accessibilityLabel:n,tone:i="primary",variant:c="solid",size:a="md",shape:l="circle",active:d=!1,disabled:m=!1,loading:u=!1,haptic:b,style:p,testID:f}=e,y=useTheme(),g=SIZE_MAP[a],I=m||u,{scale:h,pressIn:S,pressOut:x}=usePressAnimation({scaleTo:.92,enabled:!I}),{base:j,on:P,fg:A}=toneFor(y,i),_=d?"solid":c;let w="transparent",C="transparent",O=0,T=I?y.colors.text.disabled:A;"solid"===_?(w=I?y.colors.surface.disabled:j,T=I?y.colors.text.disabled:P):"soft"===_?w=I?y.colors.surface.disabled:tintOf(j,.14,y.colors.background.secondary):"outline"===_?(C=I?y.colors.border.primary:j,O=y.colors.border.width):"glass"===_&&(w=y.colors.glass.fill,C=y.colors.glass.border,O=1,T=I?y.colors.text.disabled:y.colors.glass.on);const v={color:T,size:g.icon,disabled:I},B="circle"===l?g.diameter/2:y.radius.md;return _jsx(Pressable,{ref:r,onPress:e=>{if(I)return;const r=resolveHaptic(b,"selection");r&&triggerHaptic(r),t?.(e)},onPressIn:S,onPressOut:x,disabled:I,accessibilityRole:"button",accessibilityLabel:n,accessibilityState:{disabled:I,selected:d},hitSlop:6,testID:f,style:({pressed:e})=>[styles.base,{width:g.diameter,height:g.diameter,borderRadius:B,...smoothCorners,backgroundColor:w,borderColor:C,borderWidth:O,opacity:e&&"solid"!==_?.7:1},p],children:_jsx(Animated.View,{style:[styles.content,{transform:[{scale:h}]}],children:u?_jsx(Spinner,{size:"sm",color:T}):renderSlotIcon(o,v,s)})})});IconButton.displayName="IconButton";const styles=StyleSheet.create({base:{alignItems:"center",justifyContent:"center"},content:{alignItems:"center",justifyContent:"center"}});export{IconButton};export default IconButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{IconButton}from"./IconButton.js";
|
|
1
|
+
"use strict";export{IconButton}from"./IconButton.js";
|