@webority/mobile-ui 0.8.2 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Accordion/Accordion.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/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/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 -0
- package/lib/commonjs/components/Calendar/CalendarDay.js +1 -0
- package/lib/commonjs/components/Calendar/calendarDates.js +1 -0
- package/lib/commonjs/components/Calendar/calendarStyles.js +1 -0
- package/lib/commonjs/components/Calendar/index.js +1 -0
- 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/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/Descriptions/Descriptions.js +1 -1
- package/lib/commonjs/components/Dialog/Dialog.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/ErrorBoundary/withErrorBoundary.js +1 -1
- package/lib/commonjs/components/FieldBase/Chevron.js +1 -1
- package/lib/commonjs/components/FieldBase/FieldBase.js +1 -1
- package/lib/commonjs/components/FilePicker/FilePicker.js +1 -1
- package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
- package/lib/commonjs/components/FormField/FormField.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/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/Modal/Modal.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/OptionSheet/OptionSheet.js +1 -1
- package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/commonjs/components/ProfilePicker/ProfilePicker.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/Radio/RadioGroup.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/SearchBar/SearchBar.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/Skeleton/Skeleton.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonClock.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonProvider.js +1 -1
- package/lib/commonjs/components/Skeleton/SkeletonSkip.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/SliderField/SliderField.js +1 -1
- package/lib/commonjs/components/Spinner/Spinner.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/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/ZoomableImage/ZoomableImage.js +1 -1
- package/lib/commonjs/components/index.js +1 -1
- package/lib/commonjs/form/FormContext.js +1 -1
- package/lib/commonjs/network/NetworkStatusBanner.js +1 -1
- package/lib/commonjs/theme/ThemeContext.js +1 -1
- package/lib/commonjs/theme/merge.js +1 -1
- package/lib/commonjs/theme/textStyle.js +1 -1
- package/lib/commonjs/theme/tokens.js +1 -1
- package/lib/commonjs/theme/toneInk.js +1 -0
- package/lib/commonjs/utils/ariaState.js +1 -0
- package/lib/module/components/Accordion/Accordion.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/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/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 -0
- package/lib/module/components/Calendar/CalendarDay.js +1 -0
- package/lib/module/components/Calendar/calendarDates.js +1 -0
- package/lib/module/components/Calendar/calendarStyles.js +1 -0
- package/lib/module/components/Calendar/index.js +1 -0
- 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/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/Descriptions/Descriptions.js +1 -1
- package/lib/module/components/Dialog/Dialog.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/ErrorBoundary/withErrorBoundary.js +1 -1
- package/lib/module/components/FieldBase/Chevron.js +1 -1
- package/lib/module/components/FieldBase/FieldBase.js +1 -1
- package/lib/module/components/FilePicker/FilePicker.js +1 -1
- package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -1
- package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -1
- package/lib/module/components/FormField/FormField.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/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/Modal/Modal.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/OptionSheet/OptionSheet.js +1 -1
- package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -1
- package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -1
- package/lib/module/components/Radio/Radio.js +1 -1
- package/lib/module/components/Radio/RadioDot.js +1 -1
- package/lib/module/components/Radio/RadioGroup.js +1 -1
- package/lib/module/components/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/SearchBar/SearchBar.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/Skeleton/Skeleton.js +1 -1
- package/lib/module/components/Skeleton/SkeletonClock.js +1 -1
- package/lib/module/components/Skeleton/SkeletonContent.js +1 -1
- package/lib/module/components/Skeleton/SkeletonProvider.js +1 -1
- package/lib/module/components/Skeleton/SkeletonSkip.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/SliderField/SliderField.js +1 -1
- package/lib/module/components/Spinner/Spinner.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/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/ZoomableImage/ZoomableImage.js +1 -1
- package/lib/module/components/index.js +1 -1
- package/lib/module/form/FormContext.js +1 -1
- package/lib/module/network/NetworkStatusBanner.js +1 -1
- package/lib/module/theme/ThemeContext.js +1 -1
- package/lib/module/theme/merge.js +1 -1
- package/lib/module/theme/textStyle.js +1 -1
- package/lib/module/theme/tokens.js +1 -1
- package/lib/module/theme/toneInk.js +1 -0
- package/lib/module/utils/ariaState.js +1 -0
- package/lib/typescript/commonjs/components/Accordion/Accordion.d.ts +1 -1
- package/lib/typescript/commonjs/components/AnimatePresence/AnimatePresence.d.ts +1 -1
- package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +1 -1
- package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +1 -1
- package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.d.ts +1 -1
- package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +2 -2
- 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/BottomNavigation/BottomNavigation.d.ts +6 -0
- package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +1 -1
- package/lib/typescript/commonjs/components/Box/Box.d.ts +1 -1
- package/lib/typescript/commonjs/components/Calendar/Calendar.d.ts +70 -0
- package/lib/typescript/commonjs/components/Calendar/CalendarDay.d.ts +30 -0
- package/lib/typescript/commonjs/components/Calendar/calendarDates.d.ts +24 -0
- package/lib/typescript/commonjs/components/Calendar/calendarStyles.d.ts +125 -0
- package/lib/typescript/commonjs/components/Calendar/index.d.ts +4 -0
- package/lib/typescript/commonjs/components/Carousel/Carousel.d.ts +1 -1
- package/lib/typescript/commonjs/components/Chip/Chip.d.ts +1 -1
- package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +11 -1
- package/lib/typescript/commonjs/components/Confetti/Confetti.d.ts +1 -1
- package/lib/typescript/commonjs/components/DatePicker/DatePicker.d.ts +1 -1
- package/lib/typescript/commonjs/components/DateRangePicker/DateRangePicker.d.ts +7 -1
- package/lib/typescript/commonjs/components/Descriptions/Descriptions.d.ts +1 -1
- package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +1 -1
- package/lib/typescript/commonjs/components/Drawer/Drawer.d.ts +1 -1
- package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +1 -1
- package/lib/typescript/commonjs/components/ErrorBoundary/withErrorBoundary.d.ts +1 -1
- package/lib/typescript/commonjs/components/FieldBase/Chevron.d.ts +1 -1
- package/lib/typescript/commonjs/components/FilePicker/FilePicker.d.ts +1 -1
- package/lib/typescript/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +1 -1
- package/lib/typescript/commonjs/components/InlineSelect/InlineSelect.d.ts +1 -1
- package/lib/typescript/commonjs/components/ListItem/ListItem.d.ts +24 -0
- package/lib/typescript/commonjs/components/ListItem/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/LoaderOverlay/LoaderOverlay.d.ts +1 -1
- package/lib/typescript/commonjs/components/Markdown/Markdown.d.ts +1 -1
- package/lib/typescript/commonjs/components/Modal/Modal.d.ts +1 -1
- package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +1 -1
- package/lib/typescript/commonjs/components/Radio/RadioDot.d.ts +1 -1
- package/lib/typescript/commonjs/components/Radio/RadioGroup.d.ts +1 -1
- package/lib/typescript/commonjs/components/Rating/Rating.d.ts +1 -1
- package/lib/typescript/commonjs/components/Repeater/Repeater.d.ts +1 -1
- package/lib/typescript/commonjs/components/RichTextEditor/RichTextEditor.d.ts +1 -1
- package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.d.ts +1 -1
- package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +7 -0
- package/lib/typescript/commonjs/components/Skeleton/Skeleton.d.ts +1 -1
- package/lib/typescript/commonjs/components/Skeleton/SkeletonClock.d.ts +1 -1
- package/lib/typescript/commonjs/components/Skeleton/SkeletonProvider.d.ts +1 -1
- package/lib/typescript/commonjs/components/Skeleton/SkeletonSkip.d.ts +1 -1
- package/lib/typescript/commonjs/components/Spinner/Spinner.d.ts +1 -1
- package/lib/typescript/commonjs/components/StatusBadge/StatusBadge.d.ts +1 -1
- package/lib/typescript/commonjs/components/Stepper/Stepper.d.ts +1 -1
- package/lib/typescript/commonjs/components/Swipeable/Swipeable.d.ts +1 -1
- package/lib/typescript/commonjs/components/Text/Text.d.ts +1 -1
- package/lib/typescript/commonjs/components/TimePicker/TimePicker.d.ts +1 -1
- 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 +1 -1
- package/lib/typescript/commonjs/components/ZoomableImage/ZoomableImage.d.ts +1 -1
- package/lib/typescript/commonjs/components/index.d.ts +3 -1
- package/lib/typescript/commonjs/form/FormContext.d.ts +1 -1
- package/lib/typescript/commonjs/network/NetworkStatusBanner.d.ts +1 -1
- package/lib/typescript/commonjs/theme/ThemeContext.d.ts +1 -1
- package/lib/typescript/commonjs/theme/textStyle.d.ts +4 -1
- package/lib/typescript/commonjs/theme/toneInk.d.ts +38 -0
- package/lib/typescript/commonjs/theme/types.d.ts +37 -4
- package/lib/typescript/commonjs/utils/ariaState.d.ts +10 -0
- package/lib/typescript/module/components/Accordion/Accordion.d.ts +1 -1
- package/lib/typescript/module/components/AnimatePresence/AnimatePresence.d.ts +1 -1
- package/lib/typescript/module/components/AppBar/AppBar.d.ts +1 -1
- package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +1 -1
- package/lib/typescript/module/components/AsyncBlock/AsyncBlock.d.ts +1 -1
- package/lib/typescript/module/components/Avatar/Avatar.d.ts +2 -2
- 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/BottomNavigation/BottomNavigation.d.ts +6 -0
- package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +1 -1
- package/lib/typescript/module/components/Box/Box.d.ts +1 -1
- package/lib/typescript/module/components/Calendar/Calendar.d.ts +70 -0
- package/lib/typescript/module/components/Calendar/CalendarDay.d.ts +30 -0
- package/lib/typescript/module/components/Calendar/calendarDates.d.ts +24 -0
- package/lib/typescript/module/components/Calendar/calendarStyles.d.ts +125 -0
- package/lib/typescript/module/components/Calendar/index.d.ts +4 -0
- package/lib/typescript/module/components/Carousel/Carousel.d.ts +1 -1
- package/lib/typescript/module/components/Chip/Chip.d.ts +1 -1
- package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +11 -1
- package/lib/typescript/module/components/Confetti/Confetti.d.ts +1 -1
- package/lib/typescript/module/components/DatePicker/DatePicker.d.ts +1 -1
- package/lib/typescript/module/components/DateRangePicker/DateRangePicker.d.ts +7 -1
- package/lib/typescript/module/components/Descriptions/Descriptions.d.ts +1 -1
- package/lib/typescript/module/components/Dialog/Dialog.d.ts +1 -1
- package/lib/typescript/module/components/Drawer/Drawer.d.ts +1 -1
- package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +1 -1
- package/lib/typescript/module/components/ErrorBoundary/withErrorBoundary.d.ts +1 -1
- package/lib/typescript/module/components/FieldBase/Chevron.d.ts +1 -1
- package/lib/typescript/module/components/FilePicker/FilePicker.d.ts +1 -1
- package/lib/typescript/module/components/ForceUpdateDialog/ForceUpdateDialog.d.ts +1 -1
- package/lib/typescript/module/components/InlineSelect/InlineSelect.d.ts +1 -1
- package/lib/typescript/module/components/ListItem/ListItem.d.ts +24 -0
- package/lib/typescript/module/components/ListItem/index.d.ts +1 -1
- package/lib/typescript/module/components/LoaderOverlay/LoaderOverlay.d.ts +1 -1
- package/lib/typescript/module/components/Markdown/Markdown.d.ts +1 -1
- package/lib/typescript/module/components/Modal/Modal.d.ts +1 -1
- package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +1 -1
- package/lib/typescript/module/components/Radio/RadioDot.d.ts +1 -1
- package/lib/typescript/module/components/Radio/RadioGroup.d.ts +1 -1
- package/lib/typescript/module/components/Rating/Rating.d.ts +1 -1
- package/lib/typescript/module/components/Repeater/Repeater.d.ts +1 -1
- package/lib/typescript/module/components/RichTextEditor/RichTextEditor.d.ts +1 -1
- package/lib/typescript/module/components/SectionHeader/SectionHeader.d.ts +1 -1
- package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +7 -0
- package/lib/typescript/module/components/Skeleton/Skeleton.d.ts +1 -1
- package/lib/typescript/module/components/Skeleton/SkeletonClock.d.ts +1 -1
- package/lib/typescript/module/components/Skeleton/SkeletonProvider.d.ts +1 -1
- package/lib/typescript/module/components/Skeleton/SkeletonSkip.d.ts +1 -1
- package/lib/typescript/module/components/Spinner/Spinner.d.ts +1 -1
- package/lib/typescript/module/components/StatusBadge/StatusBadge.d.ts +1 -1
- package/lib/typescript/module/components/Stepper/Stepper.d.ts +1 -1
- package/lib/typescript/module/components/Swipeable/Swipeable.d.ts +1 -1
- package/lib/typescript/module/components/Text/Text.d.ts +1 -1
- package/lib/typescript/module/components/TimePicker/TimePicker.d.ts +1 -1
- 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 +1 -1
- package/lib/typescript/module/components/ZoomableImage/ZoomableImage.d.ts +1 -1
- package/lib/typescript/module/components/index.d.ts +3 -1
- package/lib/typescript/module/form/FormContext.d.ts +1 -1
- package/lib/typescript/module/network/NetworkStatusBanner.d.ts +1 -1
- package/lib/typescript/module/theme/ThemeContext.d.ts +1 -1
- package/lib/typescript/module/theme/textStyle.d.ts +4 -1
- package/lib/typescript/module/theme/toneInk.d.ts +38 -0
- package/lib/typescript/module/theme/types.d.ts +37 -4
- package/lib/typescript/module/utils/ariaState.d.ts +10 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=t?r:i){if(s.has(e))return s.get(e);s.set(e,a)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(o.get||o.set)?s(a,t,o):a[t]=e[t]);return a})(e,t)}const paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=(0,_react.forwardRef)((e,t)=>{const{children:i,variant:r="elevated",elevation:s="sm",radius:o="lg",padding:a="md",interactive:n=!1,bg:l,header:c,title:d,lead:u,action:h,headerActions:x,collapsible:p=!1,collapsed:_,defaultCollapsed:m=!1,onCollapsedChange:b,collapsedSummary:g,onRemove:y,removeLabel:j="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:w,imageOverlay:C,loading:k=!1,gradient:q,onPress:N,haptic:A,accessibilityLabel:P,accessibilityHint:T,accessibilityRole:I,style:B,containerStyle:H,headerStyle:L,bodyStyle:V,footerStyle:F,borderRadius:W,testID:M,onLayout:z,...O}=e,U=(0,_index.useTheme)(),D=n||"function"==typeof N,{scale:E,pressIn:G,pressOut:$}=(0,_usePressAnimation.usePressAnimation)({enabled:D}),J=(0,_react.useMemo)(()=>buildStyles(U),[U]),K=Boolean(f),Q=U.spacing[paddingMap[a]],X=(0,_react.useMemo)(()=>q?"string"==typeof q?U.gradients[q]??null:q:null,[q,U.gradients]),Y="flat"===r,Z=Y?0:W??U.radius[o],ee=resolveBackground(U,l),[te,ie]=(0,_useControllableState.useControllableState)({value:_,defaultValue:m,onChange:b}),re=p&&te,se=hasBuiltInHeaderContent(e),oe=Boolean(c)||se,ae=(0,_SquircleFill.useSquircle)(!K&&!X&&!Y,Z,z),ne=_reactNative.StyleSheet.flatten([B,H])??{},le=ne.backgroundColor,ce=ne.borderColor,de=le??ee??("filled"===r?U.colors.background.secondary:U.colors.background.elevated),ue="outlined"===r?U.colors.border.width:0,he=ce??U.colors.border.primary,xe="elevated"===r&&(0,_shadows.supportsBoxShadow)()?(0,_shadows.toBoxShadow)(U.shadows[s]):void 0,pe=ae.active&&"elevated"===r&&!xe,_e=ae.active&&!pe?{backgroundColor:"transparent",borderColor:"transparent"}:null,me=(0,_react.useMemo)(()=>{const e={borderRadius:pe&&ae.size?(0,_squircle.squircleHostRadius)(ae.size.width,ae.size.height,Z):Z,..._corners.smoothCorners,padding:K?0:Q,overflow:ae.active?"visible":"hidden"};switch(r){case"flat":return{...e,backgroundColor:ee??U.colors.background.elevated,borderBottomWidth:v,borderBottomColor:U.colors.border.primary};case"outlined":return{...e,backgroundColor:ae.active?"transparent":ee??U.colors.background.elevated,borderWidth:U.colors.border.width,borderColor:ae.active?"transparent":U.colors.border.primary};case"filled":return{...e,backgroundColor:ae.active?"transparent":ee??U.colors.background.secondary};default:return{...e,backgroundColor:ee??U.colors.background.elevated,...xe?{boxShadow:xe}:U.shadows[s]}}},[U,r,s,Z,K,Q,ae.active,ae.size,xe,pe,ee,v]),be=(0,_react.useMemo)(()=>({..."number"==typeof w?{width:"100%",aspectRatio:w}:{width:"100%",height:S},borderTopLeftRadius:Z,borderTopRightRadius:Z,borderBottomLeftRadius:0,borderBottomRightRadius:0,..._corners.smoothCorners}),[Z,w,S]),ge="string"==typeof d?d:"",ye=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:J.titleColumn,children:["string"==typeof d?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:d}):d,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:J.lead,children:u}):null,re&&g?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:J.lead,children:g}):null]}),isCardTextAction(h)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:h,haptic:A}):h?(0,_jsxRuntime.jsx)(_reactNative.View,{style:J.actionNode,children:h}):null,x,p?(0,_jsxRuntime.jsx)(CardIconAction,{icon:re?"chevron-down":"chevron-up",label:`${re?"Show":"Hide"} ${ge}`.trim(),expanded:!re,onPress:()=>ie(!re),haptic:A}):null,y?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:j,onPress:y,color:U.colors.error,haptic:A}):null]}),je=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[oe?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[J.header,!c&&J.headerRow,re&&J.headerFolded,L],children:c??ye}):null,re?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[oe||R?J.body:null,V],children:i}),R&&!re?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[J.footer,F],children:R}):null]}),ve=K?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:J.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:be,accessibilityLabel:"",accessible:!1}),C?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:J.imageOverlay,children:C}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:Q},children:je})]}):je,Re=X?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:X,style:_reactNative.StyleSheet.absoluteFill}),ve]}):ae.active&&ae.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:ae.size.width,height:ae.size.height,radius:Z,fill:de,stroke:ue?he:void 0,strokeWidth:ue,outset:ue}),ve]}):ve;let fe;if(D){const handlePress=e=>{const t=(0,_hapticUtils.resolveHaptic)(A,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),N?.(e)};fe=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{transform:[{scale:E}]}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,onPressIn:G,onPressOut:$,android_ripple:{color:U.colors.surface.pressed,borderless:!1},accessibilityRole:I??"button",accessibilityLabel:P,accessibilityHint:T,testID:M,onLayout:ae.onLayout,style:[me,B,H,_e],...O,children:Re})})}else fe=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:P,accessibilityHint:T,accessibilityRole:I,testID:M,onLayout:ae.onLayout,style:[me,B,H,_e],children:Re});return k?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):fe});Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:r="md",bg:s,header:o,footer:a,imageSource:n,imageHeight:l=160,imageAspectRatio:c,borderRadius:d,containerStyle:u,headerStyle:h,bodyStyle:x,footerStyle:p,style:_,...m})=>{const b=(0,_index.useTheme)(),g=paddingMap[r],y=b.spacing[g],j="flat"===e?0:d??b.radius[i],v=void 0!==o||hasBuiltInHeaderContent(m),R=resolveBackground(b,s)??b.colors.background.elevated,f="outlined"===e?1:0,S="outlined"===e?b.colors.border.primary:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:j,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,_],accessibilityRole:"progressbar",accessibilityState:{busy:!0},children:[void 0!==n?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:c?void 0:l,style:c?{aspectRatio:c,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingBottom:b.spacing.sm},h],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y},x],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:14,lastLineWidth:"55%"})}),void 0!==a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingTop:b.spacing.sm,flexDirection:"row"},p],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:r,color:s,haptic:o})=>{const a=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===r?void 0:{expanded:r},onPress:()=>{const e=(0,_hapticUtils.resolveHaptic)(o,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:s??a.colors.text.primary})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{const i=(0,_hapticUtils.resolveHaptic)(t,"selection");i&&(0,_hapticUtils.triggerHaptic)(i),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null==t)return;return e.colors.background[t]??t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.spacing.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},headerFolded:{marginBottom:0},titleColumn:{flex:1},lead:{marginTop:e.spacing.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.spacing.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill}});var _default=exports.default=Card;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Card=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useControllableState=require("../../hooks/useControllableState.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_shadows=require("../../utils/shadows.js"),_squircle=require("../../utils/squircle.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_index2=require("../Skeleton/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_index3=require("../Text/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var i=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var s,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(s=t?r:i){if(s.has(e))return s.get(e);s.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?s(o,t,a):o[t]=e[t]);return o})(e,t)}const paddingMap={none:"none",sm:"sm",md:"lg",lg:"xl",xl:"2xl"},Card=exports.Card=(0,_react.forwardRef)((e,t)=>{const{children:i,variant:r="elevated",elevation:s="sm",radius:a="lg",padding:o="md",interactive:n=!1,bg:l,header:d,title:c,lead:u,action:h,headerActions:x,collapsible:p=!1,collapsed:_,defaultCollapsed:m=!1,onCollapsedChange:b,collapsedSummary:g,onRemove:y,removeLabel:j="Remove",separatorHeight:v=_reactNative.StyleSheet.hairlineWidth,footer:R,imageSource:f,imageHeight:S=160,imageAspectRatio:w,imageOverlay:C,loading:k=!1,gradient:q,onPress:N,haptic:A,accessibilityLabel:T,accessibilityHint:P,accessibilityRole:I,style:B,containerStyle:H,headerStyle:L,bodyStyle:V,footerStyle:F,borderRadius:W,testID:M,onLayout:z,...O}=e,U=(0,_index.useTheme)(),D=n||"function"==typeof N,{scale:E,pressIn:G,pressOut:$}=(0,_usePressAnimation.usePressAnimation)({enabled:D}),J=(0,_react.useMemo)(()=>buildStyles(U),[U]),K=Boolean(f),Q=U.spacing[paddingMap[o]],X=(0,_react.useMemo)(()=>q?"string"==typeof q?U.gradients[q]??null:q:null,[q,U.gradients]),Y="flat"===r,Z=Y?0:W??U.radius[a],ee=resolveBackground(U,l),[te,ie]=(0,_useControllableState.useControllableState)({value:_,defaultValue:m,onChange:b}),re=p&&te,se=hasBuiltInHeaderContent(e),ae=Boolean(d)||se,oe=(0,_SquircleFill.useSquircle)(!K&&!X&&!Y,Z,z),ne=_reactNative.StyleSheet.flatten([B,H])??{},le=ne.backgroundColor,de=ne.borderColor,ce=le??ee??("filled"===r?U.colors.background.secondary:U.colors.background.elevated),ue="outlined"===r?U.colors.border.width:0,he=de??U.colors.border.primary,xe="elevated"===r&&(0,_shadows.supportsBoxShadow)()?(0,_shadows.toBoxShadow)(U.shadows[s]):void 0,pe=oe.active&&"elevated"===r&&!xe,_e=oe.active&&!pe?{backgroundColor:"transparent",borderColor:"transparent"}:null,me=(0,_react.useMemo)(()=>{const e={borderRadius:pe&&oe.size?(0,_squircle.squircleHostRadius)(oe.size.width,oe.size.height,Z):Z,..._corners.smoothCorners,padding:K?0:Q,overflow:oe.active?"visible":"hidden"};switch(r){case"flat":return{...e,backgroundColor:ee??U.colors.background.elevated,borderBottomWidth:v,borderBottomColor:U.colors.border.primary};case"outlined":return{...e,backgroundColor:oe.active?"transparent":ee??U.colors.background.elevated,borderWidth:U.colors.border.width,borderColor:oe.active?"transparent":U.colors.border.primary};case"filled":return{...e,backgroundColor:oe.active?"transparent":ee??U.colors.background.secondary};default:return{...e,backgroundColor:ee??U.colors.background.elevated,...xe?{boxShadow:xe}:U.shadows[s]}}},[U,r,s,Z,K,Q,oe.active,oe.size,xe,pe,ee,v]),be=(0,_react.useMemo)(()=>({..."number"==typeof w?{width:"100%",aspectRatio:w}:{width:"100%",height:S},borderTopLeftRadius:Z,borderTopRightRadius:Z,borderBottomLeftRadius:0,borderBottomRightRadius:0,..._corners.smoothCorners}),[Z,w,S]),ge="string"==typeof c?c:"",ye=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:J.titleColumn,children:["string"==typeof c?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"title",accessibilityRole:"header",children:c}):c,u?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"bodySmall",style:J.lead,children:u}):null,re&&g?(0,_jsxRuntime.jsx)(_index3.Text,{variant:"caption",style:J.lead,children:g}):null]}),isCardTextAction(h)?(0,_jsxRuntime.jsx)(CardTextActionButton,{action:h,haptic:A}):h?(0,_jsxRuntime.jsx)(_reactNative.View,{style:J.actionNode,children:h}):null,x,p?(0,_jsxRuntime.jsx)(CardIconAction,{icon:re?"chevron-down":"chevron-up",label:`${re?"Show":"Hide"} ${ge}`.trim(),expanded:!re,onPress:()=>ie(!re),haptic:A}):null,y?(0,_jsxRuntime.jsx)(CardIconAction,{icon:"trash",label:j,onPress:y,color:U.colors.toneText.error,haptic:A}):null]}),je=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[ae?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[J.header,!d&&J.headerRow,re&&J.headerFolded,L],children:d??ye}):null,re?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[ae||R?J.body:null,V],children:i}),R&&!re?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[J.footer,F],children:R}):null]}),ve=K?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:J.imageWrapper,children:[(0,_jsxRuntime.jsx)(_reactNative.Image,{source:f,resizeMode:"cover",style:be,accessibilityLabel:"",accessible:!1}),C?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"box-none",style:J.imageOverlay,children:C}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:{padding:Q},children:je})]}):je,Re=X?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:X,style:_reactNative.StyleSheet.absoluteFill}),ve]}):oe.active&&oe.size?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:oe.size.width,height:oe.size.height,radius:Z,fill:ce,stroke:ue?he:void 0,strokeWidth:ue,outset:ue}),ve]}):ve;let fe;if(D){const handlePress=e=>{const t=(0,_hapticUtils.resolveHaptic)(A,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),N?.(e)};fe=(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{transform:[{scale:E}]}],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:t,onPress:handlePress,onPressIn:G,onPressOut:$,android_ripple:{color:U.colors.surface.pressed,borderless:!1},accessibilityRole:I??"button",accessibilityLabel:T,accessibilityHint:P,testID:M,onLayout:oe.onLayout,style:[me,B,H,_e],...O,children:Re})})}else fe=(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,accessibilityLabel:T,accessibilityHint:P,accessibilityRole:I,testID:M,onLayout:oe.onLayout,style:[me,B,H,_e],...O,children:Re});return k?(0,_jsxRuntime.jsx)(CardSkeleton,{...e}):fe});Card.displayName="Card";const CardSkeleton=({variant:e="elevated",elevation:t,radius:i="lg",padding:r="md",bg:s,header:a,footer:o,imageSource:n,imageHeight:l=160,imageAspectRatio:d,borderRadius:c,containerStyle:u,headerStyle:h,bodyStyle:x,footerStyle:p,style:_,...m})=>{const b=(0,_index.useTheme)(),g=paddingMap[r],y=b.spacing[g],j="flat"===e?0:c??b.radius[i],v=void 0!==a||hasBuiltInHeaderContent(m),R=resolveBackground(b,s)??b.colors.background.elevated,f="outlined"===e?1:0,S="outlined"===e?b.colors.border.primary:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{backgroundColor:R,borderRadius:j,..._corners.smoothCorners,borderWidth:f,borderColor:S,overflow:"hidden"},u,_],accessibilityRole:"progressbar",accessibilityLabel:"Loading",accessibilityState:{busy:!0},"aria-busy":!0,children:[void 0!==n?(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:"100%",height:d?void 0:l,style:d?{aspectRatio:d,width:"100%"}:void 0}):null,v?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingBottom:b.spacing.sm},h],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y},x],children:(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:3,fontSize:14,lastLineWidth:"55%"})}),void 0!==o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{padding:y,paddingTop:b.spacing.sm,flexDirection:"row"},p],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:88,height:32,shape:"rounded"})}):null]})};CardSkeleton.displayName="CardSkeleton",Card.Skeleton=CardSkeleton;const hasBuiltInHeaderContent=e=>Boolean(e.title||e.lead||e.action||e.headerActions||e.collapsible||e.onRemove),isCardTextAction=e=>"object"==typeof e&&null!==e&&!_react.default.isValidElement(e)&&"label"in e&&"onPress"in e,HIT_TARGET=44,CardIconAction=({icon:e,label:t,onPress:i,expanded:r,color:s,haptic:a})=>{const o=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:t,accessibilityState:void 0===r?void 0:{expanded:r},"aria-expanded":r,onPress:()=>{const e=(0,_hapticUtils.resolveHaptic)(a,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),i()},style:iconActionStyle,children:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:e,size:20,color:s??o.colors.text.primary})})},CardTextActionButton=({action:e,haptic:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,onPress:()=>{const i=(0,_hapticUtils.resolveHaptic)(t,"selection");i&&(0,_hapticUtils.triggerHaptic)(i),e.onPress()},style:textActionStyle,children:(0,_jsxRuntime.jsx)(_index3.Text,{variant:"label",weight:"semibold",color:i.colors.primary,children:e.label})})},iconActionStyle={width:44,height:44,alignItems:"center",justifyContent:"center"},textActionStyle={minWidth:44,minHeight:44,alignItems:"center",justifyContent:"center"},resolveBackground=(e,t)=>{if(null==t)return;return e.colors.background[t]??t},buildStyles=e=>_reactNative.StyleSheet.create({header:{marginBottom:e.spacing.md},headerRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm},headerFolded:{marginBottom:0},titleColumn:{flex:1},lead:{marginTop:e.spacing.xs},actionNode:{flexShrink:0},body:{flexShrink:1},footer:{marginTop:e.spacing.md},imageWrapper:{position:"relative"},imageOverlay:{..._reactNative.StyleSheet.absoluteFill}});var _default=exports.default=Card;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Carousel=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const CarouselInner=(0,_react.forwardRef)((e,t)=>{const{data:n,renderItem:r,keyExtractor:a,index:i,defaultIndex:s=0,onIndexChange:l,autoPlay:o=!1,autoPlayInterval:c=4e3,loop:u=!1,showPagination:d=!0,paginationStyle:m="dots",itemWidth:h="screen",spacing:x=0,containerStyle:g,accessibilityLabel:_,testID:y,showThumbnails:b=!1,haptic:p,renderThumbnail:S,loading:f=!1}=e,j=(0,_index.useTheme)(),v="number"==typeof i,R=u||o,[w,C]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),k="screen"===h?w:h,I=k+x,N=(0,_react.useRef)(null),T=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,A=clamp(v?i:s,0,Math.max(0,n.length-1)),[V,z]=(0,_react.useState)(A),E=(0,_react.useRef)(null),H=(0,_react.useRef)(null),M=(0,_react.useRef)(!1),P=(0,_react.useRef)(V);P.current=V;const W=(0,_react.useCallback)(e=>{const t=clamp(e,0,Math.max(0,n.length-1));z(e=>e===t?e:(l?.(t),t))},[n.length,l]),D=(0,_react.useCallback)((e,t=!0)=>{if(0===n.length)return;const r=clamp(e,0,n.length-1);N.current?.scrollToOffset({offset:r*I,animated:t}),W(r)},[n.length,I,W]),$=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=P.current+1;e>=n.length?R&&D(0,!1):D(e,!0)},[n.length,R,D]),q=(0,_react.useCallback)(()=>{if(0===n.length)return;const e=P.current-1;e<0?R&&D(n.length-1,!1):D(e,!0)},[n.length,R,D]);(0,_react.useImperativeHandle)(t,()=>({scrollTo:D,next:$,prev:q}),[D,$,q]),(0,_react.useEffect)(()=>{v&&i!==V&&D(i,!0)},[i]);const L=(0,_react.useCallback)(()=>{E.current&&(clearInterval(E.current),E.current=null)},[]),O=(0,_react.useCallback)(()=>{!o||n.length<=1||(L(),E.current=setInterval(()=>{if(M.current)return;const e=P.current+1;e>=n.length?D(0,!1):D(e,!0)},c))},[o,c,n.length,D,L]);(0,_react.useEffect)(()=>(O(),()=>{L(),H.current&&clearTimeout(H.current)}),[O,L]);const F=d&&n.length>1&&"numbers"!==m,X=(0,_react.useMemo)(()=>_reactNative.Animated.event([{nativeEvent:{contentOffset:{x:T}}}],{useNativeDriver:!1}),[T]),B=(0,_react.useCallback)(e=>{if(I<=0)return;const t=e.nativeEvent.contentOffset.x,n=Math.round(t/I);W(n)},[I,W]),G=(0,_react.useCallback)(()=>{M.current=!0,L(),H.current&&(clearTimeout(H.current),H.current=null)},[L]),J=(0,_react.useCallback)(()=>{M.current=!1,o&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{O()},1e3))},[o,O]),K=(0,_react.useCallback)(e=>{switch(e.nativeEvent.actionName){case"increment":$();break;case"decrement":q()}},[$,q]),Q=(0,_react.useMemo)(()=>buildStyles(j),[j]),U=(0,_react.useCallback)(({item:e,index:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:k,marginRight:t===n.length-1?0:x},accessibilityElementsHidden:t!==V,importantForAccessibility:t===V?"yes":"no-hide-descendants",children:r(e,t)}),[r,k,x,n.length,V]),Y=(0,_react.useCallback)((e,t)=>String(t),[]),Z=(0,_react.useCallback)((e,t)=>({length:I,offset:I*t,index:t}),[I]);return f?(0,_jsxRuntime.jsx)(CarouselSkeleton,{...e,containerWidth:w}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Q.container,g],onLayout:e=>C(e.nativeEvent.layout.width),accessibilityRole:"adjustable",accessibilityLabel:_??"Carousel",accessibilityValue:{min:0,max:Math.max(0,n.length-1),now:V,text:`Slide ${V+1} of ${n.length}`},accessibilityActions:[{name:"increment"},{name:"decrement"}],onAccessibilityAction:K,testID:y,children:[(0,_jsxRuntime.jsx)(_reactNative.FlatList,{ref:N,data:n,keyExtractor:a??Y,renderItem:U,horizontal:!0,pagingEnabled:"screen"===h&&0===x,snapToInterval:I,snapToAlignment:"start",decelerationRate:"fast",showsHorizontalScrollIndicator:!1,onScroll:F?X:void 0,scrollEventThrottle:F?16:void 0,onMomentumScrollEnd:B,onScrollBeginDrag:G,onScrollEndDrag:J,getItemLayout:Z,initialScrollIndex:A,bounces:!1}),d&&n.length>1?(0,_jsxRuntime.jsx)(Pagination,{count:n.length,currentIndex:V,scrollX:T,slideStride:I,variant:m,theme:j}):null,b&&n.length>0?(0,_jsxRuntime.jsx)(ThumbnailStrip,{data:n,currentIndex:V,renderThumbnail:S,onSelect:e=>{const t=(0,_index2.resolveHaptic)(p,"selection");t&&(0,_index2.triggerHaptic)(t),D(e,!0)},theme:j}):null]})});CarouselInner.displayName="Carousel";const CarouselSkeleton=({itemWidth:e="screen",showPagination:t=!0,paginationStyle:n="dots",containerStyle:r,containerWidth:a})=>{const i="screen"===e?a||320:e;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[carouselSkeletonStyles.container,r],children:[(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:i,height:160,radius:"md"}),t?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[carouselSkeletonStyles.paginationRow,{marginTop:12}],children:Array.from({length:3}).map((e,t)=>"numbers"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:24,height:16,radius:"sm",style:{marginHorizontal:4}},`sk-pg-${t}`):"bars"===n?(0,_jsxRuntime.jsx)(_index3.Skeleton,{width:20,height:4,radius:2,style:{marginHorizontal:3}},`sk-pg-${t}`):(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:"circle",width:8,height:8,style:{marginHorizontal:4}},`sk-pg-${t}`))}):null]})};CarouselSkeleton.displayName="CarouselSkeleton";const carouselSkeletonStyles=_reactNative.StyleSheet.create({container:{alignItems:"center"},paginationRow:{flexDirection:"row",justifyContent:"center"}}),Carousel=exports.Carousel=CarouselInner;Carousel.Skeleton=CarouselSkeleton;const Pagination=({count:e,currentIndex:t,scrollX:n,slideStride:r,variant:a,theme:i})=>{if("numbers"===a)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:paginationStyles.numbersWrap,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[paginationStyles.numbersText,{color:i.colors.text.secondary,fontSize:i.typography.fontSize.sm,fontWeight:i.typography.fontWeight.medium}],accessibilityLabel:`Slide ${t+1} of ${e}`,children:`${t+1} / ${e}`})});const s=Array.from({length:e},(e,t)=>t),l="bars"===a,o=l?24:6,c=l?36:16,u=l?3:6;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:paginationStyles.dotRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:s.map(e=>{const a=[(e-1)*r,e*r,(e+1)*r],s=n.interpolate({inputRange:a,outputRange:[o,c,o],extrapolate:"clamp"}),l=n.interpolate({inputRange:a,outputRange:[.5,1,.5],extrapolate:"clamp"});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[{width:s,height:u,marginHorizontal:4,borderRadius:u/2,..._corners.smoothCorners,backgroundColor:e===t?i.colors.primary:i.colors.border.primary,opacity:l}]},e)})})},ThumbnailStrip=({data:e,currentIndex:t,renderThumbnail:n,onSelect:r,theme:a})=>(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,contentContainerStyle:thumbStyles.row,accessibilityRole:"tablist",children:e.map((e,i)=>(0,_jsxRuntime.jsx)(ThumbnailItem,{item:e,index:i,isActive:i===t,renderThumbnail:n,onPress:()=>r(i),theme:a},i))}),ThumbnailItem=({item:e,index:t,isActive:n,renderThumbnail:r,onPress:a,theme:i})=>{const s=(0,_react.useRef)((0,_index.createAnimatedValue)(n?1.1:1)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(s,{toValue:n?1.1:1,useNativeDriver:!0,friction:6,tension:80});return e.start(),()=>e.stop()},[n,s]);const l=(0,_react.useMemo)(()=>r?r(e,t):e&&"object"==typeof e&&"uri"in e&&"string"==typeof e.uri?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:e.uri},style:thumbStyles.image,resizeMode:"cover"}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[thumbStyles.placeholder,{backgroundColor:i.colors.background.secondary}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:i.colors.text.secondary,fontSize:i.typography.fontSize.xs,fontWeight:i.typography.fontWeight.semibold},children:t+1})}),[e,t,r,i]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:a,accessibilityRole:"tab",accessibilityState:{selected:n},"aria-selected":n,accessibilityLabel:`Go to slide ${t+1}`,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[thumbStyles.thumb,{borderColor:n?i.colors.primary:"transparent",transform:[{scale:s}]}],children:l})})},thumbStyles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",paddingHorizontal:8,paddingVertical:8},thumb:{width:40,height:40,marginHorizontal:4,borderRadius:6,..._corners.smoothCorners,borderWidth:2,overflow:"hidden"},image:{width:"100%",height:"100%"},placeholder:{flex:1,alignItems:"center",justifyContent:"center"}}),clamp=(e,t,n)=>Math.min(Math.max(e,t),n),buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%"}}),paginationStyles=_reactNative.StyleSheet.create({dotRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:12},numbersWrap:{alignItems:"center",justifyContent:"center",paddingVertical:12},numbersText:{textAlign:"center"}});var _default=exports.default=Carousel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=r?i:t){if(s.has(e))return s.get(e);s.set(e,a)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(o.get||o.set)?s(a,r,o):a[r]=e[r]);return a})(e,r)}const sizeMap={sm:16,md:20,lg:24},toneColor=(e,r)=>{switch(r){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},toneOnColor=(e,r)=>{switch(r){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,r)=>{const{checked:t,defaultChecked:i,onChange:s,indeterminate:o=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:u,size:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Checkbox=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_ChoiceText=require("../FieldBase/ChoiceText.js"),_FieldBase=require("../FieldBase/FieldBase.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var s,o,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(s=r?i:t){if(s.has(e))return s.get(e);s.set(e,a)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((o=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(o.get||o.set)?s(a,r,o):a[r]=e[r]);return a})(e,r)}const sizeMap={sm:16,md:20,lg:24},toneColor=(e,r)=>{switch(r){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;default:return e.colors.primary}},toneOnColor=(e,r)=>{switch(r){case"success":return e.colors.onSuccess;case"warning":return e.colors.onWarning;case"error":return e.colors.onError;default:return e.colors.onPrimary}},Checkbox=exports.Checkbox=(0,_react.forwardRef)((e,r)=>{const{checked:t,defaultChecked:i,onChange:s,indeterminate:o=!1,disabled:a=!1,label:n,description:l,error:c,help:d,labelLines:u,size:h="md",tone:p="primary",accessibilityLabel:x,haptic:_,style:b,boxStyle:f,indeterminateBarStyle:m,containerStyle:y,labelStyle:g,testID:j,...v}=e,[w,C]=(0,_index.useControllableState)({value:t,defaultValue:i??!1,onChange:s}),k=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(k),[k]),R=k.components.checkbox?.[h]?.boxSize??sizeMap[h],T=k.colors.border.width,N=k.components.checkbox?.labelGap??10,q=toneColor(k,p),M=w||o,F=(0,_react.useRef)((0,_index2.createAnimatedValue)(M?1:0)).current;(0,_react.useEffect)(()=>{const e=_reactNative.Animated.spring(F,{toValue:M?1:0,damping:k.motion.spring.snappy.damping,stiffness:k.motion.spring.snappy.stiffness,mass:k.motion.spring.snappy.mass,useNativeDriver:!0});return e.start(),()=>e.stop()},[M,F,k.motion.spring.snappy]);const B=F.interpolate({inputRange:[0,1],outputRange:[0,1]}),W=x??(0,_FieldBase.fieldTextAsString)(n),L=M?q:a?k.colors.border.primary:(0,_FieldBase.hasFieldText)(c)?k.colors.field.borderError:k.colors.border.primary,P=M?q:a?k.colors.surface.disabled:"transparent",D=a&&!M?k.colors.text.disabled:toneOnColor(k,p),O=Math.round(.72*R),V=Math.round(.55*R),I=Math.max(2,Math.round(.12*R)),A=(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{ref:r,onPress:e=>{if(a)return;const r=(0,_hapticUtils.resolveHaptic)(_,"selection");r&&(0,_hapticUtils.triggerHaptic)(r),C(!w),v.onPressOut?.(e)},disabled:a,accessibilityRole:"checkbox",accessibilityLabel:W,accessibilityHint:v.accessibilityHint??(0,_FieldBase.fieldTextAsString)(l),accessibilityState:{checked:o?"mixed":w,disabled:a},"aria-checked":o?"mixed":w,"aria-disabled":a,testID:j,hitSlop:6,...v,style:({pressed:e})=>[S.row,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null,(0,_FieldBase.hasFieldText)(d)?S.rowShrink:null,{opacity:a?.55:e?.85:1},y,b],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.box,{width:R,height:R,borderWidth:T,borderRadius:k.radius.xs,..._corners.smoothCorners,borderColor:L,backgroundColor:P},f],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[S.glyphWrap,{opacity:F,transform:[{scale:B}]}],children:o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:V,height:I,borderRadius:I/2,..._corners.smoothCorners,backgroundColor:D},m]}):(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:O,height:O,viewBox:"0 0 24 24",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:"M5 12.5l4.5 4.5L19 7.5",stroke:D,strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})}),(0,_jsxRuntime.jsx)(_ChoiceText.ChoiceText,{label:n,description:l,error:c,disabled:a,labelLines:u||void 0,descriptionLines:u||void 0,style:{marginLeft:N},labelStyle:g})]});return(0,_FieldBase.hasFieldText)(d)?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.helpRow,(0,_ChoiceText.hasChoiceDetail)(l,c)?S.rowTop:null],children:[A,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.help,{marginLeft:k.spacing.xs}],children:d})]}):A});Checkbox.displayName="Checkbox";const buildStyles=e=>_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},rowTop:{alignItems:"flex-start"},rowShrink:{flexShrink:1},helpRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0},box:{alignItems:"center",justifyContent:"center"},glyphWrap:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Checkbox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Chip=void 0;var _react=require("react"),_reactNative=require("react-native"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primaryMuted,on:e.colors.primary,ink:e.colors.toneText.primary,border:e.colors.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"success":return{base:e.colors.background.tertiary,on:e.colors.success,ink:e.colors.toneText.success,border:e.colors.success,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"warning":return{base:e.colors.background.tertiary,on:e.colors.warning,ink:e.colors.toneText.warning,border:e.colors.warning,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"error":return{base:e.colors.background.tertiary,on:e.colors.error,ink:e.colors.toneText.error,border:e.colors.error,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};case"info":return{base:e.colors.background.tertiary,on:e.colors.info,ink:e.colors.toneText.info,border:e.colors.info,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,ink:e.colors.text.primary,border:e.colors.border.primary,selectedBg:e.colors.primaryMuted,selectedOn:e.colors.primary,selectedInk:e.colors.toneText.primary,selectedBorder:e.colors.primary}}},SOFT_FILL_OPACITY=.14,SOFT_SELECTED_FILL_OPACITY=.24,sizeMap={sm:{paddingH:10,paddingV:4,fontSize:12,minHeight:26,closeSize:16,closeFont:12,gap:6,iconSize:14},md:{paddingH:12,paddingV:6,fontSize:13,minHeight:32,closeSize:18,closeFont:13,gap:8,iconSize:16}},Chip=exports.Chip=(0,_react.forwardRef)((e,r)=>{const{label:s,selected:t=!1,selectionMode:o="single",onPress:i,onClose:l,leftIcon:n,iconVariant:a,variant:c="filled",tone:d="neutral",size:p="md",disabled:u=!1,loading:m=!1,accessibilityLabel:y,haptic:g,style:b,textStyle:x,containerStyle:h,closeButtonStyle:_,closeIconStyle:S,testID:f}=e,z=(0,_index.useTheme)(),k=!!i&&!u,{scale:j,pressIn:I,pressOut:C}=(0,_usePressAnimation.usePressAnimation)({enabled:k}),v=(0,_react.useMemo)(()=>toneFor(z,d),[z,d]),M=z.components.chip?.[p],H={paddingH:M?.paddingHorizontal??sizeMap[p].paddingH,paddingV:M?.paddingVertical??sizeMap[p].paddingV,fontSize:M?.fontSize??sizeMap[p].fontSize,minHeight:M?.minHeight??sizeMap[p].minHeight,closeSize:M?.closeSize??sizeMap[p].closeSize,closeFont:M?.closeFontSize??sizeMap[p].closeFont,gap:M?.gap??sizeMap[p].gap,iconSize:M?.iconSize??sizeMap[p].iconSize},R="filled"===c,T="soft"===c,w=(()=>{if(T){const e=t?v.selectedOn:v.on,r=t?.24:.14;return(0,_color.tintOf)(e,r,t?v.selectedBg:v.base)}return t?R?v.selectedBg:"transparent":R?v.base:"transparent"})(),B=T?"transparent":t?v.selectedBorder:R?"transparent":v.border,F=u?z.colors.text.disabled:t?T?z.colors.text.primary:v.selectedInk:v.ink,O=R||T?0:z.colors.border.width,handlePress=()=>{if(!k)return;const e=(0,_hapticUtils.resolveHaptic)(g,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),i?.()},P=y??s,L=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:H.gap},children:(0,_slotIcon.renderSlotIcon)(n,{color:F,size:H.iconSize,disabled:u},a)}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.label,{color:F,fontSize:H.fontSize,...(0,_index.fontFor)(z,"medium")},x],numberOfLines:1,children:s??" "}),l?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{u||(!1!==g&&(0,_hapticUtils.triggerHaptic)("impactLight"),l?.())},disabled:u,accessibilityRole:"button",accessibilityLabel:`Remove ${s}`,accessibilityState:{disabled:u},"aria-disabled":u,hitSlop:6,style:({pressed:e})=>[styles.close,{width:H.closeSize,height:H.closeSize,borderRadius:H.closeSize/2,..._corners.smoothCorners,marginLeft:H.gap,backgroundColor:e?z.colors.surface.pressed:z.colors.surface.hovered},_],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:F,fontSize:H.closeFont,...(0,_index.fontFor)(z,"bold"),lineHeight:H.closeFont+2},S],allowFontScaling:!1,children:"×"})}):null]}),N={paddingHorizontal:H.paddingH,paddingVertical:H.paddingV,minHeight:H.minHeight,borderRadius:z.radius.full,..._corners.smoothCorners,backgroundColor:w,borderWidth:O,borderColor:B,opacity:u?.55:1};let V;return V=k?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:j}],alignSelf:"flex-start"},children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:handlePress,onPressIn:I,onPressOut:C,disabled:!k,accessibilityRole:"multiple"===o?"checkbox":"button",accessibilityLabel:P,accessibilityState:"multiple"===o?{checked:t,disabled:u}:{selected:t,disabled:u},"aria-checked":"multiple"===o?t:void 0,"aria-selected":"multiple"===o?void 0:t,"aria-disabled":u,android_ripple:{color:z.colors.surface.pressed,borderless:!1},testID:f,style:({pressed:e})=>[styles.base,N,e&&"outlined"===c?{backgroundColor:z.colors.surface.pressed}:null,h,b],children:L})}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:r,style:[styles.base,N,h,b],accessible:!0,accessibilityRole:"text",accessibilityLabel:P,accessibilityState:{selected:t,disabled:u},"aria-selected":t,"aria-disabled":u,testID:f,children:L}),m?(0,_jsxRuntime.jsx)(ChipSkeleton,{...e}):V});Chip.displayName="Chip";const ChipSkeleton=({label:e,size:r="md",leftIcon:s,onClose:t,style:o,containerStyle:i})=>{const l=sizeMap[r],n=Math.max(40,Math.min(120,7*(e??"").length)),a=l.minHeight,c=a/2,d=n+2*l.paddingH+(void 0!==s?l.gap+14:0)+(void 0!==t?l.gap+l.closeSize:0);return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:d,height:a,radius:c,style:[{alignSelf:"flex-start"},i,o]})};ChipSkeleton.displayName="ChipSkeleton",Chip.Skeleton=ChipSkeleton;const styles=_reactNative.StyleSheet.create({base:{alignSelf:"flex-start",flexDirection:"row",alignItems:"center",justifyContent:"center"},row:{flexDirection:"row",alignItems:"center"},label:{textAlign:"center"},close:{alignItems:"center",justifyContent:"center"}});var _default=exports.default=Chip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.ChoiceGroup=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"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_RadioDot=require("../Radio/RadioDot.js"),_jsxRuntime=require("react/jsx-runtime");const sizeTokens={sm:{paddingHorizontal:10,chipPaddingHorizontal:12,paddingVertical:6,fontSize:13,minHeight:32,iconSize:14},md:{paddingHorizontal:12,chipPaddingHorizontal:16,paddingVertical:8,fontSize:15,minHeight:40,iconSize:16},lg:{paddingHorizontal:16,chipPaddingHorizontal:20,paddingVertical:11,fontSize:16,minHeight:48,iconSize:18}},ChoiceGroup=exports.ChoiceGroup=(0,_react.forwardRef)((e,i)=>{const{options:r,getOptionLabel:t,getOptionValue:o,getOptionDisabled:a,getOptionDescription:n,getOptionIcon:l,getOptionColor:s,renderOption:c,variant:d="card",indicatorPosition:u="trailing",direction:p="row",gap:x,wrap:b=!1,fullWidth:g,disabled:m=!1,size:_="md",labelLines:h=1,descriptionLines:f=2,haptic:y,accessibilityLabel:j,style:z,optionStyle:v,testID:R}=e,C=(0,_index2.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(C),[C]),H=sizeTokens[_],k=(0,_react.useCallback)(e=>t?t(e):e.label??"",[t]),w=(0,_react.useCallback)(e=>o?o(e):e.value,[o]),V=(0,_react.useCallback)(e=>a?a(e):!0===e.disabled,[a]),O=(0,_react.useCallback)(e=>n?n(e):e.description,[n]),D=(0,_react.useCallback)(e=>l?l(e):e.icon,[l]),N=(0,_react.useCallback)(e=>s?s(e):e.color,[s]),L="multiple"===e.selectionMode,{min:q,max:G}=e,[I,P]=(0,_index.useControllableState)({value:e.value,defaultValue:e.defaultValue??(L?[]:void 0),onChange:e.onChange}),T=Array.isArray(I)?I:[],F=(0,_react.useCallback)(e=>{const i=w(e);if(L){const e=T.includes(i);if(e&&null!=q&&T.length<=q)return;if(!e&&null!=G&&T.length>=G)return;const r=(0,_index3.resolveHaptic)(y,"selection");return r&&(0,_index3.triggerHaptic)(r),void P(e?T.filter(e=>e!==i):[...T,i])}const r=(0,_index3.resolveHaptic)(y,"selection");r&&(0,_index3.triggerHaptic)(r),P(i)},[y,L,q,G,T,P,w]),M=g??("card"===d&&"row"===p&&!b),W=C.components.choiceGroup?.selectedFillOpacity??.12,A=C.components.choiceGroup?.borderRadius??C.radius.md,surfaceFor=(e,i,r)=>i?{borderColor:C.colors.border.primary,backgroundColor:C.colors.surface.disabled}:{borderColor:e?r:C.colors.border.primary,backgroundColor:e?(0,_color.tintOf)(r,W,C.colors.surface.selected):C.colors.background.primary},renderIcon=(e,i,r,t)=>{const o=D(e);if(null==o)return null;const a="string"==typeof o&&i?{name:o,variant:"bold"}:o;return(0,_slotIcon.renderSlotIcon)(a,{color:r,size:H.iconSize,disabled:t})},renderChip=e=>{const{option:i,selected:r,disabled:t,color:o}=e,a=t?C.colors.text.disabled:r?o:C.colors.text.primary,n=renderIcon(i,r,a,t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.chip,{minHeight:H.minHeight,paddingHorizontal:H.chipPaddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:C.radius.full,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(r,t,o),columnGap:C.spacing.xs}],children:[n?(0,_jsxRuntime.jsx)(_reactNative.View,{children:n}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:a,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:k(i)})]})},renderDefaultCard=e=>{const{option:i,selected:r,disabled:t,color:o}=e,a=N(i),n=t?C.colors.text.disabled:a??C.colors.text.primary,l=O(i),s=renderIcon(i,r,n,t),c=(0,_jsxRuntime.jsx)(_RadioDot.RadioDot,{selected:r,color:o,disabled:t,size:_});return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[S.card,{minHeight:H.minHeight,paddingHorizontal:H.paddingHorizontal,paddingVertical:H.paddingVertical,borderRadius:A,..._corners.smoothCorners,borderWidth:C.colors.border.width,...surfaceFor(r,t,o),columnGap:C.spacing.sm}],children:["leading"===u?c:null,s?(0,_jsxRuntime.jsx)(_reactNative.View,{children:s}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:S.cardTextWrap,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardLabel,{color:n,fontSize:H.fontSize,...(0,_index2.fontFor)(C,"medium")}],numberOfLines:h,ellipsizeMode:"tail",children:k(i)}),l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.cardDescription,{color:r?C.colors.text.secondary:C.colors.text.tertiary,fontSize:C.typography.fontSize.xs}],numberOfLines:f,ellipsizeMode:"tail",children:l}):null]}),"trailing"===u?c:null]})};return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:i,accessibilityRole:L?void 0:"radiogroup",accessibilityLabel:j,accessibilityState:{disabled:m},"aria-disabled":m,testID:R,style:[{flexDirection:p,gap:x??C.spacing.sm,flexWrap:b?"wrap":"nowrap"},z],children:r.map((e,i)=>{const r=w(e),t=L?T.includes(r):I===r,o=L&&null!=G&&!t&&T.length>=G,a=m||o||V(e),n=N(e)??C.colors.primary,l=c||"card"!==d?void 0:O(e);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{a||F(e)},disabled:a,accessibilityRole:L?"checkbox":"radio",accessibilityLabel:l?`${k(e)}, ${l}`:k(e),accessibilityState:{checked:t,disabled:a},"aria-checked":t,"aria-disabled":a,style:[M?S.stretchOption:null,{opacity:a&&c?.55:1},v],children:({pressed:r})=>{const o={option:e,index:i,selected:t,pressed:r&&!a,disabled:a,color:n};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:c?c(o):"chip"===d?renderChip(o):renderDefaultCard(o)})}},String(r))})})});ChoiceGroup.displayName="ChoiceGroup";const buildStyles=e=>_reactNative.StyleSheet.create({stretchOption:{flex:1},card:{flexDirection:"row",alignItems:"center"},chip:{flexDirection:"row",alignItems:"center",justifyContent:"center"},cardTextWrap:{flex:1},cardLabel:{includeFontPadding:!1},cardDescription:{includeFontPadding:!1,marginTop:2}});var _default=exports.default=ChoiceGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.buildPieces=exports.DEFAULT_PHYSICS=exports.Confetti=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.buildPieces=exports.DEFAULT_PHYSICS=exports.Confetti=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSvg=_interopRequireWildcard(require("react-native-svg")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,a){if("function"==typeof WeakMap)var t=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,a){if(!a&&e&&e.__esModule)return e;var i,s,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=a?r:t){if(i.has(e))return i.get(e);i.set(e,n)}for(const a in e)"default"!==a&&{}.hasOwnProperty.call(e,a)&&((s=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,a))&&(s.get||s.set)?i(n,a,s):n[a]=e[a]);return n})(e,a)}const TAU=2*Math.PI,DEG=Math.PI/180,SPEED_FACTOR={slow:1.6,normal:1,fast:.6},DEFAULT_PHYSICS=exports.DEFAULT_PHYSICS={velocity:1,drag:1,fallSpeed:1,spread:0},PRESET_SHAPES={pop:["strip","strip","strip","square","circle","triangle","star","streamer"],rain:["strip","strip","strip","circle","square"],fireworks:["circle","circle","star","star","triangle","strip"]},rand=(e,a)=>e+Math.random()*(a-e),pick=e=>e[Math.floor(Math.random()*e.length)]??e[0],commonPiece=(e,a)=>({color:e.colors[a%e.colors.length]??e.colors[0],size:e.baseSize*rand(.6,1.4),shape:pick(e.shapes),rotations:rand(1,5),rotateDir:Math.random()<.5?1:-1,flutterFreq:rand(2,5)}),popPiece=(e,a)=>{const t=e.physics.spread>0?e.physics.spread/2:100,r=(-90+rand(-t,t))*DEG,i=rand(1.8,4.2)*e.physics.velocity;return{...commonPiece(e,a),x0Frac:e.originXFrac,y0Frac:e.originYFrac,vxFrac:Math.cos(r)*i*.7,vyFrac:Math.sin(r)*i,drag:rand(5.5,7.5)*e.physics.drag,terminalFrac:rand(.22,.44)*e.physics.fallSpeed,delay:rand(0,.05),swayAmp:rand(4,16),swayFreq:rand(1,3)}},rainPiece=(e,a)=>({...commonPiece(e,a),x0Frac:Math.random(),y0Frac:-.05,vxFrac:rand(-.12,.12)*e.physics.velocity,vyFrac:rand(.05,.25)*e.physics.velocity,drag:rand(2.5,4)*e.physics.drag,terminalFrac:rand(.95,1.35)*e.physics.fallSpeed,delay:rand(0,.35),swayAmp:rand(10,30),swayFreq:rand(1,3)}),FIREWORK_BURSTS=4,buildFireworks=(e,a)=>{const t=Math.max(1,Math.round(e/4)),r=a.physics.spread>0?a.physics.spread/2:180,i=[];for(let s=0;s<4&&i.length<e;s+=1){const n=rand(.18,.82),c=rand(.18,.52),o=s/4*.5+rand(0,.06);for(let s=0;s<t&&i.length<e;s+=1){const e=rand(-r,r)*DEG,t=rand(1.4,3.4)*a.physics.velocity;i.push({...commonPiece(a,i.length),x0Frac:n,y0Frac:c,vxFrac:Math.cos(e)*t*.7,vyFrac:Math.sin(e)*t,drag:rand(6.5,8.5)*a.physics.drag,terminalFrac:rand(.18,.38)*a.physics.fallSpeed,delay:o,swayAmp:rand(3,12),swayFreq:rand(1,3)})}}return i},buildPieces=(e,a,t)=>{if("fireworks"===a)return buildFireworks(e,t);const r="rain"===a?rainPiece:popPiece;return Array.from({length:e},(e,a)=>r(t,a))};exports.buildPieces=buildPieces;const SHAPE_BOX={strip:{w:1,h:.45},square:{w:1,h:1},circle:{w:1,h:1},triangle:{w:1,h:1},star:{w:1.2,h:1.2},streamer:{w:3,h:1.2}},TRIANGLE_POINTS="50,4 96,96 4,96",STAR_POINTS="50,2 61,36 97,36 68,58 79,94 50,72 21,94 32,58 3,36 39,36",STREAMER_PATH="M2,50 C20,6 44,94 62,50 S92,6 98,50",ShapeBody=({shape:e,color:a})=>"triangle"===e||"star"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Polygon,{points:"star"===e?STAR_POINTS:TRIANGLE_POINTS,fill:a})}):"streamer"===e?(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none",children:(0,_jsxRuntime.jsx)(_reactNativeSvg.Path,{d:STREAMER_PATH,stroke:a,strokeWidth:22,strokeLinecap:"round",fill:"none"})}):null,ConfettiPiece=({piece:e,progress:a,width:t,height:r,fadeOut:i})=>{const s=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const s=1-e.delay,n=s<=0?0:Math.min(1,Math.max(0,(a.value-e.delay)/s)),c=(1-Math.exp(-e.drag*n))/e.drag,o=e.x0Frac*t+e.vxFrac*t*c,d=e.y0Frac*r+e.terminalFrac*r*n+(e.vyFrac-e.terminalFrac)*r*c,l=Math.sin(n*e.swayFreq*TAU)*e.swayAmp,h=e.rotateDir*e.rotations*360*n,p=.35+.65*Math.abs(Math.cos(n*e.flutterFreq*TAU));return{opacity:i?Math.max(0,1-Math.max(0,n-.75)/.25):1,transform:[{translateX:o+l},{translateY:d},{rotate:`${h}deg`},{scaleY:p}]}}),n=SHAPE_BOX[e.shape],c="triangle"===e.shape||"star"===e.shape||"streamer"===e.shape;return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{position:"absolute",width:e.size*n.w,height:e.size*n.h,borderRadius:"circle"===e.shape?e.size*n.h/2:1,backgroundColor:c?"transparent":e.color},s],children:(0,_jsxRuntime.jsx)(ShapeBody,{shape:e.shape,color:e.color})})},Confetti=exports.Confetti=(0,_react.forwardRef)(({count:e=80,colors:a,preset:t="pop",shapes:r,speed:i="normal",physics:s,origin:n,duration:c=2800,fadeOut:o=!0,autoStart:d=!1,recycle:l=!1,size:h=10,onComplete:p,style:u,testID:_},m)=>{const y=(0,_index2.useTheme)(),v=(0,_index.useReducedMotion)(),f=(0,_reactNative.useWindowDimensions)(),[g,x]=(0,_react.useState)({width:f.width,height:f.height}),[S,w]=(0,_react.useState)(!1),[R,F]=(0,_react.useState)([]),P=(0,_react.useMemo)(()=>a??[y.colors.primary,y.colors.secondary,y.colors.success,y.colors.warning,y.colors.error,y.colors.info],[a,y.colors]),M=(0,_reactNativeReanimated.useSharedValue)(0),A=c*SPEED_FACTOR[i],E=(0,_react.useCallback)(()=>{w(!1),p?.()},[p]),N=(0,_react.useCallback)(()=>{if(v)return void p?.();(0,_reactNativeReanimated.cancelAnimation)(M),M.value=0,F(buildPieces(e,t,{colors:P,baseSize:h,originXFrac:n?n.x/Math.max(1,g.width):.5,originYFrac:n?n.y/Math.max(1,g.height):.5,physics:{...DEFAULT_PHYSICS,...s},shapes:r??PRESET_SHAPES[t]})),w(!0);const a=(0,_reactNativeReanimated.withTiming)(1,{duration:A,easing:_reactNativeReanimated.Easing.linear},e=>{"worklet";e&&!l&&(0,_reactNativeReanimated.runOnJS)(E)()});M.value=l?(0,_reactNativeReanimated.withRepeat)(a,-1,!1):a},[v,M,A,l,E,p,e,P,t,r,s,h,n,g.width,g.height]),T=(0,_react.useCallback)(()=>{(0,_reactNativeReanimated.cancelAnimation)(M),w(!1)},[M]);(0,_react.useImperativeHandle)(m,()=>({start:N,stop:T}),[N,T]),(0,_react.useEffect)(()=>(d&&N(),()=>(0,_reactNativeReanimated.cancelAnimation)(M)),[]);const j=(0,_react.useCallback)(e=>{const{width:a,height:t}=e.nativeEvent.layout;a>0&&t>0&&x({width:a,height:t})},[]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[_reactNative.StyleSheet.absoluteFill,u],pointerEvents:"none",onLayout:j,testID:_,children:S?R.map((e,a)=>(0,_jsxRuntime.jsx)(ConfettiPiece,{piece:e,progress:M,width:g.width,height:g.height,fadeOut:o},a)):null})});Confetti.displayName="Confetti";var _default=exports.default=Confetti;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.DatePicker=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,s={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return s;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,s)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(s,t,n):s[t]=e[t]);return s})(e,t)}const 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),formatLongDate=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"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:f,label:v,placeholder:b,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:k,onClear:S,formatValue:P,triggerStyle:T}=e,V=void 0!==e.visible,[A,M]=(0,_react.useState)(!1),I=V?e.visible:A,F=V?f:f?`${f}-calendar`:void 0,L=(0,_index.useTheme)(),B=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),W=(0,_react.useMemo)(()=>buildStyles(L),[L]),[Y,z]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{I&&z(startOfDay(new Date))},[I]);const H=t?startOfDay(t):Y,[$,q]=(0,_react.useState)(H),[E,O]=(0,_react.useState)(t?startOfDay(t):null),[G,X]=(0,_react.useState)("days"),Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,J=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)(0),U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,te=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).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;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);O(e),q(e)}else O(null)},[t]),(0,_react.useEffect)(()=>{if("modal"===o&&I){Z.setValue(0),(0,_index.setNativeValue)(J,0),(0,_index.setNativeValue)(K,0);const e=_reactNative.Animated.parallel([_reactNative.Animated.timing(Z,{toValue:1,duration:L.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(J,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0})]);return e.start(),()=>e.stop()}},[I,o,Z,J,K,L.motion]);const ne=(0,_react.useMemo)(()=>{const e=new Set;return s?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[s]),se=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),oe=(0,_react.useMemo)(()=>n?startOfDay(n):null,[n]),le=(0,_react.useCallback)(e=>!!(se&&e.getTime()<se.getTime())||(!!(oe&&e.getTime()>oe.getTime())||!!ne.has(toIso(e))),[se,oe,ne]),ce=(0,_react.useMemo)(()=>buildMonthMatrix($,c),[$,c]),de=(0,_react.useMemo)(()=>buildYearCells($.getFullYear()),[$]),ue=(0,_react.useMemo)(()=>buildDecadeCells($.getFullYear()),[$]),me=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),ge=(0,_react.useMemo)(()=>{if("days"===G)return formatMonthYear($,l);if("years"===G){return`${de[0]} - ${de[de.length-1]}`}return`${ue[0]} - ${ue[ue.length-1]+9}`},[$,ue,l,G,de]),ye=(0,_react.useCallback)(e=>!!(se&&e<se.getFullYear())||!!(oe&&e>oe.getFullYear()),[se,oe]),_e=(0,_react.useCallback)(e=>!!(se&&e+10-1<se.getFullYear())||!!(oe&&e>oe.getFullYear()),[se,oe]),pe=(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;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(U,{toValue:-t*a,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ee,{toValue:0,duration:r,useNativeDriver:!0})]),_reactNative.Animated.timing(U,{toValue:t*a,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(U,{toValue:0,duration:i,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ee,{toValue:1,duration:i,useNativeDriver:!0})])]).start();const n=addMonths($,e);q(n),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(n,l))},[$,h,l,ee,U,L.components.datePicker,L.motion.duration.fast]),xe=(0,_react.useCallback)(()=>{"days"!==G?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),q("years"===G?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):pe(-1)},[pe,G,h]),he=(0,_react.useCallback)(()=>{"days"!==G?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),q("years"===G?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):pe(1)},[pe,G,h]),fe=(0,_react.useCallback)(()=>{const e=L.components.datePicker?.viewTransitionDuration??L.motion.duration.normal??200;(0,_index.setNativeValue)(ae,0),(0,_index.setNativeValue)(re,.9),_reactNative.Animated.parallel([_reactNative.Animated.timing(ae,{toValue:1,duration:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(re,{toValue:1,duration:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ae,re,L.components.datePicker,L.motion.duration.normal]),ve=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(h,"selection");e&&(0,_index2.triggerHaptic)(e);const t=L.components.datePicker?.headerPressDuration??80,a=L.components.datePicker?.headerReleaseDuration??100;_reactNative.Animated.sequence([_reactNative.Animated.timing(ie,{toValue:.96,duration:t,useNativeDriver:!0}),_reactNative.Animated.timing(ie,{toValue:1,duration:a,useNativeDriver:!0})]).start(),X(e=>"days"===e?"years":"years"===e?"decades":"years"),fe()},[fe,ie,h,L.components.datePicker]),be=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),q(t=>new Date(e,t.getMonth(),1)),X("days"),fe()},[fe,h]),je=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),q(t=>new Date(e+4,t.getMonth(),1)),X("years"),fe()},[fe,h]),Ne=(0,_react.useCallback)(e=>{if(le(e.date))return;const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),O(e.date),e.inMonth||q(new Date(e.date.getFullYear(),e.date.getMonth(),1)),(0,_index.setNativeValue)(te,.7),_reactNative.Animated.spring(te,{toValue:1,damping:L.motion.spring.bouncy.damping,stiffness:L.motion.spring.bouncy.stiffness,mass:L.motion.spring.bouncy.mass,useNativeDriver:!0}).start()},[le,te,L.motion.spring.bouncy,h]),Re=(0,_react.useCallback)(()=>{V||M(!1),r?.()},[V,r]),De=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(Z,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(J,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{Re()}):Re()},[Z,o,Re,J,L.motion.duration.fast,L.motion.easing.accelerate]),{handleGesture:we}=(0,_useDragToDismiss.useDragToDismiss)({drag:K,travel:()=>Q.current||320,onDismiss:De}),Ce=(0,_react.useCallback)(()=>{!1!==h&&(0,_index2.triggerHaptic)("selection"),De()},[De,h]),ke=(0,_react.useCallback)(()=>{E&&(!1!==h&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(E),De())},[De,a,E,h]),Se=J.interpolate({inputRange:[0,1],outputRange:[320,0]}),Pe=(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.title,accessibilityRole:"header",children:d})}),Te=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,g,y],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:we,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.handle}),Pe]})}):Pe,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:xe,style:({pressed:e})=>[W.navBtn,e&&W.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===G?"Previous month":"years"===G?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ve,style:[W.headerLabelWrap,_],accessibilityRole:"button",accessibilityLabel:"days"===G?`${ge}, switch to year selection`:"years"===G?`${ge}, switch to decade selection`:`${ge}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[W.headerLabelInner,{transform:[{scale:ie}],opacity:"days"===G?ee:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[W.headerLabel,{transform:[{translateX:"days"===G?U:0}]}],accessibilityLiveRegion:"polite",children:ge}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.headerCaret,children:(L.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:L.typography.fontSize.sm,color:L.colors.text.secondary})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:he,style:({pressed:e})=>[W.navBtn,e&&W.navBtnPressed,p],accessibilityRole:"button",accessibilityLabel:"days"===G?"Next month":"years"===G?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.navText,children:"›"})})]}),"days"===G?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.weekdayRow,children:me.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.grid,{opacity:ee,transform:[{translateX:U}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.gridRow,children:ce.slice(7*t,7*t+7).map(e=>{const t=le(e.date),a=!!E&&isSameDay(e.date,E),r=isSameDay(e.date,Y),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:()=>Ne(e),accessibilityRole:"button",accessibilityLabel:formatLongDate(e.date,l),accessibilityState:{selected:a,disabled:t},style:W.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.dayInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:te}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.dayText,{color:s}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===G?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.yearGrid,{opacity:ae,transform:[{scale:re}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.gridRow,children:de.slice(4*t,4*t+4).map(e=>{const t=ye(e),a=!!E&&E.getFullYear()===e,r=Y.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:()=>be(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},style:W.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.yearInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.yearText,{color:s}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.yearGrid,{opacity:ae,transform:[{scale:re}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.gridRow,children:ue.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=_e(e),r=!!E&&decadeStartFor(E.getFullYear())===e,i=decadeStartFor(Y.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:()=>je(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},style:W.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.yearInner,{backgroundColor:n,borderColor:s,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.decadeRangeText,{color:r?L.colors.onPrimary:L.colors.text.tertiary}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(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,x],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.text.secondary}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ke,disabled:!E,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:L.colors.primary,opacity:E?1:.5},e&&{backgroundColor:L.colors.primaryHover},x],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!E},children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.onPrimary}],children:u})})]})]}),Ve=t?(P??(e=>e.toLocaleDateString()))(t):void 0,Ae=!V;if("inline"===o)return I||Ae?Ae?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:v,value:Ve,placeholder:b,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:k,onClear:S,onPress:()=>M(!0),triggerStyle:T,testID:f}),I?Te:null]}):Te:null;const Me=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:I,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:De,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:[W.backdrop,{backgroundColor:L.colors.background.overlay}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:De,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(B.bottom,L.spacing.lg),opacity:J,transform:[{translateY:_reactNative.Animated.add(Se,K)}]}],onLayout:e=>{Q.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Te}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})});return Ae?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:v,value:Ve,placeholder:b,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:k,onClear:S,onPress:()=>M(!0),triggerStyle:T,testID:f}),Me]}):Me};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadows.lg;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.full,..._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.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:e.components.datePicker?.navTextFontSize??22,lineHeight:e.components.datePicker?.navTextLineHeight??24,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:e.components.datePicker?.dayCellPadding??2},dayInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.dayInnerBorderRadius??e.radius.full,..._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:e.components.datePicker?.yearCellPadding??4},yearInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.yearInnerBorderRadius??e.radius.lg,..._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:e.components.datePicker?.decadeRangeMarginTop??2},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"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const 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),formatLongDate=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"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:x,footerButtonStyle:p,haptic:h,testID:v,label:b,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,formatValue:P,triggerStyle:T}=e,V=void 0!==e.visible,[A,I]=(0,_react.useState)(!1),M=V?e.visible:A,F=V?v:v?`${v}-calendar`:void 0,L=(0,_index.useTheme)(),B=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),Y=(0,_react.useMemo)(()=>buildStyles(L),[L]),[z,H]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{M&&H(startOfDay(new Date))},[M]);const $=t?startOfDay(t):z,[W,E]=(0,_react.useState)($),[q,O]=(0,_react.useState)(t?startOfDay(t):null),[G,X]=(0,_react.useState)("days"),Z=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,J=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,K=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Q=(0,_react.useRef)(0),U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,ee=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current,te=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).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;(0,_react.useEffect)(()=>{if(t){const e=startOfDay(t);O(e),E(e)}else O(null)},[t]),(0,_react.useEffect)(()=>{if("modal"===o&&M){Z.setValue(0),(0,_index.setNativeValue)(J,0),(0,_index.setNativeValue)(K,0);const e=_reactNative.Animated.parallel([_reactNative.Animated.timing(Z,{toValue:1,duration:L.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(J,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0})]);return e.start(),()=>e.stop()}},[M,o,Z,J,K,L.motion]);const ne=(0,_react.useMemo)(()=>{const e=new Set;return s?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[s]),se=(0,_react.useMemo)(()=>i?startOfDay(i):null,[i]),oe=(0,_react.useMemo)(()=>n?startOfDay(n):null,[n]),le=(0,_react.useCallback)(e=>!!(se&&e.getTime()<se.getTime())||(!!(oe&&e.getTime()>oe.getTime())||!!ne.has(toIso(e))),[se,oe,ne]),ce=(0,_react.useMemo)(()=>buildMonthMatrix(W,c),[W,c]),de=(0,_react.useMemo)(()=>buildYearCells(W.getFullYear()),[W]),ue=(0,_react.useMemo)(()=>buildDecadeCells(W.getFullYear()),[W]),me=(0,_react.useMemo)(()=>weekdayLabels(l,c),[l,c]),ge=(0,_react.useMemo)(()=>{if("days"===G)return formatMonthYear(W,l);if("years"===G){return`${de[0]} - ${de[de.length-1]}`}return`${ue[0]} - ${ue[ue.length-1]+9}`},[W,ue,l,G,de]),ye=(0,_react.useCallback)(e=>!!(se&&e<se.getFullYear())||!!(oe&&e>oe.getFullYear()),[se,oe]),_e=(0,_react.useCallback)(e=>!!(se&&e+10-1<se.getFullYear())||!!(oe&&e>oe.getFullYear()),[se,oe]),xe=(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;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(U,{toValue:-t*a,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ee,{toValue:0,duration:r,useNativeDriver:!0})]),_reactNative.Animated.timing(U,{toValue:t*a,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(U,{toValue:0,duration:i,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(ee,{toValue:1,duration:i,useNativeDriver:!0})])]).start();const n=addMonths(W,e);E(n),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(n,l))},[W,h,l,ee,U,L.components.datePicker,L.motion.duration.fast]),pe=(0,_react.useCallback)(()=>{"days"!==G?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===G?e=>new Date(e.getFullYear()-12,e.getMonth(),1):e=>new Date(e.getFullYear()-120,e.getMonth(),1))):xe(-1)},[xe,G,h]),he=(0,_react.useCallback)(()=>{"days"!==G?(!1!==h&&(0,_index2.triggerHaptic)("impactLight"),E("years"===G?e=>new Date(e.getFullYear()+12,e.getMonth(),1):e=>new Date(e.getFullYear()+120,e.getMonth(),1))):xe(1)},[xe,G,h]),ve=(0,_react.useCallback)(()=>{const e=L.components.datePicker?.viewTransitionDuration??L.motion.duration.normal??200;(0,_index.setNativeValue)(ae,0),(0,_index.setNativeValue)(re,.9),_reactNative.Animated.parallel([_reactNative.Animated.timing(ae,{toValue:1,duration:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(re,{toValue:1,duration:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0})]).start()},[ae,re,L.components.datePicker,L.motion.duration.normal]),be=(0,_react.useCallback)(()=>{const e=(0,_index2.resolveHaptic)(h,"selection");e&&(0,_index2.triggerHaptic)(e);const t=L.components.datePicker?.headerPressDuration??80,a=L.components.datePicker?.headerReleaseDuration??100;_reactNative.Animated.sequence([_reactNative.Animated.timing(ie,{toValue:.96,duration:t,useNativeDriver:!0}),_reactNative.Animated.timing(ie,{toValue:1,duration:a,useNativeDriver:!0})]).start(),X(e=>"days"===e?"years":"years"===e?"decades":"years"),ve()},[ve,ie,h,L.components.datePicker]),fe=(0,_react.useCallback)(e=>{const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),E(t=>new Date(e,t.getMonth(),1)),X("days"),ve()},[ve,h]),je=(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)),X("years"),ve()},[ve,h]),Ne=(0,_react.useCallback)(e=>{if(le(e.date))return;const t=(0,_index2.resolveHaptic)(h,"selection");t&&(0,_index2.triggerHaptic)(t),O(e.date),e.inMonth||E(new Date(e.date.getFullYear(),e.date.getMonth(),1)),(0,_index.setNativeValue)(te,.7),_reactNative.Animated.spring(te,{toValue:1,damping:L.motion.spring.bouncy.damping,stiffness:L.motion.spring.bouncy.stiffness,mass:L.motion.spring.bouncy.mass,useNativeDriver:!0}).start()},[le,te,L.motion.spring.bouncy,h]),Re=(0,_react.useCallback)(()=>{V||I(!1),r?.()},[V,r]),De=(0,_react.useCallback)(()=>{"modal"===o?_reactNative.Animated.parallel([_reactNative.Animated.timing(Z,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(J,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{Re()}):Re()},[Z,o,Re,J,L.motion.duration.fast,L.motion.easing.accelerate]),{handleGesture:we}=(0,_useDragToDismiss.useDragToDismiss)({drag:K,travel:()=>Q.current||320,onDismiss:De}),Ce=(0,_react.useCallback)(()=>{!1!==h&&(0,_index2.triggerHaptic)("selection"),De()},[De,h]),Se=(0,_react.useCallback)(()=>{q&&(!1!==h&&(0,_index2.triggerHaptic)("notificationSuccess"),a?.(q),De())},[De,a,q,h]),ke=J.interpolate({inputRange:[0,1],outputRange:[320,0]}),Pe=(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.titleRow,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:Y.title,accessibilityRole:"header",children:d})}),Te=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Y.card,g,y],accessibilityRole:"modal"===o?void 0:"none",accessible:!1,testID:F,children:["modal"===o?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:we,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.grabArea,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.handle}),Pe]})}):Pe,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:pe,style:({pressed:e})=>[Y.navBtn,e&&Y.navBtnPressed,x],accessibilityRole:"button",accessibilityLabel:"days"===G?"Previous month":"years"===G?"Previous years":"Previous decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:Y.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:be,style:[Y.headerLabelWrap,_],accessibilityRole:"button",accessibilityLabel:"days"===G?`${ge}, switch to year selection`:"years"===G?`${ge}, switch to decade selection`:`${ge}, switch to year selection`,hitSlop:8,children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[Y.headerLabelInner,{transform:[{scale:ie}],opacity:"days"===G?ee:1}],children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[Y.headerLabel,{transform:[{translateX:"days"===G?U:0}]}],accessibilityLiveRegion:"polite",children:ge}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.headerCaret,children:(L.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:L.typography.fontSize.sm,color:L.colors.text.secondary})})]})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:he,style:({pressed:e})=>[Y.navBtn,e&&Y.navBtnPressed,x],accessibilityRole:"button",accessibilityLabel:"days"===G?"Next month":"years"===G?"Next years":"Next decades",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:Y.navText,children:"›"})})]}),"days"===G?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.weekdayRow,children:me.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:Y.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[Y.grid,{opacity:ee,transform:[{translateX:U}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.gridRow,children:ce.slice(7*t,7*t+7).map(e=>{const t=le(e.date),a=!!q&&isSameDay(e.date,q),r=isSameDay(e.date,z),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:()=>Ne(e),accessibilityRole:"button",accessibilityLabel:formatLongDate(e.date,l),accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:Y.dayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[Y.dayInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o},a?{transform:[{scale:te}]}:null],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.dayText,{color:s}],children:e.date.getDate()})})},e.iso)})},`r-${t}`))})]}):"years"===G?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[Y.yearGrid,{opacity:ae,transform:[{scale:re}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.gridRow,children:de.slice(4*t,4*t+4).map(e=>{const t=ye(e),a=!!q&&q.getFullYear()===e,r=z.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:()=>fe(e),accessibilityRole:"button",accessibilityLabel:`Year ${e}`,accessibilityState:{selected:a,disabled:t},"aria-selected":a,"aria-disabled":t,style:Y.yearCell,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Y.yearInner,{backgroundColor:i,borderColor:n,borderWidth:r&&!a?1.5:0,opacity:o}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.yearText,{color:s}],children:e})})},`year-${e}`)})},`yr-${t}`))}):(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[Y.yearGrid,{opacity:ae,transform:[{scale:re}]}],children:Array.from({length:3}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:Y.gridRow,children:ue.slice(4*t,4*t+4).map(e=>{const t=e+10-1,a=_e(e),r=!!q&&decadeStartFor(q.getFullYear())===e,i=decadeStartFor(z.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:()=>je(e),accessibilityRole:"button",accessibilityLabel:`Decade ${e} to ${t}`,accessibilityState:{selected:r,disabled:a},"aria-selected":r,"aria-disabled":a,style:Y.yearCell,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[Y.yearInner,{backgroundColor:n,borderColor:s,borderWidth:i&&!r?1.5:0,opacity:l}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.yearText,{color:o}],children:`${e}s`}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.decadeRangeText,{color:r?L.colors.onPrimary:L.colors.text.tertiary}],children:`${e}-${t}`})]})},`decade-${e}`)})},`dec-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:Y.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Ce,style:({pressed:e})=>[Y.footerBtn,Y.footerCancel,e&&Y.footerBtnPressed,p],accessibilityRole:"button",accessibilityLabel:m,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.footerBtnText,{color:L.colors.text.secondary}],children:m})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Se,disabled:!q,style:({pressed:e})=>[Y.footerBtn,Y.footerConfirm,{backgroundColor:L.colors.primary,opacity:q?1:.5},e&&{backgroundColor:L.colors.primaryHover},p],accessibilityRole:"button",accessibilityLabel:u,accessibilityState:{disabled:!q},"aria-disabled":!q,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[Y.footerBtnText,{color:L.colors.onPrimary}],children:u})})]})]}),Ve=t?(P??(e=>e.toLocaleDateString()))(t):void 0,Ae=!V;if("inline"===o)return M||Ae?Ae?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:Ve,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,onPress:()=>I(!0),triggerStyle:T,testID:v}),M?Te:null]}):Te:null;const Ie=(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:M,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:De,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:[Y.backdrop,{backgroundColor:L.colors.background.overlay}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:De,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[Y.sheetWrap,{paddingBottom:Math.max(B.bottom,L.spacing.lg),opacity:J,transform:[{translateY:_reactNative.Animated.add(ke,K)}]}],onLayout:e=>{Q.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:Te}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})});return Ae?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:b,value:Ve,placeholder:f,helperText:j,error:N,required:R,disabled:D,size:w,variant:C,clearable:S,onClear:k,onPress:()=>I(!0),triggerStyle:T,testID:v}),Ie]}):Ie};exports.DatePicker=DatePicker;const buildStyles=e=>{const t=e.shadows.lg;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.full,..._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.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:e.components.datePicker?.navTextFontSize??22,lineHeight:e.components.datePicker?.navTextLineHeight??24,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:e.components.datePicker?.dayCellPadding??2},dayInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.dayInnerBorderRadius??e.radius.full,..._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:e.components.datePicker?.yearCellPadding??4},yearInner:{width:"100%",height:"100%",borderRadius:e.components.datePicker?.yearInnerBorderRadius??e.radius.lg,..._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:e.components.datePicker?.decadeRangeMarginTop??2},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 +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"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.js"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index3=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const DAY_MS=864e5,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),daysBetween=(e,t)=>{const a=startOfDay(t).getTime()-startOfDay(e).getTime();return Math.round(a/DAY_MS)},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),formatRangePart=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"short",day:"numeric",month:"short"}).format(e),formatLongDate=(e,t)=>new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"numeric"}).format(e),DateRangePicker=exports.DateRangePicker=(0,_react.forwardRef)((e,t)=>{const{visible:a,value:r,onChange:i,onClose:n,label:s,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:m,variant:g,clearable:y,onClear:_,formatValue:h,triggerStyle:x,minDate:f,maxDate:p,disabledDates:v,locale:b="en-IN",weekStartsOn:R=0,title:j="Select Date Range",confirmLabel:D="Confirm",cancelLabel:N="Cancel",maxRange:w,haptic:S,style:T,containerStyle:k,headerLabelStyle:C,navButtonStyle:P,footerButtonStyle:M,testID:V}=e,A=void 0!==a,[B,I]=(0,_react.useState)(!1),L=A?a:B,z=A?V:V?`${V}-calendar`:void 0,O=(0,_index.useTheme)(),H=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),W=(0,_react.useMemo)(()=>buildStyles(O),[O]),[q,F]=(0,_react.useState)(()=>startOfDay(new Date));(0,_react.useEffect)(()=>{L&&F(startOfDay(new Date))},[L]);const E=r.start?startOfDay(r.start):q,[$,Y]=(0,_react.useState)(E),[G,X]=(0,_react.useState)(r.start?startOfDay(r.start):null),[J,K]=(0,_react.useState)(r.end?startOfDay(r.end):null),Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Z=(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;(0,_react.useEffect)(()=>{if(r.start){const e=startOfDay(r.start);X(e),Y(e)}else X(null);r.end?K(startOfDay(r.end)):K(null)},[r.start,r.end]),(0,_react.useEffect)(()=>{let e;return L&&(Q.setValue(0),(0,_index.setNativeValue)(U,0),(0,_index.setNativeValue)(Z,0),e=_reactNative.Animated.parallel([_reactNative.Animated.timing(Q,{toValue:1,duration:O.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(U,{toValue:1,damping:O.motion.spring.gentle.damping,stiffness:O.motion.spring.gentle.stiffness,mass:O.motion.spring.gentle.mass,useNativeDriver:!0})]),e.start()),()=>e?.stop()},[L,Q,U,Z,O.motion]);const re=(0,_react.useMemo)(()=>{const e=new Set;return v?.forEach(t=>e.add(toIso(startOfDay(t)))),e},[v]),ie=(0,_react.useMemo)(()=>f?startOfDay(f):null,[f]),ne=(0,_react.useMemo)(()=>p?startOfDay(p):null,[p]),se=(0,_react.useCallback)(e=>!!(ie&&e.getTime()<ie.getTime())||(!!(ne&&e.getTime()>ne.getTime())||!!re.has(toIso(e))),[ie,ne,re]),oe=(0,_react.useMemo)(()=>buildMonthMatrix($,R),[$,R]),le=(0,_react.useMemo)(()=>formatMonthYear($,b),[$,b]),ce=(0,_react.useMemo)(()=>weekdayLabels(b,R),[b,R]),de=(0,_react.useCallback)(e=>{!1!==S&&(0,_index2.triggerHaptic)("impactLight");const t=e>0?1:-1,a=O.components.dateRangePicker?.monthSlideDistance??32,r=O.components.dateRangePicker?.monthSlideOutDuration??O.motion.duration.fast??140,i=O.components.dateRangePicker?.monthSlideInDuration??O.motion.duration.fast??160;_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(te,{toValue:-t*a,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(ae,{toValue:0,duration:r,useNativeDriver:!0})]),_reactNative.Animated.timing(te,{toValue:t*a,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:i,useNativeDriver:!0})])]).start();const n=addMonths($,e);Y(n),_reactNative.AccessibilityInfo.announceForAccessibility(formatMonthYear(n,b))},[$,S,b,ae,te,O.components.dateRangePicker,O.motion.duration.fast]),ue=(0,_react.useCallback)(()=>de(-1),[de]),me=(0,_react.useCallback)(()=>de(1),[de]),ge=(0,_react.useCallback)(e=>{if(se(e.date))return;const t=(0,_index2.resolveHaptic)(S,"selection");t&&(0,_index2.triggerHaptic)(t);const a=e.date;if(!G||G&&J)X(a),K(null);else if(a.getTime()<G.getTime())X(a),K(null);else if(isSameDay(a,G))K(a);else{if(w&&daysBetween(G,a)+1>w)return!1!==S&&(0,_index2.triggerHaptic)("notificationWarning"),X(a),void K(null);K(a)}e.inMonth||Y(new Date(e.date.getFullYear(),e.date.getMonth(),1))},[se,G,J,w,S]),ye=(0,_react.useCallback)(()=>{A?n?.():I(!1)},[A,n]),_e=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(Q,{toValue:0,duration:O.motion.duration.fast,easing:_reactNative.Easing.bezier(...O.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(U,{toValue:0,duration:O.motion.duration.fast,easing:_reactNative.Easing.bezier(...O.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{ye()})},[Q,ye,U,O.motion.duration.fast,O.motion.easing.accelerate]),{handleGesture:he}=(0,_useDragToDismiss.useDragToDismiss)({drag:Z,travel:()=>ee.current||320,onDismiss:_e}),xe=(0,_react.useCallback)(()=>{!1!==S&&(0,_index2.triggerHaptic)("selection"),_e()},[_e,S]),fe=(0,_react.useCallback)(()=>{G&&J&&(!1!==S&&(0,_index2.triggerHaptic)("notificationSuccess"),i?.({start:G,end:J}),_e())},[_e,i,G,J,S]),pe=U.interpolate({inputRange:[0,1],outputRange:[320,0]}),ve=(0,_react.useMemo)(()=>G&&J?`${formatRangePart(G,b)} — ${formatRangePart(J,b)}`:G?`${formatRangePart(G,b)} — …`:"—",[G,J,b]),be=(0,_react.useCallback)(e=>{if(!G||!J)return!1;const t=startOfDay(e).getTime();return t>=G.getTime()&&t<=J.getTime()},[G,J]),Re=!G||!J,je=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,T,k],ref:t,accessible:!1,testID:z,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:he,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:j}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.subtitle,accessibilityLiveRegion:"polite",children:ve})]})]})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ue,style:({pressed:e})=>[W.navBtn,e&&W.navBtnPressed,P],accessibilityRole:"button",accessibilityLabel:"Previous month",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.navText,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.headerLabelWrap,{opacity:ae,transform:[{translateX:te}]},C],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.headerLabel,accessibilityLiveRegion:"polite",children:le})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:me,style:({pressed:e})=>[W.navBtn,e&&W.navBtnPressed,P],accessibilityRole:"button",accessibilityLabel:"Next month",hitSlop:8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.navText,children:"›"})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.weekdayRow,children:ce.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.weekdayCell,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:W.weekdayText,children:e})},`${e}-${t}`))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.grid,{opacity:ae,transform:[{translateX:te}]}],children:Array.from({length:6}).map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.gridRow,children:oe.slice(7*t,7*t+7).map(e=>{const t=se(e.date),a=!!G&&isSameDay(e.date,G),r=!!J&&isSameDay(e.date,J),i=be(e.date),n=i&&!a&&!r,s=isSameDay(e.date,q),o=O.colors.primary,l=O.colors.primaryMuted,c=a||r?O.colors.onPrimary:e.inMonth?t?O.colors.text.disabled:O.colors.text.primary:O.colors.text.tertiary,d=t?.3:e.inMonth?1:.4,u=i&&!!G&&!!J&&(r||n),m=i&&!!G&&!!J&&(a||n),g=a?", start of range":r?", end of range":n?", in selected range":"";return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{disabled:t,onPress:()=>ge(e),accessibilityRole:"button",accessibilityLabel:`${formatLongDate(e.date,b)}${g}`,accessibilityState:{selected:a||r,disabled:t,busy:n},style:W.dayCell,children:[u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.barLeft,{backgroundColor:l}],pointerEvents:"none"}):null,m?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.barRight,{backgroundColor:l}],pointerEvents:"none"}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[W.dayInner,{backgroundColor:a||r?o:n?l:"transparent",borderColor:!s||a||r?"transparent":o,borderWidth:!s||a||r?0:1.5,borderRadius:n?O.radius.none:O.radius.full,..._corners.smoothCorners,opacity:d}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.dayText,{color:c}],children:e.date.getDate()})})]},e.iso)})},`r-${t}`))}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:xe,style:({pressed:e})=>[W.footerBtn,W.footerCancel,e&&W.footerBtnPressed,M],accessibilityRole:"button",accessibilityLabel:N,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:O.colors.text.secondary}],children:N})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:fe,disabled:Re,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:O.colors.primary,opacity:Re?.5:1},e&&{backgroundColor:O.colors.primaryHover},M],accessibilityRole:"button",accessibilityLabel:D,accessibilityState:{disabled:Re},children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:O.colors.onPrimary}],children:D})})]})]}),De=(0,_react.useMemo)(()=>{if(!r.start||!r.end)return"";const e={start:r.start,end:r.end};return h?h(e):`${e.start.toLocaleDateString()} – ${e.end.toLocaleDateString()}`},[r.start,r.end,h]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[A?null:(0,_jsxRuntime.jsx)(_index3.PickerTrigger,{label:s,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:m,variant:g,clearable:y,onClear:_,value:De,onPress:()=>I(!0),triggerStyle:x,testID:V}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:L,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:_e,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:[W.backdrop,{backgroundColor:O.colors.background.overlay}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:_e,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(H.bottom,O.spacing.lg),opacity:U,transform:[{translateY:_reactNative.Animated.add(pe,Z)}]}],onLayout:e=>{ee.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:je}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})});DateRangePicker.displayName="DateRangePicker";const buildStyles=e=>{const t=e.shadows.lg;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.full,..._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},subtitle:{marginTop:e.spacing.xxs,fontSize:e.typography.fontSize.sm,color:e.colors.text.secondary},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:e.components.dateRangePicker?.navButtonSize??36,height:e.components.dateRangePicker?.navButtonSize??36,borderRadius:e.radius.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navText:{fontSize:e.components.dateRangePicker?.navTextFontSize??22,lineHeight:e.components.dateRangePicker?.navTextLineHeight??24,color:e.colors.text.primary,fontWeight:e.typography.fontWeight.semibold},headerLabelWrap:{flex:1,alignItems:"center"},headerLabel:{fontSize:e.typography.fontSize.base,fontWeight:e.typography.fontWeight.semibold,color:e.colors.text.primary},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,position:"relative"},barLeft:{position:"absolute",left:0,right:"50%",top:"5%",bottom:"5%"},barRight:{position:"absolute",left:"50%",right:0,top:"5%",bottom:"5%"},dayInner:{width:"90%",height:"90%",alignItems:"center",justifyContent:"center"},dayText:{fontSize:e.typography.fontSize.sm,fontWeight:e.typography.fontWeight.medium},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.dateRangePicker?.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=DateRangePicker;
|
|
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"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_useDragToDismiss=require("../../hooks/useDragToDismiss.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"),_index4=require("../PickerTrigger/index.js"),_ToastProvider=require("../Toast/ToastProvider.js"),_jsxRuntime=require("react/jsx-runtime");const 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:i,onClose:s,label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:x,formatValue:f,triggerStyle:p,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,locale:j="en-IN",weekStartsOn:D=0,title:N="Select Date Range",confirmLabel:S="Confirm",cancelLabel:C="Cancel",maxRange:k,haptic:T,style:w,containerStyle:P,headerLabelStyle:V,navButtonStyle:B,footerButtonStyle:q,testID:A}=e,H=void 0!==a,[M,O]=(0,_react.useState)(!1),z=H?a:M,I=H?A:A?`${A}-calendar`:void 0,L=(0,_index.useTheme)(),E=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),W=(0,_react.useMemo)(()=>buildStyles(L),[L]),[$,G]=(0,_react.useState)(()=>(0,_calendarDates.startOfMonth)(r.start??new Date)),[F,Y]=(0,_react.useState)(r.start?(0,_calendarDates.startOfDay)(r.start):null),[J,K]=(0,_react.useState)(r.end?(0,_calendarDates.startOfDay)(r.end):null),Q=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,U=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,X=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current,Z=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(r.start){const e=(0,_calendarDates.startOfDay)(r.start);Y(e),G((0,_calendarDates.startOfMonth)(e))}else Y(null);r.end?K((0,_calendarDates.startOfDay)(r.end)):K(null)},[r.start,r.end]),(0,_react.useEffect)(()=>{let e;return z&&(Q.setValue(0),(0,_index.setNativeValue)(U,0),(0,_index.setNativeValue)(X,0),e=_reactNative.Animated.parallel([_reactNative.Animated.timing(Q,{toValue:1,duration:L.motion.duration.normal,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!1}),_reactNative.Animated.spring(U,{toValue:1,damping:L.motion.spring.gentle.damping,stiffness:L.motion.spring.gentle.stiffness,mass:L.motion.spring.gentle.mass,useNativeDriver:!0})]),e.start()),()=>e?.stop()},[z,Q,U,X,L.motion]);const ee=(0,_react.useCallback)(e=>{if(e.end&&k&&(0,_calendarDates.daysBetween)(e.start,e.end)+1>k)return!1!==T&&(0,_index2.triggerHaptic)("notificationWarning"),Y(e.end),void K(null);Y(e.start),K(e.end??null)},[k,T]),te=(0,_react.useCallback)(()=>{H?s?.():O(!1)},[H,s]),ae=(0,_react.useCallback)(()=>{_reactNative.Animated.parallel([_reactNative.Animated.timing(Q,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!1}),_reactNative.Animated.timing(U,{toValue:0,duration:L.motion.duration.fast,easing:_reactNative.Easing.bezier(...L.motion.easing.accelerate),useNativeDriver:!0})]).start(()=>{te()})},[Q,te,U,L.motion.duration.fast,L.motion.easing.accelerate]),{handleGesture:re}=(0,_useDragToDismiss.useDragToDismiss)({drag:X,travel:()=>Z.current||320,onDismiss:ae}),ie=(0,_react.useCallback)(()=>{!1!==T&&(0,_index2.triggerHaptic)("selection"),ae()},[ae,T]),se=(0,_react.useCallback)(()=>{F&&J&&(!1!==T&&(0,_index2.triggerHaptic)("notificationSuccess"),i?.({start:F,end:J}),ae())},[ae,i,F,J,T]),ne=U.interpolate({inputRange:[0,1],outputRange:[320,0]}),oe=(0,_react.useMemo)(()=>F&&J?`${formatRangePart(F,j)} — ${formatRangePart(J,j)}`:F?`${formatRangePart(F,j)} — …`:"—",[F,J,j]),le=!F||!J,ce=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[W.card,w,P],ref:t,accessible:!1,testID:I,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:re,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:oe})]})]})}),(0,_jsxRuntime.jsx)(_index3.Calendar,{mode:"range",value:F?{start:F,end:J??void 0}:null,onChange:ee,month:$,onMonthChange:G,minDate:v,maxDate:h,disabledDates:y,markedDates:b,strikeMarkedInRange:R,weekStartsOn:D,locale:j,haptic:T,headerLabelStyle:V,navButtonStyle:B,testID:I?`${I}-grid`:void 0}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:W.footer,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:ie,style:({pressed:e})=>[W.footerBtn,W.footerCancel,e&&W.footerBtnPressed,q],accessibilityRole:"button",accessibilityLabel:C,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.text.secondary}],children:C})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:se,disabled:le,style:({pressed:e})=>[W.footerBtn,W.footerConfirm,{backgroundColor:L.colors.primary,opacity:le?.5:1},e&&{backgroundColor:L.colors.primaryHover},q],accessibilityRole:"button",accessibilityLabel:S,accessibilityState:{disabled:le},"aria-disabled":le,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.footerBtnText,{color:L.colors.onPrimary}],children:S})})]})]}),de=(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:[H?null:(0,_jsxRuntime.jsx)(_index4.PickerTrigger,{label:n,placeholder:o,helperText:l,error:c,required:d,disabled:u,size:g,variant:m,clearable:_,onClear:x,value:de,onPress:()=>O(!0),triggerStyle:p,testID:A}),(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:z,transparent:!0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",onRequestClose:ae,children:(0,_jsxRuntime.jsxs)(_reactNativeGestureHandler.GestureHandlerRootView,{collapsable:!1,style:[W.backdrop,{backgroundColor:L.colors.background.overlay}],children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:ae,accessibilityLabel:"Dismiss"}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[W.sheetWrap,{paddingBottom:Math.max(E.bottom,L.spacing.lg),opacity:U,transform:[{translateY:_reactNative.Animated.add(ne,X)}]}],onLayout:e=>{Z.current=e.nativeEvent.layout.height},accessibilityViewIsModal:!0,accessibilityRole:"none",children:ce}),(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})})]})});DateRangePicker.displayName="DateRangePicker";const buildStyles=e=>{const t=e.shadows.lg;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.full,..._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},subtitle:{marginTop:e.spacing.xxs,fontSize:e.typography.fontSize.sm,color:e.colors.text.secondary},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.dateRangePicker?.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=DateRangePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Descriptions=void 0;var _react=
|
|
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"),_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,Descriptions=({items:e,columns:t=1,size:r="md",bordered:i=!1,title:l,variant:a="list",style:o,testID:s})=>{const n=(0,_index.useTheme)(),c=(0,_react.useMemo)(()=>buildStyles(n),[n]),u="sm"===r?n.typography.fontSize.xs:n.typography.fontSize.sm,d="sm"===r?n.typography.fontSize.sm:n.typography.fontSize.base,x="sm"===r?n.spacing.xs:n.spacing.sm,m="summary"===a;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[m?null:{gap:x},o],testID:s,children:[l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.title,{fontSize:n.typography.fontSize.lg,color:n.colors.text.primary}],children:l}):null,e.map((e,r)=>{const l=isEmptyValue(e.value),a=2===t&&!e.full,o=l?n.colors.text.tertiary:(0,_Text.resolveColor)(n,e.tone??"primary"),s=(0,_index.fontFor)(n,e.strong?"semibold":"normal");return m?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[c.summaryRow,{paddingVertical:x,borderBottomColor:n.colors.border.secondary}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryLabel,{fontSize:d,color:n.colors.text.secondary}],children:e.label}),"string"==typeof e.value||l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.summaryValue,{fontSize:d,color:o},s],children:l?"-":e.value}):(0,_jsxRuntime.jsx)(_reactNative.View,{children:e.value})]},rowKey(e,r)):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[a?c.rowSide:c.rowStack,{paddingVertical:x},i&&r>0?c.bordered:null,i&&r>0?{borderTopColor:n.colors.border.secondary}:null],children:["string"==typeof e.label?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.label,{fontSize:u,color:n.colors.text.tertiary},a?c.labelSide:null],children:e.label}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:a?c.labelSide:null,children:e.label}),"string"==typeof e.value||l?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[c.value,{fontSize:d,color:o},e.strong?s:null,a?c.valueSide:null],children:l?"-":e.value}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:a?c.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:2},rowSide:{flexDirection:"row",alignItems:"flex-start",gap:e.spacing.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.spacing.md,borderBottomWidth:_reactNative.StyleSheet.hairlineWidth},summaryLabel:{flex:1,...(0,_index.fontFor)(e,"normal")},summaryValue:{textAlign:"right"}});var _default=exports.default=Descriptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Dialog=void 0;var _react=
|
|
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"),_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:n,icon:a,variant:s="default",actions:l,dismissOnAction:c=!0,accessibilityLabel:d,contentStyle:u,containerStyle:g,titleStyle:b,messageStyle:m,iconWrapperStyle:p,actionsRowStyle:y,actionButtonStyle:x,actionTextStyle:h,haptic:_,testID:f}=e,j=(0,_index.useTheme)(),S=(0,_react.useMemo)(()=>buildStyles(j),[j]),C=(0,_react.useMemo)(()=>tintForVariant(j,s),[j,s]),R=j.components.dialog,v=R?.iconWrapperSize??48,M=R?.iconWrapperBorderRadius??24,w=R?.actionButtonMinHeight??44,B=Boolean(l&&l.length>0),D=(0,_react.useCallback)(e=>{if(e.loading||e.disabled)return;const t=(0,_hapticUtils.resolveHaptic)(_,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),c?(r(),setTimeout(e.onPress,_Modal.MODAL_DISMISS_GRACE_MS)):e.onPress()},[c,r,_]);return(0,_jsxRuntime.jsx)(_Modal.Modal,{visible:t,onRequestClose:r,haptic:_,presentation:"centered",accessibilityLabel:d??o,contentStyle:u,testID:f,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityRole:"alert",accessibilityLabel:d??o,style:[S.container,g],children:[a?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.iconWrapper,{width:v,height:v,borderRadius:M,..._corners.smoothCorners,backgroundColor:C.muted,marginBottom:j.spacing.md},p],children:a}):null,o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.title,{color:j.colors.text.primary,fontSize:j.typography.fontSize.xl,...(0,_index.fontFor)(j,"semibold"),marginBottom:i||null!=n?j.spacing.sm:j.spacing.md},b],accessibilityRole:"header",children:o}):null,i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[S.message,{color:j.colors.text.secondary,fontSize:j.typography.fontSize.base,lineHeight:j.typography.fontSize.base*j.typography.lineHeight.normal,marginBottom:null!=n?j.spacing.md:B?j.spacing.lg:0},m],children:i}):null,null!=n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginBottom:B?j.spacing.lg:0},children:n}):null,l&&l.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[S.actionsRow,y],children:l.map((e,t)=>{const r=e.tone??"primary",o=Boolean(e.disabled),i=actionStyleFor(j,r,s,o),n=t===l.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})=>[S.actionButton,{minHeight:w,backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth,borderRadius:j.radius.md,..._corners.smoothCorners,paddingVertical:j.spacing.md-2,paddingHorizontal:j.spacing.lg,marginRight:n?0:j.spacing.sm,opacity:e.loading?.7:t&&!o?.85:1},x],children:e.loading?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:i.textColor}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[{color:i.textColor,fontSize:j.typography.fontSize.base,...(0,_index.fontFor)(j,"semibold"),textAlign:"center"},h],numberOfLines:1,children:e.label})},`${e.label}-${t}`)})}):null]})})};exports.Dialog=Dialog,Dialog.displayName="Dialog";const tintForVariant=(e,t)=>{const r=e.colors.background.secondary;switch(t){case"success":return{base:e.colors.success,on:e.colors.onSuccess,muted:r};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,muted:r};case"error":return{base:e.colors.error,on:e.colors.onError,muted:r};case"info":return{base:e.colors.info,on:e.colors.onInfo,muted:r};default:return{base:e.colors.primary,on:e.colors.onPrimary,muted:e.colors.primaryMuted}}},actionStyleFor=(e,t,r,o)=>{if(o)return{backgroundColor:"neutral"===t?"transparent":e.colors.surface.disabled,borderColor:"neutral"===t?e.colors.border.primary:"transparent",borderWidth:"neutral"===t?1:0,textColor:e.colors.text.disabled};switch(t){case"primary":{const t=tintForVariant(e,r);return{backgroundColor:t.base,borderColor:"transparent",borderWidth:0,textColor:t.on}}case"error":return{backgroundColor:e.colors.error,borderColor:"transparent",borderWidth:0,textColor:e.colors.onError};default:return{backgroundColor:"transparent",borderColor:e.colors.border.primary,borderWidth:1,textColor:e.colors.text.primary}}},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:"center"},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.Drawer=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Drawer=void 0;var _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"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var i,n,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:a){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?i(o,t,n):o[t]=e[t]);return o})(e,t)}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:l=!0,backdropOpacity:c=.5,haptic:u,containerStyle:d,children:_,accessibilityLabel:p,testID:f}=e,v=(0,_index.useTheme)(),h=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),b="boolean"==typeof a,m=v.components.drawer,g=m?.closeVelocityThreshold??1e3,w=m?.dragActivationOffset??10,[y,N]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window"));(0,_react.useEffect)(()=>{const e=_reactNative.Dimensions.addEventListener("change",({window:e})=>N(e));return()=>e.remove()},[]);const R="left"===n||"right"===n,x=(0,_react.useMemo)(()=>resolveSize(o,R,y),[o,R,y]),S=(0,_react.useMemo)(()=>{switch(n){case"left":case"top":return-x;case"right":case"bottom":return x}},[n,x]),k=(0,_reactNativeReanimated.useSharedValue)(r?0:S),j=(0,_reactNativeReanimated.useSharedValue)(r?0:S),[M,O]=(0,_react.useState)(r),C=(0,_reactNativeReanimated.useSharedValue)(r);(0,_react.useEffect)(()=>{M||(k.value=S,j.value=S)},[S,M,k,j]);const D=v.motion.spring.snappy,E=(0,_react.useCallback)(()=>{k.value=(0,_reactNativeReanimated.withSpring)(0,D)},[k,D]),L=(0,_react.useCallback)(()=>{k.value=(0,_reactNativeReanimated.withSpring)(S,D)},[k,S,D]),A=(0,_react.useCallback)(e=>{O(t=>t===e?t:(i?.(e),e)),C.value=e},[i,C]),T=(0,_react.useCallback)(()=>{A(!0),E()},[A,E]),V=(0,_react.useCallback)(()=>{A(!1),L()},[A,L]),q=(0,_react.useCallback)(()=>{M?V():T()},[M,T,V]);(0,_react.useImperativeHandle)(t,()=>({open:T,close:V,toggle:q}),[T,V,q]),(0,_react.useEffect)(()=>{b&&a!==M&&(a?T():V())},[a]);const P=(0,_react.useMemo)(()=>{const e=S,t=n,a=s;let r=_reactNativeGestureHandler.Gesture.Pan();return r=R?r.activeOffsetX([-w,w]).failOffsetY([-15,15]):r.activeOffsetY([-w,w]).failOffsetX([-15,15]),r.onStart(()=>{"worklet";a&&(j.value=k.value)}).onUpdate(t=>{"worklet";if(!a)return;const r=R?t.translationX:t.translationY,i=j.value+r,n=Math.min(0,e),o=Math.max(0,e);k.value=i<n?n+.25*(i-n):i>o?o+.25*(i-o):i}).onEnd(r=>{"worklet";if(!a)return;const i=R?r.velocityX:r.velocityY,n=k.value;let o=!1;o="left"===t||"top"===t?i<-g:i>g;const s=Math.abs(e),l=Math.abs(n)/s;o||l>.5?((0,_reactNativeReanimated.runOnJS)(A)(!1),k.value=(0,_reactNativeReanimated.withSpring)(e,D)):((0,_reactNativeReanimated.runOnJS)(A)(!0),k.value=(0,_reactNativeReanimated.withSpring)(0,D))})},[S,j,s,R,k,A,n,D,g,w]),F=(0,_reactNativeReanimated.useAnimatedStyle)(()=>R?{transform:[{translateX:k.value}]}:{transform:[{translateY:k.value}]}),H=(0,_reactNativeReanimated.useAnimatedStyle)(()=>({opacity:(0,_reactNativeReanimated.interpolate)(k.value,[S,0],[0,c],_reactNativeReanimated.Extrapolation.CLAMP),pointerEvents:Math.abs(k.value-S)<.5?"none":"auto"}),[S,c]),I=(0,_react.useMemo)(()=>buildStyles(v),[v]),G=(0,_react.useCallback)(()=>{if(!l)return;const e=(0,_index2.resolveHaptic)(u,"selection");e&&(0,_index2.triggerHaptic)(e),V()},[l,V,u]),W=(0,_react.useMemo)(()=>{switch(n){case"left":return{position:"absolute",top:0,bottom:0,left:0,width:x,paddingTop:h.top,paddingBottom:h.bottom,paddingLeft:h.left};case"right":return{position:"absolute",top:0,bottom:0,right:0,width:x,paddingTop:h.top,paddingBottom:h.bottom,paddingRight:h.right};case"top":return{position:"absolute",top:0,left:0,right:0,height:x,paddingTop:h.top,paddingLeft:h.left,paddingRight:h.right};case"bottom":return{position:"absolute",bottom:0,left:0,right:0,height:x,paddingBottom:h.bottom,paddingLeft:h.left,paddingRight:h.right}}},[n,x,h]),Y=(0,_react.useRef)(r);return M&&(Y.current=!0),Y.current?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_reactNative.StyleSheet.absoluteFill,pointerEvents:"box-none",testID:f,accessibilityViewIsModal:M,children:[(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[I.backdrop,{backgroundColor:v.colors.background.overlay},H],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:G,accessibilityRole:"button",accessibilityLabel:"Close drawer",disabled:!l||!M})}),(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:P,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:p??"Drawer",style:[W,{backgroundColor:v.colors.background.elevated,...v.shadows.xl},d,F],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:I.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=
|
|
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 SIZE_FALLBACK={sm:{iconSize:48,titleFontSize:"lg",descriptionFontSize:"sm",paddingVertical:"lg"},md:{iconSize:64,titleFontSize:"xl",descriptionFontSize:"base",paddingVertical:"xl"},lg:{iconSize:80,titleFontSize:"2xl",descriptionFontSize:"base",paddingVertical:"2xl"}},sizeFor=(e,t)=>{const i={...SIZE_FALLBACK[t],...e.components.emptyState?.[t]??{}};return{iconSize:i.iconSize,titleSize:e.typography.fontSize[i.titleFontSize],descriptionSize:e.typography.fontSize[i.descriptionFontSize],paddingVertical:e.spacing[i.paddingVertical]}},ActionButton=({action:e,variant:t})=>{const i=(0,_index.useTheme)(),{scale:r,pressIn:o,pressOut:s}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),n=(0,_react.useMemo)(()=>buildActionStyles(i),[i]),a="primary"===t,l=(0,_SquircleFill.useSquircle)(!0,i.radius.md),fillFor=e=>a?i.colors.primary:e?i.colors.surface.pressed:"transparent";return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:r}]},children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{(0,_hapticUtils.triggerHaptic)("selection"),e.onPress()},onPressIn:o,onPressOut:s,accessibilityRole:"button",accessibilityLabel:e.accessibilityLabel??e.label,accessibilityHint:e.accessibilityHint,testID:e.testID,onLayout:l.onLayout,android_ripple:{color:a?i.colors.primaryHover:i.colors.surface.pressed,borderless:!1},style:({pressed:e})=>[n.button,a?n.buttonPrimary:n.buttonSecondary,!e||a||l.active?null:n.buttonSecondaryPressed,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:i.radius.md,fill:fillFor(t),stroke:a?void 0:i.colors.border.primary,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:i,title:r,description:o,action:s,secondaryAction:n,size:a="md",fill:l=!1,style:c,testID:d}=e,u=(0,_index.useTheme)(),p=(0,_react.useMemo)(()=>sizeFor(u,a),[u,a]),m=(0,_react.useMemo)(()=>buildStyles(u),[u]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,accessibilityRole:"summary",testID:d,style:[m.root,{paddingVertical:p.paddingVertical},l?m.fill:null,c],children:[i?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[m.iconCircle,{width:p.iconSize,height:p.iconSize,borderRadius:p.iconSize/2,..._corners.smoothCorners}],children:i}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.title,{fontSize:p.titleSize,...(0,_index.fontFor)(u,"semibold")}],children:r}),o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[m.description,{fontSize:p.descriptionSize}],children:o}):null,s||n?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:m.actions,children:[s?(0,_jsxRuntime.jsx)(ActionButton,{action:s,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.spacing.lg,gap:e.spacing.md},fill:{flexGrow:1},iconCircle:{backgroundColor:e.colors.surface.disabled,alignItems:"center",justifyContent:"center"},title:{color:e.colors.text.primary,textAlign:"center"},description:{color:e.colors.text.secondary,textAlign:"center",maxWidth:320,lineHeight:e.typography.fontSize.base*e.typography.lineHeight.normal},actions:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,marginTop:e.spacing.xs}}),buildActionStyles=e=>_reactNative.StyleSheet.create({button:{paddingHorizontal:e.spacing.lg,paddingVertical:e.spacing.sm,minHeight:42,borderRadius:e.radius.md,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",flexDirection:"row"},buttonPrimary:{backgroundColor:e.colors.primary},buttonSecondary:{backgroundColor:"transparent",borderWidth:1,borderColor:e.colors.border.primary},buttonSecondaryPressed:{backgroundColor:e.colors.surface.pressed},buttonSquircleHost:{backgroundColor:"transparent",borderColor:"transparent",overflow:"visible"},buttonText:{fontSize:e.typography.fontSize.base,...(0,_index.fontFor)(e,"semibold")},buttonTextPrimary:{color:e.colors.onPrimary},buttonTextSecondary:{color:e.colors.text.primary}});var _default=exports.default=EmptyState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ErrorBoundary=void 0;var _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("function"==typeof WeakMap)var t=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=r?o:t){if(n.has(e))return n.get(e);n.set(e,i)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(s.get||s.set)?n(i,r,s):i[r]=e[r]);return i})(e,r)}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:n})=>{const s=(0,_index.useTheme)(),i=(0,_react.useMemo)(()=>buildStyles(s),[s]),a="undefined"!=typeof __DEV__&&__DEV__;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:i.root,testID:n,children:[(0,_jsxRuntime.jsx)(_index2.EmptyState,{title:t??DEFAULT_TITLE,description:o??DEFAULT_MESSAGE,action:{label:"Try again",onPress:r,testID:n?`${n}-retry`:void 0}}),a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.devError,testID:n?`${n}-dev-error`:void 0,children:e.message}):null]})},buildStyles=e=>_reactNative.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.primary,padding:e.spacing.lg},devError:{marginTop:e.spacing.md,color:e.colors.error,fontSize:e.typography.fontSize.sm,textAlign:"center"}});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:n}=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:n})}}exports.ErrorBoundary=ErrorBoundary;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ErrorBoundary=void 0;var _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("function"==typeof WeakMap)var t=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var n,s,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=r?o:t){if(n.has(e))return n.get(e);n.set(e,i)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(s.get||s.set)?n(i,r,s):i[r]=e[r]);return i})(e,r)}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:n})=>{const s=(0,_index.useTheme)(),i=(0,_react.useMemo)(()=>buildStyles(s),[s]),a="undefined"!=typeof __DEV__&&__DEV__;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:i.root,testID:n,children:[(0,_jsxRuntime.jsx)(_index2.EmptyState,{title:t??DEFAULT_TITLE,description:o??DEFAULT_MESSAGE,action:{label:"Try again",onPress:r,testID:n?`${n}-retry`:void 0}}),a?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:i.devError,testID:n?`${n}-dev-error`:void 0,children:e.message}):null]})},buildStyles=e=>_reactNative.StyleSheet.create({root:{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.primary,padding:e.spacing.lg},devError:{marginTop:e.spacing.md,color:e.colors.toneText.error,fontSize:e.typography.fontSize.sm,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:n}=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:n})}}exports.ErrorBoundary=ErrorBoundary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.withErrorBoundary=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.withErrorBoundary=void 0;var _ErrorBoundary=require("./ErrorBoundary.js"),_jsxRuntime=require("react/jsx-runtime");const withErrorBoundary=(r,o)=>{const e=r.displayName??r.name??"Component",Wrapped=e=>(0,_jsxRuntime.jsx)(_ErrorBoundary.ErrorBoundary,{...o,children:(0,_jsxRuntime.jsx)(r,{...e})});return Wrapped.displayName=`withErrorBoundary(${e})`,Wrapped};exports.withErrorBoundary=withErrorBoundary;
|