@ornikar/kitt-universal 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/definitions/Skeleton/Skeleton.d.ts +14 -0
- package/dist/definitions/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/definitions/Skeleton/SkeletonContent.d.ts +8 -0
- package/dist/definitions/Skeleton/SkeletonContent.d.ts.map +1 -0
- package/dist/definitions/Skeleton/SkeletonContent.web.d.ts +7 -0
- package/dist/definitions/Skeleton/SkeletonContent.web.d.ts.map +1 -0
- package/dist/definitions/forms/TextArea/TextArea.d.ts.map +1 -1
- package/dist/definitions/index.d.ts +4 -0
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/themes/default.d.ts +1 -0
- package/dist/definitions/themes/default.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/skeletonTheme.d.ts +7 -0
- package/dist/definitions/themes/late-ocean/skeletonTheme.d.ts.map +1 -0
- package/dist/definitions/themes/late-ocean/typographyLateOceanTheme.d.ts +2 -0
- package/dist/definitions/themes/late-ocean/typographyLateOceanTheme.d.ts.map +1 -1
- package/dist/definitions/utils/hexToRgba.d.ts +2 -0
- package/dist/definitions/utils/hexToRgba.d.ts.map +1 -0
- package/dist/index-browser-all.es.android.js +154 -18
- package/dist/index-browser-all.es.android.js.map +1 -1
- package/dist/index-browser-all.es.ios.js +154 -18
- package/dist/index-browser-all.es.ios.js.map +1 -1
- package/dist/index-browser-all.es.js +154 -18
- package/dist/index-browser-all.es.js.map +1 -1
- package/dist/index-browser-all.es.web.js +108 -7
- package/dist/index-browser-all.es.web.js.map +1 -1
- package/dist/index-node-14.17.cjs.js +143 -15
- package/dist/index-node-14.17.cjs.js.map +1 -1
- package/dist/index-node-14.17.cjs.web.css +1 -0
- package/dist/index-node-14.17.cjs.web.js +98 -5
- package/dist/index-node-14.17.cjs.web.js.map +1 -1
- package/dist/styles.css +1 -0
- package/dist/tsbuildinfo +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-all.es.android.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/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputText/useInputText.ts","../src/forms/InputText/InputText.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/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/Message/Message.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/Notification/Notification.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/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/avatarLateOceanTheme.ts","../src/themes/late-ocean/colorsLateOceanTheme.ts","../src/themes/late-ocean/buttonLateOceanTheme.ts","../src/themes/late-ocean/cardLateOceanTheme.ts","../src/themes/late-ocean/feedbackMessageLateOceanTheme.ts","../src/themes/late-ocean/inputFieldLateOceanTheme.ts","../src/themes/late-ocean/inputLateOceanTheme.ts","../src/themes/late-ocean/radioLateOceanTheme.ts","../src/themes/late-ocean/formLateOceanTheme.ts","../src/themes/late-ocean/fullScreenModalLateOceanTheme.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItemLateOceanTheme.ts","../src/themes/late-ocean/shadowsLateOceanTheme.ts","../src/themes/late-ocean/tagLateOceanTheme.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/late-ocean/typographyLateOceanTheme.ts","../src/themes/default.ts","../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/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.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/typographyLateOceanTheme';\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-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 };\n line-height: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight\n };\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 { Typography } from '../typography/Typography';\n\nconst getFirstCharacter = (string: string): string => (string ? string[0] : '');\n\nconst getInitials = (firstname: string, lastname: string): string =>\n (getFirstCharacter(firstname) + getFirstCharacter(lastname)).toUpperCase();\n\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n firstname?: string | null;\n lastname?: string | null;\n round?: boolean;\n light?: boolean;\n}\n\nexport interface StyledAvatarViewProps extends Pick<AvatarProps, 'round' | 'light'> {\n size: number;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ round, size }) => (round ? size / 2 : 10)}px;\n background-color: ${({ theme, light }) =>\n light ? 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\nfunction AvatarContent({ size = 40, src, firstname, lastname, light }: AvatarProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base=\"body-small\" variant=\"bold\" color={light ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={light ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport function Avatar({ size = 40, ...rest }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView {...rest} size={size}>\n <AvatarContent {...rest} size={size} />\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};\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};\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : theme.kitt.button.maxWidth)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\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} solid ${disabled.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\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?: () => void;\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.card.padding};\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius};\n border-width: ${({ theme }) => theme.kitt.card.borderWidth};\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","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../InputFormState';\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 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 { useState } from 'react';\n\nexport const useInputText = (): {\n isFocused: boolean;\n handleInputFocus: () => void;\n handleInputBlur: () => void;\n isPasswordVisible: boolean;\n togglePasswordVisibility: () => void;\n} => {\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState<boolean>(false);\n\n const handleInputFocus = (): void => setIsFocused(true);\n const handleInputBlur = (): void => setIsFocused(false);\n\n const togglePasswordVisibility = (): void => setIsPasswordVisible((isVisible) => !isVisible);\n\n return { isFocused, handleInputFocus, handleInputBlur, togglePasswordVisibility, isPasswordVisible };\n};\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { KeyboardTypeOptions, TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport type { InputFormState } from '../InputFormState';\nimport { useInputText } from './useInputText';\n\ntype InputTextType = 'text' | 'email' | 'password' | 'username';\nexport type InputTextState = 'default' | 'invalid' | 'disabled' | 'hover' | 'focus';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n type: InputTextType;\n minHeight?: number;\n state?: InputFormState;\n /** @internal */\n internalForceState?: InputTextState;\n}\n\nexport interface TextInputMixinProps {\n state: InputTextState;\n}\ninterface InputProps extends TextInputMixinProps {\n minHeight: number;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n /* stylelint-disable declaration-property-value-allowed-list */\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 border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth};\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius};\n border-color: ${({ theme, state }) => theme.kitt.forms.input.states[state].borderColor};\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize;\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\nconst Input = styled(TextInput)<InputProps>`\n /* stylelint-disable declaration-bang-space-before */\n /* stylelint-disable comment-word-disallowed-list */\n\n /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) =>\n !multiline && Platform.OS === 'ios' ? theme.kitt.forms.input.paddingSingleLineIOS : theme.kitt.forms.input.padding};\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;\n }};\n min-height: ${({ minHeight }) => minHeight}px;\n`;\n\nconst Container = styled.View`\n margin-top: ${({ theme }) => theme.kitt.forms.input.marginTop};\n margin-bottom: ${({ theme }) => theme.kitt.forms.input.marginBottom};\n`;\n\nconst PasswordButtonContainer = styled.Pressable`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.forms.input.passwordButtonIconSize / 2}px;\n`;\n\nconst getInputState = ({\n isDisabled,\n isFocused,\n formState,\n}: {\n isFocused: boolean;\n formState: InputFormState;\n isDisabled: boolean;\n}): InputTextState => {\n if (isDisabled) return 'disabled';\n if (isFocused) return 'focus';\n if (formState === 'invalid') return 'invalid';\n return 'default';\n};\n\nconst keyboardTypeByTextInputType: Record<InputTextType, KeyboardTypeOptions> = {\n text: 'default',\n email: 'email-address',\n password: 'default',\n username: 'default',\n};\n\nconst autoCompleteTypeByType: Record<InputTextType, 'off' | 'email' | 'password' | 'name'> = {\n text: 'off',\n email: 'email',\n password: 'password',\n username: 'name',\n};\n\nconst autoCorrectByType: Record<InputTextType, boolean> = {\n text: true,\n email: false,\n password: false,\n username: false,\n};\n\nconst textContentTypeByType: Record<InputTextType, 'none' | 'emailAddress' | 'password' | 'username'> = {\n text: 'none',\n email: 'emailAddress',\n password: 'password',\n username: 'username',\n};\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n minHeight = 0,\n type,\n state: formState,\n internalForceState,\n disabled = false,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const { isFocused, handleInputBlur, handleInputFocus, isPasswordVisible, togglePasswordVisibility } =\n useInputText();\n const theme = useTheme();\n const state = internalForceState || getInputState({ isFocused, isDisabled: disabled, formState });\n return (\n <Container>\n <Input\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardTypeByTextInputType[type]}\n autoCompleteType={autoCompleteTypeByType[type]}\n autoCorrect={autoCorrectByType[type]}\n minHeight={minHeight}\n textContentType={textContentTypeByType[type]}\n placeholderTextColor={theme.kitt.typography.colors[theme.kitt.forms.input.placeholderColor]}\n selectionColor={theme.kitt.forms.input.selectionColor}\n secureTextEntry={type === 'password' && !isPasswordVisible}\n {...props}\n state={state}\n onFocus={(e) => {\n handleInputFocus();\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n handleInputBlur();\n if (onBlur) onBlur(e);\n }}\n />\n {type === 'password' && !disabled && (\n <PasswordButtonContainer accessibilityRole=\"button\" onPress={togglePasswordVisibility}>\n <TypographyIcon\n icon={isPasswordVisible ? <EyeIcon /> : <EyeOffIcon />}\n size={theme.kitt.forms.input.passwordButtonIconSize}\n color={theme.kitt.forms.input.states[state].passwordButtonIconColor}\n />\n </PasswordButtonContainer>\n )}\n </Container>\n );\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};\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 Omit<InputTextProps, 'type'> {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n return <InputText multiline {...props} type=\"text\" minHeight={theme.kitt.forms.input.textAreaMinHeight} />;\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 { 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 { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: 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 }) => theme.kitt.iconButton.scale.base.hover});\n }\n\n @media (${({ theme }) => theme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme }) => theme.kitt.iconButton.scale.medium.hover});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme }) => 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 }) => {\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, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'}>\n <StyledPressableIconButton {...props} />\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 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 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=\"button\"\n disabled={disabled}\n color={color}\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 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}\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({ icon, color, disabled, onPress }: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer color={color} disabled={disabled} onPress={onPress}>\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\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 : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? theme.kitt.listItem.innerMargin : 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 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}`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}`;\n }\n\n if (borders === 'both') {\n return `border-top-width: ${borderWidth}; border-bottom-width: ${borderWidth}`;\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, XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\nconst xIconSize = 14;\nconst mainIconSize = 20;\n\nexport interface MessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n noRadius?: boolean;\n centeredText?: boolean;\n insets?: { top?: number };\n onDismiss?: () => void;\n}\n\ninterface ContainerProps {\n type: MessageType;\n noRadius: boolean;\n insets: MessageProps['insets'];\n}\n\nconst Container = styled.View<ContainerProps>`\n border-radius: ${({ theme, noRadius }) => (noRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, type }) => theme.kitt.feedbackMessage.backgroundColors[type]};\n padding-bottom: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-top: ${({ theme, insets }) => (insets?.top ?? 0) + theme.kitt.spacing * 4}px;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nconst CloseContainer = styled(TouchableOpacity)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nconst IconContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\ninterface ContentProps {\n type: MessageType;\n centeredText: boolean;\n}\n\nconst Content = styled.Text<ContentProps>`\n text-align: ${({ centeredText }) => (centeredText ? 'center' : 'left')};\n flex: 1;\n`;\n\nconst 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\nfunction getIconContent(type: MessageType): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon />;\n case 'success':\n return <CheckIcon />;\n case 'danger':\n return <AlertTriangleIcon />;\n default:\n return <InfoIcon />;\n }\n}\n\nexport function Message({\n type = 'info',\n children,\n noRadius = false,\n centeredText = false,\n onDismiss,\n insets,\n}: MessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <Container type={type} noRadius={noRadius} insets={insets}>\n {!centeredText ? (\n <IconContainer>\n <Icon size={mainIconSize} color={color} icon={getIconContent(type)} />\n </IconContainer>\n ) : null}\n <Content type={type} centeredText={centeredText}>\n <Typography.Text base=\"body-small\" color={color}>\n {children}\n </Typography.Text>\n </Content>\n {onDismiss ? (\n <CloseContainer onPress={onDismiss}>\n <Icon icon={<XIcon />} size={xIconSize} color={color} />\n </CloseContainer>\n ) : null}\n </Container>\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 { 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 { Button } from '../Button/Button';\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 <Button type=\"subtle-dark\" 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};\n background-color: ${({ theme }) => theme.kitt.palettes.lateOcean.white};\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 type { ReactElement, ReactNode } from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport type { MessageProps } from '../Message/Message';\nimport { Message } from '../Message/Message';\n\nexport interface NotificationProps {\n children: NonNullable<ReactNode>;\n type?: MessageProps['type'];\n centeredText?: MessageProps['centeredText'];\n onDelete?: MessageProps['onDismiss'];\n}\n\nexport function Notification({ type, children, centeredText, onDelete }: NotificationProps): ReactElement {\n const { top } = useSafeAreaInsets();\n return (\n <Message noRadius type={type} centeredText={centeredText} insets={{ top }} onDismiss={onDelete}>\n {children}\n </Message>\n );\n}\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};\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};\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","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 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 avatarLateOceanTheme = {\n default: {\n color: lateOceanColorPalette.white,\n backgroundColor: lateOceanColorPalette.lateOcean,\n },\n light: {\n color: lateOceanColorPalette.black1000,\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colorsLateOceanTheme = {\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 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 { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport interface ButtonVariantTheme {\n // handled by typography ?\n // color: string;\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: string;\n borderWidth: {\n disabled: string;\n focus: string;\n };\n minHeight: string;\n minWidth: string;\n maxWidth: string;\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 buttonLateOceanTheme: ButtonTheme = {\n borderRadius: '30px',\n borderWidth: {\n disabled: '2px',\n focus: '3px',\n },\n minHeight: '40px',\n minWidth: '40px',\n maxWidth: '335px',\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: colorsLateOceanTheme.primary,\n pressedBackgroundColor: colorsLateOceanTheme.primaryLight,\n hoverBackgroundColor: colorsLateOceanTheme.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: colorsLateOceanTheme.transparent,\n pressedBackgroundColor: colorsLateOceanTheme.transparent,\n hoverBackgroundColor: colorsLateOceanTheme.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colorsLateOceanTheme.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n 'subtle-dark': {\n backgroundColor: colorsLateOceanTheme.transparent,\n pressedBackgroundColor: colorsLateOceanTheme.transparent,\n hoverBackgroundColor: colorsLateOceanTheme.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colorsLateOceanTheme.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n disabled: {\n backgroundColor: colorsLateOceanTheme.disabled,\n pressedBackgroundColor: colorsLateOceanTheme.disabled,\n hoverBackgroundColor: colorsLateOceanTheme.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const cardLateOceanTheme = {\n borderRadius: '20px',\n borderWidth: '2px',\n padding: '16px',\n primary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.lateOcean,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const feedbackMessageLateOceanTheme = {\n backgroundColors: {\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n warning: lateOceanColorPalette.goldCrayola,\n info: lateOceanColorPalette.aero,\n },\n};\n","export const inputFieldLateOceanTheme = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import type { InputTextState } from '../../forms/InputText/InputText';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport type { typographyLateOceanTheme } from './typographyLateOceanTheme';\n\nexport type TypographyColor = keyof typeof typographyLateOceanTheme.colors;\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: TypographyColor;\n passwordButtonIconColor: TypographyColor;\n}\n\nconst inputStatesStyle: Record<InputTextState, InputStateStyle> = {\n default: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n focus: {\n borderColor: lateOceanColorPalette.lateOcean,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n color: 'black-light',\n passwordButtonIconColor: 'black-light',\n },\n invalid: {\n borderColor: lateOceanColorPalette.englishVermillon,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n};\n\nexport const inputLateOceanTheme = {\n marginTop: '2px',\n marginBottom: '4px',\n borderWidth: '2px',\n borderRadius: '10px',\n passwordButtonIconSize: 20,\n padding: '7px 16px',\n paddingSingleLineIOS: '12px 16px',\n selectionColor: lateOceanColorPalette.lateOcean,\n placeholderColor: 'black-light' as const,\n textAreaMinHeight: 120,\n states: inputStatesStyle,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const radioLateOceanTheme = {\n size: 18,\n unchecked: {\n backgroundColor: lateOceanColorPalette.white,\n borderWidth: '2px',\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n innerSize: 5,\n innerBackgroundColor: lateOceanColorPalette.white,\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { inputFieldLateOceanTheme } from './inputFieldLateOceanTheme';\nimport { inputLateOceanTheme } from './inputLateOceanTheme';\nimport { radioLateOceanTheme } from './radioLateOceanTheme';\n\nexport const formsLateOceanTheme = {\n input: inputLateOceanTheme,\n radio: radioLateOceanTheme,\n inputField: inputFieldLateOceanTheme,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModalLateOceanTheme = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { buttonLateOceanTheme } from './buttonLateOceanTheme';\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: buttonLateOceanTheme.disabled.backgroundColor,\n borderColor: buttonLateOceanTheme.disabled.borderColor,\n },\n default: {\n pressedBackgroundColor: buttonLateOceanTheme.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: buttonLateOceanTheme.white.hoverBackgroundColor,\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const listItemLateOceanTheme = {\n padding: '12px 16px',\n borderColor: colorsLateOceanTheme.separator,\n borderWidth: '1px',\n innerMargin: '8px',\n};\n","export const shadowsLateOceanTheme = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.lateOcean,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.black1000,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: colorsLateOceanTheme.danger,\n },\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\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: colorsLateOceanTheme.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nconst calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeBreakpointRangeConfig {\n fontSize: string;\n lineHeight: string;\n}\n\nexport interface TypographyTypeConfig {\n baseAndSmall: TypographyTypeBreakpointRangeConfig;\n mediumAndWide: TypographyTypeBreakpointRangeConfig;\n}\n\nconst createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: `${baseAndSmallFontSize}px`,\n lineHeight: `${calcLineHeight(lineHeightMultiplier, baseAndSmallFontSize)}px`,\n },\n mediumAndWide: {\n fontSize: `${mediumAndWideFontSize}px`,\n lineHeight: `${calcLineHeight(lineHeightMultiplier, baseAndSmallFontSize)}px`,\n },\n});\n\nexport const typographyLateOceanTheme = {\n colors: {\n black: lateOceanColorPalette.black1000,\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 { avatarLateOceanTheme } from './late-ocean/avatarLateOceanTheme';\nimport { buttonLateOceanTheme } from './late-ocean/buttonLateOceanTheme';\nimport { cardLateOceanTheme } from './late-ocean/cardLateOceanTheme';\nimport { colorsLateOceanTheme } from './late-ocean/colorsLateOceanTheme';\nimport { feedbackMessageLateOceanTheme } from './late-ocean/feedbackMessageLateOceanTheme';\nimport { formsLateOceanTheme } from './late-ocean/formLateOceanTheme';\nimport { fullScreenModalLateOceanTheme } from './late-ocean/fullScreenModalLateOceanTheme';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItemLateOceanTheme } from './late-ocean/listItemLateOceanTheme';\nimport { shadowsLateOceanTheme } from './late-ocean/shadowsLateOceanTheme';\nimport { tagLateOceanTheme } from './late-ocean/tagLateOceanTheme';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typographyLateOceanTheme } from './late-ocean/typographyLateOceanTheme';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nexport const 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 co lor usage definition from proper theme definition and add t ypings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors: colorsLateOceanTheme,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar: avatarLateOceanTheme,\n button: buttonLateOceanTheme,\n card: cardLateOceanTheme,\n feedbackMessage: feedbackMessageLateOceanTheme,\n forms: formsLateOceanTheme,\n typography: typographyLateOceanTheme,\n tag: tagLateOceanTheme,\n shadows: shadowsLateOceanTheme,\n fullScreenModal: fullScreenModalLateOceanTheme,\n iconButton,\n listItem: listItemLateOceanTheme,\n tooltip,\n};\n\nexport type Theme = typeof theme;\n","import type { Event } 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: Event, 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 { InputTextState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\ntype TimePickerState = InputTextState;\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: TimePickerState;\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 { Event } 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/InputText/InputText';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\nconst Container = styled.Pressable`\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: Event, 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 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';\nimport Arrow from './arrow.inline.svg';\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 <Arrow 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 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 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 if (__DEV__) {\n if (!fontSize.endsWith('px')) throw new Error(`Unexpected font-size value: ${fontSize}`);\n }\n\n return <StyledTypographyEmoji size={parseInt(fontSize.slice(0, -2), 10)} 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","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 { breakpoints, 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 breakpoints: typeof breakpoints;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions), breakpoints };\n }, [dimensions]);\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}</>;\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","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","height","Avatar","rest","StyledPressable","Pressable","$isStretch","StyledAnimatedView","button","borderRadius","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","padding","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","handleOnPress","WebBrowser","err","console","error","Linking","openURL","getColorFromState","state","InputFeedback","FieldContainer","FeedbackContainer","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","useState","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","formState","keyboardTypeByTextInputType","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","id","internalForceState","onFocus","onBlur","placeholderColor","selectionColor","e","passwordButtonIconColor","Label","htmlFor","OuterRadio","radio","unchecked","SelectedOuterRadio","checked","SelectedInnerRadio","innerBackgroundColor","innerSize","Radio","onChange","handlePress","TextArea","textAreaMinHeight","Body","uiBackgroundLight","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","Header","insetTop","paddingTop","fullScreenModal","header","paddingVertical","paddingHorizontal","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","Math","max","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","right","left","useSafeAreaInsets","top","dimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","iconButton","transition","property","timingFunction","PressableIconButton","AnimatedIconButtonBackground","white","AnimatedViewContainer","PressableAnimatedContainer","opacityStyles","opacity","IconButtonContentBorder","IconButtonContent","IconButton","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","Message","onDismiss","OverlayPressable","StyleSheet","absoluteFillObject","overlay","dark","Overlay","BodyView","ModalBody","FooterView","separator","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","palettes","lateOcean","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","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","title","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","tag","getLabelColor","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","avatarLateOceanTheme","colorsLateOceanTheme","primary","primaryLight","accent","accentLight","success","correct","danger","hover","black","fullscreenLoader","buttonLateOceanTheme","focus","hoverBackgroundColor","focusBorderColor","subtle","hoverColor","activeColor","cardLateOceanTheme","secondary","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","tagLateOceanTheme","fill","outline","tooltip","horizontalPadding","verticalPadding","floatingPadding","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","typographyLateOceanTheme","bold","header1","header2","header3","header4","header5","link","disabledColor","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","shadows","Title","ModalDateTimePicker","validateButtonLabel","currentValue","setCurrentValue","handleClose","_event","date","prev","handleSubmit","timePickerPlaceholder","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","now","Date","getFullYear","getMonth","getDay","defaultDate","dateTimePickerValue","displayedValue","Intl","DateTimeFormat","minute","hour","format","timePickerState","handleInputPress","handleTimeChange","handleModalClose","TimePicker","forceDefaultValue","Arrow","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","TooltipContainer","Tooltip","defaultVisible","onUpdate","useFloating","placement","middleware","offset","shift","flip","x","y","reference","floating","update","refs","middlewareData","strategy","bottom","StyledTypographyEmoji","TypographyEmoji","typeConfig","endsWith","parseInt","slice","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser-all.es.android.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/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputText/useInputText.ts","../src/forms/InputText/InputText.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/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/Message/Message.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.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/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/avatarLateOceanTheme.ts","../src/themes/late-ocean/colorsLateOceanTheme.ts","../src/themes/late-ocean/buttonLateOceanTheme.ts","../src/themes/late-ocean/cardLateOceanTheme.ts","../src/themes/late-ocean/feedbackMessageLateOceanTheme.ts","../src/themes/late-ocean/inputFieldLateOceanTheme.ts","../src/themes/late-ocean/inputLateOceanTheme.ts","../src/themes/late-ocean/radioLateOceanTheme.ts","../src/themes/late-ocean/formLateOceanTheme.ts","../src/themes/late-ocean/fullScreenModalLateOceanTheme.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItemLateOceanTheme.ts","../src/themes/late-ocean/shadowsLateOceanTheme.ts","../src/themes/late-ocean/skeletonTheme.ts","../src/themes/late-ocean/tagLateOceanTheme.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/late-ocean/typographyLateOceanTheme.ts","../src/themes/default.ts","../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/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.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/typographyLateOceanTheme';\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-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 };\n line-height: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight\n };\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 { Typography } from '../typography/Typography';\n\nconst getFirstCharacter = (string: string): string => (string ? string[0] : '');\n\nconst getInitials = (firstname: string, lastname: string): string =>\n (getFirstCharacter(firstname) + getFirstCharacter(lastname)).toUpperCase();\n\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n firstname?: string | null;\n lastname?: string | null;\n round?: boolean;\n light?: boolean;\n}\n\nexport interface StyledAvatarViewProps extends Pick<AvatarProps, 'round' | 'light'> {\n size: number;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ round, size }) => (round ? size / 2 : 10)}px;\n background-color: ${({ theme, light }) =>\n light ? 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\nfunction AvatarContent({ size = 40, src, firstname, lastname, light }: AvatarProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base=\"body-small\" variant=\"bold\" color={light ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={light ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport function Avatar({ size = 40, ...rest }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView {...rest} size={size}>\n <AvatarContent {...rest} size={size} />\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};\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};\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : theme.kitt.button.maxWidth)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\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} solid ${disabled.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\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?: () => void;\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.card.padding};\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius};\n border-width: ${({ theme }) => theme.kitt.card.borderWidth};\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","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../InputFormState';\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 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 { useState } from 'react';\n\nexport const useInputText = (): {\n isFocused: boolean;\n handleInputFocus: () => void;\n handleInputBlur: () => void;\n isPasswordVisible: boolean;\n togglePasswordVisibility: () => void;\n} => {\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState<boolean>(false);\n\n const handleInputFocus = (): void => setIsFocused(true);\n const handleInputBlur = (): void => setIsFocused(false);\n\n const togglePasswordVisibility = (): void => setIsPasswordVisible((isVisible) => !isVisible);\n\n return { isFocused, handleInputFocus, handleInputBlur, togglePasswordVisibility, isPasswordVisible };\n};\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { KeyboardTypeOptions, TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport type { InputFormState } from '../InputFormState';\nimport { useInputText } from './useInputText';\n\ntype InputTextType = 'text' | 'email' | 'password' | 'username';\nexport type InputTextState = 'default' | 'invalid' | 'disabled' | 'hover' | 'focus';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n type: InputTextType;\n minHeight?: number;\n state?: InputFormState;\n /** @internal */\n internalForceState?: InputTextState;\n}\n\nexport interface TextInputMixinProps {\n state: InputTextState;\n}\ninterface InputProps extends TextInputMixinProps {\n minHeight: number;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n /* stylelint-disable declaration-property-value-allowed-list */\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 border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth};\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius};\n border-color: ${({ theme, state }) => theme.kitt.forms.input.states[state].borderColor};\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize;\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\nconst Input = styled(TextInput)<InputProps>`\n /* stylelint-disable declaration-bang-space-before */\n /* stylelint-disable comment-word-disallowed-list */\n\n /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) =>\n !multiline && Platform.OS === 'ios' ? theme.kitt.forms.input.paddingSingleLineIOS : theme.kitt.forms.input.padding};\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;\n }};\n min-height: ${({ minHeight }) => minHeight}px;\n`;\n\nconst Container = styled.View`\n margin-top: ${({ theme }) => theme.kitt.forms.input.marginTop};\n margin-bottom: ${({ theme }) => theme.kitt.forms.input.marginBottom};\n`;\n\nconst PasswordButtonContainer = styled.Pressable`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.forms.input.passwordButtonIconSize / 2}px;\n`;\n\nconst getInputState = ({\n isDisabled,\n isFocused,\n formState,\n}: {\n isFocused: boolean;\n formState: InputFormState;\n isDisabled: boolean;\n}): InputTextState => {\n if (isDisabled) return 'disabled';\n if (isFocused) return 'focus';\n if (formState === 'invalid') return 'invalid';\n return 'default';\n};\n\nconst keyboardTypeByTextInputType: Record<InputTextType, KeyboardTypeOptions> = {\n text: 'default',\n email: 'email-address',\n password: 'default',\n username: 'default',\n};\n\nconst autoCompleteTypeByType: Record<InputTextType, 'off' | 'email' | 'password' | 'name'> = {\n text: 'off',\n email: 'email',\n password: 'password',\n username: 'name',\n};\n\nconst autoCorrectByType: Record<InputTextType, boolean> = {\n text: true,\n email: false,\n password: false,\n username: false,\n};\n\nconst textContentTypeByType: Record<InputTextType, 'none' | 'emailAddress' | 'password' | 'username'> = {\n text: 'none',\n email: 'emailAddress',\n password: 'password',\n username: 'username',\n};\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n minHeight = 0,\n type,\n state: formState,\n internalForceState,\n disabled = false,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const { isFocused, handleInputBlur, handleInputFocus, isPasswordVisible, togglePasswordVisibility } =\n useInputText();\n const theme = useTheme();\n const state = internalForceState || getInputState({ isFocused, isDisabled: disabled, formState });\n return (\n <Container>\n <Input\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardTypeByTextInputType[type]}\n autoCompleteType={autoCompleteTypeByType[type]}\n autoCorrect={autoCorrectByType[type]}\n minHeight={minHeight}\n textContentType={textContentTypeByType[type]}\n placeholderTextColor={theme.kitt.typography.colors[theme.kitt.forms.input.placeholderColor]}\n selectionColor={theme.kitt.forms.input.selectionColor}\n secureTextEntry={type === 'password' && !isPasswordVisible}\n {...props}\n state={state}\n onFocus={(e) => {\n handleInputFocus();\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n handleInputBlur();\n if (onBlur) onBlur(e);\n }}\n />\n {type === 'password' && !disabled && (\n <PasswordButtonContainer accessibilityRole=\"button\" onPress={togglePasswordVisibility}>\n <TypographyIcon\n icon={isPasswordVisible ? <EyeIcon /> : <EyeOffIcon />}\n size={theme.kitt.forms.input.passwordButtonIconSize}\n color={theme.kitt.forms.input.states[state].passwordButtonIconColor}\n />\n </PasswordButtonContainer>\n )}\n </Container>\n );\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};\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 Omit<InputTextProps, 'type'> {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n return (\n <InputText\n multiline\n textAlignVertical=\"top\"\n {...props}\n type=\"text\"\n minHeight={theme.kitt.forms.input.textAreaMinHeight}\n />\n );\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 { 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 { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: 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 }) => theme.kitt.iconButton.scale.base.hover});\n }\n\n @media (${({ theme }) => theme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme }) => theme.kitt.iconButton.scale.medium.hover});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme }) => 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 }) => {\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, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'}>\n <StyledPressableIconButton {...props} />\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 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 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=\"button\"\n disabled={disabled}\n color={color}\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 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}\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({ icon, color, disabled, onPress }: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer color={color} disabled={disabled} onPress={onPress}>\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\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 : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? theme.kitt.listItem.innerMargin : 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 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}`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}`;\n }\n\n if (borders === 'both') {\n return `border-top-width: ${borderWidth}; border-bottom-width: ${borderWidth}`;\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, XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { TouchableOpacity } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\nconst xIconSize = 14;\nconst mainIconSize = 20;\n\nexport interface MessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n noRadius?: boolean;\n centeredText?: boolean;\n insets?: { top?: number };\n onDismiss?: () => void;\n}\n\ninterface ContainerProps {\n type: MessageType;\n noRadius: boolean;\n insets: MessageProps['insets'];\n}\n\nconst Container = styled.View<ContainerProps>`\n border-radius: ${({ theme, noRadius }) => (noRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, type }) => theme.kitt.feedbackMessage.backgroundColors[type]};\n padding-bottom: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-top: ${({ theme, insets }) => (insets?.top ?? 0) + theme.kitt.spacing * 4}px;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nconst CloseContainer = styled(TouchableOpacity)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nconst IconContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\ninterface ContentProps {\n type: MessageType;\n centeredText: boolean;\n}\n\nconst Content = styled.Text<ContentProps>`\n text-align: ${({ centeredText }) => (centeredText ? 'center' : 'left')};\n flex: 1;\n`;\n\nconst 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\nfunction getIconContent(type: MessageType): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon />;\n case 'success':\n return <CheckIcon />;\n case 'danger':\n return <AlertTriangleIcon />;\n default:\n return <InfoIcon />;\n }\n}\n\nexport function Message({\n type = 'info',\n children,\n noRadius = false,\n centeredText = false,\n onDismiss,\n insets,\n}: MessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <Container type={type} noRadius={noRadius} insets={insets}>\n {!centeredText ? (\n <IconContainer>\n <Icon size={mainIconSize} color={color} icon={getIconContent(type)} />\n </IconContainer>\n ) : null}\n <Content type={type} centeredText={centeredText}>\n <Typography.Text base=\"body-small\" color={color}>\n {children}\n </Typography.Text>\n </Content>\n {onDismiss ? (\n <CloseContainer onPress={onDismiss}>\n <Icon icon={<XIcon />} size={xIconSize} color={color} />\n </CloseContainer>\n ) : null}\n </Container>\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 { 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 { Button } from '../Button/Button';\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 <Button type=\"subtle-dark\" 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};\n background-color: ${({ theme }) => theme.kitt.palettes.lateOcean.white};\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 type { ReactElement, ReactNode } from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport type { MessageProps } from '../Message/Message';\nimport { Message } from '../Message/Message';\n\nexport interface NotificationProps {\n children: NonNullable<ReactNode>;\n type?: MessageProps['type'];\n centeredText?: MessageProps['centeredText'];\n onDelete?: MessageProps['onDismiss'];\n}\n\nexport function Notification({ type, children, centeredText, onDelete }: NotificationProps): ReactElement {\n const { top } = useSafeAreaInsets();\n return (\n <Message noRadius type={type} centeredText={centeredText} insets={{ top }} onDismiss={onDelete}>\n {children}\n </Message>\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\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 <View style={style} onLayout={({ nativeEvent }) => setWidth(nativeEvent.layout.width)}>\n <SkeletonContent isLoading={isLoading} width={width} />\n </View>\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 overflow: hidden;\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 overflow: hidden;\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 overflow: hidden;\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};\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};\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","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 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 avatarLateOceanTheme = {\n default: {\n color: lateOceanColorPalette.white,\n backgroundColor: lateOceanColorPalette.lateOcean,\n },\n light: {\n color: lateOceanColorPalette.black1000,\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colorsLateOceanTheme = {\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 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 { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport interface ButtonVariantTheme {\n // handled by typography ?\n // color: string;\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: string;\n borderWidth: {\n disabled: string;\n focus: string;\n };\n minHeight: string;\n minWidth: string;\n maxWidth: string;\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 buttonLateOceanTheme: ButtonTheme = {\n borderRadius: '30px',\n borderWidth: {\n disabled: '2px',\n focus: '3px',\n },\n minHeight: '40px',\n minWidth: '40px',\n maxWidth: '335px',\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: colorsLateOceanTheme.primary,\n pressedBackgroundColor: colorsLateOceanTheme.primaryLight,\n hoverBackgroundColor: colorsLateOceanTheme.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: colorsLateOceanTheme.transparent,\n pressedBackgroundColor: colorsLateOceanTheme.transparent,\n hoverBackgroundColor: colorsLateOceanTheme.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colorsLateOceanTheme.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n 'subtle-dark': {\n backgroundColor: colorsLateOceanTheme.transparent,\n pressedBackgroundColor: colorsLateOceanTheme.transparent,\n hoverBackgroundColor: colorsLateOceanTheme.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colorsLateOceanTheme.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n disabled: {\n backgroundColor: colorsLateOceanTheme.disabled,\n pressedBackgroundColor: colorsLateOceanTheme.disabled,\n hoverBackgroundColor: colorsLateOceanTheme.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const cardLateOceanTheme = {\n borderRadius: '20px',\n borderWidth: '2px',\n padding: '16px',\n primary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.lateOcean,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const feedbackMessageLateOceanTheme = {\n backgroundColors: {\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n warning: lateOceanColorPalette.goldCrayola,\n info: lateOceanColorPalette.aero,\n },\n};\n","export const inputFieldLateOceanTheme = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import type { InputTextState } from '../../forms/InputText/InputText';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport type { typographyLateOceanTheme } from './typographyLateOceanTheme';\n\nexport type TypographyColor = keyof typeof typographyLateOceanTheme.colors;\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: TypographyColor;\n passwordButtonIconColor: TypographyColor;\n}\n\nconst inputStatesStyle: Record<InputTextState, InputStateStyle> = {\n default: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n focus: {\n borderColor: lateOceanColorPalette.lateOcean,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n color: 'black-light',\n passwordButtonIconColor: 'black-light',\n },\n invalid: {\n borderColor: lateOceanColorPalette.englishVermillon,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n};\n\nexport const inputLateOceanTheme = {\n marginTop: '2px',\n marginBottom: '4px',\n borderWidth: '2px',\n borderRadius: '10px',\n passwordButtonIconSize: 20,\n padding: '7px 16px',\n paddingSingleLineIOS: '12px 16px',\n selectionColor: lateOceanColorPalette.lateOcean,\n placeholderColor: 'black-light' as const,\n textAreaMinHeight: 120,\n states: inputStatesStyle,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const radioLateOceanTheme = {\n size: 18,\n unchecked: {\n backgroundColor: lateOceanColorPalette.white,\n borderWidth: '2px',\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n innerSize: 5,\n innerBackgroundColor: lateOceanColorPalette.white,\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { inputFieldLateOceanTheme } from './inputFieldLateOceanTheme';\nimport { inputLateOceanTheme } from './inputLateOceanTheme';\nimport { radioLateOceanTheme } from './radioLateOceanTheme';\n\nexport const formsLateOceanTheme = {\n input: inputLateOceanTheme,\n radio: radioLateOceanTheme,\n inputField: inputFieldLateOceanTheme,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModalLateOceanTheme = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { buttonLateOceanTheme } from './buttonLateOceanTheme';\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: buttonLateOceanTheme.disabled.backgroundColor,\n borderColor: buttonLateOceanTheme.disabled.borderColor,\n },\n default: {\n pressedBackgroundColor: buttonLateOceanTheme.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: buttonLateOceanTheme.white.hoverBackgroundColor,\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const listItemLateOceanTheme = {\n padding: '12px 16px',\n borderColor: colorsLateOceanTheme.separator,\n borderWidth: '1px',\n innerMargin: '8px',\n};\n","export const shadowsLateOceanTheme = {\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 skeletonTheme: SkeletonTheme = {\n backgroundColor: lateOceanColorPalette.black100,\n flareColor: lateOceanColorPalette.black200,\n animationDuration: 1000,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.lateOcean,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.black1000,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: colorsLateOceanTheme.danger,\n },\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\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: colorsLateOceanTheme.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\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: string;\n lineHeight: string;\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}px`,\n lineHeight: `${calcLineHeight(baseAndSmallFontSize, lineHeightMultiplier)}px`,\n },\n mediumAndWide: {\n fontSize: `${mediumAndWideFontSize}px`,\n lineHeight: `${calcLineHeight(mediumAndWideFontSize, lineHeightMultiplier)}px`,\n },\n});\n\nexport const typographyLateOceanTheme = {\n colors: {\n black: lateOceanColorPalette.black1000,\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 { avatarLateOceanTheme } from './late-ocean/avatarLateOceanTheme';\nimport { buttonLateOceanTheme } from './late-ocean/buttonLateOceanTheme';\nimport { cardLateOceanTheme } from './late-ocean/cardLateOceanTheme';\nimport { colorsLateOceanTheme } from './late-ocean/colorsLateOceanTheme';\nimport { feedbackMessageLateOceanTheme } from './late-ocean/feedbackMessageLateOceanTheme';\nimport { formsLateOceanTheme } from './late-ocean/formLateOceanTheme';\nimport { fullScreenModalLateOceanTheme } from './late-ocean/fullScreenModalLateOceanTheme';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItemLateOceanTheme } from './late-ocean/listItemLateOceanTheme';\nimport { shadowsLateOceanTheme } from './late-ocean/shadowsLateOceanTheme';\nimport { skeletonTheme } from './late-ocean/skeletonTheme';\nimport { tagLateOceanTheme } from './late-ocean/tagLateOceanTheme';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typographyLateOceanTheme } from './late-ocean/typographyLateOceanTheme';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nexport const 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 co lor usage definition from proper theme definition and add t ypings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors: colorsLateOceanTheme,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar: avatarLateOceanTheme,\n button: buttonLateOceanTheme,\n card: cardLateOceanTheme,\n feedbackMessage: feedbackMessageLateOceanTheme,\n forms: formsLateOceanTheme,\n typography: typographyLateOceanTheme,\n tag: tagLateOceanTheme,\n shadows: shadowsLateOceanTheme,\n fullScreenModal: fullScreenModalLateOceanTheme,\n iconButton,\n listItem: listItemLateOceanTheme,\n tooltip,\n skeleton: skeletonTheme,\n};\n\nexport type Theme = typeof theme;\n","import type { Event } 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: Event, 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 { InputTextState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\ntype TimePickerState = InputTextState;\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: TimePickerState;\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 { Event } 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/InputText/InputText';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\nconst Container = styled.Pressable`\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: Event, 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 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';\nimport Arrow from './arrow.inline.svg';\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 <Arrow 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 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 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 if (__DEV__) {\n if (!fontSize.endsWith('px')) throw new Error(`Unexpected font-size value: ${fontSize}`);\n }\n\n return <StyledTypographyEmoji size={parseInt(fontSize.slice(0, -2), 10)} 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","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 { breakpoints, 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 breakpoints: typeof breakpoints;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions), breakpoints };\n }, [dimensions]);\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}</>;\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","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","height","Avatar","rest","StyledPressable","Pressable","$isStretch","StyledAnimatedView","button","borderRadius","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","padding","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","handleOnPress","WebBrowser","err","console","error","Linking","openURL","getColorFromState","state","InputFeedback","FieldContainer","FeedbackContainer","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","useState","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","formState","keyboardTypeByTextInputType","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","id","internalForceState","onFocus","onBlur","placeholderColor","selectionColor","e","passwordButtonIconColor","Label","htmlFor","OuterRadio","radio","unchecked","SelectedOuterRadio","checked","SelectedInnerRadio","innerBackgroundColor","innerSize","Radio","onChange","handlePress","TextArea","textAreaMinHeight","Body","uiBackgroundLight","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","Header","insetTop","paddingTop","fullScreenModal","header","paddingVertical","paddingHorizontal","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","Math","max","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","right","left","useSafeAreaInsets","top","dimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","iconButton","transition","property","timingFunction","PressableIconButton","AnimatedIconButtonBackground","white","AnimatedViewContainer","PressableAnimatedContainer","opacityStyles","opacity","IconButtonContentBorder","IconButtonContent","IconButton","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","Message","onDismiss","OverlayPressable","StyleSheet","absoluteFillObject","overlay","dark","Overlay","BodyView","ModalBody","FooterView","separator","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","palettes","lateOcean","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","skeleton","flareColor","AnimatedLinearGradient","createAnimatedComponent","LinearGradient","SkeletonContent","isLoading","sharedX","withRepeat","withTiming","animationDuration","inOut","ease","linearGradientStyle","translateX","x","y","absoluteFill","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","title","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","tag","getLabelColor","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","avatarLateOceanTheme","colorsLateOceanTheme","primary","primaryLight","accent","accentLight","success","correct","danger","hover","black","fullscreenLoader","buttonLateOceanTheme","focus","hoverBackgroundColor","focusBorderColor","subtle","hoverColor","activeColor","cardLateOceanTheme","secondary","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","skeletonTheme","tagLateOceanTheme","fill","outline","tooltip","horizontalPadding","verticalPadding","floatingPadding","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","typographyLateOceanTheme","bold","header1","header2","header3","header4","header5","link","disabledColor","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","shadows","Title","ModalDateTimePicker","validateButtonLabel","currentValue","setCurrentValue","handleClose","_event","date","prev","handleSubmit","timePickerPlaceholder","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","now","Date","getFullYear","getMonth","getDay","defaultDate","dateTimePickerValue","displayedValue","Intl","DateTimeFormat","minute","hour","format","timePickerState","handleInputPress","handleTimeChange","handleModalClose","TimePicker","forceDefaultValue","Arrow","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","endsWith","parseInt","slice","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","hex2rgba","hex","alpha","r","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
|