@webority/mobile-ui 0.88.1 → 0.90.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/README.md +2 -0
- package/lib/commonjs/canvasKit/index.js +1 -1
- package/lib/commonjs/components/Accordion/Accordion.js +1 -1
- package/lib/commonjs/components/AmountSlider/AmountSlider.js +1 -1
- package/lib/commonjs/components/AnimatePresence/AnimatePresence.js +1 -1
- package/lib/commonjs/components/AppBar/AppBar.js +1 -1
- package/lib/commonjs/components/AppIcon/AppIcon.js +1 -1
- package/lib/commonjs/components/AsyncBlock/AsyncBlock.js +1 -1
- package/lib/commonjs/components/AuthedImage/AuthedImage.js +1 -1
- package/lib/commonjs/components/Autocomplete/Autocomplete.js +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +1 -1
- package/lib/commonjs/components/Badge/Badge.js +1 -1
- package/lib/commonjs/components/Banner/Banner.js +1 -1
- package/lib/commonjs/components/BarChart/BarChart.js +1 -1
- package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -1
- package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -1
- package/lib/commonjs/components/Box/Box.js +1 -1
- package/lib/commonjs/components/Button/Button.js +1 -1
- package/lib/commonjs/components/Calendar/Calendar.js +1 -1
- package/lib/commonjs/components/Calendar/CalendarDay.js +1 -1
- package/lib/commonjs/components/Calendar/calendarStyles.js +1 -1
- package/lib/commonjs/components/Card/Card.js +1 -1
- package/lib/commonjs/components/Carousel/Carousel.js +1 -1
- package/lib/commonjs/components/Checkbox/Checkbox.js +1 -1
- package/lib/commonjs/components/Chip/Chip.js +1 -1
- package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -1
- package/lib/commonjs/components/Composer/Composer.js +1 -1
- package/lib/commonjs/components/Confetti/Confetti.js +1 -1
- package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1
- package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -1
- package/lib/commonjs/components/DateSeparator/DateSeparator.js +1 -1
- package/lib/commonjs/components/Descriptions/Descriptions.js +1 -1
- package/lib/commonjs/components/Dialog/Dialog.js +1 -1
- package/lib/commonjs/components/Divider/Divider.js +1 -1
- package/lib/commonjs/components/Drawer/Drawer.js +1 -1
- package/lib/commonjs/components/EmptyState/EmptyState.js +1 -1
- package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +1 -1
- package/lib/commonjs/components/FieldBase/Chevron.js +1 -1
- package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -1
- package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
- package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -1
- package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
- package/lib/commonjs/components/FileViewer/FileViewer.js +1 -1
- package/lib/commonjs/components/FilterChipRow/FilterChipRow.js +1 -1
- package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/lib/commonjs/components/FormField/FormField.js +1 -1
- package/lib/commonjs/components/IconBadge/IconBadge.js +1 -1
- package/lib/commonjs/components/IconButton/IconButton.js +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -1
- package/lib/commonjs/components/Input/Input.js +1 -1
- package/lib/commonjs/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
- package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
- package/lib/commonjs/components/ListItem/ListItem.js +1 -1
- package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.js +1 -1
- package/lib/commonjs/components/Markdown/Markdown.js +1 -1
- package/lib/commonjs/components/Menu/MenuSurface.js +1 -1
- package/lib/commonjs/components/MessageBubble/MessageBubble.js +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +1 -1
- package/lib/commonjs/components/Modal/Modal.js +1 -1
- package/lib/commonjs/components/Notation/Notation.js +1 -1
- package/lib/commonjs/components/NumberInput/NumberInput.js +1 -1
- package/lib/commonjs/components/OTPInput/OTPInput.js +1 -1
- package/lib/commonjs/components/OnboardingPager/OnboardingPager.js +1 -1
- package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -1
- package/lib/commonjs/components/PaymentResult/PaymentResult.js +1 -1
- package/lib/commonjs/components/PermissionPrompt/PermissionPrompt.js +1 -1
- package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -1
- package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -1
- package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -1
- package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -1
- package/lib/commonjs/components/ProgressRing/ProgressRing.js +1 -1
- package/lib/commonjs/components/Radio/Radio.js +1 -1
- package/lib/commonjs/components/Radio/RadioDot.js +1 -1
- package/lib/commonjs/components/Rating/Rating.js +1 -1
- package/lib/commonjs/components/Repeater/Repeater.js +1 -1
- package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -1
- package/lib/commonjs/components/ScannerOverlay/ScannerOverlay.js +1 -1
- package/lib/commonjs/components/Screen/Screen.js +1 -1
- package/lib/commonjs/components/SearchBar/SearchBar.js +1 -1
- package/lib/commonjs/components/SearchBar/SearchPanel.js +1 -1
- package/lib/commonjs/components/SectionHeader/SectionHeader.js +1 -1
- package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/commonjs/components/Select/Select.js +1 -1
- package/lib/commonjs/components/SignaturePad/SignaturePad.js +1 -1
- package/lib/commonjs/components/Skeleton/Skeleton.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonContent.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/Slider/valueText.js +1 -1
- package/lib/commonjs/components/SliderField/SliderField.js +1 -1
- package/lib/commonjs/components/Sparkline/Sparkline.js +1 -1
- package/lib/commonjs/components/Spinner/Spinner.js +1 -1
- package/lib/commonjs/components/StatTile/StatTile.js +1 -1
- package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -1
- package/lib/commonjs/components/Stepper/Stepper.js +1 -1
- package/lib/commonjs/components/Swipeable/Swipeable.js +1 -1
- package/lib/commonjs/components/Switch/Switch.js +1 -1
- package/lib/commonjs/components/Tabs/Tabs.js +1 -1
- package/lib/commonjs/components/TagInput/TagInput.js +1 -1
- package/lib/commonjs/components/Text/Text.js +1 -1
- package/lib/commonjs/components/TimePicker/TimePicker.js +1 -1
- package/lib/commonjs/components/Timeline/Timeline.js +1 -1
- package/lib/commonjs/components/Toast/Toast.js +1 -1
- package/lib/commonjs/components/Toast/ToastProvider.js +1 -1
- package/lib/commonjs/components/Tooltip/RichTooltipBody.js +1 -1
- package/lib/commonjs/components/Tooltip/Tooltip.js +1 -1
- package/lib/commonjs/components/Tour/Tour.js +1 -1
- package/lib/commonjs/components/TypingIndicator/TypingIndicator.js +1 -1
- package/lib/commonjs/components/WheelPicker/Wheel.js +1 -1
- package/lib/commonjs/components/WheelPicker/WheelPicker.js +1 -1
- package/lib/commonjs/hooks/useDragToDismiss.js +1 -1
- package/lib/commonjs/hooks/usePressAnimation.js +1 -1
- package/lib/commonjs/hooks/useRefreshControl.js +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/initUI.js +1 -1
- package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
- package/lib/commonjs/theme/ThemeContext.js +1 -1
- package/lib/commonjs/theme/componentSizes.js +1 -1
- package/lib/commonjs/theme/index.js +1 -1
- package/lib/commonjs/theme/merge.js +1 -1
- package/lib/commonjs/theme/scale.js +1 -1
- package/lib/commonjs/theme/textStyle.js +1 -1
- package/lib/commonjs/theme/tokens.generated.js +1 -1
- package/lib/commonjs/theme/tokens.js +1 -1
- package/lib/commonjs/utils/color.js +1 -1
- package/lib/module/canvasKit/index.js +1 -1
- package/lib/module/components/Accordion/Accordion.js +1 -1
- package/lib/module/components/AmountSlider/AmountSlider.js +1 -1
- package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -1
- package/lib/module/components/AppBar/AppBar.js +1 -1
- package/lib/module/components/AppIcon/AppIcon.js +1 -1
- package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -1
- package/lib/module/components/AuthedImage/AuthedImage.js +1 -1
- package/lib/module/components/Autocomplete/Autocomplete.js +1 -1
- package/lib/module/components/Avatar/Avatar.js +1 -1
- package/lib/module/components/Badge/Badge.js +1 -1
- package/lib/module/components/Banner/Banner.js +1 -1
- package/lib/module/components/BarChart/BarChart.js +1 -1
- package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -1
- package/lib/module/components/BottomSheet/BottomSheet.js +1 -1
- package/lib/module/components/Box/Box.js +1 -1
- package/lib/module/components/Button/Button.js +1 -1
- package/lib/module/components/Calendar/Calendar.js +1 -1
- package/lib/module/components/Calendar/CalendarDay.js +1 -1
- package/lib/module/components/Calendar/calendarStyles.js +1 -1
- package/lib/module/components/Card/Card.js +1 -1
- package/lib/module/components/Carousel/Carousel.js +1 -1
- package/lib/module/components/Checkbox/Checkbox.js +1 -1
- package/lib/module/components/Chip/Chip.js +1 -1
- package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -1
- package/lib/module/components/Composer/Composer.js +1 -1
- package/lib/module/components/Confetti/Confetti.js +1 -1
- package/lib/module/components/DatePicker/DatePicker.js +1 -1
- package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -1
- package/lib/module/components/DateSeparator/DateSeparator.js +1 -1
- package/lib/module/components/Descriptions/Descriptions.js +1 -1
- package/lib/module/components/Dialog/Dialog.js +1 -1
- package/lib/module/components/Divider/Divider.js +1 -1
- package/lib/module/components/Drawer/Drawer.js +1 -1
- package/lib/module/components/EmptyState/EmptyState.js +1 -1
- package/lib/module/components/ErrorBoundary/ErrorBoundary.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/useFloatingLabel.js +1 -1
- package/lib/module/components/FilePicker/FilePicker.js +1 -1
- package/lib/module/components/FileViewer/FileViewer.js +1 -1
- package/lib/module/components/FilterChipRow/FilterChipRow.js +1 -1
- package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/lib/module/components/FormField/FormField.js +1 -1
- package/lib/module/components/IconBadge/IconBadge.js +1 -1
- package/lib/module/components/IconButton/IconButton.js +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -1
- package/lib/module/components/InlineSelect/InlineSelect.js +1 -1
- package/lib/module/components/Input/Input.js +1 -1
- package/lib/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -1
- package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -1
- package/lib/module/components/ListItem/ListItem.js +1 -1
- package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -1
- package/lib/module/components/Markdown/Markdown.js +1 -1
- package/lib/module/components/Menu/MenuSurface.js +1 -1
- package/lib/module/components/MessageBubble/MessageBubble.js +1 -1
- package/lib/module/components/MessageList/MessageList.js +1 -1
- package/lib/module/components/Modal/Modal.js +1 -1
- package/lib/module/components/Notation/Notation.js +1 -1
- package/lib/module/components/NumberInput/NumberInput.js +1 -1
- package/lib/module/components/OTPInput/OTPInput.js +1 -1
- package/lib/module/components/OnboardingPager/OnboardingPager.js +1 -1
- package/lib/module/components/OptionSheet/OptionSheet.js +1 -1
- package/lib/module/components/PaymentResult/PaymentResult.js +1 -1
- package/lib/module/components/PermissionPrompt/PermissionPrompt.js +1 -1
- package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -1
- package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -1
- package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
- package/lib/module/components/ProgressBar/ProgressBar.js +1 -1
- package/lib/module/components/ProgressRing/ProgressRing.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/Rating/Rating.js +1 -1
- package/lib/module/components/Repeater/Repeater.js +1 -1
- package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -1
- package/lib/module/components/ScannerOverlay/ScannerOverlay.js +1 -1
- package/lib/module/components/Screen/Screen.js +1 -1
- package/lib/module/components/SearchBar/SearchBar.js +1 -1
- package/lib/module/components/SearchBar/SearchPanel.js +1 -1
- package/lib/module/components/SectionHeader/SectionHeader.js +1 -1
- package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/module/components/Select/Select.js +1 -1
- package/lib/module/components/SignaturePad/SignaturePad.js +1 -1
- package/lib/module/components/Skeleton/Skeleton.js +1 -1
- package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -1
- package/lib/module/components/Slider/Slider.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/Sparkline/Sparkline.js +1 -1
- package/lib/module/components/Spinner/Spinner.js +1 -1
- package/lib/module/components/StatTile/StatTile.js +1 -1
- package/lib/module/components/StatusBadge/StatusBadge.js +1 -1
- package/lib/module/components/Stepper/Stepper.js +1 -1
- package/lib/module/components/Swipeable/Swipeable.js +1 -1
- package/lib/module/components/Switch/Switch.js +1 -1
- package/lib/module/components/Tabs/Tabs.js +1 -1
- package/lib/module/components/TagInput/TagInput.js +1 -1
- package/lib/module/components/Text/Text.js +1 -1
- package/lib/module/components/TimePicker/TimePicker.js +1 -1
- package/lib/module/components/Timeline/Timeline.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/Tooltip/RichTooltipBody.js +1 -1
- package/lib/module/components/Tooltip/Tooltip.js +1 -1
- package/lib/module/components/Tour/Tour.js +1 -1
- package/lib/module/components/TypingIndicator/TypingIndicator.js +1 -1
- package/lib/module/components/WheelPicker/Wheel.js +1 -1
- package/lib/module/components/WheelPicker/WheelPicker.js +1 -1
- package/lib/module/hooks/useDragToDismiss.js +1 -1
- package/lib/module/hooks/usePressAnimation.js +1 -1
- package/lib/module/hooks/useRefreshControl.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/theme/ThemeContext.js +1 -1
- package/lib/module/theme/componentSizes.js +1 -1
- package/lib/module/theme/index.js +1 -1
- package/lib/module/theme/merge.js +1 -1
- package/lib/module/theme/scale.js +1 -1
- package/lib/module/theme/textStyle.js +1 -1
- package/lib/module/theme/tokens.generated.js +1 -1
- package/lib/module/theme/tokens.js +1 -1
- package/lib/module/utils/color.js +1 -1
- package/lib/typescript/commonjs/components/AmountSlider/AmountSlider.d.ts +1 -1
- package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.d.ts +1 -1
- package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +4 -4
- package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +1 -1
- package/lib/typescript/commonjs/components/AppIcon/defaultIcons.d.ts +1 -1
- package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +4 -4
- package/lib/typescript/commonjs/components/Badge/Badge.d.ts +1 -1
- package/lib/typescript/commonjs/components/Banner/Banner.d.ts +1 -1
- package/lib/typescript/commonjs/components/BarChart/BarChart.d.ts +1 -1
- package/lib/typescript/commonjs/components/BottomNavigation/BottomNavigation.d.ts +8 -10
- package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +2 -2
- package/lib/typescript/commonjs/components/Box/Box.d.ts +21 -21
- package/lib/typescript/commonjs/components/Button/Button.d.ts +3 -3
- package/lib/typescript/commonjs/components/Calendar/Calendar.d.ts +1 -1
- package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +9 -9
- package/lib/typescript/commonjs/components/Card/Card.d.ts +7 -6
- package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +1 -1
- package/lib/typescript/commonjs/components/Chip/Chip.d.ts +1 -1
- package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +1 -1
- package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +2 -2
- package/lib/typescript/commonjs/components/FieldBase/Chevron.d.ts +1 -1
- package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +32 -33
- package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +2 -3
- package/lib/typescript/commonjs/components/FloatingActionButton/FloatingActionButton.d.ts +2 -2
- package/lib/typescript/commonjs/components/FormField/FormField.d.ts +2 -3
- package/lib/typescript/commonjs/components/IconBadge/IconBadge.d.ts +1 -1
- package/lib/typescript/commonjs/components/IconButton/IconButton.d.ts +2 -2
- package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +2 -3
- package/lib/typescript/commonjs/components/Input/Input.d.ts +2 -2
- package/lib/typescript/commonjs/components/Notation/Notation.d.ts +1 -1
- package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.d.ts +2 -2
- package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.d.ts +2 -3
- package/lib/typescript/commonjs/components/ProfileCompletion/ProfileCompletion.d.ts +3 -4
- package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +5 -6
- package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +1 -1
- package/lib/typescript/commonjs/components/ProgressRing/ProgressRing.d.ts +6 -7
- package/lib/typescript/commonjs/components/Radio/Radio.d.ts +1 -1
- package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +1 -1
- package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +3 -4
- package/lib/typescript/commonjs/components/Select/Select.d.ts +5 -5
- package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +2 -2
- package/lib/typescript/commonjs/components/SlideToConfirm/SlideToConfirm.d.ts +1 -1
- package/lib/typescript/commonjs/components/Slider/Slider.d.ts +6 -7
- package/lib/typescript/commonjs/components/Slider/valueText.d.ts +1 -1
- package/lib/typescript/commonjs/components/Sparkline/Sparkline.d.ts +1 -1
- package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.d.ts +2 -3
- package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +2 -2
- package/lib/typescript/commonjs/components/Switch/Switch.d.ts +1 -1
- package/lib/typescript/commonjs/components/Tabs/Tabs.d.ts +6 -7
- package/lib/typescript/commonjs/components/Text/Text.d.ts +6 -7
- package/lib/typescript/commonjs/components/Timeline/Timeline.d.ts +1 -1
- package/lib/typescript/commonjs/components/Toast/Toast.d.ts +1 -1
- package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +2 -2
- package/lib/typescript/commonjs/components/Tour/Tour.d.ts +2 -2
- package/lib/typescript/commonjs/hooks/usePresenceMotion.d.ts +2 -2
- package/lib/typescript/commonjs/index.d.ts +2 -2
- package/lib/typescript/commonjs/initUI.d.ts +3 -3
- package/lib/typescript/commonjs/theme/ThemeContext.d.ts +5 -3
- package/lib/typescript/commonjs/theme/componentSizes.d.ts +40 -18
- package/lib/typescript/commonjs/theme/index.d.ts +15 -17
- package/lib/typescript/commonjs/theme/merge.d.ts +15 -2
- package/lib/typescript/commonjs/theme/scale.d.ts +6 -4
- package/lib/typescript/commonjs/theme/textStyle.d.ts +4 -17
- package/lib/typescript/commonjs/theme/tokens.generated.d.ts +239 -92
- package/lib/typescript/commonjs/theme/types.d.ts +104 -347
- package/lib/typescript/commonjs/utils/color.d.ts +6 -2
- package/lib/typescript/commonjs/utils/shadows.d.ts +2 -2
- package/lib/typescript/module/components/AmountSlider/AmountSlider.d.ts +1 -1
- package/lib/typescript/module/components/AnimatePresence/AnimatePresence.d.ts +1 -1
- package/lib/typescript/module/components/AppBar/AppBar.d.ts +4 -4
- package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +1 -1
- package/lib/typescript/module/components/AppIcon/defaultIcons.d.ts +1 -1
- package/lib/typescript/module/components/Avatar/Avatar.d.ts +4 -4
- package/lib/typescript/module/components/Badge/Badge.d.ts +1 -1
- package/lib/typescript/module/components/Banner/Banner.d.ts +1 -1
- package/lib/typescript/module/components/BarChart/BarChart.d.ts +1 -1
- package/lib/typescript/module/components/BottomNavigation/BottomNavigation.d.ts +8 -10
- package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +2 -2
- package/lib/typescript/module/components/Box/Box.d.ts +21 -21
- package/lib/typescript/module/components/Button/Button.d.ts +3 -3
- package/lib/typescript/module/components/Calendar/Calendar.d.ts +1 -1
- package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +9 -9
- package/lib/typescript/module/components/Card/Card.d.ts +7 -6
- package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +1 -1
- package/lib/typescript/module/components/Chip/Chip.d.ts +1 -1
- package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +1 -1
- package/lib/typescript/module/components/Dialog/Dialog.d.ts +2 -2
- package/lib/typescript/module/components/FieldBase/Chevron.d.ts +1 -1
- package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +32 -33
- package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +2 -3
- package/lib/typescript/module/components/FloatingActionButton/FloatingActionButton.d.ts +2 -2
- package/lib/typescript/module/components/FormField/FormField.d.ts +2 -3
- package/lib/typescript/module/components/IconBadge/IconBadge.d.ts +1 -1
- package/lib/typescript/module/components/IconButton/IconButton.d.ts +2 -2
- package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +2 -3
- package/lib/typescript/module/components/Input/Input.d.ts +2 -2
- package/lib/typescript/module/components/Notation/Notation.d.ts +1 -1
- package/lib/typescript/module/components/OptionSheet/OptionSheet.d.ts +2 -2
- package/lib/typescript/module/components/PickerTrigger/PickerTrigger.d.ts +2 -3
- package/lib/typescript/module/components/ProfileCompletion/ProfileCompletion.d.ts +3 -4
- package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +5 -6
- package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +1 -1
- package/lib/typescript/module/components/ProgressRing/ProgressRing.d.ts +6 -7
- package/lib/typescript/module/components/Radio/Radio.d.ts +1 -1
- package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +1 -1
- package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +3 -4
- package/lib/typescript/module/components/Select/Select.d.ts +5 -5
- package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +2 -2
- package/lib/typescript/module/components/SlideToConfirm/SlideToConfirm.d.ts +1 -1
- package/lib/typescript/module/components/Slider/Slider.d.ts +6 -7
- package/lib/typescript/module/components/Slider/valueText.d.ts +1 -1
- package/lib/typescript/module/components/Sparkline/Sparkline.d.ts +1 -1
- package/lib/typescript/module/components/StatusBadge/StatusBadge.d.ts +2 -3
- package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +2 -2
- package/lib/typescript/module/components/Switch/Switch.d.ts +1 -1
- package/lib/typescript/module/components/Tabs/Tabs.d.ts +6 -7
- package/lib/typescript/module/components/Text/Text.d.ts +6 -7
- package/lib/typescript/module/components/Timeline/Timeline.d.ts +1 -1
- package/lib/typescript/module/components/Toast/Toast.d.ts +1 -1
- package/lib/typescript/module/components/Toast/ToastProvider.d.ts +2 -2
- package/lib/typescript/module/components/Tour/Tour.d.ts +2 -2
- package/lib/typescript/module/hooks/usePresenceMotion.d.ts +2 -2
- package/lib/typescript/module/index.d.ts +2 -2
- package/lib/typescript/module/initUI.d.ts +3 -3
- package/lib/typescript/module/theme/ThemeContext.d.ts +5 -3
- package/lib/typescript/module/theme/componentSizes.d.ts +40 -18
- package/lib/typescript/module/theme/index.d.ts +15 -17
- package/lib/typescript/module/theme/merge.d.ts +15 -2
- package/lib/typescript/module/theme/scale.d.ts +6 -4
- package/lib/typescript/module/theme/textStyle.d.ts +4 -17
- package/lib/typescript/module/theme/tokens.generated.d.ts +239 -92
- package/lib/typescript/module/theme/types.d.ts +104 -347
- package/lib/typescript/module/utils/color.d.ts +6 -2
- package/lib/typescript/module/utils/shadows.d.ts +2 -2
- package/package.json +8 -15
- package/lib/commonjs/theme/componentTokens.js +0 -1
- package/lib/commonjs/theme/retiredThemeKeys.js +0 -1
- package/lib/module/theme/componentTokens.js +0 -1
- package/lib/module/theme/retiredThemeKeys.js +0 -1
- package/lib/typescript/commonjs/theme/componentTokens.d.ts +0 -762
- package/lib/typescript/commonjs/theme/retiredThemeKeys.d.ts +0 -22
- package/lib/typescript/module/theme/componentTokens.d.ts +0 -762
- package/lib/typescript/module/theme/retiredThemeKeys.d.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ProgressRing=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ProgressRing=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,s,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,a)}for(s in e)"default"!==s&&{}.hasOwnProperty.call(e,s)&&((r=i&&Object.getOwnPropertyDescriptor(e,s))&&(r.get||r.set)?i(a,s,r):a[s]=e[s]);return a}const AnimatedCircle=_reactNative.Animated.createAnimatedComponent(_reactNativeSvg.Circle),toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;default:return e.colors.primary}},clampProgress=e=>"number"!=typeof e||Number.isNaN(e)?0:Math.min(1,Math.max(0,e)),DEFAULT_STROKE_WIDTH=4,DEFAULT_DURATION=600,DEFAULT_COLOR_STOPS=[1/3,2/3],STOP_EDGE=1e-4,ProgressRing=exports.ProgressRing=(0,_react.forwardRef)((e,t)=>{const{progress:r,size:s=48,strokeWidth:i,tone:a="primary",trackColor:o,ringColor:n,colorByProgress:c=!1,animated:l=!0,rounded:u=!0,children:d,accessibilityLabel:g,style:_,testID:p}=e,m=(0,_index2.useTheme)(),f=(0,_index.useReducedMotion)(),h=clampProgress(r),x=i??4,v=o??m.colors["surface-disabled"],[R,y]=DEFAULT_COLOR_STOPS,b=Math.max(0,(s-x)/2),j=2*Math.PI*b,N=(0,_react.useRef)((0,_index2.createAnimatedValue)(h)).current;(0,_react.useEffect)(()=>{if(!l||f)return void N.setValue(h);const e=_reactNative.Animated.timing(N,{toValue:h,duration:600,easing:_reactNative.Easing.bezier(...m.motion.ease["in-out"]),useNativeDriver:!1});return e.start(),()=>e.stop()},[l,h,N,f,m.motion.ease["in-out"]]);const P=N.interpolate({inputRange:[0,1],outputRange:[j,0]}),w=N.interpolate({inputRange:[0,.001,1],outputRange:[0,1,1]}),O=(0,_react.useMemo)(()=>N.interpolate({inputRange:[0,R-1e-4,R,y-1e-4,y,1],outputRange:[m.colors.danger,m.colors.danger,m.colors.warning,m.colors.warning,m.colors.success,m.colors.success]}),[N,m.colors.danger,m.colors.warning,m.colors.success]),D=n??(c?O:toneColor(m,a)),S=(0,_react.useMemo)(()=>buildStyles(),[]),k=s/2;return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessible:null==d,accessibilityRole:"progressbar",accessibilityLabel:g,accessibilityValue:{min:0,max:100,now:Math.round(100*h)},testID:p,style:[S.root,{width:s,height:s},_],children:[(0,_jsxRuntime.jsxs)(_reactNativeSvg.default,{width:s,height:s,viewBox:`0 0 ${s} ${s}`,children:[(0,_jsxRuntime.jsx)(_reactNativeSvg.Circle,{cx:k,cy:k,r:b,stroke:v,strokeWidth:x,fill:"none"}),(0,_jsxRuntime.jsx)(AnimatedCircle,{cx:k,cy:k,r:b,stroke:D,strokeWidth:x,strokeLinecap:u?"round":"butt",strokeDasharray:`${j} ${j}`,strokeDashoffset:P,strokeOpacity:w,fill:"none",transform:`rotate(-90 ${k} ${k})`,testID:p?`${p}-fill`:void 0})]}),null!=d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:S.content,pointerEvents:"box-none",children:d}):null]})});ProgressRing.displayName="ProgressRing";const buildStyles=()=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center"},content:{position:"absolute",top:0,right:0,bottom:0,left:0,alignItems:"center",justifyContent:"center"}});var _default=exports.default=ProgressRing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useRadioGroup=exports.default=exports.RadioGroupContext=exports.Radio=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../FieldBase/index.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_RadioDot=require("./RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const RadioGroupContext=exports.RadioGroupContext=(0,_react.createContext)(null),useRadioGroup=()=>(0,_react.useContext)(RadioGroupContext);exports.useRadioGroup=useRadioGroup;const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useRadioGroup=exports.default=exports.RadioGroupContext=exports.Radio=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../FieldBase/index.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_RadioDot=require("./RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const RadioGroupContext=exports.RadioGroupContext=(0,_react.createContext)(null),useRadioGroup=()=>(0,_react.useContext)(RadioGroupContext);exports.useRadioGroup=useRadioGroup;const toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"danger":return e.colors.danger;default:return e.colors.primary}},Radio=exports.Radio=(0,_react.forwardRef)((e,t)=>{const{value:i,selected:r,onChange:o,disabled:s=!1,label:a,description:l,error:c,size:d="md",tone:n="primary",accessibilityLabel:u,haptic:p,style:x,containerStyle:_,circleStyle:b,dotStyle:h,labelStyle:y,testID:R,...m}=e,C=(0,_index.useTheme)(),g=(0,_react.useMemo)(()=>buildStyles(C),[C]),f=useRadioGroup();__DEV__&&void 0===i&&_mobileCore.Logger.warn("[@webority/mobile-ui] Radio was rendered without a `value`. Selection compares against it, so the group cannot track which option is chosen.");const w=f?f.selectedValue===i:!!r,S=f&&f.disabled||s,j=toneColor(C,n),v=(0,_index.spaceOf)(C,C.components.radio["label-gap"]),T=u??(0,_index2.fieldTextAsString)(a),q=!0===f?.error||!0===c||(0,_index2.hasFieldText)(c);return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:t,onPress:e=>{if(S)return;const t=(0,_hapticUtils.resolveHaptic)(p,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),f?f.onChange(i):o?.(i)},disabled:S,accessibilityRole:"radio",accessibilityLabel:T,accessibilityHint:m.accessibilityHint??(0,_index2.fieldTextAsString)(l),accessibilityState:{checked:w,disabled:S},"aria-checked":w,"aria-disabled":S,testID:R,hitSlop:6,...m,style:({pressed:e})=>[g.row,(0,_ChoiceText.hasChoiceDetail)(l,c)?g.rowTop:null,{opacity:S?.55:e?.85:1},x,_],children:[(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:w,color:j,disabled:S&&!w,size:d,style:[!q||w||S?null:{borderColor:C.colors["field-border-error"]},b],dotStyle:h}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:a,description:l,error:c,disabled:S,labelLines:2,style:{marginLeft:v},labelStyle:y})]})});Radio.displayName="Radio";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"}});var _default=exports.default=Radio;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.RadioDot=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const RadioDot=e=>{const{selected:t,color:r,disabled:o=!1,size:s="md",style:i,dotStyle:a}=e,n=(0,_index.useTheme)(),d=(0,_react.useMemo)(()=>buildStyles(),[]),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.RadioDot=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");const RadioDot=e=>{const{selected:t,color:r,disabled:o=!1,size:s="md",style:i,dotStyle:a}=e,n=(0,_index.useTheme)(),d=(0,_react.useMemo)(()=>buildStyles(),[]),u=r??n.colors.primary;let c,l;if("number"==typeof s)c=s,l=Math.round(s/2);else{const e=(0,_index.resolveRadioSize)(n,s);c=e.outer,l=e.inner}const p=(0,_react.useRef)((0,_index.createAnimatedValue)(t?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(p,{toValue:t?1:0,damping:n.motion.spring.snappy.damping,stiffness:n.motion.spring.snappy.stiffness,mass:n.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[t,p,n.motion.spring.snappy]);const m=p.interpolate({inputRange:[0,1],outputRange:[0,1]}),_=o?n.colors.border:t?u:n.colors.border;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[d.outer,{width:c,height:c,borderWidth:n.size.border,borderRadius:n.radius.pill,..._corners.smoothCorners,borderColor:_},i],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:l,height:l,borderRadius:n.radius.pill,..._corners.smoothCorners,backgroundColor:o?n.colors["text-disabled"]:u,opacity:p,transform:[{scale:m}]},a]})})};exports.RadioDot=RadioDot,RadioDot.displayName="RadioDot";const buildStyles=()=>_reactNative.StyleSheet.create({outer:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=RadioDot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Rating=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const sizePxMap={sm:16,md:24,lg:32},resolveSize=e=>"number"==typeof e?e:sizePxMap[e],toneColorFor=(e,t)=>"primary"===t?e.colors.primary:e.colors.warning,clampToStep=(e,t,i)=>{const a=Math.max(0,Math.min(t,e)),s=Math.round(a/i)*i;return Number(s.toFixed(2))},Star=({index:e,filled:t,size:i,filledColor:a,emptyColor:s,scale:n})=>{const r=Math.max(0,Math.min(1,t-e));return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[starStyles.starWrap,{width:i,height:i,transform:[{scale:n}]}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[starStyles.glyph,{color:s,fontSize:i,lineHeight:i}],accessible:!1,children:"☆"}),r>0?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[starStyles.fillClip,{width:i*r,height:i}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[starStyles.glyph,{color:a,fontSize:i,lineHeight:i}],accessible:!1,children:"★"})}):null]})},Rating=exports.Rating=(0,_react.forwardRef)((e,t)=>{const{value:i,onChange:a,max:s=5,allowHalf:n=!0,readonly:r=!1,size:l="md",tone:o="warning",label:c,loading:u=!1,haptic:m,accessibilityLabel:d,style:x,containerStyle:p,starContainerStyle:y,testID:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Rating=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const sizePxMap={sm:16,md:24,lg:32},resolveSize=e=>"number"==typeof e?e:sizePxMap[e],PULSE_SCALE=1.2,toneColorFor=(e,t)=>"primary"===t?e.colors.primary:e.colors.warning,clampToStep=(e,t,i)=>{const a=Math.max(0,Math.min(t,e)),s=Math.round(a/i)*i;return Number(s.toFixed(2))},Star=({index:e,filled:t,size:i,filledColor:a,emptyColor:s,scale:n})=>{const r=Math.max(0,Math.min(1,t-e));return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[starStyles.starWrap,{width:i,height:i,transform:[{scale:n}]}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[starStyles.glyph,{color:s,fontSize:i,lineHeight:i}],accessible:!1,children:"☆"}),r>0?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[starStyles.fillClip,{width:i*r,height:i}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[starStyles.glyph,{color:a,fontSize:i,lineHeight:i}],accessible:!1,children:"★"})}):null]})},Rating=exports.Rating=(0,_react.forwardRef)((e,t)=>{const{value:i,onChange:a,max:s=5,allowHalf:n=!0,readonly:r=!1,size:l="md",tone:o="warning",label:c,loading:u=!1,haptic:m,accessibilityLabel:d,style:x,containerStyle:p,starContainerStyle:y,testID:_}=e,h=(0,_index.useTheme)(),g=(0,_react.useMemo)(()=>buildStyles(h),[h]),v=!r&&"function"==typeof a,f=n?.5:1,b=resolveSize(l),j=toneColorFor(h,o),S=h.colors.border,R=(0,_react.useRef)(b),w=(0,_react.useCallback)(e=>{R.current=e.nativeEvent.layout.width},[]),N=(0,_react.useRef)(new Map),C=(0,_react.useMemo)(()=>{const e=N.current,t=[];for(let i=0;i<s;i+=1){let a=e.get(i);a||(a=new _reactNative.Animated.Value(1),e.set(i,a)),t.push(a)}for(const t of Array.from(e.keys()))t>=s&&e.delete(t);return t},[s]),k=h.settings.components.rating?.pulseOnPress??!1,z=(0,_react.useCallback)(e=>{const t=C[e];t&&_reactNative.Animated.sequence([_reactNative.Animated.timing(t,{toValue:1.2,duration:h.motion.duration.fast,easing:_reactNative.Easing.bezier(...h.motion.ease["in-out"]),useNativeDriver:!0}),_reactNative.Animated.spring(t,{toValue:1,damping:h.motion.spring.bouncy.damping,stiffness:h.motion.spring.bouncy.stiffness,mass:h.motion.spring.bouncy.mass,useNativeDriver:!0})]).start()},[h.motion,C]),M=(0,_react.useCallback)((e,t)=>{if(!v||!a)return;const i=clampToStep(e,s,f),n=(0,_hapticUtils.resolveHaptic)(m,"selection");n&&(0,_hapticUtils.triggerHaptic)(n),k&&"number"==typeof t&&z(t),a(i)},[v,a,s,f,z,m,k]),A=(0,_react.useCallback)(e=>t=>{if(!v)return;const i=R.current||b,a=t.nativeEvent.locationX??i;let s;s=n&&a<i/2?e+.5:e+1,M(s,e)},[v,b,n,M]),P=(0,_react.useCallback)(e=>{v&&("increment"===e.nativeEvent.actionName?M(i+f):"decrement"===e.nativeEvent.actionName&&M(i-f))},[v,i,f,M]),V=`${i} of ${s} stars`,E=d??c??V,q=[];for(let e=0;e<s;e+=1){const t=C[e];if(!t)continue;const a=(0,_jsxRuntime.jsx)(Star,{index:e,filled:i,size:b,filledColor:j,emptyColor:S,scale:t},e);q.push(v?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:A(e),onLayout:0===e?w:void 0,hitSlop:4,accessible:!1,style:g.starPress,children:a},e):(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:0===e?w:void 0,style:g.starPress,children:a},e))}const D=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[g.wrapper,x,p],ref:t,testID:_,children:[c?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[g.label,{color:h.colors["text-muted"],fontSize:h.text.sm.size}],children:c}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.row,y],accessible:!0,accessibilityRole:v?"adjustable":"text",accessibilityLabel:E,accessibilityValue:v?{min:0,max:s,now:i,text:V}:void 0,accessibilityActions:v?[{name:"increment"},{name:"decrement"}]:void 0,onAccessibilityAction:v?P:void 0,children:q})]});return u?(0,_jsxRuntime.jsx)(RatingSkeleton,{...e}):D});Rating.displayName="Rating";const RatingSkeleton=({max:e=5,size:t="md",label:i,containerStyle:a,starContainerStyle:s,style:n})=>{const r=(0,_index.useTheme)(),l=resolveSize(t),o=Math.max(1,e);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{alignItems:"flex-start"},a,n],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==i?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:80,height:14,style:{marginBottom:r.space.xs}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{flexDirection:"row"},s],children:Array.from({length:o}).map((e,t)=>(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:l,height:l,radius:Math.round(.25*l),style:t<o-1?{marginRight:r.space.xs}:void 0},`sk-star-${t}`))})]})};RatingSkeleton.displayName="RatingSkeleton",Rating.Skeleton=RatingSkeleton;const starStyles=_reactNative.StyleSheet.create({starWrap:{position:"relative",alignItems:"flex-start",justifyContent:"center"},glyph:{textAlign:"left",includeFontPadding:!1},fillClip:{position:"absolute",top:0,left:0,overflow:"hidden"}}),buildStyles=e=>_reactNative.StyleSheet.create({wrapper:{flexDirection:"column"},row:{flexDirection:"row",alignItems:"center"},starPress:{marginRight:e.space.xs},label:{marginBottom:e.space.xs}});var _default=exports.default=Rating;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Repeater=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_index3=require("../AppIcon/index.js"),_index4=require("../Button/index.js"),_index5=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");let rowIdCounter=0;const nextRowId=()=>(rowIdCounter+=1,`row-${rowIdCounter}`),Repeater=({value:e,onChange:t,createRow:r,renderRow:n,addLabel:i="Add another",rowLabel:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Repeater=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_index3=require("../AppIcon/index.js"),_index4=require("../Button/index.js"),_index5=require("../IconButton/index.js"),_jsxRuntime=require("react/jsx-runtime");let rowIdCounter=0;const nextRowId=()=>(rowIdCounter+=1,`row-${rowIdCounter}`),Repeater=({value:e,onChange:t,createRow:r,renderRow:n,addLabel:i="Add another",rowLabel:s,renderRowHeader:a,onRemove:o,minRows:l=0,maxRows:c,removable:u=!0,emptyText:x,disabled:d=!1,haptic:_,style:m,testID:p})=>{const h=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(h),[h]),R=(0,_react.useRef)([]);if(R.current.length<e.length)for(;R.current.length<e.length;)R.current.push(nextRowId());else R.current.length>e.length&&(R.current.length=e.length);const v="number"==typeof c&&e.length>=c,g=u&&e.length>l,w=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(_,e);t&&(0,_index2.triggerHaptic)(t)},[_]),b=(0,_react.useCallback)(()=>{d||v||(t([...e,r()]),w("impactLight"))},[v,r,d,w,t,e]),f=(0,_react.useCallback)((r,n)=>{t(e.map((e,t)=>t===r?n:e))},[t,e]),y=(0,_react.useCallback)(r=>{!d&&g&&(R.current=R.current.filter((e,t)=>t!==r),o?.(r,e[r]),t(e.filter((e,t)=>t!==r)),w("notificationWarning"))},[g,d,w,t,o,e]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{gap:h.space.md},m],testID:p,children:[0===e.length&&x?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.empty,{color:h.colors["text-subtle"],fontSize:h.text.sm.size}],children:x}):null,e.map((e,t)=>{const r={item:e,index:t,update:e=>f(t,e),remove:()=>y(t),canRemove:g};return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{gap:h.space.xs},children:[a?a(r):s||g&&!d?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.rowHeader,children:[s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.rowLabel,{color:h.colors["text-subtle"],fontSize:h.text.xs.size}],children:s(t)}):(0,_jsxRuntime.jsx)(_reactNative.View,{}),g&&!d?(0,_jsxRuntime.jsx)(_index5.IconButton,{icon:({color:e,size:t})=>(0,_jsxRuntime.jsx)(_index3.AppIcon,{name:"x",size:t,color:e}),onPress:()=>y(t),accessibilityLabel:`Remove ${s?s(t):`row ${t+1}`}`,size:"sm",tone:"danger",variant:"ghost",haptic:_,testID:p?`${p}-remove-${t}`:void 0}):null]}):null,n(r)]},R.current[t])}),v||d?null:(0,_jsxRuntime.jsx)(_index4.Button,{title:i,onPress:b,variant:"outline",size:"sm",haptic:_,testID:p?`${p}-add`:void 0})]})};exports.Repeater=Repeater;const buildStyles=e=>_reactNative.StyleSheet.create({rowHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",minHeight:24},rowLabel:{...(0,_index.fontFor)(e,"semibold"),fontWeight:"600",letterSpacing:.5,textTransform:"uppercase"},empty:{...(0,_index.fontFor)(e,"normal")}});var _default=exports.default=Repeater;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.RichTextEditor=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_markdownActions=require("./markdownActions.js"),_jsxRuntime=require("react/jsx-runtime");const ACTION_META={bold:{glyph:"B",label:"Bold"},italic:{glyph:"I",label:"Italic"},strikethrough:{glyph:"S",label:"Strikethrough"},code:{glyph:"</>",label:"Inline code"},link:{glyph:"link",label:"Link"},heading1:{glyph:"H1",label:"Heading 1"},heading2:{glyph:"H2",label:"Heading 2"},bulletList:{glyph:"•",label:"Bulleted list"},numberedList:{glyph:"1.",label:"Numbered list"},quote:{glyph:">",label:"Quote"}},DEFAULT_ACTIONS=["bold","italic","strikethrough","code","link","heading1","heading2","bulletList","numberedList","quote"],DEFAULT_MIN_HEIGHT=160,RichTextEditor=exports.RichTextEditor=(0,_react.forwardRef)((e,t)=>{const{value:i,onChangeText:o,placeholder:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.RichTextEditor=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_markdownActions=require("./markdownActions.js"),_jsxRuntime=require("react/jsx-runtime");const ACTION_META={bold:{glyph:"B",label:"Bold"},italic:{glyph:"I",label:"Italic"},strikethrough:{glyph:"S",label:"Strikethrough"},code:{glyph:"</>",label:"Inline code"},link:{glyph:"link",label:"Link"},heading1:{glyph:"H1",label:"Heading 1"},heading2:{glyph:"H2",label:"Heading 2"},bulletList:{glyph:"•",label:"Bulleted list"},numberedList:{glyph:"1.",label:"Numbered list"},quote:{glyph:">",label:"Quote"}},DEFAULT_ACTIONS=["bold","italic","strikethrough","code","link","heading1","heading2","bulletList","numberedList","quote"],DEFAULT_MIN_HEIGHT=160,TOOLBAR_GLYPH_MAX_SCALE=1.5,RichTextEditor=exports.RichTextEditor=(0,_react.forwardRef)((e,t)=>{const{value:i,onChangeText:o,placeholder:l,actions:s=DEFAULT_ACTIONS,disabled:r=!1,loading:n=!1,minHeight:a=DEFAULT_MIN_HEIGHT,autoFocus:c=!1,accessibilityLabel:d,haptic:u,style:h,toolbarStyle:x,inputStyle:b,testID:_}=e,m=(0,_index.useTheme)(),g=(0,_react.useMemo)(()=>buildStyles(m),[m]),p=i??"",[y,j]=(0,_react.useState)({start:0,end:0}),[S,T]=(0,_react.useState)(!1),[R,k]=(0,_react.useState)(null),v=(0,_react.useCallback)(e=>{j(e.nativeEvent.selection),k(null)},[]),C=(0,_react.useCallback)(e=>{k(null),o?.(e)},[o]),I=(0,_react.useCallback)(e=>{if(r)return;const t=(0,_index2.resolveHaptic)(u,"selection");t&&(0,_index2.triggerHaptic)(t);const i=(0,_markdownActions.applyMarkdownAction)({text:p,selection:(0,_markdownActions.normalizeSelection)(y,p.length)},e);j(i.selection),k(i.selection),o?.(i.text)},[r,u,o,y,p]);return n?(0,_jsxRuntime.jsx)(RichTextEditorSkeleton,{actionCount:s.length,minHeight:a,style:h,testID:_}):(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:_,style:[g.container,{borderColor:S?m.colors["focus-ring"]:m.colors.border,opacity:r?.55:1},h],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.toolbar,x],children:s.map(e=>(0,_jsxRuntime.jsx)(ToolbarButton,{action:e,disabled:r,onPress:I,styles:g,theme:m,testID:_?`${_}-${e}`:void 0},e))}),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:t,value:p,onChangeText:C,onSelectionChange:v,onFocus:()=>T(!0),onBlur:()=>T(!1),selection:R??void 0,editable:!r,autoFocus:c,multiline:!0,textAlignVertical:"top",placeholder:l,placeholderTextColor:m.colors["text-subtle"],accessibilityLabel:d,style:[g.input,{minHeight:a},b],testID:_?`${_}-input`:void 0})]})});RichTextEditor.displayName="RichTextEditor";const ToolbarButton=({action:e,disabled:t,onPress:i,styles:o,theme:l,testID:s})=>{const r=ACTION_META[e],n={color:t?l.colors["text-disabled"]:l.colors["text-body"]};return"bold"===e&&(n.fontWeight=l.weight.bold),"italic"===e&&(n.fontStyle="italic"),"strikethrough"===e&&(n.textDecorationLine="line-through"),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>i(e),disabled:t,accessibilityRole:"button",accessibilityLabel:r.label,accessibilityState:{disabled:t},"aria-disabled":t,hitSlop:4,testID:s,style:({pressed:e})=>[o.button,{backgroundColor:e?l.colors["surface-pressed"]:l.colors["bg-subtle"]}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{maxFontSizeMultiplier:Math.min(l.settings.maxFontSizeMultiplier??1.5,1.5),style:[o.buttonLabel,n],children:r.glyph})})};ToolbarButton.displayName="RichTextEditorToolbarButton";const RichTextEditorSkeleton=({actionCount:e,minHeight:t,style:i,testID:o})=>{const l=(0,_index.useTheme)(),s=(0,_react.useMemo)(()=>buildStyles(l),[l]),r=Array.from({length:Math.max(1,e)},(e,t)=>t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:o,style:[s.container,i],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:s.toolbar,children:r.map(e=>(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:34,height:30,radius:"sm"},e))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[s.skeletonBody,{minHeight:t}],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"text",width:"94%",height:14}),(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"text",width:"100%",height:14}),(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"text",width:"72%",height:14})]})]})};RichTextEditorSkeleton.displayName="RichTextEditorSkeleton";const buildStyles=e=>_reactNative.StyleSheet.create({container:{borderWidth:e.size.border,borderColor:e.colors.border,borderRadius:e.radius.md,..._corners.smoothCorners,backgroundColor:e.colors.bg,overflow:"hidden"},toolbar:{flexDirection:"row",flexWrap:"wrap",alignItems:"center",gap:e.space.xs,padding:e.space.xs,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomColor:e.colors["border-subtle"],backgroundColor:e.colors["bg-subtle"]},button:{minWidth:34,height:30,paddingHorizontal:e.space.xs,borderRadius:e.radius.sm,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},buttonLabel:{...(0,_index.fontFor)(e,"medium"),fontSize:e.text.sm.size},input:{...(0,_index.fontFor)(e,"normal"),color:e.colors["text-body"],fontSize:e.text.base.size,lineHeight:1.5*e.text.base.size,paddingHorizontal:e.space.md,paddingVertical:e.space.sm},skeletonBody:{paddingHorizontal:e.space.md,paddingVertical:e.space.sm,gap:e.space.sm}});var _default=exports.default=RichTextEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ScannerOverlay=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Button/index.js"),_index4=require("../EmptyState/index.js"),_index5=require("../IconButton/index.js"),_index6=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_FRAME=240,DEFAULT_FRAME=260,MARK_LENGTH=32,MARK_THICKNESS=4,LIFT=.06,BREATHE_SCALE=1.03,SNAP_SCALE=1.08,T=4,CORNERS=[{key:"tl",style:{top:0,left:0,borderTopWidth:4,borderLeftWidth:4}},{key:"tr",style:{top:0,right:0,borderTopWidth:4,borderRightWidth:4}},{key:"bl",style:{bottom:0,left:0,borderBottomWidth:4,borderLeftWidth:4}},{key:"br",style:{bottom:0,right:0,borderBottomWidth:4,borderRightWidth:4}}],DEFAULT_LABELS={found:"Code found",invalid:"This code cannot be used. Try another.",torchOn:"Turn torch on",torchOff:"Turn torch off",manualEntry:"Enter code instead",gallery:"Upload from gallery",noPermissionTitle:"Camera access is off",noPermissionMessage:"Allow camera access to scan a code.",permissionAction:"Allow camera access",noCameraTitle:"No camera found",noCameraMessage:"This device has no camera available. You can still add the code another way."},ScannerOverlay=exports.ScannerOverlay=(0,_react.forwardRef)((e,t)=>{const{children:i,state:n="scanning",hint:a="Point the camera at the code",labels:r,torch:o=!1,onTorchChange:s,onManualEntry:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ScannerOverlay=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Button/index.js"),_index4=require("../EmptyState/index.js"),_index5=require("../IconButton/index.js"),_index6=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const MIN_FRAME=240,DEFAULT_FRAME=260,MARK_LENGTH=32,MARK_THICKNESS=4,LIFT=.06,BREATHE_SCALE=1.03,SNAP_SCALE=1.08,T=4,CORNERS=[{key:"tl",style:{top:0,left:0,borderTopWidth:4,borderLeftWidth:4}},{key:"tr",style:{top:0,right:0,borderTopWidth:4,borderRightWidth:4}},{key:"bl",style:{bottom:0,left:0,borderBottomWidth:4,borderLeftWidth:4}},{key:"br",style:{bottom:0,right:0,borderBottomWidth:4,borderRightWidth:4}}],DEFAULT_LABELS={found:"Code found",invalid:"This code cannot be used. Try another.",torchOn:"Turn torch on",torchOff:"Turn torch off",manualEntry:"Enter code instead",gallery:"Upload from gallery",noPermissionTitle:"Camera access is off",noPermissionMessage:"Allow camera access to scan a code.",permissionAction:"Allow camera access",noCameraTitle:"No camera found",noCameraMessage:"This device has no camera available. You can still add the code another way."},ScannerOverlay=exports.ScannerOverlay=(0,_react.forwardRef)((e,t)=>{const{children:i,state:n="scanning",hint:a="Point the camera at the code",labels:r,torch:o=!1,onTorchChange:s,onManualEntry:c,onGallery:l,onPermissionAction:d,frameSize:u=DEFAULT_FRAME,haptic:m,style:h,testID:_}=e,x=(0,_index.useTheme)(),p=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),f=(0,_useReducedMotion.useReducedMotion)(),g=(0,_react.useMemo)(()=>buildStyles(x),[x]),v={...DEFAULT_LABELS,...r},[y,j]=(0,_react.useState)({width:0,height:0}),b="scanning"===n||"found"===n||"invalid"===n,R=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,N=x.motion.duration.slower,S=x.motion.duration.default;(0,_react.useEffect)(()=>{if(R.setValue(1),f)return;let e;return"scanning"===n&&N>0?e=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(R,{toValue:1.03,duration:2*N,useNativeDriver:!0}),_reactNative.Animated.timing(R,{toValue:1,duration:2*N,useNativeDriver:!0})])):"found"===n&&S>0&&(R.setValue(1.08),e=_reactNative.Animated.timing(R,{toValue:1,duration:S,useNativeDriver:!0})),e?.start(),()=>e?.stop()},[n,f,N,S,R]);const w=(0,_react.useRef)(n);(0,_react.useEffect)(()=>{w.current!==n&&(w.current=n,!1!==m&&("found"===n?(0,_hapticUtils.triggerHaptic)("notificationSuccess"):"invalid"===n&&(0,_hapticUtils.triggerHaptic)("notificationError")))},[n,m]);const{found:A,invalid:E}=v,{noPermissionTitle:C,noPermissionMessage:M}=v,{noCameraTitle:V,noCameraMessage:P}=v;(0,_react.useEffect)(()=>{switch(n){case"scanning":(0,_announce.announce)(a);break;case"found":(0,_announce.announce)(A);break;case"invalid":(0,_announce.announce)(E,{polite:!1});break;case"noPermission":(0,_announce.announce)(`${C}. ${M}`);break;case"noCamera":(0,_announce.announce)(`${V}. ${P}`)}},[n,a,A,E,C,M,V,P]);const k=Math.max(240,Math.min(u,y.width-2*x.space.xl)),L=(y.width-k)/2,q=Math.max(x.space.md,(y.height-k)/2-.06*y.height),I=y.width>0&&y.height>0,F={borderColor:"found"===n?x.colors.success:"invalid"===n?x.colors.danger:x.colors["on-scrim"],width:32,height:32},O="found"===n||"invalid"===n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.pill,{backgroundColor:"found"===n?x.colors.success:x.colors.danger}],children:(0,_jsxRuntime.jsx)(_index6.Text,{variant:"bodySmall",weight:"semibold",align:"center",color:"found"===n?x.colors["on-success"]:x.colors["on-danger"],children:"found"===n?A:E})}):(0,_jsxRuntime.jsx)(_index6.Text,{variant:"bodySmall",align:"center",color:x.colors["on-scrim"],children:a}),B=b&&null!=s,D=b?"glass":"outline";return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,testID:_,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;j(e=>e.width===t&&e.height===i?e:{width:t,height:i})},style:[g.root,!b&&{backgroundColor:x.colors.bg},h],children:[b?(0,_jsxRuntime.jsx)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,children:i}):null,b&&I?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"none",style:_reactNative.StyleSheet.absoluteFill,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants","aria-hidden":!0,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.scrim,{left:0,right:0,top:0,height:q}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.scrim,{left:0,right:0,top:q+k,bottom:0}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.scrim,{left:0,width:L,top:q,height:k}]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.scrim,{left:L+k,right:0,top:q,height:k}]}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{position:"absolute",left:L,top:q,width:k,height:k,transform:[{scale:R}]},children:CORNERS.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[g.mark,F,e.style]},e.key))})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[g.message,{top:q+k+x.space.md}],children:O})]}):null,b?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:g.panel,children:(0,_jsxRuntime.jsx)(_index4.EmptyState,{fill:!0,icon:(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"noPermission"===n?"camera":"camera-slash",size:48,color:x.colors["text-subtle"]}),title:"noPermission"===n?C:V,description:"noPermission"===n?M:P,action:"noPermission"===n&&d?{label:v.permissionAction,onPress:d}:void 0})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{pointerEvents:"box-none",style:[g.bar,{paddingBottom:Math.max(p.bottom,x.space.md)}],children:[B?(0,_jsxRuntime.jsx)(_index5.IconButton,{icon:o?"flash":"flash-slash",variant:"glass",size:"lg",active:o,haptic:m,accessibilityLabel:o?v.torchOff:v.torchOn,onPress:()=>s?.(!o)}):null,l?(0,_jsxRuntime.jsx)(_index3.Button,{title:v.gallery,leftIcon:"gallery",variant:D,tone:"neutral",size:"lg",haptic:m,onPress:l}):null,c?(0,_jsxRuntime.jsx)(_index3.Button,{title:v.manualEntry,leftIcon:"keyboard",variant:D,tone:"neutral",size:"lg",haptic:m,onPress:c}):null]})]})});ScannerOverlay.displayName="ScannerOverlay";const buildStyles=e=>_reactNative.StyleSheet.create({root:{flex:1,overflow:"hidden"},scrim:{position:"absolute",backgroundColor:e.colors.scrim},mark:{position:"absolute"},message:{position:"absolute",left:0,right:0,alignItems:"center",paddingHorizontal:e.space.xl},pill:{paddingHorizontal:e.space.md,paddingVertical:e.space.xs,borderRadius:e.radius.pill,..._corners.smoothCorners},panel:{..._reactNative.StyleSheet.absoluteFill,justifyContent:"center"},bar:{position:"absolute",left:0,right:0,bottom:0,flexDirection:"row",flexWrap:"wrap",alignItems:"center",justifyContent:"center",gap:e.space.sm,paddingHorizontal:e.space.md}});var _default=exports.default=ScannerOverlay;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Screen=Screen;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useRefreshControl=require("../../hooks/useRefreshControl.js"),_index=require("../../theme/index.js"),_index2=require("../AppBar/index.js"),_index3=require("../KeyboardAwareScrollView/index.js"),_index4=require("../KeyboardToolbar/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_EDGES=["top","bottom"],SCROLL_EVENT_THROTTLE=16,noop=()=>{},buildStyles=e=>_reactNative.StyleSheet.create({flex:{flex:1},root:{flex:1,backgroundColor:e.colors.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Screen=Screen;var _react=require("react"),_reactNative=require("react-native"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useRefreshControl=require("../../hooks/useRefreshControl.js"),_index=require("../../theme/index.js"),_index2=require("../AppBar/index.js"),_index3=require("../KeyboardAwareScrollView/index.js"),_index4=require("../KeyboardToolbar/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_EDGES=["top","bottom"],SCROLL_EVENT_THROTTLE=16,noop=()=>{},buildStyles=e=>_reactNative.StyleSheet.create({flex:{flex:1},root:{flex:1,backgroundColor:e.colors.bg},overlay:{position:"absolute",top:0,left:0,right:0},footer:{backgroundColor:e.colors.bg,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:e.colors.border}});function Screen(e){const{title:t,subtitle:r,largeTitle:o=!0,onBack:n,rightActions:i,leading:a,children:l,onRefresh:s,refreshing:d=!1,footer:c,footerStyle:u,scroll:_=!0,list:f,edges:v=DEFAULT_EDGES,keyboardToolbar:x=!0,contentContainerStyle:h,style:g,testID:p}=e,y=(0,_index.useTheme)(),b=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),S=(0,_react.useMemo)(()=>buildStyles(y),[y]),[m]=(0,_react.useState)(()=>new _reactNative.Animated.Value(0)),[j,R]=(0,_react.useState)(0),T=void 0!==n,C=(0,_react.useRef)(n);C.current=n;const E=Boolean(t||r||n||a||i?.length),N=o&&void 0!==t,A=N&&(void 0!==f||_),L=A?j:0,k=void 0!==c,{refreshControl:w}=(0,_useRefreshControl.useRefreshControl)({onRefresh:s??noop,refreshing:d}),q=s?(0,_react.cloneElement)(w,{progressViewOffset:L}):void 0,B=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{y:m}}}],{useNativeDriver:!1}),[m]),V=(0,_react.useCallback)(e=>{const{height:t}=e.nativeEvent.layout;R(e=>Math.max(e,t))},[]);(0,_react.useEffect)(()=>{if(!T)return;const e=_reactNative.BackHandler.addEventListener("hardwareBackPress",()=>(C.current?.(),!0));return()=>e.remove()},[T]);const D=v.includes("left")?b.left:0,K=v.includes("right")?b.right:0,O=v.includes("bottom")?b.bottom:0,M=v.includes("top")&&!E?b.top:0,F=v.filter(e=>"top"!==e&&!("bottom"===e&&k)),H=E?(0,_jsxRuntime.jsx)(_reactNative.View,{style:A?S.overlay:void 0,onLayout:A?V:void 0,children:(0,_jsxRuntime.jsx)(_index2.AppBar,{title:t,subtitle:r,variant:N?"large":"default",scrollY:A?m:void 0,onBack:n,rightActions:i,leading:a})}):null;let I;I=void 0!==f?(0,_jsxRuntime.jsx)(_reactNative.FlatList,{keyboardShouldPersistTaps:"handled",...f,refreshControl:q,onScroll:A?B:void 0,scrollEventThrottle:SCROLL_EVENT_THROTTLE,style:S.flex,contentContainerStyle:[{paddingTop:L,paddingLeft:D,paddingRight:K},{paddingBottom:k?0:O},f.contentContainerStyle,h]}):_?(0,_jsxRuntime.jsx)(_index3.KeyboardAwareScrollView,{refreshControl:q,onScroll:A?B:void 0,safeAreaEdges:F,style:S.flex,contentContainerStyle:[{paddingTop:L},h],children:l}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.flex,{paddingLeft:D,paddingRight:K,paddingBottom:k?0:O},h],children:l});const P=k?(0,_jsxRuntime.jsx)(_reactNativeKeyboardController.KeyboardStickyView,{style:[S.footer,{paddingLeft:D,paddingRight:K,paddingBottom:O},u],children:c}):null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:p,style:[S.root,{paddingTop:M},g],children:[A?null:H,I,P,A?H:null,x?(0,_jsxRuntime.jsx)(_index4.KeyboardToolbar,{}):null]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SearchBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_useDebounce=require("../../hooks/useDebounce.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_SearchPanel=require("./SearchPanel.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_PANEL_ROWS=8,HOLD_RELEASE_MS=50,SearchBar=exports.SearchBar=(0,_react.forwardRef)((e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SearchBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_useDebounce=require("../../hooks/useDebounce.js"),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_mergeRefs=require("../../utils/mergeRefs.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_useFloatingLabel=require("../FieldBase/useFloatingLabel.js"),_SearchPanel=require("./SearchPanel.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_PANEL_ROWS=8,HOLD_RELEASE_MS=50,SearchBar=exports.SearchBar=(0,_react.forwardRef)((e,t)=>{const{value:a,onChangeText:s,onSubmit:l,onFocus:n,onBlur:c,placeholder:r="Search…",autoFocus:i=!1,disabled:o=!1,onClear:u,leftIcon:d,debounceMs:_,size:b="md",variant:h,borderRadius:p,label:g,labelMode:f="top",labelStyle:S,scopes:x,scope:m,onScopeChange:v,recents:R,recentsTitle:j="Recent searches",maxRecents:C=DEFAULT_PANEL_ROWS,onSelectRecent:y,onRemoveRecent:F,onClearRecents:k,suggestions:B,maxSuggestions:L=DEFAULT_PANEL_ROWS,onSelectSuggestion:I,haptic:q,style:E,inputStyle:P,accessibilityLabel:T,testID:N,...D}=e,z=(0,_index.useTheme)(),w=h??z.settings.components["search-bar"]?.defaultVariant??z.settings.components.field?.defaultVariant??"filled",A="underline"===w,H=(0,_index.resolveFieldSize)(z,b),U=(0,_index.radiusOf)(z,z.components["search-bar"][b].radius),M=(0,_FieldBase.resolveFieldTextStyle)(z,{disabled:o}),O=(0,_react.useRef)(null),V=(0,_react.useMemo)(()=>(0,_mergeRefs.mergeRefs)(O,t),[t]),W=(0,_react.useCallback)(()=>{o||O.current?.focus()},[o]),$=(0,_react.useMemo)(()=>buildStyles(z),[z]),K="string"==typeof a?a:"",[G,J]=(0,_react.useState)(!1),Q=(0,_react.useCallback)(e=>{J(!0),n?.(e)},[n]),X=(0,_react.useCallback)(e=>{J(!1),c?.(e)},[c]),[Y,Z]=(0,_react.useState)(K),ee=(0,_useDebounce.useDebounce)(Y,_??0);(0,_react.useEffect)(()=>{void 0!==_&&K!==Y&&Z(K)},[K,_]);const te=(0,_react.useRef)(K);(0,_react.useEffect)(()=>{void 0!==_&&ee!==te.current&&(te.current=ee,s(ee))},[ee,_,s]);const ae=(0,_react.useCallback)(e=>{void 0===_?s(e):Z(e)},[_,s]),se=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),void 0!==_&&(Z(""),te.current=""),s(""),u?.()},[q,_,s,u]),le=(0,_react.useCallback)(()=>{l?.(void 0!==_?Y:K)},[l,_,Y,K]),ne=void 0!==_?Y:K,ce=ne.length>0,[re,ie]=(0,_useControllableState.useControllableState)({value:m,defaultValue:x?.[0]?.value??"",onChange:v}),oe=(0,_react.useCallback)(e=>{ie(e);const t=x?.find(t=>t.value===e)?.label;t&&(0,_announce.announce)(`Searching ${t}`)},[x,ie]),[ue,de]=(0,_react.useState)(!1),be=(0,_react.useRef)(null),he=(0,_react.useCallback)(()=>{be.current&&(clearTimeout(be.current),be.current=null)},[]),pe=(0,_react.useCallback)(()=>{he(),de(!0)},[he]),ge=(0,_react.useCallback)(()=>{he(),be.current=setTimeout(()=>de(!1),50)},[he]);(0,_react.useEffect)(()=>he,[he]);const fe=!o&&(G||ue),Se=(0,_react.useMemo)(()=>(R??[]).slice(0,C),[R,C]),xe=(0,_react.useMemo)(()=>(B??[]).slice(0,L).map(_SearchPanel.normalizeSuggestion),[B,L]),me=fe&&!ce&&Se.length>0,ve=fe&&ce&&xe.length>0,Re=ve?xe.length:0;(0,_react.useEffect)(()=>{Re>0&&(0,_announce.announce)(1===Re?"1 suggestion":`${Re} suggestions`)},[Re]);const je=(0,_react.useCallback)(()=>{const e=(0,_hapticUtils.resolveHaptic)(q,"selection");e&&(0,_hapticUtils.triggerHaptic)(e)},[q]),Ce=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),y?.(e)},[je,y]),ye=(0,_react.useCallback)(e=>{je(),O.current?.blur(),de(!1),I?.(e)},[je,I]),Fe=(0,_react.useCallback)(e=>{je(),F?.(e),(0,_announce.announce)(`Removed ${e}`),W()},[je,F,W]),ke=(0,_react.useCallback)(()=>{je(),k?.(),(0,_announce.announce)("Recent searches cleared"),W()},[je,k,W]),Be={size:H.icon,color:o?z.colors["text-disabled"]:z.colors["text-subtle"],disabled:o},Le=d?(0,_slotIcon.renderSlotIcon)(d,Be):(z.settings.icons.search??_defaultIcons.defaultIcons.search)(Be),Ie=Boolean(g)&&"float"===f,qe=(0,_useFloatingLabel.useFloatingLabel)({label:g,enabled:Ie,floated:G||ce,variant:w,sizeTokens:H,leadingOffset:H.icon+z.space.md,trailingOffset:ce?H.icon+z.space.md:0,paddingLeft:A?z.space.none:H["padding-x"],color:z.colors["field-label"],style:S}),Ee=ce&&!o?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:se,hitSlop:8,accessibilityRole:"button",accessibilityLabel:"Clear search",children:(z.settings.icons.close??_defaultIcons.defaultIcons.close)({size:H.icon,color:z.colors["text-muted"]})}):null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:E,testID:N,children:[g&&!Ie?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:b,style:S,children:g}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.root,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.fieldWrap,children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldBase,{size:b,variant:w,focused:G,disabled:o,filled:ce,minHeight:H["min-height"],paddingHorizontal:A?z.space.none:H["padding-x"],borderRadius:p??U,leading:Le,trailing:Ee,topNotch:qe.topNotch,onPress:W,pressFeedback:!1,accessibilityRole:"search",accessibilityLabel:T??r,children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{ref:V,style:[$.input,{fontSize:H.text,color:M.color,...M.weightStyle},P],value:ne,onChangeText:ae,onSubmitEditing:le,onFocus:Q,onBlur:X,placeholder:!Ie||G||ce?r:void 0,placeholderTextColor:M.placeholderColor,autoFocus:i,editable:!o,returnKeyType:"search",selectionColor:(0,_FieldBase.resolveVariantColors)(z,w).borderFocusedRepresentative,accessibilityLabel:T??r,accessibilityState:{disabled:o},"aria-disabled":o,...D})}),qe.node]})}),x&&x.length>0?(0,_jsxRuntime.jsx)(_SearchPanel.SearchScopeBar,{scopes:x,scope:re||(x[0]?.value??""),disabled:o,haptic:q,onChange:oe}):null,me?(0,_jsxRuntime.jsx)(_SearchPanel.SearchRecents,{recents:Se,title:j,onSelect:Ce,onRemove:F?Fe:void 0,onClear:k?ke:void 0,onHold:pe,onRelease:ge}):null,ve?(0,_jsxRuntime.jsx)(_SearchPanel.SearchSuggestions,{suggestions:xe,query:ne,onSelect:ye,onHold:pe,onRelease:ge}):null]})});SearchBar.displayName="SearchBar";const buildStyles=e=>_reactNative.StyleSheet.create({root:{flexDirection:"row",alignItems:"center",width:"100%",position:"relative",overflow:"visible"},fieldWrap:{flex:1,position:"relative",overflow:"visible"},input:{flex:1,padding:e.space.none,margin:e.space.none,includeFontPadding:!1}});var _default=exports.default=SearchBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeSuggestion=exports.SearchSuggestions=exports.SearchScopeBar=exports.SearchRecents=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../AppIcon/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index3=require("../Chip/index.js"),_index4=require("../Text/index.js"),_highlight=require("./highlight.js"),_jsxRuntime=require("react/jsx-runtime");const TOUCH=44,ICON=18,normalizeSuggestion=e=>"string"==typeof e?{text:e}:e;exports.normalizeSuggestion=normalizeSuggestion;const SearchScopeBar=({scopes:e,scope:s,disabled:t,haptic:i,onChange:n})=>{const r=(0,_index.useTheme)(),o=(0,_react.useMemo)(()=>buildStyles(r),[r]);return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,keyboardShouldPersistTaps:"handled",contentContainerStyle:o.scopes,accessibilityLabel:"Search scope",children:e.map(e=>(0,_jsxRuntime.jsx)(_index3.Chip,{label:e.label,selected:e.value===s,disabled:t,haptic:i,onPress:()=>n(e.value),containerStyle:o.scopeChip},e.value))})};exports.SearchScopeBar=SearchScopeBar;const SearchRecents=({recents:e,title:s,onSelect:t,onRemove:i,onClear:n,onHold:r,onRelease:o})=>{const l=(0,_index.useTheme)(),a=(0,_react.useMemo)(()=>buildStyles(l),[l]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.list,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.header,children:[(0,_jsxRuntime.jsx)(_index4.Text,{variant:"label",accessibilityRole:"header",style:a.headerTitle,children:s}),n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:n,onPressIn:r,onPressOut:o,accessibilityRole:"button",accessibilityLabel:"Clear all recent searches",style:a.clearAll,children:(0,_jsxRuntime.jsx)(_index4.Text,{variant:"label",color:"link",children:"Clear all"})}):null]}),e.map(e=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.row,children:[(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>t(e),onPressIn:r,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e,accessibilityHint:"Searches again",android_ripple:{color:l.colors
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.normalizeSuggestion=exports.SearchSuggestions=exports.SearchScopeBar=exports.SearchRecents=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../AppIcon/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index3=require("../Chip/index.js"),_index4=require("../Text/index.js"),_highlight=require("./highlight.js"),_jsxRuntime=require("react/jsx-runtime");const TOUCH=44,ICON=18,normalizeSuggestion=e=>"string"==typeof e?{text:e}:e;exports.normalizeSuggestion=normalizeSuggestion;const SearchScopeBar=({scopes:e,scope:s,disabled:t,haptic:i,onChange:n})=>{const r=(0,_index.useTheme)(),o=(0,_react.useMemo)(()=>buildStyles(r),[r]);return(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,keyboardShouldPersistTaps:"handled",contentContainerStyle:o.scopes,accessibilityLabel:"Search scope",children:e.map(e=>(0,_jsxRuntime.jsx)(_index3.Chip,{label:e.label,selected:e.value===s,disabled:t,haptic:i,onPress:()=>n(e.value),containerStyle:o.scopeChip},e.value))})};exports.SearchScopeBar=SearchScopeBar;const SearchRecents=({recents:e,title:s,onSelect:t,onRemove:i,onClear:n,onHold:r,onRelease:o})=>{const l=(0,_index.useTheme)(),a=(0,_react.useMemo)(()=>buildStyles(l),[l]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.list,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.header,children:[(0,_jsxRuntime.jsx)(_index4.Text,{variant:"label",accessibilityRole:"header",style:a.headerTitle,children:s}),n?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:n,onPressIn:r,onPressOut:o,accessibilityRole:"button",accessibilityLabel:"Clear all recent searches",style:a.clearAll,children:(0,_jsxRuntime.jsx)(_index4.Text,{variant:"label",color:"link",children:"Clear all"})}):null]}),e.map(e=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:a.row,children:[(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>t(e),onPressIn:r,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e,accessibilityHint:"Searches again",android_ripple:{color:l.colors["surface-pressed"]},style:({pressed:e})=>[a.rowMain,e?{backgroundColor:l.colors["surface-pressed"]}:null],children:[(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"history",size:18,color:l.colors["text-subtle"]}),(0,_jsxRuntime.jsx)(_index4.Text,{variant:"body",numberOfLines:1,style:a.rowText,children:e})]}),i?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>i(e),onPressIn:r,onPressOut:o,accessibilityRole:"button",accessibilityLabel:`Remove ${e} from recent searches`,style:a.remove,children:(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"x",size:18,color:l.colors["text-muted"]})}):null]},e))]})};exports.SearchRecents=SearchRecents;const SuggestionRow=(0,_react.memo)(({item:e,query:s,onSelect:t,onHold:i,onRelease:n,theme:r,styles:o})=>{const l=(0,_highlight.splitHighlight)(e.text,s),a=e.icon?(0,_slotIcon.renderSlotIcon)(e.icon,{size:18,color:r.colors["text-subtle"],disabled:!1}):(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"search",size:18,color:r.colors["text-subtle"]});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>t(e),onPressIn:i,onPressOut:n,accessibilityRole:"button",accessibilityLabel:e.subtitle?`${e.text}, ${e.subtitle}`:e.text,android_ripple:{color:r.colors["surface-pressed"]},style:({pressed:e})=>[o.rowMain,o.suggestion,e?{backgroundColor:r.colors["surface-pressed"]}:null],children:[a,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:o.rowText,children:[(0,_jsxRuntime.jsx)(_index4.Text,{variant:"body",color:"secondary",numberOfLines:1,children:l.map(e=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:e.match?o.match:void 0,children:e.text},e.start))}),e.subtitle?(0,_jsxRuntime.jsx)(_index4.Text,{variant:"caption",numberOfLines:1,children:e.subtitle}):null]})]})});SuggestionRow.displayName="SuggestionRow";const SearchSuggestions=({suggestions:e,query:s,onSelect:t,onHold:i,onRelease:n})=>{const r=(0,_index.useTheme)(),o=(0,_react.useMemo)(()=>buildStyles(r),[r]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:o.list,children:e.map(e=>(0,_jsxRuntime.jsx)(SuggestionRow,{item:e,query:s,onSelect:t,onHold:i,onRelease:n,theme:r,styles:o},e.id??e.text))})};exports.SearchSuggestions=SearchSuggestions;const buildStyles=e=>({..._reactNative.StyleSheet.create({scopes:{flexDirection:"row",alignItems:"center",gap:e.space.sm,paddingTop:e.space.sm},scopeChip:{minHeight:44},list:{width:"100%",paddingTop:e.space.xs},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",minHeight:44,paddingHorizontal:e.space.xs},headerTitle:{flex:1},clearAll:{minHeight:44,minWidth:44,justifyContent:"center",alignItems:"flex-end"},row:{flexDirection:"row",alignItems:"center"},rowMain:{flex:1,flexDirection:"row",alignItems:"center",gap:e.space.md,minHeight:44,paddingHorizontal:e.space.xs},suggestion:{paddingVertical:e.space.xs},rowText:{flex:1},remove:{width:44,height:44,alignItems:"center",justifyContent:"center"}}),match:{...(0,_index.fontFor)(e,"bold"),color:e.colors["text-body"]}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SectionHeader=void 0;var _react=require("react"),_index=require("../../theme/index.js"),_index2=require("../FieldBase/index.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const SectionHeader=({children:e,variant:t="title",flush:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SectionHeader=void 0;var _react=require("react"),_index=require("../../theme/index.js"),_index2=require("../FieldBase/index.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const SectionHeader=({children:e,variant:t="title",flush:r=!1,required:i=!1,style:a,testID:s})=>{const o=(0,_index.useTheme)(),n=(0,_react.useMemo)(()=>({marginTop:r?0:o.space.lg,marginBottom:o.space.sm}),[o,r]),d="caps"===t?{variant:"overline",color:"tertiary",weight:void 0}:"sub"===t?{variant:"label",color:"primary",weight:"semibold"}:{variant:"title",color:void 0,weight:void 0};return(0,_jsxRuntime.jsxs)(_Text.Text,{variant:d.variant,color:d.color,weight:d.weight,accessibilityRole:"header",accessibilityLabel:i&&"string"==typeof e?`${e}, required`:void 0,style:[n,a],testID:s,children:[e,i?(0,_jsxRuntime.jsx)(_index2.RequiredMark,{}):null]})};exports.SectionHeader=SectionHeader;var _default=exports.default=SectionHeader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SegmentedControl=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../FieldBase/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const LABEL_LINE_HEIGHT_RATIO=1.25,SegmentedControl=exports.SegmentedControl=(0,_react.forwardRef)((e,t)=>{const{segments:i,label:r,helperText:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SegmentedControl=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index4=require("../FieldBase/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const LABEL_LINE_HEIGHT_RATIO=1.25,SegmentedControl=exports.SegmentedControl=(0,_react.forwardRef)((e,t)=>{const{segments:i,label:r,helperText:s,error:l,value:n,defaultValue:a,onChange:o,size:d="md",fullWidth:c=!0,disabled:u=!1,tone:m="primary",variant:x="segmented",radius:h,labelLines:g=1,haptic:_,accessibilityLabel:b,style:p,containerStyle:v,segmentStyle:f,selectedIndicatorStyle:y,textStyle:S,labelStyle:j,testID:C}=e,[R,w]=(0,_index.useControllableState)({value:n,defaultValue:a??i[0]?.value,onChange:o}),q=(0,_index2.useTheme)(),I=q.components["segmented-control"],N=(0,_react.useMemo)(()=>buildStyles(q),[q]),L=(0,_react.useMemo)(()=>(0,_index2.resolveSegmentedControlSize)(q,d),[q,d]),k=g>=2?2:1,F=k>1,M="segmented"===x,z="underline"===x,V="pills"===x,T=M?q.space[I["track-padding"]]:0,A=Math.ceil(1.25*L.text)*(k-1),E=I["underline-height"],D=q.space[I["pill-inset"]],H="number"==typeof h?h:h?q.radius[h]:void 0,W=H??q.radius.md,B=void 0===H?q.radius.sm:Math.max(H-T,0),P=H??q.radius.pill,O=H??q.radius.none,[G,X]=(0,_react.useState)(0),J=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,K=Math.max(0,i.findIndex(e=>e.value===R)),Q=G>0?(G-2*T)/Math.max(i.length,1):0,U=(0,_react.useCallback)((e,t)=>{if(t<=0)return;const i=t*e,r=q.motion.spring.snappy,s=_reactNative.Animated.spring(J,{toValue:i,damping:r.damping,stiffness:r.stiffness,mass:r.mass,overshootClamping:!0,useNativeDriver:!0});return s.start(),s},[q.motion.spring.snappy,J]);(0,_react.useEffect)(()=>{if(Q>0){const e=U(K,Q);return()=>e?.stop()}},[K,Q,U]);const Y=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.width;t!==G&&X(t)},[G]),Z=(0,_react.useCallback)(e=>{if(u)return;if(e.value===R)return;const t=(0,_index3.resolveHaptic)(_,"selection");t&&(0,_index3.triggerHaptic)(t),w(e.value)},[u,w,R,_]),$=M?q.colors.surface:V?q.colors["primary-soft"]:q.colors.primary,ee=M?B:V?P:O,te="neutral"===m?q.colors["text-body"]:q.colors.primary,ie=q.colors["bg-muted"],re=(0,_SquircleFill.useSquircle)(M,W,Y),se=!0===l||(0,_index4.hasFieldText)(l),le=se&&!u,ne=q.colors["field-border-error"],ae=q.size.border,oe=(0,_index4.hasFieldText)(r),de=se?l:s,ce=(0,_index4.hasFieldText)(de),ue=b??("string"==typeof r?r:void 0),me=(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"radiogroup",accessibilityLabel:ue,testID:C,style:[N.track,{...F?{minHeight:L.height+A}:{height:L.height},opacity:u?.55:1,alignSelf:c?"stretch":"flex-start"},M?{borderRadius:W,..._corners.smoothCorners,backgroundColor:re.active?"transparent":ie,padding:T}:z?{borderBottomColor:le?ne:q.colors["border-subtle"],borderBottomWidth:_reactNative.StyleSheet.hairlineWidth}:null,v,p],onLayout:re.onLayout,children:[re.active&&re.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:re.size.width,height:re.size.height,radius:W,fill:ie,stroke:le?ne:void 0,strokeWidth:ae}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:N.row,children:[Q>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[N.thumb,M?F?{top:0,bottom:0}:{top:0,height:L.height-2*T}:V?{top:D,bottom:D}:{bottom:0,height:E},{width:Q,borderRadius:ee,..._corners.smoothCorners,backgroundColor:$,transform:[{translateX:J}]},y]}):null,i.map(e=>{const t=e.value===R,i=t?te:q.colors["text-subtle"],r=(0,_slotIcon.renderSlotIcon)(e.icon,{color:i,size:L.icon,selected:t,disabled:u});return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>Z(e),disabled:u,accessibilityRole:"radio",accessibilityLabel:e.label,accessibilityState:{checked:t,selected:t,disabled:u},"aria-checked":t,"aria-disabled":u,style:({pressed:e})=>[N.segment,F?N.segmentMultiline:null,{paddingHorizontal:L["padding-x"],opacity:e&&!t?.7:1},f],children:[r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.segmentIcon,children:r}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[N.segmentLabel,F?N.segmentLabelMultiline:null,{color:i,fontSize:L.text,fontWeight:t?q.weight.semibold:q.weight.medium},S,j],numberOfLines:k,children:e.label})]},String(e.value))})]}),!le||z||re.active?null:(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{borderWidth:ae,borderColor:ne,borderRadius:M?W:P,..._corners.smoothCorners}]})]});return oe||ce?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{alignSelf:c?"stretch":"flex-start"},children:[oe?(0,_jsxRuntime.jsx)(_index4.FieldLabel,{size:d,children:r}):null,me,ce?(0,_jsxRuntime.jsx)(_index4.FieldMessage,{size:d,text:de,error:se}):null]}):me});SegmentedControl.displayName="SegmentedControl";const buildStyles=e=>_reactNative.StyleSheet.create({track:{flexDirection:"row",alignItems:"stretch",position:"relative"},row:{flex:1,flexDirection:"row",alignItems:"stretch",position:"relative",overflow:"hidden"},thumb:{position:"absolute",left:0},segment:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center"},segmentIcon:{marginRight:e.space.xs},segmentMultiline:{paddingVertical:e.space.xs},segmentLabel:{includeFontPadding:!1},segmentLabelMultiline:{flexShrink:1,textAlign:"center"}});var _default=exports.default=SegmentedControl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Select=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_Chevron=require("../FieldBase/Chevron.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_Notation=require("../Notation/Notation.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_jsxRuntime=require("react/jsx-runtime");const sameSelectValue=(e,t)=>String(e)===String(t),containsValue=(e,t)=>e.some(e=>sameSelectValue(e,t)),Select=exports.Select=(0,_react.forwardRef)((e,t)=>{const{options:i,getOptionLabel:l,getOptionValue:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Select=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_Chevron=require("../FieldBase/Chevron.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_Notation=require("../Notation/Notation.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_jsxRuntime=require("react/jsx-runtime");const sameSelectValue=(e,t)=>String(e)===String(t),containsValue=(e,t)=>e.some(e=>sameSelectValue(e,t)),Select=exports.Select=(0,_react.forwardRef)((e,t)=>{const{options:i,getOptionLabel:l,getOptionValue:n,getOptionDisabled:r,getOptionDescription:o,getOptionIcon:a,placeholder:s,onOpenChange:c,searchable:d=!1,haptic:u,label:x,help:p,title:_,required:h=!1,error:S,helperText:g,prefix:f,numberOfLines:v=1,disabled:b=!1,size:m="md",variant:j,leftIcon:y,rightIcon:C,chevronColor:F,chevronSize:O,borderRadius:R,accessibilityLabel:N,labelStyle:V,style:T,triggerStyle:B,textStyle:k,optionStyle:q,selectedOptionStyle:z,optionTextStyle:I,selectedOptionTextStyle:H,testID:L}=e,w=!0===e.multi,M=(0,_react.useCallback)(e=>l?l(e):e.label??"",[l]),P=(0,_react.useCallback)(e=>n?n(e):e.value,[n]),D=(0,_react.useCallback)(e=>r?r(e):!0===e.disabled,[r]),A=(0,_react.useCallback)(e=>o?o(e):e.description,[o]),$=(0,_react.useCallback)(e=>a?a(e):e.icon,[a]),E=(0,_index.useTheme)(),G=(0,_react.useMemo)(()=>buildStyles(E),[E]),J=(0,_index.resolveFieldSize)(E,m),K=(0,_FieldBase.resolveFieldTextStyle)(E,{disabled:b}),Q=j??E.settings.components.select?.defaultVariant??E.settings.components.field?.defaultVariant??"outlined",U=R??J.radius,[W,X]=(0,_react.useState)(!1),Y=(0,_react.useCallback)(t=>{if(w){const i=e.value??[];return containsValue(i,t)}return null!=e.value&&sameSelectValue(e.value,t)},[w,e.value]),Z=(0,_react.useMemo)(()=>{if(w){const t=e.value??[];return i.filter(e=>containsValue(t,P(e)))}const t=e.value;if(null==t)return[];const l=i.find(e=>sameSelectValue(P(e),t));return l?[l]:[]},[w,i,e.value,P]),ee=(0,_react.useCallback)(()=>{if(b)return;const e=(0,_index2.resolveHaptic)(u,"selection");e&&(0,_index2.triggerHaptic)(e),X(!0)},[b,u]),te=(0,_react.useCallback)(()=>{X(!1)},[]),ie=(0,_react.useCallback)(t=>{if(D(t))return;const i=P(t),l=(0,_index2.resolveHaptic)(u,"selection");if(l&&(0,_index2.triggerHaptic)(l),w){const t=e.value??[],l=containsValue(t,i)?t.filter(e=>!sameSelectValue(e,i)):[...t,i];return void e.onChange(l)}e.onChange(i),te()},[w,e,te,D,P,u]),le=0===Z.length?s??"Select…":Z.map(e=>M(e)).join(", "),ne=0===Z.length,re=!0===S||(0,_FieldBase.hasFieldText)(S),oe=(0,_FieldBase.hasFieldText)(x),ae=(0,_FieldBase.fieldTextAsString)(x),se=Math.round(1.4*J.text),ce=(0,_react.useMemo)(()=>({fontSize:J.text,color:K.placeholderColor}),[J.text,K.placeholderColor]),de={color:b?E.colors["field-icon-disabled"]:W?E.colors["field-icon-focus"]:E.colors["field-icon"],size:J.icon,disabled:b,focused:W,error:re},ue=0===Z.length?s??"No selection":`Selected: ${Z.map(e=>M(e)).join(", ")}`,xe=N??`${ae??"Select"}. ${ue}`;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[G.container,T],testID:L,children:[oe?(0,_jsxRuntime.jsx)(_FieldBase.FieldLabel,{size:m,required:h,help:p,style:V,children:x}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,collapsable:!1,children:(0,_jsxRuntime.jsxs)(_FieldBase.FieldBase,{size:m,variant:Q,disabled:b,error:re,filled:Z.length>0,onPress:ee,borderRadius:U,paddingHorizontal:"underline"===Q?E.space.none:void 0,accessibilityRole:"button",accessibilityLabel:xe,accessibilityState:{disabled:b,expanded:W},"aria-disabled":b,"aria-expanded":W,style:B,slotAlign:1===v?"center":"top",slotLineHeight:1===v?void 0:se,leading:y?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(y,de)}):null,trailing:C?(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_slotIcon.renderSlotIcon)(C,de)}):(0,_jsxRuntime.jsx)(_Chevron.Chevron,{color:F??(b?E.colors["text-disabled"]:E.colors["text-subtle"]),size:O??J.icon,open:W,style:G.chevron}),children:[(0,_FieldBase.hasFieldText)(f)?"string"==typeof f||"number"==typeof f?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[G.prefix,{color:K.placeholderColor,fontSize:J.text,lineHeight:1===v?void 0:se,marginRight:E.space.xs}],children:f}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[G.prefixNode,{minHeight:1===v?void 0:se,justifyContent:"center",marginRight:E.space.xs}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[G.prefix,{color:K.placeholderColor,fontSize:J.text,lineHeight:1===v?void 0:se}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:ce,children:f})})}):null,(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[G.triggerText,{color:ne?K.placeholderColor:K.color,fontSize:J.text,lineHeight:1===v?void 0:se,...K.weightStyle},k],numberOfLines:v,children:[le,ne&&h&&!oe?(0,_jsxRuntime.jsx)(_FieldBase.RequiredMark,{}):null]})]})}),(0,_jsxRuntime.jsx)(_FieldBase.FieldMessage,{size:m,error:re,text:re?S:g}),(0,_jsxRuntime.jsx)(_OptionSheet.OptionSheet,{open:W,onClose:te,onOpenChange:c,title:_??ae,accessibilityLabel:ae??(oe?_:void 0)??s??"Options",options:i,labelOf:M,getValue:P,disabledOf:D,descriptionOf:A,iconOf:$,isSelected:Y,onSelect:ie,multi:w,searchable:d,optionStyle:q,selectedOptionStyle:z,optionTextStyle:I,selectedOptionTextStyle:H,searchSelectionColor:(0,_FieldBase.resolveVariantColors)(E,Q).borderFocusedRepresentative})]})});Select.displayName="Select";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},label:{includeFontPadding:!1},triggerText:{flex:1,includeFontPadding:!1},errorText:{includeFontPadding:!1},prefix:{flexShrink:0,includeFontPadding:!1},prefixNode:{flexShrink:0},chevron:{marginLeft:e.space.sm}});var _default=exports.default=Select;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SignaturePad=void 0;var cache,_mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Input/index.js"),_index4=require("../Text/index.js"),_signatureGeometry=require("./signatureGeometry.js"),_writePng=require("./writePng"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var n,a,r=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,i)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((n=r&&Object.getOwnPropertyDescriptor(e,a))&&(n.get||n.set)?r(i,a,n):i[a]=e[a]);return i}const DEFAULT_LABELS={pad:"Signature pad",padHint:"Draw with one finger. To sign without drawing, use the type your name action.",caption:"Sign above the line. To start with an up or down stroke, rest your finger a moment first.",typedCaption:"Your typed name is used as your signature.",undo:"Undo",clear:"Clear",typeInstead:"Type your name instead",drawInstead:"Draw instead",typedLabel:"Type your name",typedPlaceholder:"Your full name",empty:"Not signed",signed:"Signed",typingAnnouncement:"Signing by typing your name. Your typed name is used as your signature. Choose Draw instead to sign with your finger.",drawingAnnouncement:"Signing by drawing. Use one finger on the pad.",clearedAnnouncement:"Signature cleared",undoneAnnouncement:"Last stroke removed",emptyError:"Add a signature first.",expand:"Expand",done:"Done",close:"Close"},STROKE_WIDTH=2.5,SIDEWAYS_TO_DRAW=6,UPRIGHT_TO_SCROLL=8,REST_TO_DRAW_MS=200,MIN_POINT_GAP=.8,DEFAULT_HEIGHT=180,EXPANDED_CHROME=200,DEFAULT_NAME_LENGTH=100,MAX_EXPORT_SCALE=3,MIN_TARGET=44,BASELINE_OPACITY=.3,DISABLED_OPACITY=.5,TARGET_STYLE={minHeight:44},defaultScriptFont=()=>_reactNative.Platform.select({ios:"Snell Roundhand",default:"cursive"}),cssFontStack=e=>"cursive"===e?"cursive":`'${e}', cursive`,useScreenReader=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{let e=!0;_reactNative.AccessibilityInfo.isScreenReaderEnabled().then(n=>{e&&t(n)});const n=_reactNative.AccessibilityInfo.addEventListener("screenReaderChanged",t);return()=>{e=!1,n.remove()}},[]),e},StrokePath=(0,_react.memo)(({points:e,color:t})=>(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:(0,_signatureGeometry.strokePath)(e),stroke:t,strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}));StrokePath.displayName="SignaturePadStroke";const Marks=({mode:e,strokes:t,name:n,color:a,fontFamily:r,width:i,height:s})=>"draw"===e?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t.map(e=>(0,_jsxRuntime.jsx)(StrokePath,{points:e.points,color:a},e.id))}):n?(0,_jsxRuntime.jsx)(_reactNativeSvg.Text,{x:i/2,y:s*_signatureGeometry.BASELINE_RATIO,fontSize:(0,_signatureGeometry.typedFontSize)(i,n),fontFamily:r,textAnchor:"middle",fill:a,children:n}):null,SignaturePadSurface=(0,_react.forwardRef)((e,t)=>{const{expandable:n,initialStrokes:a,onChange:r,initialTypedName:i="",onTypedNameChange:s,defaultMode:o="draw",onModeChange:c,onEmptyChange:d,allowTyped:l=!0,signedBy:u,signedAt:_,height:m=DEFAULT_HEIGHT,maxNameLength:p=DEFAULT_NAME_LENGTH,inkColor:g,paperColor:h,scriptFontFamily:y,labels:x,haptic:f="selection",disabled:v=!1,style:S,testID:R}=e,j=(0,_index.useTheme)(),w=void 0===g&&void 0===h,T=w?j.colors.text.primary:g??_index.lightTheme.colors.text.primary,b=w?j.colors.background.elevated:h??_index.lightTheme.colors.background.elevated,E=w?_index.lightTheme.colors.text.primary:T,C=w?_index.lightTheme.colors.background.elevated:b,A=E!==T||C!==b,N=y??defaultScriptFont(),k=(0,_react.useMemo)(()=>({...DEFAULT_LABELS,...x}),[x]),P=useScreenReader(),I=(0,_react.useRef)(null),L=(0,_react.useRef)(null),[D,G]=(0,_react.useState)(0),[M,F]=(0,_react.useState)(()=>(a??[]).map((e,t)=>({id:t+1,points:[...e]}))),O=(0,_react.useRef)(M),H=(0,_react.useRef)(M.length),B=(0,_react.useRef)(null),q=(0,_react.useRef)(null),[W,Y]=(0,_react.useState)(l?o:"draw"),[$,U]=(0,_react.useState)(i),[z,V]=(0,_react.useState)(null),X=(0,_react.useRef)(!1),{height:K}=(0,_reactNative.useWindowDimensions)(),[J,Q]=(0,_react.useState)(!1),[Z,ee]=(0,_react.useState)([]),te=(0,_react.useRef)({onChange:r,onTypedNameChange:s,onModeChange:c,onEmptyChange:d});(0,_react.useEffect)(()=>{te.current={onChange:r,onTypedNameChange:s,onModeChange:c,onEmptyChange:d}});const ne="draw"===W&&!v,ae="draw"===W?0===M.length:0===$.trim().length,re=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{re.current!==ae&&(re.current=ae,te.current.onEmptyChange?.(ae))},[ae]);const ie=(0,_react.useCallback)(e=>{O.current=e,F(e)},[]),se=(0,_react.useCallback)(()=>{V(Date.now()),te.current.onChange?.(O.current.map(e=>e.points))},[]),oe=(0,_react.useMemo)(()=>{const pan=e=>_reactNativeGestureHandler.Gesture.Pan().enabled(ne).runOnJS(!0).onBegin(e=>{B.current=(0,_signatureGeometry.pointOf)(e.x,e.y)}).onStart(t=>{q.current=e,H.current+=1;const n=(0,_signatureGeometry.pointOf)(t.x,t.y);ie([...O.current,{id:H.current,points:[B.current??n,n]}])}).onUpdate(t=>{if(q.current!==e)return;const n=O.current[O.current.length-1],a=(0,_signatureGeometry.pointOf)(t.x,t.y);(0,_signatureGeometry.distanceBetween)(n.points[n.points.length-1],a)<.8||ie([...O.current.slice(0,-1),{...n,points:[...n.points,a]}])}).onFinalize(()=>{q.current===e&&(q.current=null,se())}),e=pan("sideways").activeOffsetX([-6,6]).failOffsetY([-8,8]),t=pan("rested").activateAfterLongPress(200);return _reactNativeGestureHandler.Gesture.Race(e,t)},[ne,ie,se]),ce=(0,_react.useCallback)(e=>{Y(e),te.current.onModeChange?.(e),(0,_announce.announce)("type"===e?k.typingAnnouncement:k.drawingAnnouncement)},[k.typingAnnouncement,k.drawingAnnouncement]);(0,_react.useEffect)(()=>{P&&l&&!X.current&&"draw"===W&&0===O.current.length&&ce("type")},[P,l,W,ce]);const de=(0,_react.useCallback)(()=>{X.current=!0,ce("draw"===W?"type":"draw")},[W,ce]),le=(0,_react.useCallback)(e=>{U(e),V(Date.now()),te.current.onTypedNameChange?.(e)},[]),ue=(0,_react.useCallback)(()=>{"type"===W?le(""):(ie([]),se()),(0,_announce.announce)(k.clearedAnnouncement)},[W,le,ie,se,k.clearedAnnouncement]),me=(0,_react.useCallback)(()=>{"draw"===W&&0!==O.current.length&&(ie(O.current.slice(0,-1)),se(),(0,_announce.announce)(k.undoneAnnouncement))},[W,ie,se,k.undoneAnnouncement]),pe=(0,_react.useCallback)(()=>{ee(O.current.map(e=>e.points)),Q(!0)},[]),ge=(0,_react.useCallback)(()=>{Q(!1)},[]),he=(0,_react.useCallback)(()=>{ie(Z.map(e=>(H.current+=1,{id:H.current,points:[...e]}))),se(),Q(!1)},[Z,ie,se]),ye=D||_signatureGeometry.FALLBACK_WIDTH;(0,_react.useImperativeHandle)(t,()=>({toFile:()=>new Promise((e,t)=>{if(ae)return void t(new Error(k.emptyError));const n=A?L.current:I.current;if(!n)return void t(new Error("The signature pad is not on screen."));const a=Math.min(3,Math.max(1,_reactNative.PixelRatio.get()));n.toDataURL(n=>{try{e((0,_writePng.writePng)(n))}catch(e){t(e)}},{width:ye*a,height:m*a})}),toSvg:()=>(0,_signatureGeometry.buildSignatureSvg)({width:ye,height:m,mode:W,strokes:M.map(e=>e.points),typedName:$,ink:E,paper:C,strokeWidth:2.5,fontFamily:cssFontStack(N)}),clear:ue,undo:me,isEmpty:()=>ae}),[ae,k.emptyError,ye,m,W,M,$,A,E,C,N,ue,me]);const xe=(0,_react.useMemo)(()=>[{name:"undo",label:k.undo},{name:"clear",label:k.clear},...l?[{name:"toggleMode",label:"draw"===W?k.typeInstead:k.drawInstead}]:[]],[k.undo,k.clear,k.typeInstead,k.drawInstead,l,W]),fe=(0,_react.useCallback)(e=>{if(v)return;const{actionName:t}=e.nativeEvent;"undo"===t?me():"clear"===t?ue():"toggleMode"===t&&l&&de()},[v,me,ue,de,l]),ve=(0,_react.useCallback)(e=>{G(e.nativeEvent.layout.width)},[]),Se=(0,_react.useMemo)(()=>_reactNative.StyleSheet.create({root:{gap:j.spacing.sm},pad:{height:m,borderWidth:j.colors.border.width,borderColor:j.colors.border.primary,borderRadius:j.radius.md,..._corners.smoothCorners,overflow:"hidden",backgroundColor:b,opacity:v?.5:1},baseline:{position:"absolute",left:j.spacing.md,right:j.spacing.md,top:m*_signatureGeometry.BASELINE_RATIO,height:_reactNative.StyleSheet.hairlineWidth,backgroundColor:T,opacity:.3},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:j.spacing.xs},trailing:{flexDirection:"row",alignItems:"center",gap:j.spacing.xs},expandedRoot:{flex:1,padding:j.spacing.md,gap:j.spacing.sm,backgroundColor:j.colors.background.primary},expandedBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}),[j,m,b,T,v]),Re=$.trim(),je=_??z,we=u&&!ae?`Signed by ${u}${je?`, ${(0,_mobileCore.formatDateTime)(je)}`:""}`:null,Te="type"===W&&Re?`${k.pad}. ${Re}`:k.pad;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Se.root,S],testID:R,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:oe,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.pad,onLayout:ve,accessible:!0,accessibilityRole:"image",accessibilityLabel:Te,accessibilityHint:"draw"===W?k.padHint:void 0,accessibilityValue:{text:ae?k.empty:k.signed},accessibilityState:{disabled:v},"aria-disabled":v,accessibilityActions:xe,onAccessibilityAction:fe,children:[A?(0,_jsxRuntime.jsxs)(_reactNativeSvg.default,{ref:L,style:_reactNative.StyleSheet.absoluteFill,width:"100%",height:m,children:[(0,_jsxRuntime.jsx)(_reactNativeSvg.Rect,{x:"0",y:"0",width:"100%",height:"100%",fill:C}),(0,_jsxRuntime.jsx)(Marks,{mode:W,strokes:M,name:Re,color:E,fontFamily:N,width:ye,height:m})]}):null,(0,_jsxRuntime.jsxs)(_reactNativeSvg.default,{ref:I,width:"100%",height:m,children:[(0,_jsxRuntime.jsx)(_reactNativeSvg.Rect,{x:"0",y:"0",width:"100%",height:"100%",fill:b}),(0,_jsxRuntime.jsx)(Marks,{mode:W,strokes:M,name:Re,color:T,fontFamily:N,width:ye,height:m})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:Se.baseline})]})}),"type"===W?(0,_jsxRuntime.jsx)(_index3.Input,{label:k.typedLabel,placeholder:k.typedPlaceholder,value:$,onChangeText:le,maxLength:p,disabled:v,autoComplete:"name",textContentType:"name",autoCapitalize:"words",autoCorrect:!1,returnKeyType:"done",testID:R?`${R}-name`:void 0}):null,(0,_jsxRuntime.jsx)(_index4.Text,{variant:"caption",color:"tertiary",children:"draw"===W?k.caption:k.typedCaption}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.actions,children:[l?(0,_jsxRuntime.jsx)(_index2.Button,{title:"draw"===W?k.typeInstead:k.drawInstead,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:de,testID:R?`${R}-mode`:void 0}):(0,_jsxRuntime.jsx)(_reactNative.View,{}),"draw"===W?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.trailing,children:[M.length>0?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:k.undo,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:me,testID:R?`${R}-undo`:void 0}),(0,_jsxRuntime.jsx)(_index2.Button,{title:k.clear,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:ue,testID:R?`${R}-clear`:void 0})]}):null,n?(0,_jsxRuntime.jsx)(_index2.Button,{title:k.expand,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:pe,testID:R?`${R}-expand`:void 0}):null]}):null,"type"===W&&Re?(0,_jsxRuntime.jsx)(_index2.Button,{title:k.clear,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:ue,testID:R?`${R}-clear`:void 0}):null]}),we?(0,_jsxRuntime.jsx)(_index4.Text,{variant:"caption",color:"secondary",children:we}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:J,animationType:"slide",presentationStyle:"fullScreen",onRequestClose:ge,children:(0,_jsxRuntime.jsxs)(ExpandedRoot,{style:Se.expandedRoot,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.expandedBar,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:k.close,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,onPress:ge,testID:R?`${R}-close`:void 0}),(0,_jsxRuntime.jsx)(_index2.Button,{title:k.done,variant:"solid",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,onPress:he,testID:R?`${R}-done`:void 0})]}),J?(0,_jsxRuntime.jsx)(SignaturePadSurface,{expandable:!1,defaultMode:"draw",allowTyped:!1,initialStrokes:Z,onChange:ee,height:Math.max(DEFAULT_HEIGHT,K-200),inkColor:g,paperColor:h,scriptFontFamily:y,labels:x,haptic:f,testID:R?`${R}-expanded`:void 0}):null]})}):null]})});SignaturePadSurface.displayName="SignaturePadSurface";const ExpandedRoot="android"===_reactNative.Platform.OS?_reactNativeGestureHandler.GestureHandlerRootView:_reactNative.View,SignaturePad=exports.SignaturePad=(0,_react.forwardRef)((e,t)=>(0,_jsxRuntime.jsx)(SignaturePadSurface,{...e,expandable:!0,ref:t}));SignaturePad.displayName="SignaturePad";var _default=exports.default=SignaturePad;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SignaturePad=void 0;var cache,_mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../theme/index.js"),_announce=require("../../utils/announce.js"),_corners=require("../../utils/corners.js"),_index2=require("../Button/index.js"),_index3=require("../Input/index.js"),_index4=require("../Text/index.js"),_signatureGeometry=require("./signatureGeometry.js"),_writePng=require("./writePng"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var n,a,r=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,i)}for(a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((n=r&&Object.getOwnPropertyDescriptor(e,a))&&(n.get||n.set)?r(i,a,n):i[a]=e[a]);return i}const DEFAULT_LABELS={pad:"Signature pad",padHint:"Draw with one finger. To sign without drawing, use the type your name action.",caption:"Sign above the line. To start with an up or down stroke, rest your finger a moment first.",typedCaption:"Your typed name is used as your signature.",undo:"Undo",clear:"Clear",typeInstead:"Type your name instead",drawInstead:"Draw instead",typedLabel:"Type your name",typedPlaceholder:"Your full name",empty:"Not signed",signed:"Signed",typingAnnouncement:"Signing by typing your name. Your typed name is used as your signature. Choose Draw instead to sign with your finger.",drawingAnnouncement:"Signing by drawing. Use one finger on the pad.",clearedAnnouncement:"Signature cleared",undoneAnnouncement:"Last stroke removed",emptyError:"Add a signature first.",expand:"Expand",done:"Done",close:"Close"},STROKE_WIDTH=2.5,SIDEWAYS_TO_DRAW=6,UPRIGHT_TO_SCROLL=8,REST_TO_DRAW_MS=200,MIN_POINT_GAP=.8,DEFAULT_HEIGHT=180,EXPANDED_CHROME=200,DEFAULT_NAME_LENGTH=100,MAX_EXPORT_SCALE=3,MIN_TARGET=44,BASELINE_OPACITY=.3,DISABLED_OPACITY=.5,TARGET_STYLE={minHeight:44},defaultScriptFont=()=>_reactNative.Platform.select({ios:"Snell Roundhand",default:"cursive"}),cssFontStack=e=>"cursive"===e?"cursive":`'${e}', cursive`,useScreenReader=()=>{const[e,t]=(0,_react.useState)(!1);return(0,_react.useEffect)(()=>{let e=!0;_reactNative.AccessibilityInfo.isScreenReaderEnabled().then(n=>{e&&t(n)});const n=_reactNative.AccessibilityInfo.addEventListener("screenReaderChanged",t);return()=>{e=!1,n.remove()}},[]),e},StrokePath=(0,_react.memo)(({points:e,color:t})=>(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:(0,_signatureGeometry.strokePath)(e),stroke:t,strokeWidth:2.5,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}));StrokePath.displayName="SignaturePadStroke";const Marks=({mode:e,strokes:t,name:n,color:a,fontFamily:r,width:i,height:s})=>"draw"===e?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t.map(e=>(0,_jsxRuntime.jsx)(StrokePath,{points:e.points,color:a},e.id))}):n?(0,_jsxRuntime.jsx)(_reactNativeSvg.Text,{x:i/2,y:s*_signatureGeometry.BASELINE_RATIO,fontSize:(0,_signatureGeometry.typedFontSize)(i,n),fontFamily:r,textAnchor:"middle",fill:a,children:n}):null,SignaturePadSurface=(0,_react.forwardRef)((e,t)=>{const{expandable:n,initialStrokes:a,onChange:r,initialTypedName:i="",onTypedNameChange:s,defaultMode:o="draw",onModeChange:c,onEmptyChange:d,allowTyped:u=!0,signedBy:l,signedAt:_,height:m=DEFAULT_HEIGHT,maxNameLength:p=DEFAULT_NAME_LENGTH,inkColor:g,paperColor:h,scriptFontFamily:y,labels:x,haptic:f="selection",disabled:v=!1,style:S,testID:R}=e,j=(0,_index.useTheme)(),w=void 0===g&&void 0===h,T=w?j.colors["text-body"]:g??_index.lightTheme.colors["text-body"],b=w?j.colors.surface:h??_index.lightTheme.colors.surface,E=w?_index.lightTheme.colors["text-body"]:T,C=w?_index.lightTheme.colors.surface:b,A=E!==T||C!==b,N=y??defaultScriptFont(),P=(0,_react.useMemo)(()=>({...DEFAULT_LABELS,...x}),[x]),I=useScreenReader(),k=(0,_react.useRef)(null),L=(0,_react.useRef)(null),[D,G]=(0,_react.useState)(0),[M,F]=(0,_react.useState)(()=>(a??[]).map((e,t)=>({id:t+1,points:[...e]}))),O=(0,_react.useRef)(M),H=(0,_react.useRef)(M.length),B=(0,_react.useRef)(null),q=(0,_react.useRef)(null),[W,Y]=(0,_react.useState)(u?o:"draw"),[$,z]=(0,_react.useState)(i),[U,V]=(0,_react.useState)(null),X=(0,_react.useRef)(!1),{height:K}=(0,_reactNative.useWindowDimensions)(),[J,Q]=(0,_react.useState)(!1),[Z,ee]=(0,_react.useState)([]),te=(0,_react.useRef)({onChange:r,onTypedNameChange:s,onModeChange:c,onEmptyChange:d});(0,_react.useEffect)(()=>{te.current={onChange:r,onTypedNameChange:s,onModeChange:c,onEmptyChange:d}});const ne="draw"===W&&!v,ae="draw"===W?0===M.length:0===$.trim().length,re=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{re.current!==ae&&(re.current=ae,te.current.onEmptyChange?.(ae))},[ae]);const ie=(0,_react.useCallback)(e=>{O.current=e,F(e)},[]),se=(0,_react.useCallback)(()=>{V(Date.now()),te.current.onChange?.(O.current.map(e=>e.points))},[]),oe=(0,_react.useMemo)(()=>{const pan=e=>_reactNativeGestureHandler.Gesture.Pan().enabled(ne).runOnJS(!0).onBegin(e=>{B.current=(0,_signatureGeometry.pointOf)(e.x,e.y)}).onStart(t=>{q.current=e,H.current+=1;const n=(0,_signatureGeometry.pointOf)(t.x,t.y);ie([...O.current,{id:H.current,points:[B.current??n,n]}])}).onUpdate(t=>{if(q.current!==e)return;const n=O.current[O.current.length-1],a=(0,_signatureGeometry.pointOf)(t.x,t.y);(0,_signatureGeometry.distanceBetween)(n.points[n.points.length-1],a)<.8||ie([...O.current.slice(0,-1),{...n,points:[...n.points,a]}])}).onFinalize(()=>{q.current===e&&(q.current=null,se())}),e=pan("sideways").activeOffsetX([-6,6]).failOffsetY([-8,8]),t=pan("rested").activateAfterLongPress(200);return _reactNativeGestureHandler.Gesture.Race(e,t)},[ne,ie,se]),ce=(0,_react.useCallback)(e=>{Y(e),te.current.onModeChange?.(e),(0,_announce.announce)("type"===e?P.typingAnnouncement:P.drawingAnnouncement)},[P.typingAnnouncement,P.drawingAnnouncement]);(0,_react.useEffect)(()=>{I&&u&&!X.current&&"draw"===W&&0===O.current.length&&ce("type")},[I,u,W,ce]);const de=(0,_react.useCallback)(()=>{X.current=!0,ce("draw"===W?"type":"draw")},[W,ce]),ue=(0,_react.useCallback)(e=>{z(e),V(Date.now()),te.current.onTypedNameChange?.(e)},[]),le=(0,_react.useCallback)(()=>{"type"===W?ue(""):(ie([]),se()),(0,_announce.announce)(P.clearedAnnouncement)},[W,ue,ie,se,P.clearedAnnouncement]),me=(0,_react.useCallback)(()=>{"draw"===W&&0!==O.current.length&&(ie(O.current.slice(0,-1)),se(),(0,_announce.announce)(P.undoneAnnouncement))},[W,ie,se,P.undoneAnnouncement]),pe=(0,_react.useCallback)(()=>{ee(O.current.map(e=>e.points)),Q(!0)},[]),ge=(0,_react.useCallback)(()=>{Q(!1)},[]),he=(0,_react.useCallback)(()=>{ie(Z.map(e=>(H.current+=1,{id:H.current,points:[...e]}))),se(),Q(!1)},[Z,ie,se]),ye=D||_signatureGeometry.FALLBACK_WIDTH;(0,_react.useImperativeHandle)(t,()=>({toFile:()=>new Promise((e,t)=>{if(ae)return void t(new Error(P.emptyError));const n=A?L.current:k.current;if(!n)return void t(new Error("The signature pad is not on screen."));const a=Math.min(3,Math.max(1,_reactNative.PixelRatio.get()));n.toDataURL(n=>{try{e((0,_writePng.writePng)(n))}catch(e){t(e)}},{width:ye*a,height:m*a})}),toSvg:()=>(0,_signatureGeometry.buildSignatureSvg)({width:ye,height:m,mode:W,strokes:M.map(e=>e.points),typedName:$,ink:E,paper:C,strokeWidth:2.5,fontFamily:cssFontStack(N)}),clear:le,undo:me,isEmpty:()=>ae}),[ae,P.emptyError,ye,m,W,M,$,A,E,C,N,le,me]);const xe=(0,_react.useMemo)(()=>[{name:"undo",label:P.undo},{name:"clear",label:P.clear},...u?[{name:"toggleMode",label:"draw"===W?P.typeInstead:P.drawInstead}]:[]],[P.undo,P.clear,P.typeInstead,P.drawInstead,u,W]),fe=(0,_react.useCallback)(e=>{if(v)return;const{actionName:t}=e.nativeEvent;"undo"===t?me():"clear"===t?le():"toggleMode"===t&&u&&de()},[v,me,le,de,u]),ve=(0,_react.useCallback)(e=>{G(e.nativeEvent.layout.width)},[]),Se=(0,_react.useMemo)(()=>_reactNative.StyleSheet.create({root:{gap:j.space.sm},pad:{height:m,borderWidth:j.size.border,borderColor:j.colors.border,borderRadius:j.radius.md,..._corners.smoothCorners,overflow:"hidden",backgroundColor:b,opacity:v?.5:1},baseline:{position:"absolute",left:j.space.md,right:j.space.md,top:m*_signatureGeometry.BASELINE_RATIO,height:_reactNative.StyleSheet.hairlineWidth,backgroundColor:T,opacity:.3},actions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:j.space.xs},trailing:{flexDirection:"row",alignItems:"center",gap:j.space.xs},expandedRoot:{flex:1,padding:j.space.md,gap:j.space.sm,backgroundColor:j.colors.bg},expandedBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}),[j,m,b,T,v]),Re=$.trim(),je=_??U,we=l&&!ae?`Signed by ${l}${je?`, ${(0,_mobileCore.formatDateTime)(je)}`:""}`:null,Te="type"===W&&Re?`${P.pad}. ${Re}`:P.pad;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Se.root,S],testID:R,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:oe,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.pad,onLayout:ve,accessible:!0,accessibilityRole:"image",accessibilityLabel:Te,accessibilityHint:"draw"===W?P.padHint:void 0,accessibilityValue:{text:ae?P.empty:P.signed},accessibilityState:{disabled:v},"aria-disabled":v,accessibilityActions:xe,onAccessibilityAction:fe,children:[A?(0,_jsxRuntime.jsxs)(_reactNativeSvg.default,{ref:L,style:_reactNative.StyleSheet.absoluteFill,width:"100%",height:m,children:[(0,_jsxRuntime.jsx)(_reactNativeSvg.Rect,{x:"0",y:"0",width:"100%",height:"100%",fill:C}),(0,_jsxRuntime.jsx)(Marks,{mode:W,strokes:M,name:Re,color:E,fontFamily:N,width:ye,height:m})]}):null,(0,_jsxRuntime.jsxs)(_reactNativeSvg.default,{ref:k,width:"100%",height:m,children:[(0,_jsxRuntime.jsx)(_reactNativeSvg.Rect,{x:"0",y:"0",width:"100%",height:"100%",fill:b}),(0,_jsxRuntime.jsx)(Marks,{mode:W,strokes:M,name:Re,color:T,fontFamily:N,width:ye,height:m})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:Se.baseline})]})}),"type"===W?(0,_jsxRuntime.jsx)(_index3.Input,{label:P.typedLabel,placeholder:P.typedPlaceholder,value:$,onChangeText:ue,maxLength:p,disabled:v,autoComplete:"name",textContentType:"name",autoCapitalize:"words",autoCorrect:!1,returnKeyType:"done",testID:R?`${R}-name`:void 0}):null,(0,_jsxRuntime.jsx)(_index4.Text,{variant:"caption",color:"tertiary",children:"draw"===W?P.caption:P.typedCaption}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.actions,children:[u?(0,_jsxRuntime.jsx)(_index2.Button,{title:"draw"===W?P.typeInstead:P.drawInstead,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:de,testID:R?`${R}-mode`:void 0}):(0,_jsxRuntime.jsx)(_reactNative.View,{}),"draw"===W?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.trailing,children:[M.length>0?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:P.undo,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:me,testID:R?`${R}-undo`:void 0}),(0,_jsxRuntime.jsx)(_index2.Button,{title:P.clear,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:le,testID:R?`${R}-clear`:void 0})]}):null,n?(0,_jsxRuntime.jsx)(_index2.Button,{title:P.expand,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:pe,testID:R?`${R}-expand`:void 0}):null]}):null,"type"===W&&Re?(0,_jsxRuntime.jsx)(_index2.Button,{title:P.clear,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,disabled:v,onPress:le,testID:R?`${R}-clear`:void 0}):null]}),we?(0,_jsxRuntime.jsx)(_index4.Text,{variant:"caption",color:"secondary",children:we}):null,n?(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:J,animationType:"slide",presentationStyle:"fullScreen",onRequestClose:ge,children:(0,_jsxRuntime.jsxs)(ExpandedRoot,{style:Se.expandedRoot,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Se.expandedBar,children:[(0,_jsxRuntime.jsx)(_index2.Button,{title:P.close,variant:"ghost",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,onPress:ge,testID:R?`${R}-close`:void 0}),(0,_jsxRuntime.jsx)(_index2.Button,{title:P.done,variant:"solid",tone:"primary",size:"md",style:TARGET_STYLE,haptic:f,onPress:he,testID:R?`${R}-done`:void 0})]}),J?(0,_jsxRuntime.jsx)(SignaturePadSurface,{expandable:!1,defaultMode:"draw",allowTyped:!1,initialStrokes:Z,onChange:ee,height:Math.max(DEFAULT_HEIGHT,K-200),inkColor:g,paperColor:h,scriptFontFamily:y,labels:x,haptic:f,testID:R?`${R}-expanded`:void 0}):null]})}):null]})});SignaturePadSurface.displayName="SignaturePadSurface";const ExpandedRoot="android"===_reactNative.Platform.OS?_reactNativeGestureHandler.GestureHandlerRootView:_reactNative.View,SignaturePad=exports.SignaturePad=(0,_react.forwardRef)((e,t)=>(0,_jsxRuntime.jsx)(SignaturePadSurface,{...e,expandable:!0,ref:t}));SignaturePad.displayName="SignaturePad";var _default=exports.default=SignaturePad;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonText=exports.SkeletonCircle=exports.Skeleton=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_Gradient=require("../../theme/Gradient.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_SkeletonClock=require("./SkeletonClock.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");const resolveRadius=(e,t)=>"number"==typeof t?t:e.radius[t],resolveWidth=e=>void 0===e?"100%":e,radiusForShape=(e,t,s,i,r)=>{if(void 0!==r)return resolveRadius(e,r);switch(t){case"circle":return"number"==typeof s?Math.min(s,i)/2:i/2;case"rounded":return e.radius.md;default:return e.radius.sm}},Skeleton=({shape:e="rect",width:t="100%",height:s=16,radius:i,variant:r,speed:o,colors:n,style:a,testID:l})=>{const u=(0,_index.useTheme)(),c=(0,_SkeletonProvider.useSkeletonDefaults)(),d=(0,_SkeletonClock.useSkeletonClock)(),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonText=exports.SkeletonCircle=exports.Skeleton=void 0;var _react=require("react"),_reactNative=require("react-native"),_useReducedMotion=require("../../hooks/useReducedMotion.js"),_index=require("../../theme/index.js"),_Gradient=require("../../theme/Gradient.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_SkeletonClock=require("./SkeletonClock.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_jsxRuntime=require("react/jsx-runtime");const resolveRadius=(e,t)=>"number"==typeof t?t:e.radius[t],resolveWidth=e=>void 0===e?"100%":e,radiusForShape=(e,t,s,i,r)=>{if(void 0!==r)return resolveRadius(e,r);switch(t){case"circle":return"number"==typeof s?Math.min(s,i)/2:i/2;case"rounded":return e.radius.md;default:return e.radius.sm}},Skeleton=({shape:e="rect",width:t="100%",height:s=16,radius:i,variant:r,speed:o,colors:n,style:a,testID:l})=>{const u=(0,_index.useTheme)(),c=(0,_SkeletonProvider.useSkeletonDefaults)(),d=(0,_SkeletonClock.useSkeletonClock)(),m=(0,_useReducedMotion.useReducedMotion)(),h=r??c.variant??"shimmer",p=m&&"auto"===(c.animation??"auto");let x=h;d.enabled?p&&"shimmer"===h&&(x="pulse"):x="none";const k=n?.background??c.colors?.background??u.colors.skeleton,S=n?.highlight??c.colors?.highlight??u.colors["skeleton-highlight"],{responsive:_}=(0,_index2.useScreenDimensions)(),v=(0,_react.useMemo)(()=>buildStyles(),[]),y=resolveWidth(t),g=_.size(s),b=radiusForShape(u,e,y,g,i),[j,R]=(0,_react.useState)(0),f=(0,_react.useMemo)(()=>j<=0?0:Math.max(48,.7*j),[j]),w=(0,_react.useMemo)(()=>j<=0?0:d.shimmer.interpolate({inputRange:[0,1],outputRange:[-f,j]}),[d.shimmer,f,j]),C=(0,_react.useMemo)(()=>"none"===x?null:"pulse"===x?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{backgroundColor:S,opacity:d.pulse.interpolate({inputRange:[0,1],outputRange:[0,.55]})}]}):j<=0?null:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[v.shimmerBand,{width:f,transform:[{translateX:w}],experimental_backgroundImage:[(0,_Gradient.toBackgroundImage)({colors:["transparent",S,"transparent"],locations:[0,.5,1],start:{x:0,y:.5},end:{x:1,y:.5}})]}]}),[x,S,d.pulse,j,v.shimmerBand,f,w]);return(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:e=>{const t=e.nativeEvent.layout.width;t!==j&&R(t)},accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",testID:l,style:[v.base,{width:y,height:g,borderRadius:b,..._corners.smoothCorners,backgroundColor:k},a],children:C})};exports.Skeleton=Skeleton,Skeleton.displayName="Skeleton";const SkeletonCircle=({size:e,style:t,...s})=>{const{responsive:i}=(0,_index2.useScreenDimensions)(),r=i.size(e);return(0,_jsxRuntime.jsx)(Skeleton,{...s,shape:"circle",width:r,height:e,style:t})};exports.SkeletonCircle=SkeletonCircle,SkeletonCircle.displayName="SkeletonCircle";const SkeletonText=({lines:e=3,lastLineWidth:t="60%",spacing:s,fontSize:i,variant:r,speed:o,radius:n="sm",width:a="100%",style:l,testID:u})=>{const c=(0,_index.useTheme)(),d=s??c.space.xs,m=Math.max(1,e);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:u,children:Array.from({length:m}).map((e,s)=>{const l=s===m-1&&m>1?t:a;return(0,_jsxRuntime.jsx)(Skeleton,{shape:"text",width:l,height:i??c.text.base.size,radius:n,variant:r,speed:o,style:s<m-1?{marginBottom:d}:void 0},s)})})};exports.SkeletonText=SkeletonText,SkeletonText.displayName="SkeletonText";const buildStyles=()=>_reactNative.StyleSheet.create({base:{overflow:"hidden"},shimmerBand:{position:"absolute",top:0,bottom:0,left:0}});var _default=exports.default=Skeleton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,n=Object.defineProperty,s={__proto__:null,default:e};if(Object(e)!==e)return s;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,s)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=n&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?n(s,i,r):s[i]=e[i]);return s}const DEFAULT_REVEAL_FADE_MS=300,flattenStyle=e=>{if(!e)return{};return _reactNative.StyleSheet.flatten(e)??{}},resolveWidth=(e,t)=>"number"==typeof e?e:"string"!=typeof e||"auto"!==e&&"100%"!==e&&!/^\d+(\.\d+)?%$/.test(e)?t:e,resolveRadius=(e,t)=>"number"==typeof e?e:t,skeletonizeNode=(e,t,r,i,n,s="r")=>{if(null==t||"boolean"==typeof t)return null;if("string"==typeof t||"number"==typeof t)return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:"60%",height:14,variant:r,speed:i,colors:n},`${s}-text`);if(Array.isArray(t))return _react.Children.map(t,(t,o)=>skeletonizeNode(e,t,r,i,n,`${s}-${o}`));if(!(0,_react.isValidElement)(t))return null;const o=t,a=o.props??{},l=o.type;if(l===_SkeletonSkip.SkeletonSkip)return(0,_react.cloneElement)(o,{key:`${s}-skip`});if("function"==typeof l||"object"==typeof l){const e=l.Skeleton;if(e){const t=e;return(0,_jsxRuntime.jsx)(t,{...a},`${s}-self`)}}if(l===_reactNative.Image){const e=flattenStyle(a.style),t=resolveWidth(e.width,"100%"),o="number"==typeof e.height?e.height:120,l=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:t,height:o,radius:l,variant:r,speed:i,colors:n,style:{margin:"number"==typeof e.margin?e.margin:void 0}},`${s}-img`)}if(l===_reactNative.Text){const t=flattenStyle(a.style),o="number"==typeof t.fontSize?t.fontSize:e.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SkeletonContent=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_Skeleton=require("./Skeleton.js"),_SkeletonProvider=require("./SkeletonProvider.js"),_SkeletonSkip=require("./SkeletonSkip.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var r,i,n=Object.defineProperty,s={__proto__:null,default:e};if(Object(e)!==e)return s;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,s)}for(i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((r=n&&Object.getOwnPropertyDescriptor(e,i))&&(r.get||r.set)?n(s,i,r):s[i]=e[i]);return s}const DEFAULT_REVEAL_FADE_MS=300,flattenStyle=e=>{if(!e)return{};return _reactNative.StyleSheet.flatten(e)??{}},resolveWidth=(e,t)=>"number"==typeof e?e:"string"!=typeof e||"auto"!==e&&"100%"!==e&&!/^\d+(\.\d+)?%$/.test(e)?t:e,resolveRadius=(e,t)=>"number"==typeof e?e:t,skeletonizeNode=(e,t,r,i,n,s="r")=>{if(null==t||"boolean"==typeof t)return null;if("string"==typeof t||"number"==typeof t)return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:"60%",height:14,variant:r,speed:i,colors:n},`${s}-text`);if(Array.isArray(t))return _react.Children.map(t,(t,o)=>skeletonizeNode(e,t,r,i,n,`${s}-${o}`));if(!(0,_react.isValidElement)(t))return null;const o=t,a=o.props??{},l=o.type;if(l===_SkeletonSkip.SkeletonSkip)return(0,_react.cloneElement)(o,{key:`${s}-skip`});if("function"==typeof l||"object"==typeof l){const e=l.Skeleton;if(e){const t=e;return(0,_jsxRuntime.jsx)(t,{...a},`${s}-self`)}}if(l===_reactNative.Image){const e=flattenStyle(a.style),t=resolveWidth(e.width,"100%"),o="number"==typeof e.height?e.height:120,l=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:t,height:o,radius:l,variant:r,speed:i,colors:n,style:{margin:"number"==typeof e.margin?e.margin:void 0}},`${s}-img`)}if(l===_reactNative.Text){const t=flattenStyle(a.style),o="number"==typeof t.fontSize?t.fontSize:e.text.base.size,l=resolveWidth(t.width,"85%");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{shape:"text",width:l,height:Math.round(1.15*o),variant:r,speed:i,colors:n,style:{marginVertical:e.space.xxs}},`${s}-txt`)}if(null!=a.children)return(0,_react.cloneElement)(o,{key:`${s}-w`},skeletonizeNode(e,a.children,r,i,n,`${s}-c`));if(l===_reactNative.View){const e=flattenStyle(a.style);if(null!=e.width||null!=e.height){const t=resolveWidth(e.width,"100%"),o="number"==typeof e.height?e.height:20,a=resolveRadius(e.borderRadius,"sm");return(0,_jsxRuntime.jsx)(_Skeleton.Skeleton,{width:t,height:o,radius:a,variant:r,speed:i,colors:n},`${s}-vw`)}}return(0,_react.cloneElement)(o,{key:`${s}-leaf`})},SkeletonContent=({loading:e,children:t,placeholder:r,variant:i,speed:n,count:s=1,colors:o,fadeDuration:a,style:l,testID:c})=>{const u=(0,_index.useTheme)(),d=(0,_SkeletonProvider.useSkeletonDefaults)(),f=(0,_usePresenceMotion.usePresenceMotion)(),_=a??d.fadeDuration??(f.reduced?f.duration("default"):300),h=(0,_react.useRef)(e),p=(0,_react.useRef)((0,_index.createAnimatedValue)(e?0:1)).current;if((0,_react.useEffect)(()=>{let t;return h.current&&!e?(p.setValue(0),t=_reactNative.Animated.timing(p,{toValue:1,duration:_,useNativeDriver:!0}),t.start()):!h.current&&e&&p.setValue(1),h.current=e,()=>t?.stop()},[e,p,_]),!e)return _<=0?(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[l,{opacity:p}],testID:c,children:t});if(void 0!==r){const e=s>1?Array.from({length:s},(e,t)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:r},`sk-ph-${t}`)):r;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:c,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:e})}const y=s>1?Array.from({length:s},(e,r)=>(0,_jsxRuntime.jsx)(_react.default.Fragment,{children:t},`sk-rep-${r}`)):t;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:l,testID:c,accessible:!0,accessibilityLabel:"Loading",accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,accessibilityLiveRegion:"polite",children:skeletonizeNode(u,y,i,n,o)})};exports.SkeletonContent=SkeletonContent,SkeletonContent.displayName="SkeletonContent";var _default=exports.default=SkeletonContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SlideToConfirm=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,i=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((a=i&&Object.getOwnPropertyDescriptor(e,r))&&(a.get||a.set)?i(n,r,a):n[r]=e[r]);return n}const SIZE_MAP={sm:{height:44,pad:"xxs"},md:{height:56,pad:"xs"},lg:{height:64,pad:"sm"}},Chevron=({color:e,size:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:0,height:0,borderTopWidth:.4*t,borderBottomWidth:.4*t,borderLeftWidth:.55*t,borderTopColor:"transparent",borderBottomColor:"transparent",borderLeftColor:e,marginLeft:.2*t}}),ACCESSIBILITY_ACTIONS=[{name:"activate",label:"Confirm"},{name:"increment",label:"Confirm"}],SlideToConfirm=exports.SlideToConfirm=(0,_react.forwardRef)((e,t)=>{const{onConfirm:a,label:r="Slide to confirm",confirmedLabel:i="Confirmed",tone:n="primary",size:o="md",disabled:s=!1,threshold:l=.9,resetAfter:c=!1,haptic:d,icon:u,style:m,trackStyle:_,handleStyle:h,labelStyle:v,testID:f}=e,p=(0,_index.useTheme)(),b=SIZE_MAP[o],
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.SlideToConfirm=void 0;var cache,_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var a,r,i=Object.defineProperty,n={__proto__:null,default:e};if(Object(e)!==e)return n;if(cache||"function"!=typeof WeakMap||(cache=new WeakMap),cache){if(cache.has(e))return cache.get(e);cache.set(e,n)}for(r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((a=i&&Object.getOwnPropertyDescriptor(e,r))&&(a.get||a.set)?i(n,r,a):n[r]=e[r]);return n}const SIZE_MAP={sm:{height:44,pad:"xxs"},md:{height:56,pad:"xs"},lg:{height:64,pad:"sm"}},Chevron=({color:e,size:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:0,height:0,borderTopWidth:.4*t,borderBottomWidth:.4*t,borderLeftWidth:.55*t,borderTopColor:"transparent",borderBottomColor:"transparent",borderLeftColor:e,marginLeft:.2*t}}),ACCESSIBILITY_ACTIONS=[{name:"activate",label:"Confirm"},{name:"increment",label:"Confirm"}],SlideToConfirm=exports.SlideToConfirm=(0,_react.forwardRef)((e,t)=>{const{onConfirm:a,label:r="Slide to confirm",confirmedLabel:i="Confirmed",tone:n="primary",size:o="md",disabled:s=!1,threshold:l=.9,resetAfter:c=!1,haptic:d,icon:u,style:m,trackStyle:_,handleStyle:h,labelStyle:v,testID:f}=e,p=(0,_index.useTheme)(),b=SIZE_MAP[o],x=p.space[b.pad],g=b.height-2*x,S=(0,_react.useMemo)(()=>buildStyles(p,b),[p,b]),y=p.colors[n],[R,C]=(0,_react.useState)(!1),N=(0,_reactNativeReanimated.useSharedValue)(0),j=(0,_reactNativeReanimated.useSharedValue)(0),w=(0,_reactNativeReanimated.useSharedValue)(0),T=(0,_react.useRef)(null),k=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(d,"notificationSuccess");e&&(0,_index2.triggerHaptic)(e)},[d]),A=(0,_react.useCallback)(()=>{C(!1),N.value=(0,_reactNativeReanimated.withSpring)(0,{damping:18,stiffness:160,mass:1})},[N]),I=(0,_react.useCallback)(()=>{C(!0),k(),a(),!1!==c&&(T.current&&clearTimeout(T.current),T.current=setTimeout(A,c))},[k,a,c,A]),E=(0,_react.useCallback)(e=>{if(s||R)return;const{actionName:t}=e.nativeEvent;"activate"!==t&&"increment"!==t||I()},[s,R,I]);_react.default.useEffect(()=>()=>{(0,_reactNativeReanimated.cancelAnimation)(N),T.current&&clearTimeout(T.current)},[N]);const M=(0,_react.useCallback)(e=>{j.value=Math.max(0,e.nativeEvent.layout.width-g-2*x)},[j,g,x]),q=(0,_react.useMemo)(()=>{const e=l,t={damping:18,stiffness:160,mass:1},a={duration:p.motion.duration.fast,easing:_reactNativeReanimated.Easing.out(_reactNativeReanimated.Easing.cubic)};return _reactNativeGestureHandler.Gesture.Pan().enabled(!s&&!R).minDistance(0).onStart(()=>{"worklet";w.value=N.value}).onUpdate(e=>{"worklet";N.value=Math.min(Math.max(w.value+e.translationX,0),j.value)}).onEnd(()=>{"worklet";j.value>0&&N.value>=j.value*e?(N.value=(0,_reactNativeReanimated.withTiming)(j.value,a),(0,_reactNativeReanimated.runOnJS)(I)()):N.value=(0,_reactNativeReanimated.withSpring)(0,t)})},[s,R,l,N,j,w,I,p.motion.duration.fast]),O=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({transform:[{translateX:N.value}]})),W=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({width:N.value+g+x})),L=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=j.value>0?j.value:1;return{opacity:Math.max(0,1-N.value/(.6*e))}});return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[S.track,{backgroundColor:p.colors["bg-subtle"]},_,m],onLayout:M,testID:f,accessibilityRole:"adjustable",accessibilityLabel:R?i:r,accessibilityState:{disabled:s},"aria-disabled":s,accessibilityActions:ACCESSIBILITY_ACTIONS,onAccessibilityAction:E,children:[(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[S.fill,{backgroundColor:y,opacity:s?.5:1},W],pointerEvents:"none"}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[S.labelWrap,L],pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.label,{color:p.colors["text-muted"],fontSize:p.text.base.size},v],numberOfLines:1,children:R?i:r})}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:q,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[S.handle,{width:g,height:g,borderRadius:p.radius.pill,..._corners.smoothCorners,backgroundColor:p.colors.surface,opacity:s?.5:1,...p.shadow.card},h,O],children:u??(0,_jsxRuntime.jsx)(Chevron,{color:y,size:.5*g})})})]})});SlideToConfirm.displayName="SlideToConfirm";const buildStyles=(e,t)=>_reactNative.StyleSheet.create({track:{height:t.height,borderRadius:e.radius.pill,..._corners.smoothCorners,justifyContent:"center",overflow:"hidden",padding:e.space[t.pad]},fill:{position:"absolute",left:0,top:0,bottom:0,borderRadius:e.radius.pill,..._corners.smoothCorners},labelWrap:{position:"absolute",left:t.height,right:t.height},label:{textAlign:"center",includeFontPadding:!1},handle:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=SlideToConfirm;
|