@artsy/palette-mobile 13.2.34 → 13.2.35
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/dist/Theme.d.ts +17 -0
- package/dist/Theme.js +20 -0
- package/dist/animation/CssTransition.d.ts +17 -0
- package/dist/animation/CssTransition.js +48 -0
- package/dist/animation/index.d.ts +1 -0
- package/dist/animation/index.js +1 -0
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +12 -0
- package/dist/elements/ArtsyKeyboardAvoidingView/ArtsyKeyboardAvoidingView.d.ts +13 -0
- package/dist/elements/ArtsyKeyboardAvoidingView/ArtsyKeyboardAvoidingView.js +118 -0
- package/dist/elements/ArtsyKeyboardAvoidingView/index.d.ts +1 -0
- package/dist/elements/ArtsyKeyboardAvoidingView/index.js +1 -0
- package/dist/elements/Autocomplete/Autocomplete.d.ts +13 -0
- package/dist/elements/Autocomplete/Autocomplete.js +49 -0
- package/dist/elements/Autocomplete/Autocomplete.tests.d.ts +1 -0
- package/dist/elements/Autocomplete/Autocomplete.tests.js +78 -0
- package/dist/elements/Autocomplete/index.d.ts +1 -0
- package/dist/elements/Autocomplete/index.js +1 -0
- package/dist/elements/Avatar/Avatar.d.ts +11 -0
- package/dist/elements/Avatar/Avatar.js +50 -0
- package/dist/elements/Avatar/Avatar.stories.d.ts +8 -0
- package/dist/elements/Avatar/Avatar.stories.js +11 -0
- package/dist/elements/Avatar/Avatar.tests.d.ts +1 -0
- package/dist/elements/Avatar/Avatar.tests.js +12 -0
- package/dist/elements/Avatar/index.d.ts +1 -0
- package/dist/elements/Avatar/index.js +1 -0
- package/dist/elements/BackButton/BackButton.d.ts +13 -0
- package/dist/elements/BackButton/BackButton.js +11 -0
- package/dist/elements/BackButton/BackButton.stories.d.ts +7 -0
- package/dist/elements/BackButton/BackButton.stories.js +10 -0
- package/dist/elements/BackButton/index.d.ts +1 -0
- package/dist/elements/BackButton/index.js +1 -0
- package/dist/elements/Banner/Banner.d.ts +33 -0
- package/dist/elements/Banner/Banner.js +55 -0
- package/dist/elements/Banner/Banner.stories.d.ts +7 -0
- package/dist/elements/Banner/Banner.stories.js +10 -0
- package/dist/elements/Banner/index.d.ts +1 -0
- package/dist/elements/Banner/index.js +1 -0
- package/dist/elements/BorderBox/BorderBox.d.ts +12 -0
- package/dist/elements/BorderBox/BorderBox.js +15 -0
- package/dist/elements/BorderBox/index.d.ts +1 -0
- package/dist/elements/BorderBox/index.js +1 -0
- package/dist/elements/Box/Box.d.ts +15 -0
- package/dist/elements/Box/Box.js +15 -0
- package/dist/elements/Box/Box.stories.d.ts +10 -0
- package/dist/elements/Box/Box.stories.js +18 -0
- package/dist/elements/Box/index.d.ts +1 -0
- package/dist/elements/Box/index.js +1 -0
- package/dist/elements/Button/Button.d.ts +40 -0
- package/dist/elements/Button/Button.js +335 -0
- package/dist/elements/Button/Button.stories.d.ts +11 -0
- package/dist/elements/Button/Button.stories.js +35 -0
- package/dist/elements/Button/CTAButton.d.ts +3 -0
- package/dist/elements/Button/CTAButton.js +3 -0
- package/dist/elements/Button/FollowButton.d.ts +9 -0
- package/dist/elements/Button/FollowButton.js +8 -0
- package/dist/elements/Button/LinkButton.d.ts +3 -0
- package/dist/elements/Button/LinkButton.js +4 -0
- package/dist/elements/Button/colors.d.ts +9 -0
- package/dist/elements/Button/colors.js +74 -0
- package/dist/elements/Button/index.d.ts +4 -0
- package/dist/elements/Button/index.js +4 -0
- package/dist/elements/ButtonNew/Button.d.ts +34 -0
- package/dist/elements/ButtonNew/Button.js +102 -0
- package/dist/elements/ButtonNew/Button.stories.d.ts +18 -0
- package/dist/elements/ButtonNew/Button.stories.js +52 -0
- package/dist/elements/ButtonNew/Button.tests.d.ts +1 -0
- package/dist/elements/ButtonNew/Button.tests.js +29 -0
- package/dist/elements/ButtonNew/CTAButton.d.ts +3 -0
- package/dist/elements/ButtonNew/CTAButton.js +3 -0
- package/dist/elements/ButtonNew/FollowButton.d.ts +9 -0
- package/dist/elements/ButtonNew/FollowButton.js +8 -0
- package/dist/elements/ButtonNew/LinkButton.d.ts +3 -0
- package/dist/elements/ButtonNew/LinkButton.js +4 -0
- package/dist/elements/ButtonNew/colors.d.ts +9 -0
- package/dist/elements/ButtonNew/colors.js +74 -0
- package/dist/elements/ButtonNew/index.d.ts +4 -0
- package/dist/elements/ButtonNew/index.js +4 -0
- package/dist/elements/Checkbox/Check.d.ts +10 -0
- package/dist/elements/Checkbox/Check.js +65 -0
- package/dist/elements/Checkbox/Checkbox.d.ts +20 -0
- package/dist/elements/Checkbox/Checkbox.js +77 -0
- package/dist/elements/Checkbox/Checkbox.stories.d.ts +7 -0
- package/dist/elements/Checkbox/Checkbox.stories.js +12 -0
- package/dist/elements/Checkbox/index.d.ts +2 -0
- package/dist/elements/Checkbox/index.js +2 -0
- package/dist/elements/ClassTheme/ClassTheme.d.ts +6 -0
- package/dist/elements/ClassTheme/ClassTheme.js +6 -0
- package/dist/elements/ClassTheme/index.d.ts +1 -0
- package/dist/elements/ClassTheme/index.js +1 -0
- package/dist/elements/Collapse/Collapse.d.ts +6 -0
- package/dist/elements/Collapse/Collapse.js +8 -0
- package/dist/elements/Collapse/Collapse.stories.d.ts +7 -0
- package/dist/elements/Collapse/Collapse.stories.js +12 -0
- package/dist/elements/Collapse/index.d.ts +1 -0
- package/dist/elements/Collapse/index.js +1 -0
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.d.ts +20 -0
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.js +43 -0
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.stories.d.ts +12 -0
- package/dist/elements/CollapsibleMenuItem/CollapsibleMenuItem.stories.js +86 -0
- package/dist/elements/CollapsibleMenuItem/index.d.ts +1 -0
- package/dist/elements/CollapsibleMenuItem/index.js +1 -0
- package/dist/elements/Dialog/Dialog.d.ts +15 -0
- package/dist/elements/Dialog/Dialog.js +68 -0
- package/dist/elements/Dialog/Dialog.stories.d.ts +1 -0
- package/dist/elements/Dialog/Dialog.stories.js +22 -0
- package/dist/elements/Dialog/Dialog.tests.d.ts +1 -0
- package/dist/elements/Dialog/Dialog.tests.js +54 -0
- package/dist/elements/Dialog/index.d.ts +1 -0
- package/dist/elements/Dialog/index.js +1 -0
- package/dist/elements/EntityHeader/EntityHeader.d.ts +19 -0
- package/dist/elements/EntityHeader/EntityHeader.js +21 -0
- package/dist/elements/EntityHeader/EntityHeader.stories.d.ts +11 -0
- package/dist/elements/EntityHeader/EntityHeader.stories.js +25 -0
- package/dist/elements/EntityHeader/index.d.ts +1 -0
- package/dist/elements/EntityHeader/index.js +1 -0
- package/dist/elements/Flex/Flex.d.ts +5 -0
- package/dist/elements/Flex/Flex.js +4 -0
- package/dist/elements/Flex/index.d.ts +1 -0
- package/dist/elements/Flex/index.js +1 -0
- package/dist/elements/Header/ArtsyLogoHeader.d.ts +6 -0
- package/dist/elements/Header/ArtsyLogoHeader.js +17 -0
- package/dist/elements/Header/index.d.ts +1 -0
- package/dist/elements/Header/index.js +1 -0
- package/dist/elements/Histogram/Histogram.d.ts +12 -0
- package/dist/elements/Histogram/Histogram.js +23 -0
- package/dist/elements/Histogram/index.d.ts +1 -0
- package/dist/elements/Histogram/index.js +1 -0
- package/dist/elements/Image/Image.d.ts +24 -0
- package/dist/elements/Image/Image.js +75 -0
- package/dist/elements/Image/Image.stories.d.ts +1 -0
- package/dist/elements/Image/Image.stories.js +16 -0
- package/dist/elements/Image/index.d.ts +1 -0
- package/dist/elements/Image/index.js +1 -0
- package/dist/elements/Input/Input.d.ts +78 -0
- package/dist/elements/Input/Input.js +363 -0
- package/dist/elements/Input/Input.stories.d.ts +1 -0
- package/dist/elements/Input/Input.stories.js +9 -0
- package/dist/elements/Input/Input.tests.d.ts +1 -0
- package/dist/elements/Input/Input.tests.js +50 -0
- package/dist/elements/Input/InputTitle.d.ts +6 -0
- package/dist/elements/Input/InputTitle.js +8 -0
- package/dist/elements/Input/helpers.d.ts +42 -0
- package/dist/elements/Input/helpers.js +107 -0
- package/dist/elements/Input/index.d.ts +3 -0
- package/dist/elements/Input/index.js +3 -0
- package/dist/elements/Input/maskValue.d.ts +6 -0
- package/dist/elements/Input/maskValue.js +44 -0
- package/dist/elements/Input/maskValue.tests.d.ts +1 -0
- package/dist/elements/Input/maskValue.tests.js +56 -0
- package/dist/elements/Join/Join.d.ts +29 -0
- package/dist/elements/Join/Join.js +37 -0
- package/dist/elements/Join/index.d.ts +1 -0
- package/dist/elements/Join/index.js +1 -0
- package/dist/elements/LazyFlatlist/LazyFlatlist.d.ts +10 -0
- package/dist/elements/LazyFlatlist/LazyFlatlist.js +15 -0
- package/dist/elements/LazyFlatlist/index.d.ts +2 -0
- package/dist/elements/LazyFlatlist/index.js +2 -0
- package/dist/elements/LazyFlatlist/useHasSeenItem.d.ts +12 -0
- package/dist/elements/LazyFlatlist/useHasSeenItem.js +27 -0
- package/dist/elements/LegacyScreen/LegacyScreen.d.ts +35 -0
- package/dist/elements/LegacyScreen/LegacyScreen.js +132 -0
- package/dist/elements/LegacyScreen/index.d.ts +1 -0
- package/dist/elements/LegacyScreen/index.js +1 -0
- package/dist/elements/LegacyTabs/ContentTabs.d.ts +6 -0
- package/dist/elements/LegacyTabs/ContentTabs.js +22 -0
- package/dist/elements/LegacyTabs/NavigationalTabs.d.ts +7 -0
- package/dist/elements/LegacyTabs/NavigationalTabs.js +25 -0
- package/dist/elements/LegacyTabs/StepTabs.d.ts +7 -0
- package/dist/elements/LegacyTabs/StepTabs.js +34 -0
- package/dist/elements/LegacyTabs/Tab.d.ts +11 -0
- package/dist/elements/LegacyTabs/Tab.js +20 -0
- package/dist/elements/LegacyTabs/TabBarContainer.d.ts +24 -0
- package/dist/elements/LegacyTabs/TabBarContainer.js +83 -0
- package/dist/elements/LegacyTabs/index.d.ts +18 -0
- package/dist/elements/LegacyTabs/index.js +10 -0
- package/dist/elements/List/BulletedItem.d.ts +8 -0
- package/dist/elements/List/BulletedItem.js +8 -0
- package/dist/elements/List/List.stories.d.ts +1 -0
- package/dist/elements/List/List.stories.js +8 -0
- package/dist/elements/List/index.d.ts +1 -0
- package/dist/elements/List/index.js +1 -0
- package/dist/elements/MeasuredView/MeasuredView.d.ts +19 -0
- package/dist/elements/MeasuredView/MeasuredView.js +24 -0
- package/dist/elements/MeasuredView/index.d.ts +1 -0
- package/dist/elements/MeasuredView/index.js +1 -0
- package/dist/elements/MenuItem/MenuItem.d.ts +11 -0
- package/dist/elements/MenuItem/MenuItem.js +10 -0
- package/dist/elements/MenuItem/MenuItem.stories.d.ts +7 -0
- package/dist/elements/MenuItem/MenuItem.stories.js +7 -0
- package/dist/elements/MenuItem/index.d.ts +1 -0
- package/dist/elements/MenuItem/index.js +1 -0
- package/dist/elements/Message/Message.d.ts +19 -0
- package/dist/elements/Message/Message.js +66 -0
- package/dist/elements/Message/Message.stories.d.ts +1 -0
- package/dist/elements/Message/Message.stories.js +10 -0
- package/dist/elements/Message/Message.tests.d.ts +1 -0
- package/dist/elements/Message/Message.tests.js +26 -0
- package/dist/elements/Message/index.d.ts +1 -0
- package/dist/elements/Message/index.js +1 -0
- package/dist/elements/Pill/Pill.d.ts +20 -0
- package/dist/elements/Pill/Pill.js +161 -0
- package/dist/elements/Pill/Pill.stories.d.ts +6 -0
- package/dist/elements/Pill/Pill.stories.js +26 -0
- package/dist/elements/Pill/Pill.tests.d.ts +1 -0
- package/dist/elements/Pill/Pill.tests.js +18 -0
- package/dist/elements/Pill/index.d.ts +1 -0
- package/dist/elements/Pill/index.js +1 -0
- package/dist/elements/PopIn/PopIn.d.ts +6 -0
- package/dist/elements/PopIn/PopIn.js +41 -0
- package/dist/elements/PopIn/index.d.ts +1 -0
- package/dist/elements/PopIn/index.js +1 -0
- package/dist/elements/Popover/Popover.d.ts +24 -0
- package/dist/elements/Popover/Popover.js +42 -0
- package/dist/elements/Popover/Popover.stories.d.ts +1 -0
- package/dist/elements/Popover/Popover.stories.js +21 -0
- package/dist/elements/Popover/index.d.ts +1 -0
- package/dist/elements/Popover/index.js +1 -0
- package/dist/elements/ProgressBar/ProgressBar.d.ts +14 -0
- package/dist/elements/ProgressBar/ProgressBar.js +29 -0
- package/dist/elements/ProgressBar/ProgressBar.stories.d.ts +1 -0
- package/dist/elements/ProgressBar/ProgressBar.stories.js +6 -0
- package/dist/elements/ProgressBar/ProgressBar.tests.d.ts +1 -0
- package/dist/elements/ProgressBar/ProgressBar.tests.js +26 -0
- package/dist/elements/ProgressBar/index.d.ts +1 -0
- package/dist/elements/ProgressBar/index.js +1 -0
- package/dist/elements/Radio/RadioButton.d.ts +24 -0
- package/dist/elements/Radio/RadioButton.js +81 -0
- package/dist/elements/Radio/RadioButton.stories.d.ts +6 -0
- package/dist/elements/Radio/RadioButton.stories.js +22 -0
- package/dist/elements/Radio/RadioDot.d.ts +15 -0
- package/dist/elements/Radio/RadioDot.js +68 -0
- package/dist/elements/Radio/index.d.ts +2 -0
- package/dist/elements/Radio/index.js +2 -0
- package/dist/elements/Screen/Background.d.ts +4 -0
- package/dist/elements/Screen/Background.js +3 -0
- package/dist/elements/Screen/Body.d.ts +8 -0
- package/dist/elements/Screen/Body.js +11 -0
- package/dist/elements/Screen/BottomView.d.ts +6 -0
- package/dist/elements/Screen/BottomView.js +12 -0
- package/dist/elements/Screen/FloatingHeader.d.ts +7 -0
- package/dist/elements/Screen/FloatingHeader.js +10 -0
- package/dist/elements/Screen/FullWidthDivider.d.ts +3 -0
- package/dist/elements/Screen/FullWidthDivider.js +6 -0
- package/dist/elements/Screen/FullWidthItem.d.ts +3 -0
- package/dist/elements/Screen/FullWidthItem.js +6 -0
- package/dist/elements/Screen/Header.d.ts +18 -0
- package/dist/elements/Screen/Header.js +41 -0
- package/dist/elements/Screen/Screen.stories.d.ts +1 -0
- package/dist/elements/Screen/Screen.stories.js +19 -0
- package/dist/elements/Screen/ScreenBase.d.ts +7 -0
- package/dist/elements/Screen/ScreenBase.js +12 -0
- package/dist/elements/Screen/ScreenFlatList.d.ts +6 -0
- package/dist/elements/Screen/ScreenFlatList.js +15 -0
- package/dist/elements/Screen/ScreenScrollContext.d.ts +9 -0
- package/dist/elements/Screen/ScreenScrollContext.js +30 -0
- package/dist/elements/Screen/ScreenScrollView.d.ts +3 -0
- package/dist/elements/Screen/ScreenScrollView.js +15 -0
- package/dist/elements/Screen/StickySubHeader.d.ts +7 -0
- package/dist/elements/Screen/StickySubHeader.js +44 -0
- package/dist/elements/Screen/constants.d.ts +12 -0
- package/dist/elements/Screen/constants.js +11 -0
- package/dist/elements/Screen/hooks/useAnimatedHeaderScrolling.d.ts +2 -0
- package/dist/elements/Screen/hooks/useAnimatedHeaderScrolling.js +38 -0
- package/dist/elements/Screen/hooks/useListenForScreenScroll.d.ts +3 -0
- package/dist/elements/Screen/hooks/useListenForScreenScroll.js +20 -0
- package/dist/elements/Screen/index.d.ts +25 -0
- package/dist/elements/Screen/index.js +31 -0
- package/dist/elements/SearchInput/SearchInput.d.ts +6 -0
- package/dist/elements/SearchInput/SearchInput.js +13 -0
- package/dist/elements/SearchInput/index.d.ts +1 -0
- package/dist/elements/SearchInput/index.js +1 -0
- package/dist/elements/Separator/Separator.d.ts +8 -0
- package/dist/elements/Separator/Separator.js +16 -0
- package/dist/elements/Separator/Separator.stories.d.ts +7 -0
- package/dist/elements/Separator/Separator.stories.js +8 -0
- package/dist/elements/Separator/ShadowSeparator.d.ts +1 -0
- package/dist/elements/Separator/ShadowSeparator.js +7 -0
- package/dist/elements/Separator/index.d.ts +2 -0
- package/dist/elements/Separator/index.js +2 -0
- package/dist/elements/SimpleMessage/SimpleMessage.d.ts +12 -0
- package/dist/elements/SimpleMessage/SimpleMessage.js +15 -0
- package/dist/elements/SimpleMessage/index.d.ts +1 -0
- package/dist/elements/SimpleMessage/index.js +1 -0
- package/dist/elements/Skeleton/Skeleton.d.ts +18 -0
- package/dist/elements/Skeleton/Skeleton.js +31 -0
- package/dist/elements/Skeleton/Skeleton.stories.d.ts +9 -0
- package/dist/elements/Skeleton/Skeleton.stories.js +12 -0
- package/dist/elements/Skeleton/index.d.ts +1 -0
- package/dist/elements/Skeleton/index.js +1 -0
- package/dist/elements/Spacer/Spacer.d.ts +10 -0
- package/dist/elements/Spacer/Spacer.js +6 -0
- package/dist/elements/Spacer/Spacer.stories.d.ts +9 -0
- package/dist/elements/Spacer/Spacer.stories.js +23 -0
- package/dist/elements/Spacer/index.d.ts +1 -0
- package/dist/elements/Spacer/index.js +1 -0
- package/dist/elements/Spinner/Spinner.d.ts +31 -0
- package/dist/elements/Spinner/Spinner.js +86 -0
- package/dist/elements/Spinner/index.d.ts +1 -0
- package/dist/elements/Spinner/index.js +1 -0
- package/dist/elements/Switch/Switch.d.ts +24 -0
- package/dist/elements/Switch/Switch.js +21 -0
- package/dist/elements/Switch/Switch.stories.d.ts +7 -0
- package/dist/elements/Switch/Switch.stories.js +22 -0
- package/dist/elements/Switch/index.d.ts +1 -0
- package/dist/elements/Switch/index.js +1 -0
- package/dist/elements/Tabs/SubTabBar.d.ts +8 -0
- package/dist/elements/Tabs/SubTabBar.js +26 -0
- package/dist/elements/Tabs/TabFlashList.d.ts +3 -0
- package/dist/elements/Tabs/TabFlashList.js +13 -0
- package/dist/elements/Tabs/TabFlatList.d.ts +3 -0
- package/dist/elements/Tabs/TabFlatList.js +13 -0
- package/dist/elements/Tabs/TabMasonry.d.ts +5 -0
- package/dist/elements/Tabs/TabMasonry.js +13 -0
- package/dist/elements/Tabs/TabScrollView.d.ts +3 -0
- package/dist/elements/Tabs/TabScrollView.js +19 -0
- package/dist/elements/Tabs/Tabs.d.ts +30 -0
- package/dist/elements/Tabs/Tabs.js +26 -0
- package/dist/elements/Tabs/Tabs.stories.d.ts +1 -0
- package/dist/elements/Tabs/Tabs.stories.js +11 -0
- package/dist/elements/Tabs/TabsContainer.d.ts +13 -0
- package/dist/elements/Tabs/TabsContainer.js +45 -0
- package/dist/elements/Tabs/TabsWithHeader.d.ts +12 -0
- package/dist/elements/Tabs/TabsWithHeader.js +11 -0
- package/dist/elements/Tabs/hooks/useListenForTabContentScroll.d.ts +1 -0
- package/dist/elements/Tabs/hooks/useListenForTabContentScroll.js +11 -0
- package/dist/elements/Tabs/index.d.ts +1 -0
- package/dist/elements/Tabs/index.js +1 -0
- package/dist/elements/Text/LinkText.d.ts +3 -0
- package/dist/elements/Text/LinkText.js +3 -0
- package/dist/elements/Text/Text.d.ts +22 -0
- package/dist/elements/Text/Text.js +31 -0
- package/dist/elements/Text/Text.stories.d.ts +11 -0
- package/dist/elements/Text/Text.stories.js +28 -0
- package/dist/elements/Text/Text.tests.d.ts +1 -0
- package/dist/elements/Text/Text.tests.js +10 -0
- package/dist/elements/Text/helpers.d.ts +14 -0
- package/dist/elements/Text/helpers.js +29 -0
- package/dist/elements/Text/index.d.ts +3 -0
- package/dist/elements/Text/index.js +3 -0
- package/dist/elements/ToolTip/ToolTip.d.ts +45 -0
- package/dist/elements/ToolTip/ToolTip.js +109 -0
- package/dist/elements/ToolTip/ToolTip.stories.d.ts +1 -0
- package/dist/elements/ToolTip/ToolTip.stories.js +12 -0
- package/dist/elements/ToolTip/ToolTip.tests.d.ts +1 -0
- package/dist/elements/ToolTip/ToolTip.tests.js +15 -0
- package/dist/elements/ToolTip/ToolTipFlyout.d.ts +21 -0
- package/dist/elements/ToolTip/ToolTipFlyout.js +60 -0
- package/dist/elements/ToolTip/index.d.ts +1 -0
- package/dist/elements/ToolTip/index.js +1 -0
- package/dist/elements/Touchable/Touchable.d.ts +19 -0
- package/dist/elements/Touchable/Touchable.js +27 -0
- package/dist/elements/Touchable/Touchable.stories.d.ts +7 -0
- package/dist/elements/Touchable/Touchable.stories.js +11 -0
- package/dist/elements/Touchable/TouchableHighlightColor.d.ts +14 -0
- package/dist/elements/Touchable/TouchableHighlightColor.js +15 -0
- package/dist/elements/Touchable/TouchableWithScale.d.ts +7 -0
- package/dist/elements/Touchable/TouchableWithScale.js +20 -0
- package/dist/elements/Touchable/index.d.ts +3 -0
- package/dist/elements/Touchable/index.js +3 -0
- package/dist/elements/VisualClue/VisualClue.stories.d.ts +1 -0
- package/dist/elements/VisualClue/VisualClue.stories.js +6 -0
- package/dist/elements/VisualClue/VisualClueDot.d.ts +8 -0
- package/dist/elements/VisualClue/VisualClueDot.js +14 -0
- package/dist/elements/VisualClue/VisualClueText.d.ts +5 -0
- package/dist/elements/VisualClue/VisualClueText.js +16 -0
- package/dist/elements/VisualClue/index.d.ts +2 -0
- package/dist/elements/VisualClue/index.js +2 -0
- package/dist/elements/index.d.ts +45 -0
- package/dist/elements/index.js +45 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/setupJest.d.ts +1 -0
- package/dist/setupJest.js +10 -0
- package/dist/storybook/decorators.d.ts +4 -0
- package/dist/storybook/decorators.js +29 -0
- package/dist/storybook/helpers.d.ts +20 -0
- package/dist/storybook/helpers.js +22 -0
- package/dist/svgs/AddCircleFillIcon.d.ts +3 -0
- package/dist/svgs/AddCircleFillIcon.js +7 -0
- package/dist/svgs/AddCircleIcon.d.ts +3 -0
- package/dist/svgs/AddCircleIcon.js +7 -0
- package/dist/svgs/AddIcon.d.ts +3 -0
- package/dist/svgs/AddIcon.js +7 -0
- package/dist/svgs/AlertCircleFillIcon.d.ts +3 -0
- package/dist/svgs/AlertCircleFillIcon.js +7 -0
- package/dist/svgs/AlertIcon.d.ts +3 -0
- package/dist/svgs/AlertIcon.js +7 -0
- package/dist/svgs/ArrowCircleFillIcons.d.ts +4 -0
- package/dist/svgs/ArrowCircleFillIcons.js +9 -0
- package/dist/svgs/ArrowDownCircleIcon.d.ts +3 -0
- package/dist/svgs/ArrowDownCircleIcon.js +7 -0
- package/dist/svgs/ArrowDownIcon.d.ts +3 -0
- package/dist/svgs/ArrowDownIcon.js +7 -0
- package/dist/svgs/ArrowLeftCircleIcon.d.ts +3 -0
- package/dist/svgs/ArrowLeftCircleIcon.js +7 -0
- package/dist/svgs/ArrowLeftIcon.d.ts +3 -0
- package/dist/svgs/ArrowLeftIcon.js +7 -0
- package/dist/svgs/ArrowRightCircleIcon.d.ts +3 -0
- package/dist/svgs/ArrowRightCircleIcon.js +7 -0
- package/dist/svgs/ArrowRightIcon.d.ts +3 -0
- package/dist/svgs/ArrowRightIcon.js +7 -0
- package/dist/svgs/ArrowUpCircleIcon.d.ts +3 -0
- package/dist/svgs/ArrowUpCircleIcon.js +7 -0
- package/dist/svgs/ArrowUpIcon.d.ts +3 -0
- package/dist/svgs/ArrowUpIcon.js +7 -0
- package/dist/svgs/ArtsyLogoBlackIcon.d.ts +7 -0
- package/dist/svgs/ArtsyLogoBlackIcon.js +7 -0
- package/dist/svgs/ArtsyLogoWhiteIcon.d.ts +3 -0
- package/dist/svgs/ArtsyLogoWhiteIcon.js +5 -0
- package/dist/svgs/ArtsyMarkBlackIcon.d.ts +3 -0
- package/dist/svgs/ArtsyMarkBlackIcon.js +7 -0
- package/dist/svgs/ArtsyMarkWhiteIcon.d.ts +3 -0
- package/dist/svgs/ArtsyMarkWhiteIcon.js +5 -0
- package/dist/svgs/ArtworkIcon.d.ts +3 -0
- package/dist/svgs/ArtworkIcon.js +7 -0
- package/dist/svgs/AuctionIcon.d.ts +3 -0
- package/dist/svgs/AuctionIcon.js +7 -0
- package/dist/svgs/BellFillIcon.d.ts +3 -0
- package/dist/svgs/BellFillIcon.js +7 -0
- package/dist/svgs/BellIcon.d.ts +3 -0
- package/dist/svgs/BellIcon.js +7 -0
- package/dist/svgs/BlueChipIcon.d.ts +3 -0
- package/dist/svgs/BlueChipIcon.js +7 -0
- package/dist/svgs/BoltCircleFill.d.ts +3 -0
- package/dist/svgs/BoltCircleFill.js +7 -0
- package/dist/svgs/BoltFill.d.ts +3 -0
- package/dist/svgs/BoltFill.js +7 -0
- package/dist/svgs/BookmarkFill.d.ts +3 -0
- package/dist/svgs/BookmarkFill.js +7 -0
- package/dist/svgs/BriefcaseIcon.d.ts +3 -0
- package/dist/svgs/BriefcaseIcon.js +7 -0
- package/dist/svgs/CertificateIcon.d.ts +3 -0
- package/dist/svgs/CertificateIcon.js +7 -0
- package/dist/svgs/CheckCircleFillIcon.d.ts +3 -0
- package/dist/svgs/CheckCircleFillIcon.js +7 -0
- package/dist/svgs/CheckCircleIcon.d.ts +3 -0
- package/dist/svgs/CheckCircleIcon.js +7 -0
- package/dist/svgs/CheckIcon.d.ts +3 -0
- package/dist/svgs/CheckIcon.js +7 -0
- package/dist/svgs/ChevronIcon.d.ts +8 -0
- package/dist/svgs/ChevronIcon.js +15 -0
- package/dist/svgs/ClockFill.d.ts +3 -0
- package/dist/svgs/ClockFill.js +7 -0
- package/dist/svgs/CloseCircleFillIcon.d.ts +3 -0
- package/dist/svgs/CloseCircleFillIcon.js +7 -0
- package/dist/svgs/CloseCircleIcon.d.ts +3 -0
- package/dist/svgs/CloseCircleIcon.js +7 -0
- package/dist/svgs/CloseIcon.d.ts +3 -0
- package/dist/svgs/CloseIcon.js +7 -0
- package/dist/svgs/CollapseIcon.d.ts +3 -0
- package/dist/svgs/CollapseIcon.js +7 -0
- package/dist/svgs/CreditCardIcon.d.ts +9 -0
- package/dist/svgs/CreditCardIcon.js +18 -0
- package/dist/svgs/DecreaseIcon.d.ts +3 -0
- package/dist/svgs/DecreaseIcon.js +7 -0
- package/dist/svgs/DocumentIcon.d.ts +3 -0
- package/dist/svgs/DocumentIcon.js +7 -0
- package/dist/svgs/DownloadIcon.d.ts +3 -0
- package/dist/svgs/DownloadIcon.js +7 -0
- package/dist/svgs/EditIcon.d.ts +3 -0
- package/dist/svgs/EditIcon.js +7 -0
- package/dist/svgs/EmptyCheckCircleIcon.d.ts +3 -0
- package/dist/svgs/EmptyCheckCircleIcon.js +7 -0
- package/dist/svgs/EnterIcon.d.ts +3 -0
- package/dist/svgs/EnterIcon.js +7 -0
- package/dist/svgs/EnvelopeIcon.d.ts +3 -0
- package/dist/svgs/EnvelopeIcon.js +7 -0
- package/dist/svgs/EstablishedIcon.d.ts +3 -0
- package/dist/svgs/EstablishedIcon.js +7 -0
- package/dist/svgs/ExclamationMarkCircleFill.d.ts +3 -0
- package/dist/svgs/ExclamationMarkCircleFill.js +7 -0
- package/dist/svgs/ExpandIcon.d.ts +3 -0
- package/dist/svgs/ExpandIcon.js +7 -0
- package/dist/svgs/EyeClosedIcon.d.ts +3 -0
- package/dist/svgs/EyeClosedIcon.js +7 -0
- package/dist/svgs/EyeOpenedIcon.d.ts +3 -0
- package/dist/svgs/EyeOpenedIcon.js +7 -0
- package/dist/svgs/FacebookIcon.d.ts +3 -0
- package/dist/svgs/FacebookIcon.js +7 -0
- package/dist/svgs/FairIcon.d.ts +3 -0
- package/dist/svgs/FairIcon.js +7 -0
- package/dist/svgs/FilterIcon.d.ts +3 -0
- package/dist/svgs/FilterIcon.js +7 -0
- package/dist/svgs/FullWidthIcon.d.ts +3 -0
- package/dist/svgs/FullWidthIcon.js +7 -0
- package/dist/svgs/GenomeIcon.d.ts +3 -0
- package/dist/svgs/GenomeIcon.js +7 -0
- package/dist/svgs/GraphIcon.d.ts +3 -0
- package/dist/svgs/GraphIcon.js +7 -0
- package/dist/svgs/GridIcon.d.ts +3 -0
- package/dist/svgs/GridIcon.js +7 -0
- package/dist/svgs/GuaranteeIcon.d.ts +3 -0
- package/dist/svgs/GuaranteeIcon.js +8 -0
- package/dist/svgs/HeartFillIcon.d.ts +3 -0
- package/dist/svgs/HeartFillIcon.js +7 -0
- package/dist/svgs/HeartIcon.d.ts +3 -0
- package/dist/svgs/HeartIcon.js +7 -0
- package/dist/svgs/HideIcon.d.ts +3 -0
- package/dist/svgs/HideIcon.js +7 -0
- package/dist/svgs/HomeIcon.d.ts +3 -0
- package/dist/svgs/HomeIcon.js +7 -0
- package/dist/svgs/Icon.d.ts +10 -0
- package/dist/svgs/Icon.js +34 -0
- package/dist/svgs/ImageIcon.d.ts +3 -0
- package/dist/svgs/ImageIcon.js +7 -0
- package/dist/svgs/ImageSetIcon.d.ts +3 -0
- package/dist/svgs/ImageSetIcon.js +7 -0
- package/dist/svgs/IncreaseIcon.d.ts +3 -0
- package/dist/svgs/IncreaseIcon.js +7 -0
- package/dist/svgs/InfoCircleIcon.d.ts +3 -0
- package/dist/svgs/InfoCircleIcon.js +7 -0
- package/dist/svgs/InstagramAppIcon.d.ts +3 -0
- package/dist/svgs/InstagramAppIcon.js +3 -0
- package/dist/svgs/InstitutionIcon.d.ts +3 -0
- package/dist/svgs/InstitutionIcon.js +7 -0
- package/dist/svgs/LinkIcon.d.ts +3 -0
- package/dist/svgs/LinkIcon.js +7 -0
- package/dist/svgs/LoaderIcon.d.ts +3 -0
- package/dist/svgs/LoaderIcon.js +7 -0
- package/dist/svgs/LockIcon.d.ts +3 -0
- package/dist/svgs/LockIcon.js +7 -0
- package/dist/svgs/LogoutIcon.d.ts +3 -0
- package/dist/svgs/LogoutIcon.js +7 -0
- package/dist/svgs/MagnifyingGlassIcon.d.ts +3 -0
- package/dist/svgs/MagnifyingGlassIcon.js +7 -0
- package/dist/svgs/MapPinIcon.d.ts +3 -0
- package/dist/svgs/MapPinIcon.js +7 -0
- package/dist/svgs/MenuIcon.d.ts +3 -0
- package/dist/svgs/MenuIcon.js +7 -0
- package/dist/svgs/MessageIcon.d.ts +3 -0
- package/dist/svgs/MessageIcon.js +8 -0
- package/dist/svgs/MessagesAppIcon.d.ts +3 -0
- package/dist/svgs/MessagesAppIcon.js +5 -0
- package/dist/svgs/MoneyCircleIcon.d.ts +3 -0
- package/dist/svgs/MoneyCircleIcon.js +7 -0
- package/dist/svgs/MoneyFillIcon.d.ts +3 -0
- package/dist/svgs/MoneyFillIcon.js +7 -0
- package/dist/svgs/MoreIcon.d.ts +3 -0
- package/dist/svgs/MoreIcon.js +7 -0
- package/dist/svgs/MultiplePersonsIcon.d.ts +3 -0
- package/dist/svgs/MultiplePersonsIcon.js +7 -0
- package/dist/svgs/NoArtworkIcon.d.ts +3 -0
- package/dist/svgs/NoArtworkIcon.js +7 -0
- package/dist/svgs/NoImageIcon.d.ts +3 -0
- package/dist/svgs/NoImageIcon.js +7 -0
- package/dist/svgs/PageIcon.d.ts +3 -0
- package/dist/svgs/PageIcon.js +7 -0
- package/dist/svgs/Payment2Icon.d.ts +3 -0
- package/dist/svgs/Payment2Icon.js +7 -0
- package/dist/svgs/PaymentIcon.d.ts +3 -0
- package/dist/svgs/PaymentIcon.js +7 -0
- package/dist/svgs/PersonIcon.d.ts +3 -0
- package/dist/svgs/PersonIcon.js +7 -0
- package/dist/svgs/PublicationIcon.d.ts +3 -0
- package/dist/svgs/PublicationIcon.js +7 -0
- package/dist/svgs/QuestionCircleIcon.d.ts +3 -0
- package/dist/svgs/QuestionCircleIcon.js +7 -0
- package/dist/svgs/ReloadIcon.d.ts +3 -0
- package/dist/svgs/ReloadIcon.js +7 -0
- package/dist/svgs/SecureLockIcon.d.ts +3 -0
- package/dist/svgs/SecureLockIcon.js +7 -0
- package/dist/svgs/SettingsIcon.d.ts +3 -0
- package/dist/svgs/SettingsIcon.js +7 -0
- package/dist/svgs/ShareIcon.d.ts +3 -0
- package/dist/svgs/ShareIcon.js +7 -0
- package/dist/svgs/ShieldFilledIcon.d.ts +3 -0
- package/dist/svgs/ShieldFilledIcon.js +7 -0
- package/dist/svgs/ShieldIcon.d.ts +9 -0
- package/dist/svgs/ShieldIcon.js +7 -0
- package/dist/svgs/StarCircleFill.d.ts +3 -0
- package/dist/svgs/StarCircleFill.js +7 -0
- package/dist/svgs/StarCircleIcon.d.ts +3 -0
- package/dist/svgs/StarCircleIcon.js +7 -0
- package/dist/svgs/Stopwatch.d.ts +3 -0
- package/dist/svgs/Stopwatch.js +7 -0
- package/dist/svgs/Tag2Icon.d.ts +3 -0
- package/dist/svgs/Tag2Icon.js +8 -0
- package/dist/svgs/TagIcon.d.ts +3 -0
- package/dist/svgs/TagIcon.js +7 -0
- package/dist/svgs/TimerIcon.d.ts +3 -0
- package/dist/svgs/TimerIcon.js +7 -0
- package/dist/svgs/TopEmergingIcon.d.ts +3 -0
- package/dist/svgs/TopEmergingIcon.js +7 -0
- package/dist/svgs/TrashIcon.d.ts +3 -0
- package/dist/svgs/TrashIcon.js +7 -0
- package/dist/svgs/TrendingIcon.d.ts +3 -0
- package/dist/svgs/TrendingIcon.js +7 -0
- package/dist/svgs/TriangleDown.d.ts +3 -0
- package/dist/svgs/TriangleDown.js +7 -0
- package/dist/svgs/TwitterIcon.d.ts +3 -0
- package/dist/svgs/TwitterIcon.js +7 -0
- package/dist/svgs/UserMultiIcon.d.ts +3 -0
- package/dist/svgs/UserMultiIcon.js +7 -0
- package/dist/svgs/UserSingleIcon.d.ts +3 -0
- package/dist/svgs/UserSingleIcon.js +7 -0
- package/dist/svgs/VerifiedIcon.d.ts +3 -0
- package/dist/svgs/VerifiedIcon.js +7 -0
- package/dist/svgs/VerifiedPersonIcon.d.ts +3 -0
- package/dist/svgs/VerifiedPersonIcon.js +7 -0
- package/dist/svgs/WhatsAppAppIcon.d.ts +3 -0
- package/dist/svgs/WhatsAppAppIcon.js +4 -0
- package/dist/svgs/WorldGlobeCircleIcon.d.ts +3 -0
- package/dist/svgs/WorldGlobeCircleIcon.js +7 -0
- package/dist/svgs/XCircleIcon.d.ts +3 -0
- package/dist/svgs/XCircleIcon.js +7 -0
- package/dist/svgs/icons.stories.d.ts +7 -0
- package/dist/svgs/icons.stories.js +17 -0
- package/dist/svgs/index.d.ts +113 -0
- package/dist/svgs/index.js +113 -0
- package/dist/tokens.d.ts +67 -0
- package/dist/tokens.js +104 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.js +7 -0
- package/dist/utils/Wrap.d.ts +12 -0
- package/dist/utils/Wrap.js +17 -0
- package/dist/utils/colors.stories.d.ts +6 -0
- package/dist/utils/colors.stories.js +47 -0
- package/dist/utils/createGeminiUrl.d.ts +9 -0
- package/dist/utils/createGeminiUrl.js +26 -0
- package/dist/utils/flattenChildren.d.ts +4 -0
- package/dist/utils/flattenChildren.js +13 -0
- package/dist/utils/formatLargeNumber.d.ts +1 -0
- package/dist/utils/formatLargeNumber.js +14 -0
- package/dist/utils/formatLargeNumbers.tests.d.ts +1 -0
- package/dist/utils/formatLargeNumbers.tests.js +18 -0
- package/dist/utils/hooks/index.d.ts +4 -0
- package/dist/utils/hooks/index.js +4 -0
- package/dist/utils/hooks/useColor.d.ts +1 -0
- package/dist/utils/hooks/useColor.js +2 -0
- package/dist/utils/hooks/useMeasure.d.ts +12 -0
- package/dist/utils/hooks/useMeasure.js +24 -0
- package/dist/utils/hooks/useScreenDimensions.d.ts +29 -0
- package/dist/utils/hooks/useScreenDimensions.js +26 -0
- package/dist/utils/hooks/useSpace.d.ts +1 -0
- package/dist/utils/hooks/useSpace.js +2 -0
- package/dist/utils/hooks/useTheme.d.ts +17 -0
- package/dist/utils/hooks/useTheme.js +30 -0
- package/dist/utils/normalizeText.d.ts +1 -0
- package/dist/utils/normalizeText.js +228 -0
- package/dist/utils/space.stories.d.ts +6 -0
- package/dist/utils/space.stories.js +13 -0
- package/dist/utils/tests/renderWithWrappers.d.ts +10 -0
- package/dist/utils/tests/renderWithWrappers.js +20 -0
- package/dist/utils/text.d.ts +19 -0
- package/dist/utils/text.js +19 -0
- package/dist/utils/types.d.ts +7 -0
- package/dist/utils/types.js +1 -0
- package/dist/utils/webTokensToMobile.d.ts +23 -0
- package/dist/utils/webTokensToMobile.js +37 -0
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TextVariant } from "@artsy/palette-tokens/dist/typography/v3";
|
|
3
|
+
import { Insets, TouchableWithoutFeedbackProps } from "react-native";
|
|
4
|
+
import { FlexProps } from "../Flex";
|
|
5
|
+
export interface RadioButtonProps extends Omit<TouchableWithoutFeedbackProps, "hitSlop">, Omit<FlexProps, "hitSlop"> {
|
|
6
|
+
hitSlop?: Insets;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
focused?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
error?: boolean;
|
|
11
|
+
text?: React.ReactElement | string;
|
|
12
|
+
textVariant?: TextVariant;
|
|
13
|
+
subtitle?: React.ReactElement | string;
|
|
14
|
+
accessibilityState?: {
|
|
15
|
+
checked: boolean;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare const RadioButton: React.FC<RadioButtonProps>;
|
|
19
|
+
interface RadioDotProps {
|
|
20
|
+
size: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const RadioDot: ({ size }: RadioDotProps) => JSX.Element;
|
|
23
|
+
export declare const DisabledDot: import("styled-components").StyledComponent<({ size }: RadioDotProps) => JSX.Element, any, {}, never>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { themeGet } from "@styled-system/theme-get";
|
|
3
|
+
import { PixelRatio, StyleSheet, TouchableWithoutFeedback, View, } from "react-native";
|
|
4
|
+
import styled from "styled-components/native";
|
|
5
|
+
import { CssTransition } from "../../animation";
|
|
6
|
+
import { useTheme } from "../../utils/hooks/useTheme";
|
|
7
|
+
import { Flex } from "../Flex";
|
|
8
|
+
import { Text } from "../Text";
|
|
9
|
+
const RADIOBUTTON_SIZE = 20;
|
|
10
|
+
const DURATION = 150;
|
|
11
|
+
export const RadioButton = ({ selected, disabled, error, onPress, text, textVariant = "md", subtitle, accessibilityState, ...restProps }) => {
|
|
12
|
+
const { color, space } = useTheme();
|
|
13
|
+
const fontScale = PixelRatio.getFontScale();
|
|
14
|
+
const radioButtonSize = RADIOBUTTON_SIZE * fontScale;
|
|
15
|
+
const defaultRadioButtonStyle = {
|
|
16
|
+
backgroundColor: color("white100"),
|
|
17
|
+
borderColor: color("black60"),
|
|
18
|
+
};
|
|
19
|
+
const selectedRadioButtonStyle = {
|
|
20
|
+
backgroundColor: color("black100"),
|
|
21
|
+
borderColor: color("black100"),
|
|
22
|
+
};
|
|
23
|
+
const disabledRadioButtonStyle = {
|
|
24
|
+
backgroundColor: color("black5"),
|
|
25
|
+
borderColor: color("black10"),
|
|
26
|
+
};
|
|
27
|
+
const radioButtonStyles = {
|
|
28
|
+
default: {
|
|
29
|
+
notSelected: defaultRadioButtonStyle,
|
|
30
|
+
selected: selectedRadioButtonStyle,
|
|
31
|
+
},
|
|
32
|
+
error: {
|
|
33
|
+
notSelected: { backgroundColor: color("white100"), borderColor: color("red100") },
|
|
34
|
+
selected: selectedRadioButtonStyle,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
const radioButtonStyle = disabled
|
|
38
|
+
? disabledRadioButtonStyle
|
|
39
|
+
: radioButtonStyles[error ? "error" : "default"][selected ? "selected" : "notSelected"];
|
|
40
|
+
const textColor = error ? color("red100") : disabled ? color("black30") : color("black100");
|
|
41
|
+
const subtitleColor = error ? color("red100") : color("black30");
|
|
42
|
+
return (_jsx(TouchableWithoutFeedback, { accessibilityState: accessibilityState, onPress: (event) => {
|
|
43
|
+
if (disabled) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
onPress?.(event);
|
|
47
|
+
}, children: _jsxs(Flex, { ...restProps, children: [_jsxs(Flex, { flexDirection: "row", alignItems: "center", children: [_jsx(Flex, { mt: "2px", children: _jsx(CssTransition, { style: [
|
|
48
|
+
styles(fontScale).container,
|
|
49
|
+
{ marginRight: space(1) * fontScale },
|
|
50
|
+
radioButtonStyle,
|
|
51
|
+
], animate: ["borderColor"], duration: DURATION, children: !!selected &&
|
|
52
|
+
(!!disabled ? (_jsx(DisabledDot, { size: radioButtonSize })) : (_jsx(RadioDot, { size: radioButtonSize }))) }) }), _jsx(Flex, { justifyContent: "center", children: !!text && (_jsx(Text, { variant: textVariant, color: textColor, children: text })) })] }), _jsx(Flex, { ml: `${(RADIOBUTTON_SIZE + space(1)) * fontScale}px`, mt: "6px", children: !!subtitle && (_jsx(Text, { variant: "xs", color: subtitleColor, children: subtitle })) })] }) }));
|
|
53
|
+
};
|
|
54
|
+
// styled-component does not have support for Animated.View
|
|
55
|
+
const styles = (fontScale) => StyleSheet.create({
|
|
56
|
+
container: {
|
|
57
|
+
display: "flex",
|
|
58
|
+
justifyContent: "center",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
borderWidth: 1,
|
|
61
|
+
borderStyle: "solid",
|
|
62
|
+
height: RADIOBUTTON_SIZE * fontScale,
|
|
63
|
+
width: RADIOBUTTON_SIZE * fontScale,
|
|
64
|
+
borderRadius: (RADIOBUTTON_SIZE * fontScale) / 2,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
// This component represents the white ● mark in CSS. We are not using styled-system since it's easier to specify raw CSS
|
|
68
|
+
// properties with styled-component.
|
|
69
|
+
// Height, Width, and Border Radius calculations are used to maintain the size of the white dot when scaling
|
|
70
|
+
export const RadioDot = ({ size }) => {
|
|
71
|
+
return (_jsx(View, { style: {
|
|
72
|
+
height: size * 0.625,
|
|
73
|
+
width: size * 0.625,
|
|
74
|
+
borderRadius: size * 0.3125,
|
|
75
|
+
backgroundColor: "white",
|
|
76
|
+
} }));
|
|
77
|
+
};
|
|
78
|
+
export const DisabledDot = styled(RadioDot) `
|
|
79
|
+
border-bottom-color: ${themeGet("colors.black30")};
|
|
80
|
+
border-left-color: ${themeGet("colors.black30")};
|
|
81
|
+
`;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { storiesOf } from "@storybook/react-native";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { RadioButton } from "./RadioButton";
|
|
5
|
+
import { List } from "../../storybook/helpers";
|
|
6
|
+
import { Flex } from "../Flex";
|
|
7
|
+
export default {
|
|
8
|
+
title: "RadioButton",
|
|
9
|
+
component: RadioButton,
|
|
10
|
+
};
|
|
11
|
+
storiesOf("RadioButton", module).add("Default", () => {
|
|
12
|
+
const [metric, setMetric] = useState("cm");
|
|
13
|
+
return (_jsx(List, { contentContainerStyle: {
|
|
14
|
+
marginHorizontal: 20,
|
|
15
|
+
justifyContent: "flex-start",
|
|
16
|
+
alignItems: "flex-start",
|
|
17
|
+
}, children: _jsxs(Flex, { flexDirection: "row", gap: 20, children: [_jsx(RadioButton, { onPress: () => {
|
|
18
|
+
setMetric("cm");
|
|
19
|
+
}, selected: metric === "cm", text: "centimeters" }), _jsx(RadioButton, { onPress: () => {
|
|
20
|
+
setMetric("in");
|
|
21
|
+
}, selected: metric === "in", text: "inches" })] }) }));
|
|
22
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FlexProps } from "../Flex";
|
|
3
|
+
type RadioDotMode = "default" | "disabled" | "error" | "hover";
|
|
4
|
+
export declare const RADIO_DOT_MODES: Record<RadioDotMode, {
|
|
5
|
+
resting: FlexProps;
|
|
6
|
+
selected: FlexProps;
|
|
7
|
+
}>;
|
|
8
|
+
interface RadioDotProps {
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
error?: boolean;
|
|
11
|
+
hover?: boolean;
|
|
12
|
+
selected?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const RadioDot: (props: RadioDotProps) => JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Flex } from "../Flex";
|
|
3
|
+
export const RADIO_DOT_MODES = {
|
|
4
|
+
default: {
|
|
5
|
+
resting: {
|
|
6
|
+
borderWidth: 2,
|
|
7
|
+
borderColor: "black10",
|
|
8
|
+
},
|
|
9
|
+
selected: {
|
|
10
|
+
borderWidth: 2,
|
|
11
|
+
borderColor: "black100",
|
|
12
|
+
backgroundColor: "black100",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
disabled: {
|
|
16
|
+
resting: {
|
|
17
|
+
borderWidth: 2,
|
|
18
|
+
borderColor: "black10",
|
|
19
|
+
backgroundColor: "black10",
|
|
20
|
+
},
|
|
21
|
+
selected: {
|
|
22
|
+
borderWidth: 2,
|
|
23
|
+
borderColor: "black10",
|
|
24
|
+
backgroundColor: "black10",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
error: {
|
|
28
|
+
resting: {
|
|
29
|
+
borderWidth: 2,
|
|
30
|
+
borderColor: "red100",
|
|
31
|
+
},
|
|
32
|
+
selected: {
|
|
33
|
+
borderWidth: 2,
|
|
34
|
+
borderColor: "black100",
|
|
35
|
+
backgroundColor: "black100",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
hover: {
|
|
39
|
+
resting: {
|
|
40
|
+
borderWidth: 2,
|
|
41
|
+
borderColor: "black10",
|
|
42
|
+
backgroundColor: "black10",
|
|
43
|
+
},
|
|
44
|
+
selected: {
|
|
45
|
+
borderWidth: 2,
|
|
46
|
+
borderColor: "black100",
|
|
47
|
+
backgroundColor: "black100",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
export const RadioDot = (props) => (_jsx(Container, { ...props, children: _jsx(Dot, { ...props }) }));
|
|
52
|
+
const Container = ({ selected = false, hover = false, error = false, disabled = false, }) => {
|
|
53
|
+
const mode = (() => {
|
|
54
|
+
switch (true) {
|
|
55
|
+
case disabled:
|
|
56
|
+
return RADIO_DOT_MODES.disabled;
|
|
57
|
+
case hover:
|
|
58
|
+
return RADIO_DOT_MODES.hover;
|
|
59
|
+
case error:
|
|
60
|
+
return RADIO_DOT_MODES.error;
|
|
61
|
+
default:
|
|
62
|
+
return RADIO_DOT_MODES.default;
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
const moreProps = selected ? mode.selected : mode.resting;
|
|
66
|
+
return (_jsx(Flex, { width: 20, height: 20, borderRadius: 50, alignItems: "center", justifyContent: "center", flexShrink: 0, ...moreProps }));
|
|
67
|
+
};
|
|
68
|
+
const Dot = ({ selected = false, disabled = false }) => (_jsx(Flex, { width: 10, height: 10, borderRadius: 50, alignItems: "center", justifyContent: "center", flexShrink: 0, backgroundColor: disabled && !selected ? "transparent" : "white100" }));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from "react";
|
|
3
|
+
import { KeyboardAvoidingView, Platform, ScrollView } from "react-native";
|
|
4
|
+
import { SCREEN_HORIZONTAL_PADDING } from "./constants";
|
|
5
|
+
import { Flex } from "../Flex";
|
|
6
|
+
export const Body = ({ children, fullwidth, scroll, disableKeyboardAvoidance = false, ...flexProps }) => {
|
|
7
|
+
const Wrapper = disableKeyboardAvoidance ? Fragment : KeyboardAvoidingView;
|
|
8
|
+
return (_jsx(Wrapper, { ...(disableKeyboardAvoidance
|
|
9
|
+
? {}
|
|
10
|
+
: { style: { flex: 1 }, behavior: Platform.OS === "ios" ? "padding" : "height" }), children: _jsx(Flex, { flex: 1, ...flexProps, children: _jsx(Flex, { flex: 1, px: fullwidth ? undefined : SCREEN_HORIZONTAL_PADDING, children: scroll ? _jsx(ScrollView, { children: children }) : children }) }) }));
|
|
11
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import LinearGradient from "react-native-linear-gradient";
|
|
3
|
+
import { SCREEN_HORIZONTAL_PADDING } from "./constants";
|
|
4
|
+
import { useColor } from "../../utils/hooks/useColor";
|
|
5
|
+
import { Flex } from "../Flex";
|
|
6
|
+
export const BottomView = ({ children, darkMode }) => {
|
|
7
|
+
const color = useColor();
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsx(LinearGradient, { colors: [darkMode ? "rgba(0,0,0,0)" : "rgba(255,255,255,0)", color("background")], start: { x: 0, y: 0 }, end: { x: 0, y: 1 }, style: {
|
|
9
|
+
width: "100%",
|
|
10
|
+
height: 20,
|
|
11
|
+
}, pointerEvents: "none" }), _jsx(Flex, { px: SCREEN_HORIZONTAL_PADDING, pt: 1, pb: 4, backgroundColor: "background", children: children })] }));
|
|
12
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
3
|
+
import { ZINDEX } from "./constants";
|
|
4
|
+
import { BackButtonWithBackground } from "../BackButton";
|
|
5
|
+
import { Flex } from "../Flex";
|
|
6
|
+
import { Spacer } from "../Spacer";
|
|
7
|
+
export const FloatingHeader = ({ onBack, rightElements, ...flexProps }) => {
|
|
8
|
+
const insets = useSafeAreaInsets();
|
|
9
|
+
return (_jsxs(Flex, { position: "absolute", pointerEvents: "box-none", top: insets.top, left: 0, right: 0, zIndex: ZINDEX.floatingHeader, px: 1, py: 1, flexDirection: "row", alignItems: "center", ...flexProps, children: [_jsx(BackButtonWithBackground, { onPress: onBack }), _jsx(Flex, { flex: 1 }), rightElements && (_jsxs(Flex, { flexDirection: "row", alignItems: "center", children: [_jsx(Spacer, { x: 1 }), rightElements] }))] }));
|
|
10
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Screen } from "../Screen";
|
|
3
|
+
import { Separator } from "../Separator";
|
|
4
|
+
export const FullWidthDivider = (flexProps) => {
|
|
5
|
+
return (_jsx(Screen.FullWidthItem, { children: _jsx(Separator, { my: 2, ...flexProps }) }));
|
|
6
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FlexProps } from "../Flex";
|
|
3
|
+
export interface HeaderProps {
|
|
4
|
+
animated?: boolean;
|
|
5
|
+
hideLeftElements?: boolean;
|
|
6
|
+
hideRightElements?: boolean;
|
|
7
|
+
hideTitle?: boolean;
|
|
8
|
+
leftElements?: React.ReactNode;
|
|
9
|
+
onBack?: () => void;
|
|
10
|
+
rightElements?: React.ReactNode;
|
|
11
|
+
scrollY?: number;
|
|
12
|
+
scrollYOffset?: number;
|
|
13
|
+
title?: string | JSX.Element;
|
|
14
|
+
titleProps?: FlexProps;
|
|
15
|
+
titleShown?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const AnimatedHeader: React.FC<HeaderProps>;
|
|
18
|
+
export declare const Header: React.FC<HeaderProps>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { MotiView } from "moti";
|
|
3
|
+
import Animated, { Easing, FadeIn, FadeOut } from "react-native-reanimated";
|
|
4
|
+
import { useScreenScrollContext } from "./ScreenScrollContext";
|
|
5
|
+
import { NAVBAR_HEIGHT, ZINDEX } from "./constants";
|
|
6
|
+
import { DEFAULT_HIT_SLOP } from "../../constants";
|
|
7
|
+
import { ArrowLeftIcon } from "../../svgs/ArrowLeftIcon";
|
|
8
|
+
import { Flex } from "../Flex";
|
|
9
|
+
import { Text } from "../Text";
|
|
10
|
+
import { Touchable } from "../Touchable";
|
|
11
|
+
export const AnimatedHeader = (props) => {
|
|
12
|
+
return _jsx(Header, { animated: true, ...props });
|
|
13
|
+
};
|
|
14
|
+
export const Header = ({ animated = false, hideLeftElements, hideRightElements, hideTitle, leftElements, onBack, rightElements, title, titleProps = {}, }) => {
|
|
15
|
+
return (_jsxs(Flex, { height: NAVBAR_HEIGHT, flexDirection: "row", px: 2, zIndex: ZINDEX.header, backgroundColor: "background", alignItems: "center", children: [_jsx(Flex, { flex: 1, children: _jsx(Left, { leftElements: leftElements, onBack: onBack, hideLeftElements: hideLeftElements }) }), _jsx(Flex, { ...titleProps, children: _jsx(Center, { animated: animated, title: title, hideTitle: hideTitle }) }), _jsx(Flex, { flex: 1, alignItems: "flex-end", children: _jsx(Right, { rightElements: rightElements, hideRightElements: hideRightElements }) })] }));
|
|
16
|
+
};
|
|
17
|
+
const Right = ({ hideRightElements, rightElements }) => {
|
|
18
|
+
return _jsx(_Fragment, { children: !hideRightElements && rightElements });
|
|
19
|
+
};
|
|
20
|
+
const Center = ({ animated, hideTitle, title }) => {
|
|
21
|
+
const { scrollYOffset = 0, currentScrollY = 0 } = useScreenScrollContext();
|
|
22
|
+
if (hideTitle) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const titleTextElement = (_jsx(Text, { variant: "sm-display", numberOfLines: 1, children: title }));
|
|
26
|
+
if (!animated) {
|
|
27
|
+
return titleTextElement;
|
|
28
|
+
}
|
|
29
|
+
// Show / hide the title to avoid rerenders, which retrigger the animation
|
|
30
|
+
const display = currentScrollY < NAVBAR_HEIGHT + scrollYOffset ? "none" : "flex";
|
|
31
|
+
return (_jsx(Animated.View, { entering: FadeIn.duration(400).easing(Easing.out(Easing.exp)), exiting: FadeOut.duration(400).easing(Easing.out(Easing.exp)), style: {
|
|
32
|
+
display,
|
|
33
|
+
}, children: _jsx(MotiView, { animate: {
|
|
34
|
+
opacity: display === "flex" ? 1 : 0,
|
|
35
|
+
}, children: titleTextElement }) }));
|
|
36
|
+
};
|
|
37
|
+
const Left = ({ hideLeftElements, leftElements, onBack }) => {
|
|
38
|
+
if (hideLeftElements)
|
|
39
|
+
return null;
|
|
40
|
+
return (_jsx(_Fragment, { children: leftElements || (_jsx(Touchable, { onPress: onBack, underlayColor: "transparent", hitSlop: DEFAULT_HIT_SLOP, children: _jsx(ArrowLeftIcon, { fill: "onBackgroundHigh" }) })) }));
|
|
41
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { storiesOf } from "@storybook/react-native";
|
|
3
|
+
import { Flex } from "../Flex";
|
|
4
|
+
import { Screen } from "../Screen";
|
|
5
|
+
import { Text } from "../Text";
|
|
6
|
+
storiesOf("Screen", module)
|
|
7
|
+
.add("With Header and BottomView", () => (_jsxs(Screen, { children: [_jsx(Screen.Header, { title: "Title" }), _jsx(Screen.Body, { scroll: true, children: Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i))) }), _jsx(Screen.BottomView, { children: _jsx(Flex, { backgroundColor: "black30", height: 100, width: "100%", children: _jsx(Text, { children: "Footer" }) }) })] })))
|
|
8
|
+
.add("With Header and Right Element", () => (_jsxs(Screen, { children: [_jsx(Screen.Header, { title: "Title", rightElements: _jsx(Text, { variant: "xs", children: "Very long right element" }) }), _jsx(Screen.Body, { scroll: true, children: Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i))) })] })))
|
|
9
|
+
.add("With Header, Without Left Element and Right Element", () => (_jsxs(Screen, { children: [_jsx(Screen.Header, { title: "Title", hideLeftElements: true, rightElements: _jsx(Text, { variant: "xs", children: "Very long right element" }) }), _jsx(Screen.Body, { scroll: true, children: Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i))) })] })))
|
|
10
|
+
.add("With Right Element & Custom Left Element", () => (_jsxs(Screen, { children: [_jsx(Screen.Header, { title: "Title", leftElements: _jsx(Text, { variant: "xs", children: "Very long left element" }), rightElements: _jsx(Text, { variant: "xs", children: "right element" }) }), _jsx(Screen.Body, { scroll: true, children: Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i))) }), _jsx(Screen.BottomView, { children: _jsx(Flex, { backgroundColor: "black30", height: 100, width: "100%", children: _jsx(Text, { children: "Footer" }) }) })] })))
|
|
11
|
+
.add("ScrollView With AnimatedHeader", () => (_jsxs(Screen, { children: [_jsx(Screen.AnimatedHeader, { title: "Title" }), _jsx(Screen.Body, { children: _jsxs(Screen.ScrollView, { children: [_jsx(Text, { variant: "lg-display", children: "Title" }), Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i)))] }) }), _jsx(Screen.BottomView, { children: _jsx(Flex, { backgroundColor: "black30", height: 100, width: "100%", children: _jsx(Text, { children: "Footer" }) }) })] })))
|
|
12
|
+
.add("ScrollView With AnimatedHeader and Right Element", () => (_jsxs(Screen, { children: [_jsx(Screen.AnimatedHeader, { title: "Title", rightElements: _jsx(Text, { children: "Right" }) }), _jsx(Screen.Body, { children: _jsxs(Screen.ScrollView, { children: [_jsx(Text, { variant: "lg-display", children: "Title" }), Array.from({ length: 5 }).map((_, i) => (_jsx(Text, { my: 1, children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }, i)))] }) }), _jsx(Screen.BottomView, { children: _jsx(Flex, { backgroundColor: "black30", height: 100, width: "100%", children: _jsx(Text, { children: "Footer" }) }) })] })))
|
|
13
|
+
.add("FlatList With AnimatedHeader", () => (_jsxs(Screen, { children: [_jsx(Screen.AnimatedHeader, { title: "Title" }), _jsx(Screen.Body, { children: _jsx(Screen.FlatList, { ListHeaderComponent: () => _jsx(Text, { variant: "lg-display", children: "Title" }), data: Array.from({ length: 50 }).map((_, i) => "Item " + i), renderItem: ({ item, index }) => {
|
|
14
|
+
return (_jsx(Text, { my: 1, children: item }, index));
|
|
15
|
+
} }) }), _jsx(Screen.BottomView, { children: _jsx(Flex, { backgroundColor: "black30", height: 100, width: "100%", children: _jsx(Text, { children: "Footer" }) }) })] })))
|
|
16
|
+
.add("FlatList With AnimatedHeader and StickySubHeader", () => (_jsxs(Screen, { children: [_jsx(Screen.AnimatedHeader, { title: "Title" }), _jsx(Screen.StickySubHeader, { title: "Title", children: _jsx(Flex, { width: "100%", height: 60, backgroundColor: "red10" }) }), _jsx(Screen.Body, { children: _jsx(Screen.FlatList, { data: Array.from({ length: 50 }).map((_, i) => "Item " + i), renderItem: ({ item, index }) => {
|
|
17
|
+
return (_jsx(Text, { my: 1, children: item }, index));
|
|
18
|
+
} }) })] })))
|
|
19
|
+
.add("Fullwidth", () => (_jsxs(Screen, { children: [_jsx(Screen.Header, { title: "Title" }), _jsx(Screen.Body, { fullwidth: true, children: _jsx(Text, { children: "\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"" }) })] })));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
3
|
+
import { ScreenScrollContextProvider } from "./ScreenScrollContext";
|
|
4
|
+
import { Flex } from "../Flex";
|
|
5
|
+
export const ScreenBase = ({ children, safeArea = true, ...flexProps }) => {
|
|
6
|
+
const insets = useSafeAreaInsets();
|
|
7
|
+
return (_jsx(ScreenScrollContextProvider, { children: _jsxs(Flex, { flex: 1, backgroundColor: "background", mt: safeArea ? insets.top : 0, ...flexProps, children: [children, _jsx(SafeAreaCover, { safeArea: true })] }) }));
|
|
8
|
+
};
|
|
9
|
+
const SafeAreaCover = ({ safeArea }) => {
|
|
10
|
+
const insets = useSafeAreaInsets();
|
|
11
|
+
return (_jsx(Flex, { position: "absolute", left: 0, right: 0, top: safeArea ? -insets.top : 0, height: insets.top, backgroundColor: "background" }));
|
|
12
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FlatList, FlatListProps } from "react-native";
|
|
3
|
+
export type ScreenFlatListProps<T> = FlatListProps<T> & {
|
|
4
|
+
innerRef?: React.ForwardedRef<FlatList<T>>;
|
|
5
|
+
};
|
|
6
|
+
export declare function ScreenFlatList<T>(props: ScreenFlatListProps<T>): JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { flowRight } from "lodash";
|
|
3
|
+
import Animated from "react-native-reanimated";
|
|
4
|
+
import { useListenForScreenScroll } from "./hooks/useListenForScreenScroll";
|
|
5
|
+
export function ScreenFlatList(props) {
|
|
6
|
+
const { scrollHandler } = useListenForScreenScroll();
|
|
7
|
+
let handleScroll;
|
|
8
|
+
if (props.onScroll) {
|
|
9
|
+
handleScroll = flowRight(scrollHandler, props.onScroll);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
handleScroll = scrollHandler;
|
|
13
|
+
}
|
|
14
|
+
return _jsx(Animated.FlatList, { ref: props.innerRef, ...props, onScroll: handleScroll });
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export interface ScreenScrollContextProps {
|
|
3
|
+
currentScrollY: number;
|
|
4
|
+
updateCurrentScrollY: (scrollY: number) => void;
|
|
5
|
+
scrollYOffset?: number;
|
|
6
|
+
updateScrollYOffset: (offset: number) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const ScreenScrollContextProvider: React.FC<React.PropsWithChildren<{}>>;
|
|
9
|
+
export declare const useScreenScrollContext: () => ScreenScrollContextProps;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, createContext, useState } from "react";
|
|
3
|
+
const ScreenScrollContext = createContext({
|
|
4
|
+
currentScrollY: 0,
|
|
5
|
+
updateCurrentScrollY: () => { },
|
|
6
|
+
scrollYOffset: undefined,
|
|
7
|
+
updateScrollYOffset: () => { },
|
|
8
|
+
});
|
|
9
|
+
export const ScreenScrollContextProvider = ({ children, }) => {
|
|
10
|
+
const [currentScrollY, setCurrentScrollY] = useState(0);
|
|
11
|
+
const [scrollYOffset, setScrollYOffset] = useState(undefined);
|
|
12
|
+
const providerValue = {
|
|
13
|
+
currentScrollY,
|
|
14
|
+
scrollYOffset,
|
|
15
|
+
updateCurrentScrollY: (scrollY) => {
|
|
16
|
+
setCurrentScrollY(scrollY);
|
|
17
|
+
},
|
|
18
|
+
updateScrollYOffset: (yOffset) => {
|
|
19
|
+
setScrollYOffset(yOffset);
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
return (_jsx(ScreenScrollContext.Provider, { value: providerValue, children: children }));
|
|
23
|
+
};
|
|
24
|
+
export const useScreenScrollContext = () => {
|
|
25
|
+
const context = useContext(ScreenScrollContext);
|
|
26
|
+
if (!context) {
|
|
27
|
+
throw new Error("useScreenScrollContext must be used within a Screen.ScreenScrollContextProvider component");
|
|
28
|
+
}
|
|
29
|
+
return context;
|
|
30
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { flowRight } from "lodash";
|
|
3
|
+
import Animated from "react-native-reanimated";
|
|
4
|
+
import { useListenForScreenScroll } from "./hooks/useListenForScreenScroll";
|
|
5
|
+
export const ScreenScrollView = (props) => {
|
|
6
|
+
const { scrollHandler } = useListenForScreenScroll();
|
|
7
|
+
let handleScroll;
|
|
8
|
+
if (props.onScroll) {
|
|
9
|
+
handleScroll = flowRight(scrollHandler, props.onScroll);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
handleScroll = scrollHandler;
|
|
13
|
+
}
|
|
14
|
+
return _jsx(Animated.ScrollView, { ...props, onScroll: handleScroll, scrollEventThrottle: 16 });
|
|
15
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import Animated, { useAnimatedStyle, useDerivedValue, withTiming } from "react-native-reanimated";
|
|
4
|
+
import { useScreenScrollContext } from "./ScreenScrollContext";
|
|
5
|
+
import { NAVBAR_HEIGHT } from "./constants";
|
|
6
|
+
import { useSpace } from "../../utils/hooks";
|
|
7
|
+
import { Flex } from "../Flex";
|
|
8
|
+
import { Separator } from "../Separator";
|
|
9
|
+
import { Text } from "../Text";
|
|
10
|
+
const STICKY_BAR_HEIGHT = 42;
|
|
11
|
+
const DEFAULT_SEPARATOR_COMPONENT = _jsx(Separator, { borderColor: "black5" });
|
|
12
|
+
export const StickySubHeader = ({ title, separatorComponent = DEFAULT_SEPARATOR_COMPONENT, subTitle, children, }) => {
|
|
13
|
+
const { currentScrollY, scrollYOffset = 0 } = useScreenScrollContext();
|
|
14
|
+
const space = useSpace();
|
|
15
|
+
const [stickyBarHeight, setStickyHeaderHeight] = useState(null);
|
|
16
|
+
const visible = useDerivedValue(() => {
|
|
17
|
+
if (stickyBarHeight === null) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return currentScrollY < NAVBAR_HEIGHT + scrollYOffset;
|
|
21
|
+
}, [currentScrollY, scrollYOffset, stickyBarHeight]);
|
|
22
|
+
const handleLayout = (event) => {
|
|
23
|
+
setStickyHeaderHeight(event.nativeEvent.layout.height);
|
|
24
|
+
};
|
|
25
|
+
// The styles are kept in a variable to make sure they're always in sync with the hidden text component
|
|
26
|
+
const sharedStyles = {
|
|
27
|
+
paddingHorizontal: space(2),
|
|
28
|
+
};
|
|
29
|
+
const animatedStyles = useAnimatedStyle(() => {
|
|
30
|
+
return {
|
|
31
|
+
height: withTiming(visible.value ? stickyBarHeight || STICKY_BAR_HEIGHT : 0, {
|
|
32
|
+
duration: 100,
|
|
33
|
+
}),
|
|
34
|
+
transform: [
|
|
35
|
+
{
|
|
36
|
+
translateY: withTiming(visible.value ? 0 : -(stickyBarHeight || STICKY_BAR_HEIGHT), {
|
|
37
|
+
duration: 100,
|
|
38
|
+
}),
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
return (_jsxs(Flex, { children: [stickyBarHeight === null && (_jsx(Flex, { onLayout: (event) => handleLayout(event), position: "absolute", backgroundColor: "white100", zIndex: -1000, style: sharedStyles, children: _jsxs(Flex, { mb: 1, children: [_jsx(Text, { variant: "lg-display", color: "white100", children: title }), !!subTitle && (_jsx(Text, { variant: "xs", mt: 0.5, color: "white100", children: subTitle }))] }) })), _jsx(Animated.View, { style: [sharedStyles, animatedStyles], children: _jsxs(Flex, { style: { height: stickyBarHeight }, mb: 1, children: [_jsx(Text, { variant: "lg-display", children: title }), subTitle && (_jsx(Text, { variant: "xs", mt: 0.5, children: subTitle }))] }) }), children, children !== undefined && separatorComponent] }));
|
|
44
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SpacingUnitDSValueNumber } from "../../types";
|
|
2
|
+
export declare const LARGE_TITLE_HEIGHT = 64;
|
|
3
|
+
export declare const NAVBAR_HEIGHT = 50;
|
|
4
|
+
export declare const SCREEN_HORIZONTAL_PADDING: SpacingUnitDSValueNumber;
|
|
5
|
+
export declare const SCREEN_TRANSITION_TIME = 400;
|
|
6
|
+
export declare const ZINDEX: {
|
|
7
|
+
artworkContent: number;
|
|
8
|
+
bottomSheetModalView: number;
|
|
9
|
+
floatingHeader: number;
|
|
10
|
+
header: number;
|
|
11
|
+
selectMode: number;
|
|
12
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const LARGE_TITLE_HEIGHT = 64;
|
|
2
|
+
export const NAVBAR_HEIGHT = 50;
|
|
3
|
+
export const SCREEN_HORIZONTAL_PADDING = 2;
|
|
4
|
+
export const SCREEN_TRANSITION_TIME = 400;
|
|
5
|
+
export const ZINDEX = {
|
|
6
|
+
artworkContent: 10,
|
|
7
|
+
bottomSheetModalView: 1,
|
|
8
|
+
floatingHeader: 2,
|
|
9
|
+
header: 1,
|
|
10
|
+
selectMode: 1,
|
|
11
|
+
};
|