@webority/mobile-ui 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AccordionGroup=exports.Accordion=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AccordionGroup=exports.Accordion=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"),_defaultIcons=require("../AppIcon/defaultIcons.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const AccordionGroupContext=(0,_react.createContext)(null),useAccordionGroup=()=>(0,_react.useContext)(AccordionGroupContext),AccordionGroup=({children:e,allowMultiple:t=!1,defaultExpandedKeys:i,expandedKeys:n,onChange:r,style:a,testID:o})=>{const c=void 0!==n,[s,l]=(0,_react.useState)(i??[]),d=c?n:s,u=(0,_react.useCallback)(e=>{c||l(e),r?.(e)},[c,r]),p=(0,_react.useCallback)(e=>{let i;i=d.includes(e)?d.filter(t=>t!==e):t?[...d,e]:[e],u(i)},[d,t,u]),x=(0,_react.useCallback)(e=>d.includes(e),[d]),_=(0,_react.useMemo)(()=>({isExpanded:x,toggle:p,allowMultiple:t}),[x,p,t]);return(0,_jsxRuntime.jsx)(AccordionGroupContext.Provider,{value:_,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:a,testID:o,children:e})})};exports.AccordionGroup=AccordionGroup,AccordionGroup.displayName="AccordionGroup";const Chevron=({rotate:e,color:t})=>{const i=(0,_index.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[chevronStyles.icon,{transform:[{rotate:e}]}],accessible:!1,children:(i.icons?.chevronDown??_defaultIcons.defaultIcons.chevronDown)({size:16,color:t})})},chevronStyles=_reactNative.StyleSheet.create({icon:{width:16,height:16,alignItems:"center",justifyContent:"center"}}),Accordion=e=>{const{title:t,children:i,id:n,expanded:r,defaultExpanded:a=!1,onChange:o,icon:c,disabled:s=!1,variant:l="plain",accessibilityLabel:d,style:u,headerStyle:p,contentStyle:x,contentWrapperStyle:_,containerStyle:m,testID:g,loading:h=!1,haptic:y}=e,v=(0,_index.useTheme)(),j=(0,_react.useMemo)(()=>buildStyles(v),[v]),b=useAccordionGroup(),f=void 0!==r,[A,R]=(0,_react.useState)(a),N=b&&n?b.isExpanded(n):null,S=null!==N?N:f?!!r:A,[V,w]=(0,_react.useState)(null),C=(0,_react.useRef)((0,_index.createAnimatedValue)(S?1:0)).current,k=(0,_react.useRef)((0,_index.createAnimatedValue)(S?1:0)).current,I=(0,_react.useRef)((0,_index.createAnimatedValue)(S?1:0)).current,D=(0,_react.useRef)(S);(0,_react.useEffect)(()=>{if(D.current===S)return;D.current=S;const e=_reactNative.Animated.parallel([_reactNative.Animated.timing(C,{toValue:S?1:0,duration:v.motion.duration.normal,easing:_reactNative.Easing.bezier(...v.motion.easing.standard),useNativeDriver:!1}),_reactNative.Animated.timing(k,{toValue:S?1:0,duration:v.motion.duration.normal,easing:_reactNative.Easing.bezier(...v.motion.easing.standard),useNativeDriver:!1}),_reactNative.Animated.timing(I,{toValue:S?1:0,duration:v.motion.duration.normal,easing:_reactNative.Easing.bezier(...v.motion.easing.standard),useNativeDriver:!1})]);return e.start(),()=>e.stop()},[S,C,k,I,v.motion]);const G=(0,_react.useCallback)(e=>{const t=e.nativeEvent.layout.height;t>0&&t!==V&&w(t)},[V]),E=(0,_react.useCallback)(()=>{if(s)return;const e=(0,_hapticUtils.resolveHaptic)(y,"selection");if(e&&(0,_hapticUtils.triggerHaptic)(e),b&&n)return b.toggle(n),void o?.(!S);f||R(!S),o?.(!S)},[s,b,n,S,f,o,y]),z=I.interpolate({inputRange:[0,1],outputRange:["0deg","180deg"]}),L=null===V?void 0:C.interpolate({inputRange:[0,1],outputRange:[0,V]}),q="card"===l?[j.card,v.shadows.sm,{backgroundColor:v.colors.background.elevated,borderRadius:v.radius.md,..._corners.smoothCorners}]:null;return h?(0,_jsxRuntime.jsx)(AccordionSkeleton,{...e}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[q,u,m],testID:g,children:[(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:E,disabled:s,accessibilityRole:"button",accessibilityLabel:d??t,accessibilityState:{expanded:S,disabled:s},"aria-expanded":S,"aria-disabled":s,style:({pressed:e})=>[j.header,p,{opacity:s?.55:e?.85:1}],children:[c?(0,_jsxRuntime.jsx)(_reactNative.View,{style:j.iconLeft,children:c}):null,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.title,{color:s?v.colors.text.disabled:v.colors.text.primary,fontSize:v.typography.fontSize.base,fontWeight:v.typography.fontWeight.semibold}],numberOfLines:2,children:t}),(0,_jsxRuntime.jsx)(Chevron,{rotate:z,color:s?v.colors.text.disabled:v.colors.text.secondary})]}),null===V?(0,_jsxRuntime.jsx)(_reactNative.View,{style:j.measurer,pointerEvents:"none",onLayout:G,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.content,x],children:i})}):null,(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[j.contentWrapper,null===V?{height:0,opacity:0}:{height:L,opacity:k},_],children:(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:G,style:[j.content,x],children:i})})]})};exports.Accordion=Accordion,Accordion.displayName="Accordion";const AccordionSkeleton=({variant:e="plain",style:t})=>{const i=(0,_index.useTheme)(),n="card"===e;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[n?{paddingHorizontal:i.spacing.md,paddingVertical:i.spacing.sm,backgroundColor:i.colors.background.elevated,borderRadius:i.radius.md,..._corners.smoothCorners}:{paddingVertical:i.spacing.sm},t],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flexDirection:"row",alignItems:"center"},children:[(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"60%",height:18,style:{flex:1}}),(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:16,height:16,radius:"sm",style:{marginLeft:i.spacing.sm}})]})})};AccordionSkeleton.displayName="AccordionSkeleton",Accordion.Skeleton=AccordionSkeleton,_reactNative.LayoutAnimation;const buildStyles=e=>_reactNative.StyleSheet.create({card:{paddingHorizontal:e.spacing.md,paddingVertical:e.components.accordion?.cardPaddingVertical??4,marginVertical:e.spacing.xs},header:{flexDirection:"row",alignItems:"center",paddingVertical:e.spacing.sm},iconLeft:{marginRight:e.spacing.sm},title:{flex:1},contentWrapper:{overflow:"hidden"},content:{paddingBottom:e.spacing.sm},measurer:{position:"absolute",opacity:0,left:0,right:0,top:0,zIndex:-1}});var _default=exports.default=Accordion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AnimatePresence=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AnimatePresence=void 0;var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var a=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var r,i,d={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return d;if(r=t?n:a){if(r.has(e))return r.get(e);r.set(e,d)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?r(d,t,i):d[t]=e[t]);return d})(e,t)}const AnimatePresence=({children:e,preset:t="fade",duration:a,style:n,testID:r})=>{const i=(0,_index2.useTheme)(),d=(0,_index.useReducedMotion)();if(!(null!=e&&!1!==e))return null;const o=a??i.motion.duration.normal;let u,s;if(!d)switch(t){case"scale":u=_reactNativeReanimated.ZoomIn.duration(o),s=_reactNativeReanimated.ZoomOut.duration(o);break;case"slide-up":u=_reactNativeReanimated.FadeInUp.duration(o),s=_reactNativeReanimated.FadeOutDown.duration(o);break;case"slide-down":u=_reactNativeReanimated.FadeInDown.duration(o),s=_reactNativeReanimated.FadeOutUp.duration(o);break;default:u=_reactNativeReanimated.FadeIn.duration(o),s=_reactNativeReanimated.FadeOut.duration(o)}return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{entering:u,exiting:s,style:n,testID:r,children:e})};exports.AnimatePresence=AnimatePresence,AnimatePresence.displayName="AnimatePresence";var _default=exports.default=AnimatePresence;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AppBar=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AppBar=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_AppIcon=require("../AppIcon/AppIcon.js"),_Text=require("../Text/Text.js"),_jsxRuntime=require("react/jsx-runtime");const variantSize=(t,e)=>{switch(e){case"compact":return{height:44,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1};case"large":return{height:96,titleSize:t.typography.fontSize["2xl"],titleWeight:"bold",alignBottom:!0};default:return{height:56,titleSize:t.typography.fontSize.lg,titleWeight:"semibold",alignBottom:!1}}},ActionButton=({action:t,side:e,badgeStyle:i,haptic:n,flush:a})=>{const o=(0,_index.useTheme)(),{scale:r,pressIn:s,pressOut:l}=(0,_usePressAnimation.usePressAnimation)({enabled:!0}),c=(0,_react.useMemo)(()=>buildActionStyles(o),[o]),p=t.badge,d=void 0!==p&&0!==p,u=void 0!==t.text;return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:r}]},children:(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{onPress:()=>{const e=(0,_hapticUtils.resolveHaptic)(n,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),t.onPress()},onPressIn:s,onPressOut:l,accessibilityRole:"button",accessibilityLabel:t.accessibilityLabel??t.text,testID:t.testID,android_ripple:{color:o.colors.surface.pressed,borderless:!u},style:({pressed:t})=>[u?c.textButton:c.actionButton,a?null:"left"===e?c.actionLeft:c.actionRight,t&&!u?c.actionPressed:null,t&&u?c.textPressed:null],children:[u?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:c.actionText,numberOfLines:1,children:t.text}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:c.iconWrap,children:t.icon}),d?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[c.badge,i],pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:c.badgeText,numberOfLines:1,children:String(p)})}):null,t.dot?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t.testID?`${t.testID}-dot`:"appbar-action-dot",style:c.dot,pointerEvents:"none"}):null]})})},COLLAPSE_RANGE=60,LARGE_TITLE_SCALE_END=.71,AppBar=exports.AppBar=(0,_react.forwardRef)((t,e)=>{const{title:i,subtitle:n,titleAlignment:a="left",leftAction:o,rightActions:r,leading:s,trailing:l,onBack:c,gutter:p,titleVariant:d,titleOffset:u,height:m,divider:g,variant:h="default",transparent:x=!1,scrollY:f,style:_,containerStyle:y,titleStyle:b,subtitleStyle:j,badgeStyle:S,haptic:v,testID:B}=t,R=(0,_index.useTheme)(),A=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),N=(0,_react.useMemo)(()=>variantSize(R,h),[R,h]),C=(0,_react.useMemo)(()=>buildStyles(R),[R]),z="large"===h&&void 0!==f,w=R.components.appBar?.iconSize??24,I=R.components.appBar?.actionButtonSize??44,T=o??(c?{icon:(0,_jsxRuntime.jsx)(_AppIcon.AppIcon,{name:"arrow-left",size:w,color:R.colors.text.primary}),onPress:c,accessibilityLabel:"Back"}:void 0),W=l?void 0:r?.[r.length-1],opticalInset=t=>void 0===t?0:void 0!==t.text?R.spacing.sm:Math.max((I-w)/2,0),L=void 0===p?null:{paddingLeft:Math.max(p-opticalInset(T),0),paddingRight:Math.max(p-opticalInset(W),0)},O=void 0!==u,P=Boolean(T)||Boolean(s),V=g??!x,H=R.components.appBar?.dividerWidth??_reactNative.StyleSheet.hairlineWidth,D=R.components.appBar?.collapseTranslateDistance??-20,E=(0,_react.useMemo)(()=>{if(!f)return null;const t={inputRange:[0,60],extrapolate:"clamp"};return{titleScale:f.interpolate({...t,outputRange:[1,.71]}),titleTranslateY:f.interpolate({...t,outputRange:[0,D]}),titleTranslateX:f.interpolate({...t,outputRange:"center"===a?[0,0]:[0,8]}),subtitleOpacity:f.interpolate({inputRange:[0,30],outputRange:[1,0],extrapolate:"clamp"}),barHeight:f.interpolate({...t,outputRange:[96,56]}),borderOpacity:f.interpolate({...t,outputRange:[0,1]})}},[f,a,D]),M=z&&E?{transform:[{translateX:E.titleTranslateX},{translateY:E.titleTranslateY},{scale:E.titleScale}]}:null,k=i?d?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:M,children:(0,_jsxRuntime.jsx)(_Text.Text,{variant:d,align:"center"===a?"center":"left",accessibilityRole:"header",numberOfLines:1,style:[C.titleVariant,b],children:i})}):(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{accessibilityRole:"header",style:[C.title,{fontSize:N.titleSize,fontWeight:R.typography.fontWeight[N.titleWeight],textAlign:"center"===a?"center":"left"},M,b],numberOfLines:1,children:i}):null,q=n?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{style:[C.subtitle,{textAlign:"center"===a?"center":"left"},z&&E?{opacity:E.subtitleOpacity}:null,j],numberOfLines:1,children:n}):null,U=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.titleColumn,"center"===a?C.titleColumnCenter:null,N.alignBottom?C.titleColumnBottom:null],children:[k,q]}),Y=z?_reactNative.Animated.View:_reactNative.View,F=z&&E?{height:_reactNative.Animated.add(E.barHeight,new _reactNative.Animated.Value(A.top))}:{height:(m??N.height)+A.top};return(0,_jsxRuntime.jsxs)(Y,{ref:e,testID:B,style:[C.root,{paddingTop:A.top,backgroundColor:x?"transparent":R.colors.background.elevated},F,!z&&V?{borderBottomWidth:H,borderBottomColor:R.colors.border.primary}:null,_,y],children:[z&&E&&V?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[C.animatedBorder,{backgroundColor:R.colors.border.primary,opacity:E.borderOpacity}]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.row,N.alignBottom?C.rowAlignBottom:null,L,{flex:1}],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.sideSlot,O?C.sideSlotCompact:null],children:[T?(0,_jsxRuntime.jsx)(ActionButton,{action:T,side:"left",haptic:v,flush:O}):null,s]}),(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[C.center,"center"===a?C.centerAligned:C.centerLeft,O?{paddingLeft:P?u:0,paddingRight:0}:null],children:U}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[C.sideSlot,C.sideSlotRight,O?C.sideSlotCompact:null],children:[r?.map((t,e)=>(0,_jsxRuntime.jsx)(ActionButton,{action:t,side:"right",badgeStyle:S,haptic:v,flush:O},`appbar-right-${e}`)),l]})]})]})});AppBar.displayName="AppBar";const buildStyles=t=>_reactNative.StyleSheet.create({root:{width:"100%"},row:{flexDirection:"row",alignItems:"center",paddingHorizontal:t.spacing.xs},rowAlignBottom:{alignItems:"flex-end",paddingBottom:t.spacing.sm},sideSlot:{flexDirection:"row",alignItems:"center",minWidth:t.components.appBar?.sideSlotMinWidth??48},sideSlotRight:{justifyContent:"flex-end"},sideSlotCompact:{minWidth:0},center:{flex:1,paddingHorizontal:t.spacing.xs},centerAligned:{alignItems:"center"},centerLeft:{alignItems:"flex-start"},titleColumn:{flexDirection:"column"},titleColumnCenter:{alignItems:"center"},titleColumnBottom:{justifyContent:"flex-end"},title:{color:t.colors.text.primary},titleVariant:{includeFontPadding:!1,textAlignVertical:"center"},subtitle:{marginTop:t.components.appBar?.subtitleMarginTop??2,color:t.colors.text.tertiary,fontSize:t.typography.fontSize.sm,fontWeight:t.typography.fontWeight.normal},animatedBorder:{position:"absolute",left:0,right:0,bottom:0,height:_reactNative.StyleSheet.hairlineWidth}}),buildActionStyles=t=>_reactNative.StyleSheet.create({actionButton:{width:t.components.appBar?.actionButtonSize??44,height:t.components.appBar?.actionButtonSize??44,borderRadius:t.radius.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center"},actionLeft:{marginRight:t.spacing.xs},actionRight:{marginLeft:t.spacing.xs},actionPressed:{backgroundColor:t.colors.surface.pressed},textButton:{minWidth:44,minHeight:44,paddingHorizontal:t.spacing.sm,alignItems:"center",justifyContent:"center"},textPressed:{opacity:.6},actionText:{color:t.colors.text.link,fontSize:t.typography.fontSize.base,...(0,_index.fontFor)(t,"semibold")},dot:{position:"absolute",top:t.components.appBar?.dotOffset??10,right:t.components.appBar?.dotOffset??10,width:t.components.appBar?.dotSize??8,height:t.components.appBar?.dotSize??8,borderRadius:t.radius.full,backgroundColor:t.colors.error},iconWrap:{alignItems:"center",justifyContent:"center"},badge:{position:"absolute",top:t.components.appBar?.badgeOffset??4,right:t.components.appBar?.badgeOffset??4,minWidth:t.components.appBar?.badgeMinWidth??16,height:t.components.appBar?.badgeHeight??16,paddingHorizontal:t.components.appBar?.badgePaddingHorizontal??4,borderRadius:t.radius.full,..._corners.smoothCorners,backgroundColor:t.colors.error,alignItems:"center",justifyContent:"center"},badgeText:{color:t.colors.onError,fontSize:t.components.appBar?.badgeFontSize??10,fontWeight:t.typography.fontWeight.semibold,lineHeight:t.components.appBar?.badgeLineHeight??12}});var _default=exports.default=AppBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AppIcon=exports.APP_ICON_SIZES=void 0,Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _glyphsG.CURATED_ICON_NAMES}}),exports.ICONSAX_SUFFIX=void 0,Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _catalogG.ICON_NAMES}}),exports.resolveGlyph=exports.default=exports.buildIconXml=void 0;var _mobileCore=require("@webority/mobile-core"),_react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AppIcon=exports.APP_ICON_SIZES=void 0,Object.defineProperty(exports,"CURATED_ICON_NAMES",{enumerable:!0,get:function(){return _glyphsG.CURATED_ICON_NAMES}}),exports.ICONSAX_SUFFIX=void 0,Object.defineProperty(exports,"ICON_NAMES",{enumerable:!0,get:function(){return _catalogG.ICON_NAMES}}),exports.resolveGlyph=exports.default=exports.buildIconXml=void 0;var _mobileCore=require("@webority/mobile-core"),_react=require("react"),_reactNativeSvg=require("react-native-svg"),_index=require("../../theme/index.js"),_catalogG=require("./catalog.g.js"),_glyphsG=require("./glyphs.g.js"),_jsxRuntime=require("react/jsx-runtime");const ICONSAX_SUFFIX=exports.ICONSAX_SUFFIX="-iconsax",APP_ICON_SIZES=exports.APP_ICON_SIZES={xs:14,sm:18,md:22,lg:28,xl:36},tryRequire=e=>{try{return e()}catch{return null}};let curatedVariants=null;const loadCuratedVariants=()=>(curatedVariants||(curatedVariants=tryRequire(()=>require("./variants.g").VARIANT_GLYPHS)??{}),curatedVariants),shardCache=new Map,loadShard=(e,r)=>{const t=r[0]?.toLowerCase()??"",a=`${e}:${t}`,o=shardCache.get(a);if(void 0!==o)return o;const l=_catalogG.CATALOG_LOADERS[e]?.[t],n=l?tryRequire(l):null;return shardCache.set(a,n),n},warned=new Set,resolveCatalogue=(e,r)=>{const t=loadShard(r,e)?.[e];return t||("linear"===r?null:loadShard("linear",e)?.[e]??null)},resolveGlyph=(e,r="linear")=>{if(e.endsWith(ICONSAX_SUFFIX)){const t=e.slice(0,-ICONSAX_SUFFIX.length);return t in _glyphsG.GLYPHS?resolveCatalogue(t,r):null}const t=_glyphsG.GLYPHS[e];return t?"linear"===r?t:loadCuratedVariants()[r]?.[e]??t:resolveCatalogue(e,r)};exports.resolveGlyph=resolveGlyph;const buildIconXml=(e,r,t)=>`<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 24 24" fill="none">${e.replace(/currentColor/g,t)}</svg>`;exports.buildIconXml=buildIconXml;const AppIcon=({name:e,size:r="md",color:t,variant:a="linear",style:o,accessibilityLabel:l,testID:n})=>{const s=(0,_index.useTheme)(),i="number"==typeof r?r:APP_ICON_SIZES[r],c=t??s.colors.text.primary,u=resolveGlyph(e,a),p=(0,_react.useMemo)(()=>u?buildIconXml(u,i,c):null,[u,i,c]);return p?(0,_jsxRuntime.jsx)(_reactNativeSvg.SvgXml,{xml:p,width:i,height:i,style:o,accessible:null!=l,accessibilityLabel:l,accessibilityRole:null!=l?"image":void 0,testID:n}):(__DEV__&&!warned.has(e)&&(warned.add(e),_mobileCore.Logger.warn(`[AppIcon] Unknown icon "${e}". Names come from webority-ui's icon map and the Iconsax catalogue; run scripts/sync-icons.mjs after adding one there.`)),null)};exports.AppIcon=AppIcon,AppIcon.displayName="AppIcon";var _default=exports.default=AppIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AsyncBlock=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.AsyncBlock=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_index2=require("../AppIcon/index.js"),_index3=require("../EmptyState/index.js"),_index4=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");const OFFLINE_HINT="Check your connection, then try again.",AsyncBlock=({loading:e=!1,error:t,errorVariant:i="default",empty:n=!1,onRetry:r,skeleton:s,emptyTitle:o="Nothing here yet",emptyDescription:c,emptyIcon:l,errorTitle:a="That didn't load",offlineTitle:x="You're offline",retryLabel:d="Try again",children:u,style:_,testID:y})=>{const j=(0,_index.useTheme)();if(e)return(0,_jsxRuntime.jsx)(_reactNative.View,{style:_,testID:y,children:s??(0,_jsxRuntime.jsx)(_reactNative.View,{style:{paddingVertical:j.spacing["2xl"],alignItems:"center"},children:(0,_jsxRuntime.jsx)(_index4.Spinner,{})})});if(t){const e="offline"===i,n="string"==typeof t?t:e?OFFLINE_HINT:void 0;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:_,testID:y,children:[(0,_jsxRuntime.jsx)(_index3.EmptyState,{icon:e?(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"cloud-cross",size:"xl",color:j.colors.text.tertiary,testID:"async-block-offline-icon"}):void 0,title:e?x:a,description:n,action:r?{label:d,onPress:r}:void 0}),"string"==typeof t?null:t]})}return n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:_,testID:y,children:(0,_jsxRuntime.jsx)(_index3.EmptyState,{icon:l,title:o,description:c})}):(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:u})};exports.AsyncBlock=AsyncBlock;var _default=exports.default=AsyncBlock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Autocomplete=Autocomplete,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index4=require("../Input/index.js"),_index5=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,o
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Autocomplete=Autocomplete,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_index=require("../../hooks/index.js"),_index2=require("../../theme/index.js"),_index3=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_index4=require("../Input/index.js"),_index5=require("../Spinner/index.js"),_jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(o,t,a):o[t]=e[t]);return o})(e,t)}const defaultGetLabel=e=>"string"==typeof e?e:String(e);function Autocomplete(e){const{options:t,value:r,defaultValue:i,onChangeText:n,onSelect:a,getOptionLabel:o,getOptionKey:s,filter:l,minChars:c=1,maxResults:d=8,emptyText:u="No matches",loading:p=!1,filterMode:x="client",loadingText:_="Searching…",placeholder:m,label:g,error:h,helperText:f,disabled:y=!1,size:b="md",variant:j,haptic:v,style:S,listStyle:R,optionTextStyle:T,testID:w}=e,C=(0,_index2.useTheme)(),N=(0,_react.useMemo)(()=>buildStyles(C),[C]),[z,q]=(0,_index.useControllableState)({value:r,defaultValue:i??"",onChange:n}),[k,P]=(0,_react.useState)(!1),[L,M]=(0,_react.useState)(0),O=(0,_react.useRef)(null),V=(0,_react.useCallback)(e=>o?o(e):defaultGetLabel(e),[o]),W=(0,_react.useMemo)(()=>{if("none"===x)return t.slice(0,d);const e=z.trim();if(e.length<c)return[];const r=e.toLowerCase(),i=l?t=>l(t,e):e=>V(e).toLowerCase().includes(r);return t.filter(i).slice(0,d)},[t,z,c,d,l,V,x]),A=k&&(p||z.trim().length>=c),I=(0,_react.useCallback)(e=>{const t=(0,_index3.resolveHaptic)(v,"selection");t&&(0,_index3.triggerHaptic)(t),O.current&&clearTimeout(O.current),q(V(e)),P(!1),_reactNative.Keyboard.dismiss(),a(e)},[v,q,V,a]);_react.default.useEffect(()=>()=>{O.current&&clearTimeout(O.current)},[]);const H=(0,_react.useCallback)(e=>{M(e.nativeEvent.layout.height)},[]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[N.container,S],testID:w,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:H,children:(0,_jsxRuntime.jsx)(_index4.Input,{value:z,onChangeText:q,onFocus:()=>{O.current&&clearTimeout(O.current),P(!0)},onBlur:()=>{O.current=setTimeout(()=>P(!1),120)},placeholder:m,label:g,error:h,helperText:f,editable:!y,accessibilityState:{disabled:y},"aria-disabled":y,size:b,variant:j,autoCorrect:!1,autoCapitalize:"none"})}),A?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[N.list,{top:L,backgroundColor:C.colors.background.elevated,borderColor:C.colors.border.primary,borderRadius:C.radius.md,..._corners.smoothCorners,...C.shadows.lg},R],children:p?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:N.loadingRow,children:[(0,_jsxRuntime.jsx)(_index5.Spinner,{size:"sm"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[N.loadingText,{color:C.colors.text.secondary,fontSize:C.typography.fontSize.sm}],children:_})]}):0===W.length?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[N.empty,{color:C.colors.text.tertiary,fontSize:C.typography.fontSize.sm}],children:u}):(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{keyboardShouldPersistTaps:"handled",style:N.scroll,children:W.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>I(e),android_ripple:{color:C.colors.surface.pressed},style:({pressed:e})=>[N.option,{paddingHorizontal:C.spacing.md,paddingVertical:C.spacing.sm,backgroundColor:e?C.colors.surface.pressed:"transparent"}],accessibilityRole:"button",accessibilityLabel:V(e),accessibilityState:{selected:V(e)===z},"aria-selected":V(e)===z,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[N.optionText,{color:C.colors.text.primary,fontSize:C.typography.fontSize.base},T],numberOfLines:1,children:V(e)})},s?s(e):`${V(e)}-${t}`))})}):null]})}Autocomplete.displayName="Autocomplete";const buildStyles=e=>_reactNative.StyleSheet.create({container:{width:"100%",position:"relative",zIndex:10},list:{position:"absolute",left:0,right:0,borderWidth:_reactNative.StyleSheet.hairlineWidth,overflow:"hidden",zIndex:20,maxHeight:240},scroll:{maxHeight:240},option:{width:"100%"},optionText:{includeFontPadding:!1},empty:{padding:e.spacing.md,textAlign:"center",includeFontPadding:!1},loadingRow:{flexDirection:"row",alignItems:"center",gap:e.spacing.sm,padding:e.spacing.md},loadingText:{includeFontPadding:!1}});var _default=exports.default=Autocomplete;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.avatarToneColors=exports.AvatarGroup=exports.Avatar=void 0;var _expoImage=require("expo-image"),_react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.avatarToneColors=exports.AvatarGroup=exports.Avatar=void 0;var _expoImage=require("expo-image"),_react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_index2=require("../AppIcon/index.js"),_index3=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const SOFT_FILL_OPACITY=.14,avatarToneColors=(e,r)=>{const soft=(e,r)=>(0,_color.tintOf)(e,.14,r);switch(r){case"primary":return{background:soft(e.colors.primary,e.colors.primaryMuted),color:e.colors.toneText.primary};case"secondary":return{background:e.colors.secondary,color:e.colors.onSecondary};case"success":return{background:soft(e.colors.success,e.colors.background.secondary),color:e.colors.toneText.success};case"warning":return{background:soft(e.colors.warning,e.colors.background.secondary),color:e.colors.toneText.warning};case"error":return{background:soft(e.colors.error,e.colors.background.secondary),color:e.colors.toneText.error};case"info":return{background:soft(e.colors.info,e.colors.background.secondary),color:e.colors.toneText.info};default:return{background:e.colors.background.tertiary,color:e.colors.text.primary}}};exports.avatarToneColors=avatarToneColors;const sizeMap={xs:24,sm:32,md:48,lg:64,xl:80},resolveSize=e=>"number"==typeof e?e:sizeMap[e],resolveRadius=(e,r)=>{switch(e){case"circle":return r/2;case"rounded":return Math.max(6,Math.round(.22*r));default:return 0}},initialsFromName=e=>{if(!e)return"";const r=e.trim().split(/\s+/u).filter(Boolean);return 0===r.length?"":1===r.length?r[0].charAt(0).toUpperCase():(r[0].charAt(0)+r[1].charAt(0)).toUpperCase()},hashColor=(e,r)=>{if(!e)return r[0];let t=0;for(let r=0;r<e.length;r+=1)t=(t<<5)-t+e.charCodeAt(r),t|=0;return r[Math.abs(t)%r.length]},RING_WIDTH=1.5,isRingStatus=e=>"verified"===e||"pending"===e,statusColor=(e,r)=>{switch(r){case"online":case"verified":return e.colors.success;case"busy":return e.colors.error;case"away":case"pending":return e.colors.warning;default:return e.colors.text.tertiary}},Avatar=exports.Avatar=(0,_react.forwardRef)((e,r)=>{const{source:t,ImageComponent:o,name:s,size:a="md",shape:i="circle",status:n=null,statusPosition:c="bottomRight",tone:l,backgroundColor:u,color:d,fontSize:h,loading:m=!1,accessibilityLabel:g,style:b,textStyle:v,testID:p}=e,y=(0,_index.useTheme)(),x=y.components.avatar,[_,f]=(0,_react.useState)(!1),R=(0,_react.useMemo)(()=>resolveSize(a),[a]),C=(0,_react.useMemo)(()=>resolveRadius(i,R),[i,R]),j=x?.borderWidth??0,A=x?.borderColor??y.colors.border.primary,S=x?.statusBorderWidth??2,w=x?.statusBorderColor??y.colors.background.elevated,I=(0,_react.useMemo)(()=>initialsFromName(s),[s]),k=(0,_react.useMemo)(()=>l?avatarToneColors(y,l):null,[y,l]),M=(0,_react.useMemo)(()=>u||(k?.background??hashColor(s??"",y.colors.avatarPalette)),[u,k,s,y.colors.avatarPalette]),N=d??k?.color??y.colors.onPrimary,T=!!t&&!_,W=x?.fontSizeRatio??.4,G=h??x?.fontSize??Math.max(10,Math.round(R*W)),z=Math.max(8,Math.round(.25*R)),E=isRingStatus(n),L=x?.ringWidth??1.5,F=R-2*(E?L+(x?.ringGap??L):0),V=E?resolveRadius(i,F):C,D=E?statusColor(y,n):"transparent",$=Math.max(12,Math.round(.32*R)),q=Math.max(10,$-4),O=T?y.colors.background.tertiary:M,P=p??"avatar",B=s?`${s}'s avatar`:"Avatar",U=g??("verified"===n?`${B}, verified`:"pending"===n?`${B}, pending verification`:B),H=(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:r,style:[styles.root,{width:R,height:R,borderRadius:C,..._corners.smoothCorners,borderWidth:E?0:j,borderColor:A,backgroundColor:E?"transparent":O},b],accessible:!0,accessibilityRole:"image",accessibilityLabel:U,testID:p,children:[E?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.ring,{borderRadius:C,..._corners.smoothCorners,borderWidth:L,borderColor:D}],accessible:!1,pointerEvents:"none",testID:`${P}-ring`}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.picture,{width:F,height:F,borderRadius:V,..._corners.smoothCorners,borderWidth:E?j:0,borderColor:A,backgroundColor:E?O:"transparent"}],children:T?(()=>{const e={width:F,height:F,borderRadius:V,..._corners.smoothCorners},onError=()=>f(!0);return o?(0,_jsxRuntime.jsx)(o,{source:t,onError:onError,style:e,contentFit:"cover",resizeMode:"cover",accessibilityIgnoresInvertColors:!0}):(0,_jsxRuntime.jsx)(_expoImage.Image,{source:t,onError:onError,style:e,contentFit:"cover",accessibilityIgnoresInvertColors:!0})})():(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.initials,{color:N,fontSize:G,fontWeight:y.typography.fontWeight[x?.fontWeight??"semibold"]},v],numberOfLines:1,allowFontScaling:!1,children:I??" "})}),"verified"===n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.status,"topRight"===c?styles.badgeTopRight:styles.badgeBottomRight,{width:$,height:$,borderRadius:$/2,..._corners.smoothCorners,backgroundColor:w}],accessible:!1,pointerEvents:"none",testID:`${P}-badge`,children:(0,_jsxRuntime.jsx)(_index2.AppIcon,{name:"verify",variant:"bold",size:q,color:D})}):null,n&&!E?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.status,"topRight"===c?styles.statusTopRight:styles.statusBottomRight,{width:z,height:z,borderRadius:z/2,..._corners.smoothCorners,backgroundColor:statusColor(y,n),borderWidth:S,borderColor:w}],accessible:!1,pointerEvents:"none"}):null]});return m?(0,_jsxRuntime.jsx)(AvatarSkeleton,{...e}):H});Avatar.displayName="Avatar";const AvatarSkeleton=({size:e="md",shape:r="circle",style:t})=>{const o=resolveSize(e),s="circle"===r?"circle":"rounded"===r?"rounded":"rect";return(0,_jsxRuntime.jsx)(_index3.Skeleton,{shape:s,width:o,height:o,style:t})};AvatarSkeleton.displayName="AvatarSkeleton",Avatar.Skeleton=AvatarSkeleton;const styles=_reactNative.StyleSheet.create({root:{alignItems:"center",justifyContent:"center",overflow:"visible",position:"relative"},initials:{textAlign:"center"},ring:{position:"absolute",top:0,right:0,bottom:0,left:0},picture:{alignItems:"center",justifyContent:"center",overflow:"hidden"},status:{position:"absolute"},badgeTopRight:{top:-2,right:-2,alignItems:"center",justifyContent:"center"},badgeBottomRight:{bottom:-2,right:-2,alignItems:"center",justifyContent:"center"},statusTopRight:{top:0,right:0},statusBottomRight:{bottom:0,right:0}}),SPACING_OFFSET={tight:-16,normal:-12,loose:-8},STAGGER_MS=50,ENTRANCE_DURATION_MS=220,AvatarGroupItem=({delay:e,marginLeft:r,borderColor:t,borderWidth:o,children:s})=>{const a=(0,_react.useRef)((0,_index.createAnimatedValue)(0)).current;return(0,_react.useEffect)(()=>{const r=_reactNative.Animated.timing(a,{toValue:1,duration:220,delay:e,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0});return r.start(),()=>r.stop()},[e,a]),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[groupStyles.item,{marginLeft:r,borderColor:t,borderWidth:o,opacity:a}],children:s})},AvatarGroup=e=>{const{children:r,max:t=4,size:o="md",spacing:s="normal",overflowVariant:a="count",accessibilityLabel:i,style:n,testID:c}=e,l=(0,_index.useTheme)(),u=(0,_react.useMemo)(()=>_react.Children.toArray(r).filter(e=>(0,_react.isValidElement)(e)),[r]),d=u.length,h=u.slice(0,t),m=Math.max(0,d-t),g=m>0,b=SPACING_OFFSET[s],v=l.colors.background.elevated,p=i??`Group of ${d} ${1===d?"person":"people"}`,y=(0,_react.useMemo)(()=>resolveSize(o),[o]),x=Math.max(10,Math.round(.34*y));return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[groupStyles.row,n],accessible:!0,accessibilityLabel:p,accessibilityRole:"summary",testID:c,children:[h.map((e,r)=>{const t=e.key??`avatar-${r}`,s=(0,_react.cloneElement)(e,{size:o});return(0,_jsxRuntime.jsx)(AvatarGroupItem,{delay:50*r,marginLeft:0===r?0:b,borderColor:v,borderWidth:1.5,children:s},t)}),g?(0,_jsxRuntime.jsx)(AvatarGroupItem,{delay:50*h.length,marginLeft:0===h.length?0:b,borderColor:v,borderWidth:1.5,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[groupStyles.overflow,{width:y,height:y,borderRadius:y/2,..._corners.smoothCorners,backgroundColor:l.colors.surface.disabled}],accessible:!0,accessibilityRole:"text",accessibilityLabel:"count"===a?`${m} more`:"More avatars",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:l.colors.text.secondary,fontSize:x,fontWeight:l.typography.fontWeight.semibold},numberOfLines:1,allowFontScaling:!1,children:"count"===a?`+${m}`:"+"})})},"avatar-overflow"):null]})};exports.AvatarGroup=AvatarGroup;const groupStyles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"},item:{borderRadius:9999,..._corners.smoothCorners},overflow:{alignItems:"center",justifyContent:"center"}}),AvatarWithGroup=Avatar;AvatarWithGroup.Group=AvatarGroup;var _default=exports.default=AvatarWithGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Badge=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Badge=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const toneFor=(e,t)=>{switch(t){case"primary":return{background:e.colors.primary,text:e.colors.onPrimary};case"success":return{background:e.colors.success,text:e.colors.onSuccess};case"warning":return{background:e.colors.warning,text:e.colors.onWarning};case"info":return{background:e.colors.info,text:e.colors.onInfo};case"neutral":return{background:e.colors.background.tertiary,text:e.colors.text.primary};default:return{background:e.colors.error,text:e.colors.onError}}},sizeMap={sm:{fontSize:10,minWidth:16,height:16,paddingH:5,dot:8},md:{fontSize:11,minWidth:20,height:20,paddingH:6,dot:10}},anchorPosition=(e,t)=>{const i=-t;switch(e){case"topLeft":return{top:i,left:i};case"bottomRight":return{bottom:i,right:i};case"bottomLeft":return{bottom:i,left:i};default:return{top:i,right:i}}},formatValue=(e,t)=>{if(null==e)return null;if("number"==typeof e)return e<=0?null:e>t?`${t}+`:String(e);const i=String(e);return 0===i.length?null:i},Badge=exports.Badge=(0,_react.forwardRef)((e,t)=>{const{value:i,max:r=99,variant:n="standard",tone:o="error",size:a="sm",invisible:s=!1,loading:d=!1,children:l,anchor:c="topRight",pulse:u=!1,accessibilityLabel:g,style:h,badgeStyle:m,textStyle:x,testID:p}=e,f=(0,_index.useTheme)(),b=(0,_react.useMemo)(()=>toneFor(f,o),[f,o]),_=f.components.badge?.[a],v={fontSize:_?.fontSize??sizeMap[a].fontSize,minWidth:_?.minWidth??sizeMap[a].minWidth,height:_?.height??sizeMap[a].height,paddingH:_?.paddingHorizontal??sizeMap[a].paddingH,dot:_?.dotSize??sizeMap[a].dot},y=f.components.badge?.borderWidth??1.5,S=f.components.badge?.anchorOffset??4,j="dot"===n?null:formatValue(i,r),z=!s&&("dot"===n||null!==j),k=(0,_react.useRef)((0,_index.createAnimatedValue)(1)).current;(0,_react.useEffect)(()=>{if(!u||!z)return void(0,_index.setNativeValue)(k,1);const e=_reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(k,{toValue:1.15,duration:f.motion.duration.slow,easing:_reactNative.Easing.bezier(...f.motion.easing.standard),useNativeDriver:!0}),_reactNative.Animated.timing(k,{toValue:1,duration:f.motion.duration.slow,easing:_reactNative.Easing.bezier(...f.motion.easing.standard),useNativeDriver:!0})]));return e.start(),()=>{e.stop()}},[u,z,k,f]);const w="dot"===n,N=w?"image":"text",R=g??(w?"Notification indicator":j?`${j} unread`:void 0),B=z?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[styles.badge,w?{width:v.dot,height:v.dot,borderRadius:v.dot/2,..._corners.smoothCorners,paddingHorizontal:0}:{minWidth:v.minWidth,minHeight:v.height,borderRadius:f.radius.full,..._corners.smoothCorners,paddingHorizontal:v.paddingH},{backgroundColor:b.background,transform:[{scale:k}]},l?{position:"absolute",borderWidth:y,borderColor:f.colors.background.elevated,...anchorPosition(c,S)}:null,m],accessible:!0,accessibilityRole:N,accessibilityLabel:R,children:w||null===j?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.text,{color:b.text,fontSize:v.fontSize,...(0,_index.fontFor)(f,"bold")},x],numberOfLines:1,maxFontSizeMultiplier:f.maxFontSizeMultiplier,children:j??" "})}):null,W=l?(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[styles.wrapper,h],testID:p,children:[l,B]}):(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,style:h,testID:p,children:B});return d?(0,_jsxRuntime.jsx)(BadgeSkeleton,{...e}):W});Badge.displayName="Badge";const BadgeSkeleton=({variant:e="standard",size:t="md",children:i,anchor:r,style:n,badgeStyle:o})=>{const a=sizeMap[t];if("dot"===e)return(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:a.dot,height:a.dot,style:[o,n]});const s=a.height/2;if(void 0!==i){const e="topLeft"===r?{top:-a.height/2,left:-a.height/2}:"bottomRight"===r?{bottom:-a.height/2,right:-a.height/2}:"bottomLeft"===r?{bottom:-a.height/2,left:-a.height/2}:{top:-a.height/2,right:-a.height/2};return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.wrapper,n],children:[i,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{position:"absolute"},e],children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:a.minWidth+a.paddingH,height:a.height,radius:s,style:o})})]})}return(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:a.minWidth+a.paddingH,height:a.height,radius:s,style:[o,n]})};BadgeSkeleton.displayName="BadgeSkeleton",Badge.Skeleton=BadgeSkeleton;const styles=_reactNative.StyleSheet.create({wrapper:{position:"relative",alignSelf:"flex-start"},badge:{alignItems:"center",justifyContent:"center",flexDirection:"row"},text:{textAlign:"center",includeFontPadding:!1}});var _default=exports.default=Badge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Banner=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Banner=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"),_index2=require("../Skeleton/index.js"),_jsxRuntime=require("react/jsx-runtime");const Banner=exports.Banner=(0,_react.forwardRef)((e,t)=>{const{title:n,message:r,variant:i="info",icon:o,actions:s,dismissible:a=!1,onDismiss:c,haptic:l,visible:d=!0,animateMount:u=!0,loading:m=!1,accessibilityRole:p="alert",accessibilityLabel:g,style:x,containerStyle:h,iconCircleStyle:y,tintBarStyle:_,closeButtonStyle:b,actionButtonStyle:f,testID:j}=e,R=(0,_index.useTheme)(),v=(0,_react.useMemo)(()=>buildStyles(R),[R]),w=(0,_react.useMemo)(()=>tintFor(R,i),[R,i]),S=(0,_react.useRef)((0,_index.createAnimatedValue)(u&&d?-20:0)).current,B=(0,_react.useRef)((0,_index.createAnimatedValue)(u&&d?0:d?1:0)).current,[N,k]=(0,_react.useState)(d),C=(0,_react.useRef)(!0);if((0,_react.useEffect)(()=>{if(C.current&&(C.current=!1,!u))return;let e;return d?(k(!0),e=_reactNative.Animated.parallel([_reactNative.Animated.timing(S,{toValue:0,duration:R.motion.duration.normal,useNativeDriver:!0}),_reactNative.Animated.timing(B,{toValue:1,duration:R.motion.duration.normal,useNativeDriver:!0})]),e.start()):N&&(e=_reactNative.Animated.parallel([_reactNative.Animated.timing(S,{toValue:-20,duration:R.motion.duration.fast,useNativeDriver:!0}),_reactNative.Animated.timing(B,{toValue:0,duration:R.motion.duration.fast,useNativeDriver:!0})]),e.start(()=>{k(!1)})),()=>e?.stop()},[d]),!N)return null;const V=n??" ",T="string"==typeof r?r??" ":"",z="alert"===p?"error"===i?"assertive":"polite":"none",H=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{ref:t,accessibilityRole:p,accessibilityLiveRegion:z,accessibilityLabel:g,testID:j,style:[v.container,{backgroundColor:R.colors.background.secondary,borderRadius:R.radius.md,..._corners.smoothCorners,padding:R.spacing.md,opacity:B,transform:[{translateY:S}]},x,h],children:[(R.components.banner?.tintBarWidth??0)>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[v.tintBar,{backgroundColor:w.bar},_]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:v.row,children:[!1===o?null:o?(0,_jsxRuntime.jsx)(_reactNative.View,{style:v.iconWrap,children:o}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[v.iconCircle,{backgroundColor:w.bar+"22"},y],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[v.iconGlyph,{color:w.ink}],accessible:!1,children:w.glyph})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:v.textBlock,children:[n||m?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:R.colors.text.primary,fontSize:R.typography.fontSize.base,...(0,_index.fontFor)(R,"semibold"),lineHeight:20},numberOfLines:2,children:V}):null,"string"==typeof r||m?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:R.colors.text.secondary,fontSize:R.typography.fontSize.sm,...(0,_index.fontFor)(R,"normal"),lineHeight:18,marginTop:n?2:0},children:T||" "}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginTop:n?2:0},children:r})]}),a?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:"Dismiss banner",onPress:()=>{const e=(0,_hapticUtils.resolveHaptic)(l,"selection");e&&(0,_hapticUtils.triggerHaptic)(e),c?.()},hitSlop:8,style:({pressed:e})=>[v.closeBtn,{backgroundColor:e?R.colors.surface.pressed:"transparent"},b],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:R.colors.text.secondary,fontSize:R.components.banner?.closeGlyphFontSize??18,fontWeight:R.typography.fontWeight.bold,lineHeight:18},accessible:!1,children:"×"})}):null]}),s&&s.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:v.actionsRow,children:s.map((e,t)=>{const n=e.tone??"primary",r=e.variant??"ghost",i="danger"===n?R.colors.error:"neutral"===n?R.colors.text.secondary:w.glyphColor,o="danger"===n?R.colors.toneText.error:"neutral"===n?R.colors.text.secondary:w.ink,s="danger"===n?R.colors.onError:"neutral"===n?R.colors.text.inverse:w.on,a="solid"===r;return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:e.label,onPress:()=>{const t=(0,_hapticUtils.resolveHaptic)(l,"selection");t&&(0,_hapticUtils.triggerHaptic)(t),e.onPress()},style:({pressed:t})=>[v.actionBtn,"md"===e.size&&v.actionBtnMd,"outline"===r&&{borderWidth:1,borderColor:o},{backgroundColor:a?i:t?R.colors.surface.pressed:"transparent",opacity:a&&t?.85:1},f],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:{color:a?s:o,fontSize:R.typography.fontSize.sm,textAlign:"center",...(0,_index.fontFor)(R,"semibold")},children:e.label})},`${e.label}-${t}`)})}):null]});return m?(0,_jsxRuntime.jsx)(BannerSkeleton,{...e}):H});Banner.displayName="Banner";const BannerSkeleton=({title:e,actions:t,icon:n,containerStyle:r,style:i})=>{const o=(0,_index.useTheme)(),s=!1!==n;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[{flexDirection:"row",alignItems:"flex-start",backgroundColor:o.colors.background.elevated,borderRadius:o.radius.md,..._corners.smoothCorners,padding:o.spacing.md,borderWidth:1,borderColor:o.colors.border.primary},r,i],accessibilityRole:"progressbar",accessibilityState:{busy:!0},"aria-busy":!0,children:[s?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{marginRight:o.spacing.sm},children:(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"circle",width:32,height:32})}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{flex:1},children:[void 0!==e?(0,_jsxRuntime.jsx)(_index2.Skeleton,{shape:"text",width:"55%",height:16,style:{marginBottom:o.spacing.xs}}):null,(0,_jsxRuntime.jsx)(_index2.SkeletonText,{lines:2,fontSize:13,lastLineWidth:"70%"}),t&&t.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flexDirection:"row",marginTop:o.spacing.sm},children:t.map((e,t)=>(0,_jsxRuntime.jsx)(_index2.Skeleton,{width:72,height:28,shape:"rounded",style:{marginRight:o.spacing.sm}},`sk-banner-action-${t}`))}):null]})]})};BannerSkeleton.displayName="BannerSkeleton",Banner.Skeleton=BannerSkeleton;const tintFor=(e,t)=>{switch(t){case"success":return{bar:e.colors.success,glyphColor:e.colors.success,ink:e.colors.toneText.success,on:e.colors.onSuccess,glyph:"✓"};case"warning":return{bar:e.colors.warning,glyphColor:e.colors.warning,ink:e.colors.toneText.warning,on:e.colors.onWarning,glyph:"⚠"};case"error":return{bar:e.colors.error,glyphColor:e.colors.error,ink:e.colors.toneText.error,on:e.colors.onError,glyph:"✗"};case"neutral":return{bar:e.colors.text.tertiary,glyphColor:e.colors.text.secondary,ink:e.colors.text.secondary,on:e.colors.text.inverse,glyph:"i"};default:return{bar:e.colors.primary,glyphColor:e.colors.primary,ink:e.colors.toneText.primary,on:e.colors.onPrimary,glyph:"i"}}},buildStyles=e=>{const t=e.components.banner?.iconCircleSize??28,n=e.components.banner?.closeButtonSize??28;return _reactNative.StyleSheet.create({container:{overflow:"hidden",paddingLeft:e.components.banner?.containerPaddingLeft??e.spacing.md},tintBar:{position:"absolute",left:0,top:0,bottom:0,width:e.components.banner?.tintBarWidth??0},row:{flexDirection:"row",alignItems:"flex-start"},iconWrap:{marginRight:e.components.banner?.iconGap??e.spacing.sm},iconCircle:{width:t,height:t,borderRadius:e.components.banner?.iconCircleRadius??t/2,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",marginRight:e.components.banner?.iconGap??e.spacing.sm},iconGlyph:{fontSize:e.components.banner?.iconGlyphFontSize??15,fontWeight:"700",lineHeight:e.components.banner?.iconGlyphLineHeight??17},textBlock:{flex:1,paddingRight:e.components.banner?.textBlockPaddingRight??e.spacing.xs},closeBtn:{width:n,height:n,borderRadius:e.components.banner?.closeButtonRadius??n/2,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",marginLeft:e.components.banner?.closeButtonMarginLeft??e.spacing.xxs??4},actionsRow:{flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",marginTop:e.components.banner?.actionsRowMarginTop??e.spacing.xs,columnGap:e.components.banner?.actionsRowGap??e.spacing.xs,rowGap:e.components.banner?.actionsRowGap??e.spacing.xs},actionBtn:{paddingHorizontal:e.components.banner?.actionButtonPaddingHorizontal??e.spacing.sm,paddingVertical:e.components.banner?.actionButtonPaddingVertical??6,borderRadius:e.components.banner?.actionButtonRadius??e.radius.sm,..._corners.smoothCorners,maxWidth:"100%",alignItems:"center",justifyContent:"center"},actionBtnMd:{minHeight:44,paddingHorizontal:e.spacing.md}})};var _default=exports.default=Banner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BottomNavigation=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_shadows=require("../../utils/shadows.js"),_index3=require("../AppIcon/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 n,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?r:i){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(o,t,a):o[t]=e[t]);return o})(e,t)}const DEFAULT_ICON_SIZE=18,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_PILL_INSET=16,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_FLOATING_MARGIN=16,DEFAULT_FLOATING_RADIUS=28,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__webority_center_action__",TAB_PADDING_VERTICAL=6,BAR_PADDING_HORIZONTAL=4,BAR_PADDING_TOP=6,BAR_PADDING_TOP_BUBBLE=8,FLOATING_BAR_PADDING_VERTICAL=6,FLOATING_BAR_PADDING_HORIZONTAL=8,EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,TILE_LABEL_GAP=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=e=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${e} unread`:"":!0===e||"·"===e?", new updates":"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=exports.BottomNavigation=(0,_react.forwardRef)((e,t)=>{const{tabs:i,centerAction:r,activeTab:n,onChange:a,haptic:o="selection",showLabels:l=!0,variant:s="pill",indicatorPosition:d="bottom",radius:c,indicatorRadius:u="auto",elevation:h,iconSize:p,marginHorizontal:_,marginVertical:g,paddingHorizontal:m,paddingVertical:b,border:f,style:y,indicatorStyle:x,labelStyle:v,testID:R}=e,N=(0,_index.useTheme)(),A=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),I=(0,_react.useMemo)(()=>buildStyles(N),[N]),j=N.components.bottomNavigation,w=p??j?.iconSize??18,E=j?.pillHeight??w+4+8,T=j?.pillMaxWidth??64,D=j?.pillInset??16,L=j?.floatingMargin??16,S=j?.floatingRadius??28,C=j?.bubbleSize??48,B=j?.bubbleLift??14,P="tile"===s,V="floating"===s||P,k="bubble"===s,M="expand"===s,H="solid"===s,W="pill"===s||V||H,z=Math.max(0,i.findIndex(e=>e.key===n)),[F,O]=_react.default.useState(0),[U,q]=_react.default.useState(0),G=r?Math.ceil(i.length/2):i.length,$=i.length+(r?1:0),[X,Z]=_react.default.useState({width:0,height:0}),Y=r?.size??48,K=void 0!==r?.gap,J=Math.max(0,r?.gap??0),Q=K?(X.width||Y)+2*J:0,ee=K?i.length>0?Math.max(0,F-Q)/i.length:0:$>0?F/$:0,te=K?Q:ee,ie=(0,_react.useRef)((0,_index.createAnimatedValue)(z)).current,re=(0,_react.useRef)({}),ne=(0,_react.useRef)({});i.forEach(e=>{re.current[e.key]||(re.current[e.key]=new _reactNative.Animated.Value(1)),ne.current[e.key]||(ne.current[e.key]=(0,_index.createAnimatedValue)(e.key===n?1:0))});const ae=ee>0?P?Math.min(ee-4,96):Math.min(ee-D,T):0,oe=ee>0?(ee-ae)/2:0,le=ee>0?(ee-C)/2:0,hasLabel=e=>l&&!1!==e.showLabel&&e.label.trim().length>0,se=i[z],de=se&&!hasLabel(se)&&U>0?U/2:6+(w+4)/2,ce=de-B-C/2,ue=Math.max(0,U-4),he=P?2:de-E/2,pe=(0,_react.useRef)(z);(0,_react.useEffect)(()=>{if(pe.current===z)return;pe.current=z;const e=_reactNative.Animated.spring(ie,{toValue:z,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[z,ie]);const _e=Math.max(1,i.length-1),ge=(0,_react.useMemo)(()=>{const e=[],t=[];for(let i=0;i<=_e;i++)e.push(i),t.push(i<G?i*ee:i*ee+te);return ie.interpolate({inputRange:e,outputRange:t})},[ie,_e,G,ee,te]),me=i.map(e=>e.key).join(" "),be=k||M;(0,_react.useEffect)(()=>{const e=me.split(" ").flatMap(e=>{const t=e===n?1:0,i=ne.current[e];return i?be?[_reactNative.Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=_reactNative.Animated.parallel(e);return t.start(),()=>t.stop()},[n,me,be]);const popIcon=e=>{_reactNative.Animated.sequence([_reactNative.Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),_reactNative.Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},fe=(0,_react.useRef)(new _reactNative.Animated.Value(1)).current,{colors:ye}=N,xe=H?ye.primary:ye.background.elevated,ve=H?ye.onPrimary:ye.primary,Re=H?ye.onPrimary:P?ye.text.primary:ye.text.tertiary,Ne=H?ye.onPrimary:ye.primaryMuted,Ae=H?ye.primary:k?ye.onPrimary:ve,Ie=_??L,je=g??(V?L:0),we=je>0,Ee=b??(V?6:k?8:6),Te=m??(V?8:4),De=we?Ee:Math.max(Ee,A.bottom),Le=we?Math.max(je,A.bottom):0,Se="full"===c,Ce=V?U+2*Ee+2*_reactNative.StyleSheet.hairlineWidth:U+Ee+De,Be=Se?U>0?Ce/2:N.radius.full:c??j?.borderRadius??(P?N.radius.full:V?S:0),Pe=void 0!==c||void 0!==j?.borderRadius,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&Pe?Math.min(Be,e/2):t,Ve="underline"===s?Math.max(Te,Se&&0===U?0:Be):Te,ke=h??"none",Me=N.shadows[ke],He="none"===ke?null:(0,_shadows.supportsBoxShadow)()?{boxShadow:(0,_shadows.toBoxShadow)(Me)}:Me,We=f?_reactNative.StyleSheet.hairlineWidth:0,ze=H?ye.primary:ye.border.primary,Fe=r?.lift??0,Oe=Ee+We,Ue=r&&U>0?Math.max(0,(X.height||Y)/2+Fe-U/2-Oe):0,qe=r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[I.centerCell,K?{flex:0,marginHorizontal:J}:null],pointerEvents:"box-none",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{if(!r)return;const e=r.haptic??o;!1!==e&&(0,_index2.triggerHaptic)(e),popIcon(fe),r.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;Z(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:r.label,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[{top:-Fe},e?{opacity:.85}:null],testID:r.testID??(R?`${R}-center`:void 0),children:r.content?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:fe}]},children:r.content}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[I.centerCircle,{width:Y,height:Y,borderRadius:Y/2,..._corners.smoothCorners,backgroundColor:r.color??ye.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:fe}]},children:(0,_index3.renderSlotIcon)(r.icon??"add",{color:r.iconColor??ye.onPrimary,size:r.iconSize??24,disabled:!1})})})})},CENTER_KEY):null,Ge=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:I.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;O(t),q(i)},children:[W&&ae>0&&(!P||ue>0)?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[I.pill,{width:ae,height:P?ue:E,left:oe,top:he,backgroundColor:Ne,borderRadius:P?activeBgRadius(ue,ue/2):activeBgRadius(E,N.radius.full),..._corners.smoothCorners,transform:[{translateX:ge}]},x]}):null,k&&ee>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[I.bubble,N.shadows.md,{width:C,height:C,borderRadius:C/2,..._corners.smoothCorners,left:le,top:ce,backgroundColor:ye.primary,borderColor:ye.background.elevated,transform:[{translateX:ge}]},x]}):null,($e=i.map(e=>{const t=e.key===n,i=t?ve:Re,r=t?Ae:Re,l="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,s=t?e.activeIcon??l:e.icon,d=re.current[e.key],c=ne.current[e.key],u=formatBadge(e.badge??null),h=badgeAccessibilitySuffix(e.badge??null),p=H&&!t?.7:1,_=k&&t||H?ye.primary:ye.background.elevated,g=hasLabel(e),m=g&&(!M||t),b=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[I.iconWrap,{width:w+4,height:w+4,opacity:p,transform:[{scale:d}]}],children:[(0,_index3.renderSlotIcon)(s,{color:r,size:w,focused:t,disabled:!1}),u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.isDot?I.badgeDot:I.badgePill,{backgroundColor:ye.error,borderColor:_}],children:u.isDot?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[I.badgeText,{color:ye.onError}],numberOfLines:1,children:u.text})}):null]}),f=k?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{top:c.interpolate({inputRange:[0,1],outputRange:[0,-B]})},children:b}):b,y=m?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{numberOfLines:1,style:[I.label,M?I.labelInline:null,{color:i,opacity:M?c:p,fontWeight:t?N.typography.fontWeight.semibold:N.typography.fontWeight.normal},v],children:e.label}):null,A=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>(e=>{e.key!==n&&!1!==o&&(0,_index2.triggerHaptic)(o);const t=re.current[e.key];t&&popIcon(t),a(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},accessibilityLabel:`${e.label}${h}`,accessibilityHint:`Switches to ${e.label}`,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[I.tab,P?I.tabTile:null,e?{opacity:.85}:null],testID:R?`${R}-tab-${e.key}`:void 0,children:M?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[I.expandPill,{height:E,paddingHorizontal:t&&g?N.spacing.md:Math.max(0,(E-(w+4))/2)}],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[I.expandFill,{borderRadius:activeBgRadius(E,E/2),..._corners.smoothCorners,backgroundColor:t?ye.primaryMuted:"transparent"},t?x:null]}),f,y]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[f,y]})},e.key);return M?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{flex:c.interpolate({inputRange:[0,1],outputRange:[1,g?1.5:1]})},children:A},e.key):A}),qe?[...$e.slice(0,G),qe,...$e.slice(G)]:$e),"underline"===s&&ee>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[I.underline,"top"===d?I.underlineTop:I.underlineBottom,"top"===d?{top:-Ee}:{bottom:-Ee},{width:ee,height:j?.underlineHeight??3,backgroundColor:ye.primary,transform:[{translateX:ge}]},x]}):null]});var $e;return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,testID:R,accessibilityRole:"tablist",style:[I.outer,{paddingHorizontal:Ie,paddingTop:Math.max(je,Ue),paddingBottom:Le},y],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[V?I.floatingBar:I.dockedBar,He,{backgroundColor:xe,borderColor:ze,borderRadius:Be,..._corners.smoothCorners},V?{borderWidth:We,paddingHorizontal:Te,paddingVertical:Ee}:{borderTopWidth:We,borderBottomWidth:We,borderLeftWidth:We,borderRightWidth:We,paddingHorizontal:Ve,paddingTop:Ee,paddingBottom:De}],children:Ge})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>_reactNative.StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:4},floatingBar:{paddingVertical:6,paddingHorizontal:8},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:6,gap:4},tabTile:{paddingVertical:8,gap:2},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.typography.fontSize.xs,lineHeight:e.typography.fontSize.xs*e.typography.lineHeight.tight,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.typography.fontSize.sm,lineHeight:e.typography.fontSize.sm*e.typography.lineHeight.tight,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.spacing.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:2,borderTopRightRadius:2,..._corners.smoothCorners},underlineTop:{borderBottomLeftRadius:2,borderBottomRightRadius:2,..._corners.smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:9,..._corners.smoothCorners,paddingHorizontal:4,paddingVertical:2,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:5,..._corners.smoothCorners,borderWidth:1.5},badgeText:{fontSize:10,fontWeight:"700",lineHeight:12,textAlign:"center",includeFontPadding:!1}});var _default=exports.default=BottomNavigation;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.BottomNavigation=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.js"),_shadows=require("../../utils/shadows.js"),_index3=require("../AppIcon/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 n,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?r:i){if(n.has(e))return n.get(e);n.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(o,t,a):o[t]=e[t]);return o})(e,t)}const DEFAULT_ICON_SIZE=18,DEFAULT_LABEL_MAX_FONT_SCALE=1.2,ICON_WRAP_AIR=4,PILL_AIR=8,DEFAULT_PILL_MAX_WIDTH=64,TILE_MAX_WIDTH=96,DEFAULT_PILL_INSET=16,DEFAULT_UNDERLINE_HEIGHT=3,DEFAULT_FLOATING_MARGIN=16,DEFAULT_FLOATING_RADIUS=28,DEFAULT_BUBBLE_SIZE=48,DEFAULT_BUBBLE_LIFT=14,DEFAULT_CENTER_SIZE=48,DEFAULT_CENTER_ICON_SIZE=24,CENTER_KEY="__webority_center_action__",TAB_PADDING_VERTICAL=6,BAR_PADDING_HORIZONTAL=4,BAR_PADDING_TOP=6,BAR_PADDING_TOP_BUBBLE=8,FLOATING_BAR_PADDING_VERTICAL=6,FLOATING_BAR_PADDING_HORIZONTAL=8,EXPANDED_FLEX=1.5,SOLID_INACTIVE_OPACITY=.7,TILE_INSET=2,TILE_LABEL_GAP=2,formatBadge=e=>null==e||!1===e?null:!0===e||"·"===e?{text:"",isDot:!0}:"number"==typeof e?e<=0?null:{text:e>99?"99+":String(e),isDot:!1}:"string"==typeof e?0===e.length?null:{text:e,isDot:!1}:null,badgeAccessibilitySuffix=e=>null==e||!1===e?"":"number"==typeof e?e>0?`, ${e} unread`:"":!0===e||"·"===e?", new updates":"string"==typeof e&&e.length>0?`, ${e}`:"",BottomNavigation=exports.BottomNavigation=(0,_react.forwardRef)((e,t)=>{const{tabs:i,centerAction:r,activeTab:n,onChange:a,haptic:o="selection",showLabels:l=!0,variant:s="pill",indicatorPosition:d="bottom",radius:c,indicatorRadius:u="auto",elevation:h,iconSize:p,marginHorizontal:_,marginVertical:g,paddingHorizontal:m,paddingVertical:b,border:f,style:x,indicatorStyle:y,labelStyle:v,labelMaxFontScale:R,testID:A}=e,N=(0,_index.useTheme)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),j=(0,_react.useMemo)(()=>buildStyles(N),[N]),E=N.components.bottomNavigation,w=p??E?.iconSize??18,T=E?.pillHeight??w+4+8,L=E?.pillMaxWidth??64,S=E?.pillInset??16,D=E?.floatingMargin??16,C=E?.floatingRadius??28,B=E?.bubbleSize??48,P=E?.bubbleLift??14,M="tile"===s,V="floating"===s||M,k="bubble"===s,H="expand"===s,F="solid"===s,W="pill"===s||V||F,z=Math.max(0,i.findIndex(e=>e.key===n)),[O,U]=_react.default.useState(0),[q,G]=_react.default.useState(0),X=r?Math.ceil(i.length/2):i.length,$=i.length+(r?1:0),[Z,Y]=_react.default.useState({width:0,height:0}),K=r?.size??48,J=void 0!==r?.gap,Q=Math.max(0,r?.gap??0),ee=J?(Z.width||K)+2*Q:0,te=J?i.length>0?Math.max(0,O-ee)/i.length:0:$>0?O/$:0,ie=J?ee:te,re=(0,_react.useRef)((0,_index.createAnimatedValue)(z)).current,ne=(0,_react.useRef)({}),ae=(0,_react.useRef)({});i.forEach(e=>{ne.current[e.key]||(ne.current[e.key]=new _reactNative.Animated.Value(1)),ae.current[e.key]||(ae.current[e.key]=(0,_index.createAnimatedValue)(e.key===n?1:0))});const oe=te>0?M?Math.min(te-4,96):Math.min(te-S,L):0,le=te>0?(te-oe)/2:0,se=te>0?(te-B)/2:0,hasLabel=e=>l&&!1!==e.showLabel&&e.label.trim().length>0,de=i[z],ce=de&&!hasLabel(de)&&q>0?q/2:6+(w+4)/2,ue=ce-P-B/2,he=Math.max(0,q-4),pe=M?2:ce-T/2,_e=(0,_react.useRef)(z);(0,_react.useEffect)(()=>{if(_e.current===z)return;_e.current=z;const e=_reactNative.Animated.spring(re,{toValue:z,tension:120,friction:14,useNativeDriver:!0});return e.start(),()=>e.stop()},[z,re]);const ge=Math.max(1,i.length-1),me=(0,_react.useMemo)(()=>{const e=[],t=[];for(let i=0;i<=ge;i++)e.push(i),t.push(i<X?i*te:i*te+ie);return re.interpolate({inputRange:e,outputRange:t})},[re,ge,X,te,ie]),be=i.map(e=>e.key).join(" "),fe=k||H;(0,_react.useEffect)(()=>{const e=be.split(" ").flatMap(e=>{const t=e===n?1:0,i=ae.current[e];return i?fe?[_reactNative.Animated.spring(i,{toValue:t,tension:140,friction:13,useNativeDriver:!1})]:(i.setValue(t),[]):[]});if(0===e.length)return;const t=_reactNative.Animated.parallel(e);return t.start(),()=>t.stop()},[n,be,fe]);const popIcon=e=>{_reactNative.Animated.sequence([_reactNative.Animated.timing(e,{toValue:1.15,duration:120,useNativeDriver:!0}),_reactNative.Animated.spring(e,{toValue:1,tension:200,friction:8,useNativeDriver:!0})]).start()},xe=(0,_react.useRef)(new _reactNative.Animated.Value(1)).current,{colors:ye}=N,ve=F?ye.primary:ye.background.elevated,Re=F?ye.onPrimary:ye.primary,Ae=F?ye.onPrimary:M?ye.text.primary:ye.text.tertiary,Ne=F?ye.onPrimary:ye.primaryMuted,Ie=F?ye.primary:k?ye.onPrimary:Re,je=_??D,Ee=g??(V?D:0),we=Ee>0,Te=b??(V?6:k?8:6),Le=m??(V?8:4),Se=we?Te:Math.max(Te,I.bottom),De=we?Math.max(Ee,I.bottom):0,Ce="full"===c,Be=V?q+2*Te+2*_reactNative.StyleSheet.hairlineWidth:q+Te+Se,Pe=Ce?q>0?Be/2:N.radius.full:c??E?.borderRadius??(M?N.radius.full:V?C:0),Me=void 0!==c||void 0!==E?.borderRadius,activeBgRadius=(e,t)=>"number"==typeof u?Math.max(0,Math.min(u,e/2)):"auto"===u&&Me?Math.min(Pe,e/2):t,Ve="underline"===s?Math.max(Le,Ce&&0===q?0:Pe):Le,ke=h??"none",He=N.shadows[ke],Fe="none"===ke?null:(0,_shadows.supportsBoxShadow)()?{boxShadow:(0,_shadows.toBoxShadow)(He)}:He,We=f?_reactNative.StyleSheet.hairlineWidth:0,ze=F?ye.primary:ye.border.primary,Oe=r?.lift??0,Ue=Te+We,qe=r&&q>0?Math.max(0,(Z.height||K)/2+Oe-q/2-Ue):0,Ge=r?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.centerCell,J?{flex:0,marginHorizontal:Q}:null],pointerEvents:"box-none",children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>{if(!r)return;const e=r.haptic??o;!1!==e&&(0,_index2.triggerHaptic)(e),popIcon(xe),r.onPress()},onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;Y(e=>e.width===t&&e.height===i?e:{width:t,height:i})},accessibilityRole:"button",accessibilityLabel:r.label,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[{top:-Oe},e?{opacity:.85}:null],testID:r.testID??(A?`${A}-center`:void 0),children:r.content?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:xe}]},children:r.content}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:[j.centerCircle,{width:K,height:K,borderRadius:K/2,..._corners.smoothCorners,backgroundColor:r.color??ye.primary}],children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{transform:[{scale:xe}]},children:(0,_index3.renderSlotIcon)(r.icon??"add",{color:r.iconColor??ye.onPrimary,size:r.iconSize??24,disabled:!1})})})})},CENTER_KEY):null,Xe=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:j.tabRow,onLayout:e=>{const{width:t,height:i}=e.nativeEvent.layout;U(t),G(i)},children:[W&&oe>0&&(!M||he>0)?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[j.pill,{width:oe,height:M?he:T,left:le,top:pe,backgroundColor:Ne,borderRadius:M?activeBgRadius(he,he/2):activeBgRadius(T,N.radius.full),..._corners.smoothCorners,transform:[{translateX:me}]},y]}):null,k&&te>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[j.bubble,N.shadows.md,{width:B,height:B,borderRadius:B/2,..._corners.smoothCorners,left:se,top:ue,backgroundColor:ye.primary,borderColor:ye.background.elevated,transform:[{translateX:me}]},y]}):null,($e=i.map(e=>{const t=e.key===n,i=t?Re:Ae,r=t?Ie:Ae,l="string"==typeof e.icon?{name:e.icon,variant:"bold"}:e.icon,s=t?e.activeIcon??l:e.icon,d=ne.current[e.key],c=ae.current[e.key],u=formatBadge(e.badge??null),h=badgeAccessibilitySuffix(e.badge??null),p=F&&!t?.7:1,_=k&&t||F?ye.primary:ye.background.elevated,g=hasLabel(e),m=g&&(!H||t),b=(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[j.iconWrap,{width:w+4,height:w+4,opacity:p,transform:[{scale:d}]}],children:[(0,_index3.renderSlotIcon)(s,{color:r,size:w,focused:t,disabled:!1}),u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.isDot?j.badgeDot:j.badgePill,{backgroundColor:ye.error,borderColor:_}],children:u.isDot?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[j.badgeText,{color:ye.onError}],numberOfLines:1,children:u.text})}):null]}),f=k?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{top:c.interpolate({inputRange:[0,1],outputRange:[0,-P]})},children:b}):b,x=m?(0,_jsxRuntime.jsx)(_reactNative.Animated.Text,{numberOfLines:1,maxFontSizeMultiplier:R??N.maxFontSizeMultiplier??1.2,style:[j.label,H?j.labelInline:null,{color:i,opacity:H?c:p,fontWeight:t?N.typography.fontWeight.semibold:N.typography.fontWeight.normal},v],children:e.label}):null,I=(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:()=>(e=>{e.key!==n&&!1!==o&&(0,_index2.triggerHaptic)(o);const t=ne.current[e.key];t&&popIcon(t),a(e.key)})(e),accessibilityRole:"tab",accessibilityState:{selected:t},"aria-selected":t,accessibilityLabel:`${e.label}${h}`,accessibilityHint:`Switches to ${e.label}`,hitSlop:{top:6,bottom:6,left:6,right:6},style:({pressed:e})=>[j.tab,M?j.tabTile:null,e?{opacity:.85}:null],testID:A?`${A}-tab-${e.key}`:void 0,children:H?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[j.expandPill,{height:T,paddingHorizontal:t&&g?N.spacing.md:Math.max(0,(T-(w+4))/2)}],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[j.expandFill,{borderRadius:activeBgRadius(T,T/2),..._corners.smoothCorners,backgroundColor:t?ye.primaryMuted:"transparent"},t?y:null]}),f,x]}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[f,x]})},e.key);return H?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{flex:c.interpolate({inputRange:[0,1],outputRange:[1,g?1.5:1]})},children:I},e.key):I}),Ge?[...$e.slice(0,X),Ge,...$e.slice(X)]:$e),"underline"===s&&te>0?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",style:[j.underline,"top"===d?j.underlineTop:j.underlineBottom,"top"===d?{top:-Te}:{bottom:-Te},{width:te,height:E?.underlineHeight??3,backgroundColor:ye.primary,transform:[{translateX:me}]},y]}):null]});var $e;return(0,_jsxRuntime.jsx)(_reactNative.View,{ref:t,testID:A,accessibilityRole:"tablist",style:[j.outer,{paddingHorizontal:je,paddingTop:Math.max(Ee,qe),paddingBottom:De},x],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[V?j.floatingBar:j.dockedBar,Fe,{backgroundColor:ve,borderColor:ze,borderRadius:Pe,..._corners.smoothCorners},V?{borderWidth:We,paddingHorizontal:Le,paddingVertical:Te}:{borderTopWidth:We,borderBottomWidth:We,borderLeftWidth:We,borderRightWidth:We,paddingHorizontal:Ve,paddingTop:Te,paddingBottom:Se}],children:Xe})})});BottomNavigation.displayName="BottomNavigation";const buildStyles=e=>_reactNative.StyleSheet.create({outer:{backgroundColor:"transparent"},dockedBar:{paddingHorizontal:4},floatingBar:{paddingVertical:6,paddingHorizontal:8},tabRow:{flexDirection:"row",alignItems:"stretch",position:"relative"},tab:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center",paddingVertical:6,gap:4},tabTile:{paddingVertical:8,gap:2},centerCell:{flex:1,minHeight:44,alignItems:"center",justifyContent:"center"},centerCircle:{alignItems:"center",justifyContent:"center"},iconWrap:{alignItems:"center",justifyContent:"center",position:"relative"},label:{fontSize:e.typography.fontSize.xs,lineHeight:e.typography.fontSize.xs*e.typography.lineHeight.tight,textAlign:"center",includeFontPadding:!1},labelInline:{fontSize:e.typography.fontSize.sm,lineHeight:e.typography.fontSize.sm*e.typography.lineHeight.tight,flexShrink:1,includeFontPadding:!1},expandPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:e.spacing.xs},expandFill:{position:"absolute",top:0,right:0,bottom:0,left:0,overflow:"hidden"},pill:{position:"absolute",left:0},bubble:{position:"absolute",left:0,borderWidth:3},underline:{position:"absolute",left:0,height:3},underlineBottom:{borderTopLeftRadius:2,borderTopRightRadius:2,..._corners.smoothCorners},underlineTop:{borderBottomLeftRadius:2,borderBottomRightRadius:2,..._corners.smoothCorners},badgePill:{position:"absolute",top:-4,right:-8,minWidth:18,height:18,borderRadius:9,..._corners.smoothCorners,paddingHorizontal:4,paddingVertical:2,alignItems:"center",justifyContent:"center",borderWidth:1.5},badgeDot:{position:"absolute",top:-2,right:-2,width:10,height:10,borderRadius:5,..._corners.smoothCorners,borderWidth:1.5},badgeText:{fontSize:10,fontWeight:"700",lineHeight:12,textAlign:"center",includeFontPadding:!1}});var _default=exports.default=BottomNavigation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useBottomSheet=exports.default=exports.BottomSheet=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.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 o,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(i,t,n):i[t]=e[t]);return i})(e,t)}const TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=(0,_react.createContext)(null),useBottomSheet=()=>{const e=(0,_react.useContext)(BottomSheetContext);if(!e)throw new Error("useBottomSheet must be used inside a <BottomSheet>.");return e};exports.useBottomSheet=useBottomSheet;const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=exports.BottomSheet=(0,_react.forwardRef)((e,t)=>{const{snapPoints:a,index:r,onChange:o,onAnimate:n,onAfterClose:i,enablePanDownToClose:s=!0,enableBackdropPress:l=!0,scrollable:c=!1,scrollRef:u,onScroll:d,onContentSizeChange:_,onScrollLayout:m,scrollEventThrottle:h,keyboardBehavior:v="shift",mode:f="modal",presentation:b="sheet",handleIndicatorStyle:p,containerStyle:S,header:x,footer:g,headerStyle:R,footerStyle:y,children:N,accessibilityLabel:w,accessibilityViewIsModal:j,testID:C}=e,k=(0,_index.useTheme)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[M,O]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").height),[T,H]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),B=(0,_react.useCallback)(e=>{const{height:t,width:a}=e.nativeEvent.layout;t>0&&O(e=>e===t?e:t),a>0&&H(e=>e===a?e:a)},[]),P=(0,_reactNative.useWindowDimensions)(),G="dialog"===b||"auto"===b&&Math.min(P.width,P.height)>=600,D=Math.min(560,T-2*k.spacing.xl),[V,A]=(0,_react.useState)({top:I.top,bottom:I.bottom}),E="modal"===f?V.top:I.top,L="modal"===f?V.bottom:I.bottom,q=a.includes("content"),[W,F]=useMeasuredHeight(),[J,z]=useMeasuredHeight(),[Y,$,K]=useMeasuredHeight(),[X,U]=useMeasuredHeight(),Q=G?k.spacing.md:W,Z=q?Math.min(Q+(null!=x?J:0)+Y+(null!=g?X:0)+L,M-E):0,ee=(0,_react.useCallback)((e,t)=>{q&&K(t),_?.(e,t)},[q,_,K]),te=(0,_react.useMemo)(()=>resolveSnapPoints(a,M,Z),[a,M,Z]),ae=M,re=te[te.length-1]??0,oe=(0,_reactNativeReanimated.useSharedValue)(ae),ne=(0,_reactNativeReanimated.useSharedValue)(ae),ie=(0,_reactNativeReanimated.useSharedValue)(-1),[se,le]=(0,_react.useState)(-1),ce=(0,_react.useRef)(!1),[ue,de]=(0,_react.useState)(!1),[_e,me]=(0,_react.useState)(!1),he=(0,_react.useRef)(!1),ve=(0,_react.useRef)(i);ve.current=i;const[fe,be]=(0,_react.useState)(!1),pe=(0,_react.useCallback)(e=>{if(e<0||e>=te.length)return ae;const t=te[e];return G?(M-t)/2:M-t},[te,M,ae,G]),Se=(0,_react.useCallback)(e=>{se!==e&&(le(e),ie.value=e,o?.(e))},[se,ie,o]),xe=(0,_react.useCallback)(()=>{ce.current=!1,ie.value<0&&(he.current=!0,"modal"===f?(de(!1),"ios"!==_reactNative.Platform.OS&&me(!1)):be(!1))},[f,ie]),ge=(0,_react.useCallback)(()=>{he.current&&me(!1)},[]);(0,_react.useEffect)(()=>{("modal"===f?!_e:!fe)&&he.current&&(he.current=!1,ve.current?.())},[f,_e,fe]);const Re=(0,_react.useCallback)((e,t,a)=>{ce.current=!0,n?.(t,a),oe.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG,e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()})},[n,oe,xe]),ye=(0,_react.useCallback)(e=>{const t="number"==typeof e?clamp(e,0,te.length-1):se>=0?se:0,a=ie.value,r=pe(t);he.current=!1,"modal"===f?(me(!0),de(!0)):be(!0),a<0&&(oe.value=ae),Se(t),Re(r,a,t)},[Re,ae,se,ie,f,te.length,Se,oe,pe]),Ne=(0,_react.useCallback)(()=>{if(0===te.length)return;const e=ie.value,t=pe(0);Se(0),Re(t,e,0)},[Re,ie,te.length,Se,pe]),we=(0,_react.useCallback)(()=>{const e=ie.value;Se(-1),ce.current=!0,n?.(e,-1),oe.value=(0,_reactNativeReanimated.withTiming)(ae,{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.accelerate)},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()})},[ae,ie,xe,n,Se,oe,k.motion.duration.fast,k.motion.easing.accelerate]);(0,_react.useImperativeHandle)(t,()=>({expand:ye,collapse:Ne,close:we}),[ye,Ne,we]),(0,_react.useEffect)(()=>{"number"==typeof r&&r!==se&&(-1===r?we():ye(r))},[r]);const je=(0,_react.useRef)({hostHeight:M,contentSnap:Z});(0,_react.useEffect)(()=>{const e=je.current;e.hostHeight===M&&e.contentSnap===Z||(je.current={hostHeight:M,contentSnap:Z},e.hostHeight===M&&ie.value<0||(oe.value=(0,_reactNativeReanimated.withSpring)(pe(ie.value),SPRING_CONFIG)))},[M,Z]);const Ce=M-re,ke=(0,_react.useMemo)(()=>te.map(e=>M-e),[te,M]),Ie=(0,_react.useCallback)((e,t)=>{const a=ie.value;if(-1===e)return(0,_index2.triggerHaptic)("selection"),Se(-1),ce.current=!0,n?.(a,-1),void(oe.value=(0,_reactNativeReanimated.withTiming)(ae,{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.accelerate)},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()}));Se(e),Re(t,a,e)},[Re,ae,ie,xe,n,Se,oe,k.motion.duration.fast,k.motion.easing.accelerate]),Me=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Native().withTestId(C?`${C}-content-gesture`:"bottom-sheet-content-gesture"),[C]),Oe=(0,_react.useMemo)(()=>{const e=ke,t=ae,a=Ce,r=s;return _reactNativeGestureHandler.Gesture.Pan().withTestId(C?`${C}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";ne.value=oe.value}).onUpdate(e=>{"worklet";const t=ne.value+e.translationY;oe.value=t<a?a+.25*(t-a):t}).onEnd(a=>{"worklet";const o=oe.value;if(a.velocityY>1e3)return r?void(0,_reactNativeReanimated.runOnJS)(Ie)(-1,t):void(0,_reactNativeReanimated.runOnJS)(Ie)(0,e[0]);let n=0,i=Math.abs(o-e[0]);for(let t=1;t<e.length;t++){const a=Math.abs(o-e[t]);a<i&&(i=a,n=t)}const s=e[0];r&&o-s>80?(0,_reactNativeReanimated.runOnJS)(Ie)(-1,t):(0,_reactNativeReanimated.runOnJS)(Ie)(n,e[n])})},[ae,ne,s,Ie,Ce,ke,C,oe]),{height:Te}=(0,_reactNativeKeyboardController.useReanimatedKeyboardAnimation)(),He="shift"===v,Be=(0,_reactNativeReanimated.useDerivedValue)(()=>He?Te.value:0),Pe=te[se>=0?se:0]??re,Ge=k.spacing.md,De=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{if(G){const e=Be.value,t=M+e-Pe-Ge,a=e<0&&oe.value>t?t:oe.value;return{top:a<E?E:a}}const e=oe.value+Be.value,t=Be.value<0?E:Ce;return{top:e<t?t:e}}),Ve=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=Be.value;if(G){const t=M+e-Pe-Ge,a=e<0&&oe.value>t?t:oe.value,r=M+e-Ge-(a<E?E:a);return{height:r<0?0:r>Pe?Pe:r}}const t=e<0?E:Ce,a=oe.value+e,r=M+e-(a<t?t:a);return{height:r<0?0:r>re?re:r}}),Ae=se>=0,Ee=(0,_react.useMemo)(()=>buildStyles(k),[k]),Le=(0,_react.useCallback)(()=>{l&&((0,_index2.triggerHaptic)("selection"),we())},[l,we]),qe=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Tap().withTestId(C?`${C}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((e,t)=>{"worklet";t&&(0,_reactNativeReanimated.runOnJS)(Le)()}),[Le,C]),We=(0,_react.useMemo)(()=>({snapIndex:se,snapPoints:te,expand:ye,collapse:Ne,close:we}),[se,te,ye,Ne,we]);if("inline"===f&&!fe)return null;if("modal"===f&&!_e)return null;const Fe=(0,_jsxRuntime.jsxs)(_reactNative.View,{collapsable:!1,style:["modal"===f?Ee.backdropModal:Ee.backdropInline,{backgroundColor:k.colors.background.overlay}],onLayout:B,testID:C,accessibilityViewIsModal:j??Ae,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:qe,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:_reactNative.StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:"Close bottom sheet"})}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:w,accessibilityViewIsModal:j??Ae,style:[Ee.sheet,{height:re,backgroundColor:k.colors.background.elevated,borderTopLeftRadius:k.radius["2xl"],borderTopRightRadius:k.radius["2xl"],..._corners.smoothCorners,...k.shadows.xl},G?{height:Pe,left:(T-D)/2,right:void 0,width:D,borderBottomLeftRadius:k.radius["2xl"],borderBottomRightRadius:k.radius["2xl"]}:null,S,De],children:(0,_jsxRuntime.jsxs)(SheetBody,{style:[Ee.body,Ve],keyboardOffset:Be,children:[G?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:k.spacing.md}}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Oe,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:Ee.handleRow,onLayout:q?F:void 0,accessible:!0,accessibilityLabel:"Drag handle",accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:C?`${C}-handle`:"bottom-sheet-handle",children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.handle,{backgroundColor:k.components.bottomSheet?.handleColor??k.colors.border.primary},p]})})}),null!=x&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.header,R],onLayout:q?z:void 0,children:x}),c?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Me,children:(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{ref:u,style:Ee.scrollContent,onScroll:d,onContentSizeChange:ee,onLayout:m,scrollEventThrottle:h,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:N})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:Ee.content,children:q?(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:$,children:N}):N}),null!=g&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.footer,y],onLayout:q?U:void 0,children:g})]})})]}),Je=(0,_jsxRuntime.jsx)(BottomSheetContext.Provider,{value:We,children:Fe});return"modal"===f?(0,_jsxRuntime.jsx)(_reactNative.Modal,{transparent:!0,visible:ue,onRequestClose:we,onDismiss:"ios"===_reactNative.Platform.OS?ge:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:(0,_jsxRuntime.jsxs)(_reactNativeSafeAreaContext.SafeAreaProvider,{style:Ee.modalRoot,children:[(0,_jsxRuntime.jsx)(InsetsProbe,{onChange:A}),"android"===_reactNative.Platform.OS?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{style:Ee.modalRoot,children:Je}):Je,(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})}):Je}),InsetsProbe=({onChange:e})=>{const{top:t,bottom:a}=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)();return(0,_react.useEffect)(()=>{e(e=>e.top===t&&e.bottom===a?e:{top:t,bottom:a})},[t,a,e]),null},SheetBody=({style:e,keyboardOffset:t,children:a})=>{const r=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)().bottom,o=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=r+t.value;return{paddingBottom:e>0?e:0}});return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[e,o],children:a})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=(0,_react.useState)(0),a=(0,_react.useCallback)(e=>{t(t=>t===e?t:e)},[]);return[e,(0,_react.useCallback)(e=>a(e.nativeEvent.layout.height),[a]),a]},resolveSnapPoints=(e,t,a)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return a;const r=parseFloat(e);return Number.isNaN(r)?0:r/100*t})].sort((e,t)=>e-t),clamp=(e,t,a)=>Math.min(Math.max(e,t),a),buildStyles=e=>_reactNative.StyleSheet.create({backdropModal:{flex:1},backdropInline:{..._reactNative.StyleSheet.absoluteFill},sheet:{position:"absolute",left:0,right:0,overflow:"hidden"},body:{overflow:"hidden"},handleRow:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",paddingTop:12,paddingBottom:24},header:{},footer:{},handle:{width:36,height:4,borderRadius:2,..._corners.smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});var _default=exports.default=BottomSheet;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useBottomSheet=exports.default=exports.BottomSheet=void 0;var _react=require("react"),_reactNative=require("react-native"),_reactNativeGestureHandler=require("react-native-gesture-handler"),_reactNativeKeyboardController=require("react-native-keyboard-controller"),_reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated")),_reactNativeSafeAreaContext=require("react-native-safe-area-context"),_index=require("../../theme/index.js"),_index2=require("../../utils/index.js"),_corners=require("../../utils/corners.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 o,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(o=t?r:a){if(o.has(e))return o.get(e);o.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(n.get||n.set)?o(i,t,n):i[t]=e[t]);return i})(e,t)}const TABLET_MIN_SHORT_SIDE=600,DIALOG_MAX_WIDTH=560,BottomSheetContext=(0,_react.createContext)(null),useBottomSheet=()=>{const e=(0,_react.useContext)(BottomSheetContext);if(!e)throw new Error("useBottomSheet must be used inside a <BottomSheet>.");return e};exports.useBottomSheet=useBottomSheet;const SPRING_CONFIG={damping:20,stiffness:240,mass:1},CLOSE_VELOCITY_THRESHOLD=1e3,DRAG_ACTIVATION_OFFSET=10,BottomSheet=exports.BottomSheet=(0,_react.forwardRef)((e,t)=>{const{snapPoints:a,index:r,onChange:o,onAnimate:n,onAfterClose:i,enablePanDownToClose:s=!0,enableBackdropPress:l=!0,scrollable:c=!1,scrollRef:u,onScroll:d,onContentSizeChange:_,onScrollLayout:m,scrollEventThrottle:h,keyboardBehavior:v="shift",mode:f="modal",presentation:b="sheet",handleIndicatorStyle:p,containerStyle:S,header:x,footer:g,headerStyle:R,footerStyle:y,children:N,accessibilityLabel:w,accessibilityViewIsModal:j,testID:C}=e,k=(0,_index.useTheme)(),I=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)(),[M,O]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").height),[T,H]=(0,_react.useState)(()=>_reactNative.Dimensions.get("window").width),B=(0,_react.useCallback)(e=>{const{height:t,width:a}=e.nativeEvent.layout;t>0&&O(e=>e===t?e:t),a>0&&H(e=>e===a?e:a)},[]),P=(0,_reactNative.useWindowDimensions)(),G="dialog"===b||"auto"===b&&Math.min(P.width,P.height)>=600,D=Math.min(560,T-2*k.spacing.xl),[V,A]=(0,_react.useState)({top:I.top,bottom:I.bottom}),E="modal"===f?V.top:I.top,L="modal"===f?V.bottom:I.bottom,q=a.includes("content"),[F,J]=useMeasuredHeight(),[W,z]=useMeasuredHeight(),[Y,$,K]=useMeasuredHeight(),[X,U]=useMeasuredHeight(),Q=G?k.spacing.md:F,Z=q?Math.min(Q+(null!=x?W:0)+Y+(null!=g?X:0)+L,M-E):0,ee=(0,_react.useCallback)((e,t)=>{q&&K(t),_?.(e,t)},[q,_,K]),te=(0,_react.useMemo)(()=>resolveSnapPoints(a,M,Z),[a,M,Z]),ae=M,re=te[te.length-1]??0,oe=(0,_reactNativeReanimated.useSharedValue)(ae),ne=(0,_reactNativeReanimated.useSharedValue)(ae),ie=(0,_reactNativeReanimated.useSharedValue)(-1),[se,le]=(0,_react.useState)(-1),ce=(0,_react.useRef)(!1),[ue,de]=(0,_react.useState)(!1),[_e,me]=(0,_react.useState)(!1),he=(0,_react.useRef)(!1),ve=(0,_react.useRef)(i);ve.current=i;const[fe,be]=(0,_react.useState)(!1),pe=(0,_react.useCallback)(e=>{if(e<0||e>=te.length)return ae;const t=te[e];return G?(M-t)/2:M-t},[te,M,ae,G]),Se=(0,_react.useCallback)(e=>{se!==e&&(le(e),ie.value=e,o?.(e))},[se,ie,o]),xe=(0,_react.useCallback)(()=>{ce.current=!1,ie.value<0&&(he.current=!0,"modal"===f?(de(!1),"ios"!==_reactNative.Platform.OS&&me(!1)):be(!1))},[f,ie]),ge=(0,_react.useCallback)(()=>{he.current&&me(!1)},[]);(0,_react.useEffect)(()=>{("modal"===f?!_e:!fe)&&he.current&&(he.current=!1,ve.current?.())},[f,_e,fe]);const Re=(0,_react.useCallback)((e,t,a)=>{ce.current=!0,n?.(t,a),oe.value=(0,_reactNativeReanimated.withSpring)(e,SPRING_CONFIG,e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()})},[n,oe,xe]),ye=(0,_react.useCallback)(e=>{const t="number"==typeof e?clamp(e,0,te.length-1):se>=0?se:0,a=ie.value,r=pe(t);he.current=!1,"modal"===f?(me(!0),de(!0)):be(!0),a<0&&(oe.value=ae),Se(t),Re(r,a,t)},[Re,ae,se,ie,f,te.length,Se,oe,pe]),Ne=(0,_react.useCallback)(()=>{if(0===te.length)return;const e=ie.value,t=pe(0);Se(0),Re(t,e,0)},[Re,ie,te.length,Se,pe]),we=(0,_react.useCallback)(()=>{const e=ie.value;Se(-1),ce.current=!0,n?.(e,-1),oe.value=(0,_reactNativeReanimated.withTiming)(ae,{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.accelerate)},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()})},[ae,ie,xe,n,Se,oe,k.motion.duration.fast,k.motion.easing.accelerate]);(0,_react.useImperativeHandle)(t,()=>({expand:ye,collapse:Ne,close:we}),[ye,Ne,we]),(0,_react.useEffect)(()=>{"number"==typeof r&&r!==se&&(-1===r?we():ye(r))},[r]);const je=(0,_react.useRef)({hostHeight:M,contentSnap:Z});(0,_react.useEffect)(()=>{const e=je.current;e.hostHeight===M&&e.contentSnap===Z||(je.current={hostHeight:M,contentSnap:Z},e.hostHeight===M&&ie.value<0||(oe.value=(0,_reactNativeReanimated.withSpring)(pe(ie.value),SPRING_CONFIG)))},[M,Z]);const Ce=M-re,ke=(0,_react.useMemo)(()=>te.map(e=>M-e),[te,M]),Ie=(0,_react.useCallback)((e,t)=>{const a=ie.value;if(-1===e)return(0,_index2.triggerHaptic)("selection"),Se(-1),ce.current=!0,n?.(a,-1),void(oe.value=(0,_reactNativeReanimated.withTiming)(ae,{duration:k.motion.duration.fast,easing:_reactNativeReanimated.Easing.bezier(...k.motion.easing.accelerate)},e=>{"worklet";e&&(0,_reactNativeReanimated.runOnJS)(xe)()}));Se(e),Re(t,a,e)},[Re,ae,ie,xe,n,Se,oe,k.motion.duration.fast,k.motion.easing.accelerate]),Me=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Native().withTestId(C?`${C}-content-gesture`:"bottom-sheet-content-gesture"),[C]),Oe=(0,_react.useMemo)(()=>{const e=ke,t=ae,a=Ce,r=s;return _reactNativeGestureHandler.Gesture.Pan().withTestId(C?`${C}-pan-gesture`:"bottom-sheet-pan-gesture").activeOffsetY([-10,10]).failOffsetX([-15,15]).onStart(()=>{"worklet";ne.value=oe.value}).onUpdate(e=>{"worklet";const t=ne.value+e.translationY;oe.value=t<a?a+.25*(t-a):t}).onEnd(a=>{"worklet";const o=oe.value;if(a.velocityY>1e3)return r?void(0,_reactNativeReanimated.runOnJS)(Ie)(-1,t):void(0,_reactNativeReanimated.runOnJS)(Ie)(0,e[0]);let n=0,i=Math.abs(o-e[0]);for(let t=1;t<e.length;t++){const a=Math.abs(o-e[t]);a<i&&(i=a,n=t)}const s=e[0];r&&o-s>80?(0,_reactNativeReanimated.runOnJS)(Ie)(-1,t):(0,_reactNativeReanimated.runOnJS)(Ie)(n,e[n])})},[ae,ne,s,Ie,Ce,ke,C,oe]),{height:Te}=(0,_reactNativeKeyboardController.useReanimatedKeyboardAnimation)(),He="shift"===v,Be=(0,_reactNativeReanimated.useDerivedValue)(()=>He?Te.value:0),Pe=te[se>=0?se:0]??re,Ge=k.spacing.md,De=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{if(G){const e=Be.value,t=M+e-Pe-Ge,a=e<0&&oe.value>t?t:oe.value;return{top:a<E?E:a}}const e=oe.value+Be.value,t=Be.value<0?E:Ce;return{top:e<t?t:e}}),Ve=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=Be.value;if(G){const t=M+e-Pe-Ge,a=e<0&&oe.value>t?t:oe.value,r=M+e-Ge-(a<E?E:a);return{height:r<0?0:r>Pe?Pe:r}}const t=e<0?E:Ce,a=oe.value+e,r=M+e-(a<t?t:a);return{height:r<0?0:r>re?re:r}}),Ae=se>=0,Ee=(0,_react.useMemo)(()=>buildStyles(k),[k]),Le=(0,_react.useCallback)(()=>{l&&((0,_index2.triggerHaptic)("selection"),we())},[l,we]),qe=(0,_react.useMemo)(()=>_reactNativeGestureHandler.Gesture.Tap().withTestId(C?`${C}-backdrop-gesture`:"bottom-sheet-backdrop-gesture").maxDuration(250).onEnd((e,t)=>{"worklet";t&&(0,_reactNativeReanimated.runOnJS)(Le)()}),[Le,C]),Fe=(0,_react.useMemo)(()=>({snapIndex:se,snapPoints:te,expand:ye,collapse:Ne,close:we}),[se,te,ye,Ne,we]);if("inline"===f&&!fe)return null;if("modal"===f&&!_e)return null;const Je=(0,_jsxRuntime.jsxs)(_reactNative.View,{collapsable:!1,style:["modal"===f?Ee.backdropModal:Ee.backdropInline,{backgroundColor:k.colors.background.overlay}],onLayout:B,testID:C,accessibilityViewIsModal:j??Ae,children:[(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:qe,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:_reactNative.StyleSheet.absoluteFill,accessibilityRole:"button",accessibilityLabel:"Close bottom sheet"})}),(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{accessibilityRole:"alert",accessibilityLabel:w,accessibilityViewIsModal:j??Ae,style:[Ee.sheet,{height:re,backgroundColor:k.colors.background.elevated,borderTopLeftRadius:k.radius["2xl"],borderTopRightRadius:k.radius["2xl"],..._corners.smoothCorners,...k.shadows.xl},G?{height:Pe,left:(T-D)/2,right:void 0,width:D,borderBottomLeftRadius:k.radius["2xl"],borderBottomRightRadius:k.radius["2xl"]}:null,S,De],children:(0,_jsxRuntime.jsxs)(SheetBody,{style:[Ee.body,Ve],keyboardOffset:Be,children:[G?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{height:k.spacing.md}}):(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Oe,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:Ee.handleRow,onLayout:q?J:void 0,accessible:!0,accessibilityLabel:"Drag handle",accessibilityHint:"Drag up or down to resize the sheet, or swipe down to close it",testID:C?`${C}-handle`:"bottom-sheet-handle",children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.handle,{backgroundColor:k.components.bottomSheet?.handleColor??k.colors.border.primary},p]})})}),null!=x&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.header,R],onLayout:q?z:void 0,children:x}),c?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector,{gesture:Me,children:(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{ref:u,style:Ee.scrollContent,onScroll:d,onContentSizeChange:ee,onLayout:m,scrollEventThrottle:h,keyboardShouldPersistTaps:"always",keyboardDismissMode:"none",children:N})}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:Ee.content,children:q?(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:$,children:N}):N}),null!=g&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:[Ee.footer,y],onLayout:q?U:void 0,children:g})]})})]}),We=(0,_jsxRuntime.jsx)(BottomSheetContext.Provider,{value:Fe,children:Je});return"modal"===f?(0,_jsxRuntime.jsx)(_reactNative.Modal,{transparent:!0,visible:ue,onRequestClose:we,onDismiss:"ios"===_reactNative.Platform.OS?ge:void 0,statusBarTranslucent:!0,navigationBarTranslucent:!0,animationType:"none",supportedOrientations:["portrait","landscape"],children:(0,_jsxRuntime.jsxs)(_reactNativeSafeAreaContext.SafeAreaProvider,{style:Ee.modalRoot,children:[(0,_jsxRuntime.jsx)(InsetsProbe,{onChange:A}),"android"===_reactNative.Platform.OS?(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{style:Ee.modalRoot,children:We}):We,(0,_jsxRuntime.jsx)(_ToastProvider.ToastHost,{})]})}):We}),InsetsProbe=({onChange:e})=>{const{top:t,bottom:a}=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)();return(0,_react.useEffect)(()=>{e(e=>e.top===t&&e.bottom===a?e:{top:t,bottom:a})},[t,a,e]),null},SheetBody=({style:e,keyboardOffset:t,children:a})=>{const r=(0,_reactNativeSafeAreaContext.useSafeAreaInsets)().bottom,o=(0,_reactNativeReanimated.useAnimatedStyle)(()=>{const e=r+t.value;return{paddingBottom:e>0?e:0}});return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[e,o],children:a})};BottomSheet.displayName="BottomSheet";const useMeasuredHeight=()=>{const[e,t]=(0,_react.useState)(0),a=(0,_react.useCallback)(e=>{t(t=>t===e?t:e)},[]);return[e,(0,_react.useCallback)(e=>a(e.nativeEvent.layout.height),[a]),a]},resolveSnapPoints=(e,t,a)=>[...e.map(e=>{if("number"==typeof e)return e;if("content"===e)return a;const r=parseFloat(e);return Number.isNaN(r)?0:r/100*t})].sort((e,t)=>e-t),clamp=(e,t,a)=>Math.min(Math.max(e,t),a),buildStyles=e=>_reactNative.StyleSheet.create({backdropModal:{flex:1},backdropInline:{..._reactNative.StyleSheet.absoluteFill},sheet:{position:"absolute",left:0,right:0,overflow:"hidden"},body:{overflow:"hidden"},handleRow:{alignItems:"center",justifyContent:"center",alignSelf:"stretch",paddingTop:12,paddingBottom:24},header:{},footer:{},handle:{width:36,height:4,borderRadius:2,..._corners.smoothCorners},content:{flex:1,overflow:"hidden"},scrollContent:{flex:1},modalRoot:{flex:1}});var _default=exports.default=BottomSheet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveBoxStyle=exports.default=exports.Stack=exports.Spacer=exports.Row=exports.Box=void 0;var _react=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resolveBoxStyle=exports.default=exports.Stack=exports.Spacer=exports.Row=exports.Box=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js"),_SquircleFill=require("../SquircleFill/SquircleFill.js"),_jsxRuntime=require("react/jsx-runtime");const space=(e,r)=>null==r?void 0:e.spacing[r],resolveBoxStyle=(e,r)=>{const t={};if(null!=r.p&&(t.padding=space(e,r.p)),null!=r.px&&(t.paddingHorizontal=space(e,r.px)),null!=r.py&&(t.paddingVertical=space(e,r.py)),null!=r.pt&&(t.paddingTop=space(e,r.pt)),null!=r.pr&&(t.paddingRight=space(e,r.pr)),null!=r.pb&&(t.paddingBottom=space(e,r.pb)),null!=r.pl&&(t.paddingLeft=space(e,r.pl)),null!=r.m&&(t.margin=space(e,r.m)),null!=r.mx&&(t.marginHorizontal=space(e,r.mx)),null!=r.my&&(t.marginVertical=space(e,r.my)),null!=r.mt&&(t.marginTop=space(e,r.mt)),null!=r.mr&&(t.marginRight=space(e,r.mr)),null!=r.mb&&(t.marginBottom=space(e,r.mb)),null!=r.ml&&(t.marginLeft=space(e,r.ml)),null!=r.gap&&(t.gap=space(e,r.gap)),null!=r.bg){const l=e.colors.background;t.backgroundColor=l[r.bg]??r.bg}return null!=r.radius&&(t.borderRadius=e.radius[r.radius],t.borderCurve=_corners.smoothCorners.borderCurve),r.border&&(t.borderWidth=e.colors.border.width,t.borderColor=e.colors.border.primary),null!=r.flex&&(t.flex=r.flex),null!=r.align&&(t.alignItems=r.align),null!=r.justify&&(t.justifyContent=r.justify),null!=r.direction&&(t.flexDirection=r.direction),r.wrap&&(t.flexWrap="wrap"),t};exports.resolveBoxStyle=resolveBoxStyle;const Box=exports.Box=(0,_react.forwardRef)((e,r)=>{const t=(0,_index.useTheme)(),{p:l,px:i,py:o,pt:a,pr:s,pb:n,pl:p,m:u,mx:c,my:d,mt:x,mr:m,mb:g,ml:b,gap:y,bg:f,radius:_,border:j,flex:S,align:h,justify:w,direction:R,wrap:v,style:B,children:q,...k}=e,C=resolveBoxStyle(t,{p:l,px:i,py:o,pt:a,pr:s,pb:n,pl:p,m:u,mx:c,my:d,mt:x,mr:m,mb:g,ml:b,gap:y,bg:f,radius:_,border:j,flex:S,align:h,justify:w,direction:R,wrap:v}),N=(0,_SquircleFill.useSquircle)(null!=_&&(null!=f||Boolean(j)),C.borderRadius,k.onLayout),z=N.active?{...C,backgroundColor:"transparent",borderColor:"transparent"}:C;return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:r,...k,onLayout:N.onLayout,style:[z,B],children:[N.active&&N.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:N.size.width,height:N.size.height,radius:C.borderRadius,fill:C.backgroundColor??"transparent",stroke:C.borderColor,strokeWidth:C.borderWidth??0,outset:C.borderWidth??0}):null,q]})});Box.displayName="Box";const Stack=exports.Stack=(0,_react.forwardRef)(({gap:e="md",...r},t)=>(0,_jsxRuntime.jsx)(Box,{ref:t,direction:"column",gap:e,...r}));Stack.displayName="Stack";const Row=exports.Row=(0,_react.forwardRef)(({gap:e="sm",align:r="center",...t},l)=>(0,_jsxRuntime.jsx)(Box,{ref:l,direction:"row",gap:e,align:r,...t}));Row.displayName="Row";const Spacer=({size:e,style:r,testID:t})=>{const l=(0,_index.useTheme)();if(null!=e){const i=l.spacing[e];return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{width:i,height:i},r]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{testID:t,style:[{flex:1},r]})};exports.Spacer=Spacer,Spacer.displayName="Spacer";var _default=exports.default=Box;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.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 i,s,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=r?o:t){if(i.has(e))return i.get(e);i.set(e,n)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((s=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(s.get||s.set)?i(n,r,s):n[r]=e[r]);return n})(e,r)}const Button=exports.Button=(0,_react.forwardRef)((e,r)=>{const{title:t,children:o,variant:i="solid",tone:s="primary",size:n="md",loading:a=!1,disabled:l=!1,fullWidth:d=!1,leftIcon:c,rightIcon:u,iconVariant:b,leftIconBadge:g=!1,haptic:p="selection",rounded:_=!1,gradient:f,style:h,textStyle:m,pressAnimation:x,onPress:y,accessibilityLabel:S,accessibilityHint:j,testID:v,onLayout:R,...C}=e;if(__DEV__&&hasTextChild(o))throw new Error('[@webority/mobile-ui] Button was given its label as text children. Pass it as `title` (<Button title="Save" />): text children draw a blank button with no accessible name.');const k=(0,_index.useTheme)(),I=!l&&!a,w="link"===i,z=x??(!w&&"scale"),F=(0,_usePressAnimation.usePressAnimation)({preset:z||"scale",enabled:!1!==z&&I}),T=(0,_useFlickGuard.useFlickGuard)(),N=(0,_react.useMemo)(()=>buildStyles(k),[k]),W={...sizeMap[n],...k.components.button?.[n]??{}},q=(0,_react.useMemo)(()=>toneFor(k,s),[k,s]),V=(0,_react.useMemo)(()=>variantFor(k,i,q,l),[k,i,q,l]),H=(0,_react.useMemo)(()=>!f||l||"solid"!==i?null:"string"==typeof f?k.gradients[f]??null:f,[f,l,i,k.gradients]),P=_reactNative.StyleSheet.flatten(h)?.borderRadius,A=w?0:"number"==typeof P?P:_?k.radius.full:W.borderRadius,L=(0,_SquircleFill.useSquircle)(!H&&"link"!==i,A,R),O=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,[E,B]=(0,_react.useState)(0),D=w?e=>B(e.nativeEvent.layout.width):void 0,M=S??t,G="outline"===i||"ghost"===i,U=!G&&!w,K={color:V.textColor,size:W.iconSize,disabled:l},X=g&&!w&&Boolean(c),Y=W.minHeight-2*BADGE_INSET-2*V.borderWidth,J={color:V.badgeInk,size:W.badgeIconSize??W.iconSize,disabled:l},Q=(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.contentRow,children:a?(0,_jsxRuntime.jsx)(_index2.Spinner,{variant:"circular",size:"sm",color:V.textColor,accessibilityLabel:"Loading"}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[X?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"button-icon-badge",style:[N.iconLeft,N.iconBadge,{width:Y,height:Y,borderRadius:Y/2,backgroundColor:V.badgeFill}],children:(0,_slotIcon.renderSlotIcon)(c,J,b)}):c?(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.iconLeft,children:(0,_slotIcon.renderSlotIcon)(c,K,b)}):null,t?(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:D,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[N.label,{color:V.textColor,fontSize:W.fontSize,...(0,_index.fontFor)(k,"semibold")},m],numberOfLines:1,children:t}),w?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",testID:"button-link-underline",style:[N.linkUnderline,{backgroundColor:V.textColor,transform:[{translateX:O.interpolate({inputRange:[0,1],outputRange:[-E/2,0]})},{scaleX:O.interpolate({inputRange:[0,1],outputRange:[0,1]})}]}]}):null]}):o,u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:N.iconRight,children:(0,_slotIcon.renderSlotIcon)(u,K,b)}):null]})});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[F.style,d?N.fullWidth:null],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:e=>{I&&!T.isFlick(e)&&(F.press(),!1!==p&&(0,_hapticUtils.triggerHaptic)(p),y?.(e))},onPressIn:e=>{T.onPressIn(e),F.pressIn(),w&&I&&(O.stopAnimation(),O.setValue(0),_reactNative.Animated.timing(O,{toValue:1,duration:k.motion.duration.slower,easing:_reactNative.Easing.bezier(...k.motion.easing.decelerate),useNativeDriver:!0}).start())},onPressOut:()=>{F.pressOut()},disabled:!I,hitSlop:w?LINK_HIT_SLOP:void 0,accessibilityRole:"button",accessibilityLabel:M,accessibilityHint:j,accessibilityState:{disabled:!I,busy:a},testID:v,onLayout:L.onLayout,style:({pressed:e})=>[N.base,{paddingHorizontal:w?0:W.paddingHorizontal,paddingVertical:w?0:X?BADGE_INSET:W.paddingVertical,paddingLeft:X?BADGE_INSET:void 0,minHeight:w?void 0:W.minHeight,borderRadius:A,..._corners.smoothCorners,backgroundColor:H||L.active?"transparent":V.backgroundColor,borderWidth:V.borderWidth,borderColor:L.active?"transparent":V.borderColor,opacity:a?.55:1,overflow:L.active||w?"visible":"hidden"},e&&G&&!L.active?{backgroundColor:k.colors.surface.pressed}:null,d?N.fullWidth:null,h],...C,children:({pressed:e})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[L.active&&L.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:L.size.width,height:L.size.height,radius:A,fill:e&&G?k.colors.surface.pressed:V.backgroundColor,stroke:V.borderColor,strokeWidth:V.borderWidth,outset:V.borderWidth}):null,H?(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:H,style:[_reactNative.StyleSheet.absoluteFill,{borderRadius:A,..._corners.smoothCorners}]}):null,e&&U?L.active&&L.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:L.size.width,height:L.size.height,radius:A,fill:V.pressedTint,outset:V.borderWidth,testID:"button-pressed"}):(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[N.pressedOverlay,{borderRadius:A,backgroundColor:V.pressedTint,..._corners.smoothCorners}],testID:"button-pressed"}):null,Q]})})})});Button.displayName="Button";const hasTextChild=e=>_react.default.Children.toArray(e).some(e=>"string"==typeof e||"number"==typeof e),sizeMap={xs:{paddingHorizontal:10,paddingVertical:4,minHeight:28,fontSize:12,borderRadius:8,iconSize:14,badgeIconSize:11},sm:{paddingHorizontal:12,paddingVertical:6,minHeight:34,fontSize:14,borderRadius:10,iconSize:16},md:{paddingHorizontal:16,paddingVertical:9,minHeight:42,fontSize:16,borderRadius:12,iconSize:18},lg:{paddingHorizontal:20,paddingVertical:12,minHeight:50,fontSize:18,borderRadius:14,iconSize:20},xl:{paddingHorizontal:24,paddingVertical:14,minHeight:58,fontSize:20,borderRadius:16,iconSize:22}},SOFT_FILL_OPACITY=.14,toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primary,on:e.colors.onPrimary,fg:e.colors.primary,soft:(0,_color.tintOf)(e.colors.primary,.14,e.colors.primaryMuted)};case"secondary":return{base:e.colors.secondary,on:e.colors.onSecondary,fg:e.colors.onSecondary,soft:e.colors.secondary};case"success":return{base:e.colors.success,on:e.colors.onSuccess,fg:e.colors.success,soft:(0,_color.tintOf)(e.colors.success,.14,e.colors.background.secondary)};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,fg:e.colors.warning,soft:(0,_color.tintOf)(e.colors.warning,.14,e.colors.background.secondary)};case"error":return{base:e.colors.error,on:e.colors.onError,fg:e.colors.error,soft:(0,_color.tintOf)(e.colors.error,.14,e.colors.background.secondary)};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,fg:e.colors.text.primary,soft:e.colors.background.secondary}}},BADGE_INSET=4,BUTTON_BORDER_WIDTH=1,LINK_HIT_SLOP={top:8,bottom:8,left:8,right:8},variantFor=(e,r,t,o)=>{const i=o?e.colors.text.disabled:t.fg,s={badgeFill:e.colors.surface.disabled,badgeInk:e.colors.text.disabled},n=o?s:{badgeFill:t.on,badgeInk:t.base},a=o?s:{badgeFill:t.base,badgeInk:t.on};switch(r){case"solid":return{backgroundColor:o?e.colors.surface.disabled:t.base,borderColor:"transparent",borderWidth:1,textColor:o?e.colors.text.disabled:t.on,pressedTint:e.colors.surface.pressed,...n};case"soft":return{backgroundColor:o?e.colors.surface.disabled:t.soft,borderColor:"transparent",borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"outline":return{backgroundColor:"transparent",borderColor:o?e.colors.border.primary:t.base,borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"ghost":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"link":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:0,textColor:o?e.colors.text.disabled:e.colors.text.link,pressedTint:e.colors.surface.pressed,...a};case"glass":return{backgroundColor:e.colors.glass.fill,borderColor:e.colors.glass.border,borderWidth:1,textColor:o?e.colors.text.disabled:e.colors.glass.on,pressedTint:_color.ACCENT_PRESSED_TINT,badgeFill:e.colors.glass.badge,badgeInk:o?e.colors.text.disabled:t.base};default:return{backgroundColor:t.base,borderColor:"transparent",borderWidth:1,textColor:t.on,pressedTint:e.colors.surface.pressed,...n}}},buildStyles=e=>_reactNative.StyleSheet.create({pressedOverlay:{position:"absolute",top:0,right:0,bottom:0,left:0},base:{alignItems:"center",justifyContent:"center",flexDirection:"row",overflow:"hidden"},contentRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},linkUnderline:{height:1.5,marginTop:1},iconLeft:{marginRight:8},iconBadge:{alignItems:"center",justifyContent:"center"},iconRight:{marginLeft:8},fullWidth:{alignSelf:"stretch"}});var _default=exports.default=Button;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Button=void 0;var _react=_interopRequireWildcard(require("react")),_reactNative=require("react-native"),_useFlickGuard=require("../../hooks/useFlickGuard.js"),_usePressAnimation=require("../../hooks/usePressAnimation.js"),_index=require("../../theme/index.js"),_animatedValue=require("../../theme/animatedValue.js"),_ariaState=require("../../utils/ariaState.js"),_color=require("../../utils/color.js"),_corners=require("../../utils/corners.js"),_hapticUtils=require("../../utils/hapticUtils.js"),_slotIcon=require("../AppIcon/slotIcon.js"),_index2=require("../Spinner/index.js"),_SquircleFill=require("../SquircleFill/SquircleFill.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 i,s,n={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return n;if(i=r?o:t){if(i.has(e))return i.get(e);i.set(e,n)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((s=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(s.get||s.set)?i(n,r,s):n[r]=e[r]);return n})(e,r)}const Button=exports.Button=(0,_react.forwardRef)((e,r)=>{const{title:t,children:o,variant:i="solid",tone:s="primary",size:n="md",loading:a=!1,disabled:l=!1,fullWidth:d=!1,leftIcon:c,rightIcon:u,iconVariant:b,leftIconBadge:g=!1,haptic:p="selection",rounded:_=!1,gradient:f,style:h,textStyle:m,pressAnimation:x,onPress:y,accessibilityLabel:S,accessibilityHint:j,accessibilityState:v,testID:R,onLayout:C,...k}=e;if(__DEV__&&hasTextChild(o))throw new Error('[@webority/mobile-ui] Button was given its label as text children. Pass it as `title` (<Button title="Save" />): text children draw a blank button with no accessible name.');const I=(0,_index.useTheme)(),w=!l&&!a,z={...v,disabled:!w,busy:a},T="link"===i,F=x??(!T&&"scale"),N=(0,_usePressAnimation.usePressAnimation)({preset:F||"scale",enabled:!1!==F&&w}),q=(0,_useFlickGuard.useFlickGuard)(),W=(0,_react.useMemo)(()=>buildStyles(I),[I]),V={...sizeMap[n],...I.components.button?.[n]??{}},H=(0,_react.useMemo)(()=>toneFor(I,s),[I,s]),P=(0,_react.useMemo)(()=>variantFor(I,i,H,l),[I,i,H,l]),A=(0,_react.useMemo)(()=>!f||l||"solid"!==i?null:"string"==typeof f?I.gradients[f]??null:f,[f,l,i,I.gradients]),L=_reactNative.StyleSheet.flatten(h)?.borderRadius,O=T?0:"number"==typeof L?L:_?I.radius.full:V.borderRadius,E=(0,_SquircleFill.useSquircle)(!A&&"link"!==i,O,C),B=(0,_react.useRef)((0,_animatedValue.createAnimatedValue)(0)).current,[D,M]=(0,_react.useState)(0),G=T?e=>M(e.nativeEvent.layout.width):void 0,U=S??t,K="outline"===i||"ghost"===i,X=!K&&!T,Y={color:P.textColor,size:V.iconSize,disabled:l},J=g&&!T&&Boolean(c),Q=V.minHeight-2*BADGE_INSET-2*P.borderWidth,Z={color:P.badgeInk,size:V.badgeIconSize??V.iconSize,disabled:l},$=(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.contentRow,children:a?(0,_jsxRuntime.jsx)(_index2.Spinner,{variant:"circular",size:"sm",color:P.textColor,accessibilityLabel:"Loading"}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[J?(0,_jsxRuntime.jsx)(_reactNative.View,{testID:"button-icon-badge",style:[W.iconLeft,W.iconBadge,{width:Q,height:Q,borderRadius:Q/2,backgroundColor:P.badgeFill}],children:(0,_slotIcon.renderSlotIcon)(c,Z,b)}):c?(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.iconLeft,children:(0,_slotIcon.renderSlotIcon)(c,Y,b)}):null,t?(0,_jsxRuntime.jsxs)(_reactNative.View,{onLayout:G,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[W.label,{color:P.textColor,fontSize:V.fontSize,...(0,_index.fontFor)(I,"semibold")},m],numberOfLines:1,children:t}),T?(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:"none",testID:"button-link-underline",style:[W.linkUnderline,{backgroundColor:P.textColor,transform:[{translateX:B.interpolate({inputRange:[0,1],outputRange:[-D/2,0]})},{scaleX:B.interpolate({inputRange:[0,1],outputRange:[0,1]})}]}]}):null]}):o,u?(0,_jsxRuntime.jsx)(_reactNative.View,{style:W.iconRight,children:(0,_slotIcon.renderSlotIcon)(u,Y,b)}):null]})});return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[N.style,d?W.fullWidth:null],children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{ref:r,onPress:e=>{w&&!q.isFlick(e)&&(N.press(),!1!==p&&(0,_hapticUtils.triggerHaptic)(p),y?.(e))},onPressIn:e=>{q.onPressIn(e),N.pressIn(),T&&w&&(B.stopAnimation(),B.setValue(0),_reactNative.Animated.timing(B,{toValue:1,duration:I.motion.duration.slower,easing:_reactNative.Easing.bezier(...I.motion.easing.decelerate),useNativeDriver:!0}).start())},onPressOut:()=>{N.pressOut()},disabled:!w,hitSlop:T?LINK_HIT_SLOP:void 0,accessibilityRole:"button",accessibilityLabel:U,accessibilityHint:j,accessibilityState:z,...(0,_ariaState.ariaFromState)(z),testID:R,onLayout:E.onLayout,style:({pressed:e})=>[W.base,{paddingHorizontal:T?0:V.paddingHorizontal,paddingVertical:T?0:J?BADGE_INSET:V.paddingVertical,paddingLeft:J?BADGE_INSET:void 0,minHeight:T?void 0:V.minHeight,borderRadius:O,..._corners.smoothCorners,backgroundColor:A||E.active?"transparent":P.backgroundColor,borderWidth:P.borderWidth,borderColor:E.active?"transparent":P.borderColor,opacity:a?.55:1,overflow:E.active||T?"visible":"hidden"},e&&K&&!E.active?{backgroundColor:I.colors.surface.pressed}:null,d?W.fullWidth:null,h],...k,"aria-disabled":!w,"aria-busy":a,children:({pressed:e})=>(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[E.active&&E.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:E.size.width,height:E.size.height,radius:O,fill:e&&K?I.colors.surface.pressed:P.backgroundColor,stroke:P.borderColor,strokeWidth:P.borderWidth,outset:P.borderWidth}):null,A?(0,_jsxRuntime.jsx)(_index.Gradient,{gradient:A,style:[_reactNative.StyleSheet.absoluteFill,{borderRadius:O,..._corners.smoothCorners}]}):null,e&&X?E.active&&E.size?(0,_jsxRuntime.jsx)(_SquircleFill.SquircleFill,{width:E.size.width,height:E.size.height,radius:O,fill:P.pressedTint,outset:P.borderWidth,testID:"button-pressed"}):(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[W.pressedOverlay,{borderRadius:O,backgroundColor:P.pressedTint,..._corners.smoothCorners}],testID:"button-pressed"}):null,$]})})})});Button.displayName="Button";const hasTextChild=e=>_react.default.Children.toArray(e).some(e=>"string"==typeof e||"number"==typeof e),sizeMap={xs:{paddingHorizontal:10,paddingVertical:4,minHeight:28,fontSize:12,borderRadius:8,iconSize:14,badgeIconSize:11},sm:{paddingHorizontal:12,paddingVertical:6,minHeight:34,fontSize:14,borderRadius:10,iconSize:16},md:{paddingHorizontal:16,paddingVertical:9,minHeight:42,fontSize:16,borderRadius:12,iconSize:18},lg:{paddingHorizontal:20,paddingVertical:12,minHeight:50,fontSize:18,borderRadius:14,iconSize:20},xl:{paddingHorizontal:24,paddingVertical:14,minHeight:58,fontSize:20,borderRadius:16,iconSize:22}},SOFT_FILL_OPACITY=.14,toneFor=(e,r)=>{switch(r){case"primary":return{base:e.colors.primary,on:e.colors.onPrimary,fg:e.colors.toneText.primary,soft:(0,_color.tintOf)(e.colors.primary,.14,e.colors.primaryMuted)};case"secondary":return{base:e.colors.secondary,on:e.colors.onSecondary,fg:e.colors.onSecondary,soft:e.colors.secondary};case"success":return{base:e.colors.success,on:e.colors.onSuccess,fg:e.colors.toneText.success,soft:(0,_color.tintOf)(e.colors.success,.14,e.colors.background.secondary)};case"warning":return{base:e.colors.warning,on:e.colors.onWarning,fg:e.colors.toneText.warning,soft:(0,_color.tintOf)(e.colors.warning,.14,e.colors.background.secondary)};case"error":return{base:e.colors.error,on:e.colors.onError,fg:e.colors.toneText.error,soft:(0,_color.tintOf)(e.colors.error,.14,e.colors.background.secondary)};default:return{base:e.colors.background.tertiary,on:e.colors.text.primary,fg:e.colors.text.primary,soft:e.colors.background.secondary}}},BADGE_INSET=4,BUTTON_BORDER_WIDTH=1,LINK_HIT_SLOP={top:8,bottom:8,left:8,right:8},variantFor=(e,r,t,o)=>{const i=o?e.colors.text.disabled:t.fg,s={badgeFill:e.colors.surface.disabled,badgeInk:e.colors.text.disabled},n=o?s:{badgeFill:t.on,badgeInk:t.base},a=o?s:{badgeFill:t.base,badgeInk:t.on};switch(r){case"solid":return{backgroundColor:o?e.colors.surface.disabled:t.base,borderColor:"transparent",borderWidth:1,textColor:o?e.colors.text.disabled:t.on,pressedTint:e.colors.surface.pressed,...n};case"soft":return{backgroundColor:o?e.colors.surface.disabled:t.soft,borderColor:"transparent",borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"outline":return{backgroundColor:"transparent",borderColor:o?e.colors.border.primary:t.base,borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"ghost":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:1,textColor:i,pressedTint:e.colors.surface.pressed,...a};case"link":return{backgroundColor:"transparent",borderColor:"transparent",borderWidth:0,textColor:o?e.colors.text.disabled:e.colors.text.link,pressedTint:e.colors.surface.pressed,...a};case"glass":return{backgroundColor:e.colors.glass.fill,borderColor:e.colors.glass.border,borderWidth:1,textColor:o?e.colors.text.disabled:e.colors.glass.on,pressedTint:_color.ACCENT_PRESSED_TINT,badgeFill:e.colors.glass.badge,badgeInk:o?e.colors.text.disabled:t.base};default:return{backgroundColor:t.base,borderColor:"transparent",borderWidth:1,textColor:t.on,pressedTint:e.colors.surface.pressed,...n}}},buildStyles=e=>_reactNative.StyleSheet.create({pressedOverlay:{position:"absolute",top:0,right:0,bottom:0,left:0},base:{alignItems:"center",justifyContent:"center",flexDirection:"row",overflow:"hidden"},contentRow:{flexDirection:"row",alignItems:"center",justifyContent:"center"},label:{textAlign:"center",includeFontPadding:!1,textAlignVertical:"center"},linkUnderline:{height:1.5,marginTop:1},iconLeft:{marginRight:8},iconBadge:{alignItems:"center",justifyContent:"center"},iconRight:{marginLeft:8},fullWidth:{alignSelf:"stretch"}});var _default=exports.default=Button;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Calendar=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"),_CalendarDay=require("./CalendarDay.js"),_calendarDates=require("./calendarDates.js"),_calendarStyles=require("./calendarStyles.js"),_jsxRuntime=require("react/jsx-runtime");const DEFAULT_TONE={holiday:"error",event:"primary",pending:"warning"},MAX_DOTS=3,DAY_TEXT_MAX_SCALE=1.5,toneColor=(e,t)=>{switch(t){case"success":return e.colors.success;case"warning":return e.colors.warning;case"error":return e.colors.error;case"info":return e.colors.info;case"primary":return e.colors.primary;default:return e.colors.text.secondary}},toneInk=(e,t)=>"neutral"===t?e.colors.text.secondary:e.colors.toneText[t],Calendar=exports.Calendar=(0,_react.forwardRef)((e,t)=>{const{mode:a="single",value:r,onChange:n,month:i,onMonthChange:s,minDate:l,maxDate:o,disabledDates:c,weekStartsOn:d=0,locale:u="en-IN",markedDates:_,strikeMarkedInRange:m=!1,cellSize:y,haptic:h,accessibilityLabel:x,style:v,headerLabelStyle:g,navButtonStyle:p,testID:D}=e,b=(0,_index2.useTheme)(),f=(0,_react.useMemo)(()=>(0,_calendarStyles.buildCalendarStyles)(b),[b]),[N,M]=(0,_index.useControllableState)({value:i?(0,_calendarDates.startOfMonth)(i):void 0,defaultValue:(0,_calendarDates.startOfMonth)(r?.start??new Date),onChange:s}),j=12*N.getFullYear()+N.getMonth(),S=r?.start?(0,_calendarDates.startOfDay)(r.start):null,k="range"===a&&r?.end?(0,_calendarDates.startOfDay)(r.end):null,w=S?.getTime()??null,T=k?.getTime()??null,R=(0,_calendarDates.toIso)(new Date),C=l?(0,_calendarDates.startOfDay)(l).getTime():null,I=o?(0,_calendarDates.startOfDay)(o).getTime():null,L=(0,_react.useMemo)(()=>new Set((c??[]).map(e=>(0,_calendarDates.toIso)(e))),[c]),A=(0,_react.useCallback)(e=>null!==C&&e.getTime()<C||null!==I&&e.getTime()>I||L.has((0,_calendarDates.toIso)(e)),[C,I,L]),E=(0,_react.useMemo)(()=>{const e=new Map;for(const t of _??[]){const a=(0,_calendarDates.toIso)(t.date);let r=e.get(a);r||(r={dots:[],holiday:!1,spoken:[]},e.set(a,r));const n=t.tone??DEFAULT_TONE[t.kind],i=toneColor(b,n);r.dots.length<3&&r.dots.push({key:`${t.kind}-${r.dots.length}`,color:i}),"holiday"===t.kind&&(r.holiday=!0,r.holidayInk??=toneInk(b,n)),t.label&&r.spoken.push(t.label),r.spoken.push(t.kind)}return e},[_,b]),O=(0,_react.useMemo)(()=>(0,_calendarDates.buildMonthMatrix)(new Date(Math.floor(j/12),j%12,1),d),[j,d]),V=(0,_react.useMemo)(()=>(0,_calendarDates.weekdayLabels)(u,d),[u,d]),F=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{month:"long",year:"numeric"}),[u]),q=(0,_react.useMemo)(()=>new Intl.DateTimeFormat(u,{weekday:"short",day:"numeric",month:"long"}),[u]),P=F.format(N),z=null===C||(0,_calendarDates.startOfMonth)(new Date(C)).getTime()<N.getTime(),B=null===I||(0,_calendarDates.startOfMonth)(new Date(I)).getTime()>N.getTime(),H=(0,_react.useRef)((0,_index2.createAnimatedValue)(0)).current,X=(0,_react.useRef)((0,_index2.createAnimatedValue)(1)).current,Z=(0,_react.useRef)(null);(0,_react.useEffect)(()=>()=>Z.current?.stop(),[]);const $=(0,_react.useCallback)(e=>{!1!==h&&(0,_index3.triggerHaptic)("impactLight");const t=b.components.dateRangePicker,a=t?.monthSlideDistance??32,r=t?.monthSlideOutDuration??b.motion.duration.fast,n=t?.monthSlideInDuration??b.motion.duration.fast;Z.current?.stop(),Z.current=_reactNative.Animated.sequence([_reactNative.Animated.parallel([_reactNative.Animated.timing(H,{toValue:-e*a,duration:r,easing:_reactNative.Easing.out(_reactNative.Easing.quad),useNativeDriver:!0}),_reactNative.Animated.timing(X,{toValue:0,duration:r,useNativeDriver:!0})]),_reactNative.Animated.timing(H,{toValue:e*a,duration:0,useNativeDriver:!0}),_reactNative.Animated.parallel([_reactNative.Animated.timing(H,{toValue:0,duration:n,easing:_reactNative.Easing.out(_reactNative.Easing.cubic),useNativeDriver:!0}),_reactNative.Animated.timing(X,{toValue:1,duration:n,useNativeDriver:!0})])]),Z.current.start();const i=(0,_calendarDates.addMonths)(N,e);M(i),_reactNative.AccessibilityInfo.announceForAccessibility(F.format(i))},[h,N,X,F,H,M,b]),U=(0,_react.useCallback)(()=>$(-1),[$]),Y=(0,_react.useCallback)(()=>$(1),[$]),pressDay=e=>{if(A(e.date))return;const t=(0,_index3.resolveHaptic)(h,"selection");t&&(0,_index3.triggerHaptic)(t);const r=e.date;"single"===a||!S||k||r.getTime()<S.getTime()?n({start:r}):n({start:S,end:r}),e.inMonth||M((0,_calendarDates.startOfMonth)(r))},G=(0,_react.useRef)(pressDay);(0,_react.useLayoutEffect)(()=>{G.current=pressDay});const W=(0,_react.useCallback)(e=>G.current(e),[]),J=void 0===y?void 0:Math.max(y,_calendarStyles.MIN_CELL_SIZE),K=(0,_react.useMemo)(()=>void 0===J?{flex:1}:{width:J},[J]),Q=(0,_react.useMemo)(()=>void 0===J?{flex:1,aspectRatio:1,minHeight:_calendarStyles.MIN_CELL_SIZE}:{width:J,height:J},[J]),ee=b.components.dateRangePicker?.navButtonSize??_calendarStyles.NAV_BUTTON_SIZE,te=Math.max(b.spacing.sm,(_calendarStyles.MIN_CELL_SIZE-ee)/2),ae=Math.min(b.maxFontSizeMultiplier??1.5,1.5),re=[];for(let e=0;e<_calendarDates.GRID_CELLS;e+=7)re.push(O.slice(e,e+7));return(0,_jsxRuntime.jsxs)(_reactNative.View,{ref:t,style:[f.root,v],testID:D,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:f.headerRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:U,disabled:!z,style:({pressed:e})=>[f.navBtn,e&&f.navBtnPressed,!z&&f.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Previous month",accessibilityState:{disabled:!z},"aria-disabled":!z,hitSlop:te,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:f.navText,maxFontSizeMultiplier:ae,children:"‹"})}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:[f.headerLabelWrap,{opacity:X,transform:[{translateX:H}]},g],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:f.headerLabel,accessibilityRole:"header",accessibilityLabel:x?`${x}, ${P}`:void 0,maxFontSizeMultiplier:b.maxFontSizeMultiplier,children:P})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:Y,disabled:!B,style:({pressed:e})=>[f.navBtn,e&&f.navBtnPressed,!B&&f.navBtnDisabled,p],accessibilityRole:"button",accessibilityLabel:"Next month",accessibilityState:{disabled:!B},"aria-disabled":!B,hitSlop:te,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:f.navText,maxFontSizeMultiplier:ae,children:"›"})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.weekdayRow,accessibilityElementsHidden:!0,importantForAccessibility:"no-hide-descendants",children:V.map(({weekday:e,label:t})=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[f.weekdayCell,K],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:f.weekdayText,maxFontSizeMultiplier:ae,children:t})},e))}),(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{style:{opacity:X,transform:[{translateX:H}]},children:re.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:f.gridRow,children:e.map(e=>{const t=e.date.getTime(),r=null!==w&&t===w,n=null!==T&&t===T,i=null!==w&&null!==T&&t>=w&&t<=T,s=i&&!r&&!n,l=e.iso===R,o=E.get(e.iso),c=m&&i&&!0===o?.holiday,d=[q.format(e.date),...o?.spoken??[]];return l&&d.push("today"),"range"===a&&(r&&n?d.push("start and end of your range"):r?d.push("start of your range"):n?d.push("end of your range"):s&&d.push("in your range")),c&&d.push("not counted"),(0,_jsxRuntime.jsx)(_CalendarDay.CalendarDay,{cell:e,accessibilityLabel:d.join(", "),disabled:A(e.date),edge:r||n,mid:s,barLeft:i&&(n||s)&&!(r&&n),barRight:i&&(r||s)&&!(r&&n),today:l,struck:c,dots:o?.dots,inkColor:o?.holidayInk,cellStyle:Q,styles:f,maxFontSizeMultiplier:ae,onPressDay:W},e.iso)})},e[0].iso))})]})});Calendar.displayName="Calendar";var _default=exports.default=Calendar;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CalendarDay=void 0;var _react=require("react"),_reactNative=require("react-native"),_index=require("../../theme/index.js"),_jsxRuntime=require("react/jsx-runtime");const DISABLED_OPACITY=.3,OUTSIDE_MONTH_OPACITY=.4,TODAY_RING_WIDTH=1.5,CalendarDayBase=({cell:e,accessibilityLabel:t,disabled:a,edge:i,mid:r,barLeft:l,barRight:s,today:n,struck:d,dots:o,inkColor:c,cellStyle:y,styles:u,maxFontSizeMultiplier:x,onPressDay:_})=>{const b=(0,_index.useTheme)(),{colors:m}=b,j=i?m.onPrimary:e.inMonth?a?m.text.disabled:c??m.text.primary:m.text.tertiary,v=n&&!i;return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{disabled:a,onPress:()=>_(e),accessibilityRole:"button",accessibilityLabel:t,accessibilityState:{selected:i,disabled:a},"aria-selected":i,"aria-disabled":a,style:[u.dayCell,y],children:[l?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barLeft,u.rangeFill]}):null,s?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:[u.barRight,u.rangeFill]}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[u.dayInner,i?u.dayEdge:r?u.rangeFill:null,r?u.dayMid:null,v?{borderColor:m.primary,borderWidth:1.5}:null,{opacity:a?.3:e.inMonth?1:.4}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[u.dayText,{color:j},d?u.dayStruck:null],maxFontSizeMultiplier:x,children:e.date.getDate()}),o&&o.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{pointerEvents:"none",style:u.dots,children:o.map(e=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[u.dot,{backgroundColor:i?m.onPrimary:e.color}]},e.key))}):null]})]})},CalendarDay=exports.CalendarDay=(0,_react.memo)(CalendarDayBase);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.weekdayLabels=exports.toIso=exports.startOfMonth=exports.startOfDay=exports.isSameDay=exports.daysBetween=exports.buildMonthMatrix=exports.addMonths=exports.GRID_CELLS=void 0;const DAY_MS=864e5,GRID_CELLS=exports.GRID_CELLS=42,startOfDay=t=>new Date(t.getFullYear(),t.getMonth(),t.getDate());exports.startOfDay=startOfDay;const startOfMonth=t=>new Date(t.getFullYear(),t.getMonth(),1);exports.startOfMonth=startOfMonth;const addMonths=(t,e)=>new Date(t.getFullYear(),t.getMonth()+e,1);exports.addMonths=addMonths;const isSameDay=(t,e)=>t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate();exports.isSameDay=isSameDay;const toIso=t=>`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`;exports.toIso=toIso;const daysBetween=(t,e)=>Math.round((startOfDay(e).getTime()-startOfDay(t).getTime())/DAY_MS);exports.daysBetween=daysBetween;const buildMonthMatrix=(t,e)=>{const a=t.getFullYear(),o=t.getMonth(),s=(new Date(a,o,1).getDay()-e+7)%7,r=[];for(let t=0;t<GRID_CELLS;t+=1){const e=new Date(a,o,1-s+t);r.push({date:e,iso:toIso(e),inMonth:e.getMonth()===o})}return r};exports.buildMonthMatrix=buildMonthMatrix;const weekdayLabels=(t,e)=>{const a=new Intl.DateTimeFormat(t,{weekday:"short"}),o=[];for(let t=0;t<7;t+=1){const s=(e+t)%7;o.push({weekday:s,label:a.format(new Date(1970,0,4+s))})}return o};exports.weekdayLabels=weekdayLabels;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildCalendarStyles=exports.NAV_BUTTON_SIZE=exports.MIN_CELL_SIZE=void 0;var _reactNative=require("react-native"),_index=require("../../theme/index.js"),_corners=require("../../utils/corners.js");const MIN_CELL_SIZE=exports.MIN_CELL_SIZE=44,NAV_BUTTON_SIZE=exports.NAV_BUTTON_SIZE=36,DOT_SIZE=5,buildCalendarStyles=e=>{const t=e.components.dateRangePicker,r=t?.navButtonSize??NAV_BUTTON_SIZE;return _reactNative.StyleSheet.create({root:{alignSelf:"stretch"},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:e.spacing.md},navBtn:{width:r,height:r,borderRadius:e.radius.full,..._corners.smoothCorners,alignItems:"center",justifyContent:"center",backgroundColor:e.colors.background.secondary},navBtnPressed:{backgroundColor:e.colors.surface.pressed},navBtnDisabled:{opacity:.4},navText:{fontSize:t?.navTextFontSize??22,lineHeight:t?.navTextLineHeight??24,color:e.colors.text.primary,...(0,_index.fontFor)(e,"semibold")},headerLabelWrap:{flex:1,alignItems:"center"},headerLabel:{fontSize:e.typography.fontSize.base,color:e.colors.text.primary,...(0,_index.fontFor)(e,"semibold")},weekdayRow:{flexDirection:"row",justifyContent:"center",marginBottom:e.spacing.xs},weekdayCell:{alignItems:"center",paddingVertical:e.spacing.xs},weekdayText:{fontSize:e.typography.fontSize.xs,color:e.colors.text.tertiary,letterSpacing:e.typography.letterSpacing.wide,...(0,_index.fontFor)(e,"medium")},gridRow:{flexDirection:"row",justifyContent:"center"},dayCell:{alignItems:"center",justifyContent:"center",padding:0},barLeft:{position:"absolute",left:0,right:"50%",top:"5%",bottom:"5%"},barRight:{position:"absolute",left:"50%",right:0,top:"5%",bottom:"5%"},rangeFill:{backgroundColor:e.colors.primaryMuted},dayInner:{width:"90%",height:"90%",alignItems:"center",justifyContent:"center",borderRadius:e.radius.full,..._corners.smoothCorners},dayEdge:{backgroundColor:e.colors.primary},dayMid:{borderRadius:e.radius.none},dayText:{fontSize:e.typography.fontSize.sm,...(0,_index.fontFor)(e,"medium")},dayStruck:{textDecorationLine:"line-through"},dots:{position:"absolute",bottom:e.spacing.xs,flexDirection:"row",gap:e.spacing.xxs},dot:{width:5,height:5,borderRadius:e.radius.full,..._corners.smoothCorners}})};exports.buildCalendarStyles=buildCalendarStyles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Calendar",{enumerable:!0,get:function(){return _Calendar.Calendar}}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return _Calendar.default}});var _Calendar=_interopRequireWildcard(require("./Calendar.js"));function _interopRequireWildcard(e,r){if("function"==typeof WeakMap)var t=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function(e,r){if(!r&&e&&e.__esModule)return e;var a,o,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(a=r?n:t){if(a.has(e))return a.get(e);a.set(e,u)}for(const r in e)"default"!==r&&{}.hasOwnProperty.call(e,r)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,r))&&(o.get||o.set)?a(u,r,o):u[r]=e[r]);return u})(e,r)}
|