@ornikar/kitt-universal 5.0.1 → 5.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/AnimatedButtonPressable.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/isSubtle.ts","../src/Button/ButtonContent.tsx","../src/Button/StyledDisabled.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/colors.ts","../src/themes/late-ocean/avatar.ts","../src/themes/late-ocean/button.ts","../src/themes/late-ocean/card.ts","../src/themes/late-ocean/feedback.ts","../src/themes/late-ocean/checkbox.ts","../src/themes/late-ocean/datePicker.ts","../src/themes/late-ocean/typography.ts","../src/themes/late-ocean/input.ts","../src/themes/late-ocean/inputField.ts","../src/themes/late-ocean/inputTag.ts","../src/themes/late-ocean/radio.ts","../src/themes/late-ocean/textArea.ts","../src/themes/late-ocean/forms.ts","../src/themes/late-ocean/fullScreenModal.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItem.ts","../src/themes/late-ocean/shadows.ts","../src/themes/late-ocean/skeleton.ts","../src/themes/late-ocean/tag.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/default.ts","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/forms/Checkbox/Checkbox.tsx","../src/forms/utils.ts","../src/forms/styledTextInputMixin.ts","../src/forms/DatePicker/DatePickerInputPart.tsx","../src/forms/DatePicker/DatePickerInputs.tsx","../src/forms/DatePicker/DatePickerAndroid.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/forms/DatePicker/PlatformDateTimePicker.tsx","../src/forms/DatePicker/ModalPlatformDateTimePicker.tsx","../src/forms/DatePicker/DatePicker.tsx","../src/forms/InputText/InputTextContainer.tsx","../src/forms/InputText/InputText.tsx","../src/forms/InputEmail/InputEmail.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputIcon/InputIcon.tsx","../src/forms/InputPressable/InputPressable.tsx","../src/forms/InputPassword/InputPassword.tsx","../src/forms/InputPhone/InputPhone.tsx","../src/forms/InputTag/InputTag.tsx","../src/forms/Label/Label.tsx","../src/forms/Radio/Radio.tsx","../src/forms/TextArea/TextArea.tsx","../src/FullScreenModal/Body.tsx","../src/FullScreenModal/Header.tsx","../src/FullScreenModal/FullScreenModal.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/BaseMessage/IconContent.tsx","../src/BaseMessage/helper.ts","../src/BaseMessage/BaseMessage.tsx","../src/Message/Message.tsx","../src/Notification/Notification.tsx","../src/Skeleton/SkeletonContent.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/ModalDateTimePicker.tsx","../src/TimePicker/useTimePicker.ts","../src/TimePicker/TimePicker.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx","../src/utils/withTheme.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nexport interface SpinningIconProps {\n children: ReactNode;\n}\n\nexport function SpinningIcon({ children }: SpinningIconProps): ReactElement {\n const animationRef = useRef(new Animated.Value(0));\n\n const rotation = animationRef.current.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n useEffect(() => {\n if (process.env.TESTS) return undefined;\n\n const animation = Animated.loop(\n Animated.timing(animationRef.current, {\n toValue: 1,\n duration: 1100,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n );\n animation.start();\n return () => {\n if (process.env.TESTS) return undefined;\n\n animation.stop();\n return undefined;\n };\n }, []);\n\n return <Animated.View style={{ transform: [{ rotate: rotation }] }}>{children}</Animated.View>;\n}\n","import type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SpinningIcon } from './SpinningIcon';\n\nexport interface IconProps {\n icon: ReactElement;\n size?: number;\n color: string;\n spin?: boolean;\n align?: ViewStyle['alignSelf'];\n testID?: ViewStyle['testID'];\n}\n\ninterface IconContainerProps {\n size?: number;\n color: string;\n align?: ViewStyle['alignSelf'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n color: ${({ color }) => color};\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n align-self: ${({ align = 'auto' }) => align};\n`;\n\nexport function Icon({ icon, size = 20, spin, align, color }: IconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n\n return (\n <IconContainer align={align} size={size} color={color}>\n {spin ? <SpinningIcon>{clonedIcon}</SpinningIcon> : clonedIcon}\n </IconContainer>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport { useWindowDimensions } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport type { TypographyTypeConfig } from '../themes/late-ocean/typography';\nimport type { KittTheme } from '../useKittTheme';\n\nexport type TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\nexport type TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\nexport type TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold';\nexport type TypographyColor =\n | 'black'\n | 'black-anthracite'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst IsHeaderTypographyContext = createContext<boolean | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\nexport const getTypographyTypeConfigKey = (theme: KittTheme): keyof TypographyTypeConfig => {\n const isMediumOrAbove = theme.responsive.matchWindowSize({ minWidth: KittBreakpoints.MEDIUM });\n return isMediumOrAbove ? 'mediumAndWide' : 'baseAndSmall';\n};\n\nconst isTypeHeader = (type: TypographyType): type is TypographyHeaderType => type.startsWith('header');\nexport const isTypographyHeader = (\n type: TypographyType | undefined,\n typographyIsHeaderInContext: boolean | undefined,\n): type is TypographyHeaderType => {\n if (type) return isTypeHeader(type);\n if (typographyIsHeaderInContext != null) return typographyIsHeaderInContext;\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function getTypographyTypeConfig(type: TypographyType, theme: DefaultTheme): TypographyTypeConfig {\n if (isTypographyHeader(type, undefined)) {\n return theme.kitt.typography.types.headers.configs[type];\n }\n\n return theme.kitt.typography.types.bodies.configs[type];\n}\n\ninterface StyledTypographyProps {\n accessibilityRole: TextProps['accessibilityRole'] | 'paragraph';\n $isHeader: boolean;\n $typeForCurrentWindowSize?: TypographyType;\n $variant: TypographyVariant;\n $color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, $isHeader, $typeForCurrentWindowSize, $variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n\n return `\n /* type */\n ${\n !$typeForCurrentWindowSize\n ? ''\n : `\n font-family: ${$isHeader ? headers.fontFamily[$variant] : bodies.fontFamily[$variant]};\n font-size: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].fontSize\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].fontSize\n }px;\n line-height: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight\n }px;\n `\n }\n\n /* variant */\n font-weight: ${$isHeader ? headers.fontWeight : bodies.fontWeight[$variant]};\n font-style: ${$isHeader ? headers.fontStyle : bodies.fontStyle[$variant]};\n `;\n }}\n\n /* color */\n ${({ theme, $color }) =>\n !$color\n ? ''\n : `\n color: ${theme.kitt.typography.colors[$color]};\n text-decoration-color: ${theme.kitt.typography.colors[$color]};\n `}\n`;\n\nexport interface TypographyBreakpointTypesProps {\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n /** small type. use base if undefined */\n small?: TypographyType;\n /** medium type. use small or base if undefined */\n medium?: TypographyType;\n /** large type. use medium or small or base if undefined */\n large?: TypographyType;\n}\n\nexport interface TypographyProps extends TypographyBreakpointTypesProps, Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | 'paragraph' | null;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nexport function useTypographyTypeForCurrentWindowSize(\n base: TypographyType | undefined,\n small: TypographyType | undefined,\n medium: TypographyType | undefined,\n large: TypographyType | undefined,\n): TypographyType | undefined {\n const { width } = useWindowDimensions();\n if (large && width >= KittBreakpoints.LARGE) return large;\n if (medium && width >= KittBreakpoints.MEDIUM) return medium;\n if (small && width >= KittBreakpoints.SMALL) return small;\n return base;\n}\n\ntype GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps = Pick<TypographyProps, 'base' | 'color'>;\n\nexport function getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(\n hasTypographyAncestor: boolean,\n { base, color }: GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps,\n): GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps {\n // return the props set or undefined. In case of undefined, the value will be inherited from its parents.\n if (hasTypographyAncestor) return { base, color };\n\n return {\n base: base ?? 'body',\n color: color ?? 'black',\n };\n}\n\nexport function Typography({\n accessibilityRole,\n base,\n small,\n medium,\n large,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const isHeaderTypographyInContext = useContext(IsHeaderTypographyContext);\n const hasTypographyAncestor = isHeaderTypographyInContext !== undefined;\n const { base: baseOrDefaultToBody, color: colorOrDefaultToBlack } =\n getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(hasTypographyAncestor, {\n base,\n color,\n });\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(baseOrDefaultToBody, small, medium, large);\n const isHeader = isTypographyHeader(typeForCurrentWindowSize, isHeaderTypographyInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n\n const content = baseOrDefaultToBody ? (\n <IsHeaderTypographyContext.Provider value={isHeader}>\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $typeForCurrentWindowSize={typeForCurrentWindowSize}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n </IsHeaderTypographyContext.Provider>\n ) : (\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport type { TypographyType } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nconst getInitials = (firstname: string, lastname: string): string => `${firstname[0]}${lastname[0]}`.toUpperCase();\n\nexport interface StyledAvatarViewProps {\n $isRound?: boolean;\n $isLight?: boolean;\n $size: number;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ theme, $isRound, $size }) => {\n if ($isRound) return `${$size / 2}px`;\n\n return `${theme.kitt.avatar.borderRadius}px`;\n }};\n background-color: ${({ theme, $isLight }) =>\n $isLight ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ $size }) => $size}px;\n width: ${({ $size }) => $size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\ninterface AvatarContentProps extends Exclude<AvatarProps, 'light | round'> {\n size: NonNullable<number>;\n isLight?: boolean;\n}\n\nfunction AvatarContent({ size, src, firstname, lastname, alt, base, isLight }: AvatarContentProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} accessibilityLabel={alt} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base={base} variant=\"bold\" color={isLight ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={isLight ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n alt?: string;\n firstname?: string | null;\n lastname?: string | null;\n base?: TypographyType;\n round?: boolean;\n light?: boolean;\n}\n\nexport function Avatar({ size = 40, base = 'body-small', round, light, ...props }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView $size={size} $isRound={round} $isLight={light}>\n <AvatarContent size={size} base={base} isLight={light} {...props} />\n </StyledAvatarView>\n );\n}\n","import type { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\nexport interface StyledPressableProps extends PressableProps {\n $isStretch?: boolean;\n $type: ButtonType;\n}\n\nconst StyledPressable = styled.Pressable<StyledPressableProps>`\n ${({ $isStretch }) => {\n if ($isStretch) return undefined;\n\n return 'align-self: flex-start;';\n }}\n`;\n\nconst StyledAnimatedView = styled(Animated.View)`\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n\nexport interface AnimatedButtonPressableProps extends PressableProps {\n accessibilityRole: NonNullable<PressableProps['accessibilityRole']>;\n $type: ButtonType;\n $isStretch?: boolean;\n}\n\nexport const AnimatedButtonPressable = forwardRef<View, AnimatedButtonPressableProps>(\n (\n {\n children,\n disabled,\n accessibilityRole,\n $type,\n $isStretch,\n href,\n hrefAttrs,\n testID,\n onPress,\n }: AnimatedButtonPressableProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const pressed = useSharedValue<0 | 1>(0);\n const color = useSharedValue(0);\n\n const { backgroundColor, pressedBackgroundColor } = theme.kitt.button[$type];\n const { scale } = theme.kitt.button;\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n backgroundColor: interpolateColor(color.value, [0, 1], [backgroundColor, pressedBackgroundColor]),\n transform: [\n {\n scale: withSpring(pressed.value ? scale.base.active : scale.base.default),\n },\n ],\n };\n });\n\n const handlePressInOut = (pressIn: boolean): void => {\n color.value = withSpring(pressIn ? 1 : 0);\n pressed.value = pressIn ? 1 : 0;\n };\n\n return (\n <StyledPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n $isStretch={$isStretch}\n $type={$type}\n onPress={onPress}\n onPressIn={() => {\n handlePressInOut(true);\n }}\n onPressOut={() => {\n handlePressInOut(false);\n }}\n >\n <StyledAnimatedView style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n {children}\n </StyledAnimatedView>\n </StyledPressable>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\nexport interface BaseStyledButtonPressableProps extends ViewProps {\n $type: ButtonType;\n $isLarge?: boolean;\n $isStretch?: boolean;\n $isDisabled?: boolean;\n}\n\nexport const BaseStyledButtonPressable = styled.View<BaseStyledButtonPressableProps>`\n position: relative;\n min-width: ${({ theme }) => theme.kitt.button.minWidth}px;\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : `${theme.kitt.button.maxWidth}px`)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight}px;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n\n background-color: ${({ theme, $isDisabled, $type }) => {\n if ($isDisabled) return theme.kitt.button.disabled.backgroundColor;\n\n if (Platform.OS !== 'web') return 'transparent';\n\n return theme.kitt.button[$type].backgroundColor;\n }};\n\n padding: ${({ theme, $isLarge, $isDisabled }) => {\n const { large, default: defaultPadding, disabled: disabledPadding } = theme.kitt.button.contentPadding;\n\n if ($isLarge) return large;\n if ($isDisabled) return disabledPadding;\n\n return defaultPadding;\n }};\n`;\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'] | 'inherit';\n}\n\nfunction TypographyIconSpecifiedColor({ color, ...props }: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...props} color={color === 'inherit' ? 'inherit' : theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n}\n\nexport function TypographyIcon({ color, ...props }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n }\n\n return <TypographyIconInheritColor {...props} />;\n}\n","import type { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType } from './Button';\nimport { isSubtle } from './isSubtle';\n\nconst getTextColorByType = (type: ButtonType): TypographyColor => {\n switch (type) {\n case 'primary':\n return 'white';\n case 'white':\n return 'white';\n case 'subtle':\n return 'primary';\n case 'subtle-dark':\n return 'black';\n default:\n return 'black';\n }\n};\n\ninterface StyledButtonTextProps extends TypographyTextProps {\n $type: ButtonType;\n $isDisabled?: boolean;\n}\n\nconst StyledButtonText = styled(Typography.Text)<StyledButtonTextProps>`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n\n ${() => {\n // Make the multilines case work properly on native\n // Breaks the web implem\n if (Platform.OS === 'web') return undefined;\n\n return `\n flex-shrink: 1;\n `;\n }}\n\n ${({ $type, $isDisabled }) => {\n /* For subltes button, color changes when hovered.\n * We don't want to use a mouse event handler with a react state to handle it\n * For this precise case, we've decided to work outside the typography logic\n */\n if (Platform.OS !== 'web' || $isDisabled || !isSubtle($type)) return undefined;\n return 'color: inherit';\n }}\n`;\n\ninterface StyledIconContainerProps {\n $iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst StyledIconContainer = styled.View<StyledIconContainerProps>`\n ${({ theme, $iconPosition }) => {\n const value = theme.kitt.spacing * 2;\n\n if ($iconPosition === 'left') {\n return `margin: 0 ${value}px 0 0;`;\n }\n\n return `margin: 0 0 0 ${value}px;`;\n }}\n`;\n\ninterface ButtonIconProps {\n icon: NonNullable<ButtonContentProps['icon']>;\n spin: ButtonProps['iconSpin'];\n iconPosition: ButtonContentProps['iconPosition'];\n color: TypographyIconProps['color'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, color, spin, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <StyledIconContainer $iconPosition={iconPosition}>\n <TypographyIcon icon={icon} spin={spin} testID={testID} color={color} />\n </StyledIconContainer>\n );\n}\n\ninterface ButtonContentProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n $isStretch: ButtonProps['stretch'];\n}\n\ninterface ButtonContentChildrenProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n color: TypographyColor;\n}\n\nconst StyledChildrenWithIcon = styled.View`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n`;\n\nexport function ButtonContentChildren({\n type,\n icon,\n iconPosition,\n iconSpin,\n isDisabled,\n color,\n children,\n}: ButtonContentChildrenProps): ReactElement | null {\n if (__DEV__) {\n if (!(children || icon)) {\n throw new Error('kitt(Button): You should provide at least a children or a icon');\n }\n }\n\n const isWebSubtle = isSubtle(type) && Platform.OS === 'web' && !isDisabled;\n\n if (!children) {\n return (\n <TypographyIcon\n spin={iconSpin}\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n icon={icon!}\n color={isWebSubtle ? 'inherit' : color}\n />\n );\n }\n\n const buttonIconSharedProps = {\n type,\n spin: iconSpin,\n iconPosition,\n color: isWebSubtle ? 'inherit' : (color as TypographyIconProps['color']),\n };\n\n return (\n <StyledChildrenWithIcon>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...buttonIconSharedProps} testID=\"button-left-icon\" icon={icon} />\n ) : null}\n\n <StyledButtonText\n base=\"body\"\n variant=\"bold\"\n $type={type}\n $isDisabled={isDisabled}\n // set to color: inherit via styled components\n color={isWebSubtle ? undefined : color}\n >\n {children}\n </StyledButtonText>\n\n {icon && iconPosition === 'right' ? <ButtonIcon {...buttonIconSharedProps} icon={icon} /> : null}\n </StyledChildrenWithIcon>\n );\n}\n\ninterface ButtonContentContainerProps {\n $isSubtle?: boolean;\n $isStretch?: boolean;\n $isIconOnly?: boolean;\n}\n\nconst ButtonContentContainer = styled.View<ButtonContentContainerProps>`\n line-height: 16px;\n\n ${({ $isStretch, $isIconOnly }) => {\n // Make the multilines case work properly on web\n // Breaks the native implem\n if (Platform.OS !== 'web') return undefined;\n\n return `\n flex: ${$isStretch || $isIconOnly ? 1 : 0} 1 auto;\n `;\n }}\n\n ${({ $isSubtle }) => {\n if (Platform.OS !== 'web' || !$isSubtle) return undefined;\n // Needed for subtle type\n return 'color: inherit';\n }};\n`;\n\nexport function ButtonContent({\n type,\n isDisabled,\n $isStretch,\n icon,\n children,\n ...props\n}: ButtonContentProps): ReactElement {\n const color = isDisabled ? 'black-light' : getTextColorByType(type);\n\n return (\n <ButtonContentContainer $isSubtle={isSubtle(type)} $isStretch={$isStretch} $isIconOnly={Boolean(!children && icon)}>\n <ButtonContentChildren icon={icon} type={type} isDisabled={isDisabled} color={color} {...props}>\n {children}\n </ButtonContentChildren>\n </ButtonContentContainer>\n );\n}\n","import styled from 'styled-components/native';\n\nexport const StyledDisabled = styled.View`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ${({ theme }) => {\n const { borderWidth, disabled } = theme.kitt.button;\n return `${borderWidth.disabled}px solid ${disabled.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport { Platform } from 'react-native';\nimport { AnimatedButtonPressable } from './AnimatedButtonPressable';\nimport { BaseStyledButtonPressable } from './BaseStyledButtonPressable';\nimport { ButtonContent } from './ButtonContent';\nimport { StyledDisabled } from './StyledDisabled';\n\nexport type SubtleButtonType = 'subtle' | 'subtle-dark';\nexport type ButtonType = 'primary' | 'default' | SubtleButtonType | 'white';\n\ntype IconPosition = 'right' | 'left';\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n disabled?: boolean;\n stretch?: boolean;\n large?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n iconSpin?: boolean;\n testID?: PressableProps['testID'];\n href?: PressableProps['href'];\n hrefAttrs?: PressableProps['hrefAttrs'];\n accessibilityRole?: PressableProps['accessibilityRole'];\n className?: string;\n style?: PressableProps['style'];\n onPress?: PressableProps['onPress'];\n}\n\nexport const Button = forwardRef<View, ButtonProps>(\n (\n {\n children,\n type = 'default',\n disabled,\n stretch,\n large,\n icon,\n iconPosition = 'left',\n iconSpin,\n testID,\n href,\n hrefAttrs,\n accessibilityRole = 'button',\n onPress,\n }: ButtonProps,\n ref,\n ): ReactElement => {\n return (\n <AnimatedButtonPressable\n ref={ref}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n disabled={disabled}\n $isStretch={stretch}\n $type={type}\n onPress={onPress}\n >\n <BaseStyledButtonPressable $type={type} $isStretch={stretch} $isLarge={large} $isDisabled={disabled}>\n <ButtonContent\n type={type}\n $isStretch={stretch}\n isDisabled={disabled}\n icon={icon}\n iconPosition={iconPosition}\n iconSpin={iconSpin}\n >\n {children}\n </ButtonContent>\n {Platform.OS !== 'web' && disabled ? <StyledDisabled /> : null}\n </BaseStyledButtonPressable>\n </AnimatedButtonPressable>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\ntype CardType = 'primary' | 'secondary' | 'subtle';\n\nexport interface CardProps {\n children: NonNullable<ReactNode>;\n type: CardType;\n}\ninterface ContainerProps {\n type: CardType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.card[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n border-width: ${({ theme }) => theme.kitt.card.borderWidth}px;\n border-color: ${({ theme, type }) => theme.kitt.card[type].borderColor};\n`;\n\nexport function Card({ children, type }: CardProps): ReactElement {\n return <Container type={type}>{children}</Container>;\n}\n","import type { ReactElement } from 'react';\nimport { useMemo } from 'react';\nimport type { ImageProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { parse } from 'twemoji-parser';\n\ninterface StyledEmojiProps {\n size: number;\n}\n\nconst StyledEmoji = styled.Image<StyledEmojiProps>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n`;\n\nexport interface EmojiProps extends Pick<ImageProps, 'style'> {\n emoji: string;\n size: number;\n}\n\nexport function Emoji({ emoji, size, style }: EmojiProps): ReactElement | null {\n const [emojiData] = useMemo(\n () =>\n parse(emoji, {\n // on native plaforms, you can't display svg as Image\n assetType: Platform.OS === 'web' ? 'svg' : 'png',\n }),\n [emoji],\n );\n\n if (!emojiData) return null;\n\n return <StyledEmoji size={size} accessibilityLabel={emojiData.text} source={{ uri: emojiData.url }} style={style} />;\n}\n","export interface ExternalLinkOpenLinkBehavior {\n /**\n * @default 'openInModal'\n *\n * @description open link behavior in native\n *\n * \"openInModal\": open via [expo-web-browser](https://docs.expo.dev/versions/latest/sdk/webbrowser/)\n *\n * \"openBrowserApp\": open via [Linking](https://docs.expo.dev/guides/linking/#opening-links-from-your-app)\n */\n native?: 'openInModal' | 'openBrowserApp';\n\n /**\n * @default 'targetBlank'\n *\n * @description open link behavior in native\n *\n * \"targetSelf\": no dom attributes added, behave like `target=\"_self\"`\n *\n * \"targetBlank\": dome attributes: `target=\"_blank\" rel=\"noopener noreferrer\"`\n */\n web?: 'targetSelf' | 'targetBlank';\n}\n\nexport const defaultOpenLinkBehavior: ExternalLinkOpenLinkBehavior = {\n native: 'openInModal',\n web: 'targetBlank',\n};\n","import * as WebBrowser from 'expo-web-browser';\nimport type { ComponentProps, ReactElement, VoidFunctionComponent } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Linking } from 'react-native';\nimport type { ExternalLinkOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport interface ExternalLinkAsComponentMinimumRequiredProps {\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress?: () => void;\n}\n\nexport interface ExternalLinkProps<C extends VoidFunctionComponent<any>> {\n as: C;\n openLinkBehavior?: ExternalLinkOpenLinkBehavior;\n href?: string;\n onPress?: () => void;\n}\n\n/** @internal for ExternalLink.web.tsx only */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ExternalLinkSendableComponentProps<C extends VoidFunctionComponent<any>> = Omit<\n ComponentProps<C>,\n keyof ExternalLinkProps<C> & keyof ExternalLinkAsComponentMinimumRequiredProps\n>;\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n const handleOnPress = () => {\n if (onPress) onPress();\n if (!href) return;\n switch (openLinkBehavior.native) {\n case 'openInModal':\n case undefined:\n WebBrowser.openBrowserAsync(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n case 'openBrowserApp':\n Linking.openURL(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n default:\n if (__DEV__) {\n throw new Error(`Invalid ExternalLink native behavior: ${openLinkBehavior.native as string}`);\n }\n }\n };\n\n return <Component {...(rest as any)} onPress={handleOnPress} />;\n}\n","export const lateOceanColorPalette = {\n lateOcean: '#4C34E0',\n lateOceanLight1: '#705DE6',\n lateOceanLight2: '#9485EC',\n lateOceanLight3: '#D6BAF9',\n\n warmEmbrace: '#F4D3CE',\n warmEmbraceLight1: '#FFEDE6',\n\n black1000: '#000000',\n black800: '#2C293D',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colors = {\n primary: lateOceanColorPalette.lateOcean,\n primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n info: lateOceanColorPalette.aero,\n warning: lateOceanColorPalette.goldCrayola,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n black: lateOceanColorPalette.black1000,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n transparent: lateOceanColorPalette.transparent,\n disabled: lateOceanColorPalette.black50,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface AvatarThemeVariant {\n backgroundColor: string;\n}\n\nexport interface AvatarTheme {\n borderRadius: number;\n default: AvatarThemeVariant;\n light: AvatarThemeVariant;\n}\n\nexport const avatar: AvatarTheme = {\n borderRadius: 10,\n default: {\n backgroundColor: colors.primary,\n },\n light: {\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface ButtonVariantTheme {\n backgroundColor: string;\n pressedBackgroundColor: string;\n hoverBackgroundColor: string;\n focusBorderColor: string;\n}\n\nexport interface SubtleButtonVariantTheme extends ButtonVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\n\nexport interface DisabledButtonVariantTheme extends ButtonVariantTheme {\n borderColor: string;\n}\n\nexport interface ButtonTheme {\n borderRadius: number;\n borderWidth: {\n disabled: number;\n focus: number;\n };\n minHeight: number;\n minWidth: number;\n maxWidth: number;\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n contentPadding: {\n default: string;\n large: string;\n disabled: string;\n };\n transition: {\n duration: string;\n timingFunction: string;\n };\n default: ButtonVariantTheme;\n primary: ButtonVariantTheme;\n white: ButtonVariantTheme;\n subtle: SubtleButtonVariantTheme;\n 'subtle-dark': SubtleButtonVariantTheme;\n disabled: DisabledButtonVariantTheme;\n}\n\nexport const button: ButtonTheme = {\n borderRadius: 30,\n borderWidth: {\n disabled: 2,\n focus: 3,\n },\n minHeight: 40,\n minWidth: 40,\n maxWidth: 335,\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n contentPadding: {\n default: '8px 16px 7px',\n large: '12px 24px 11px',\n disabled: '6px 14px 5px',\n },\n transition: {\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n },\n default: {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n hoverBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n },\n primary: {\n backgroundColor: colors.primary,\n pressedBackgroundColor: colors.primaryLight,\n hoverBackgroundColor: colors.primaryLight,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n },\n white: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\n },\n subtle: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colors.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n 'subtle-dark': {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colors.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n disabled: {\n backgroundColor: colors.disabled,\n pressedBackgroundColor: colors.disabled,\n hoverBackgroundColor: colors.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface CardThemeType {\n backgroundColor: string;\n borderColor: string;\n}\nexport interface CardTheme {\n borderRadius: number;\n borderWidth: number;\n primary: CardThemeType;\n secondary: CardThemeType;\n subtle: CardThemeType;\n}\n\nexport const card: CardTheme = {\n borderRadius: 20,\n borderWidth: 2,\n primary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: colors.separator,\n },\n};\n","import { colors } from './colors';\n\nexport interface FeedbackMessageVariantTheme {\n backgroundColor: string;\n}\n\nexport interface FeedbackMessageTheme {\n danger: FeedbackMessageVariantTheme;\n info: FeedbackMessageVariantTheme;\n success: FeedbackMessageVariantTheme;\n warning: FeedbackMessageVariantTheme;\n}\n\nexport const feedbackMessage: FeedbackMessageTheme = {\n danger: {\n backgroundColor: colors.danger,\n },\n success: {\n backgroundColor: colors.success,\n },\n info: {\n backgroundColor: colors.info,\n },\n warning: {\n backgroundColor: colors.warning,\n },\n};\n","import { colors } from './colors';\n\nexport const checkbox = {\n borderWidth: 2,\n borderRadius: 5,\n height: 20,\n width: 20,\n iconSize: 14,\n borderColor: colors.separator,\n backgroundColor: colors.uiBackgroundLight,\n checkedBorderColor: colors.primary,\n checkedBackgroundColor: colors.primary,\n markColor: colors.uiBackgroundLight,\n};\n","interface DatePickerPartTheme {\n minWidth: number;\n}\n\nexport interface DatePickerTheme {\n day: DatePickerPartTheme;\n month: DatePickerPartTheme;\n year: DatePickerPartTheme;\n}\n\nexport const datePicker: DatePickerTheme = {\n day: {\n minWidth: 64,\n },\n month: {\n minWidth: 64,\n },\n year: {\n minWidth: 82,\n },\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeBreakpointRangeConfig {\n fontSize: number;\n lineHeight: number;\n}\n\nexport interface TypographyTypeConfig {\n baseAndSmall: TypographyTypeBreakpointRangeConfig;\n mediumAndWide: TypographyTypeBreakpointRangeConfig;\n}\n\nexport const createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: baseAndSmallFontSize,\n lineHeight: calcLineHeight(baseAndSmallFontSize, lineHeightMultiplier),\n },\n mediumAndWide: {\n fontSize: mediumAndWideFontSize,\n lineHeight: calcLineHeight(mediumAndWideFontSize, lineHeightMultiplier),\n },\n});\n\nexport const typography = {\n colors: {\n black: lateOceanColorPalette.black1000,\n 'black-anthracite': lateOceanColorPalette.black800,\n 'black-light': lateOceanColorPalette.black555,\n white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { InputUIState } from '../../forms/utils';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\nimport { typography } from './typography';\n\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: keyof typeof typography.colors;\n}\n\nexport type InputStateTheme = Record<InputUIState, InputStateStyle>;\n\nconst inputStatesStyle: InputStateTheme = {\n default: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n pending: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n valid: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n },\n focus: {\n borderColor: colors.primary,\n color: 'black',\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n color: 'black-light',\n },\n invalid: {\n borderColor: colors.separator,\n color: 'black',\n },\n};\n\nexport interface InputTheme {\n minHeight: number;\n color: {\n selection: string;\n placeholder: string;\n };\n borderWidth: number;\n borderRadius: number;\n icon: {\n size: number;\n };\n padding: {\n default: string;\n iOSSingleLine: string;\n };\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n states: InputStateTheme;\n}\n\nexport const input: InputTheme = {\n minHeight: 40,\n color: {\n selection: colors.primary,\n placeholder: typography.colors['black-light'],\n },\n borderWidth: 2,\n borderRadius: 10,\n icon: {\n size: 20,\n },\n padding: {\n default: '5px 16px',\n iOSSingleLine: '7px 16px',\n },\n transition: {\n property: 'border-color',\n duration: '200ms',\n timingFunction: 'ease-in-out',\n },\n states: inputStatesStyle,\n};\n","export const inputField = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\ninterface InputTagTypeTheme {\n backgroundColor: string;\n labelColor: string;\n}\nexport interface InputTagTheme {\n borderRadius: number;\n iconSize: number;\n default: InputTagTypeTheme;\n success: InputTagTypeTheme;\n danger: InputTagTypeTheme;\n}\n\nexport const inputTag: InputTagTheme = {\n success: {\n backgroundColor: colors.success,\n labelColor: colors.uiBackgroundLight,\n },\n danger: {\n backgroundColor: colors.danger,\n labelColor: colors.uiBackgroundLight,\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n labelColor: colors.black,\n },\n borderRadius: 10,\n iconSize: 13.5,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface RadioTheme {\n size: number;\n unchecked: {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n };\n checked: {\n backgroundColor: string;\n innerBackgroundColor: string;\n innerSize: number;\n };\n disabled: {\n backgroundColor: string;\n borderColor: string;\n };\n}\n\nexport const radio: RadioTheme = {\n size: 18,\n unchecked: {\n backgroundColor: colors.uiBackgroundLight,\n borderWidth: 2,\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: colors.primary,\n innerSize: 5,\n innerBackgroundColor: colors.uiBackgroundLight,\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n },\n};\n","export interface TextAreaTheme {\n minHeight: number;\n}\n\nexport const textArea: TextAreaTheme = {\n minHeight: 120,\n};\n","import { checkbox } from './checkbox';\nimport { datePicker } from './datePicker';\nimport { input } from './input';\nimport { inputField } from './inputField';\nimport { inputTag } from './inputTag';\nimport { radio } from './radio';\nimport { textArea } from './textArea';\n\nexport const forms = {\n datePicker,\n input,\n radio,\n inputField,\n textArea,\n checkbox,\n inputTag,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModal = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { button } from './button';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: button.disabled.backgroundColor,\n borderColor: button.disabled.borderColor,\n },\n default: {\n pressedBackgroundColor: button.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: button.white.hoverBackgroundColor,\n },\n};\n","import { colors } from './colors';\n\nexport interface ListItemTheme {\n padding: string;\n borderColor: string;\n borderWidth: number;\n innerMargin: number;\n}\n\nexport const listItem: ListItemTheme = {\n padding: '12px 16px',\n borderColor: colors.separator,\n borderWidth: 1,\n innerMargin: 8,\n};\n","export const shadows = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport interface SkeletonTheme {\n backgroundColor: string;\n flareColor: string;\n animationDuration: number;\n}\n\nexport const skeleton: SkeletonTheme = {\n backgroundColor: lateOceanColorPalette.black100,\n flareColor: lateOceanColorPalette.black200,\n animationDuration: 1000,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface TagVariantTheme {\n borderWidth: number;\n backgroundColor: string;\n borderColor: string;\n}\n\nexport interface TagTypeTheme {\n fill: TagVariantTheme;\n outline: TagVariantTheme;\n}\n\nexport interface TagTheme {\n borderRadius: number;\n padding: string;\n primary: TagTypeTheme;\n default: TagTypeTheme;\n danger: TagTypeTheme;\n}\n\nexport const tag: TagTheme = {\n borderRadius: 10,\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.primary,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.black,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.danger,\n },\n },\n};\n","import { colors } from './colors';\n\nexport interface TooltipTheme {\n backgroundColor: string;\n borderRadius: number;\n opacity: number;\n horizontalPadding: number;\n verticalPadding: number;\n floatingPadding: number;\n}\n\nexport const tooltip: TooltipTheme = {\n backgroundColor: colors.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\n};\n","import { avatar } from './late-ocean/avatar';\nimport { button } from './late-ocean/button';\nimport { card } from './late-ocean/card';\nimport { colors } from './late-ocean/colors';\nimport { feedbackMessage } from './late-ocean/feedback';\nimport { forms } from './late-ocean/forms';\nimport { fullScreenModal } from './late-ocean/fullScreenModal';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItem } from './late-ocean/listItem';\nimport { shadows } from './late-ocean/shadows';\nimport { skeleton } from './late-ocean/skeleton';\nimport { tag } from './late-ocean/tag';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typography } from './late-ocean/typography';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nconst breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar,\n button,\n card,\n feedbackMessage,\n forms,\n typography,\n tag,\n shadows,\n fullScreenModal,\n iconButton,\n listItem,\n tooltip,\n skeleton,\n breakpoints,\n};\n\nexport type Theme = typeof theme;\n","import { useWindowDimensions } from 'react-native';\nimport type { WindowDimensions } from './createWindowSizeHelper';\n\nexport interface MatchWindowSizeOptions {\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n}\nexport function matchWindowSize(\n { width, height }: WindowDimensions,\n { minWidth, maxWidth, minHeight, maxHeight }: MatchWindowSizeOptions,\n): boolean {\n const hasWidthMatched = width ? (!minWidth || width >= minWidth) && (!maxWidth || width <= maxWidth) : true;\n const hasHeightMatched = height ? (!minHeight || height >= minHeight) && (!maxHeight || height <= maxHeight) : true;\n return hasWidthMatched && hasHeightMatched;\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width, height } = useWindowDimensions();\n return matchWindowSize({ width, height }, options);\n}\n","// eslint-disable-next-line no-restricted-imports\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { matchWindowSize } from './useMatchWindowSize';\n\nexport interface WindowSizeHelper {\n /** Prefer using if or map variants, at it should be more web friendly */\n matchWindowSize: (options: MatchWindowSizeOptions) => boolean;\n\n /**\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.ifWindowSizeMatches(\n * { minWidth: KittBreakpoints.SMALL },\n * 'padding: 5px 0 10px;'\n * )\n * )};\n * `;\n * ```\n */\n ifWindowSizeMatches: <T extends string | FlattenSimpleInterpolation | null>(\n options: MatchWindowSizeOptions,\n valueIfTrue: T,\n valueIfFalse?: T,\n ) => T | undefined;\n\n /**\n *\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.mapWindowWidth(\n * [KittBreakpoints.BASE, 'padding: 5px 0 10px;'],\n * [KittBreakpoints.SMALL, 'padding: 10px 0;'],\n * )\n * )};\n * `;\n * ```\n */\n mapWindowWidth: <V extends string>(...widthList: [number, V][]) => V | null;\n}\n\nexport interface WindowDimensions {\n width?: number;\n height?: number;\n}\n\nexport function createWindowSizeHelper(dimensions: WindowDimensions): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(dimensions, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(dimensions, options) ? valueIfTrue : valueIfFalse,\n\n mapWindowWidth: <V extends string>(...widthList: [number, V][]): V | null => {\n if (__DEV__) {\n widthList.slice(1).forEach(([minWidth], index) => {\n const previousMinWidth = widthList[index][0];\n if (previousMinWidth > minWidth) {\n throw new Error(\n `mapWindowWidth: sort your values to be mobile first. ${minWidth} is < ${previousMinWidth}, so ${minWidth} should be before ${previousMinWidth}.`,\n );\n }\n });\n }\n const found = widthList.find(([minWidth, value]) => matchWindowSize(dimensions, { minWidth: Number(minWidth) }));\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { Theme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport type { WindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport interface KittTheme {\n kitt: Theme;\n responsive: WindowSizeHelper;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions) };\n }, [dimensions]);\n}\n","import { CheckboxMark } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { GestureResponderEvent, PressableProps } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { Icon } from '../../Icon/Icon';\nimport { useKittTheme } from '../../useKittTheme';\n\ninterface CheckboxContainerProps {\n $isChecked: boolean;\n $hasLabel: boolean;\n}\n\nconst CheckboxAndLabelPressableWrapper = styled.Pressable`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst CheckboxContainer = styled.View<CheckboxContainerProps>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n height: ${({ theme }) => theme.kitt.forms.checkbox.height}px;\n width: ${({ theme }) => theme.kitt.forms.checkbox.width}px;\n position: relative;\n border-radius: ${({ theme }) => theme.kitt.forms.checkbox.borderRadius}px;\n\n ${({ $isChecked, theme }) => {\n const { checkedBackgroundColor, checkedBorderColor, borderColor, borderWidth, backgroundColor } =\n theme.kitt.forms.checkbox;\n if ($isChecked) {\n return css`\n background-color: ${checkedBackgroundColor};\n border: ${`${borderWidth}px solid ${checkedBorderColor}`};\n `;\n }\n return css`\n background-color: ${backgroundColor};\n border: ${`${borderWidth}px solid ${borderColor}`};\n `;\n }}\n\n margin-right: ${({ theme, $hasLabel }) => {\n if (!$hasLabel) return '0px';\n return `${theme.kitt.spacing * 2.5}px;`;\n }};\n`;\n\nexport interface CheckboxProps {\n onChange: (checked: boolean, e: GestureResponderEvent) => void;\n onBlur?: (e: any) => void;\n onFocus?: (e: any) => void;\n checked: boolean;\n hitSlop?: number;\n id?: PressableProps['testID'];\n children?: ReactNode;\n}\n\nexport function Checkbox({\n onChange,\n onBlur,\n onFocus,\n checked,\n hitSlop = 40,\n id,\n children,\n}: CheckboxProps): ReactElement {\n const theme = useKittTheme();\n\n const handlePress = (e: GestureResponderEvent): void => {\n if (onFocus) onFocus(e);\n if (onChange) onChange(!checked, e);\n if (onBlur) onBlur(e);\n };\n\n return (\n <CheckboxAndLabelPressableWrapper\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked }}\n hitSlop={hitSlop}\n onPress={handlePress}\n >\n <CheckboxContainer $isChecked={checked} $hasLabel={!!children} testID={id}>\n {checked ? (\n <Icon\n align=\"center\"\n color={theme.kitt.forms.checkbox.markColor}\n size={theme.kitt.forms.checkbox.iconSize}\n icon={<CheckboxMark />}\n />\n ) : null}\n </CheckboxContainer>\n\n {children}\n </CheckboxAndLabelPressableWrapper>\n );\n}\n","export type InputFormState = undefined | 'valid' | 'invalid' | 'pending';\n\nexport type InputUIState = NonNullable<InputFormState> | 'default' | 'disabled' | 'hover' | 'focus';\n\ninterface GetInputStateConfig {\n isFocused: boolean;\n isDisabled: boolean;\n formState: InputFormState;\n}\n\nexport function getInputUIState({ isFocused, isDisabled, formState }: GetInputStateConfig): InputUIState {\n if (isDisabled) return 'disabled';\n\n if (isFocused) return 'focus';\n\n if (formState === 'invalid') return 'invalid';\n\n return 'default';\n}\n","import { css } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../typography/Typography';\nimport type { InputUIState } from './utils';\n\nexport interface TextInputMixinProps {\n $state: InputUIState;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n background-color: ${({ theme, $state }) =>\n $state === 'disabled'\n ? theme.kitt.forms.input.states.disabled.backgroundColor\n : theme.kitt.forms.input.states.default.backgroundColor};\n\n border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth}px;\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius}px;\n border-color: ${({ theme, $state }) => theme.kitt.forms.input.states[$state].borderColor};\n\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;\n }};\n\n color: ${({ theme, $state }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color]};\n font-family: ${({ theme }) => theme.kitt.typography.types.bodies.fontFamily.regular};\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\n\ntype PartName = 'year' | 'month' | 'day';\n\nconst StyledTypographyText = styled(Typography.Text)`\n text-align: center;\n`;\n\ninterface ViewInputProps extends TextInputMixinProps {\n $partName?: PartName;\n}\n\nconst ViewInput = styled.View<ViewInputProps>`\n ${styledTextInputMixin}\n padding: ${({ theme }) => theme.kitt.forms.input.padding.default};\n min-height: ${({ theme }) => theme.kitt.forms.input.minHeight}px;\n min-width: ${({ theme, $partName }) => {\n if (!$partName) {\n return undefined;\n }\n\n return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;\n }};\n`;\n\ninterface DatePickerInputPartProps extends TextInputMixinProps {\n disabled?: boolean;\n partName?: 'year' | 'month' | 'day';\n placeholder?: string;\n value?: ReactNode;\n}\n\nexport function DatePickerInputPart({\n $state,\n placeholder,\n value,\n partName,\n disabled,\n}: DatePickerInputPartProps): ReactElement {\n const hasContent = placeholder || value;\n\n return (\n <ViewInput $state={$state} $partName={partName}>\n {hasContent ? (\n <StyledTypographyText color={!value || disabled ? 'black-light' : undefined}>\n {value || placeholder}\n </StyledTypographyText>\n ) : null}\n </ViewInput>\n );\n}\n","import type { ReactElement } from 'react';\nimport styled, { css } from 'styled-components/native';\nimport { getInputUIState } from '../utils';\nimport { DatePickerInputPart } from './DatePickerInputPart';\nimport type { DatePickerInputsProps } from './types';\n\nfunction prefixWithZero(value: number): string {\n return `${value}`.padStart(2, '0');\n}\n\ninterface PartContainerProps {\n $isLast?: boolean;\n $isStretch?: boolean;\n}\n\nconst PartContainer = styled.View<PartContainerProps>`\n margin-right: ${({ theme, $isLast }) => (!$isLast ? `${theme.kitt.spacing * 2}px` : 0)};\n ${({ $isStretch }) =>\n $isStretch\n ? css`\n flex: 0.33;\n flex-grow: 1;\n `\n : undefined};\n`;\n\ninterface DatePickerPressableProps {\n $isStretch?: boolean;\n}\n\nconst DatePickerPressable = styled.Pressable<DatePickerPressableProps>`\n display: flex;\n flex-direction: row;\n ${({ $isStretch }) => {\n if ($isStretch) {\n return css`\n width: 100%;\n `;\n }\n\n return css`\n align-self: baseline;\n `;\n }};\n`;\n\nexport interface DatePickerPlaceholder {\n day: string;\n month: string;\n year: string;\n}\n\nexport function DatePickerInputs({\n state,\n internalForceState,\n isFocused,\n disabled,\n stretch,\n id,\n testID,\n handleModalOpen,\n currentValue,\n placeholder,\n}: DatePickerInputsProps): ReactElement {\n const currentState =\n internalForceState || getInputUIState({ isFocused, isDisabled: Boolean(disabled), formState: state });\n\n const sharedPartProps = {\n disabled,\n $state: currentState,\n };\n\n return (\n <DatePickerPressable\n $isStretch={stretch}\n nativeID={id}\n disabled={disabled}\n testID={testID}\n onPress={handleModalOpen}\n >\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"day\"\n value={currentValue ? prefixWithZero(currentValue.getDate()) : undefined}\n placeholder={placeholder?.day}\n />\n </PartContainer>\n\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"month\"\n value={currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined}\n placeholder={placeholder?.month}\n />\n </PartContainer>\n\n <PartContainer $isLast $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"year\"\n value={currentValue ? currentValue.getFullYear() : undefined}\n placeholder={placeholder?.year}\n />\n </PartContainer>\n </DatePickerPressable>\n );\n}\n","import { DateTimePickerAndroid } from '@react-native-community/datetimepicker';\nimport type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\ninterface DatePickerAndroidProps\n extends Except<DatePickerProps, 'pickerUITitle' | 'pickerUIValidateButtonLabel' | 'value'> {\n isFocused: boolean;\n setIsFocused: (isFocused: boolean) => void;\n currentValue: Date | undefined;\n setCurrentValue: (value: Date | undefined) => void;\n}\n\nexport function DatePickerAndroid({\n onBlur,\n onFocus,\n pickerDefaultDate,\n pickerUITestID,\n setIsFocused,\n currentValue,\n setCurrentValue,\n onChange,\n isFocused,\n ...props\n}: DatePickerAndroidProps): ReactElement {\n const handleClose = (): void => {\n if (onBlur) onBlur();\n };\n\n const handleModalOpen = (): void => {\n setIsFocused(true);\n if (onFocus) onFocus();\n\n DateTimePickerAndroid.open({\n testID: pickerUITestID,\n value: currentValue || pickerDefaultDate || new Date(Date.now()),\n onChange: (e) => {\n setIsFocused(false);\n const { timestamp } = e.nativeEvent;\n if (timestamp) {\n const date = new Date(timestamp);\n\n setCurrentValue(date);\n onChange(date);\n handleClose();\n }\n },\n onTouchCancel: handleClose,\n });\n };\n\n return (\n <DatePickerInputs handleModalOpen={handleModalOpen} currentValue={currentValue} isFocused={isFocused} {...props} />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps {\n onPress: PressableProps['onPress'];\n}\n\n// Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates\nconst OverlayPressable = styled(Pressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return (\n <OverlayPressable accessibilityRole=\"none\" onPress={onPress}>\n <View />\n </OverlayPressable>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { ScrollView } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst BodyView = styled.View`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <ScrollView>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled.View`\n flex: 0 0 auto;\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-top-width: 1px;\n border-top-color: ${({ theme }) => theme.kitt.colors.separator};\n`;\n\nexport function ModalFooter({ children }: FooterProps): ReactElement {\n return <FooterView>{children}</FooterView>;\n}\n","import type { ComponentProps, ElementType, ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\n\nexport interface StyleWebWrapperProps<T extends ElementType> {\n as: T;\n children: ReactNode;\n}\n\nexport function StyleWebWrapper<T extends ElementType = 'div'>({\n as,\n children,\n ...props\n}: StyleWebWrapperProps<T> & ComponentProps<T>): ReactElement {\n if (Platform.OS !== 'web') return children as ReactElement;\n const Component: T = as || ('div' as T); // as or default to div. If as is undefined, T is div but typescript is not sure\n return <Component {...(props as any)}>{children}</Component>;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport { theme as kittTheme } from '../themes/default';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: boolean;\n $isDisabled?: boolean;\n}\n\nconst PressableIconButtonWebWrapper = withTheme(styledLinaria.div<PressableIconButtonWebWrapperProps>`\n & > *:hover,\n .kitt-hover & > * {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover)});\n }\n\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover)});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.active)});\n }\n\n &,\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *:hover,\n .kitt-hover & > *,\n & > *:focus,\n .kitt-focus & > *,\n & > [data-focusvisible-polyfill],\n & > *:active,\n .kitt-active & > * {\n background-color: ${({ theme, $isWhite, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;\n\n const { white, default: defaultIconButton } = theme.kitt.iconButton;\n\n if ($isWhite) return white.pressedBackgroundColor;\n return defaultIconButton.pressedBackgroundColor;\n }};\n }\n`);\n\nconst StyledPressableIconButton = styled.Pressable`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n `;\n }};\n`;\n\nexport interface PressableIconButtonProps extends PressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport function PressableIconButton({ color, disabled, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'} $isDisabled={Boolean(disabled)}>\n <StyledPressableIconButton {...props} disabled={disabled} />\n </StyleWebWrapper>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n testID?: IconButtonContentProps['testID'];\n accessibilityLabel?: IconButtonContentProps['accessibilityLabel'];\n accessibilityRole?: IconButtonContentProps['accessibilityRole'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n testID,\n accessibilityRole = 'button',\n accessibilityLabel,\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole={accessibilityRole}\n disabled={disabled}\n color={color}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { AccessibilityRole } from 'react-native';\nimport styled from 'styled-components/native';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled.View<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n testID?: string;\n accessibilityLabel?: string;\n accessibilityRole?: AccessibilityRole;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({\n icon,\n color,\n disabled,\n testID,\n accessibilityLabel,\n accessibilityRole,\n onPress,\n}: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer\n color={color}\n disabled={disabled}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import { createContext } from 'react';\n\nexport const OnCloseContext = createContext<() => void>(() => {});\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useContext } from 'react';\nimport styled from 'styled-components/native';\nimport { IconButton } from '../IconButton/IconButton';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled.View`\n position: relative;\n padding: ${({ theme }) => theme.kitt.spacing * 2}px;\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-bottom-width: 1px;\n border-bottom-color: ${({ theme }) => theme.kitt.colors.separator};\n min-height: 57px;\n`;\n\nconst LeftIconView = styled.View`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled.View`\n align-self: flex-start;\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\ninterface TitleViewProps {\n isIconLeft?: boolean;\n}\n\nconst TitleView = styled.View<TitleViewProps>`\n padding-left: ${({ theme, isIconLeft }) => (isIconLeft ? 0 : theme.kitt.spacing * 2)}px;\n flex-shrink: 1;\n`;\n\nexport function ModalHeader({ left, right, children }: HeaderProps): ReactElement {\n const onClose = useContext(OnCloseContext);\n\n const isIconLeft = !!left;\n\n return (\n <HeaderView>\n {isIconLeft && <LeftIconView>{left}</LeftIconView>}\n\n <TitleView isIconLeft={isIconLeft}>{children}</TitleView>\n\n {right !== undefined ? (\n right\n ) : (\n <RightIconView>\n <IconButton icon={<XIcon />} onPress={onClose} />\n </RightIconView>\n )}\n </HeaderView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Modal as NativeModal } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Overlay } from '../Overlay/Overlay';\nimport { ModalBody } from './Body';\nimport { ModalFooter } from './Footer';\nimport { ModalHeader } from './Header';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface ModalProps {\n visible: boolean;\n children: ReactNode;\n onClose: () => void;\n onEntered?: () => void;\n onExited?: () => void;\n}\n\nconst ModalView = styled.View`\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.spacing * 20}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nconst ContentView = styled.View`\n position: relative;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 540px;\n height: auto;\n width: 100%;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function Modal({ visible, children, onClose, onEntered, onExited }: ModalProps): ReactElement {\n return (\n <OnCloseContext.Provider value={onClose}>\n <NativeModal\n transparent\n animationType=\"fade\"\n visible={visible}\n onShow={onEntered}\n onDismiss={onExited}\n onRequestClose={onClose}\n >\n <ModalView>\n <Overlay onPress={onClose} />\n\n <ContentView>{children}</ContentView>\n </ModalView>\n </NativeModal>\n </OnCloseContext.Provider>\n );\n}\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import DateTimePicker from '@react-native-community/datetimepicker';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport type { ComponentProps, ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\n\ntype DateTimePickerProps = ComponentProps<typeof DateTimePicker>;\n\nfunction getDatePickerDisplayMode(): DateTimePickerProps['display'] {\n if (Platform.OS === 'android') return 'calendar';\n\n if (Platform.OS === 'ios') return 'spinner';\n\n return 'default';\n}\n\nexport interface PlatformDateTimePickerProps {\n value?: Date;\n defaultDate?: Date;\n maximumDate?: DateTimePickerProps['maximumDate'];\n minimuDate?: DateTimePickerProps['minimumDate'];\n testID?: DateTimePickerProps['testID'];\n onChange: (newDate?: Date) => void;\n}\n\nexport function PlatformDateTimePicker({\n value,\n defaultDate = new Date(),\n maximumDate,\n minimuDate,\n testID,\n onChange,\n}: PlatformDateTimePickerProps): ReactElement {\n const theme = useTheme();\n const displayMode = getDatePickerDisplayMode();\n\n const iosProps = Platform.OS === 'ios' ? { textColor: theme.kitt.colors.primary } : {};\n\n return (\n <DateTimePicker\n is24Hour\n testID={testID}\n value={value || defaultDate}\n mode=\"date\"\n maximumDate={maximumDate}\n minimumDate={minimuDate}\n display={displayMode}\n {...iosProps}\n onChange={(_event: DateTimePickerEvent, date?: Date | undefined) => onChange(date)}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Text } from 'react-native';\nimport { Button } from '../../Button/Button';\nimport { Modal } from '../../Modal/Modal';\nimport { Typography } from '../../typography/Typography';\nimport type { PlatformDateTimePickerProps } from './PlatformDateTimePicker';\nimport { PlatformDateTimePicker } from './PlatformDateTimePicker';\n\ninterface ModalTitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction ModalTitle({ children }: ModalTitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalPlatformDateTimePickerProps extends PlatformDateTimePickerProps {\n title?: ReactNode;\n isVisible?: boolean;\n validateButtonLabel?: string;\n onClose: () => void;\n}\n\nexport function ModalPlatformDateTimePicker({\n title,\n isVisible,\n value,\n validateButtonLabel,\n onClose,\n onChange,\n ...props\n}: ModalPlatformDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue((prev) => {\n return newDate || prev;\n });\n };\n\n return (\n <Modal visible={Boolean(isVisible)} onClose={handleClose}>\n {isVisible ? (\n <>\n {title ? <ModalTitle>{title}</ModalTitle> : null}\n\n <Modal.Body>\n <PlatformDateTimePicker {...props} value={currentValue} onChange={handleChange} />\n </Modal.Body>\n\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { Platform } from 'react-native';\nimport { DatePickerAndroid } from './DatePickerAndroid';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport { ModalPlatformDateTimePicker } from './ModalPlatformDateTimePicker';\nimport type { DatePickerProps } from './types';\n\nexport function DatePicker({\n value,\n pickerUITestID,\n pickerUITitle,\n pickerUIValidateButtonLabel,\n onChange,\n onFocus,\n onBlur,\n pickerDefaultDate,\n ...props\n}: DatePickerProps): ReactElement {\n const [isPickerUIVisible, setIsPickerUIVisible] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [currentValue, setCurrentValue] = useState<Date | undefined>(value);\n\n if (Platform.OS === 'android') {\n return (\n <DatePickerAndroid\n pickerDefaultDate={pickerDefaultDate}\n pickerUITestID={pickerUITestID}\n currentValue={currentValue}\n setCurrentValue={setCurrentValue}\n isFocused={isFocused}\n setIsFocused={setIsFocused}\n onChange={onChange}\n onBlur={onBlur}\n {...props}\n />\n );\n }\n\n const handleModalOpen = (): void => {\n if (onFocus) onFocus();\n\n setIsPickerUIVisible(true);\n\n setIsFocused(true);\n };\n\n const handleModalClose = (): void => {\n if (onBlur) onBlur();\n\n setIsPickerUIVisible(false);\n\n setIsFocused(false);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue(newDate);\n\n onChange(newDate);\n\n handleModalClose();\n };\n return (\n <>\n <DatePickerInputs\n handleModalOpen={handleModalOpen}\n currentValue={currentValue}\n isFocused={isFocused}\n {...props}\n />\n <ModalPlatformDateTimePicker\n testID={pickerUITestID}\n value={currentValue}\n isVisible={isPickerUIVisible}\n title={pickerUITitle}\n validateButtonLabel={pickerUIValidateButtonLabel}\n defaultDate={pickerDefaultDate}\n onClose={handleModalClose}\n onChange={handleChange}\n />\n </>\n );\n}\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface InputTextContainerProps {\n children: NonNullable<ReactNode>;\n $isDisabled?: boolean;\n}\n\nexport const InputTextContainer = styled.View<InputTextContainerProps>`\n position: relative;\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\nimport type { TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\nimport type { InputFormState, InputUIState } from '../utils';\nimport { getInputUIState } from '../utils';\nimport { InputTextContainer } from './InputTextContainer';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n minHeight?: number;\n state?: InputFormState;\n right?: ReactNode;\n /** @internal */\n internalForceState?: InputUIState;\n}\n\ninterface StyledTextInputProps extends TextInputMixinProps {\n $minHeight: number;\n}\n\nconst StyledTextInput = styled(TextInput)<StyledTextInputProps>`\n /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') {\n return theme.kitt.forms.input.padding.iOSSingleLine;\n }\n\n return theme.kitt.forms.input.padding.default;\n }};\n line-height: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') return 0;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].lineHeight}px`;\n }};\n width: 100%;\n min-height: ${({ $minHeight }) => $minHeight}px;\n`;\n\nconst RightInputContainer = styled.View`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: 10px;\n`;\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n right,\n minHeight = 0,\n state: formState,\n internalForceState,\n disabled = false,\n autoCorrect = true,\n textContentType = 'none',\n autoCompleteType = 'off',\n keyboardType = 'default',\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n const state = internalForceState || getInputUIState({ isFocused, isDisabled: disabled, formState });\n\n return (\n <InputTextContainer $isDisabled={disabled}>\n <StyledTextInput\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardType}\n autoCompleteType={autoCompleteType}\n autoCorrect={autoCorrect}\n $minHeight={minHeight}\n textContentType={textContentType}\n placeholderTextColor={theme.kitt.forms.input.color.placeholder}\n selectionColor={theme.kitt.forms.input.color.selection}\n {...props}\n $state={state}\n onFocus={(e) => {\n setIsFocused(true);\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n if (onBlur) onBlur(e);\n }}\n />\n {right ? <RightInputContainer>{right}</RightInputContainer> : null}\n </InputTextContainer>\n );\n },\n);\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputEmailProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType' | 'autoCapitalize'> {}\n\nexport function InputEmail(props: InputEmailProps): ReactElement {\n return (\n <InputText\n autoCompleteType=\"email\"\n keyboardType=\"email-address\"\n textContentType=\"emailAddress\"\n autoCapitalize=\"none\"\n {...props}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../utils';\n\nexport interface InputFeedbackProps {\n state?: InputFormState;\n testID?: TypographyProps['testID'];\n children: NonNullable<ReactNode>;\n}\n\nconst getColorFromState = (state?: InputFormState): TypographyColor => {\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n default:\n return 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../../KittBreakpoints';\n\nconst FieldContainer = styled.View`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled.View`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.forms.inputField.iconMarginLeft}px;\n`;\n\nexport interface InputFieldProps {\n label?: ReactNode;\n labelFeedback?: ReactNode;\n input: NonNullable<ReactNode>;\n feedback?: ReactNode;\n}\n\nexport function InputField({ label, labelFeedback, input, feedback }: InputFieldProps): ReactElement {\n return (\n <FieldContainer>\n {label ? (\n <FieldLabelContainer>\n <LabelContainer>{label}</LabelContainer>\n {labelFeedback}\n </FieldLabelContainer>\n ) : null}\n {input}\n {feedback ? <FeedbackContainer>{feedback}</FeedbackContainer> : null}\n </FieldContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputFormState } from 'forms/utils';\nimport type { TypographyIconProps } from '../../typography/TypographyIcon';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\n\nfunction getIconColor(state?: InputFormState, disabled?: boolean): TypographyIconProps['color'] {\n if (disabled) return 'black-light';\n\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n return 'success';\n default:\n return undefined;\n }\n}\n\nexport interface InputIconProps {\n icon: NonNullable<ReactElement>;\n disabled?: boolean;\n state?: InputFormState;\n}\n\nexport function InputIcon({ icon, state, disabled }: InputIconProps): ReactElement {\n const theme = useTheme();\n\n const color = getIconColor(state, disabled);\n\n return <TypographyIcon color={color} icon={icon} size={theme.kitt.forms.input.icon.size} />;\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable } from 'react-native';\n\nexport interface InputPressableProps extends PressableProps {}\n\nexport function InputPressable({ ...props }: InputPressableProps): ReactElement {\n return <Pressable {...props} />;\n}\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { InputIcon } from '../InputIcon/InputIcon';\nimport { InputPressable } from '../InputPressable/InputPressable';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPasswordProps extends InputTextProps {\n isPasswordDefaultVisible?: boolean;\n}\n\nexport function InputPassword({ isPasswordDefaultVisible, right, ...props }: InputPasswordProps): ReactElement {\n const [isVisible, setIsVisible] = useState(Boolean(isPasswordDefaultVisible));\n\n return (\n <InputText\n {...props}\n textContentType=\"password\"\n autoCompleteType=\"password\"\n autoCorrect={false}\n secureTextEntry={!isVisible}\n right={\n right || (\n <InputPressable accessibilityRole=\"button\" onPress={() => setIsVisible((prev) => !prev)}>\n <InputIcon icon={isVisible ? <EyeOffIcon /> : <EyeIcon />} />\n </InputPressable>\n )\n }\n />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPhoneProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType'> {}\n\nexport function InputPhone(props: InputPhoneProps): ReactElement {\n return <InputText {...props} autoCompleteType=\"tel\" keyboardType=\"number-pad\" textContentType=\"telephoneNumber\" />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport { useKittTheme } from '../../useKittTheme';\n\ntype InputTagType = 'success' | 'danger';\n\nconst getTypographyColor = (type: InputTagType | undefined): TypographyColor => (type ? 'white' : 'black');\n\ninterface InputTagContainerProps {\n type?: InputTagType;\n}\n\nconst InputTagContainer = styled(View)<InputTagContainerProps>`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n align-self: flex-start;\n overflow: hidden;\n padding-horizontal: ${({ theme }) => theme.kitt.spacing * 2}px;\n\n background-color: ${({ theme, type }) => {\n if (type === 'success') {\n return theme.kitt.forms.inputTag.success.backgroundColor;\n }\n if (type === 'danger') {\n return theme.kitt.forms.inputTag.danger.backgroundColor;\n }\n\n return theme.kitt.forms.inputTag.default.backgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.forms.inputTag.borderRadius}px;\n`;\n\nconst IconContainer = styled(View)`\n margin-right: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nexport interface InputTagProps {\n type?: InputTagType;\n children: ReactNode;\n icon?: ReactElement;\n}\n\nexport function InputTag({ children, type, icon }: InputTagProps): ReactElement {\n const typographyColor = getTypographyColor(type);\n const theme = useKittTheme();\n\n return (\n <InputTagContainer type={type}>\n {icon && (\n <IconContainer>\n <TypographyIcon icon={icon} size={theme.kitt.forms.inputTag.iconSize} color={typographyColor} />\n </IconContainer>\n )}\n <Typography.Text base=\"body-small\" color={typographyColor}>\n {children}\n </Typography.Text>\n </InputTagContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface LabelProps {\n htmlFor: string;\n children: NonNullable<ReactNode>;\n}\n\nexport function Label({ htmlFor, children }: LabelProps): ReactElement {\n return (\n <Typography.Text base=\"body\">\n {Platform.OS === 'web' ? <label htmlFor={htmlFor}>{children}</label> : children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { PressableProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface RadioProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n right?: boolean;\n children?: NonNullable<ReactNode>;\n value: string;\n onChange: (newValue: string) => void;\n}\n\ninterface OuterRadioProps {\n disabled: boolean;\n}\n\nconst OuterRadio = styled.View<OuterRadioProps>`\n background-color: ${({ theme, disabled }) =>\n theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n border-width: ${({ theme }) => theme.kitt.forms.radio.unchecked.borderWidth}px;\n border-color: ${({ theme, disabled }) => theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].borderColor};\n`;\nconst SelectedOuterRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n justify-content: center;\n align-items: center;\n`;\nconst SelectedInnerRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.innerBackgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n height: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize / 2}px;\n`;\nconst Container = styled.Pressable`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface TextAreaProps extends InputTextProps {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n\n return <InputText multiline textAlignVertical=\"top\" minHeight={theme.kitt.forms.textArea.minHeight} {...props} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\nconst Body = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding-right: ${theme.kitt.spacing * 12}px;\n padding-left: ${theme.kitt.spacing * 12}px;`,\n `padding-right: ${theme.kitt.spacing * 6}px;\n padding-left: ${theme.kitt.spacing * 6}px;`,\n )}\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n flex: 1;\n`;\n\ninterface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function FullScreenModalBody({ children }: BodyProps): ReactElement {\n return <Body>{children}</Body>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled.View<SideContainerProps>`\n ${({ theme, side = 'left' }) => {\n const padding = theme.kitt.spacing * 2;\n\n if (side === 'left') {\n return `padding-right: ${padding}px;`;\n }\n\n return `padding-left: ${padding}px;`;\n }}\n`;\n\nfunction getHeaderHorizontalMediumPadding(spacing: number): number {\n return spacing * 6;\n}\n\ninterface HeaderProps {\n insetTop?: number;\n}\n\nconst Header = styled.View<HeaderProps>`\n ${({ theme, insetTop = 0 }) => {\n const paddingTop = insetTop + theme.kitt.fullScreenModal.header.paddingVertical;\n const { paddingVertical, paddingHorizontal } = theme.kitt.fullScreenModal.header;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding: ${paddingTop}px ${getHeaderHorizontalMediumPadding(theme.kitt.spacing)}px ${paddingVertical}px;`,\n `padding: ${paddingTop}px ${paddingHorizontal}px ${paddingVertical}px;`,\n );\n }};\n border-bottom-color: ${({ theme }) => theme.kitt.fullScreenModal.header.borderColor};\n border-bottom-width: 1px;\n flex-direction: row;\n align-items: center;\n`;\n\ninterface HeaderContentProps {\n windowWidth: number;\n leftWidth: number;\n rightWidth: number;\n}\n\nconst HeaderContent = styled.View<HeaderContentProps>`\n ${({ theme, leftWidth, rightWidth, windowWidth }) => {\n /*\n * Since we don't have controll over the rendered left and right elements,\n * we must apply some logic to give the title all the available space\n */\n const sideElementMaxWidth = Math.max(leftWidth, rightWidth);\n\n const parentHorizontalPadding = theme.kitt.fullScreenModal.header.paddingHorizontal * 2;\n const parentHorizontalPaddingMedium = getHeaderHorizontalMediumPadding(theme.kitt.spacing) * 2;\n\n const computeWidth = (breakpointPadding: number): number =>\n windowWidth - breakpointPadding - sideElementMaxWidth * 2;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `width: ${computeWidth(parentHorizontalPaddingMedium)}px;`,\n `width: ${computeWidth(parentHorizontalPadding)}px;`,\n );\n }};\n ${({ leftWidth, rightWidth }) => {\n // Depending of the wider element, we must add a margin to fill the diff in space between elements\n const deltaMargin = Math.abs(leftWidth - rightWidth);\n\n if (leftWidth > rightWidth) {\n return `margin-right: ${deltaMargin}px;`;\n }\n\n return `margin-left: ${deltaMargin}px;`;\n }};\n justify-content: center;\n align-items: center;\n`;\n\nexport interface FullScreenModalHeaderProps {\n children: NonNullable<ReactNode>;\n right?: ReactNode;\n left?: ReactNode;\n}\n\nexport function FullScreenModalHeader({ children, right, left }: FullScreenModalHeaderProps): ReactElement {\n const { top } = useSafeAreaInsets();\n const dimensions = useWindowDimensions();\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(0);\n\n const handleLayoutChange = (event: LayoutChangeEvent, side: 'left' | 'right'): void => {\n // Prevents react to nullify event on rerenders\n event.persist();\n\n if (side === 'left') {\n setLeftWidth(event.nativeEvent.layout.width);\n return;\n }\n\n setRightWidth(event.nativeEvent.layout.width);\n };\n\n return (\n <Header insetTop={Platform.OS === 'ios' ? undefined : top}>\n {left ? <SideContainer onLayout={(e) => handleLayoutChange(e, 'left')}>{left}</SideContainer> : null}\n\n <HeaderContent windowWidth={dimensions.width} leftWidth={leftWidth} rightWidth={rightWidth}>\n {children}\n </HeaderContent>\n\n {right ? (\n <SideContainer side=\"right\" onLayout={(e) => handleLayoutChange(e, 'right')}>\n {right}\n </SideContainer>\n ) : null}\n </Header>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled.View`\n flex: 1 0 0%;\n align-self: center;\n`;\n\nexport function ListItemContent({ children, ...rest }: ListItemContentProps): ReactElement {\n return <ContentView {...rest}>{children}</ContentView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps, ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemSideContainerProps extends ViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled.View<ListItemSideContainerProps>`\n flex-direction: row;\n margin-left: ${({ theme, side }) => (side === 'right' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n`;\n\n// Handles the vertical alignment of the side elements of the list item\nexport function ListItemSideContainer({ children, side = 'left', ...rest }: ListItemSideContainerProps): ReactElement {\n return (\n <SideContainerView side={side} {...rest}>\n {children}\n </SideContainerView>\n );\n}\n\nexport interface ListItemSideContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled.View<ListItemSideContentProps>`\n align-self: ${({ align }) => align};\n`;\n\nexport function ListItemSideContent({ children, align = 'auto', ...rest }: ListItemSideContentProps): ReactElement {\n return (\n <SideContentView align={align} {...rest}>\n {children}\n </SideContentView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Fragment } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport { Pressable } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends ViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled.View<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}px`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}px`;\n }\n\n if (borders === 'both') {\n return css`\n border-top-width: ${borderWidth}px;\n border-bottom-width: ${borderWidth}px;\n `;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? Pressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\n\nexport interface LoaderProps {\n color?: Exclude<TypographyIconProps['color'], 'inherit'>;\n size?: TypographyIconProps['size'];\n}\n\nfunction getActivityIndicatorSize(size: number): number | 'small' | 'large' {\n if (Platform.OS === 'android') return size;\n return size < 36 ? 'small' : 'large';\n}\n\nexport function Loader({ color = 'primary', size = 20 }: LoaderProps): ReactElement {\n const theme = useTheme();\n const colorHex = theme.kitt.typography.colors[color];\n return <ActivityIndicator testID=\"ActivityIndicator\" color={colorHex} size={getActivityIndicatorSize(size)} />;\n}\n","import type { ReactElement } from 'react';\nimport type { LoaderProps } from './Loader';\nimport { Loader } from './Loader';\n\nexport interface LargeLoaderProps {\n color?: LoaderProps['color'];\n}\n\nexport function LargeLoader({ color = 'primary' }: LargeLoaderProps): ReactElement {\n return <Loader color={color} size={60} />;\n}\n","import { AlertCircleIcon, AlertTriangleIcon, CheckIcon, InfoIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\ninterface IconContentProps {\n type: MessageType;\n color: TypographyColor;\n}\n\nexport function IconContent({ type, color }: IconContentProps): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon color={color} />;\n case 'success':\n return <CheckIcon color={color} />;\n case 'danger':\n return <AlertTriangleIcon color={color} />;\n default:\n return <InfoIcon color={color} />;\n }\n}\n","import type { IconButtonProps } from '../IconButton/IconButton';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\nexport const getColorByType = (type: MessageType): TypographyColor => {\n switch (type) {\n case 'success':\n return 'white';\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n\nexport const getIconButtonColor = (messageType: MessageType): IconButtonProps['color'] => {\n switch (messageType) {\n case 'success':\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Typography } from '../typography/Typography';\nimport { IconContent } from './IconContent';\nimport { getColorByType, getIconButtonColor } from './helper';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\ninterface StyledMessageContainerProps {\n $type: MessageType;\n $hasNoRadius?: boolean;\n $insets?: EdgeInsets;\n}\n\nconst StyledMessageContainer = styled.View<StyledMessageContainerProps>`\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n min-height: 60px;\n padding-top: ${({ $insets }) => $insets?.top ?? 0}px;\n border-radius: ${({ theme, $hasNoRadius }) => ($hasNoRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, $type }) => theme.kitt.feedbackMessage[$type].backgroundColor};\n`;\n\nconst StyledDismissWrapper = styled.View`\n align-items: center;\n align-items: flex-start;\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 2.5}px ${spacing * 2}px 0 ${spacing * 5}px`;\n }};\n`;\n\nconst StyledIconContainer = styled.View`\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing}px ${spacing * 5}px 0 0`;\n }};\n`;\n\ninterface StyledTextContentProps {\n $isCenteredText?: boolean;\n}\n\nconst StyledTextContent = styled(Typography.Text)<StyledTextContentProps>`\n flex: 1;\n text-align: ${({ $isCenteredText }) => ($isCenteredText ? 'center' : 'left')};\n`;\n\nconst StyledMessageContent = styled.View`\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-self: center;\n align-items: flex-start;\n flex-shrink: 1;\n padding: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 4}px ${spacing * 5}px`;\n }};\n`;\n\nexport interface BaseMessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n /**\n * @internal for styling between Message and Notification\n */\n hasNoRadius?: boolean;\n centeredText?: boolean;\n insets?: EdgeInsets;\n onDismiss?: () => void;\n}\n\nexport function BaseMessage({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: BaseMessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <StyledMessageContainer $type={type} $hasNoRadius={hasNoRadius} $insets={insets}>\n <StyledMessageContent>\n {centeredText ? null : (\n <StyledIconContainer>\n <Icon color={color} icon={<IconContent type={type} color={color} />} />\n </StyledIconContainer>\n )}\n <StyledTextContent $isCenteredText={centeredText} base=\"body\" color={color}>\n {children}\n </StyledTextContent>\n </StyledMessageContent>\n\n {onDismiss ? (\n <StyledDismissWrapper>\n <IconButton color={getIconButtonColor(type)} icon={<XIcon />} onPress={onDismiss} />\n </StyledDismissWrapper>\n ) : null}\n </StyledMessageContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\n\nexport interface MessageProps extends BaseMessageProps {}\n\nexport function Message({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: MessageProps): ReactElement {\n return (\n <BaseMessage\n insets={insets}\n hasNoRadius={hasNoRadius}\n type={type}\n centeredText={centeredText}\n onDismiss={onDismiss}\n >\n {children}\n </BaseMessage>\n );\n}\n","import type { ReactElement } from 'react';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\n\nexport interface NotificationProps extends BaseMessageProps {\n /**\n * @deprecated use onDismiss instead\n */\n onDelete?: BaseMessageProps['onDismiss'];\n}\n\nexport function Notification({\n type,\n children,\n centeredText,\n insets,\n onDelete,\n onDismiss,\n}: NotificationProps): ReactElement {\n if (__DEV__) {\n if (onDelete) {\n throw new Error('onDelete is deprecated us onDismiss instead');\n }\n }\n\n return (\n <BaseMessage hasNoRadius type={type} centeredText={centeredText} insets={insets} onDismiss={onDismiss}>\n {children}\n </BaseMessage>\n );\n}\n","import { LinearGradient } from 'expo-linear-gradient';\nimport type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n Easing,\n interpolate,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\n\ninterface SkeletonProps {\n isLoading?: boolean;\n width: number;\n}\n\nconst Container = styled.View`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n border-color: ${({ theme }) => theme.kitt.skeleton.flareColor};\n height: 100%;\n width: 100%;\n`;\nconst AnimatedLinearGradient = Animated.createAnimatedComponent(LinearGradient);\n\nexport function SkeletonContent({ isLoading, width }: SkeletonProps): ReactElement {\n const theme = useTheme();\n const sharedX = useSharedValue(0);\n\n useEffect(() => {\n if (isLoading) {\n sharedX.value = withRepeat(\n withTiming(1, { duration: theme.kitt.skeleton.animationDuration, easing: Easing.inOut(Easing.ease) }),\n -1,\n );\n }\n }, [sharedX, width, isLoading, theme]);\n\n const linearGradientStyle = useAnimatedStyle(() => {\n return {\n transform: [{ translateX: interpolate(sharedX.value, [0, 1], [-width, width]) }],\n };\n });\n\n return (\n <Container>\n <AnimatedLinearGradient\n colors={[\n theme.kitt.skeleton.backgroundColor,\n theme.kitt.skeleton.flareColor,\n theme.kitt.skeleton.backgroundColor,\n ]}\n locations={[0.1, 0.5, 0.9]}\n start={{ x: 0, y: 0 }}\n end={{ x: 1, y: 0 }}\n style={[StyleSheet.absoluteFill, linearGradientStyle]}\n />\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\nconst SkeletonContainer = styled(View)`\n overflow: hidden;\n`;\nexport interface SkeletonProps {\n isLoading?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Skeleton({ isLoading, style }: SkeletonProps): ReactElement {\n const [width, setWidth] = useState(0);\n\n return (\n <SkeletonContainer style={style} onLayout={({ nativeEvent }) => setWidth(nativeEvent.layout.width)}>\n <SkeletonContent isLoading={isLoading} width={width} />\n </SkeletonContainer>\n );\n}\n\nconst Bar = styled(Skeleton)`\n width: 100%;\n height: ${({ theme }) => theme.kitt.spacing * 2}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst Circle = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 6}px;\n`;\n\nconst Square = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 1.5}px;\n`;\n\nSkeleton.Bar = Bar;\nSkeleton.Circle = Circle;\nSkeleton.Square = Square;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled.View.withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled.View<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled.View`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled.View`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends ViewProps {}\n\nconst StyledSection = styled.View<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends ViewProps {\n title: ReactNode;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({ title, children, internalIsDemoSection, ...props }: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement, ReactNode } from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}px;\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius}px;\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","import type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Platform, Text } from 'react-native';\nimport { Button } from '../Button/Button';\nimport { Modal } from '../Modal/Modal';\nimport { Typography } from '../typography/Typography';\n\ninterface TitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction Title({ children }: TitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalDateTimePickerProps {\n title?: ReactNode;\n visible?: boolean;\n value: Date;\n validateButtonLabel?: string;\n onClose: () => void;\n onChange: (newDate: Date) => void;\n}\n\nexport function ModalDateTimePicker({\n title,\n visible,\n value,\n validateButtonLabel,\n onChange,\n onClose,\n}: ModalDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n return (\n <Modal visible={Boolean(visible)} onClose={handleClose}>\n {visible ? (\n <>\n {title ? <Title>{title}</Title> : null}\n\n <Modal.Body>\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={currentValue}\n mode=\"time\"\n display={Platform.OS === 'ios' ? 'spinner' : 'default'}\n onChange={(_event: DateTimePickerEvent, date?: Date) =>\n setCurrentValue((prev) => {\n return date || prev;\n })\n }\n />\n </Modal.Body>\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { InputUIState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\n\nexport const useTimePicker = (\n value: Date | null,\n onChange: (time?: Date | null) => void,\n onBlur: () => void,\n disabled: boolean,\n defaultValue?: Date | null,\n): {\n displayedValue: string;\n dateTimePickerValue: Date;\n timePickerState: InputUIState;\n isTimePickerModalVisible: boolean;\n handleInputPress: () => void;\n handleModalClose: () => void;\n handleTimeChange: (date?: Date) => void;\n} => {\n const [isTimePickerModalVisible, setIsTimePickerModalVisible] = useState<boolean>(false);\n\n const todayAtNoon = useMemo(() => {\n const now = new Date(2000, 0, 1, 12);\n return new Date(now.getFullYear(), now.getMonth(), now.getDay(), 12);\n }, []);\n\n const defaultDate = defaultValue || todayAtNoon;\n const handleInputPress = (): void => {\n if (disabled) {\n return;\n }\n setIsTimePickerModalVisible(true);\n };\n\n const handleTimeChange = (date?: Date | null): void => {\n setIsTimePickerModalVisible(false);\n\n onChange(date || defaultDate);\n onBlur();\n };\n\n const dateTimePickerValue = value || defaultDate;\n const displayedValue =\n value === null\n ? timePickerPlaceholder\n : Intl.DateTimeFormat('fr-FR', { minute: 'numeric', hour: 'numeric' }).format(dateTimePickerValue);\n const timePickerState = isTimePickerModalVisible ? 'focus' : 'default';\n\n return {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n isTimePickerModalVisible,\n handleInputPress,\n handleTimeChange,\n handleModalClose: () => setIsTimePickerModalVisible(false),\n };\n};\n","import type { TextInputMixinProps } from '@ornikar/kitt-universal';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { styledTextInputMixin } from '../forms/styledTextInputMixin';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\ninterface ContainerProps extends TextInputMixinProps {}\n\nconst Container = styled.Pressable<ContainerProps>`\n ${styledTextInputMixin}\n width: 100px;\n height: 40px;\n justify-content: center;\n align-items: center;\n`;\n\nexport type TimePickerValue = Date | null | undefined;\n\nexport interface TimePickerProps {\n title?: ReactNode;\n state?: TextInputMixinProps['$state'];\n disabled?: boolean;\n forceDefaultValue?: TimePickerValue;\n value?: Date | '' | null;\n validateButtonLabel?: string;\n onChange: (time: TimePickerValue) => void;\n onBlur: () => void;\n}\n\nexport function TimePicker({\n title,\n state = 'default',\n disabled = false,\n forceDefaultValue,\n value,\n validateButtonLabel,\n onChange,\n onBlur,\n}: TimePickerProps): ReactElement {\n const {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n handleInputPress,\n handleModalClose,\n handleTimeChange,\n isTimePickerModalVisible,\n } = useTimePicker(value || null, onChange, onBlur, disabled, forceDefaultValue);\n\n return (\n <Container\n $state={timePickerState === 'default' ? state : timePickerState}\n accessibilityRole=\"button\"\n onPress={handleInputPress}\n >\n <Typography.Text base=\"body\" color={displayedValue === timePickerPlaceholder ? 'black-light' : 'black'}>\n {displayedValue}\n </Typography.Text>\n\n {Platform.OS === 'android' && isTimePickerModalVisible ? (\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={dateTimePickerValue}\n mode=\"time\"\n display=\"default\"\n onChange={(_event: DateTimePickerEvent, date?: Date) => handleTimeChange(date)}\n />\n ) : null}\n\n {Platform.OS !== 'android' ? (\n <ModalDateTimePicker\n title={title}\n visible={isTimePickerModalVisible}\n value={dateTimePickerValue}\n validateButtonLabel={validateButtonLabel}\n onChange={handleTimeChange}\n onClose={handleModalClose}\n />\n ) : null}\n </Container>\n );\n}\n","import { TooltipArrowIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\nimport type { TooltipPosition } from './Tooltip';\n\nconst StyledTooltipView = styled.View`\n align-items: center;\n`;\n\nconst StyledTooltipContent = styled.View`\n background-color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n border-radius: ${({ theme }) => theme.kitt.tooltip.borderRadius}px;\n opacity: ${({ theme }) => theme.kitt.tooltip.opacity};\n padding: ${({ theme }) => `${theme.kitt.tooltip.verticalPadding}px ${theme.kitt.tooltip.horizontalPadding}px`};\n`;\n\ninterface StyledArrowProps {\n $position: TooltipPosition;\n}\n\nfunction ArrowView(props: ViewProps): ReactElement {\n const theme = useTheme();\n return (\n <View {...props}>\n <TooltipArrowIcon color={theme.kitt.tooltip.backgroundColor} />\n </View>\n );\n}\n\nconst StyledArrow = styled(ArrowView)<StyledArrowProps>`\n color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n transform: ${({ $position }) => `rotate(${$position === 'bottom' ? 180 : 0}deg)`};\n`;\n\nexport interface TooltipViewProps {\n children: NonNullable<ReactNode>;\n position: TooltipPosition;\n}\n\nexport function TooltipView({ children, position }: TooltipViewProps): ReactElement {\n return (\n <StyledTooltipView>\n {position === 'bottom' ? <StyledArrow $position={position} /> : null}\n <StyledTooltipContent>\n <Typography.Text base=\"body\" color=\"white\">\n {children}\n </Typography.Text>\n </StyledTooltipContent>\n {position === 'top' ? <StyledArrow $position={position} /> : null}\n </StyledTooltipView>\n );\n}\n","import type { TooltipProps } from '..';\nimport type { TooltipPosition } from './Tooltip';\n\nexport const tooltipDefaultPosition: TooltipPosition = 'top';\nexport const tooltipDefaultFloatingStrategy: TooltipProps['floatingStrategy'] = {\n web: 'absolute',\n};\n","import { flip, offset, shift, useFloating } from '@floating-ui/react-native';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useEffect } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultPosition } from './tooltipUtils';\n\nexport type TooltipPosition = 'bottom' | 'top';\nexport type WebFloatingPosition = 'fixed' | 'absolute';\n\n// Since the tooltip use absolute positionning, we need a parent to provide the relative root\nconst TooltipContainer = styled.View`\n position: relative;\n align-self: baseline;\n`;\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n floatingPadding?: number;\n position?: TooltipPosition;\n /**\n * @description\n * This value init the internal visibile state of the tooltip. This is mainly used for testing purpose.\n */\n defaultVisible?: boolean;\n // eslint-disable-next-line react/no-unused-prop-types\n fullWidth?: boolean;\n /**\n * @default absolute\n * @description\n * Specific position strategy to apply to the tooltip.\n * Might be usefull when dealing with edge case (see https://floating-ui.com/docs/misc#z-index-stacking).\n */\n // eslint-disable-next-line react/no-unused-prop-types\n floatingStrategy?: {\n web: WebFloatingPosition;\n };\n onUpdate?: (tooltipConfig: any) => void;\n}\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : update position on scroll in future iteration\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const pressed = useSharedValue(defaultVisible);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? theme.kitt.tooltip.opacity : 0),\n };\n });\n\n const handlePress = (): void => {\n pressed.value = !pressed.value;\n };\n\n const { x, y, reference, floating, update, refs, middlewareData } = useFloating({\n placement: position,\n middleware: [offset(padding), shift(), flip({ padding })],\n });\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy: 'absolute',\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, update, refs, middlewareData, onUpdate]);\n\n return (\n <TooltipContainer>\n <View ref={reference}>\n <Pressable accessibilityRole=\"button\" onPress={handlePress}>\n {children}\n </Pressable>\n </View>\n\n <View\n ref={floating}\n accessibilityElementsHidden={!pressed.value}\n importantForAccessibility={pressed.value === true ? 'auto' : 'no-hide-descendants'}\n style={{\n ...StyleSheet.absoluteFillObject,\n top: y && position === 'bottom' ? y : undefined,\n bottom: y && position === 'top' ? y : undefined,\n left: x ?? 0,\n }}\n >\n <Animated.View style={[opacityStyles]}>\n <TooltipView position={position}>{content}</TooltipView>\n </Animated.View>\n </View>\n </TooltipContainer>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n return <StyledTypographyEmoji size={fontSize} emoji={emoji} />;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface TypographyLinkWebWrapperProps {\n theme: DefaultTheme;\n $hasNoUnderline?: boolean;\n}\n\nconst TypographyLinkWebWrapper = withTheme(styledLinaria.span<TypographyLinkWebWrapperProps>`\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: none;\n }\n\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'underline' : 'none')}\n }\n`);\n\ninterface StyledLinkProps {\n $disabled?: boolean;\n $hasNoUnderline?: boolean;\n}\n\nconst StyledLink = styled.Text<StyledLinkProps & TextProps>`\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'none' : 'underline')};\n\n ${({ $disabled }) => {\n if (Platform.OS !== 'web') return undefined;\n\n return `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n `;\n }};\n\n ${({ $disabled, theme }) => {\n if (!$disabled) return undefined;\n return `color: ${theme.kitt.typography.link.disabledColor};`;\n }};\n`;\n\nexport interface TypographyLinkProps extends Except<TypographyPropsWithoutRole, 'children'> {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n noUnderline?: boolean;\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress: TextProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n href,\n hrefAttrs,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyleWebWrapper as={TypographyLinkWebWrapper} $hasNoUnderline={noUnderline}>\n <StyledLink\n $disabled={disabled}\n $hasNoUnderline={noUnderline}\n href={href}\n hrefAttrs={hrefAttrs}\n accessibilityRole=\"link\"\n dataSet={{\n // remove data-kitt-universal when we delete kitt web. See See :global(a) in Link styles.module.css\n 'kitt-universal': 'true',\n }}\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </StyleWebWrapper>\n </Typography>\n );\n}\n","export const hex2rgba = (hex: string, alpha = 1): string => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { ThemeProvider } from 'styled-components/native';\nimport type { KittTheme } from '../../useKittTheme';\nimport { useKittTheme } from '../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context) as ReactNode}</KittThemeProvider>;\n },\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { useMatchWindowSize } from './useMatchWindowSize';\n\ninterface MatchWindowSizeProps extends MatchWindowSizeOptions {\n children: ReactNode;\n}\n\nexport function MatchWindowSize({ children, ...matchWindowSizeOptions }: MatchWindowSizeProps): ReactElement | null {\n const match = useMatchWindowSize(matchWindowSizeOptions);\n if (!match) return null;\n return children as ReactElement;\n}\n","import type { ComponentType, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\n\n// type $Without<T, K extends keyof any> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;\n// type $DeepPartial<T> = { [P in keyof T]?: $DeepPartial<T[P]> };\n\n// export function withTheme<Props extends { theme: DefaultTheme }, C>(\n// WrappedComponent: ComponentType<Props> & C,\n// ): ComponentType<SetOptional<Props, 'theme'>> & hoistNonReactStatics.NonReactStatics<typeof WrappedComponent> {\n// return function ThemedComponent(props) {\n// const theme = useTheme();\n\n// return (<WrappedComponent theme={theme} {...(props as any)} />) as any;\n// };\n// }\n\nexport function withTheme<Props extends { theme: DefaultTheme }, T>(\n WrappedComponent: ComponentType<Props>,\n): ForwardRefExoticComponent<PropsWithoutRef<Except<Props, 'theme'>> & RefAttributes<T>> {\n // eslint-disable-next-line prefer-arrow-callback\n return forwardRef<T, Except<Props, 'theme'>>(function ThemedComponent(props, ref) {\n const theme = useTheme();\n\n return <WrappedComponent ref={ref} theme={theme} {...(props as any)} />;\n });\n}\n"],"names":["SpinningIcon","children","animationRef","useRef","Animated","Value","rotation","current","interpolate","inputRange","outputRange","useEffect","process","env","TESTS","undefined","animation","loop","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","stop","_jsx","transform","rotate","IconContainer","styled","View","color","size","align","Icon","icon","spin","clonedIcon","cloneElement","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","IsHeaderTypographyContext","createContext","TypographyColorContext","useTypographyColor","useContext","getTypographyTypeConfigKey","theme","isMediumOrAbove","responsive","matchWindowSize","minWidth","isTypeHeader","type","startsWith","isTypographyHeader","typographyIsHeaderInContext","Error","getTypographyTypeConfig","kitt","typography","types","headers","configs","bodies","StyledTypography","Text","$isHeader","$typeForCurrentWindowSize","$variant","typeConfigKey","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","$color","colors","useTypographyTypeForCurrentWindowSize","base","small","medium","large","useWindowDimensions","width","getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors","hasTypographyAncestor","Typography","accessibilityRole","variant","otherProps","isHeaderTypographyInContext","baseOrDefaultToBody","colorOrDefaultToBlack","typeForCurrentWindowSize","isHeader","nonNullableVariant","content","TypographyText","props","TypographyParagraph","createHeading","level","defaultBase","TypographyHeading","displayName","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","$isRound","$size","avatar","borderRadius","$isLight","light","backgroundColor","AvatarContent","src","alt","isLight","uri","height","Avatar","round","StyledPressable","Pressable","$isStretch","StyledAnimatedView","button","AnimatedButtonPressable","forwardRef","ref","disabled","$type","href","hrefAttrs","testID","onPress","useTheme","pressed","useSharedValue","pressedBackgroundColor","scale","scaleStyles","useAnimatedStyle","interpolateColor","value","withSpring","active","handlePressInOut","pressIn","BaseStyledButtonPressable","maxWidth","minHeight","$isDisabled","Platform","OS","$isLarge","contentPadding","defaultPadding","disabledPadding","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","isSubtle","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","spacing","ButtonIcon","iconPosition","StyledChildrenWithIcon","ButtonContentChildren","iconSpin","isDisabled","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","StyledDisabled","borderWidth","borderColor","Button","stretch","Container","card","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","handleOnPress","WebBrowser","err","console","error","Linking","openURL","lateOceanColorPalette","lateOcean","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black800","black555","black200","black100","black50","black25","white","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","primary","primaryLight","accent","accentLight","success","correct","danger","info","warning","separator","hover","black","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","focus","transition","timingFunction","hoverBackgroundColor","focusBorderColor","subtle","hoverColor","activeColor","secondary","feedbackMessage","checkbox","iconSize","checkedBorderColor","checkedBackgroundColor","markColor","datePicker","day","month","year","calcLineHeight","lineHeightMultiplier","Math","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","regular","bold","header1","header2","header3","header4","header5","body","link","disabledColor","inputStatesStyle","pending","valid","invalid","input","selection","placeholder","padding","iOSSingleLine","property","states","inputField","labelContainerPaddingBottom","iconMarginLeft","inputTag","labelColor","radio","unchecked","checked","innerSize","innerBackgroundColor","textArea","forms","fullScreenModal","header","paddingVertical","paddingHorizontal","iconButton","listItem","innerMargin","shadows","skeleton","flareColor","animationDuration","tag","fill","outline","tooltip","opacity","horizontalPadding","verticalPadding","floatingPadding","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","max","palettes","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","dimensions","ifWindowSizeMatches","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","CheckboxAndLabelPressableWrapper","CheckboxContainer","$isChecked","css","$hasLabel","Checkbox","onChange","onBlur","onFocus","hitSlop","id","handlePress","e","getInputUIState","isFocused","formState","styledTextInputMixin","$state","StyledTypographyText","ViewInput","$partName","DatePickerInputPart","partName","prefixWithZero","padStart","PartContainer","$isLast","DatePickerPressable","DatePickerInputs","state","internalForceState","handleModalOpen","currentValue","currentState","sharedPartProps","getDate","getMonth","getFullYear","DatePickerAndroid","pickerDefaultDate","pickerUITestID","setIsFocused","setCurrentValue","handleClose","DateTimePickerAndroid","open","Date","now","timestamp","nativeEvent","date","onTouchCancel","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","PressableIconButton","AnimatedIconButtonBackground","AnimatedViewContainer","PressableAnimatedContainer","accessibilityLabel","opacityStyles","IconButtonContentBorder","IconButtonContent","IconButton","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","left","right","onClose","ModalView","ContentView","Modal","visible","onEntered","onExited","NativeModal","Header","Body","Footer","getDatePickerDisplayMode","PlatformDateTimePicker","defaultDate","maximumDate","minimuDate","displayMode","iosProps","textColor","_event","ModalTitle","ModalPlatformDateTimePicker","title","isVisible","validateButtonLabel","useState","handleChange","newDate","prev","handleSubmit","DatePicker","pickerUITitle","pickerUIValidateButtonLabel","isPickerUIVisible","setIsPickerUIVisible","handleModalClose","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","autoCorrect","textContentType","autoCompleteType","keyboardType","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","setIsVisible","InputPhone","getTypographyColor","InputTagContainer","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","layout","FullScreenModal","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","Notification","onDelete","AnimatedLinearGradient","createAnimatedComponent","LinearGradient","SkeletonContent","isLoading","sharedX","withRepeat","withTiming","inOut","ease","linearGradientStyle","translateX","x","y","absoluteFill","SkeletonContainer","Skeleton","setWidth","Bar","Circle","Square","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","includes","direction","storyPadding","getBackgroundColorFromBlockColor","getTypographyColorFromBlockColor","StoryBlockBackgroundContext","StoryBlockColorContext","useStoryBlockColor","storyBlockColor","StyledStoryBlockView","background","StoryBlock","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StoryContainer","ScrollView","Story","contentContainerStyle","StyledSection","StorySection","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","isNative","StoryGrid","Row","Col","getLabelColor","Tag","Title","ModalDateTimePicker","timePickerPlaceholder","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","getDay","dateTimePickerValue","displayedValue","Intl","DateTimeFormat","minute","hour","format","timePickerState","handleInputPress","handleTimeChange","TimePicker","forceDefaultValue","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","TooltipContainer","Tooltip","defaultVisible","onUpdate","useFloating","placement","middleware","offset","shift","flip","reference","floating","update","refs","middlewareData","strategy","bottom","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","r","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match","withTheme","WrappedComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/AnimatedButtonPressable.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/isSubtle.ts","../src/Button/ButtonContent.tsx","../src/Button/StyledDisabled.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/colors.ts","../src/themes/late-ocean/avatar.ts","../src/themes/late-ocean/button.ts","../src/themes/late-ocean/card.ts","../src/themes/late-ocean/feedback.ts","../src/themes/late-ocean/checkbox.ts","../src/themes/late-ocean/datePicker.ts","../src/themes/late-ocean/typography.ts","../src/themes/late-ocean/input.ts","../src/themes/late-ocean/inputField.ts","../src/themes/late-ocean/inputTag.ts","../src/themes/late-ocean/radio.ts","../src/themes/late-ocean/textArea.ts","../src/themes/late-ocean/forms.ts","../src/themes/late-ocean/fullScreenModal.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItem.ts","../src/themes/late-ocean/shadows.ts","../src/themes/late-ocean/skeleton.ts","../src/themes/late-ocean/tag.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/default.ts","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/forms/Checkbox/Checkbox.tsx","../src/forms/utils.ts","../src/forms/styledTextInputMixin.ts","../src/forms/DatePicker/DatePickerInputPart.tsx","../src/forms/DatePicker/DatePickerInputs.tsx","../src/forms/DatePicker/DatePickerAndroid.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/forms/DatePicker/PlatformDateTimePicker.tsx","../src/forms/DatePicker/ModalPlatformDateTimePicker.tsx","../src/forms/DatePicker/DatePicker.tsx","../src/forms/InputText/InputTextContainer.tsx","../src/forms/InputText/InputText.tsx","../src/forms/InputEmail/InputEmail.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputIcon/InputIcon.tsx","../src/forms/InputPressable/InputPressable.tsx","../src/forms/InputPassword/InputPassword.tsx","../src/forms/InputPhone/InputPhone.tsx","../src/forms/InputTag/InputTag.tsx","../src/forms/Label/Label.tsx","../src/forms/Radio/Radio.tsx","../src/forms/TextArea/TextArea.tsx","../src/FullScreenModal/Body.tsx","../src/FullScreenModal/Header.tsx","../src/FullScreenModal/FullScreenModal.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/BaseMessage/IconContent.tsx","../src/BaseMessage/helper.ts","../src/BaseMessage/BaseMessage.tsx","../src/Message/Message.tsx","../src/Notification/Notification.tsx","../src/Skeleton/SkeletonContent.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/ModalDateTimePicker.tsx","../src/TimePicker/useTimePicker.ts","../src/TimePicker/TimePicker.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx","../src/utils/withTheme.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nexport interface SpinningIconProps {\n children: ReactNode;\n}\n\nexport function SpinningIcon({ children }: SpinningIconProps): ReactElement {\n const animationRef = useRef(new Animated.Value(0));\n\n const rotation = animationRef.current.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n useEffect(() => {\n if (process.env.TESTS) return undefined;\n\n const animation = Animated.loop(\n Animated.timing(animationRef.current, {\n toValue: 1,\n duration: 1100,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n );\n animation.start();\n return () => {\n if (process.env.TESTS) return undefined;\n\n animation.stop();\n return undefined;\n };\n }, []);\n\n return <Animated.View style={{ transform: [{ rotate: rotation }] }}>{children}</Animated.View>;\n}\n","import type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SpinningIcon } from './SpinningIcon';\n\nexport interface IconProps {\n icon: ReactElement;\n size?: number;\n color: string;\n spin?: boolean;\n align?: ViewStyle['alignSelf'];\n testID?: ViewStyle['testID'];\n}\n\ninterface IconContainerProps {\n size?: number;\n color: string;\n align?: ViewStyle['alignSelf'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n color: ${({ color }) => color};\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n align-self: ${({ align = 'auto' }) => align};\n`;\n\nexport function Icon({ icon, size = 20, spin, align, color }: IconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n\n return (\n <IconContainer align={align} size={size} color={color}>\n {spin ? <SpinningIcon>{clonedIcon}</SpinningIcon> : clonedIcon}\n </IconContainer>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport { useWindowDimensions } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport type { TypographyTypeConfig } from '../themes/late-ocean/typography';\nimport type { KittTheme } from '../useKittTheme';\n\nexport type TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\nexport type TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\nexport type TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold';\nexport type TypographyColor =\n | 'black'\n | 'black-anthracite'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst IsHeaderTypographyContext = createContext<boolean | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\nexport const getTypographyTypeConfigKey = (theme: KittTheme): keyof TypographyTypeConfig => {\n const isMediumOrAbove = theme.responsive.matchWindowSize({ minWidth: KittBreakpoints.MEDIUM });\n return isMediumOrAbove ? 'mediumAndWide' : 'baseAndSmall';\n};\n\nconst isTypeHeader = (type: TypographyType): type is TypographyHeaderType => type.startsWith('header');\nexport const isTypographyHeader = (\n type: TypographyType | undefined,\n typographyIsHeaderInContext: boolean | undefined,\n): type is TypographyHeaderType => {\n if (type) return isTypeHeader(type);\n if (typographyIsHeaderInContext != null) return typographyIsHeaderInContext;\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function getTypographyTypeConfig(type: TypographyType, theme: DefaultTheme): TypographyTypeConfig {\n if (isTypographyHeader(type, undefined)) {\n return theme.kitt.typography.types.headers.configs[type];\n }\n\n return theme.kitt.typography.types.bodies.configs[type];\n}\n\ninterface StyledTypographyProps {\n accessibilityRole: TextProps['accessibilityRole'] | 'paragraph';\n $isHeader: boolean;\n $typeForCurrentWindowSize?: TypographyType;\n $variant: TypographyVariant;\n $color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, $isHeader, $typeForCurrentWindowSize, $variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n\n return `\n /* type */\n ${\n !$typeForCurrentWindowSize\n ? ''\n : `\n font-family: ${$isHeader ? headers.fontFamily[$variant] : bodies.fontFamily[$variant]};\n font-size: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].fontSize\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].fontSize\n }px;\n line-height: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight\n }px;\n `\n }\n\n /* variant */\n font-weight: ${$isHeader ? headers.fontWeight : bodies.fontWeight[$variant]};\n font-style: ${$isHeader ? headers.fontStyle : bodies.fontStyle[$variant]};\n `;\n }}\n\n /* color */\n ${({ theme, $color }) =>\n !$color\n ? ''\n : `\n color: ${theme.kitt.typography.colors[$color]};\n text-decoration-color: ${theme.kitt.typography.colors[$color]};\n `}\n`;\n\nexport interface TypographyBreakpointTypesProps {\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n /** small type. use base if undefined */\n small?: TypographyType;\n /** medium type. use small or base if undefined */\n medium?: TypographyType;\n /** large type. use medium or small or base if undefined */\n large?: TypographyType;\n}\n\nexport interface TypographyProps extends TypographyBreakpointTypesProps, Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | 'paragraph' | null;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nexport function useTypographyTypeForCurrentWindowSize(\n base: TypographyType | undefined,\n small: TypographyType | undefined,\n medium: TypographyType | undefined,\n large: TypographyType | undefined,\n): TypographyType | undefined {\n const { width } = useWindowDimensions();\n if (large && width >= KittBreakpoints.LARGE) return large;\n if (medium && width >= KittBreakpoints.MEDIUM) return medium;\n if (small && width >= KittBreakpoints.SMALL) return small;\n return base;\n}\n\ntype GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps = Pick<TypographyProps, 'base' | 'color'>;\n\nexport function getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(\n hasTypographyAncestor: boolean,\n { base, color }: GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps,\n): GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps {\n // return the props set or undefined. In case of undefined, the value will be inherited from its parents.\n if (hasTypographyAncestor) return { base, color };\n\n return {\n base: base ?? 'body',\n color: color ?? 'black',\n };\n}\n\nexport function Typography({\n accessibilityRole,\n base,\n small,\n medium,\n large,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const isHeaderTypographyInContext = useContext(IsHeaderTypographyContext);\n const hasTypographyAncestor = isHeaderTypographyInContext !== undefined;\n const { base: baseOrDefaultToBody, color: colorOrDefaultToBlack } =\n getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(hasTypographyAncestor, {\n base,\n color,\n });\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(baseOrDefaultToBody, small, medium, large);\n const isHeader = isTypographyHeader(typeForCurrentWindowSize, isHeaderTypographyInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n\n const content = baseOrDefaultToBody ? (\n <IsHeaderTypographyContext.Provider value={isHeader}>\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $typeForCurrentWindowSize={typeForCurrentWindowSize}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n </IsHeaderTypographyContext.Provider>\n ) : (\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport type { TypographyType } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nconst getInitials = (firstname: string, lastname: string): string => `${firstname[0]}${lastname[0]}`.toUpperCase();\n\nexport interface StyledAvatarViewProps {\n $isRound?: boolean;\n $isLight?: boolean;\n $size: number;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ theme, $isRound, $size }) => {\n if ($isRound) return `${$size / 2}px`;\n\n return `${theme.kitt.avatar.borderRadius}px`;\n }};\n background-color: ${({ theme, $isLight }) =>\n $isLight ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ $size }) => $size}px;\n width: ${({ $size }) => $size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\ninterface AvatarContentProps extends Exclude<AvatarProps, 'light | round'> {\n size: NonNullable<number>;\n isLight?: boolean;\n}\n\nfunction AvatarContent({ size, src, firstname, lastname, alt, base, isLight }: AvatarContentProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} accessibilityLabel={alt} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base={base} variant=\"bold\" color={isLight ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={isLight ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n alt?: string;\n firstname?: string | null;\n lastname?: string | null;\n base?: TypographyType;\n round?: boolean;\n light?: boolean;\n}\n\nexport function Avatar({ size = 40, base = 'body-small', round, light, ...props }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView $size={size} $isRound={round} $isLight={light}>\n <AvatarContent size={size} base={base} isLight={light} {...props} />\n </StyledAvatarView>\n );\n}\n","import type { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\nexport interface StyledPressableProps extends PressableProps {\n $isStretch?: boolean;\n $type: ButtonType;\n}\n\nconst StyledPressable = styled.Pressable<StyledPressableProps>`\n ${({ $isStretch }) => {\n if ($isStretch) return undefined;\n\n return 'align-self: flex-start;';\n }}\n`;\n\nconst StyledAnimatedView = styled(Animated.View)`\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n\nexport interface AnimatedButtonPressableProps extends PressableProps {\n accessibilityRole: NonNullable<PressableProps['accessibilityRole']>;\n $type: ButtonType;\n $isStretch?: boolean;\n}\n\nexport const AnimatedButtonPressable = forwardRef<View, AnimatedButtonPressableProps>(\n (\n {\n children,\n disabled,\n accessibilityRole,\n $type,\n $isStretch,\n href,\n hrefAttrs,\n testID,\n onPress,\n }: AnimatedButtonPressableProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const pressed = useSharedValue<0 | 1>(0);\n const color = useSharedValue(0);\n\n const { backgroundColor, pressedBackgroundColor } = theme.kitt.button[$type];\n const { scale } = theme.kitt.button;\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n backgroundColor: interpolateColor(color.value, [0, 1], [backgroundColor, pressedBackgroundColor]),\n transform: [\n {\n scale: withSpring(pressed.value ? scale.base.active : scale.base.default),\n },\n ],\n };\n });\n\n const handlePressInOut = (pressIn: boolean): void => {\n color.value = withSpring(pressIn ? 1 : 0);\n pressed.value = pressIn ? 1 : 0;\n };\n\n return (\n <StyledPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n $isStretch={$isStretch}\n $type={$type}\n onPress={onPress}\n onPressIn={() => {\n handlePressInOut(true);\n }}\n onPressOut={() => {\n handlePressInOut(false);\n }}\n >\n <StyledAnimatedView style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n {children}\n </StyledAnimatedView>\n </StyledPressable>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\nexport interface BaseStyledButtonPressableProps extends ViewProps {\n $type: ButtonType;\n $isLarge?: boolean;\n $isStretch?: boolean;\n $isDisabled?: boolean;\n}\n\nexport const BaseStyledButtonPressable = styled.View<BaseStyledButtonPressableProps>`\n position: relative;\n min-width: ${({ theme }) => theme.kitt.button.minWidth}px;\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : `${theme.kitt.button.maxWidth}px`)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight}px;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n\n background-color: ${({ theme, $isDisabled, $type }) => {\n if ($isDisabled) return theme.kitt.button.disabled.backgroundColor;\n\n if (Platform.OS !== 'web') return 'transparent';\n\n return theme.kitt.button[$type].backgroundColor;\n }};\n\n padding: ${({ theme, $isLarge, $isDisabled }) => {\n const { large, default: defaultPadding, disabled: disabledPadding } = theme.kitt.button.contentPadding;\n\n if ($isLarge) return large;\n if ($isDisabled) return disabledPadding;\n\n return defaultPadding;\n }};\n`;\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'] | 'inherit';\n}\n\nfunction TypographyIconSpecifiedColor({ color, ...props }: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...props} color={color === 'inherit' ? 'inherit' : theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n}\n\nexport function TypographyIcon({ color, ...props }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n }\n\n return <TypographyIconInheritColor {...props} />;\n}\n","import type { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType } from './Button';\nimport { isSubtle } from './isSubtle';\n\nconst getTextColorByType = (type: ButtonType): TypographyColor => {\n switch (type) {\n case 'primary':\n return 'white';\n case 'white':\n return 'white';\n case 'subtle':\n return 'primary';\n case 'subtle-dark':\n return 'black';\n default:\n return 'black';\n }\n};\n\ninterface StyledButtonTextProps extends TypographyTextProps {\n $type: ButtonType;\n $isDisabled?: boolean;\n}\n\nconst StyledButtonText = styled(Typography.Text)<StyledButtonTextProps>`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n\n ${() => {\n // Make the multilines case work properly on native\n // Breaks the web implem\n if (Platform.OS === 'web') return undefined;\n\n return `\n flex-shrink: 1;\n `;\n }}\n\n ${({ $type, $isDisabled }) => {\n /* For subltes button, color changes when hovered.\n * We don't want to use a mouse event handler with a react state to handle it\n * For this precise case, we've decided to work outside the typography logic\n */\n if (Platform.OS !== 'web' || $isDisabled || !isSubtle($type)) return undefined;\n return 'color: inherit';\n }}\n`;\n\ninterface StyledIconContainerProps {\n $iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst StyledIconContainer = styled.View<StyledIconContainerProps>`\n ${({ theme, $iconPosition }) => {\n const value = theme.kitt.spacing * 2;\n\n if ($iconPosition === 'left') {\n return `margin: 0 ${value}px 0 0;`;\n }\n\n return `margin: 0 0 0 ${value}px;`;\n }}\n`;\n\ninterface ButtonIconProps {\n icon: NonNullable<ButtonContentProps['icon']>;\n spin: ButtonProps['iconSpin'];\n iconPosition: ButtonContentProps['iconPosition'];\n color: TypographyIconProps['color'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, color, spin, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <StyledIconContainer $iconPosition={iconPosition}>\n <TypographyIcon icon={icon} spin={spin} testID={testID} color={color} />\n </StyledIconContainer>\n );\n}\n\ninterface ButtonContentProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n $isStretch: ButtonProps['stretch'];\n}\n\ninterface ButtonContentChildrenProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n color: TypographyColor;\n}\n\nconst StyledChildrenWithIcon = styled.View`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n`;\n\nexport function ButtonContentChildren({\n type,\n icon,\n iconPosition,\n iconSpin,\n isDisabled,\n color,\n children,\n}: ButtonContentChildrenProps): ReactElement | null {\n if (__DEV__) {\n if (!(children || icon)) {\n throw new Error('kitt(Button): You should provide at least a children or a icon');\n }\n }\n\n const isWebSubtle = isSubtle(type) && Platform.OS === 'web' && !isDisabled;\n\n if (!children) {\n return (\n <TypographyIcon\n spin={iconSpin}\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n icon={icon!}\n color={isWebSubtle ? 'inherit' : color}\n />\n );\n }\n\n const buttonIconSharedProps = {\n type,\n spin: iconSpin,\n iconPosition,\n color: isWebSubtle ? 'inherit' : (color as TypographyIconProps['color']),\n };\n\n return (\n <StyledChildrenWithIcon>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...buttonIconSharedProps} testID=\"button-left-icon\" icon={icon} />\n ) : null}\n\n <StyledButtonText\n base=\"body\"\n variant=\"bold\"\n $type={type}\n $isDisabled={isDisabled}\n // set to color: inherit via styled components\n color={isWebSubtle ? undefined : color}\n >\n {children}\n </StyledButtonText>\n\n {icon && iconPosition === 'right' ? <ButtonIcon {...buttonIconSharedProps} icon={icon} /> : null}\n </StyledChildrenWithIcon>\n );\n}\n\ninterface ButtonContentContainerProps {\n $isSubtle?: boolean;\n $isStretch?: boolean;\n $isIconOnly?: boolean;\n}\n\nconst ButtonContentContainer = styled.View<ButtonContentContainerProps>`\n line-height: 16px;\n\n ${({ $isStretch, $isIconOnly }) => {\n // Make the multilines case work properly on web\n // Breaks the native implem\n if (Platform.OS !== 'web') return undefined;\n\n return `\n flex: ${$isStretch || $isIconOnly ? 1 : 0} 1 auto;\n `;\n }}\n\n ${({ $isSubtle }) => {\n if (Platform.OS !== 'web' || !$isSubtle) return undefined;\n // Needed for subtle type\n return 'color: inherit';\n }};\n`;\n\nexport function ButtonContent({\n type,\n isDisabled,\n $isStretch,\n icon,\n children,\n ...props\n}: ButtonContentProps): ReactElement {\n const color = isDisabled ? 'black-light' : getTextColorByType(type);\n\n return (\n <ButtonContentContainer $isSubtle={isSubtle(type)} $isStretch={$isStretch} $isIconOnly={Boolean(!children && icon)}>\n <ButtonContentChildren icon={icon} type={type} isDisabled={isDisabled} color={color} {...props}>\n {children}\n </ButtonContentChildren>\n </ButtonContentContainer>\n );\n}\n","import styled from 'styled-components/native';\n\nexport const StyledDisabled = styled.View`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ${({ theme }) => {\n const { borderWidth, disabled } = theme.kitt.button;\n return `${borderWidth.disabled}px solid ${disabled.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport { Platform } from 'react-native';\nimport { AnimatedButtonPressable } from './AnimatedButtonPressable';\nimport { BaseStyledButtonPressable } from './BaseStyledButtonPressable';\nimport { ButtonContent } from './ButtonContent';\nimport { StyledDisabled } from './StyledDisabled';\n\nexport type SubtleButtonType = 'subtle' | 'subtle-dark';\nexport type ButtonType = 'primary' | 'default' | SubtleButtonType | 'white';\n\ntype IconPosition = 'right' | 'left';\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n disabled?: boolean;\n stretch?: boolean;\n large?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n iconSpin?: boolean;\n testID?: PressableProps['testID'];\n href?: PressableProps['href'];\n hrefAttrs?: PressableProps['hrefAttrs'];\n accessibilityRole?: PressableProps['accessibilityRole'];\n className?: string;\n style?: PressableProps['style'];\n onPress?: PressableProps['onPress'];\n}\n\nexport const Button = forwardRef<View, ButtonProps>(\n (\n {\n children,\n type = 'default',\n disabled,\n stretch,\n large,\n icon,\n iconPosition = 'left',\n iconSpin,\n testID,\n href,\n hrefAttrs,\n accessibilityRole = 'button',\n onPress,\n }: ButtonProps,\n ref,\n ): ReactElement => {\n return (\n <AnimatedButtonPressable\n ref={ref}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n disabled={disabled}\n $isStretch={stretch}\n $type={type}\n onPress={onPress}\n >\n <BaseStyledButtonPressable $type={type} $isStretch={stretch} $isLarge={large} $isDisabled={disabled}>\n <ButtonContent\n type={type}\n $isStretch={stretch}\n isDisabled={disabled}\n icon={icon}\n iconPosition={iconPosition}\n iconSpin={iconSpin}\n >\n {children}\n </ButtonContent>\n {Platform.OS !== 'web' && disabled ? <StyledDisabled /> : null}\n </BaseStyledButtonPressable>\n </AnimatedButtonPressable>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\ntype CardType = 'primary' | 'secondary' | 'subtle';\n\nexport interface CardProps {\n children: NonNullable<ReactNode>;\n type: CardType;\n}\ninterface ContainerProps {\n type: CardType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.card[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n border-width: ${({ theme }) => theme.kitt.card.borderWidth}px;\n border-color: ${({ theme, type }) => theme.kitt.card[type].borderColor};\n`;\n\nexport function Card({ children, type }: CardProps): ReactElement {\n return <Container type={type}>{children}</Container>;\n}\n","import type { ReactElement } from 'react';\nimport { useMemo } from 'react';\nimport type { ImageProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { parse } from 'twemoji-parser';\n\ninterface StyledEmojiProps {\n size: number;\n}\n\nconst StyledEmoji = styled.Image<StyledEmojiProps>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n`;\n\nexport interface EmojiProps extends Pick<ImageProps, 'style'> {\n emoji: string;\n size: number;\n}\n\nexport function Emoji({ emoji, size, style }: EmojiProps): ReactElement | null {\n const [emojiData] = useMemo(\n () =>\n parse(emoji, {\n // on native plaforms, you can't display svg as Image\n assetType: Platform.OS === 'web' ? 'svg' : 'png',\n }),\n [emoji],\n );\n\n if (!emojiData) return null;\n\n return <StyledEmoji size={size} accessibilityLabel={emojiData.text} source={{ uri: emojiData.url }} style={style} />;\n}\n","export interface ExternalLinkOpenLinkBehavior {\n /**\n * @default 'openInModal'\n *\n * @description open link behavior in native\n *\n * \"openInModal\": open via [expo-web-browser](https://docs.expo.dev/versions/latest/sdk/webbrowser/)\n *\n * \"openBrowserApp\": open via [Linking](https://docs.expo.dev/guides/linking/#opening-links-from-your-app)\n */\n native?: 'openInModal' | 'openBrowserApp';\n\n /**\n * @default 'targetBlank'\n *\n * @description open link behavior in native\n *\n * \"targetSelf\": no dom attributes added, behave like `target=\"_self\"`\n *\n * \"targetBlank\": dome attributes: `target=\"_blank\" rel=\"noopener noreferrer\"`\n */\n web?: 'targetSelf' | 'targetBlank';\n}\n\nexport const defaultOpenLinkBehavior: ExternalLinkOpenLinkBehavior = {\n native: 'openInModal',\n web: 'targetBlank',\n};\n","import * as WebBrowser from 'expo-web-browser';\nimport type { ComponentProps, ReactElement, VoidFunctionComponent } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Linking } from 'react-native';\nimport type { ExternalLinkOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport interface ExternalLinkAsComponentMinimumRequiredProps {\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress?: () => void;\n}\n\nexport interface ExternalLinkProps<C extends VoidFunctionComponent<any>> {\n as: C;\n openLinkBehavior?: ExternalLinkOpenLinkBehavior;\n href?: string;\n onPress?: () => void;\n}\n\n/** @internal for ExternalLink.web.tsx only */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ExternalLinkSendableComponentProps<C extends VoidFunctionComponent<any>> = Omit<\n ComponentProps<C>,\n keyof ExternalLinkProps<C> & keyof ExternalLinkAsComponentMinimumRequiredProps\n>;\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n const handleOnPress = () => {\n if (onPress) onPress();\n if (!href) return;\n switch (openLinkBehavior.native) {\n case 'openInModal':\n case undefined:\n WebBrowser.openBrowserAsync(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n case 'openBrowserApp':\n Linking.openURL(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n default:\n if (__DEV__) {\n throw new Error(`Invalid ExternalLink native behavior: ${openLinkBehavior.native as string}`);\n }\n }\n };\n\n return <Component {...(rest as any)} onPress={handleOnPress} />;\n}\n","export const lateOceanColorPalette = {\n lateOcean: '#4C34E0',\n lateOceanLight1: '#705DE6',\n lateOceanLight2: '#9485EC',\n lateOceanLight3: '#D6BAF9',\n\n warmEmbrace: '#F4D3CE',\n warmEmbraceLight1: '#FFEDE6',\n\n black1000: '#000000',\n black800: '#2C293D',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colors = {\n primary: lateOceanColorPalette.lateOcean,\n primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n info: lateOceanColorPalette.aero,\n warning: lateOceanColorPalette.goldCrayola,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n black: lateOceanColorPalette.black1000,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n transparent: lateOceanColorPalette.transparent,\n disabled: lateOceanColorPalette.black50,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface AvatarThemeVariant {\n backgroundColor: string;\n}\n\nexport interface AvatarTheme {\n borderRadius: number;\n default: AvatarThemeVariant;\n light: AvatarThemeVariant;\n}\n\nexport const avatar: AvatarTheme = {\n borderRadius: 10,\n default: {\n backgroundColor: colors.primary,\n },\n light: {\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface ButtonVariantTheme {\n backgroundColor: string;\n pressedBackgroundColor: string;\n hoverBackgroundColor: string;\n focusBorderColor: string;\n}\n\nexport interface SubtleButtonVariantTheme extends ButtonVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\n\nexport interface DisabledButtonVariantTheme extends ButtonVariantTheme {\n borderColor: string;\n}\n\nexport interface ButtonTheme {\n borderRadius: number;\n borderWidth: {\n disabled: number;\n focus: number;\n };\n minHeight: number;\n minWidth: number;\n maxWidth: number;\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n contentPadding: {\n default: string;\n large: string;\n disabled: string;\n };\n transition: {\n duration: string;\n timingFunction: string;\n };\n default: ButtonVariantTheme;\n primary: ButtonVariantTheme;\n white: ButtonVariantTheme;\n subtle: SubtleButtonVariantTheme;\n 'subtle-dark': SubtleButtonVariantTheme;\n disabled: DisabledButtonVariantTheme;\n}\n\nexport const button: ButtonTheme = {\n borderRadius: 30,\n borderWidth: {\n disabled: 2,\n focus: 3,\n },\n minHeight: 40,\n minWidth: 40,\n maxWidth: 335,\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n contentPadding: {\n default: '8px 16px 7px',\n large: '12px 24px 11px',\n disabled: '6px 14px 5px',\n },\n transition: {\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n },\n default: {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n hoverBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n },\n primary: {\n backgroundColor: colors.primary,\n pressedBackgroundColor: colors.primaryLight,\n hoverBackgroundColor: colors.primaryLight,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n },\n white: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\n },\n subtle: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colors.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n 'subtle-dark': {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colors.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n disabled: {\n backgroundColor: colors.disabled,\n pressedBackgroundColor: colors.disabled,\n hoverBackgroundColor: colors.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface CardThemeType {\n backgroundColor: string;\n borderColor: string;\n}\nexport interface CardTheme {\n borderRadius: number;\n borderWidth: number;\n primary: CardThemeType;\n secondary: CardThemeType;\n subtle: CardThemeType;\n}\n\nexport const card: CardTheme = {\n borderRadius: 20,\n borderWidth: 2,\n primary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: colors.separator,\n },\n};\n","import { colors } from './colors';\n\nexport interface FeedbackMessageVariantTheme {\n backgroundColor: string;\n}\n\nexport interface FeedbackMessageTheme {\n danger: FeedbackMessageVariantTheme;\n info: FeedbackMessageVariantTheme;\n success: FeedbackMessageVariantTheme;\n warning: FeedbackMessageVariantTheme;\n}\n\nexport const feedbackMessage: FeedbackMessageTheme = {\n danger: {\n backgroundColor: colors.danger,\n },\n success: {\n backgroundColor: colors.success,\n },\n info: {\n backgroundColor: colors.info,\n },\n warning: {\n backgroundColor: colors.warning,\n },\n};\n","import { colors } from './colors';\n\nexport const checkbox = {\n borderWidth: 2,\n borderRadius: 5,\n height: 20,\n width: 20,\n iconSize: 14,\n borderColor: colors.separator,\n backgroundColor: colors.uiBackgroundLight,\n checkedBorderColor: colors.primary,\n checkedBackgroundColor: colors.primary,\n markColor: colors.uiBackgroundLight,\n};\n","interface DatePickerPartTheme {\n minWidth: number;\n}\n\nexport interface DatePickerTheme {\n day: DatePickerPartTheme;\n month: DatePickerPartTheme;\n year: DatePickerPartTheme;\n}\n\nexport const datePicker: DatePickerTheme = {\n day: {\n minWidth: 64,\n },\n month: {\n minWidth: 64,\n },\n year: {\n minWidth: 82,\n },\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeBreakpointRangeConfig {\n fontSize: number;\n lineHeight: number;\n}\n\nexport interface TypographyTypeConfig {\n baseAndSmall: TypographyTypeBreakpointRangeConfig;\n mediumAndWide: TypographyTypeBreakpointRangeConfig;\n}\n\nexport const createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: baseAndSmallFontSize,\n lineHeight: calcLineHeight(baseAndSmallFontSize, lineHeightMultiplier),\n },\n mediumAndWide: {\n fontSize: mediumAndWideFontSize,\n lineHeight: calcLineHeight(mediumAndWideFontSize, lineHeightMultiplier),\n },\n});\n\nexport const typography = {\n colors: {\n black: lateOceanColorPalette.black1000,\n 'black-anthracite': lateOceanColorPalette.black800,\n 'black-light': lateOceanColorPalette.black555,\n white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { InputUIState } from '../../forms/utils';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\nimport { typography } from './typography';\n\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: keyof typeof typography.colors;\n}\n\nexport type InputStateTheme = Record<InputUIState, InputStateStyle>;\n\nconst inputStatesStyle: InputStateTheme = {\n default: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n pending: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n valid: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n },\n focus: {\n borderColor: colors.primary,\n color: 'black',\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n color: 'black-light',\n },\n invalid: {\n borderColor: colors.separator,\n color: 'black',\n },\n};\n\nexport interface InputTheme {\n minHeight: number;\n color: {\n selection: string;\n placeholder: string;\n };\n borderWidth: number;\n borderRadius: number;\n icon: {\n size: number;\n };\n padding: {\n default: string;\n iOSSingleLine: string;\n };\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n states: InputStateTheme;\n}\n\nexport const input: InputTheme = {\n minHeight: 40,\n color: {\n selection: colors.primary,\n placeholder: typography.colors['black-light'],\n },\n borderWidth: 2,\n borderRadius: 10,\n icon: {\n size: 20,\n },\n padding: {\n default: '5px 16px',\n iOSSingleLine: '7px 16px',\n },\n transition: {\n property: 'border-color',\n duration: '200ms',\n timingFunction: 'ease-in-out',\n },\n states: inputStatesStyle,\n};\n","export const inputField = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\ninterface InputTagTypeTheme {\n backgroundColor: string;\n labelColor: string;\n}\nexport interface InputTagTheme {\n borderRadius: number;\n iconSize: number;\n default: InputTagTypeTheme;\n success: InputTagTypeTheme;\n danger: InputTagTypeTheme;\n}\n\nexport const inputTag: InputTagTheme = {\n success: {\n backgroundColor: colors.success,\n labelColor: colors.uiBackgroundLight,\n },\n danger: {\n backgroundColor: colors.danger,\n labelColor: colors.uiBackgroundLight,\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n labelColor: colors.black,\n },\n borderRadius: 10,\n iconSize: 13.5,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface RadioTheme {\n size: number;\n unchecked: {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n };\n checked: {\n backgroundColor: string;\n innerBackgroundColor: string;\n innerSize: number;\n };\n disabled: {\n backgroundColor: string;\n borderColor: string;\n };\n}\n\nexport const radio: RadioTheme = {\n size: 18,\n unchecked: {\n backgroundColor: colors.uiBackgroundLight,\n borderWidth: 2,\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: colors.primary,\n innerSize: 5,\n innerBackgroundColor: colors.uiBackgroundLight,\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n },\n};\n","export interface TextAreaTheme {\n minHeight: number;\n}\n\nexport const textArea: TextAreaTheme = {\n minHeight: 120,\n};\n","import { checkbox } from './checkbox';\nimport { datePicker } from './datePicker';\nimport { input } from './input';\nimport { inputField } from './inputField';\nimport { inputTag } from './inputTag';\nimport { radio } from './radio';\nimport { textArea } from './textArea';\n\nexport const forms = {\n datePicker,\n input,\n radio,\n inputField,\n textArea,\n checkbox,\n inputTag,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModal = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { button } from './button';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: button.disabled.backgroundColor,\n borderColor: button.disabled.borderColor,\n },\n default: {\n pressedBackgroundColor: button.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: button.white.hoverBackgroundColor,\n },\n};\n","import { colors } from './colors';\n\nexport interface ListItemTheme {\n padding: string;\n borderColor: string;\n borderWidth: number;\n innerMargin: number;\n}\n\nexport const listItem: ListItemTheme = {\n padding: '12px 16px',\n borderColor: colors.separator,\n borderWidth: 1,\n innerMargin: 8,\n};\n","export const shadows = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport interface SkeletonTheme {\n backgroundColor: string;\n flareColor: string;\n animationDuration: number;\n}\n\nexport const skeleton: SkeletonTheme = {\n backgroundColor: lateOceanColorPalette.black100,\n flareColor: lateOceanColorPalette.black200,\n animationDuration: 1000,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface TagVariantTheme {\n borderWidth: number;\n backgroundColor: string;\n borderColor: string;\n}\n\nexport interface TagTypeTheme {\n fill: TagVariantTheme;\n outline: TagVariantTheme;\n}\n\nexport interface TagTheme {\n borderRadius: number;\n padding: string;\n primary: TagTypeTheme;\n default: TagTypeTheme;\n danger: TagTypeTheme;\n}\n\nexport const tag: TagTheme = {\n borderRadius: 10,\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.primary,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.black,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.danger,\n },\n },\n};\n","import { colors } from './colors';\n\nexport interface TooltipTheme {\n backgroundColor: string;\n borderRadius: number;\n opacity: number;\n horizontalPadding: number;\n verticalPadding: number;\n floatingPadding: number;\n}\n\nexport const tooltip: TooltipTheme = {\n backgroundColor: colors.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\n};\n","import { avatar } from './late-ocean/avatar';\nimport { button } from './late-ocean/button';\nimport { card } from './late-ocean/card';\nimport { colors } from './late-ocean/colors';\nimport { feedbackMessage } from './late-ocean/feedback';\nimport { forms } from './late-ocean/forms';\nimport { fullScreenModal } from './late-ocean/fullScreenModal';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItem } from './late-ocean/listItem';\nimport { shadows } from './late-ocean/shadows';\nimport { skeleton } from './late-ocean/skeleton';\nimport { tag } from './late-ocean/tag';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typography } from './late-ocean/typography';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nconst breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar,\n button,\n card,\n feedbackMessage,\n forms,\n typography,\n tag,\n shadows,\n fullScreenModal,\n iconButton,\n listItem,\n tooltip,\n skeleton,\n breakpoints,\n};\n\nexport type Theme = typeof theme;\n","import { useWindowDimensions } from 'react-native';\nimport type { WindowDimensions } from './createWindowSizeHelper';\n\nexport interface MatchWindowSizeOptions {\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n}\nexport function matchWindowSize(\n { width, height }: WindowDimensions,\n { minWidth, maxWidth, minHeight, maxHeight }: MatchWindowSizeOptions,\n): boolean {\n const hasWidthMatched = width ? (!minWidth || width >= minWidth) && (!maxWidth || width <= maxWidth) : true;\n const hasHeightMatched = height ? (!minHeight || height >= minHeight) && (!maxHeight || height <= maxHeight) : true;\n return hasWidthMatched && hasHeightMatched;\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width, height } = useWindowDimensions();\n return matchWindowSize({ width, height }, options);\n}\n","// eslint-disable-next-line no-restricted-imports\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { matchWindowSize } from './useMatchWindowSize';\n\nexport interface WindowSizeHelper {\n /** Prefer using if or map variants, at it should be more web friendly */\n matchWindowSize: (options: MatchWindowSizeOptions) => boolean;\n\n /**\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.ifWindowSizeMatches(\n * { minWidth: KittBreakpoints.SMALL },\n * 'padding: 5px 0 10px;'\n * )\n * )};\n * `;\n * ```\n */\n ifWindowSizeMatches: <T extends string | FlattenSimpleInterpolation | null>(\n options: MatchWindowSizeOptions,\n valueIfTrue: T,\n valueIfFalse?: T,\n ) => T | undefined;\n\n /**\n *\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.mapWindowWidth(\n * [KittBreakpoints.BASE, 'padding: 5px 0 10px;'],\n * [KittBreakpoints.SMALL, 'padding: 10px 0;'],\n * )\n * )};\n * `;\n * ```\n */\n mapWindowWidth: <V extends string>(...widthList: [number, V][]) => V | null;\n}\n\nexport interface WindowDimensions {\n width?: number;\n height?: number;\n}\n\nexport function createWindowSizeHelper(dimensions: WindowDimensions): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(dimensions, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(dimensions, options) ? valueIfTrue : valueIfFalse,\n\n mapWindowWidth: <V extends string>(...widthList: [number, V][]): V | null => {\n if (__DEV__) {\n widthList.slice(1).forEach(([minWidth], index) => {\n const previousMinWidth = widthList[index][0];\n if (previousMinWidth > minWidth) {\n throw new Error(\n `mapWindowWidth: sort your values to be mobile first. ${minWidth} is < ${previousMinWidth}, so ${minWidth} should be before ${previousMinWidth}.`,\n );\n }\n });\n }\n const found = widthList.find(([minWidth, value]) => matchWindowSize(dimensions, { minWidth: Number(minWidth) }));\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { Theme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport type { WindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport interface KittTheme {\n kitt: Theme;\n responsive: WindowSizeHelper;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions) };\n }, [dimensions]);\n}\n","import { CheckboxMark } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { GestureResponderEvent, PressableProps } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { Icon } from '../../Icon/Icon';\nimport { useKittTheme } from '../../useKittTheme';\n\ninterface CheckboxContainerProps {\n $isChecked: boolean;\n $hasLabel: boolean;\n}\n\nconst CheckboxAndLabelPressableWrapper = styled.Pressable`\n display: flex;\n flex-direction: row;\n`;\n\nconst CheckboxContainer = styled.View<CheckboxContainerProps>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n height: ${({ theme }) => theme.kitt.forms.checkbox.height}px;\n width: ${({ theme }) => theme.kitt.forms.checkbox.width}px;\n position: relative;\n border-radius: ${({ theme }) => theme.kitt.forms.checkbox.borderRadius}px;\n\n ${({ $isChecked, theme }) => {\n const { checkedBackgroundColor, checkedBorderColor, borderColor, borderWidth, backgroundColor } =\n theme.kitt.forms.checkbox;\n if ($isChecked) {\n return css`\n background-color: ${checkedBackgroundColor};\n border: ${`${borderWidth}px solid ${checkedBorderColor}`};\n `;\n }\n return css`\n background-color: ${backgroundColor};\n border: ${`${borderWidth}px solid ${borderColor}`};\n `;\n }}\n\n margin-right: ${({ theme, $hasLabel }) => {\n if (!$hasLabel) return '0px';\n return `${theme.kitt.spacing * 2.5}px;`;\n }};\n`;\n\nexport interface CheckboxProps {\n onChange: (checked: boolean, e: GestureResponderEvent) => void;\n onBlur?: (e: any) => void;\n onFocus?: (e: any) => void;\n checked: boolean;\n hitSlop?: number;\n id?: PressableProps['testID'];\n children?: ReactNode;\n}\n\nexport function Checkbox({\n onChange,\n onBlur,\n onFocus,\n checked,\n hitSlop = 40,\n id,\n children,\n}: CheckboxProps): ReactElement {\n const theme = useKittTheme();\n\n const handlePress = (e: GestureResponderEvent): void => {\n if (onFocus) onFocus(e);\n if (onChange) onChange(!checked, e);\n if (onBlur) onBlur(e);\n };\n\n return (\n <CheckboxAndLabelPressableWrapper\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked }}\n hitSlop={hitSlop}\n onPress={handlePress}\n >\n <CheckboxContainer $isChecked={checked} $hasLabel={!!children} testID={id}>\n {checked ? (\n <Icon\n align=\"center\"\n color={theme.kitt.forms.checkbox.markColor}\n size={theme.kitt.forms.checkbox.iconSize}\n icon={<CheckboxMark />}\n />\n ) : null}\n </CheckboxContainer>\n\n {children}\n </CheckboxAndLabelPressableWrapper>\n );\n}\n","export type InputFormState = undefined | 'valid' | 'invalid' | 'pending';\n\nexport type InputUIState = NonNullable<InputFormState> | 'default' | 'disabled' | 'hover' | 'focus';\n\ninterface GetInputStateConfig {\n isFocused: boolean;\n isDisabled: boolean;\n formState: InputFormState;\n}\n\nexport function getInputUIState({ isFocused, isDisabled, formState }: GetInputStateConfig): InputUIState {\n if (isDisabled) return 'disabled';\n\n if (isFocused) return 'focus';\n\n if (formState === 'invalid') return 'invalid';\n\n return 'default';\n}\n","import { css } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../typography/Typography';\nimport type { InputUIState } from './utils';\n\nexport interface TextInputMixinProps {\n $state: InputUIState;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n background-color: ${({ theme, $state }) =>\n $state === 'disabled'\n ? theme.kitt.forms.input.states.disabled.backgroundColor\n : theme.kitt.forms.input.states.default.backgroundColor};\n\n border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth}px;\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius}px;\n border-color: ${({ theme, $state }) => theme.kitt.forms.input.states[$state].borderColor};\n\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;\n }};\n\n color: ${({ theme, $state }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color]};\n font-family: ${({ theme }) => theme.kitt.typography.types.bodies.fontFamily.regular};\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\n\ntype PartName = 'year' | 'month' | 'day';\n\nconst StyledTypographyText = styled(Typography.Text)`\n text-align: center;\n`;\n\ninterface ViewInputProps extends TextInputMixinProps {\n $partName?: PartName;\n}\n\nconst ViewInput = styled.View<ViewInputProps>`\n ${styledTextInputMixin}\n padding: ${({ theme }) => theme.kitt.forms.input.padding.default};\n min-height: ${({ theme }) => theme.kitt.forms.input.minHeight}px;\n min-width: ${({ theme, $partName }) => {\n if (!$partName) {\n return undefined;\n }\n\n return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;\n }};\n`;\n\ninterface DatePickerInputPartProps extends TextInputMixinProps {\n disabled?: boolean;\n partName?: 'year' | 'month' | 'day';\n placeholder?: string;\n value?: ReactNode;\n}\n\nexport function DatePickerInputPart({\n $state,\n placeholder,\n value,\n partName,\n disabled,\n}: DatePickerInputPartProps): ReactElement {\n const hasContent = placeholder || value;\n\n return (\n <ViewInput $state={$state} $partName={partName}>\n {hasContent ? (\n <StyledTypographyText color={!value || disabled ? 'black-light' : undefined}>\n {value || placeholder}\n </StyledTypographyText>\n ) : null}\n </ViewInput>\n );\n}\n","import type { ReactElement } from 'react';\nimport styled, { css } from 'styled-components/native';\nimport { getInputUIState } from '../utils';\nimport { DatePickerInputPart } from './DatePickerInputPart';\nimport type { DatePickerInputsProps } from './types';\n\nfunction prefixWithZero(value: number): string {\n return `${value}`.padStart(2, '0');\n}\n\ninterface PartContainerProps {\n $isLast?: boolean;\n $isStretch?: boolean;\n}\n\nconst PartContainer = styled.View<PartContainerProps>`\n margin-right: ${({ theme, $isLast }) => (!$isLast ? `${theme.kitt.spacing * 2}px` : 0)};\n ${({ $isStretch }) =>\n $isStretch\n ? css`\n flex: 0.33;\n flex-grow: 1;\n `\n : undefined};\n`;\n\ninterface DatePickerPressableProps {\n $isStretch?: boolean;\n}\n\nconst DatePickerPressable = styled.Pressable<DatePickerPressableProps>`\n display: flex;\n flex-direction: row;\n ${({ $isStretch }) => {\n if ($isStretch) {\n return css`\n width: 100%;\n `;\n }\n\n return css`\n align-self: baseline;\n `;\n }};\n`;\n\nexport interface DatePickerPlaceholder {\n day: string;\n month: string;\n year: string;\n}\n\nexport function DatePickerInputs({\n state,\n internalForceState,\n isFocused,\n disabled,\n stretch,\n id,\n testID,\n handleModalOpen,\n currentValue,\n placeholder,\n}: DatePickerInputsProps): ReactElement {\n const currentState =\n internalForceState || getInputUIState({ isFocused, isDisabled: Boolean(disabled), formState: state });\n\n const sharedPartProps = {\n disabled,\n $state: currentState,\n };\n\n return (\n <DatePickerPressable\n $isStretch={stretch}\n nativeID={id}\n disabled={disabled}\n testID={testID}\n onPress={handleModalOpen}\n >\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"day\"\n value={currentValue ? prefixWithZero(currentValue.getDate()) : undefined}\n placeholder={placeholder?.day}\n />\n </PartContainer>\n\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"month\"\n value={currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined}\n placeholder={placeholder?.month}\n />\n </PartContainer>\n\n <PartContainer $isLast $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"year\"\n value={currentValue ? currentValue.getFullYear() : undefined}\n placeholder={placeholder?.year}\n />\n </PartContainer>\n </DatePickerPressable>\n );\n}\n","import { DateTimePickerAndroid } from '@react-native-community/datetimepicker';\nimport type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\ninterface DatePickerAndroidProps\n extends Except<DatePickerProps, 'pickerUITitle' | 'pickerUIValidateButtonLabel' | 'value'> {\n isFocused: boolean;\n setIsFocused: (isFocused: boolean) => void;\n currentValue: Date | undefined;\n setCurrentValue: (value: Date | undefined) => void;\n}\n\nexport function DatePickerAndroid({\n onBlur,\n onFocus,\n pickerDefaultDate,\n pickerUITestID,\n setIsFocused,\n currentValue,\n setCurrentValue,\n onChange,\n isFocused,\n ...props\n}: DatePickerAndroidProps): ReactElement {\n const handleClose = (): void => {\n if (onBlur) onBlur();\n };\n\n const handleModalOpen = (): void => {\n setIsFocused(true);\n if (onFocus) onFocus();\n\n DateTimePickerAndroid.open({\n testID: pickerUITestID,\n value: currentValue || pickerDefaultDate || new Date(Date.now()),\n onChange: (e) => {\n setIsFocused(false);\n const { timestamp } = e.nativeEvent;\n if (timestamp) {\n const date = new Date(timestamp);\n\n setCurrentValue(date);\n onChange(date);\n handleClose();\n }\n },\n onTouchCancel: handleClose,\n });\n };\n\n return (\n <DatePickerInputs handleModalOpen={handleModalOpen} currentValue={currentValue} isFocused={isFocused} {...props} />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps {\n onPress: PressableProps['onPress'];\n}\n\n// Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates\nconst OverlayPressable = styled(Pressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return (\n <OverlayPressable accessibilityRole=\"none\" onPress={onPress}>\n <View />\n </OverlayPressable>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { ScrollView } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst BodyView = styled.View`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <ScrollView>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled.View`\n flex: 0 0 auto;\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-top-width: 1px;\n border-top-color: ${({ theme }) => theme.kitt.colors.separator};\n`;\n\nexport function ModalFooter({ children }: FooterProps): ReactElement {\n return <FooterView>{children}</FooterView>;\n}\n","import type { ComponentProps, ElementType, ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\n\nexport interface StyleWebWrapperProps<T extends ElementType> {\n as: T;\n children: ReactNode;\n}\n\nexport function StyleWebWrapper<T extends ElementType = 'div'>({\n as,\n children,\n ...props\n}: StyleWebWrapperProps<T> & ComponentProps<T>): ReactElement {\n if (Platform.OS !== 'web') return children as ReactElement;\n const Component: T = as || ('div' as T); // as or default to div. If as is undefined, T is div but typescript is not sure\n return <Component {...(props as any)}>{children}</Component>;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport { theme as kittTheme } from '../themes/default';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: boolean;\n $isDisabled?: boolean;\n}\n\nconst PressableIconButtonWebWrapper = withTheme(styledLinaria.div<PressableIconButtonWebWrapperProps>`\n & > *:hover,\n .kitt-hover & > * {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover)});\n }\n\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover)});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.active)});\n }\n\n &,\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *:hover,\n .kitt-hover & > *,\n & > *:focus,\n .kitt-focus & > *,\n & > [data-focusvisible-polyfill],\n & > *:active,\n .kitt-active & > * {\n background-color: ${({ theme, $isWhite, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;\n\n const { white, default: defaultIconButton } = theme.kitt.iconButton;\n\n if ($isWhite) return white.pressedBackgroundColor;\n return defaultIconButton.pressedBackgroundColor;\n }};\n }\n`);\n\nconst StyledPressableIconButton = styled.Pressable`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n `;\n }};\n`;\n\nexport interface PressableIconButtonProps extends PressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport function PressableIconButton({ color, disabled, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'} $isDisabled={Boolean(disabled)}>\n <StyledPressableIconButton {...props} disabled={disabled} />\n </StyleWebWrapper>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n testID?: IconButtonContentProps['testID'];\n accessibilityLabel?: IconButtonContentProps['accessibilityLabel'];\n accessibilityRole?: IconButtonContentProps['accessibilityRole'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n testID,\n accessibilityRole = 'button',\n accessibilityLabel,\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole={accessibilityRole}\n disabled={disabled}\n color={color}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { AccessibilityRole } from 'react-native';\nimport styled from 'styled-components/native';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled.View<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n testID?: string;\n accessibilityLabel?: string;\n accessibilityRole?: AccessibilityRole;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({\n icon,\n color,\n disabled,\n testID,\n accessibilityLabel,\n accessibilityRole,\n onPress,\n}: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer\n color={color}\n disabled={disabled}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import { createContext } from 'react';\n\nexport const OnCloseContext = createContext<() => void>(() => {});\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useContext } from 'react';\nimport styled from 'styled-components/native';\nimport { IconButton } from '../IconButton/IconButton';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled.View`\n position: relative;\n padding: ${({ theme }) => theme.kitt.spacing * 2}px;\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-bottom-width: 1px;\n border-bottom-color: ${({ theme }) => theme.kitt.colors.separator};\n min-height: 57px;\n`;\n\nconst LeftIconView = styled.View`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled.View`\n align-self: flex-start;\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\ninterface TitleViewProps {\n isIconLeft?: boolean;\n}\n\nconst TitleView = styled.View<TitleViewProps>`\n padding-left: ${({ theme, isIconLeft }) => (isIconLeft ? 0 : theme.kitt.spacing * 2)}px;\n flex-shrink: 1;\n`;\n\nexport function ModalHeader({ left, right, children }: HeaderProps): ReactElement {\n const onClose = useContext(OnCloseContext);\n\n const isIconLeft = !!left;\n\n return (\n <HeaderView>\n {isIconLeft && <LeftIconView>{left}</LeftIconView>}\n\n <TitleView isIconLeft={isIconLeft}>{children}</TitleView>\n\n {right !== undefined ? (\n right\n ) : (\n <RightIconView>\n <IconButton icon={<XIcon />} onPress={onClose} />\n </RightIconView>\n )}\n </HeaderView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Modal as NativeModal } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Overlay } from '../Overlay/Overlay';\nimport { ModalBody } from './Body';\nimport { ModalFooter } from './Footer';\nimport { ModalHeader } from './Header';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface ModalProps {\n visible: boolean;\n children: ReactNode;\n onClose: () => void;\n onEntered?: () => void;\n onExited?: () => void;\n}\n\nconst ModalView = styled.View`\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.spacing * 20}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nconst ContentView = styled.View`\n position: relative;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 540px;\n height: auto;\n width: 100%;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function Modal({ visible, children, onClose, onEntered, onExited }: ModalProps): ReactElement {\n return (\n <OnCloseContext.Provider value={onClose}>\n <NativeModal\n transparent\n animationType=\"fade\"\n visible={visible}\n onShow={onEntered}\n onDismiss={onExited}\n onRequestClose={onClose}\n >\n <ModalView>\n <Overlay onPress={onClose} />\n\n <ContentView>{children}</ContentView>\n </ModalView>\n </NativeModal>\n </OnCloseContext.Provider>\n );\n}\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import DateTimePicker from '@react-native-community/datetimepicker';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport type { ComponentProps, ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\n\ntype DateTimePickerProps = ComponentProps<typeof DateTimePicker>;\n\nfunction getDatePickerDisplayMode(): DateTimePickerProps['display'] {\n if (Platform.OS === 'android') return 'calendar';\n\n if (Platform.OS === 'ios') return 'spinner';\n\n return 'default';\n}\n\nexport interface PlatformDateTimePickerProps {\n value?: Date;\n defaultDate?: Date;\n maximumDate?: DateTimePickerProps['maximumDate'];\n minimuDate?: DateTimePickerProps['minimumDate'];\n testID?: DateTimePickerProps['testID'];\n onChange: (newDate?: Date) => void;\n}\n\nexport function PlatformDateTimePicker({\n value,\n defaultDate = new Date(),\n maximumDate,\n minimuDate,\n testID,\n onChange,\n}: PlatformDateTimePickerProps): ReactElement {\n const theme = useTheme();\n const displayMode = getDatePickerDisplayMode();\n\n const iosProps = Platform.OS === 'ios' ? { textColor: theme.kitt.colors.primary } : {};\n\n return (\n <DateTimePicker\n is24Hour\n testID={testID}\n value={value || defaultDate}\n mode=\"date\"\n maximumDate={maximumDate}\n minimumDate={minimuDate}\n display={displayMode}\n {...iosProps}\n onChange={(_event: DateTimePickerEvent, date?: Date | undefined) => onChange(date)}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Text } from 'react-native';\nimport { Button } from '../../Button/Button';\nimport { Modal } from '../../Modal/Modal';\nimport { Typography } from '../../typography/Typography';\nimport type { PlatformDateTimePickerProps } from './PlatformDateTimePicker';\nimport { PlatformDateTimePicker } from './PlatformDateTimePicker';\n\ninterface ModalTitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction ModalTitle({ children }: ModalTitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalPlatformDateTimePickerProps extends PlatformDateTimePickerProps {\n title?: ReactNode;\n isVisible?: boolean;\n validateButtonLabel?: string;\n onClose: () => void;\n}\n\nexport function ModalPlatformDateTimePicker({\n title,\n isVisible,\n value,\n validateButtonLabel,\n onClose,\n onChange,\n ...props\n}: ModalPlatformDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue((prev) => {\n return newDate || prev;\n });\n };\n\n return (\n <Modal visible={Boolean(isVisible)} onClose={handleClose}>\n {isVisible ? (\n <>\n {title ? <ModalTitle>{title}</ModalTitle> : null}\n\n <Modal.Body>\n <PlatformDateTimePicker {...props} value={currentValue} onChange={handleChange} />\n </Modal.Body>\n\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { Platform } from 'react-native';\nimport { DatePickerAndroid } from './DatePickerAndroid';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport { ModalPlatformDateTimePicker } from './ModalPlatformDateTimePicker';\nimport type { DatePickerProps } from './types';\n\nexport function DatePicker({\n value,\n pickerUITestID,\n pickerUITitle,\n pickerUIValidateButtonLabel,\n onChange,\n onFocus,\n onBlur,\n pickerDefaultDate,\n ...props\n}: DatePickerProps): ReactElement {\n const [isPickerUIVisible, setIsPickerUIVisible] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [currentValue, setCurrentValue] = useState<Date | undefined>(value);\n\n if (Platform.OS === 'android') {\n return (\n <DatePickerAndroid\n pickerDefaultDate={pickerDefaultDate}\n pickerUITestID={pickerUITestID}\n currentValue={currentValue}\n setCurrentValue={setCurrentValue}\n isFocused={isFocused}\n setIsFocused={setIsFocused}\n onChange={onChange}\n onBlur={onBlur}\n {...props}\n />\n );\n }\n\n const handleModalOpen = (): void => {\n if (onFocus) onFocus();\n\n setIsPickerUIVisible(true);\n\n setIsFocused(true);\n };\n\n const handleModalClose = (): void => {\n if (onBlur) onBlur();\n\n setIsPickerUIVisible(false);\n\n setIsFocused(false);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue(newDate);\n\n onChange(newDate);\n\n handleModalClose();\n };\n return (\n <>\n <DatePickerInputs\n handleModalOpen={handleModalOpen}\n currentValue={currentValue}\n isFocused={isFocused}\n {...props}\n />\n <ModalPlatformDateTimePicker\n testID={pickerUITestID}\n value={currentValue}\n isVisible={isPickerUIVisible}\n title={pickerUITitle}\n validateButtonLabel={pickerUIValidateButtonLabel}\n defaultDate={pickerDefaultDate}\n onClose={handleModalClose}\n onChange={handleChange}\n />\n </>\n );\n}\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface InputTextContainerProps {\n children: NonNullable<ReactNode>;\n $isDisabled?: boolean;\n}\n\nexport const InputTextContainer = styled.View<InputTextContainerProps>`\n position: relative;\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\nimport type { TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\nimport type { InputFormState, InputUIState } from '../utils';\nimport { getInputUIState } from '../utils';\nimport { InputTextContainer } from './InputTextContainer';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n minHeight?: number;\n state?: InputFormState;\n right?: ReactNode;\n /** @internal */\n internalForceState?: InputUIState;\n}\n\ninterface StyledTextInputProps extends TextInputMixinProps {\n $minHeight: number;\n}\n\nconst StyledTextInput = styled(TextInput)<StyledTextInputProps>`\n /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') {\n return theme.kitt.forms.input.padding.iOSSingleLine;\n }\n\n return theme.kitt.forms.input.padding.default;\n }};\n line-height: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') return 0;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].lineHeight}px`;\n }};\n width: 100%;\n min-height: ${({ $minHeight }) => $minHeight}px;\n`;\n\nconst RightInputContainer = styled.View`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: 10px;\n`;\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n right,\n minHeight = 0,\n state: formState,\n internalForceState,\n disabled = false,\n autoCorrect = true,\n textContentType = 'none',\n autoCompleteType = 'off',\n keyboardType = 'default',\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n const state = internalForceState || getInputUIState({ isFocused, isDisabled: disabled, formState });\n\n return (\n <InputTextContainer $isDisabled={disabled}>\n <StyledTextInput\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardType}\n autoCompleteType={autoCompleteType}\n autoCorrect={autoCorrect}\n $minHeight={minHeight}\n textContentType={textContentType}\n placeholderTextColor={theme.kitt.forms.input.color.placeholder}\n selectionColor={theme.kitt.forms.input.color.selection}\n {...props}\n $state={state}\n onFocus={(e) => {\n setIsFocused(true);\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n if (onBlur) onBlur(e);\n }}\n />\n {right ? <RightInputContainer>{right}</RightInputContainer> : null}\n </InputTextContainer>\n );\n },\n);\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputEmailProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType' | 'autoCapitalize'> {}\n\nexport function InputEmail(props: InputEmailProps): ReactElement {\n return (\n <InputText\n autoCompleteType=\"email\"\n keyboardType=\"email-address\"\n textContentType=\"emailAddress\"\n autoCapitalize=\"none\"\n {...props}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../utils';\n\nexport interface InputFeedbackProps {\n state?: InputFormState;\n testID?: TypographyProps['testID'];\n children: NonNullable<ReactNode>;\n}\n\nconst getColorFromState = (state?: InputFormState): TypographyColor => {\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n default:\n return 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../../KittBreakpoints';\n\nconst FieldContainer = styled.View`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled.View`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.forms.inputField.iconMarginLeft}px;\n`;\n\nexport interface InputFieldProps {\n label?: ReactNode;\n labelFeedback?: ReactNode;\n input: NonNullable<ReactNode>;\n feedback?: ReactNode;\n}\n\nexport function InputField({ label, labelFeedback, input, feedback }: InputFieldProps): ReactElement {\n return (\n <FieldContainer>\n {label ? (\n <FieldLabelContainer>\n <LabelContainer>{label}</LabelContainer>\n {labelFeedback}\n </FieldLabelContainer>\n ) : null}\n {input}\n {feedback ? <FeedbackContainer>{feedback}</FeedbackContainer> : null}\n </FieldContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputFormState } from 'forms/utils';\nimport type { TypographyIconProps } from '../../typography/TypographyIcon';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\n\nfunction getIconColor(state?: InputFormState, disabled?: boolean): TypographyIconProps['color'] {\n if (disabled) return 'black-light';\n\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n return 'success';\n default:\n return undefined;\n }\n}\n\nexport interface InputIconProps {\n icon: NonNullable<ReactElement>;\n disabled?: boolean;\n state?: InputFormState;\n}\n\nexport function InputIcon({ icon, state, disabled }: InputIconProps): ReactElement {\n const theme = useTheme();\n\n const color = getIconColor(state, disabled);\n\n return <TypographyIcon color={color} icon={icon} size={theme.kitt.forms.input.icon.size} />;\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable } from 'react-native';\n\nexport interface InputPressableProps extends PressableProps {}\n\nexport function InputPressable({ ...props }: InputPressableProps): ReactElement {\n return <Pressable {...props} />;\n}\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { InputIcon } from '../InputIcon/InputIcon';\nimport { InputPressable } from '../InputPressable/InputPressable';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPasswordProps extends InputTextProps {\n isPasswordDefaultVisible?: boolean;\n}\n\nexport function InputPassword({ isPasswordDefaultVisible, right, ...props }: InputPasswordProps): ReactElement {\n const [isVisible, setIsVisible] = useState(Boolean(isPasswordDefaultVisible));\n\n return (\n <InputText\n {...props}\n textContentType=\"password\"\n autoCompleteType=\"password\"\n autoCorrect={false}\n secureTextEntry={!isVisible}\n right={\n right || (\n <InputPressable accessibilityRole=\"button\" onPress={() => setIsVisible((prev) => !prev)}>\n <InputIcon icon={isVisible ? <EyeOffIcon /> : <EyeIcon />} />\n </InputPressable>\n )\n }\n />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPhoneProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType'> {}\n\nexport function InputPhone(props: InputPhoneProps): ReactElement {\n return <InputText {...props} autoCompleteType=\"tel\" keyboardType=\"number-pad\" textContentType=\"telephoneNumber\" />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport { useKittTheme } from '../../useKittTheme';\n\ntype InputTagType = 'success' | 'danger';\n\nconst getTypographyColor = (type: InputTagType | undefined): TypographyColor => (type ? 'white' : 'black');\n\ninterface InputTagContainerProps {\n type?: InputTagType;\n}\n\nconst InputTagContainer = styled(View)<InputTagContainerProps>`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n align-self: flex-start;\n overflow: hidden;\n padding-horizontal: ${({ theme }) => theme.kitt.spacing * 2}px;\n\n background-color: ${({ theme, type }) => {\n if (type === 'success') {\n return theme.kitt.forms.inputTag.success.backgroundColor;\n }\n if (type === 'danger') {\n return theme.kitt.forms.inputTag.danger.backgroundColor;\n }\n\n return theme.kitt.forms.inputTag.default.backgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.forms.inputTag.borderRadius}px;\n`;\n\nconst IconContainer = styled(View)`\n margin-right: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nexport interface InputTagProps {\n type?: InputTagType;\n children: ReactNode;\n icon?: ReactElement;\n}\n\nexport function InputTag({ children, type, icon }: InputTagProps): ReactElement {\n const typographyColor = getTypographyColor(type);\n const theme = useKittTheme();\n\n return (\n <InputTagContainer type={type}>\n {icon && (\n <IconContainer>\n <TypographyIcon icon={icon} size={theme.kitt.forms.inputTag.iconSize} color={typographyColor} />\n </IconContainer>\n )}\n <Typography.Text base=\"body-small\" color={typographyColor}>\n {children}\n </Typography.Text>\n </InputTagContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface LabelProps {\n htmlFor: string;\n children: NonNullable<ReactNode>;\n}\n\nexport function Label({ htmlFor, children }: LabelProps): ReactElement {\n return (\n <Typography.Text base=\"body\">\n {Platform.OS === 'web' ? <label htmlFor={htmlFor}>{children}</label> : children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { PressableProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface RadioProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n right?: boolean;\n children?: NonNullable<ReactNode>;\n value: string;\n onChange: (newValue: string) => void;\n}\n\ninterface OuterRadioProps {\n disabled: boolean;\n}\n\nconst OuterRadio = styled.View<OuterRadioProps>`\n background-color: ${({ theme, disabled }) =>\n theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n border-width: ${({ theme }) => theme.kitt.forms.radio.unchecked.borderWidth}px;\n border-color: ${({ theme, disabled }) => theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].borderColor};\n`;\nconst SelectedOuterRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n justify-content: center;\n align-items: center;\n`;\nconst SelectedInnerRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.innerBackgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n height: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize / 2}px;\n`;\nconst Container = styled.Pressable`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface TextAreaProps extends InputTextProps {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n\n return <InputText multiline textAlignVertical=\"top\" minHeight={theme.kitt.forms.textArea.minHeight} {...props} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\nconst Body = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding-right: ${theme.kitt.spacing * 12}px;\n padding-left: ${theme.kitt.spacing * 12}px;`,\n `padding-right: ${theme.kitt.spacing * 6}px;\n padding-left: ${theme.kitt.spacing * 6}px;`,\n )}\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n flex: 1;\n`;\n\ninterface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function FullScreenModalBody({ children }: BodyProps): ReactElement {\n return <Body>{children}</Body>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled.View<SideContainerProps>`\n ${({ theme, side = 'left' }) => {\n const padding = theme.kitt.spacing * 2;\n\n if (side === 'left') {\n return `padding-right: ${padding}px;`;\n }\n\n return `padding-left: ${padding}px;`;\n }}\n`;\n\nfunction getHeaderHorizontalMediumPadding(spacing: number): number {\n return spacing * 6;\n}\n\ninterface HeaderProps {\n insetTop?: number;\n}\n\nconst Header = styled.View<HeaderProps>`\n ${({ theme, insetTop = 0 }) => {\n const paddingTop = insetTop + theme.kitt.fullScreenModal.header.paddingVertical;\n const { paddingVertical, paddingHorizontal } = theme.kitt.fullScreenModal.header;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding: ${paddingTop}px ${getHeaderHorizontalMediumPadding(theme.kitt.spacing)}px ${paddingVertical}px;`,\n `padding: ${paddingTop}px ${paddingHorizontal}px ${paddingVertical}px;`,\n );\n }};\n border-bottom-color: ${({ theme }) => theme.kitt.fullScreenModal.header.borderColor};\n border-bottom-width: 1px;\n flex-direction: row;\n align-items: center;\n`;\n\ninterface HeaderContentProps {\n windowWidth: number;\n leftWidth: number;\n rightWidth: number;\n}\n\nconst HeaderContent = styled.View<HeaderContentProps>`\n ${({ theme, leftWidth, rightWidth, windowWidth }) => {\n /*\n * Since we don't have controll over the rendered left and right elements,\n * we must apply some logic to give the title all the available space\n */\n const sideElementMaxWidth = Math.max(leftWidth, rightWidth);\n\n const parentHorizontalPadding = theme.kitt.fullScreenModal.header.paddingHorizontal * 2;\n const parentHorizontalPaddingMedium = getHeaderHorizontalMediumPadding(theme.kitt.spacing) * 2;\n\n const computeWidth = (breakpointPadding: number): number =>\n windowWidth - breakpointPadding - sideElementMaxWidth * 2;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `width: ${computeWidth(parentHorizontalPaddingMedium)}px;`,\n `width: ${computeWidth(parentHorizontalPadding)}px;`,\n );\n }};\n ${({ leftWidth, rightWidth }) => {\n // Depending of the wider element, we must add a margin to fill the diff in space between elements\n const deltaMargin = Math.abs(leftWidth - rightWidth);\n\n if (leftWidth > rightWidth) {\n return `margin-right: ${deltaMargin}px;`;\n }\n\n return `margin-left: ${deltaMargin}px;`;\n }};\n justify-content: center;\n align-items: center;\n`;\n\nexport interface FullScreenModalHeaderProps {\n children: NonNullable<ReactNode>;\n right?: ReactNode;\n left?: ReactNode;\n}\n\nexport function FullScreenModalHeader({ children, right, left }: FullScreenModalHeaderProps): ReactElement {\n const { top } = useSafeAreaInsets();\n const dimensions = useWindowDimensions();\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(0);\n\n const handleLayoutChange = (event: LayoutChangeEvent, side: 'left' | 'right'): void => {\n // Prevents react to nullify event on rerenders\n event.persist();\n\n if (side === 'left') {\n setLeftWidth(event.nativeEvent.layout.width);\n return;\n }\n\n setRightWidth(event.nativeEvent.layout.width);\n };\n\n return (\n <Header insetTop={Platform.OS === 'ios' ? undefined : top}>\n {left ? <SideContainer onLayout={(e) => handleLayoutChange(e, 'left')}>{left}</SideContainer> : null}\n\n <HeaderContent windowWidth={dimensions.width} leftWidth={leftWidth} rightWidth={rightWidth}>\n {children}\n </HeaderContent>\n\n {right ? (\n <SideContainer side=\"right\" onLayout={(e) => handleLayoutChange(e, 'right')}>\n {right}\n </SideContainer>\n ) : null}\n </Header>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled.View`\n flex: 1 0 0%;\n align-self: center;\n`;\n\nexport function ListItemContent({ children, ...rest }: ListItemContentProps): ReactElement {\n return <ContentView {...rest}>{children}</ContentView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps, ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemSideContainerProps extends ViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled.View<ListItemSideContainerProps>`\n flex-direction: row;\n margin-left: ${({ theme, side }) => (side === 'right' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n`;\n\n// Handles the vertical alignment of the side elements of the list item\nexport function ListItemSideContainer({ children, side = 'left', ...rest }: ListItemSideContainerProps): ReactElement {\n return (\n <SideContainerView side={side} {...rest}>\n {children}\n </SideContainerView>\n );\n}\n\nexport interface ListItemSideContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled.View<ListItemSideContentProps>`\n align-self: ${({ align }) => align};\n`;\n\nexport function ListItemSideContent({ children, align = 'auto', ...rest }: ListItemSideContentProps): ReactElement {\n return (\n <SideContentView align={align} {...rest}>\n {children}\n </SideContentView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Fragment } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport { Pressable } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends ViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled.View<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}px`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}px`;\n }\n\n if (borders === 'both') {\n return css`\n border-top-width: ${borderWidth}px;\n border-bottom-width: ${borderWidth}px;\n `;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? Pressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\n\nexport interface LoaderProps {\n color?: Exclude<TypographyIconProps['color'], 'inherit'>;\n size?: TypographyIconProps['size'];\n}\n\nfunction getActivityIndicatorSize(size: number): number | 'small' | 'large' {\n if (Platform.OS === 'android') return size;\n return size < 36 ? 'small' : 'large';\n}\n\nexport function Loader({ color = 'primary', size = 20 }: LoaderProps): ReactElement {\n const theme = useTheme();\n const colorHex = theme.kitt.typography.colors[color];\n return <ActivityIndicator testID=\"ActivityIndicator\" color={colorHex} size={getActivityIndicatorSize(size)} />;\n}\n","import type { ReactElement } from 'react';\nimport type { LoaderProps } from './Loader';\nimport { Loader } from './Loader';\n\nexport interface LargeLoaderProps {\n color?: LoaderProps['color'];\n}\n\nexport function LargeLoader({ color = 'primary' }: LargeLoaderProps): ReactElement {\n return <Loader color={color} size={60} />;\n}\n","import { AlertCircleIcon, AlertTriangleIcon, CheckIcon, InfoIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\ninterface IconContentProps {\n type: MessageType;\n color: TypographyColor;\n}\n\nexport function IconContent({ type, color }: IconContentProps): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon color={color} />;\n case 'success':\n return <CheckIcon color={color} />;\n case 'danger':\n return <AlertTriangleIcon color={color} />;\n default:\n return <InfoIcon color={color} />;\n }\n}\n","import type { IconButtonProps } from '../IconButton/IconButton';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\nexport const getColorByType = (type: MessageType): TypographyColor => {\n switch (type) {\n case 'success':\n return 'white';\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n\nexport const getIconButtonColor = (messageType: MessageType): IconButtonProps['color'] => {\n switch (messageType) {\n case 'success':\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Typography } from '../typography/Typography';\nimport { IconContent } from './IconContent';\nimport { getColorByType, getIconButtonColor } from './helper';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\ninterface StyledMessageContainerProps {\n $type: MessageType;\n $hasNoRadius?: boolean;\n $insets?: EdgeInsets;\n}\n\nconst StyledMessageContainer = styled.View<StyledMessageContainerProps>`\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n min-height: 60px;\n padding-top: ${({ $insets }) => $insets?.top ?? 0}px;\n border-radius: ${({ theme, $hasNoRadius }) => ($hasNoRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, $type }) => theme.kitt.feedbackMessage[$type].backgroundColor};\n`;\n\nconst StyledDismissWrapper = styled.View`\n align-items: center;\n align-items: flex-start;\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 2.5}px ${spacing * 2}px 0 ${spacing * 5}px`;\n }};\n`;\n\nconst StyledIconContainer = styled.View`\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing}px ${spacing * 5}px 0 0`;\n }};\n`;\n\ninterface StyledTextContentProps {\n $isCenteredText?: boolean;\n}\n\nconst StyledTextContent = styled(Typography.Text)<StyledTextContentProps>`\n flex: 1;\n text-align: ${({ $isCenteredText }) => ($isCenteredText ? 'center' : 'left')};\n`;\n\nconst StyledMessageContent = styled.View`\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-self: center;\n align-items: flex-start;\n flex-shrink: 1;\n padding: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 4}px ${spacing * 5}px`;\n }};\n`;\n\nexport interface BaseMessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n /**\n * @internal for styling between Message and Notification\n */\n hasNoRadius?: boolean;\n centeredText?: boolean;\n insets?: EdgeInsets;\n onDismiss?: () => void;\n}\n\nexport function BaseMessage({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: BaseMessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <StyledMessageContainer $type={type} $hasNoRadius={hasNoRadius} $insets={insets}>\n <StyledMessageContent>\n {centeredText ? null : (\n <StyledIconContainer>\n <Icon color={color} icon={<IconContent type={type} color={color} />} />\n </StyledIconContainer>\n )}\n <StyledTextContent $isCenteredText={centeredText} base=\"body\" color={color}>\n {children}\n </StyledTextContent>\n </StyledMessageContent>\n\n {onDismiss ? (\n <StyledDismissWrapper>\n <IconButton color={getIconButtonColor(type)} icon={<XIcon />} onPress={onDismiss} />\n </StyledDismissWrapper>\n ) : null}\n </StyledMessageContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\n\nexport interface MessageProps extends BaseMessageProps {}\n\nexport function Message({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: MessageProps): ReactElement {\n return (\n <BaseMessage\n insets={insets}\n hasNoRadius={hasNoRadius}\n type={type}\n centeredText={centeredText}\n onDismiss={onDismiss}\n >\n {children}\n </BaseMessage>\n );\n}\n","import type { ReactElement } from 'react';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\n\nexport interface NotificationProps extends BaseMessageProps {\n /**\n * @deprecated use onDismiss instead\n */\n onDelete?: BaseMessageProps['onDismiss'];\n}\n\nexport function Notification({\n type,\n children,\n centeredText,\n insets,\n onDelete,\n onDismiss,\n}: NotificationProps): ReactElement {\n if (__DEV__) {\n if (onDelete) {\n throw new Error('onDelete is deprecated us onDismiss instead');\n }\n }\n\n return (\n <BaseMessage hasNoRadius type={type} centeredText={centeredText} insets={insets} onDismiss={onDismiss}>\n {children}\n </BaseMessage>\n );\n}\n","import { LinearGradient } from 'expo-linear-gradient';\nimport type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n Easing,\n interpolate,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\n\ninterface SkeletonProps {\n isLoading?: boolean;\n width: number;\n}\n\nconst Container = styled.View`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n border-color: ${({ theme }) => theme.kitt.skeleton.flareColor};\n height: 100%;\n width: 100%;\n`;\nconst AnimatedLinearGradient = Animated.createAnimatedComponent(LinearGradient);\n\nexport function SkeletonContent({ isLoading, width }: SkeletonProps): ReactElement {\n const theme = useTheme();\n const sharedX = useSharedValue(0);\n\n useEffect(() => {\n if (isLoading) {\n sharedX.value = withRepeat(\n withTiming(1, { duration: theme.kitt.skeleton.animationDuration, easing: Easing.inOut(Easing.ease) }),\n -1,\n );\n }\n }, [sharedX, width, isLoading, theme]);\n\n const linearGradientStyle = useAnimatedStyle(() => {\n return {\n transform: [{ translateX: interpolate(sharedX.value, [0, 1], [-width, width]) }],\n };\n });\n\n return (\n <Container>\n <AnimatedLinearGradient\n colors={[\n theme.kitt.skeleton.backgroundColor,\n theme.kitt.skeleton.flareColor,\n theme.kitt.skeleton.backgroundColor,\n ]}\n locations={[0.1, 0.5, 0.9]}\n start={{ x: 0, y: 0 }}\n end={{ x: 1, y: 0 }}\n style={[StyleSheet.absoluteFill, linearGradientStyle]}\n />\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\nconst SkeletonContainer = styled(View)`\n overflow: hidden;\n`;\nexport interface SkeletonProps {\n isLoading?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Skeleton({ isLoading, style }: SkeletonProps): ReactElement {\n const [width, setWidth] = useState(0);\n\n return (\n <SkeletonContainer style={style} onLayout={({ nativeEvent }) => setWidth(nativeEvent.layout.width)}>\n <SkeletonContent isLoading={isLoading} width={width} />\n </SkeletonContainer>\n );\n}\n\nconst Bar = styled(Skeleton)`\n width: 100%;\n height: ${({ theme }) => theme.kitt.spacing * 2}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst Circle = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 6}px;\n`;\n\nconst Square = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 1.5}px;\n`;\n\nSkeleton.Bar = Bar;\nSkeleton.Circle = Circle;\nSkeleton.Square = Square;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled.View.withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled.View<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled.View`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled.View`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends ViewProps {}\n\nconst StyledSection = styled.View<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends ViewProps {\n title: ReactNode;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({ title, children, internalIsDemoSection, ...props }: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement, ReactNode } from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}px;\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius}px;\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","import type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Platform, Text } from 'react-native';\nimport { Button } from '../Button/Button';\nimport { Modal } from '../Modal/Modal';\nimport { Typography } from '../typography/Typography';\n\ninterface TitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction Title({ children }: TitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalDateTimePickerProps {\n title?: ReactNode;\n visible?: boolean;\n value: Date;\n validateButtonLabel?: string;\n onClose: () => void;\n onChange: (newDate: Date) => void;\n}\n\nexport function ModalDateTimePicker({\n title,\n visible,\n value,\n validateButtonLabel,\n onChange,\n onClose,\n}: ModalDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n return (\n <Modal visible={Boolean(visible)} onClose={handleClose}>\n {visible ? (\n <>\n {title ? <Title>{title}</Title> : null}\n\n <Modal.Body>\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={currentValue}\n mode=\"time\"\n display={Platform.OS === 'ios' ? 'spinner' : 'default'}\n onChange={(_event: DateTimePickerEvent, date?: Date) =>\n setCurrentValue((prev) => {\n return date || prev;\n })\n }\n />\n </Modal.Body>\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { InputUIState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\n\nexport const useTimePicker = (\n value: Date | null,\n onChange: (time?: Date | null) => void,\n onBlur: () => void,\n disabled: boolean,\n defaultValue?: Date | null,\n): {\n displayedValue: string;\n dateTimePickerValue: Date;\n timePickerState: InputUIState;\n isTimePickerModalVisible: boolean;\n handleInputPress: () => void;\n handleModalClose: () => void;\n handleTimeChange: (date?: Date) => void;\n} => {\n const [isTimePickerModalVisible, setIsTimePickerModalVisible] = useState<boolean>(false);\n\n const todayAtNoon = useMemo(() => {\n const now = new Date(2000, 0, 1, 12);\n return new Date(now.getFullYear(), now.getMonth(), now.getDay(), 12);\n }, []);\n\n const defaultDate = defaultValue || todayAtNoon;\n const handleInputPress = (): void => {\n if (disabled) {\n return;\n }\n setIsTimePickerModalVisible(true);\n };\n\n const handleTimeChange = (date?: Date | null): void => {\n setIsTimePickerModalVisible(false);\n\n onChange(date || defaultDate);\n onBlur();\n };\n\n const dateTimePickerValue = value || defaultDate;\n const displayedValue =\n value === null\n ? timePickerPlaceholder\n : Intl.DateTimeFormat('fr-FR', { minute: 'numeric', hour: 'numeric' }).format(dateTimePickerValue);\n const timePickerState = isTimePickerModalVisible ? 'focus' : 'default';\n\n return {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n isTimePickerModalVisible,\n handleInputPress,\n handleTimeChange,\n handleModalClose: () => setIsTimePickerModalVisible(false),\n };\n};\n","import type { TextInputMixinProps } from '@ornikar/kitt-universal';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { styledTextInputMixin } from '../forms/styledTextInputMixin';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\ninterface ContainerProps extends TextInputMixinProps {}\n\nconst Container = styled.Pressable<ContainerProps>`\n ${styledTextInputMixin}\n width: 100px;\n height: 40px;\n justify-content: center;\n align-items: center;\n`;\n\nexport type TimePickerValue = Date | null | undefined;\n\nexport interface TimePickerProps {\n title?: ReactNode;\n state?: TextInputMixinProps['$state'];\n disabled?: boolean;\n forceDefaultValue?: TimePickerValue;\n value?: Date | '' | null;\n validateButtonLabel?: string;\n onChange: (time: TimePickerValue) => void;\n onBlur: () => void;\n}\n\nexport function TimePicker({\n title,\n state = 'default',\n disabled = false,\n forceDefaultValue,\n value,\n validateButtonLabel,\n onChange,\n onBlur,\n}: TimePickerProps): ReactElement {\n const {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n handleInputPress,\n handleModalClose,\n handleTimeChange,\n isTimePickerModalVisible,\n } = useTimePicker(value || null, onChange, onBlur, disabled, forceDefaultValue);\n\n return (\n <Container\n $state={timePickerState === 'default' ? state : timePickerState}\n accessibilityRole=\"button\"\n onPress={handleInputPress}\n >\n <Typography.Text base=\"body\" color={displayedValue === timePickerPlaceholder ? 'black-light' : 'black'}>\n {displayedValue}\n </Typography.Text>\n\n {Platform.OS === 'android' && isTimePickerModalVisible ? (\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={dateTimePickerValue}\n mode=\"time\"\n display=\"default\"\n onChange={(_event: DateTimePickerEvent, date?: Date) => handleTimeChange(date)}\n />\n ) : null}\n\n {Platform.OS !== 'android' ? (\n <ModalDateTimePicker\n title={title}\n visible={isTimePickerModalVisible}\n value={dateTimePickerValue}\n validateButtonLabel={validateButtonLabel}\n onChange={handleTimeChange}\n onClose={handleModalClose}\n />\n ) : null}\n </Container>\n );\n}\n","import { TooltipArrowIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\nimport type { TooltipPosition } from './Tooltip';\n\nconst StyledTooltipView = styled.View`\n align-items: center;\n`;\n\nconst StyledTooltipContent = styled.View`\n background-color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n border-radius: ${({ theme }) => theme.kitt.tooltip.borderRadius}px;\n opacity: ${({ theme }) => theme.kitt.tooltip.opacity};\n padding: ${({ theme }) => `${theme.kitt.tooltip.verticalPadding}px ${theme.kitt.tooltip.horizontalPadding}px`};\n`;\n\ninterface StyledArrowProps {\n $position: TooltipPosition;\n}\n\nfunction ArrowView(props: ViewProps): ReactElement {\n const theme = useTheme();\n return (\n <View {...props}>\n <TooltipArrowIcon color={theme.kitt.tooltip.backgroundColor} />\n </View>\n );\n}\n\nconst StyledArrow = styled(ArrowView)<StyledArrowProps>`\n color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n transform: ${({ $position }) => `rotate(${$position === 'bottom' ? 180 : 0}deg)`};\n`;\n\nexport interface TooltipViewProps {\n children: NonNullable<ReactNode>;\n position: TooltipPosition;\n}\n\nexport function TooltipView({ children, position }: TooltipViewProps): ReactElement {\n return (\n <StyledTooltipView>\n {position === 'bottom' ? <StyledArrow $position={position} /> : null}\n <StyledTooltipContent>\n <Typography.Text base=\"body\" color=\"white\">\n {children}\n </Typography.Text>\n </StyledTooltipContent>\n {position === 'top' ? <StyledArrow $position={position} /> : null}\n </StyledTooltipView>\n );\n}\n","import type { TooltipProps } from '..';\nimport type { TooltipPosition } from './Tooltip';\n\nexport const tooltipDefaultPosition: TooltipPosition = 'top';\nexport const tooltipDefaultFloatingStrategy: TooltipProps['floatingStrategy'] = {\n web: 'absolute',\n};\n","import { flip, offset, shift, useFloating } from '@floating-ui/react-native';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useEffect } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultPosition } from './tooltipUtils';\n\nexport type TooltipPosition = 'bottom' | 'top';\nexport type WebFloatingPosition = 'fixed' | 'absolute';\n\n// Since the tooltip use absolute positionning, we need a parent to provide the relative root\nconst TooltipContainer = styled.View`\n position: relative;\n align-self: baseline;\n`;\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n floatingPadding?: number;\n position?: TooltipPosition;\n /**\n * @description\n * This value init the internal visibile state of the tooltip. This is mainly used for testing purpose.\n */\n defaultVisible?: boolean;\n // eslint-disable-next-line react/no-unused-prop-types\n fullWidth?: boolean;\n /**\n * @default absolute\n * @description\n * Specific position strategy to apply to the tooltip.\n * Might be usefull when dealing with edge case (see https://floating-ui.com/docs/misc#z-index-stacking).\n */\n // eslint-disable-next-line react/no-unused-prop-types\n floatingStrategy?: {\n web: WebFloatingPosition;\n };\n onUpdate?: (tooltipConfig: any) => void;\n}\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : update position on scroll in future iteration\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const pressed = useSharedValue(defaultVisible);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? theme.kitt.tooltip.opacity : 0),\n };\n });\n\n const handlePress = (): void => {\n pressed.value = !pressed.value;\n };\n\n const { x, y, reference, floating, update, refs, middlewareData } = useFloating({\n placement: position,\n middleware: [offset(padding), shift(), flip({ padding })],\n });\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy: 'absolute',\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, update, refs, middlewareData, onUpdate]);\n\n return (\n <TooltipContainer>\n <View ref={reference}>\n <Pressable accessibilityRole=\"button\" onPress={handlePress}>\n {children}\n </Pressable>\n </View>\n\n <View\n ref={floating}\n accessibilityElementsHidden={!pressed.value}\n importantForAccessibility={pressed.value === true ? 'auto' : 'no-hide-descendants'}\n style={{\n ...StyleSheet.absoluteFillObject,\n top: y && position === 'bottom' ? y : undefined,\n bottom: y && position === 'top' ? y : undefined,\n left: x ?? 0,\n }}\n >\n <Animated.View style={[opacityStyles]}>\n <TooltipView position={position}>{content}</TooltipView>\n </Animated.View>\n </View>\n </TooltipContainer>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n return <StyledTypographyEmoji size={fontSize} emoji={emoji} />;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface TypographyLinkWebWrapperProps {\n theme: DefaultTheme;\n $hasNoUnderline?: boolean;\n}\n\nconst TypographyLinkWebWrapper = withTheme(styledLinaria.span<TypographyLinkWebWrapperProps>`\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: none;\n }\n\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'underline' : 'none')}\n }\n`);\n\ninterface StyledLinkProps {\n $disabled?: boolean;\n $hasNoUnderline?: boolean;\n}\n\nconst StyledLink = styled.Text<StyledLinkProps & TextProps>`\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'none' : 'underline')};\n\n ${({ $disabled }) => {\n if (Platform.OS !== 'web') return undefined;\n\n return `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n `;\n }};\n\n ${({ $disabled, theme }) => {\n if (!$disabled) return undefined;\n return `color: ${theme.kitt.typography.link.disabledColor};`;\n }};\n`;\n\nexport interface TypographyLinkProps extends Except<TypographyPropsWithoutRole, 'children'> {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n noUnderline?: boolean;\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress: TextProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n href,\n hrefAttrs,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyleWebWrapper as={TypographyLinkWebWrapper} $hasNoUnderline={noUnderline}>\n <StyledLink\n $disabled={disabled}\n $hasNoUnderline={noUnderline}\n href={href}\n hrefAttrs={hrefAttrs}\n accessibilityRole=\"link\"\n dataSet={{\n // remove data-kitt-universal when we delete kitt web. See See :global(a) in Link styles.module.css\n 'kitt-universal': 'true',\n }}\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </StyleWebWrapper>\n </Typography>\n );\n}\n","export const hex2rgba = (hex: string, alpha = 1): string => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { ThemeProvider } from 'styled-components/native';\nimport type { KittTheme } from '../../useKittTheme';\nimport { useKittTheme } from '../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context) as ReactNode}</KittThemeProvider>;\n },\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { useMatchWindowSize } from './useMatchWindowSize';\n\ninterface MatchWindowSizeProps extends MatchWindowSizeOptions {\n children: ReactNode;\n}\n\nexport function MatchWindowSize({ children, ...matchWindowSizeOptions }: MatchWindowSizeProps): ReactElement | null {\n const match = useMatchWindowSize(matchWindowSizeOptions);\n if (!match) return null;\n return children as ReactElement;\n}\n","import type { ComponentType, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\n\n// type $Without<T, K extends keyof any> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;\n// type $DeepPartial<T> = { [P in keyof T]?: $DeepPartial<T[P]> };\n\n// export function withTheme<Props extends { theme: DefaultTheme }, C>(\n// WrappedComponent: ComponentType<Props> & C,\n// ): ComponentType<SetOptional<Props, 'theme'>> & hoistNonReactStatics.NonReactStatics<typeof WrappedComponent> {\n// return function ThemedComponent(props) {\n// const theme = useTheme();\n\n// return (<WrappedComponent theme={theme} {...(props as any)} />) as any;\n// };\n// }\n\nexport function withTheme<Props extends { theme: DefaultTheme }, T>(\n WrappedComponent: ComponentType<Props>,\n): ForwardRefExoticComponent<PropsWithoutRef<Except<Props, 'theme'>> & RefAttributes<T>> {\n // eslint-disable-next-line prefer-arrow-callback\n return forwardRef<T, Except<Props, 'theme'>>(function ThemedComponent(props, ref) {\n const theme = useTheme();\n\n return <WrappedComponent ref={ref} theme={theme} {...(props as any)} />;\n });\n}\n"],"names":["SpinningIcon","children","animationRef","useRef","Animated","Value","rotation","current","interpolate","inputRange","outputRange","useEffect","process","env","TESTS","undefined","animation","loop","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","stop","_jsx","transform","rotate","IconContainer","styled","View","color","size","align","Icon","icon","spin","clonedIcon","cloneElement","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","IsHeaderTypographyContext","createContext","TypographyColorContext","useTypographyColor","useContext","getTypographyTypeConfigKey","theme","isMediumOrAbove","responsive","matchWindowSize","minWidth","isTypeHeader","type","startsWith","isTypographyHeader","typographyIsHeaderInContext","Error","getTypographyTypeConfig","kitt","typography","types","headers","configs","bodies","StyledTypography","Text","$isHeader","$typeForCurrentWindowSize","$variant","typeConfigKey","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","$color","colors","useTypographyTypeForCurrentWindowSize","base","small","medium","large","useWindowDimensions","width","getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors","hasTypographyAncestor","Typography","accessibilityRole","variant","otherProps","isHeaderTypographyInContext","baseOrDefaultToBody","colorOrDefaultToBlack","typeForCurrentWindowSize","isHeader","nonNullableVariant","content","TypographyText","props","TypographyParagraph","createHeading","level","defaultBase","TypographyHeading","displayName","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","$isRound","$size","avatar","borderRadius","$isLight","light","backgroundColor","AvatarContent","src","alt","isLight","uri","height","Avatar","round","StyledPressable","Pressable","$isStretch","StyledAnimatedView","button","AnimatedButtonPressable","forwardRef","ref","disabled","$type","href","hrefAttrs","testID","onPress","useTheme","pressed","useSharedValue","pressedBackgroundColor","scale","scaleStyles","useAnimatedStyle","interpolateColor","value","withSpring","active","handlePressInOut","pressIn","BaseStyledButtonPressable","maxWidth","minHeight","$isDisabled","Platform","OS","$isLarge","contentPadding","defaultPadding","disabledPadding","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","isSubtle","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","spacing","ButtonIcon","iconPosition","StyledChildrenWithIcon","ButtonContentChildren","iconSpin","isDisabled","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","StyledDisabled","borderWidth","borderColor","Button","stretch","Container","card","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","handleOnPress","WebBrowser","err","console","error","Linking","openURL","lateOceanColorPalette","lateOcean","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black800","black555","black200","black100","black50","black25","white","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","primary","primaryLight","accent","accentLight","success","correct","danger","info","warning","separator","hover","black","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","focus","transition","timingFunction","hoverBackgroundColor","focusBorderColor","subtle","hoverColor","activeColor","secondary","feedbackMessage","checkbox","iconSize","checkedBorderColor","checkedBackgroundColor","markColor","datePicker","day","month","year","calcLineHeight","lineHeightMultiplier","Math","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","regular","bold","header1","header2","header3","header4","header5","body","link","disabledColor","inputStatesStyle","pending","valid","invalid","input","selection","placeholder","padding","iOSSingleLine","property","states","inputField","labelContainerPaddingBottom","iconMarginLeft","inputTag","labelColor","radio","unchecked","checked","innerSize","innerBackgroundColor","textArea","forms","fullScreenModal","header","paddingVertical","paddingHorizontal","iconButton","listItem","innerMargin","shadows","skeleton","flareColor","animationDuration","tag","fill","outline","tooltip","opacity","horizontalPadding","verticalPadding","floatingPadding","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","max","palettes","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","dimensions","ifWindowSizeMatches","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","CheckboxAndLabelPressableWrapper","CheckboxContainer","$isChecked","css","$hasLabel","Checkbox","onChange","onBlur","onFocus","hitSlop","id","handlePress","e","getInputUIState","isFocused","formState","styledTextInputMixin","$state","StyledTypographyText","ViewInput","$partName","DatePickerInputPart","partName","prefixWithZero","padStart","PartContainer","$isLast","DatePickerPressable","DatePickerInputs","state","internalForceState","handleModalOpen","currentValue","currentState","sharedPartProps","getDate","getMonth","getFullYear","DatePickerAndroid","pickerDefaultDate","pickerUITestID","setIsFocused","setCurrentValue","handleClose","DateTimePickerAndroid","open","Date","now","timestamp","nativeEvent","date","onTouchCancel","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","PressableIconButton","AnimatedIconButtonBackground","AnimatedViewContainer","PressableAnimatedContainer","accessibilityLabel","opacityStyles","IconButtonContentBorder","IconButtonContent","IconButton","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","left","right","onClose","ModalView","ContentView","Modal","visible","onEntered","onExited","NativeModal","Header","Body","Footer","getDatePickerDisplayMode","PlatformDateTimePicker","defaultDate","maximumDate","minimuDate","displayMode","iosProps","textColor","_event","ModalTitle","ModalPlatformDateTimePicker","title","isVisible","validateButtonLabel","useState","handleChange","newDate","prev","handleSubmit","DatePicker","pickerUITitle","pickerUIValidateButtonLabel","isPickerUIVisible","setIsPickerUIVisible","handleModalClose","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","autoCorrect","textContentType","autoCompleteType","keyboardType","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","setIsVisible","InputPhone","getTypographyColor","InputTagContainer","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","layout","FullScreenModal","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","Notification","onDelete","AnimatedLinearGradient","createAnimatedComponent","LinearGradient","SkeletonContent","isLoading","sharedX","withRepeat","withTiming","inOut","ease","linearGradientStyle","translateX","x","y","absoluteFill","SkeletonContainer","Skeleton","setWidth","Bar","Circle","Square","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","includes","direction","storyPadding","getBackgroundColorFromBlockColor","getTypographyColorFromBlockColor","StoryBlockBackgroundContext","StoryBlockColorContext","useStoryBlockColor","storyBlockColor","StyledStoryBlockView","background","StoryBlock","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StoryContainer","ScrollView","Story","contentContainerStyle","StyledSection","StorySection","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","isNative","StoryGrid","Row","Col","getLabelColor","Tag","Title","ModalDateTimePicker","timePickerPlaceholder","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","getDay","dateTimePickerValue","displayedValue","Intl","DateTimeFormat","minute","hour","format","timePickerState","handleInputPress","handleTimeChange","TimePicker","forceDefaultValue","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","TooltipContainer","Tooltip","defaultVisible","onUpdate","useFloating","placement","middleware","offset","shift","flip","reference","floating","update","refs","middlewareData","strategy","bottom","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","r","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match","withTheme","WrappedComponent"],"mappings":"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"}