@webority/mobile-ui 0.88.0 → 0.89.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/canvasKit/meta.js +1 -0
- 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 -0
- 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/canvasKit/meta.js +1 -0
- 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 -0
- package/lib/module/theme/tokens.js +1 -1
- package/lib/module/utils/color.js +1 -1
- package/lib/typescript/commonjs/canvasKit/meta.d.ts +32 -0
- 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 +362 -0
- 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/canvasKit/meta.d.ts +32 -0
- 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 +362 -0
- 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 +14 -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.DatePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_scale=require("../../theme/scale.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),transparentOf=e=>{const t=e.match(/^rgba?\(([^)]+)\)$/);if(!t)return"transparent";const[a,r,i]=t[1].split(",").map(e=>e.trim());return`rgba(${a}, ${r}, ${i}, 0)`},GRID_SIZE=12,DECADE_SPAN=10,startOfDay=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),toIso=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,addMonths=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),buildMonthMatrix=(e,t)=>{const a=e.getFullYear(),r=e.getMonth(),i=(new Date(a,r,1).getDay()-t+7)%7,n=[];for(let e=0;e<42;e+=1){const t=new Date(a,r,1-i+e);n.push({date:t,inMonth:t.getMonth()===r,iso:toIso(t)})}return n},weekdayLabels=(e,t)=>{const a=new Intl.DateTimeFormat(e,{weekday:"short"}),r=[];for(let e=0;e<7;e+=1){const i=new Date(1970,0,4+(t+e)%7);r.push(a.format(i))}return r},formatMonthYear=(e,t)=>new Intl.DateTimeFormat(t,{month:"long",year:"numeric"}).format(e),decadeStartFor=e=>10*Math.floor(e/10),buildYearCells=e=>{const t=e-4;return Array.from({length:12},(e,a)=>t+a)},buildDecadeCells=e=>{const t=decadeStartFor(e)-40;return Array.from({length:12},(e,a)=>t+10*a)},DatePicker=e=>{const{value:t,onChange:a,onClose:r,minDate:i,maxDate:n,disabledDates:s,mode:o="modal",locale:l="en-IN",weekStartsOn:c=0,title:d="Select Date",confirmLabel:u="Confirm",cancelLabel:m="Cancel",style:g,containerStyle:y,headerLabelStyle:_,navButtonStyle:p,footerButtonStyle:x,haptic:h,testID:v,label:b,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,formatValue:k,triggerStyle:A}=e,T=void 0!==e.visible,[M,V]=(0,_react.useState)(!1),I=T?e.visible:M,F=T?v:v?`${v}-calendar`:void 0,L=(0,_index.useTheme)(),Y=(0,_usePresenceMotion.usePresenceMotion)(),[$,z]=(0,_ModalSafeArea.useModalInsets)(),B=(0,_react.useMemo)(()=>buildStyles(L),[L]),[H,O]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{I&&O(startOfDay(new Date))},[I]);const W=t?startOfDay(t):H,[q,E]=(0,_react.useState)(W),[G,X]=(0,_react.useState)(t?startOfDay(t):null),[Z,J]=(0,_react.useState)("days"),K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)(0),te=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ae=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,re=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ie=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ne=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,se=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);X(e),E(e)}else X(null)},[t]);const oe=(0,_react.useMemo)(()=>{const e=new Set;return s?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[s]),le=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),ce=(0,_react.useMemo)(()=>n?startOfDay(n):null,[n]),de=(0,_react.useCallback)(e=>!!(le&&e.getTime()<le.getTime())||(!!(ce&&e.getTime()>ce.getTime())||!!oe.has(toIso(e))),[le,ce,oe]),ue=(0,_react.useMemo)(()=>buildMonthMatrix(q,c),[q,c]),me=(0,_react.useMemo)(()=>buildYearCells(q.getFullYear()),[q]),ge=(0,_react.useMemo)(()=>buildDecadeCells(q.getFullYear()),[q]),ye=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),pe=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(l,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),[l]),xe=(0,_react.useMemo)(()=>{if("days"===Z)return formatMonthYear(q,l);if("years"===Z){return`${me[0]} - ${me[me.length-1]}`}return`${ge[0]} - ${ge[ge.length-1]+9}`},[q,ge,l,Z,me]),he=(0,_react.useCallback)(e=>!!(le&&e<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),ve=(0,_react.useCallback)(e=>!!(le&&e+10-1<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),be=(0,_react.useCallback)(e=>{!1!==h&&(0,_index2.triggerHaptic)("impactLight");const t=e>0?1:-1,a=L.components.datePicker?.monthSlideDistance??32,r=L.components.datePicker?.monthSlideOutDuration??L.motion.duration.fast??140,i=L.components.datePicker?.monthSlideInDuration??L.motion.duration.fast??160,[n]=Y.range(-t*a,0),[s]=Y.range(t*a,0),o=Y.reduced?Y.duration("fast"):r,c=Y.reduced?Y.duration("fast"):i;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:n,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:0,duration:o,useNativeDriver:!0})]),_reactNative.Animated.timing(te,{toValue:s,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:0,duration:i,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:1,duration:c,useNativeDriver:!0})])]).start();const d=addMonths(q,e);E(d),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(d,l))},[q,h,l,ae,te,Y,L.components.datePicker,L.motion.duration.fast]),fe=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===Z?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):be(-1)},[be,Z,h]),je=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===Z?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):be(1)},[be,Z,h]),Re=(0,_react.useCallback)(()=>{const[e]=Y.range(.9,1),t=Y.reduced?Y.duration("normal"):L.components.datePicker?.viewTransitionDuration??L.motion.duration.normal??200;(0,_index.setNativeValue)(ie,0),(0,_index.setNativeValue)(ne,e),_reactNative.Animated.parallel([_reactNative.Animated.timing(ie,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ne,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ie,ne,Y,L.components.datePicker,L.motion.duration.normal]),Ne=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(h,"selection");if(e&&(0,_index2.triggerHaptic)(e),!Y.reduced){const e=L.components.datePicker?.headerPressDuration??80,t=L.components.datePicker?.headerReleaseDuration??100;_reactNative.Animated.sequence([_reactNative.Animated.timing(se,{toValue:.96,duration:e,useNativeDriver:!0}),_reactNative.Animated.timing(se,{toValue:1,duration:t,useNativeDriver:!0})]).start()}J(e=>"days"===e?"years":"years"===e?"decades":"years"),Re()},[Re,se,h,Y.reduced,L.components.datePicker]),De=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),E(t=>new Date(e,t.getMonth(),1)),J("days"),Re()},[Re,h]),we=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),E(t=>new Date(e+4,t.getMonth(),1)),J("years"),Re()},[Re,h]),Ce=(0,_react.useCallback)(e=>{if(de(e.date))return;const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),X(e.date),e.inMonth||E(new Date(e.date.getFullYear(),e.date.getMonth(),1)),Y.reduced||((0,_index.setNativeValue)(re,.7),_reactNative.Animated.spring(re,{toValue:1,damping:L.motion.spring.bouncy.damping,stiffness:L.motion.spring.bouncy.stiffness,mass:L.motion.spring.bouncy.mass,useNativeDriver:!0}).start())},[de,Y.reduced,re,L.motion.spring.bouncy,h]),Se=(0,_react.useCallback)(()=>{T||V(!1),r?.()},[T,r]),Pe=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:0,duration:Y.duration("normal"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Q,{toValue:0,duration:Y.duration("fast"),easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{Se()}):Se()},[K,o,Se,Y,Q,L.motion.easing.accelerate]),{handleGesture:ke,opacity:Ae}=(0,_useDragToDismiss.useDragToDismiss)({drag:U,travel:()=>ee.current||320,onDismiss:Pe}),Te=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Q,Ae),[Q,Ae]),Me=(0,_react.useMemo)(()=>K.interpolate({inputRange:[0,1],outputRange:[transparentOf(L.colors.background.overlay),L.colors.background.overlay]}),[K,L.colors.background.overlay]);(0,_react.useEffect)(()=>{if("modal"===o&&I){K.setValue(0),(0,_index.setNativeValue)(Q,0),(0,_index.setNativeValue)(U,0),(0,_index.setNativeValue)(Ae,1);const e=Y.reduced?_reactNative.Animated.timing(Q,{toValue:1,duration:Y.duration("normal"),useNativeDriver:!0}):_reactNative.Animated.spring(Q,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0}),t=_reactNative.Animated.parallel([_reactNative.Animated.timing(K,{toValue:1,duration:Y.duration("normal"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),e]);return t.start(),()=>t.stop()}},[I,o,K,Y,Q,U,Ae,L.motion]);const Ve=(0,_react.useCallback)(()=>{!1!==h&&(0,_index2.triggerHaptic)("selection"),Pe()},[Pe,h]),Ie=(0,_react.useCallback)(()=>{G&&(!1!==h&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(G),Pe())},[Pe,a,G,h]),Fe=Q.interpolate({inputRange:[0,1],outputRange:Y.range(320,0)}),Le=(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.title,accessibilityRole:"header",children:d})}),Ye=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[B.card,g,y],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:ke,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.handle}),Le]})}):Le,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:fe,style:({pressed:e})=>[B.navBtn,e&&B.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Previous month":"years"===Z?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ne,style:[B.headerLabelWrap,_],accessibilityRole:"button",accessibilityLabel:"days"===Z?`${xe}, switch to year selection`:"years"===Z?`${xe}, switch to decade selection`:`${xe}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[B.headerLabelInner,{transform:[{scale:se}],opacity:"days"===Z?ae:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[B.headerLabel,{transform:[{translateX:"days"===Z?te:0}]}],accessibilityLiveRegion:"polite",children:xe}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.headerCaret,children:(L.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:L.typography.fontSize.sm,color:L.colors.text.secondary})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:je,style:({pressed:e})=>[B.navBtn,e&&B.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Next month":"years"===Z?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.navText,children:"›"})})]}),"days"===Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.weekdayRow,children:ye.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:B.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.grid,{opacity:ae,transform:[{translateX:te}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:ue.slice(7*t,7*t+7).map(e=>{const t=de(e.date),a=!!G&&isSameDay(e.date,G),r=isSameDay(e.date,H),i=a?L.colors.primary:"transparent",n=r&&!a?L.colors.primary:"transparent",s=a?L.colors.onPrimary:e.inMonth?t?L.colors.text.disabled:L.colors.text.primary:L.colors.text.tertiary,o=t?.3:e.inMonth?1:.4;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>Ce(e),accessibilityRole:"button",accessibilityLabel:pe.format(e.date),accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:B.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.dayInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:re}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.dayText,{color:s}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===Z?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:me.slice(4*t,4*t+4).map(e=>{const t=he(e),a=!!G&&G.getFullYear()===e,r=H.getFullYear()===e,i=a?L.colors.primary:"transparent",n=r&&!a?L.colors.primary:"transparent",s=a?L.colors.onPrimary:t?L.colors.text.disabled:L.colors.text.primary,o=t?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>De(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:B.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[B.yearInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.yearText,{color:s}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.yearGrid,{opacity:ie,transform:[{scale:ne}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:B.gridRow,children:ge.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=ve(e),r=!!G&&decadeStartFor(G.getFullYear())===e,i=decadeStartFor(H.getFullYear())===e,n=r?L.colors.primary:"transparent",s=i&&!r?L.colors.primary:"transparent",o=r?L.colors.onPrimary:a?L.colors.text.disabled:L.colors.text.primary,l=a?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:a,onPress:()=>we(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},"aria-selected":r,"aria-disabled":a,style:B.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[B.yearInner,{backgroundColor:n,borderColor:s,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.decadeRangeText,{color:r?L.colors.onPrimary:L.colors.text.tertiary}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:B.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ve,style:({pressed:e})=>[B.footerBtn,B.footerCancel,e&&B.footerBtnPressed,x],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.footerBtnText,{color:L.colors.text.secondary}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ie,disabled:!G,style:({pressed:e})=>[B.footerBtn,B.footerConfirm,{backgroundColor:L.colors.primary,opacity:G?1:.5},e&&{backgroundColor:L.colors.primaryHover},x],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!G},"aria-disabled":!G,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[B.footerBtnText,{color:L.colors.onPrimary}],children:u})})]})]}),$e=t?(k??(e=>e.toLocaleDateString()))(t):void 0,ze=!T;if("inline"===o)return I||ze?ze?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:$e,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,onPress:()=>V(!0),triggerStyle:A,testID:v}),I?Ye:null]}):Ye:null;const Be=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:Pe,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:z,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[B.backdrop,{backgroundColor:Me}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:Pe,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[B.sheetWrap,{paddingBottom:Math.max($.bottom,L.spacing.lg),opacity:Te,transform:[{translateY:_reactNative.Animated.add(Fe,U)}]}],onLayout:e=>{ee.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Ye}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})});return ze?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:$e,placeholder:f,helperText:j,error:R,required:N,disabled:D,size:w,variant:C,clearable:S,onClear:P,onPress:()=>V(!0),triggerStyle:A,testID:v}),Be]}):Be};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadows.lg,a=e.components.datePicker;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.spacing.md,paddingBottom:e.spacing.lg},card:{backgroundColor:e.colors.background.elevated,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.spacing.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.spacing.lg,paddingTop:e.spacing.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners,backgroundColor:e.colors.border.secondary,marginBottom:e.spacing.sm},titleRow:{marginBottom:e.spacing.sm},title:{fontSize:e.typography.fontSize.lg,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:e.components.datePicker?.navButtonSize??36,height:e.components.datePicker?.navButtonSize??36,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:(0,_scale.fontSizeOf)(e,a?.navText??"2xl","components.datePicker.navText"),lineHeight:a?.navTextLineHeight??26,color:e.colors.text.primary,fontWeight:e.typography.fontWeight.semibold},headerLabelWrap:{flex:1,alignItems:"center"},headerLabelInner:{flexDirection:"row",alignItems:"center",justifyContent:"center"},headerLabel:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},headerCaret:{marginLeft:e.spacing.xs,alignItems:"center",justifyContent:"center"},weekdayRow:{flexDirection:"row",marginBottom:e.spacing.xs},weekdayCell:{flex:1,alignItems:"center",paddingVertical:e.spacing.xs},weekdayText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,color:e.colors.text.tertiary,letterSpacing:e.typography.letterSpacing.wide},grid:{},gridRow:{flexDirection:"row"},dayCell:{flex:1,aspectRatio:1,alignItems:"center",justifyContent:"center",padding:(0,_scale.spaceOf)(e,a?.dayCellPadding??"xxs","components.datePicker.dayCellPadding")},dayInner:{width:"100%",height:"100%",borderRadius:(0,_scale.radiusOf)(e,a?.dayInnerRadius??"pill","components.datePicker.dayInnerRadius"),..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dayText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.medium},yearGrid:{},yearCell:{flex:1,aspectRatio:1.6,alignItems:"center",justifyContent:"center",padding:(0,_scale.spaceOf)(e,a?.yearCellPadding??"xs","components.datePicker.yearCellPadding")},yearInner:{width:"100%",height:"100%",borderRadius:(0,_scale.radiusOf)(e,a?.yearInnerRadius??"lg","components.datePicker.yearInnerRadius"),..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},yearText:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold},decadeRangeText:{fontSize:e.typography.fontSize.xs,fontWeight:e.typography.fontWeight.medium,marginTop:(0,_scale.spaceOf)(e,a?.decadeRangeMarginTop??"xxs","components.datePicker.decadeRangeMarginTop")},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.spacing.lg,gap:e.spacing.sm},footerBtn:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:e.components.datePicker?.footerButtonMinHeight??40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.semibold}})};var _default=exports.default=DatePicker;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DatePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const NAV_BUTTON_SIZE=36,AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),GRID_SIZE=12,DECADE_SPAN=10,startOfDay=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),isSameDay=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),toIso=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,addMonths=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),buildMonthMatrix=(e,t)=>{const a=e.getFullYear(),r=e.getMonth(),i=(new Date(a,r,1).getDay()-t+7)%7,s=[];for(let e=0;e<42;e+=1){const t=new Date(a,r,1-i+e);s.push({date:t,inMonth:t.getMonth()===r,iso:toIso(t)})}return s},weekdayLabels=(e,t)=>{const a=new Intl.DateTimeFormat(e,{weekday:"short"}),r=[];for(let e=0;e<7;e+=1){const i=new Date(1970,0,4+(t+e)%7);r.push(a.format(i))}return r},formatMonthYear=(e,t)=>new Intl.DateTimeFormat(t,{month:"long",year:"numeric"}).format(e),decadeStartFor=e=>10*Math.floor(e/10),buildYearCells=e=>{const t=e-4;return Array.from({length:12},(e,a)=>t+a)},buildDecadeCells=e=>{const t=decadeStartFor(e)-40;return Array.from({length:12},(e,a)=>t+10*a)},DatePicker=e=>{const{value:t,onChange:a,onClose:r,minDate:i,maxDate:s,disabledDates:n,mode:o="modal",locale:l="en-IN",weekStartsOn:c=0,title:d="Select Date",confirmLabel:u="Confirm",cancelLabel:m="Cancel",style:g,containerStyle:_,headerLabelStyle:x,navButtonStyle:y,footerButtonStyle:h,haptic:b,testID:v,label:p,placeholder:f,helperText:j,error:N,required:R,disabled:w,size:D,variant:C,clearable:A,onClear:S,formatValue:T,triggerStyle:V}=e,M=void 0!==e.visible,[k,P]=(0,_react.useState)(!1),I=M?e.visible:k,F=M?v:v?`${v}-calendar`:void 0,Y=(0,_index.useTheme)(),L=(0,_usePresenceMotion.usePresenceMotion)(),[z,B]=(0,_ModalSafeArea.useModalInsets)(),$=(0,_react.useMemo)(()=>buildStyles(Y),[Y]),[H,q]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{I&&q(startOfDay(new Date))},[I]);const E=t?startOfDay(t):H,[O,W]=(0,_react.useState)(E),[G,X]=(0,_react.useState)(t?startOfDay(t):null),[Z,U]=(0,_react.useState)("days"),J=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)(0),te=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ae=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,re=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ie=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,se=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,ne=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);X(e),W(e)}else X(null)},[t]);const oe=(0,_react.useMemo)(()=>{const e=new Set;return n?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[n]),le=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),ce=(0,_react.useMemo)(()=>s?startOfDay(s):null,[s]),de=(0,_react.useCallback)(e=>!!(le&&e.getTime()<le.getTime())||(!!(ce&&e.getTime()>ce.getTime())||!!oe.has(toIso(e))),[le,ce,oe]),ue=(0,_react.useMemo)(()=>buildMonthMatrix(O,c),[O,c]),me=(0,_react.useMemo)(()=>buildYearCells(O.getFullYear()),[O]),ge=(0,_react.useMemo)(()=>buildDecadeCells(O.getFullYear()),[O]),xe=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),ye=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(l,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),[l]),he=(0,_react.useMemo)(()=>{if("days"===Z)return formatMonthYear(O,l);if("years"===Z){return`${me[0]} - ${me[me.length-1]}`}return`${ge[0]} - ${ge[ge.length-1]+9}`},[O,ge,l,Z,me]),be=(0,_react.useCallback)(e=>!!(le&&e<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),ve=(0,_react.useCallback)(e=>!!(le&&e+10-1<le.getFullYear())||!!(ce&&e>ce.getFullYear()),[le,ce]),pe=(0,_react.useCallback)(e=>{!1!==b&&(0,_index2.triggerHaptic)("impactLight");const t=e>0?1:-1,a=Y.motion.duration.fast,r=Y.motion.duration.fast,[i]=L.range(32*-t,0),[s]=L.range(32*t,0),n=L.reduced?L.duration("fast"):a,o=L.reduced?L.duration("fast"):r;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:i,duration:a,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:0,duration:n,useNativeDriver:!0})]),_reactNative.Animated.timing(te,{toValue:s,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:0,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:1,duration:o,useNativeDriver:!0})])]).start();const c=addMonths(O,e);W(c),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(c,l))},[O,b,l,ae,te,L,Y.motion.duration.fast]),fe=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==b&&(0,_index2.triggerHaptic)("impactLight"),W("years"===Z?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):pe(-1)},[pe,Z,b]),je=(0,_react.useCallback)(()=>{"days"!==Z?(!1!==b&&(0,_index2.triggerHaptic)("impactLight"),W("years"===Z?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):pe(1)},[pe,Z,b]),Ne=(0,_react.useCallback)(()=>{const[e]=L.range(.9,1),t=L.reduced?L.duration("default"):Y.motion.duration.default;(0,_index.setNativeValue)(ie,0),(0,_index.setNativeValue)(se,e),_reactNative.Animated.parallel([_reactNative.Animated.timing(ie,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(se,{toValue:1,duration:t,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ie,se,L,Y.motion.duration.default]),Re=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(b,"selection");if(e&&(0,_index2.triggerHaptic)(e),!L.reduced){const e=80,t=100;_reactNative.Animated.sequence([_reactNative.Animated.timing(ne,{toValue:.96,duration:e,useNativeDriver:!0}),_reactNative.Animated.timing(ne,{toValue:1,duration:t,useNativeDriver:!0})]).start()}U(e=>"days"===e?"years":"years"===e?"decades":"years"),Ne()},[Ne,ne,b,L.reduced]),we=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(b,"selection");t&&(0,_index2.triggerHaptic)(t),W(t=>new Date(e,t.getMonth(),1)),U("days"),Ne()},[Ne,b]),De=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(b,"selection");t&&(0,_index2.triggerHaptic)(t),W(t=>new Date(e+4,t.getMonth(),1)),U("years"),Ne()},[Ne,b]),Ce=(0,_react.useCallback)(e=>{if(de(e.date))return;const t=(0,_index2.resolveHaptic)(b,"selection");t&&(0,_index2.triggerHaptic)(t),X(e.date),e.inMonth||W(new Date(e.date.getFullYear(),e.date.getMonth(),1)),L.reduced||((0,_index.setNativeValue)(re,.7),_reactNative.Animated.spring(re,{toValue:1,damping:Y.motion.spring.bouncy.damping,stiffness:Y.motion.spring.bouncy.stiffness,mass:Y.motion.spring.bouncy.mass,useNativeDriver:!0}).start())},[de,L.reduced,re,Y.motion.spring.bouncy,b]),Ae=(0,_react.useCallback)(()=>{M||P(!1),r?.()},[M,r]),Se=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(J,{toValue:0,duration:L.duration("default"),easing:_reactNative.Easing.bezier(...Y.motion.ease.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(K,{toValue:0,duration:L.duration("fast"),easing:_reactNative.Easing.bezier(...Y.motion.ease.accelerate),useNativeDriver:!0})]).start(()=>{Ae()}):Ae()},[J,o,Ae,L,K,Y.motion.ease.accelerate]),{handleGesture:Te,opacity:Ve}=(0,_useDragToDismiss.useDragToDismiss)({drag:Q,travel:()=>ee.current||320,onDismiss:Se}),Me=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(K,Ve),[K,Ve]),ke=(0,_react.useMemo)(()=>J.interpolate({inputRange:[0,1],outputRange:[(0,_color.transparentOf)(Y.colors.scrim),Y.colors.scrim]}),[J,Y.colors.scrim]);(0,_react.useEffect)(()=>{if("modal"===o&&I){J.setValue(0),(0,_index.setNativeValue)(K,0),(0,_index.setNativeValue)(Q,0),(0,_index.setNativeValue)(Ve,1);const e=L.reduced?_reactNative.Animated.timing(K,{toValue:1,duration:L.duration("default"),useNativeDriver:!0}):_reactNative.Animated.spring(K,{toValue:1,damping:Y.motion.spring.gentle.damping,stiffness:Y.motion.spring.gentle.stiffness,mass:Y.motion.spring.gentle.mass,useNativeDriver:!0}),t=_reactNative.Animated.parallel([_reactNative.Animated.timing(J,{toValue:1,duration:L.duration("default"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),e]);return t.start(),()=>t.stop()}},[I,o,J,L,K,Q,Ve,Y.motion]);const Pe=(0,_react.useCallback)(()=>{!1!==b&&(0,_index2.triggerHaptic)("selection"),Se()},[Se,b]),Ie=(0,_react.useCallback)(()=>{G&&(!1!==b&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(G),Se())},[Se,a,G,b]),Fe=K.interpolate({inputRange:[0,1],outputRange:L.range(320,0)}),Ye=(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:$.title,accessibilityRole:"header",children:d})}),Le=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[$.card,g,_],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Te,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.handle}),Ye]})}):Ye,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:fe,style:({pressed:e})=>[$.navBtn,e&&$.navBtnPressed,y],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Previous month":"years"===Z?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:$.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Re,style:[$.headerLabelWrap,x],accessibilityRole:"button",accessibilityLabel:"days"===Z?`${he}, switch to year selection`:"years"===Z?`${he}, switch to decade selection`:`${he}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[$.headerLabelInner,{transform:[{scale:ne}],opacity:"days"===Z?ae:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[$.headerLabel,{transform:[{translateX:"days"===Z?te:0}]}],accessibilityLiveRegion:"polite",children:he}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.headerCaret,children:(Y.settings.icons.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:Y.text.sm.size,color:Y.colors["text-muted"]})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:je,style:({pressed:e})=>[$.navBtn,e&&$.navBtnPressed,y],accessibilityRole:"button",accessibilityLabel:"days"===Z?"Next month":"years"===Z?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:$.navText,children:"›"})})]}),"days"===Z?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.weekdayRow,children:xe.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:$.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[$.grid,{opacity:ae,transform:[{translateX:te}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.gridRow,children:ue.slice(7*t,7*t+7).map(e=>{const t=de(e.date),a=!!G&&isSameDay(e.date,G),r=isSameDay(e.date,H),i=a?Y.colors.primary:"transparent",s=r&&!a?Y.colors.primary:"transparent",n=a?Y.colors["on-primary"]:e.inMonth?t?Y.colors["text-disabled"]:Y.colors["text-body"]:Y.colors["text-subtle"],o=t?.3:e.inMonth?1:.4;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>Ce(e),accessibilityRole:"button",accessibilityLabel:ye.format(e.date),accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:$.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[$.dayInner,{backgroundColor:i,borderColor:s,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:re}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.dayText,{color:n}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===Z?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[$.yearGrid,{opacity:ie,transform:[{scale:se}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.gridRow,children:me.slice(4*t,4*t+4).map(e=>{const t=be(e),a=!!G&&G.getFullYear()===e,r=H.getFullYear()===e,i=a?Y.colors.primary:"transparent",s=r&&!a?Y.colors.primary:"transparent",n=a?Y.colors["on-primary"]:t?Y.colors["text-disabled"]:Y.colors["text-body"],o=t?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:t,onPress:()=>we(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:$.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[$.yearInner,{backgroundColor:i,borderColor:s,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.yearText,{color:n}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[$.yearGrid,{opacity:ie,transform:[{scale:se}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:$.gridRow,children:ge.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=ve(e),r=!!G&&decadeStartFor(G.getFullYear())===e,i=decadeStartFor(H.getFullYear())===e,s=r?Y.colors.primary:"transparent",n=i&&!r?Y.colors.primary:"transparent",o=r?Y.colors["on-primary"]:a?Y.colors["text-disabled"]:Y.colors["text-body"],l=a?.3:1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{disabled:a,onPress:()=>De(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},"aria-selected":r,"aria-disabled":a,style:$.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[$.yearInner,{backgroundColor:s,borderColor:n,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.decadeRangeText,{color:r?Y.colors["on-primary"]:Y.colors["text-subtle"]}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:$.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Pe,style:({pressed:e})=>[$.footerBtn,$.footerCancel,e&&$.footerBtnPressed,h],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.footerBtnText,{color:Y.colors["text-muted"]}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ie,disabled:!G,style:({pressed:e})=>[$.footerBtn,$.footerConfirm,{backgroundColor:Y.colors.primary,opacity:G?1:.5},e&&{backgroundColor:Y.colors["primary-hover"]},h],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!G},"aria-disabled":!G,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[$.footerBtnText,{color:Y.colors["on-primary"]}],children:u})})]})]}),ze=t?(T??(e=>e.toLocaleDateString()))(t):void 0,Be=!M;if("inline"===o)return I||Be?Be?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:p,value:ze,placeholder:f,helperText:j,error:N,required:R,disabled:w,size:D,variant:C,clearable:A,onClear:S,onPress:()=>P(!0),triggerStyle:V,testID:v}),I?Le:null]}):Le:null;const $e=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:Se,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:B,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[$.backdrop,{backgroundColor:ke}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:Se,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[$.sheetWrap,{paddingBottom:Math.max(z.bottom,Y.space.lg),opacity:Me,transform:[{translateY:_reactNative.Animated.add(Fe,Q)}]}],onLayout:e=>{ee.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Le}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})});return Be?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:p,value:ze,placeholder:f,helperText:j,error:N,required:R,disabled:w,size:D,variant:C,clearable:A,onClear:S,onPress:()=>P(!0),triggerStyle:V,testID:v}),$e]}):$e};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadow.popover;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.space.md,paddingBottom:e.space.lg},card:{backgroundColor:e.colors.surface,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.space.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.space.lg,paddingTop:e.space.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners,backgroundColor:e.colors["border-subtle"],marginBottom:e.space.sm},titleRow:{marginBottom:e.space.sm},title:{fontSize:e.text.lg.size,fontWeight:e.weight.semibold,color:e.colors["text-body"]},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.space.md},navBtn:{width:36,height:36,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors["bg-subtle"]},navBtnPressed:{backgroundColor:e.colors["surface-pressed"]},navText:{fontSize:e.text["2xl"].size,lineHeight:26,color:e.colors["text-body"],fontWeight:e.weight.semibold},headerLabelWrap:{flex:1,alignItems:"center"},headerLabelInner:{flexDirection:"row",alignItems:"center",justifyContent:"center"},headerLabel:{fontSize:e.text.base.size,fontWeight:e.weight.semibold,color:e.colors["text-body"]},headerCaret:{marginLeft:e.space.xs,alignItems:"center",justifyContent:"center"},weekdayRow:{flexDirection:"row",marginBottom:e.space.xs},weekdayCell:{flex:1,alignItems:"center",paddingVertical:e.space.xs},weekdayText:{fontSize:e.text.xs.size,fontWeight:e.weight.medium,color:e.colors["text-subtle"],letterSpacing:e["letter-spacing"].wide},grid:{},gridRow:{flexDirection:"row"},dayCell:{flex:1,aspectRatio:1,alignItems:"center",justifyContent:"center",padding:e.space.xxs},dayInner:{width:"100%",height:"100%",borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},dayText:{fontSize:e.text.sm.size,fontWeight:e.weight.medium},yearGrid:{},yearCell:{flex:1,aspectRatio:1.6,alignItems:"center",justifyContent:"center",padding:e.space.xs},yearInner:{width:"100%",height:"100%",borderRadius:e.radius.lg,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},yearText:{fontSize:e.text.base.size,fontWeight:e.weight.semibold},decadeRangeText:{fontSize:e.text.xs.size,fontWeight:e.weight.medium,marginTop:e.space.xxs},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.space.lg,gap:e.space.sm},footerBtn:{paddingHorizontal:e.space.lg,paddingVertical:e.space.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.text.sm.size,fontWeight:e.weight.semibold}})};var _default=exports.default=DatePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DateRangePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Calendar/index.js"),_calendarDates=require("../Calendar/calendarDates.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index4=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DateRangePicker=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_index3=require("../Calendar/index.js"),_calendarDates=require("../Calendar/calendarDates.js"),_ModalSafeArea=require("../ModalSafeArea/ModalSafeArea.js"),_index4=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const AnimatedGestureRoot=_reactNative.Animated.createAnimatedComponent(_reactNativeGestureHandler.GestureHandlerRootView),formatRangePart=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"short",day:"numeric",month:"short"}).format(e),DateRangePicker=exports.DateRangePicker=(0,_react.forwardRef)((e,t)=>{const{visible:a,value:r,onChange:s,onClose:i,label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:m,variant:_,clearable:g,onClear:x,formatValue:f,triggerStyle:p,minDate:v,maxDate:b,disabledDates:h,markedDates:y,strikeMarkedInRange:R,locale:j="en-IN",weekStartsOn:D=0,title:N="Select Date Range",confirmLabel:S="Confirm",cancelLabel:C="Cancel",maxRange:k,haptic:w,style:P,containerStyle:T,headerLabelStyle:A,navButtonStyle:M,footerButtonStyle:V,testID:q}=e,B=void 0!==a,[O,I]=(0,_react.useState)(!1),z=B?a:O,H=B?q:q?`${q}-calendar`:void 0,L=(0,_index.useTheme)(),G=(0,_usePresenceMotion.usePresenceMotion)(),[E,$]=(0,_ModalSafeArea.useModalInsets)(),W=(0,_react.useMemo)(()=>buildStyles(L),[L]),[F,Y]=(0,_react.useState)(()=>(0,_calendarDates.startOfMonth)(r.start??new Date)),[J,K]=(0,_react.useState)(r.start?(0,_calendarDates.startOfDay)(r.start):null),[Q,U]=(0,_react.useState)(r.end?(0,_calendarDates.startOfDay)(r.end):null),X=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,te=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(r.start){const e=(0,_calendarDates.startOfDay)(r.start);K(e),Y((0,_calendarDates.startOfMonth)(e))}else K(null);r.end?U((0,_calendarDates.startOfDay)(r.end)):U(null)},[r.start,r.end]);const ae=(0,_react.useCallback)(e=>{if(e.end&&k&&(0,_calendarDates.daysBetween)(e.start,e.end)+1>k)return!1!==w&&(0,_index2.triggerHaptic)("notificationWarning"),K(e.end),void U(null);K(e.start),U(e.end??null)},[k,w]),re=(0,_react.useCallback)(()=>{B?i?.():I(!1)},[B,i]),se=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:0,duration:G.duration("default"),easing:_reactNative.Easing.bezier(...L.motion.ease.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(Z,{toValue:0,duration:G.duration("fast"),easing:_reactNative.Easing.bezier(...L.motion.ease.accelerate),useNativeDriver:!0})]).start(()=>{re()})},[X,re,G,Z,L.motion.ease.accelerate]),{handleGesture:ie,opacity:ne}=(0,_useDragToDismiss.useDragToDismiss)({drag:ee,travel:()=>te.current||320,onDismiss:se}),oe=(0,_react.useMemo)(()=>_reactNative.Animated.multiply(Z,ne),[Z,ne]),le=(0,_react.useMemo)(()=>X.interpolate({inputRange:[0,1],outputRange:[(0,_color.transparentOf)(L.colors.scrim),L.colors.scrim]}),[X,L.colors.scrim]);(0,_react.useEffect)(()=>{let e;if(z){X.setValue(0),(0,_index.setNativeValue)(Z,0),(0,_index.setNativeValue)(ee,0),(0,_index.setNativeValue)(ne,1);const t=G.reduced?_reactNative.Animated.timing(Z,{toValue:1,duration:G.duration("default"),useNativeDriver:!0}):_reactNative.Animated.spring(Z,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0});e=_reactNative.Animated.parallel([_reactNative.Animated.timing(X,{toValue:1,duration:G.duration("default"),easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),t]),e.start()}return()=>e?.stop()},[z,X,G,Z,ee,ne,L.motion]);const ce=(0,_react.useCallback)(()=>{!1!==w&&(0,_index2.triggerHaptic)("selection"),se()},[se,w]),de=(0,_react.useCallback)(()=>{J&&Q&&(!1!==w&&(0,_index2.triggerHaptic)("notificationSuccess"),s?.({start:J,end:Q}),se())},[se,s,J,Q,w]),ue=Z.interpolate({inputRange:[0,1],outputRange:G.range(320,0)}),me=(0,_react.useMemo)(()=>J&&Q?`${formatRangePart(J,j)} — ${formatRangePart(Q,j)}`:J?`${formatRangePart(J,j)} — …`:"—",[J,Q,j]),ge=!J||!Q,xe=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,P,T],ref:t,accessible:!1,testID:H,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:ie,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.handle}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.titleRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.title,accessibilityRole:"header",children:N}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.subtitle,accessibilityLiveRegion:"polite",children:me})]})]})}),(0,_jsxRuntime.jsx)(_index3.Calendar,{mode:"range",value:J?{start:J,end:Q??void 0}:null,onChange:ae,month:F,onMonthChange:Y,minDate:v,maxDate:b,disabledDates:h,markedDates:y,strikeMarkedInRange:R,weekStartsOn:D,locale:j,haptic:w,headerLabelStyle:A,navButtonStyle:M,testID:H?`${H}-grid`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ce,style:({pressed:e})=>[W.footerBtn,W.footerCancel,e&&W.footerBtnPressed,V],accessibilityRole:"button",accessibilityLabel:C,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors["text-muted"]}],children:C})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:de,disabled:ge,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:L.colors.primary,opacity:ge?.5:1},e&&{backgroundColor:L.colors["primary-hover"]},V],accessibilityRole:"button",accessibilityLabel:S,accessibilityState:{disabled:ge},"aria-disabled":ge,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors["on-primary"]}],children:S})})]})]}),fe=(0,_react.useMemo)(()=>{if(!r.start||!r.end)return"";const e={start:r.start,end:r.end};return f?f(e):`${e.start.toLocaleDateString()} – ${e.end.toLocaleDateString()}`},[r.start,r.end,f]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[B?null:(0,_jsxRuntime.jsx)(_index4.PickerTrigger,{label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:m,variant:_,clearable:g,onClear:x,value:fe,onPress:()=>I(!0),triggerStyle:p,testID:q}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:z,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:se,children:(0,_jsxRuntime.jsx)(_ModalSafeArea.ModalSafeArea,{onInsets:$,children:(0,_jsxRuntime.jsxs)(AnimatedGestureRoot,{collapsable:!1,style:[W.backdrop,{backgroundColor:le}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:se,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(E.bottom,L.space.lg),opacity:oe,transform:[{translateY:_reactNative.Animated.add(ue,ee)}]}],onLayout:e=>{te.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:xe}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})})]})});DateRangePicker.displayName="DateRangePicker";const buildStyles=e=>{const t=e.shadow.popover;return _reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},sheetWrap:{position:"absolute",left:0,right:0,bottom:0,paddingHorizontal:e.space.md,paddingBottom:e.space.lg},card:{backgroundColor:e.colors.surface,borderRadius:e.radius.xl,..._corners.smoothCorners,padding:e.space.lg,shadowColor:t.shadowColor,shadowOffset:t.shadowOffset,shadowOpacity:t.shadowOpacity,shadowRadius:t.shadowRadius,elevation:t.elevation},grabArea:{marginTop:-e.space.lg,paddingTop:e.space.sm},handle:{alignSelf:"center",width:36,height:4,borderRadius:e.radius.pill,..._corners.smoothCorners,backgroundColor:e.colors["border-subtle"],marginBottom:e.space.sm},titleRow:{marginBottom:e.space.sm},title:{fontSize:e.text.lg.size,fontWeight:e.weight.semibold,color:e.colors["text-body"]},subtitle:{marginTop:e.space.xxs,fontSize:e.text.sm.size,color:e.colors["text-muted"]},footer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",marginTop:e.space.lg,gap:e.space.sm},footerBtn:{paddingHorizontal:e.space.lg,paddingVertical:e.space.sm,borderRadius:e.radius.md,..._corners.smoothCorners,minHeight:40,alignItems:"center",justifyContent:"center"},footerCancel:{backgroundColor:"transparent"},footerConfirm:{},footerBtnPressed:{opacity:.85},footerBtnText:{fontSize:e.text.sm.size,fontWeight:e.weight.semibold}})};var _default=exports.default=DateRangePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.dayLabel=exports.DateSeparator=exports.DEFAULT_DATE_SEPARATOR_LABELS=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_DATE_SEPARATOR_LABELS=exports.DEFAULT_DATE_SEPARATOR_LABELS=Object.freeze({today:"Today",yesterday:"Yesterday"}),DAY_MS=864e5,dayLabel=(e,t={})=>{const r=(0,_mobileCore.formatDate)(e,{empty:""});if(!r)return"";const a={...DEFAULT_DATE_SEPARATOR_LABELS,...t.labels},o=t.now??new Date;return r===(0,_mobileCore.formatDate)(o)?a.today:r===(0,_mobileCore.formatDate)(new Date(o.getTime()-DAY_MS))?a.yesterday:r};exports.dayLabel=dayLabel;const DateSeparator=({date:e,label:t,emphasis:r=!1,labels:a,now:o,style:i,testID:s})=>{const l=(0,_index.useTheme)(),n=(0,_react.useMemo)(()=>buildStyles(l),[l]),c=t??(void 0===e?"":dayLabel(e,{now:o,labels:a})),d=r?l.colors.primary:l.colors
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.dayLabel=exports.DateSeparator=exports.DEFAULT_DATE_SEPARATOR_LABELS=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_DATE_SEPARATOR_LABELS=exports.DEFAULT_DATE_SEPARATOR_LABELS=Object.freeze({today:"Today",yesterday:"Yesterday"}),DAY_MS=864e5,dayLabel=(e,t={})=>{const r=(0,_mobileCore.formatDate)(e,{empty:""});if(!r)return"";const a={...DEFAULT_DATE_SEPARATOR_LABELS,...t.labels},o=t.now??new Date;return r===(0,_mobileCore.formatDate)(o)?a.today:r===(0,_mobileCore.formatDate)(new Date(o.getTime()-DAY_MS))?a.yesterday:r};exports.dayLabel=dayLabel;const DateSeparator=({date:e,label:t,emphasis:r=!1,labels:a,now:o,style:i,testID:s})=>{const l=(0,_index.useTheme)(),n=(0,_react.useMemo)(()=>buildStyles(l),[l]),c=t??(void 0===e?"":dayLabel(e,{now:o,labels:a})),d=r?l.colors.primary:l.colors["border-subtle"];return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[n.row,i],testID:s,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[n.rule,{backgroundColor:d}]}),(0,_jsxRuntime.jsx)(_index2.Text,{variant:"caption",weight:r?"semibold":"medium",color:r?l.colors["primary-text"]:"secondary",accessibilityRole:"header",children:c}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[n.rule,{backgroundColor:d}]})]})};exports.DateSeparator=DateSeparator;const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",gap:e.space.sm,paddingVertical:e.space.sm},rule:{flex:1,height:_reactNative.StyleSheet.hairlineWidth}});var _default=exports.default=DateSeparator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Descriptions=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const EMPTY_VALUE="-",rowKey=(e,t)=>e.key??("string"==typeof e.label?`${e.label}-${t}`:`row-${t}`),isEmptyValue=e=>null==e||""===e||Array.isArray(e)&&!e.length,isInlineText=e=>"string"==typeof e||"number"==typeof e||(0,_react.isValidElement)(e)&&e.type===_Notation.Notation||Array.isArray(e)&&e.length>0&&e.every(isInlineText),Descriptions=({items:e,columns:t=1,size:r="md",bordered:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Descriptions=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const EMPTY_VALUE="-",rowKey=(e,t)=>e.key??("string"==typeof e.label?`${e.label}-${t}`:`row-${t}`),isEmptyValue=e=>null==e||""===e||Array.isArray(e)&&!e.length,isInlineText=e=>"string"==typeof e||"number"==typeof e||(0,_react.isValidElement)(e)&&e.type===_Notation.Notation||Array.isArray(e)&&e.length>0&&e.every(isInlineText),Descriptions=({items:e,columns:t=1,size:r="md",bordered:l=!1,title:i,variant:o="list",style:s,testID:a})=>{const n=(0,_index.useTheme)(),x=(0,_react.useMemo)(()=>buildStyles(n),[n]),u="sm"===r?n.text.xs.size:n.text.sm.size,c="sm"===r?n.text.sm.size:n.text.base.size,d="sm"===r?n.space.xs:n.space.sm,m="summary"===o,_=(0,_react.useMemo)(()=>({fontSize:u,color:n.colors["text-subtle"]}),[u,n.colors["text-subtle"]]),y=(0,_react.useMemo)(()=>({fontSize:c,color:n.colors["text-muted"]}),[c,n.colors["text-muted"]]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[m?null:{gap:d},s],testID:a,children:[i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.title,{fontSize:n.text.lg.size,color:n.colors["text-body"]}],children:i}):null,e.map((e,r)=>{const i=isEmptyValue(e.value),o=2===t&&!e.full,s=i?n.colors["text-subtle"]:(0,_Text.resolveColor)(n,e.tone??"primary"),a=(0,_index.fontFor)(n,e.strong?"semibold":"normal"),v=i||isInlineText(e.value),b=i?"-":"string"==typeof e.value?e.value:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:{fontSize:c,color:s},children:e.value});return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[x.summaryRow,{paddingVertical:d,borderBottomColor:n.colors["border-subtle"]}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.summaryLabel,{fontSize:c,color:n.colors["text-muted"]}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:y,children:e.label})}),v?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.summaryValue,{fontSize:c,color:s},a],children:b}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:x.summaryValueView,children:e.value})]},rowKey(e,r)):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[o?x.rowSide:x.rowStack,{paddingVertical:d},l&&r>0?x.bordered:null,l&&r>0?{borderTopColor:n.colors["border-subtle"]}:null],children:["string"==typeof e.label?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.label,{fontSize:u,color:n.colors["text-subtle"]},o?x.labelSide:null],children:e.label}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:o?x.labelSide:null,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.label,{fontSize:u,color:n.colors["text-subtle"]}],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e.label})})}),v?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.value,{fontSize:c,color:s},e.strong?a:null,o?x.valueSide:null],children:b}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:o?x.valueSide:null,children:e.value})]},rowKey(e,r))})]})};exports.Descriptions=Descriptions;const buildStyles=e=>_reactNative.StyleSheet.create({title:{...(0,_index.fontFor)(e,"semibold")},rowStack:{gap:e.space.xxs},rowSide:{flexDirection:"row",alignItems:"flex-start",gap:e.space.md},bordered:{borderTopWidth:_reactNative.StyleSheet.hairlineWidth},label:{...(0,_index.fontFor)(e,"semibold")},labelSide:{flex:4},value:{...(0,_index.fontFor)(e,"normal")},valueSide:{flex:6},summaryRow:{flexDirection:"row",alignItems:"center",gap:e.space.md,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth},summaryLabel:{flex:1,...(0,_index.fontFor)(e,"normal")},summaryValue:{textAlign:"right",flexShrink:1,maxWidth:"60%"},summaryValueView:{flexShrink:1,maxWidth:"60%",alignItems:"flex-end"}});var _default=exports.default=Descriptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:r,title:o,message:i,children:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_Modal=require("../Modal/Modal.js"),_jsxRuntime=require("react/jsx-runtime");const Dialog=e=>{const{visible:t,onClose:r,title:o,message:i,children:l,icon:s,variant:a="default",actions:n,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:b,titleStyle:g,messageStyle:m,iconWrapperStyle:x,actionsRowStyle:p,actionButtonStyle:_,actionTextStyle:y,haptic:h,testID:C}=e,f=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(f),[f]),S=(0,_react.useMemo)(()=>discFor(f,a),[f,a]),R=f.components.dialog["icon-wrapper-size"],v=f.components.dialog["action-button-min-height"],w=Boolean(n&&n.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(h,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(r(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,r,h]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:r,haptic:h,presentation:"centered",accessibilityLabel:d??o,contentStyle:u,testID:C,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??o,style:[j.container,b],children:[s?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.iconWrapper,{width:R,height:R,borderRadius:f.radius.pill,..._corners.smoothCorners,backgroundColor:S,marginBottom:f.space.md},x],children:s}):null,o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:f.colors["text-body"],fontSize:f.text.xl.size,...(0,_index.fontFor)(f,"semibold"),marginBottom:i||null!=l?f.space.sm:f.space.md},g],accessibilityRole:"header",children:o}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.message,{color:f.colors["text-muted"],fontSize:f.text.base.size,lineHeight:f.text.base.size*f.leading.normal,marginBottom:null!=l?f.space.md:w?f.space.lg:0},m],children:i}):null,null!=l?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:w?f.space.lg:0},children:l}):null,n&&n.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.actionsRow,p],children:n.map((e,t)=>{const r=e.tone??"primary",o=Boolean(e.disabled),i=actionStyleFor(f,r,o),l=t===n.length-1;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:e.loading||o,accessibilityRole:"button",accessibilityLabel:e.label,accessibilityState:{busy:e.loading,disabled:Boolean(e.loading)||o},"aria-busy":e.loading,"aria-disabled":Boolean(e.loading)||o,style:({pressed:t})=>[j.actionButton,{minHeight:v,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:f.radius.md,..._corners.smoothCorners,paddingVertical:f.space.sm,paddingHorizontal:f.space.md,marginRight:l?0:f.space.sm,opacity:e.loading?.7:t&&!o?.85:1},_],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:f.text.base.size,...(0,_index.fontFor)(f,"semibold"),textAlign:"center"},y],children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const SOFT_DISC_OPACITY=.14,discFor=(e,t)=>{const r=e.colors["bg-subtle"];switch(t){case"success":return(0,_color.tintOf)(e.colors.success,.14,r);case"warning":return(0,_color.tintOf)(e.colors.warning,.14,r);case"danger":return(0,_color.tintOf)(e.colors.danger,.14,r);case"info":return(0,_color.tintOf)(e.colors.info,.14,r);default:return e.colors["primary-soft"]}},actionStyleFor=(e,t,r)=>{if(r)return{backgroundColor:"neutral"===t?"transparent":e.colors["surface-disabled"],borderColor:"neutral"===t?e.colors.border:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors["text-disabled"]};switch(t){case"primary":return{backgroundColor:e.colors.primary,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-primary"]};case"info":return{backgroundColor:e.colors.info,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-info"]};case"danger":return{backgroundColor:e.colors.danger,borderColor:"transparent",borderWidth:0,textColor:e.colors["on-danger"]};default:return{backgroundColor:"transparent",borderColor:e.colors.border,borderWidth:1,textColor:e.colors["text-body"]}}},buildStyles=e=>_reactNative.StyleSheet.create({container:{alignItems:"stretch"},iconWrapper:{alignItems:"center",justifyContent:"center",alignSelf:"center"},title:{textAlign:"center"},message:{textAlign:"center"},actionsRow:{flexDirection:"row",justifyContent:"flex-end",alignItems:"stretch"},actionButton:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=Dialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Divider=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const spacingFor=(e,t)=>{switch(t){case"sm":return e.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Divider=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const spacingFor=(e,t)=>{switch(t){case"sm":return e.space.sm;case"md":return e.space.md;case"lg":return e.space.lg;default:return 0}},Divider=exports.Divider=(0,_react.forwardRef)((e,t)=>{const{orientation:i="horizontal",thickness:r=1,color:a,spacing:n="none",inset:s=0,label:o,labelPosition:l="center",style:c,testID:u}=e,d=(0,_index.useTheme)(),m=a??d.colors.border,x=spacingFor(d,n),h=(0,_react.useMemo)(()=>buildStyles(d),[d]);if("vertical"===i)return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityRole:"none",testID:u,style:[h.vertical,{width:r,backgroundColor:m,marginHorizontal:x,marginTop:s},c]});if(o){const e="start"===l?0:1,i="end"===l?0:1;return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"none",testID:u,style:[h.horizontalRow,{marginVertical:x,marginLeft:s},c],children:[e>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[h.horizontalLine,{height:r,backgroundColor:m,flex:e}]}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:h.label,numberOfLines:1,children:o}),i>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[h.horizontalLine,{height:r,backgroundColor:m,flex:i}]}):null]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityRole:"none",testID:u,style:[h.horizontalLine,{height:r,backgroundColor:m,marginVertical:x,marginLeft:s},c]})});Divider.displayName="Divider";const buildStyles=e=>_reactNative.StyleSheet.create({horizontalRow:{flexDirection:"row",alignItems:"center",width:"100%"},horizontalLine:{width:"100%",alignSelf:"stretch"},vertical:{alignSelf:"stretch"},label:{marginHorizontal:e.space.sm,color:e.colors["text-subtle"],fontSize:e.text.sm.size,fontWeight:e.weight.medium}});var _default=exports.default=Divider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Drawer=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.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 DEFAULT_CLOSE_VELOCITY_THRESHOLD=1e3,DEFAULT_DRAG_ACTIVATION_OFFSET=10,Drawer=exports.Drawer=(0,_react.forwardRef)((e,t)=>{const{visible:a,defaultVisible:r=!1,onChange:i,side:n="left",width:o,enableSwipe:s=!0,enableBackdropPress:c=!0,backdropOpacity:l=.5,haptic:u,containerStyle:d,children:_,accessibilityLabel:v,testID:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Drawer=void 0;var cache,_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePresenceMotion=require("../../hooks/usePresenceMotion.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.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 DEFAULT_CLOSE_VELOCITY_THRESHOLD=1e3,DEFAULT_DRAG_ACTIVATION_OFFSET=10,Drawer=exports.Drawer=(0,_react.forwardRef)((e,t)=>{const{visible:a,defaultVisible:r=!1,onChange:i,side:n="left",width:o,enableSwipe:s=!0,enableBackdropPress:c=!0,backdropOpacity:l=.5,haptic:u,containerStyle:d,children:_,accessibilityLabel:v,testID:p}=e,h=(0,_index.useTheme)(),f=(0,_usePresenceMotion.usePresenceMotion)(),m=f.reduced,b=f.duration("default"),g=f.duration("fast"),N=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),R="boolean"==typeof a,[w,S]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window"));(0,_react.useEffect)(()=>{const e=_reactNative.Dimensions.addEventListener("change",({window:e})=>S(e));return()=>e.remove()},[]);const y="left"===n||"right"===n,E=(0,_react.useMemo)(()=>resolveSize(o,y,w),[o,y,w]),M=(0,_react.useMemo)(()=>{switch(n){case"left":case"top":return-E;case"right":case"bottom":return E}},[n,E]),x=(0,_reactNativeReanimated.useSharedValue)(r?0:M),O=(0,_reactNativeReanimated.useSharedValue)(r?0:M),C=(0,_reactNativeReanimated.useSharedValue)(r?1:0),[j,k]=(0,_react.useState)(r),D=(0,_reactNativeReanimated.useSharedValue)(r);(0,_react.useEffect)(()=>{j||m||(x.value=M,O.value=M)},[M,j,x,O,m]);const P=h.motion.spring.snappy,T=(0,_react.useCallback)(()=>{if(m)return x.value=0,void(C.value=(0,_reactNativeReanimated.withTiming)(1,{duration:b,reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION}));C.value=1,x.value=(0,_reactNativeReanimated.withSpring)(0,P)},[x,C,P,m,b]),L=(0,_react.useCallback)(()=>{m?C.value=(0,_reactNativeReanimated.withTiming)(0,{duration:g,reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION},e=>{"worklet";e&&(x.value=M)}):x.value=(0,_reactNativeReanimated.withSpring)(M,P)},[x,C,M,P,m,g]),I=(0,_react.useCallback)(e=>{k(t=>t===e?t:(i?.(e),e)),D.value=e},[i,D]),V=(0,_react.useCallback)(()=>{I(!0),T()},[I,T]),q=(0,_react.useCallback)(()=>{I(!1),L()},[I,L]),A=(0,_react.useCallback)(()=>{j?q():V()},[j,V,q]);(0,_react.useImperativeHandle)(t,()=>({open:V,close:q,toggle:A}),[V,q,A]),(0,_react.useEffect)(()=>{R&&a!==j&&(a?V():q())},[a]);const F=(0,_react.useMemo)(()=>{const e=M,t=n,a=s;let r=_reactNativeGestureHandler.Gesture.Pan();return r=y?r.activeOffsetX([-10,10]).failOffsetY([-15,15]):r.activeOffsetY([-10,10]).failOffsetX([-15,15]),r.onStart(()=>{"worklet";a&&(O.value=x.value)}).onUpdate(t=>{"worklet";if(!a)return;const r=y?t.translationX:t.translationY,i=O.value+r,n=Math.min(0,e),o=Math.max(0,e);x.value=i<n?n+.25*(i-n):i>o?o+.25*(i-o):i}).onEnd(r=>{"worklet";if(!a)return;const i=y?r.velocityX:r.velocityY,n=x.value;let o=!1;o="left"===t||"top"===t?i<-1e3:i>1e3;const s=Math.abs(e),c=Math.abs(n)/s;o||c>.5?((0,_reactNativeReanimated.runOnJS)(I)(!1),m?C.value=(0,_reactNativeReanimated.withTiming)(0,{duration:g,reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION},t=>{"worklet";t&&(x.value=e)}):x.value=(0,_reactNativeReanimated.withSpring)(e,P)):((0,_reactNativeReanimated.runOnJS)(I)(!0),m?(x.value=0,C.value=(0,_reactNativeReanimated.withTiming)(1,{duration:b,reduceMotion:_usePresenceMotion.PRESENCE_REDUCE_MOTION})):x.value=(0,_reactNativeReanimated.withSpring)(0,P))})},[M,O,s,y,x,C,I,n,P,m,b,g]),H=(0,_reactNativeReanimated.useAnimatedStyle)(()=>y?{opacity:C.value,transform:[{translateX:x.value}]}:{opacity:C.value,transform:[{translateY:x.value}]}),U=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:(0,_reactNativeReanimated.interpolate)(x.value,[M,0],[0,l],_reactNativeReanimated.Extrapolation.CLAMP)*C.value,pointerEvents:Math.abs(x.value-M)<.5?"none":"auto"}),[M,l]),G=(0,_react.useMemo)(()=>buildStyles(h),[h]),Y=(0,_react.useCallback)(()=>{if(!c)return;const e=(0,_index2.resolveHaptic)(u,"selection");e&&(0,_index2.triggerHaptic)(e),q()},[c,q,u]),X=(0,_react.useMemo)(()=>{switch(n){case"left":return{position:"absolute",top:0,bottom:0,left:0,width:E,paddingTop:N.top,paddingBottom:N.bottom,paddingLeft:N.left};case"right":return{position:"absolute",top:0,bottom:0,right:0,width:E,paddingTop:N.top,paddingBottom:N.bottom,paddingRight:N.right};case"top":return{position:"absolute",top:0,left:0,right:0,height:E,paddingTop:N.top,paddingLeft:N.left,paddingRight:N.right};case"bottom":return{position:"absolute",bottom:0,left:0,right:0,height:E,paddingBottom:N.bottom,paddingLeft:N.left,paddingRight:N.right}}},[n,E,N]),B=(0,_react.useRef)(r);return j&&(B.current=!0),B.current?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,pointerEvents:"box-none",testID:p,accessibilityViewIsModal:j,children:[(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[G.backdrop,{backgroundColor:h.colors.scrim},U],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:Y,accessibilityRole:"button",accessibilityLabel:"Close drawer",disabled:!c||!j})}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:F,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:v??"Drawer",style:[X,{backgroundColor:h.colors.surface,...h.shadow.modal},d,H],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:G.content,children:_})})})]}):null});Drawer.displayName="Drawer";const resolveSize=(e,t,a)=>{if("number"==typeof e)return e;if("string"==typeof e){const r=parseFloat(e);if(Number.isNaN(r))return t?280:Math.round(.4*a.height);return r/100*(t?a.width:a.height)}return t?280:Math.round(.4*a.height)},buildStyles=e=>_reactNative.StyleSheet.create({backdrop:{..._reactNative.StyleSheet.absoluteFill},content:{flex:1}});var _default=exports.default=Drawer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const ActionButton=({action:e,variant:t})=>{const r=(0,_index.useTheme)(),{style:i,pressIn:s,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(r),[r]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,r.radius.md),fillFor=e=>a?e?r.colors
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.EmptyState=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const ActionButton=({action:e,variant:t})=>{const r=(0,_index.useTheme)(),{style:i,pressIn:s,pressOut:o}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(r),[r]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,r.radius.md),fillFor=e=>a?e?r.colors["primary-hover"]:r.colors.primary:e?r.colors["surface-pressed"]:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:i,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:s,onPressOut:o,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,style:({pressed:e})=>[n.button,a?n.buttonPrimary:n.buttonSecondary,e&&!l.active?a?n.buttonPrimaryPressed:n.buttonSecondaryPressed:null,l.active?n.buttonSquircleHost:null],children:({pressed:t})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[l.active&&l.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:l.size.width,height:l.size.height,radius:r.radius.md,fill:fillFor(t),stroke:a?void 0:r.colors.border,strokeWidth:a?0:1,outset:a?0:1}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[n.buttonText,a?n.buttonTextPrimary:n.buttonTextSecondary],numberOfLines:1,children:e.label})]})})})},EmptyState=exports.EmptyState=(0,_react.forwardRef)((e,t)=>{const{icon:r,title:i,description:s,action:o,secondaryAction:n,size:a="md",fill:l=!1,style:c,testID:u}=e,d=(0,_index.useTheme)(),m=(0,_react.useMemo)(()=>(0,_index.resolveEmptyStateSize)(d,a),[d,a]),x=(0,_react.useMemo)(()=>buildStyles(d),[d]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:u,style:[x.root,{paddingVertical:m["padding-y"]},l?x.fill:null,c],children:[r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[x.iconCircle,{width:m.icon,height:m.icon,marginBottom:m["title-gap"],borderRadius:d.radius.pill,..._corners.smoothCorners}],children:r}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.title,{fontSize:m["title-text"],...(0,_index.fontFor)(d,"semibold")}],children:i}),s?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[x.description,{fontSize:m["description-text"],marginTop:m["description-gap"]}],children:s}):null,o||n?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:x.actions,children:[o?(0,_jsxRuntime.jsx)(ActionButton,{action:o,variant:"primary"}):null,n?(0,_jsxRuntime.jsx)(ActionButton,{action:n,variant:"secondary"}):null]}):null]})});EmptyState.displayName="EmptyState";const buildStyles=e=>_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",paddingHorizontal:e.space.lg},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors["surface-disabled"],alignItems:"center",justifyContent:"center"},title:{color:e.colors["text-body"],textAlign:"center"},description:{color:e.colors["text-muted"],textAlign:"center",maxWidth:320,lineHeight:e.text.base.size*e.leading.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.space.sm,marginTop:e.space.lg}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.space.lg,paddingVertical:e.space.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,overflow:"hidden",alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonPrimaryPressed:{backgroundColor:e.colors["primary-hover"]},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border},buttonSecondaryPressed:{backgroundColor:e.colors["surface-pressed"]},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.text.base.size,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors["on-primary"]},buttonTextSecondary:{color:e.colors["text-body"]}});var _default=exports.default=EmptyState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ErrorBoundary=void 0;var cache,_mobileCore=require("@webority/mobile-core"),_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../EmptyState/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,o,s=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(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((t=s&&Object.getOwnPropertyDescriptor(e,o))&&(t.get||t.set)?s(n,o,t):n[o]=e[o]);return n}const COMPONENT_STACK_LIMIT=500,DEFAULT_TITLE="Something went wrong",DEFAULT_MESSAGE="An unexpected error occurred. Please try again.",hasResetKeysChanged=(e,r)=>e!==r&&(!e||!r||e.length!==r.length||e.some((e,t)=>e!==r[t])),DefaultFallback=({error:e,reset:r,title:t,message:o,testID:s})=>{const n=(0,_index.useTheme)(),i=(0,_react.useMemo)(()=>buildStyles(n),[n]),a="undefined"!=typeof __DEV__&&__DEV__;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:i.root,testID:s,children:[(0,_jsxRuntime.jsx)(_index2.EmptyState,{title:t??DEFAULT_TITLE,description:o??DEFAULT_MESSAGE,action:{label:"Try again",onPress:r,testID:s?`${s}-retry`:void 0}}),a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.devError,testID:s?`${s}-dev-error`:void 0,children:e.message}):null]})},buildStyles=e=>_reactNative.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ErrorBoundary=void 0;var cache,_mobileCore=require("@webority/mobile-core"),_react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../EmptyState/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;var t,o,s=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(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((t=s&&Object.getOwnPropertyDescriptor(e,o))&&(t.get||t.set)?s(n,o,t):n[o]=e[o]);return n}const COMPONENT_STACK_LIMIT=500,DEFAULT_TITLE="Something went wrong",DEFAULT_MESSAGE="An unexpected error occurred. Please try again.",hasResetKeysChanged=(e,r)=>e!==r&&(!e||!r||e.length!==r.length||e.some((e,t)=>e!==r[t])),DefaultFallback=({error:e,reset:r,title:t,message:o,testID:s})=>{const n=(0,_index.useTheme)(),i=(0,_react.useMemo)(()=>buildStyles(n),[n]),a="undefined"!=typeof __DEV__&&__DEV__;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:i.root,testID:s,children:[(0,_jsxRuntime.jsx)(_index2.EmptyState,{title:t??DEFAULT_TITLE,description:o??DEFAULT_MESSAGE,action:{label:"Try again",onPress:r,testID:s?`${s}-retry`:void 0}}),a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.devError,testID:s?`${s}-dev-error`:void 0,children:e.message}):null]})},buildStyles=e=>_reactNative.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.bg,padding:e.space.lg},devError:{marginTop:e.space.md,color:e.colors["danger-text"],fontSize:e.text.sm.size,textAlign:"center"}});class ErrorBoundary extends _react.default.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidUpdate(e){this.state.error&&hasResetKeysChanged(e.resetKeys,this.props.resetKeys)&&this.reset()}componentDidCatch(e,r){const t=(r.componentStack??"").slice(0,500);_mobileCore.Logger.recordError(e,{errorType:"RenderError",componentStack:t});try{this.props.onError?.(e,{componentStack:t})}catch(e){_mobileCore.Logger.error("[@webority/mobile-ui] ErrorBoundary onError threw; the boundary itself is unaffected.",e)}}reset=()=>{this.setState({error:null}),this.props.onReset?.()};render(){const{error:e}=this.state;if(!e)return this.props.children;const{fallback:r,title:t,message:o,testID:s}=this.props;return void 0!==r?"function"==typeof r?r(e,this.reset):r:(0,_jsxRuntime.jsx)(DefaultFallback,{error:e,reset:this.reset,title:t,message:o,testID:s})}}exports.ErrorBoundary=ErrorBoundary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chevron=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_jsxRuntime=require("react/jsx-runtime");const Chevron=({color:e,size:t,open:r,style:n})=>{const i=(0,_index.useTheme)(),o=(0,_react.useRef)((0,_index.createAnimatedValue)(r?1:0)).current;(0,_react.useEffect)(()=>{if(void 0===r)return;const e=_reactNative.Animated.timing(o,{toValue:r?1:0,duration:i.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[r,o,i.motion.duration.fast]);const a=(i.icons
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chevron=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_jsxRuntime=require("react/jsx-runtime");const Chevron=({color:e,size:t,open:r,style:n})=>{const i=(0,_index.useTheme)(),o=(0,_react.useRef)((0,_index.createAnimatedValue)(r?1:0)).current;(0,_react.useEffect)(()=>{if(void 0===r)return;const e=_reactNative.Animated.timing(o,{toValue:r?1:0,duration:i.motion.duration.fast,useNativeDriver:!0});return e.start(),()=>e.stop()},[r,o,i.motion.duration.fast]);const a=(i.settings.icons.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:t,color:e}),s={width:t,height:t,alignItems:"center",justifyContent:"center"};if(void 0===r)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[s,n],children:a});const u=o.interpolate({inputRange:[0,1],outputRange:["0deg","180deg"]});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[s,{transform:[{rotate:u}]},n],children:a})};exports.Chevron=Chevron;var _default=exports.default=Chevron;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasChoiceDetail=exports.ChoiceText=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const hasChoiceDetail=(e,t)=>(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t);exports.hasChoiceDetail=hasChoiceDetail;const ChoiceText=({label:e,description:t,error:i,disabled:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasChoiceDetail=exports.ChoiceText=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const hasChoiceDetail=(e,t)=>(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t);exports.hasChoiceDetail=hasChoiceDetail;const ChoiceText=({label:e,description:t,error:i,disabled:s=!1,labelLines:o,descriptionLines:l,style:n,labelStyle:a})=>{const r=(0,_index.useTheme)(),x=s?r.colors["text-disabled"]:r.colors["text-body"],c=s?r.colors["text-disabled"]:r.colors["text-muted"],d=r.text.sm.size,_=(0,_Notation.useNotationInk)(a,r.text.base.size,x),u=(0,_Notation.useNotationInk)(void 0,d,c),h=(0,_Notation.useNotationInk)(void 0,d,r.colors["field-message"]);return(0,_FieldBase.hasFieldText)(e)||(0,_FieldBase.hasFieldText)(t)||(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.column,n],children:[(0,_FieldBase.hasFieldText)(e)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:x,fontSize:r.text.base.size,...(0,_index.fontFor)(r,"normal")},a],numberOfLines:o,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:_,children:e})}):null,(0,_FieldBase.hasFieldText)(t)?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:c,fontSize:d,marginTop:r.space.xxs,...(0,_index.fontFor)(r,"normal")},numberOfLines:l,children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:u,children:t})}):null,(0,_FieldBase.hasFieldText)(i)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.errorRow,{marginTop:r.space.xs,columnGap:r.space.xs}],accessibilityLiveRegion:"polite",children:[(0,_jsxRuntime.jsx)(_FieldBase.FieldErrorGlyph,{size:d,color:r.colors["field-message"]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{flexShrink:1,color:r.colors["field-message"],fontSize:d,...(0,_index.fontFor)(r,"normal")},children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:h,children:i})})]}):null]}):null};exports.ChoiceText=ChoiceText;const styles=_reactNative.StyleSheet.create({column:{flexShrink:1},errorRow:{flexDirection:"row",alignItems:"center"}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveVariantColors=exports.resolveFieldTextStyle=exports.pickRepresentativeBorderColor=exports.hasFieldText=exports.fieldTextAsString=exports.default=exports.RequiredPlaceholder=exports.RequiredMark=exports.FieldMessage=exports.FieldLabel=exports.FieldErrorGlyph=exports.FieldBase=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_ariaState=require("../../utils/ariaState.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_Notation=require("../Notation/Notation.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0},pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const r=e[t];if(r&&"transparent"!==r)return r}return e.bottom};exports.pickRepresentativeBorderColor=pickRepresentativeBorderColor;const resolveFieldTextStyle=(e,t={})=>{const{disabled:r=!1}=t,o=e.components.field,i=e.colors.field;return{color:r?o?.disabledTextColor??i.textDisabled:o?.textColor??i.text,placeholderColor:o?.placeholderColor??(r?i.placeholderDisabled:i.placeholder),weightStyle:o?.fontWeight?{fontWeight:o.fontWeight}:(0,_index.fontFor)(e,"normal")}};exports.resolveFieldTextStyle=resolveFieldTextStyle;const RequiredMark=()=>{const e=(0,_index.useTheme)(),t=e.components.field;return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:t?.requiredMarkerColor??e.colors.toneText.error},children:` ${t?.requiredMarker??"*"}`})};exports.RequiredMark=RequiredMark;const RequiredPlaceholder=({text:e,color:t,fontSize:r,weightStyle:o,align:i="center",paddingTop:l,textAlign:s})=>(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:r,...o,includeFontPadding:!1,textAlign:s},children:[e,(0,_jsxRuntime.jsx)(RequiredMark,{})]})});exports.RequiredPlaceholder=RequiredPlaceholder;const FieldErrorGlyph=({size:e,color:t})=>{const r=(0,_index.useTheme)(),o=r.icons?.error??_defaultIcons.defaultIcons.error;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:o({size:e,color:t})})};exports.FieldErrorGlyph=FieldErrorGlyph;const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;exports.hasFieldText=hasFieldText;const fieldTextAsString=e=>"string"==typeof e?e:void 0;exports.fieldTextAsString=fieldTextAsString;const FieldLabel=({children:e,size:t="md",required:r=!1,help:o,color:i,style:l})=>{const s=(0,_index.useTheme)(),n=(0,_index.resolveFieldSize)(s,t),a=hasFieldText(o),d=(0,_Notation.useNotationInk)(l,n.labelText,i??s.colors.field.label),c=(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[familyStyles.label,{color:i??s.colors.field.label,fontSize:n.labelText,...(0,_index.fontFor)(s,"semibold"),marginBottom:a?s.spacing.none:n.labelGap},a?familyStyles.labelShrink:null,l],children:[(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:d,children:e}),r?(0,_jsxRuntime.jsx)(RequiredMark,{}):null]});return a?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.labelRow,{marginBottom:n.labelGap}],children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[familyStyles.help,{marginLeft:s.spacing.xs}],children:o})]}):c};exports.FieldLabel=FieldLabel;const FieldMessage=({text:e,error:t=!1,size:r="md",style:o})=>{const i=(0,_index.useTheme)(),l=(0,_index.resolveFieldSize)(i,r),s=t?i.colors.field.message:i.colors.text.secondary,n=(0,_Notation.useNotationInk)(o,l.messageText,s);return hasFieldText(e)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs}],accessibilityLiveRegion:t?"polite":"none",children:[t?(0,_jsxRuntime.jsx)(FieldErrorGlyph,{size:l.messageText,color:s}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[familyStyles.messageText,{color:s,fontSize:l.messageText,...(0,_index.fontFor)(i,"normal")},o],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:n,children:e})})]}):null};exports.FieldMessage=FieldMessage;const familyStyles=_reactNative.StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}}),resolveVariantColors=(e,t,r)=>{const o=e.components.field?.[t],i=e.colors.field;let l,s,n,a,d;"outlined"===t?(l=i.background,s=i.backgroundFocused,n=i.backgroundDisabled,a=i.border,d=e.colors.border.width):"underline"===t?(l="transparent",s=void 0,n="transparent",a={bottom:i.border},d={bottom:e.colors.border.width}):(l=i.background,s=void 0,n=i.backgroundDisabled,a="transparent",d=0);const wrapToIdleShape=e=>"string"==typeof a?e:{bottom:e},c=expandColorSides(r?.borderIdle??o?.borderIdle??a),u=expandColorSides(r?.borderFocused??o?.borderFocused??wrapToIdleShape(i.borderFocused)),b=expandColorSides(r?.borderError??o?.borderError??wrapToIdleShape(i.borderError)),p=expandColorSides(r?.borderDisabled??o?.borderDisabled??a),x=expandWidthSides(r?.borderWidth??o?.borderWidth??d);return{backgroundIdleEmpty:r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundIdleFilled:r?.backgroundIdleFilled??o?.backgroundIdleFilled??r?.backgroundIdleEmpty??o?.backgroundIdleEmpty??l,backgroundFocused:r?.backgroundFocused??o?.backgroundFocused??s,backgroundError:r?.backgroundError??o?.backgroundError??void 0,backgroundDisabled:r?.backgroundDisabled??o?.backgroundDisabled??n,borderIdle:c,borderFocused:u,borderError:b,borderDisabled:p,borderWidth:x,borderFocusedRepresentative:pickRepresentativeBorderColor(u)}};exports.resolveVariantColors=resolveVariantColors;const FieldBase=e=>{const{size:t="md",variant:r,focused:o=!1,disabled:i=!1,error:l=!1,filled:s=!1,leading:n,leadingDivider:a=!1,trailing:d,slotAlign:c="center",slotLineHeight:u,topNotch:b,children:p,onPress:x,pressFeedback:g=!0,minHeight:h,maxHeight:m,width:f,height:_,paddingHorizontal:y,paddingLeft:R,paddingRight:v,paddingVertical:F,borderRadius:j,borderTopLeftRadius:S,borderTopRightRadius:k,borderBottomLeftRadius:T,borderBottomRightRadius:C,borderWidth:N,borderTopWidth:I,borderRightWidth:w,borderBottomWidth:q,borderLeftWidth:E,gap:L,fillOverrides:B,style:D,testID:V,accessibilityRole:W,accessibilityLabel:z,accessibilityState:M,accessibilityHint:P}=e,A=(0,_index.useTheme)(),H=(0,_react.useMemo)(()=>buildStyles(),[]),G=r??A.components.field?.defaultVariant??"outlined",O=(0,_index.resolveFieldSize)(A,t),X=(0,_react.useMemo)(()=>resolveVariantColors(A,G,B),[A,G,B]),Y=l?2:o?1:0,$=(0,_react.useRef)((0,_index.createAnimatedValue)(Y)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing($,{toValue:Y,duration:A.motion.duration.fast,easing:_reactNative.Easing.bezier(...A.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Y,$,A.motion.duration.fast,A.motion.easing.standard]);const J=[0,1,2],K=s?X.backgroundIdleFilled:X.backgroundIdleEmpty,Q=X.backgroundFocused??K,U=X.backgroundError??K,Z=i?X.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,U]}),ee=X.borderIdle,te=X.borderFocused,re=X.borderError,oe={top:I,right:w,bottom:q,left:E},ie={top:oe.top??N??X.borderWidth.top,right:oe.right??N??X.borderWidth.right,bottom:oe.bottom??N??X.borderWidth.bottom,left:oe.left??N??X.borderWidth.left},le={minHeight:_??h??O.minHeight,maxHeight:m,paddingHorizontal:y??O.paddingX,paddingVertical:F??O.paddingY,paddingLeft:R??y??O.paddingX,paddingRight:v??y??O.paddingX,backgroundColor:Z,columnGap:L??A.spacing.md,alignItems:"top"===c?"flex-start":"center"},se="underline"===G,ne=se?A.radius.none:j??O.radius,ae=se?{tl:A.radius.none,tr:A.radius.none,bl:A.radius.none,br:A.radius.none}:{tl:S??ne,tr:k??ne,bl:T??ne,br:C??ne};le.borderTopLeftRadius=ae.tl,le.borderTopRightRadius=ae.tr,le.borderBottomLeftRadius=ae.bl,le.borderBottomRightRadius=ae.br,le.borderCurve=_corners.smoothCorners.borderCurve,le.borderTopWidth=ie.top,le.borderRightWidth=ie.right,le.borderBottomWidth=ie.bottom,le.borderLeftWidth=ie.left;const sideColor=e=>$.interpolate({inputRange:J,outputRange:[ee[e],te[e],re[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,de=!se&&ae.tl===ae.tr&&ae.tl===ae.bl&&ae.tl===ae.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(re)&&sameOnEverySide(X.borderDisabled),ce=(0,_SquircleFill.useSquircle)(de,ae.tl);if(ce.active)le.backgroundColor="transparent",le.borderTopColor="transparent",le.borderRightColor="transparent",le.borderBottomColor="transparent",le.borderLeftColor="transparent";else if(i){const e=X.borderDisabled;le.borderTopColor=e.top,le.borderRightColor=e.right,le.borderBottomColor=e.bottom,le.borderLeftColor=e.left}else le.borderTopColor=sideColor("top"),le.borderRightColor=sideColor("right"),le.borderBottomColor=sideColor("bottom"),le.borderLeftColor=sideColor("left");const ue=i?X.borderDisabled.top:sideColor("top"),be=(0,_react.useRef)(Y);be.current=Y,(0,_react.useEffect)(()=>{$.setValue(be.current)},[X,$]),void 0!==f&&(le.width=f),void 0!==_&&(le.height=_);const pe={disabled:i,...M},xe="top"===c,ge=xe?{alignSelf:"flex-start",marginTop:Math.max(0,((u??O.icon)-O.icon)/2)}:null,he=_??h??O.minHeight,me=(()=>{if(!b)return 0;const e=Math.min(ae.tl,he/2),t=b.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),fe=b&&ie.top>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:b.left-ie.left,width:b.width,height:ie.top+me,backgroundColor:Z}}):null,renderInner=e=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ce.active&&ce.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ce.size.width,height:ce.size.height,radius:ae.tl,fill:e&&!i?A.colors.surface.pressed:Z,stroke:ue,strokeWidth:ie.top,outset:ie.top}):null,fe,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.slot,ge],children:n}):null,null!=n&&a?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[H.divider,ge,{height:O.icon,backgroundColor:A.colors.field.border}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.content,xe?H.contentTop:null],children:p}),null!=d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[H.slot,ge],children:d}):null]}),ye=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[H.box,le,D],accessibilityRole:W,accessibilityLabel:z,accessibilityHint:P,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:V,children:renderInner(!1)});return x&&!g?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessible:!1,children:ye}):x?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessibilityRole:W??"button",accessibilityLabel:z,accessibilityHint:P,accessibilityState:pe,...(0,_ariaState.ariaFromState)(pe),testID:V,children:({pressed:e})=>(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:ce.onLayout,style:[H.box,le,!e||i||ce.active?null:{backgroundColor:A.colors.surface.pressed},D],children:renderInner(e)})}):ye};exports.FieldBase=FieldBase,FieldBase.displayName="FieldBase";const buildStyles=()=>_reactNative.StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});var _default=exports.default=FieldBase;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveVariantColors=exports.resolveFieldTextStyle=exports.pickRepresentativeBorderColor=exports.hasFieldText=exports.fieldTextAsString=exports.default=exports.RequiredPlaceholder=exports.RequiredMark=exports.FieldMessage=exports.FieldLabel=exports.FieldErrorGlyph=exports.FieldBase=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_ariaState=require("../../utils/ariaState.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_Notation=require("../Notation/Notation.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0},pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const r=e[t];if(r&&"transparent"!==r)return r}return e.bottom};exports.pickRepresentativeBorderColor=pickRepresentativeBorderColor;const resolveFieldTextStyle=(e,t={})=>{const{disabled:r=!1}=t;return{color:r?e.colors["field-text-disabled"]:e.colors["field-text"],placeholderColor:r?e.colors["field-placeholder-disabled"]:e.colors["field-placeholder"],weightStyle:(0,_index.fontFor)(e,"normal")}};exports.resolveFieldTextStyle=resolveFieldTextStyle;const RequiredMark=()=>{const e=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:e.colors["danger-text"]},children:` ${e.settings.components.field?.requiredMarker??"*"}`})};exports.RequiredMark=RequiredMark;const RequiredPlaceholder=({text:e,color:t,fontSize:r,weightStyle:o,align:i="center",paddingTop:l,textAlign:s})=>(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[_reactNative.StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:r,...o,includeFontPadding:!1,textAlign:s},children:[e,(0,_jsxRuntime.jsx)(RequiredMark,{})]})});exports.RequiredPlaceholder=RequiredPlaceholder;const FieldErrorGlyph=({size:e,color:t})=>{const r=(0,_index.useTheme)().settings.icons.error??_defaultIcons.defaultIcons.error;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:r({size:e,color:t})})};exports.FieldErrorGlyph=FieldErrorGlyph;const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;exports.hasFieldText=hasFieldText;const fieldTextAsString=e=>"string"==typeof e?e:void 0;exports.fieldTextAsString=fieldTextAsString;const FieldLabel=({children:e,size:t="md",required:r=!1,help:o,color:i,style:l})=>{const s=(0,_index.useTheme)(),n=(0,_index.resolveFieldSize)(s,t),a=hasFieldText(o),d=(0,_Notation.useNotationInk)(l,n["label-text"],i??s.colors["field-label"]),c=(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[familyStyles.label,{color:i??s.colors["field-label"],fontSize:n["label-text"],...(0,_index.fontFor)(s,"semibold"),marginBottom:a?s.space.none:n["label-gap"]},a?familyStyles.labelShrink:null,l],children:[(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:d,children:e}),r?(0,_jsxRuntime.jsx)(RequiredMark,{}):null]});return a?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.labelRow,{marginBottom:n["label-gap"]}],children:[c,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[familyStyles.help,{marginLeft:s.space.xs}],children:o})]}):c};exports.FieldLabel=FieldLabel;const FieldMessage=({text:e,error:t=!1,size:r="md",style:o})=>{const i=(0,_index.useTheme)(),l=(0,_index.resolveFieldSize)(i,r),s=t?i.colors["field-message"]:i.colors["text-muted"],n=(0,_Notation.useNotationInk)(o,l["message-text"],s);return hasFieldText(e)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[familyStyles.messageRow,{marginTop:l["message-gap"],columnGap:i.space.xs}],accessibilityLiveRegion:t?"polite":"none",children:[t?(0,_jsxRuntime.jsx)(FieldErrorGlyph,{size:l["message-text"],color:s}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[familyStyles.messageText,{color:s,fontSize:l["message-text"],...(0,_index.fontFor)(i,"normal")},o],children:(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:n,children:e})})]}):null};exports.FieldMessage=FieldMessage;const familyStyles=_reactNative.StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}}),resolveVariantColors=(e,t)=>{let r,o,i,l,s;"outlined"===t?(r=e.colors["field-bg"],o=e.colors["field-bg-focus"],i=e.colors["field-bg-disabled"],l=e.colors["field-border"],s=e.size.border):"underline"===t?(r="transparent",o=void 0,i="transparent",l={bottom:e.colors["field-border"]},s={bottom:e.size.border}):(r=e.colors["field-bg"],o=void 0,i=e.colors["field-bg-disabled"],l="transparent",s=0);const wrapToIdleShape=e=>"string"==typeof l?e:{bottom:e},n=expandColorSides(l),a=expandColorSides(wrapToIdleShape(e.colors["field-border-focus"]));return{backgroundIdleEmpty:r,backgroundIdleFilled:r,backgroundFocused:o,backgroundError:void 0,backgroundDisabled:i,borderIdle:n,borderFocused:a,borderError:expandColorSides(wrapToIdleShape(e.colors["field-border-error"])),borderDisabled:expandColorSides(l),borderWidth:expandWidthSides(s),borderFocusedRepresentative:pickRepresentativeBorderColor(a)}};exports.resolveVariantColors=resolveVariantColors;const FieldBase=e=>{const{size:t="md",variant:r,focused:o=!1,disabled:i=!1,error:l=!1,filled:s=!1,leading:n,leadingDivider:a=!1,trailing:d,slotAlign:c="center",slotLineHeight:u,topNotch:b,children:p,onPress:x,pressFeedback:g=!0,minHeight:m,maxHeight:h,width:f,height:_,paddingHorizontal:R,paddingLeft:y,paddingRight:v,paddingVertical:j,borderRadius:S,borderTopLeftRadius:F,borderTopRightRadius:C,borderBottomLeftRadius:T,borderBottomRightRadius:k,borderWidth:N,borderTopWidth:q,borderRightWidth:w,borderBottomWidth:I,borderLeftWidth:L,gap:B,style:V,testID:z,accessibilityRole:M,accessibilityLabel:E,accessibilityState:W,accessibilityHint:D}=e,P=(0,_index.useTheme)(),A=(0,_react.useMemo)(()=>buildStyles(),[]),H=r??P.settings.components.field?.defaultVariant??"outlined",G=(0,_index.resolveFieldSize)(P,t),O=(0,_react.useMemo)(()=>resolveVariantColors(P,H),[P,H]),$=l?2:o?1:0,J=(0,_react.useRef)((0,_index.createAnimatedValue)($)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.timing(J,{toValue:$,duration:P.motion.duration.fast,easing:_reactNative.Easing.bezier(...P.motion.ease["in-out"]),useNativeDriver:!1});return e.start(),()=>e.stop()},[$,J,P.motion.duration.fast,P.motion.ease["in-out"]]);const K=[0,1,2],Q=s?O.backgroundIdleFilled:O.backgroundIdleEmpty,U=O.backgroundFocused??Q,X=O.backgroundError??Q,Y=i?O.backgroundDisabled:J.interpolate({inputRange:K,outputRange:[Q,U,X]}),Z=O.borderIdle,ee=O.borderFocused,te=O.borderError,re={top:q,right:w,bottom:I,left:L},oe={top:re.top??N??O.borderWidth.top,right:re.right??N??O.borderWidth.right,bottom:re.bottom??N??O.borderWidth.bottom,left:re.left??N??O.borderWidth.left},ie={minHeight:_??m??G["min-height"],maxHeight:h,paddingHorizontal:R??G["padding-x"],paddingVertical:j??G["padding-y"],paddingLeft:y??R??G["padding-x"],paddingRight:v??R??G["padding-x"],backgroundColor:Y,columnGap:B??P.space.md,alignItems:"top"===c?"flex-start":"center"},le="underline"===H,se=le?P.radius.none:S??G.radius,ne=le?{tl:P.radius.none,tr:P.radius.none,bl:P.radius.none,br:P.radius.none}:{tl:F??se,tr:C??se,bl:T??se,br:k??se};ie.borderTopLeftRadius=ne.tl,ie.borderTopRightRadius=ne.tr,ie.borderBottomLeftRadius=ne.bl,ie.borderBottomRightRadius=ne.br,ie.borderCurve=_corners.smoothCorners.borderCurve,ie.borderTopWidth=oe.top,ie.borderRightWidth=oe.right,ie.borderBottomWidth=oe.bottom,ie.borderLeftWidth=oe.left;const sideColor=e=>J.interpolate({inputRange:K,outputRange:[Z[e],ee[e],te[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,ae=!le&&ne.tl===ne.tr&&ne.tl===ne.bl&&ne.tl===ne.br&&sameOnEverySide(oe)&&sameOnEverySide(Z)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(O.borderDisabled),de=(0,_SquircleFill.useSquircle)(ae,ne.tl);if(de.active)ie.backgroundColor="transparent",ie.borderTopColor="transparent",ie.borderRightColor="transparent",ie.borderBottomColor="transparent",ie.borderLeftColor="transparent";else if(i){const e=O.borderDisabled;ie.borderTopColor=e.top,ie.borderRightColor=e.right,ie.borderBottomColor=e.bottom,ie.borderLeftColor=e.left}else ie.borderTopColor=sideColor("top"),ie.borderRightColor=sideColor("right"),ie.borderBottomColor=sideColor("bottom"),ie.borderLeftColor=sideColor("left");const ce=i?O.borderDisabled.top:sideColor("top"),ue=(0,_react.useRef)($);ue.current=$,(0,_react.useEffect)(()=>{J.setValue(ue.current)},[O,J]),void 0!==f&&(ie.width=f),void 0!==_&&(ie.height=_);const be={disabled:i,...W},pe="top"===c,xe=pe?{alignSelf:"flex-start",marginTop:Math.max(0,((u??G.icon)-G.icon)/2)}:null,ge=_??m??G["min-height"],me=(()=>{if(!b)return 0;const e=Math.min(ne.tl,ge/2),t=b.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),he=b&&oe.top>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-oe.top,left:b.left-oe.left,width:b.width,height:oe.top+me,backgroundColor:Y}}):null,renderInner=e=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[de.active&&de.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:de.size.width,height:de.size.height,radius:ne.tl,fill:e&&!i?P.colors["surface-pressed"]:Y,stroke:ce,strokeWidth:oe.top,outset:oe.top}):null,he,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.slot,xe],children:n}):null,null!=n&&a?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[A.divider,xe,{height:G.icon,backgroundColor:P.colors["field-border"]}]}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.content,pe?A.contentTop:null],children:p}),null!=d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[A.slot,xe],children:d}):null]}),fe=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:de.onLayout,style:[A.box,ie,V],accessibilityRole:M,accessibilityLabel:E,accessibilityHint:D,accessibilityState:be,...(0,_ariaState.ariaFromState)(be),testID:z,children:renderInner(!1)});return x&&!g?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessible:!1,children:fe}):x?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:x,disabled:i,accessibilityRole:M??"button",accessibilityLabel:E,accessibilityHint:D,accessibilityState:be,...(0,_ariaState.ariaFromState)(be),testID:z,children:({pressed:e})=>(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{onLayout:de.onLayout,style:[A.box,ie,!e||i||de.active?null:{backgroundColor:P.colors["surface-pressed"]},V],children:renderInner(e)})}):fe};exports.FieldBase=FieldBase,FieldBase.displayName="FieldBase";const buildStyles=()=>_reactNative.StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});var _default=exports.default=FieldBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFloatingLabel=exports.FLOATED_LABEL_SCALE=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const FLOATED_LABEL_SCALE=exports.FLOATED_LABEL_SCALE=.85,FLOATED_LABEL_LIFT=1,useFloatingLabel=({label:e,enabled:t,floated:i,required:n=!1,variant:a,sizeTokens:r,leadingOffset:o,trailingOffset:s=0,textAlign:l="left",paddingLeft:u,lineHeight:d,restNudge:c=0,floatTrim:_=0,color:g,style:x})=>{const h=(0,_index.useTheme)(),L=(0,_react.useRef)((0,_index.createAnimatedValue)(i?1:0)).current,f=(0,_react.useRef)((0,_index.createAnimatedValue)(i?1:0)).current,p="outlined"===a,[m,A]=(0,_react.useState)(null);return(0,_react.useEffect)(()=>{const e=i?1:0,timing=(t,i)=>_reactNative.Animated.timing(t,{toValue:e,duration:h.motion.duration.fast,easing:_reactNative.Easing.bezier(...h.motion.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFloatingLabel=exports.FLOATED_LABEL_SCALE=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_Notation=require("../Notation/Notation.js"),_FieldBase=require("./FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");const FLOATED_LABEL_SCALE=exports.FLOATED_LABEL_SCALE=.85,FLOATED_LABEL_LIFT=1,useFloatingLabel=({label:e,enabled:t,floated:i,required:n=!1,variant:a,sizeTokens:r,leadingOffset:o,trailingOffset:s=0,textAlign:l="left",paddingLeft:u,lineHeight:d,restNudge:c=0,floatTrim:_=0,color:g,style:x})=>{const h=(0,_index.useTheme)(),L=(0,_react.useRef)((0,_index.createAnimatedValue)(i?1:0)).current,f=(0,_react.useRef)((0,_index.createAnimatedValue)(i?1:0)).current,p="outlined"===a,[m,A]=(0,_react.useState)(null);return(0,_react.useEffect)(()=>{const e=i?1:0,timing=(t,i)=>_reactNative.Animated.timing(t,{toValue:e,duration:h.motion.duration.fast,easing:_reactNative.Easing.bezier(...h.motion.ease["in-out"]),useNativeDriver:i});p||f.setValue(e);const t=p?_reactNative.Animated.parallel([timing(L,!0),timing(f,!1)]):timing(L,!0);return t.start(),()=>t.stop()},[i,p,L,f,h.motion.duration.fast,h.motion.ease["in-out"]]),(0,_react.useMemo)(()=>{if(!t||!(0,_FieldBase.hasFieldText)(e))return{node:null,topNotch:void 0};const i=d??m?.height??r.text,a=null!=d?r["padding-y"]+c:Math.max(0,(r["min-height"]-i)/2),v=-(a+i/2+1-_),E=L.interpolate({inputRange:[0,1],outputRange:[0,v]}),F=L.interpolate({inputRange:[0,1],outputRange:[1,FLOATED_LABEL_SCALE]}),N=-o,R=L.interpolate({inputRange:[0,1],outputRange:[0,N]}),S="right"===l?{right:r["padding-x"]+s,transformOrigin:"right center"}:"center"===l?{alignSelf:"center",transformOrigin:"center"}:{left:u+o,transformOrigin:"left center"},j=h.space.xs,O=m?m.width*FLOATED_LABEL_SCALE:0,T=m?"right"===l?m.width-O:"center"===l?(m.width-O)/2:0:0,b=p&&m?{left:m.x+N+T-j,width:f.interpolate({inputRange:[0,1],outputRange:[0,O+2*j]})}:void 0,y=_reactNative.StyleSheet.flatten(x),B={fontSize:y?.fontSize??r.text,color:y?.color??g};return{node:(0,_jsxRuntime.jsxs)(_reactNative.Animated.Text,{pointerEvents:"none",onLayout:e=>{const{x:t,width:i,height:n}=e.nativeEvent.layout;A(e=>e&&e.x===t&&e.width===i&&e.height===n?e:{x:t,width:i,height:n})},style:[styles.label,S,{top:a,color:g,fontSize:r.text,lineHeight:d,...(0,_index.fontFor)(h,"medium"),transform:[{translateX:R},{translateY:E},{scale:F}]},x],children:[(0,_jsxRuntime.jsx)(_Notation.NotationInkContext.Provider,{value:B,children:e}),n?(0,_jsxRuntime.jsx)(_FieldBase.RequiredMark,{}):null]}),topNotch:b}},[t,e,n,p,r,o,s,l,u,d,c,_,g,x,L,f,m,h])};exports.useFloatingLabel=useFloatingLabel;const styles=_reactNative.StyleSheet.create({label:{position:"absolute",zIndex:1}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchesAccept=exports.formatFileSize=exports.default=exports.FilePicker=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"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_index4=require("../FieldBase/index.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_index5=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");let fileIdSeq=0;const nextFileId=()=>"wfp-"+ ++fileIdSeq,DEFAULT_LABELS={trigger:"Attach file",addMore:"Add more",sheetTitle:"Add from",removeFile:e=>`Remove ${e}`,retry:"Retry upload",errorTooMany:e=>`You can attach up to ${e} files.`,errorTooLarge:(e,t)=>`${e} is larger than ${t} MB.`,errorWrongType:e=>`${e} is not an accepted file type.`},formatFileSize=e=>{if(void 0===e||e<=0)return"";const t=["B","KB","MB","GB"];let r=e,i=0;for(;r>=1024&&i<t.length-1;)r/=1024,i+=1;return`${r>=10||0===i?Math.round(r):Math.round(10*r)/10} ${t[i]}`};exports.formatFileSize=formatFileSize;const matchesAccept=(e,t)=>!t||0===t.length||!!e&&t.some(t=>"*/*"===t||"*"===t||(t.endsWith("/*")?e.startsWith(t.slice(0,t.length-1)):e===t));exports.matchesAccept=matchesAccept;const isImage=e=>!0===e.type?.startsWith("image/")||!e.type&&/\.(png|jpe?g|gif|webp|heic)$/i.test(e.name),imageSourceOf=e=>e.thumbnailUrl??(isImage(e)?e.uri??e.url:void 0),extensionOf=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?"FILE":e.slice(t+1).toUpperCase().slice(0,4)},FilePicker=exports.FilePicker=(0,_react.forwardRef)((e,t)=>{const{files:r,defaultFiles:i,onChange:s,sources:o,maxFiles:n,maxSizeMB:a,accept:l,validate:c,process:d,variant:u="card",renderFile:g,renderTrigger:x,disabled:m=!1,helperText:p,error:h,labels:y,haptic:_,onPick:b,onRemove:f,onError:j,onFilePress:v,onRetry:S,style:R,accessibilityLabel:T,testID:C}=e,z=(0,_index2.useTheme)(),F=(0,_react.useMemo)(()=>buildStyles(z),[z]),w=(0,_react.useMemo)(()=>({...DEFAULT_LABELS,...y}),[y]),k=z.components.filePicker,P=k?.thumbnailSize??84,N=(0,_index2.radiusOf)(z,k?.radius??"md","components.filePicker.radius"),I=k?.dashedBorderColor??z.colors.primary,[O,V]=(0,_index.useControllableState)({value:r,defaultValue:i??[],onChange:s}),B=(0,_react.useRef)(O);B.current=O;const L=(0,_react.useCallback)(e=>{B.current=e,V(e)},[V]),[M,A]=(0,_react.useState)(null),[$,H]=(0,_react.useState)(!1),q=h??M??void 0,E="number"==typeof n&&O.length>=n,W=(0,_react.useCallback)((e,t)=>{0!==e.length&&(A(e[0]),e.forEach(e=>j?.(e,t)),!1!==_&&(0,_index3.triggerHaptic)("notificationError"))},[j,_]),D=(0,_react.useCallback)(async e=>{let t;try{t=await e.pick()}catch(e){return void W([e instanceof Error?e.message:String(e)])}if(!t||0===t.length)return;const r=[];let i=t.map(e=>({id:nextFileId(),name:e.name??e.uri.split("/").pop()??"file",uri:e.uri,type:e.type,size:e.size,meta:e.meta,status:"idle"}));if("number"==typeof n){const e=Math.max(0,n-B.current.length);i.length>e&&(r.push(w.errorTooMany(n)),i=i.slice(0,e))}const s=[];for(const e of i){if("number"==typeof a&&"number"==typeof e.size&&e.size>1024*a*1024){r.push(w.errorTooLarge(e.name,a));continue}if(!matchesAccept(e.type,l)){r.push(w.errorWrongType(e.name));continue}const t=c?.(e);t?r.push(t):s.push(e)}if(W(r),0===s.length)return;if(!d){L([...B.current,...s]),A(r.length>0?r[0]:null);const e=(0,_index3.resolveHaptic)(_,"selection");return e&&(0,_index3.triggerHaptic)(e),void b?.(s)}const o=s.map(e=>({...e,status:"processing"}));L([...B.current,...o]);const u=[];for(const e of o)try{const t=await d({...e,status:"idle"}),r={...t,id:e.id,status:t.status??"idle"};L(B.current.map(t=>t.id===e.id?r:t)),u.push(r)}catch(t){L(B.current.filter(t=>t.id!==e.id)),W([t instanceof Error?t.message:String(t)],e)}if(u.length>0){0===r.length&&A(null);const e=(0,_index3.resolveHaptic)(_,"selection");e&&(0,_index3.triggerHaptic)(e),b?.(u)}},[n,a,l,c,d,w,W,L,b,_]),U=(0,_react.useCallback)(e=>{if(m||E)return;const t=e?o.find(t=>t.key===e):1===o.length?o[0]:void 0;t?D(t):o.length>1&&H(!0)},[m,E,o,D]),G=(0,_react.useCallback)(e=>{if(m)return;L(B.current.filter(t=>t.id!==e.id)),A(null);const t=(0,_index3.resolveHaptic)(_,"selection");t&&(0,_index3.triggerHaptic)(t),f?.(e)},[m,L,f,_]),K=(0,_react.useCallback)(()=>{L([]),A(null)},[L]);(0,_react.useImperativeHandle)(t,()=>({open:U,clear:K}),[U,K]);const Y=0===O.length?w.trigger:`${O.length} file${1===O.length?"":"s"} attached`,J=T??`Attachments. ${Y}`,statusText=e=>{switch(e.status){case"processing":return"Processing…";case"uploading":return`Uploading ${Math.round(100*(e.progress??0))}%`;case"done":return"Uploaded";case"error":return e.error??"Failed";default:return""}},fileA11yLabel=e=>[e.name,formatFileSize(e.size),statusText(e)].filter(Boolean).join(", "),Q=z.icons?.attachment??_defaultIcons.defaultIcons.attachment,renderStatusOverlay=e=>{if("processing"===e.status)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.tileOverlay,{backgroundColor:z.colors.background.overlay}],children:(0,_jsxRuntime.jsx)(_index5.Spinner,{size:"sm"})});if("uploading"===e.status){const t=Math.round(100*(e.progress??0));return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[F.tileOverlay,{backgroundColor:z.colors.background.overlay}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.tileOverlayText,{color:z.colors.onOverlay}],children:`${t}%`}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.tileProgressTrack,{backgroundColor:z.colors.border.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.tileProgressFill,{width:`${t}%`,backgroundColor:z.colors.primary}]})})]})}return"done"===e.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.doneBadge,{backgroundColor:z.colors.success}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.doneBadgeText,{color:z.colors.onSuccess}],children:"✓"})}):null},renderThumbnail=e=>{const t=imageSourceOf(e);return t?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:t},style:F.thumbnailImage}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.extensionTile,{backgroundColor:z.colors.background.secondary}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.extensionText,{color:z.colors.text.secondary,...(0,_index2.fontFor)(z,"semibold")}],children:extensionOf(e.name)})})},removeButton=e=>(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>G(e),disabled:m,hitSlop:8,accessibilityRole:"button",accessibilityLabel:w.removeFile(e.name),style:[F.removeButton,{backgroundColor:z.colors.background.overlay}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.removeButtonText,{color:z.colors.onOverlay}],children:"×"})}),retryButton=e=>S&&"error"===e.status?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>S(e),disabled:m,hitSlop:8,accessibilityRole:"button",accessibilityLabel:w.retry,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.retryText,{color:z.colors.primary}],children:"↻"})}):null,renderOneFile=(e,t)=>{const r={file:e,index:t,disabled:m,remove:()=>G(e),retry:S?()=>S(e):void 0},i=g?g(r):"card"===u?(e=>{const{file:t}=e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[F.tile,{width:P,height:P,borderRadius:N,..._corners.smoothCorners,borderColor:"error"===t.status?z.colors.error:z.colors.border.primary}],children:[renderThumbnail(t),renderStatusOverlay(t),"error"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.tileOverlay,{backgroundColor:z.colors.background.overlay}],children:retryButton(t)}):null,removeButton(t)]})})(r):(e=>{const{file:t}=e,r=statusText(t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[F.listRow,{borderRadius:N,..._corners.smoothCorners,borderColor:"error"===t.status?z.colors.error:z.colors.border.primary,backgroundColor:z.colors.background.primary}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[F.listThumb,{borderRadius:z.radius.sm,..._corners.smoothCorners}],children:[renderThumbnail(t),"processing"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.tileOverlay,{backgroundColor:z.colors.background.overlay}],children:(0,_jsxRuntime.jsx)(_index5.Spinner,{size:"sm"})}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:F.listTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,ellipsizeMode:"middle",style:[F.listName,{color:z.colors.text.primary,fontSize:z.typography.fontSize.sm,...(0,_index2.fontFor)(z,"medium")}],children:t.name}),(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,style:[F.listSubtitle,{color:"error"===t.status?z.colors.toneText.error:z.colors.text.tertiary,fontSize:z.typography.fontSize.xs}],children:[formatFileSize(t.size),r].filter(Boolean).join(" · ")}),"uploading"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.listProgressTrack,{backgroundColor:z.colors.border.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[F.listProgressFill,{width:`${Math.round(100*(t.progress??0))}%`,backgroundColor:z.colors.primary}]})}):null]}),retryButton(t),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>G(t),disabled:m,hitSlop:8,accessibilityRole:"button",accessibilityLabel:w.removeFile(t.name),children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.listRemoveText,{color:z.colors.text.tertiary}],children:"×"})})]})})(r);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:v?()=>v(e):void 0,disabled:m||!v,accessibilityLabel:fileA11yLabel(e),children:i},e.id)},X={open:U,disabled:m||E,fileCount:O.length,atCapacity:E},dashedTrigger=e=>(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>U(),disabled:m||E,accessibilityRole:"button",accessibilityLabel:J,accessibilityState:{disabled:m||E},"aria-disabled":m||E,style:({pressed:t})=>[F.trigger,e?F.triggerCompact:null,{borderRadius:N,..._corners.smoothCorners,borderColor:I,backgroundColor:t?z.colors.surface.pressed:z.colors.background.primary,opacity:m||E?.55:1}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:F.triggerRow,children:[Q?Q({size:16,color:z.colors.primary}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.triggerText,{color:z.colors.primary,fontSize:z.typography.fontSize.sm,...(0,_index2.fontFor)(z,"medium")}],children:0===O.length?w.trigger:w.addMore})]}),!e&&p?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.helperText,{color:z.colors.text.tertiary,fontSize:z.typography.fontSize.xs}],children:p}):null]}),Z=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>U(),disabled:m||E,accessibilityRole:"button",accessibilityLabel:w.addMore,style:({pressed:e})=>[F.tile,F.addTile,{width:P,height:P,borderRadius:N,..._corners.smoothCorners,borderColor:I,backgroundColor:e?z.colors.surface.pressed:"transparent",opacity:m||E?.55:1}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[F.addTileText,{color:z.colors.primary}],children:"+"})});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[F.container,R],testID:C,accessibilityLabel:J,children:["card"===u?0===O.length?x?x(X):dashedTrigger(!1):(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[F.strip,{columnGap:z.spacing.sm}],children:[O.map(renderOneFile),x?x(X):E||m?null:Z]}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{rowGap:z.spacing.sm},children:[x?x(X):E?null:dashedTrigger(O.length>0),O.map(renderOneFile)]}),(0,_index4.hasFieldText)(q)?(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityLiveRegion:"polite",style:[F.errorText,{color:z.colors.toneText.error,fontSize:z.typography.fontSize.xs,marginTop:z.spacing.xxs}],children:q}):null,(0,_jsxRuntime.jsx)(_OptionSheet.OptionSheet,{open:$,onClose:()=>H(!1),title:w.sheetTitle,options:o,labelOf:e=>e.label,getValue:e=>e.key,disabledOf:()=>!1,descriptionOf:e=>e.description,iconOf:e=>e.icon,isSelected:()=>!1,onSelect:e=>{H(!1),D(e)}})]})});FilePicker.displayName="FilePicker";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},trigger:{borderWidth:1,borderStyle:"dashed",alignItems:"center",minHeight:48,paddingVertical:e.spacing.md,paddingHorizontal:e.spacing.lg},triggerCompact:{minHeight:40,paddingVertical:e.spacing.sm},triggerRow:{flexDirection:"row",alignItems:"center",columnGap:e.spacing.sm},triggerText:{includeFontPadding:!1},helperText:{includeFontPadding:!1,marginTop:e.spacing.xs,textAlign:"center"},strip:{paddingVertical:e.spacing.xxs},tile:{borderWidth:1,overflow:"hidden"},addTile:{borderStyle:"dashed",alignItems:"center",justifyContent:"center"},addTileText:{fontSize:e.typography.fontSize["3xl"],includeFontPadding:!1},thumbnailImage:{width:"100%",height:"100%",resizeMode:"cover"},extensionTile:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},extensionText:{fontSize:e.typography.fontSize.sm,letterSpacing:1,includeFontPadding:!1},tileOverlay:{..._reactNative.StyleSheet.absoluteFill,alignItems:"center",justifyContent:"center"},tileOverlayText:{fontSize:e.typography.fontSize.sm,includeFontPadding:!1,marginBottom:e.spacing.xs},tileProgressTrack:{position:"absolute",left:8,right:8,bottom:8,height:3,borderRadius:e.radius.pill,..._corners.smoothCorners,overflow:"hidden"},tileProgressFill:{height:"100%",borderRadius:e.radius.pill,..._corners.smoothCorners},doneBadge:{position:"absolute",right:4,bottom:4,width:18,height:18,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},doneBadgeText:{fontSize:e.typography.fontSize.xs,includeFontPadding:!1},removeButton:{position:"absolute",top:4,right:4,width:20,height:20,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},removeButtonText:{fontSize:e.typography.fontSize.sm,lineHeight:15,includeFontPadding:!1},retryText:{fontSize:e.typography.fontSize.xl,includeFontPadding:!1},listRow:{flexDirection:"row",alignItems:"center",borderWidth:1,padding:e.spacing.sm,columnGap:e.spacing.sm},listThumb:{width:40,height:40,overflow:"hidden"},listTextWrap:{flex:1},listName:{includeFontPadding:!1},listSubtitle:{includeFontPadding:!1,marginTop:e.spacing.xxs},listProgressTrack:{height:3,borderRadius:e.radius.pill,..._corners.smoothCorners,overflow:"hidden",marginTop:e.spacing.xs},listProgressFill:{height:"100%",borderRadius:e.radius.pill,..._corners.smoothCorners},listRemoveText:{fontSize:e.typography.fontSize["2xl"],includeFontPadding:!1,paddingHorizontal:e.spacing.xs},errorText:{includeFontPadding:!1}});var _default=exports.default=FilePicker;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.matchesAccept=exports.formatFileSize=exports.default=exports.FilePicker=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"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_index4=require("../FieldBase/index.js"),_OptionSheet=require("../OptionSheet/OptionSheet.js"),_index5=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");let fileIdSeq=0;const nextFileId=()=>"wfp-"+ ++fileIdSeq,DEFAULT_LABELS={trigger:"Attach file",addMore:"Add more",sheetTitle:"Add from",removeFile:e=>`Remove ${e}`,retry:"Retry upload",errorTooMany:e=>`You can attach up to ${e} files.`,errorTooLarge:(e,t)=>`${e} is larger than ${t} MB.`,errorWrongType:e=>`${e} is not an accepted file type.`},formatFileSize=e=>{if(void 0===e||e<=0)return"";const t=["B","KB","MB","GB"];let r=e,i=0;for(;r>=1024&&i<t.length-1;)r/=1024,i+=1;return`${r>=10||0===i?Math.round(r):Math.round(10*r)/10} ${t[i]}`};exports.formatFileSize=formatFileSize;const matchesAccept=(e,t)=>!t||0===t.length||!!e&&t.some(t=>"*/*"===t||"*"===t||(t.endsWith("/*")?e.startsWith(t.slice(0,t.length-1)):e===t));exports.matchesAccept=matchesAccept;const isImage=e=>!0===e.type?.startsWith("image/")||!e.type&&/\.(png|jpe?g|gif|webp|heic)$/i.test(e.name),imageSourceOf=e=>e.thumbnailUrl??(isImage(e)?e.uri??e.url:void 0),extensionOf=e=>{const t=e.lastIndexOf(".");return t<=0||t===e.length-1?"FILE":e.slice(t+1).toUpperCase().slice(0,4)},FilePicker=exports.FilePicker=(0,_react.forwardRef)((e,t)=>{const{files:r,defaultFiles:i,onChange:s,sources:o,maxFiles:n,maxSizeMB:l,accept:a,validate:c,process:d,variant:u="card",renderFile:x,renderTrigger:m,disabled:g=!1,helperText:h,error:p,labels:_,haptic:b,onPick:y,onRemove:f,onError:j,onFilePress:v,onRetry:R,style:T,accessibilityLabel:S,testID:C}=e,F=(0,_index2.useTheme)(),w=(0,_react.useMemo)(()=>buildStyles(F),[F]),z=(0,_react.useMemo)(()=>({...DEFAULT_LABELS,..._}),[_]),N=F.radius.md,P=F.colors.primary,[k,I]=(0,_index.useControllableState)({value:r,defaultValue:i??[],onChange:s}),O=(0,_react.useRef)(k);O.current=k;const V=(0,_react.useCallback)(e=>{O.current=e,I(e)},[I]),[B,L]=(0,_react.useState)(null),[M,A]=(0,_react.useState)(!1),$=p??B??void 0,H="number"==typeof n&&k.length>=n,q=(0,_react.useCallback)((e,t)=>{0!==e.length&&(L(e[0]),e.forEach(e=>j?.(e,t)),!1!==b&&(0,_index3.triggerHaptic)("notificationError"))},[j,b]),E=(0,_react.useCallback)(async e=>{let t;try{t=await e.pick()}catch(e){return void q([e instanceof Error?e.message:String(e)])}if(!t||0===t.length)return;const r=[];let i=t.map(e=>({id:nextFileId(),name:e.name??e.uri.split("/").pop()??"file",uri:e.uri,type:e.type,size:e.size,meta:e.meta,status:"idle"}));if("number"==typeof n){const e=Math.max(0,n-O.current.length);i.length>e&&(r.push(z.errorTooMany(n)),i=i.slice(0,e))}const s=[];for(const e of i){if("number"==typeof l&&"number"==typeof e.size&&e.size>1024*l*1024){r.push(z.errorTooLarge(e.name,l));continue}if(!matchesAccept(e.type,a)){r.push(z.errorWrongType(e.name));continue}const t=c?.(e);t?r.push(t):s.push(e)}if(q(r),0===s.length)return;if(!d){V([...O.current,...s]),L(r.length>0?r[0]:null);const e=(0,_index3.resolveHaptic)(b,"selection");return e&&(0,_index3.triggerHaptic)(e),void y?.(s)}const o=s.map(e=>({...e,status:"processing"}));V([...O.current,...o]);const u=[];for(const e of o)try{const t=await d({...e,status:"idle"}),r={...t,id:e.id,status:t.status??"idle"};V(O.current.map(t=>t.id===e.id?r:t)),u.push(r)}catch(t){V(O.current.filter(t=>t.id!==e.id)),q([t instanceof Error?t.message:String(t)],e)}if(u.length>0){0===r.length&&L(null);const e=(0,_index3.resolveHaptic)(b,"selection");e&&(0,_index3.triggerHaptic)(e),y?.(u)}},[n,l,a,c,d,z,q,V,y,b]),W=(0,_react.useCallback)(e=>{if(g||H)return;const t=e?o.find(t=>t.key===e):1===o.length?o[0]:void 0;t?E(t):o.length>1&&A(!0)},[g,H,o,E]),D=(0,_react.useCallback)(e=>{if(g)return;V(O.current.filter(t=>t.id!==e.id)),L(null);const t=(0,_index3.resolveHaptic)(b,"selection");t&&(0,_index3.triggerHaptic)(t),f?.(e)},[g,V,f,b]),U=(0,_react.useCallback)(()=>{V([]),L(null)},[V]);(0,_react.useImperativeHandle)(t,()=>({open:W,clear:U}),[W,U]);const G=0===k.length?z.trigger:`${k.length} file${1===k.length?"":"s"} attached`,K=S??`Attachments. ${G}`,statusText=e=>{switch(e.status){case"processing":return"Processing…";case"uploading":return`Uploading ${Math.round(100*(e.progress??0))}%`;case"done":return"Uploaded";case"error":return e.error??"Failed";default:return""}},fileA11yLabel=e=>[e.name,formatFileSize(e.size),statusText(e)].filter(Boolean).join(", "),Y=F.settings.icons.attachment??_defaultIcons.defaultIcons.attachment,renderStatusOverlay=e=>{if("processing"===e.status)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tileOverlay,{backgroundColor:F.colors.scrim}],children:(0,_jsxRuntime.jsx)(_index5.Spinner,{size:"sm"})});if("uploading"===e.status){const t=Math.round(100*(e.progress??0));return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.tileOverlay,{backgroundColor:F.colors.scrim}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.tileOverlayText,{color:F.colors["on-scrim"]}],children:`${t}%`}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tileProgressTrack,{backgroundColor:F.colors.border}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tileProgressFill,{width:`${t}%`,backgroundColor:F.colors.primary}]})})]})}return"done"===e.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.doneBadge,{backgroundColor:F.colors.success}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.doneBadgeText,{color:F.colors["on-success"]}],children:"✓"})}):null},renderThumbnail=e=>{const t=imageSourceOf(e);return t?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:t},style:w.thumbnailImage}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.extensionTile,{backgroundColor:F.colors["bg-subtle"]}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.extensionText,{color:F.colors["text-muted"],...(0,_index2.fontFor)(F,"semibold")}],children:extensionOf(e.name)})})},removeButton=e=>(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(e),disabled:g,hitSlop:8,accessibilityRole:"button",accessibilityLabel:z.removeFile(e.name),style:[w.removeButton,{backgroundColor:F.colors.scrim}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.removeButtonText,{color:F.colors["on-scrim"]}],children:"×"})}),retryButton=e=>R&&"error"===e.status?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>R(e),disabled:g,hitSlop:8,accessibilityRole:"button",accessibilityLabel:z.retry,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.retryText,{color:F.colors.primary}],children:"↻"})}):null,renderOneFile=(e,t)=>{const r={file:e,index:t,disabled:g,remove:()=>D(e),retry:R?()=>R(e):void 0},i=x?x(r):"card"===u?(e=>{const{file:t}=e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.tile,{width:84,height:84,borderRadius:N,..._corners.smoothCorners,borderColor:"error"===t.status?F.colors.danger:F.colors.border}],children:[renderThumbnail(t),renderStatusOverlay(t),"error"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tileOverlay,{backgroundColor:F.colors.scrim}],children:retryButton(t)}):null,removeButton(t)]})})(r):(e=>{const{file:t}=e,r=statusText(t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.listRow,{borderRadius:N,..._corners.smoothCorners,borderColor:"error"===t.status?F.colors.danger:F.colors.border,backgroundColor:F.colors.bg}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.listThumb,{borderRadius:F.radius.sm,..._corners.smoothCorners}],children:[renderThumbnail(t),"processing"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.tileOverlay,{backgroundColor:F.colors.scrim}],children:(0,_jsxRuntime.jsx)(_index5.Spinner,{size:"sm"})}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:w.listTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,ellipsizeMode:"middle",style:[w.listName,{color:F.colors["text-body"],fontSize:F.text.sm.size,...(0,_index2.fontFor)(F,"medium")}],children:t.name}),(0,_jsxRuntime.jsx)(_reactNative.Text,{numberOfLines:1,style:[w.listSubtitle,{color:"error"===t.status?F.colors["danger-text"]:F.colors["text-subtle"],fontSize:F.text.xs.size}],children:[formatFileSize(t.size),r].filter(Boolean).join(" · ")}),"uploading"===t.status?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.listProgressTrack,{backgroundColor:F.colors.border}],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[w.listProgressFill,{width:`${Math.round(100*(t.progress??0))}%`,backgroundColor:F.colors.primary}]})}):null]}),retryButton(t),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>D(t),disabled:g,hitSlop:8,accessibilityRole:"button",accessibilityLabel:z.removeFile(t.name),children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.listRemoveText,{color:F.colors["text-subtle"]}],children:"×"})})]})})(r);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:v?()=>v(e):void 0,disabled:g||!v,accessibilityLabel:fileA11yLabel(e),children:i},e.id)},J={open:W,disabled:g||H,fileCount:k.length,atCapacity:H},dashedTrigger=e=>(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>W(),disabled:g||H,accessibilityRole:"button",accessibilityLabel:K,accessibilityState:{disabled:g||H},"aria-disabled":g||H,style:({pressed:t})=>[w.trigger,e?w.triggerCompact:null,{borderRadius:N,..._corners.smoothCorners,borderColor:P,backgroundColor:t?F.colors["surface-pressed"]:F.colors.bg,opacity:g||H?.55:1}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:w.triggerRow,children:[Y?Y({size:16,color:F.colors.primary}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.triggerText,{color:F.colors.primary,fontSize:F.text.sm.size,...(0,_index2.fontFor)(F,"medium")}],children:0===k.length?z.trigger:z.addMore})]}),!e&&h?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.helperText,{color:F.colors["text-subtle"],fontSize:F.text.xs.size}],children:h}):null]}),Q=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>W(),disabled:g||H,accessibilityRole:"button",accessibilityLabel:z.addMore,style:({pressed:e})=>[w.tile,w.addTile,{width:84,height:84,borderRadius:N,..._corners.smoothCorners,borderColor:P,backgroundColor:e?F.colors["surface-pressed"]:"transparent",opacity:g||H?.55:1}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[w.addTileText,{color:F.colors.primary}],children:"+"})});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[w.container,T],testID:C,accessibilityLabel:K,children:["card"===u?0===k.length?m?m(J):dashedTrigger(!1):(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:[w.strip,{columnGap:F.space.sm}],children:[k.map(renderOneFile),m?m(J):H||g?null:Q]}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{rowGap:F.space.sm},children:[m?m(J):H?null:dashedTrigger(k.length>0),k.map(renderOneFile)]}),(0,_index4.hasFieldText)($)?(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityLiveRegion:"polite",style:[w.errorText,{color:F.colors["danger-text"],fontSize:F.text.xs.size,marginTop:F.space.xxs}],children:$}):null,(0,_jsxRuntime.jsx)(_OptionSheet.OptionSheet,{open:M,onClose:()=>A(!1),title:z.sheetTitle,options:o,labelOf:e=>e.label,getValue:e=>e.key,disabledOf:()=>!1,descriptionOf:e=>e.description,iconOf:e=>e.icon,isSelected:()=>!1,onSelect:e=>{A(!1),E(e)}})]})});FilePicker.displayName="FilePicker";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"},trigger:{borderWidth:1,borderStyle:"dashed",alignItems:"center",minHeight:48,paddingVertical:e.space.md,paddingHorizontal:e.space.lg},triggerCompact:{minHeight:40,paddingVertical:e.space.sm},triggerRow:{flexDirection:"row",alignItems:"center",columnGap:e.space.sm},triggerText:{includeFontPadding:!1},helperText:{includeFontPadding:!1,marginTop:e.space.xs,textAlign:"center"},strip:{paddingVertical:e.space.xxs},tile:{borderWidth:1,overflow:"hidden"},addTile:{borderStyle:"dashed",alignItems:"center",justifyContent:"center"},addTileText:{fontSize:e.text["3xl"].size,includeFontPadding:!1},thumbnailImage:{width:"100%",height:"100%",resizeMode:"cover"},extensionTile:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center"},extensionText:{fontSize:e.text.sm.size,letterSpacing:1,includeFontPadding:!1},tileOverlay:{..._reactNative.StyleSheet.absoluteFill,alignItems:"center",justifyContent:"center"},tileOverlayText:{fontSize:e.text.sm.size,includeFontPadding:!1,marginBottom:e.space.xs},tileProgressTrack:{position:"absolute",left:8,right:8,bottom:8,height:3,borderRadius:e.radius.pill,..._corners.smoothCorners,overflow:"hidden"},tileProgressFill:{height:"100%",borderRadius:e.radius.pill,..._corners.smoothCorners},doneBadge:{position:"absolute",right:4,bottom:4,width:18,height:18,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},doneBadgeText:{fontSize:e.text.xs.size,includeFontPadding:!1},removeButton:{position:"absolute",top:4,right:4,width:20,height:20,borderRadius:e.radius.pill,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},removeButtonText:{fontSize:e.text.sm.size,lineHeight:15,includeFontPadding:!1},retryText:{fontSize:e.text.xl.size,includeFontPadding:!1},listRow:{flexDirection:"row",alignItems:"center",borderWidth:1,padding:e.space.sm,columnGap:e.space.sm},listThumb:{width:40,height:40,overflow:"hidden"},listTextWrap:{flex:1},listName:{includeFontPadding:!1},listSubtitle:{includeFontPadding:!1,marginTop:e.space.xxs},listProgressTrack:{height:3,borderRadius:e.radius.pill,..._corners.smoothCorners,overflow:"hidden",marginTop:e.space.xs},listProgressFill:{height:"100%",borderRadius:e.radius.pill,..._corners.smoothCorners},listRemoveText:{fontSize:e.text["2xl"].size,includeFontPadding:!1,paddingHorizontal:e.space.xs},errorText:{includeFontPadding:!1}});var _default=exports.default=FilePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.FileViewer=void 0;var _mobileCore=require("@webority/mobile-core"),_download=require("@webority/mobile-core/download"),_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireDefault(require("react-native-reanimated")),_NativePdfRasterizer=_interopRequireDefault(require("../../specs/NativePdfRasterizer.js")),_index=require("../../theme/index.js"),_hashString=require("../../utils/hashString.js"),_index2=require("../Spinner/index.js"),_FileViewerPage=require("./FileViewerPage.js"),_useFileViewerZoom=require("./useFileViewerZoom.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const HAS_SCHEME=/^[a-z][a-z0-9+.-]*:/i,MAX_RENDER_SCALE=5,RENDER_OVERSCALE=1.25,RENDER_AHEAD=3,MOUNT_AROUND=2,DEFAULT_MAX_ZOOM=4,toError=e=>e instanceof Error?e:new Error(String(e)),scaleForWidth=(e,t,r)=>{if(t<=0)return 1;const i=e/t*_reactNative.PixelRatio.get()*1.25*r;return Math.round(100*Math.min(Math.max(i,1),5))/100},cacheFileName=e=>{const t=(e.split("#")[0]?.split("?")[0]??"").split("/").pop()??"",r=/\.[a-z0-9]{1,8}$/i.exec(t)?.[0]??"";return`${(0,_hashString.hashString)(e)}${r.toLowerCase()}`},localPathFromSource=async e=>{if(!HAS_SCHEME.test(e.uri)||e.uri.startsWith("file://"))return e.uri.replace(/^file:\/\//,"");return(await(0,_download.downloadFile)({client:e.client??_mobileCore.publicClient,url:e.uri,fileName:cacheFileName(e.uri),headers:e.headers,overwrite:!1===e.cache})).path},AnimatedScrollView=_reactNativeReanimated.default.createAnimatedComponent(_reactNative.ScrollView),FileViewer=({source:e,onLoadComplete:t,onPageChanged:r,onError:i,loadingIndicator:a,zoomEnabled:l=!0,maxZoom:o=4,style:n,testID:s,accessibilityLabel:c})=>{const u=(0,_index.useTheme)().
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.FileViewer=void 0;var _mobileCore=require("@webority/mobile-core"),_download=require("@webority/mobile-core/download"),_react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeReanimated=_interopRequireDefault(require("react-native-reanimated")),_NativePdfRasterizer=_interopRequireDefault(require("../../specs/NativePdfRasterizer.js")),_index=require("../../theme/index.js"),_hashString=require("../../utils/hashString.js"),_index2=require("../Spinner/index.js"),_FileViewerPage=require("./FileViewerPage.js"),_useFileViewerZoom=require("./useFileViewerZoom.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const HAS_SCHEME=/^[a-z][a-z0-9+.-]*:/i,MAX_RENDER_SCALE=5,RENDER_OVERSCALE=1.25,RENDER_AHEAD=3,MOUNT_AROUND=2,DEFAULT_MAX_ZOOM=4,toError=e=>e instanceof Error?e:new Error(String(e)),scaleForWidth=(e,t,r)=>{if(t<=0)return 1;const i=e/t*_reactNative.PixelRatio.get()*1.25*r;return Math.round(100*Math.min(Math.max(i,1),5))/100},cacheFileName=e=>{const t=(e.split("#")[0]?.split("?")[0]??"").split("/").pop()??"",r=/\.[a-z0-9]{1,8}$/i.exec(t)?.[0]??"";return`${(0,_hashString.hashString)(e)}${r.toLowerCase()}`},localPathFromSource=async e=>{if(!HAS_SCHEME.test(e.uri)||e.uri.startsWith("file://"))return e.uri.replace(/^file:\/\//,"");return(await(0,_download.downloadFile)({client:e.client??_mobileCore.publicClient,url:e.uri,fileName:cacheFileName(e.uri),headers:e.headers,overwrite:!1===e.cache})).path},AnimatedScrollView=_reactNativeReanimated.default.createAnimatedComponent(_reactNative.ScrollView),FileViewer=({source:e,onLoadComplete:t,onPageChanged:r,onError:i,loadingIndicator:a,zoomEnabled:l=!0,maxZoom:o=4,style:n,testID:s,accessibilityLabel:c})=>{const u=(0,_index.useTheme)().space.sm,{width:d,height:h}=(0,_reactNative.useWindowDimensions)(),[_,f]=(0,_react.useState)({width:0,height:0}),[m,w]=(0,_react.useState)(0),[g,p]=(0,_react.useState)({width:612,height:792}),R=g.height/g.width,[v,x]=(0,_react.useState)({}),[b,y]=(0,_react.useState)(null),[S,E]=(0,_react.useState)(0),N=(0,_react.useRef)(0),j=(0,_react.useRef)(null),F=(0,_react.useRef)(null),V=(0,_react.useRef)(i);V.current=i;const M=(0,_react.useRef)(t);M.current=t;const C=(0,_react.useRef)(r);C.current=r;const P=(0,_react.useRef)(a);P.current=a;const z=d*R,q=z+u,A=_.height>0?_.height:h,{scrollRef:D,scrollGesture:Z,zoomGesture:H,zoomStyle:O,zoomLevel:L,resetZoom:G}=(0,_useFileViewerZoom.useFileViewerZoom)({zoomEnabled:l,maxZoom:o,viewportWidth:_.width>0?_.width:d,viewportHeight:A,maxScroll:Math.max(0,m*q-u-A)}),W=(0,_react.useMemo)(()=>({uri:e.uri,headers:e.headers,client:e.client,cache:e.cache}),[e.uri,e.headers,e.client,e.cache]);(0,_react.useEffect)(()=>{let e=!1;return(async()=>{if(_NativePdfRasterizer.default)try{const t=await localPathFromSource(W);if(e)return;const r=await _NativePdfRasterizer.default.open(t);if(e)return void await _NativePdfRasterizer.default.close(r.handle).catch(()=>{});j.current=r.handle,N.current=0,w(r.pageCount),E(0),x({}),y(null),G(),r.pageWidth>0&&r.pageHeight>0&&p({width:r.pageWidth,height:r.pageHeight}),M.current?.(r.pageCount)}catch(t){if(!e){const e=toError(t);_mobileCore.Logger.error("[@webority/mobile-ui] FileViewer failed to load.",e),V.current?.(e)}}else V.current?.(new Error("[@webority/mobile-ui] PdfRasterizer native module is not linked. Run pod install / rebuild the app after adding @webority/mobile-ui."))})(),()=>{e=!0;const t=j.current;j.current=null,t&&_NativePdfRasterizer.default?.close(t).catch(()=>{})}},[W,G]);const T=scaleForWidth(d,g.width,1),k=L>_useFileViewerZoom.ZOOM_REST?scaleForWidth(d,g.width,Math.ceil(L)):0,I=(0,_react.useCallback)(async()=>{const e=j.current;if(!e||!_NativePdfRasterizer.default||0===m)return;if(F.current===e)return;let t;if(void 0===v[S])t={page:S,scale:T,sharp:!1};else if(k>T&&null!==v[S]&&(b?.page!==S||b.scale!==k))t={page:S,scale:k,sharp:!0};else for(let e=1;e<=3&&!t;e+=1)for(const r of[S+e,S-e])if(r>=0&&r<m&&void 0===v[r]){t={page:r,scale:T,sharp:!1};break}if(!t)return;const{page:r,scale:i,sharp:a}=t;F.current=e;let l=null;try{l=await _NativePdfRasterizer.default.renderPage(e,r,i)}catch(t){j.current===e&&_mobileCore.Logger.error(`[@webority/mobile-ui] FileViewer failed to render page ${r}.`,toError(t))}finally{F.current===e&&(F.current=null)}j.current===e&&(a?y({page:r,scale:i,uri:l}):x(e=>({...e,[r]:l})))},[T,S,m,v,b,k]);(0,_react.useEffect)(()=>{I()},[I]),(0,_react.useEffect)(()=>{L<=_useFileViewerZoom.ZOOM_REST&&y(null)},[L]);const $=(0,_react.useCallback)(e=>{const{width:t,height:r}=e.nativeEvent.layout;f(e=>e.width===t&&e.height===r?e:{width:t,height:r})},[]),U=(0,_react.useCallback)(e=>{if(q<=0||0===m)return;const t=Math.min(m-1,Math.max(0,Math.round(e.nativeEvent.contentOffset.y/q)));t!==N.current&&(N.current=t,E(t),C.current?.(t+1,m))},[m,q]),X=(0,_react.useCallback)(()=>P.current?.()??(0,_jsxRuntime.jsx)(_index2.Spinner,{size:"lg"}),[]),B=(0,_react.useMemo)(()=>({gap:u}),[u]),J=(0,_react.useMemo)(()=>Array.from({length:m},(e,t)=>t),[m]),K=L>_useFileViewerZoom.ZOOM_REST;return(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{style:[styles.root,n],onLayout:$,testID:s,accessible:void 0!==c,accessibilityLabel:c,accessibilityRole:"none",children:0===m?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.pagePlaceholder,children:a?a():(0,_jsxRuntime.jsx)(_index2.Spinner,{size:"lg"})}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:H,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.viewport,collapsable:!1,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[styles.viewport,O],children:(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Z,children:(0,_jsxRuntime.jsx)(AnimatedScrollView,{ref:D,onScroll:U,scrollEventThrottle:16,scrollEnabled:!K,showsVerticalScrollIndicator:!K,contentContainerStyle:B,children:J.map(e=>(0,_jsxRuntime.jsx)(_FileViewerPage.FileViewerPage,{width:d,height:z,uri:K&&b?.page===e&&b.uri?b.uri:v[e],mounted:Math.abs(e-S)<=2,renderLoading:X},e))})})})})})})};exports.FileViewer=FileViewer,FileViewer.displayName="FileViewer";const styles=_reactNative.StyleSheet.create({root:{flex:1,overflow:"hidden"},viewport:{flex:1},pagePlaceholder:{flex:1,alignItems:"center",justifyContent:"center"}});var _default=exports.default=FileViewer;
|