@ornikar/kitt-universal 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser-all.es.android.js","sources":["../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/ButtonContainer.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/Button/useButton.ts","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/KittBreakpoints.ts","../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/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/StoryTitle.tsx","../src/story-components/Section.tsx","../src/story-components/Story.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/buttonLateOceanTheme.ts","../src/themes/late-ocean/cardLateOceanTheme.ts","../src/themes/late-ocean/colorsLateOceanTheme.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/listItemLateOceanTheme.ts","../src/themes/late-ocean/shadowsLateOceanTheme.ts","../src/themes/late-ocean/tagLateOceanTheme.ts","../src/themes/late-ocean/typographyLateOceanTheme.ts","../src/themes/default.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyLink.tsx","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport React, { 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 React 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 = React.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","import type { FC, ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\n\ntype TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\ntype TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\ntype TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold' | 'italic';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'grey'\n | 'grey-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst TypographyTypeContext = createContext<TypographyType | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\ninterface StyledTypographyProps {\n isHeader: boolean;\n type?: TypographyType;\n variant: TypographyVariant;\n color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, isHeader, type, variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n\n return `\n /* type */\n ${\n !type\n ? ''\n : `\n font-family: ${isHeader ? headers.fontFamily[variant] : bodies.fontFamily[variant]};\n font-size: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.fontSize\n : bodies.configs[type as TypographyBodyType].baseAndSmall.fontSize\n };\n line-height: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.lineHeight\n : bodies.configs[type as TypographyBodyType].baseAndSmall.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 TypographyProps extends Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | null;\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n small?: TypographyType;\n medium?: TypographyType;\n large?: TypographyType;\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\nconst isTypeHeader = (type: TypographyType): boolean => type.startsWith('header');\nconst isTypographyHeader = (base: TypographyType | undefined, typeInContext: TypographyType | undefined): boolean => {\n if (base) return isTypeHeader(base);\n if (typeInContext) return isTypeHeader(typeInContext);\n\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function Typography({\n accessibilityRole,\n base,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const typeInContext = useContext(TypographyTypeContext);\n const isHeader = isTypographyHeader(base, typeInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n const colorWithDefaultToBlack: TypographyColor | undefined = color ?? (typeInContext ? undefined : 'black');\n\n const content = base ? (\n // use the type and pass the type to the context for children\n <TypographyTypeContext.Provider value={base}>\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n type={base}\n variant={nonNullableVariant}\n {...otherProps}\n />\n </TypographyTypeContext.Provider>\n ) : (\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n variant={nonNullableVariant}\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 // @ts-expect-error paragraph is not allowed in react-native but exists in react-native-web\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (level: string): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" {...props} aria-level={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.h1 = createHeading('1');\nTypography.h2 = createHeading('2');\nTypography.h3 = createHeading('3');\nTypography.h4 = createHeading('4');\nTypography.h5 = createHeading('5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React 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 styled from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\ninterface ButtonContainerProps {\n type: ButtonType;\n isPressed?: boolean;\n disabled?: boolean;\n stretch?: boolean;\n}\n\nexport const ButtonContainer = styled.Pressable<ButtonContainerProps>`\n min-width: ${({ theme }) => theme.kitt.button.minWidth};\n max-width: ${({ theme, stretch }) => (stretch ? 'auto' : theme.kitt.button.maxWidth)};\n width: ${({ stretch }) => (stretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight};\n background-color: ${({ theme, isPressed, disabled, type }) => {\n if (disabled) {\n return theme.kitt.button[type].disabledBackgroundColor;\n }\n\n return isPressed ? theme.kitt.button[type].pressedBackgroundColor : theme.kitt.button[type].backgroundColor;\n }};\n padding: ${({ theme }) => theme.kitt.button.contentPadding.default};\n flex-direction: row;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\n border-color: ${({ theme, disabled, type }) =>\n disabled ? theme.kitt.button[type].disabledBorderColor : 'transparent'};\n border-width: ${({ theme }) => theme.kitt.button.borderWidth};\n`;\n","import type { ReactElement } from 'react';\nimport React 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'];\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n const theme = useTheme();\n return <Icon {...props} color={theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconSpecifiedColor({\n color,\n ...otherProps\n}: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...otherProps} color={theme.kitt.typography.colors[color]} />;\n}\n\nexport function TypographyIcon({ color, ...otherProps }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...otherProps} />;\n }\n\n return <TypographyIconInheritColor {...otherProps} />;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType } from './Button';\n\nconst getTextColorByType = (type: ButtonType, isPressed: boolean, disabled: boolean): TypographyColor => {\n if (disabled) return 'black-light';\n switch (type) {\n case 'primary':\n return 'white';\n case 'subtle':\n return isPressed ? 'primary-light' : 'primary';\n case 'subtle-dark':\n return isPressed ? 'black-light' : 'black';\n case 'secondary':\n default:\n return 'black';\n }\n};\n\nconst ButtonText = styled(Typography.Text)`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n`;\n\ninterface ContentProps {\n stretch?: boolean;\n iconOnly?: boolean;\n}\n\nconst Content = styled.View<ContentProps>`\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /*\n On native code flex grow does not work as expected which cause an issue with the flex props.\n In order to occupy only the needed space, we enable flex grow only when stretched\n */\n flex: ${({ stretch, iconOnly }) => `${stretch || iconOnly ? 1 : 0} 1 auto`};\n`;\n\ninterface IconContainerProps {\n iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n ${({ theme, iconPosition }) => {\n const value = theme.kitt.spacing * 3;\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 color: TypographyColor;\n size: number;\n iconPosition: ButtonContentProps['iconPosition'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, spin, color, size, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <IconContainer iconPosition={iconPosition}>\n <TypographyIcon icon={icon} spin={spin} color={color} size={size} testID={testID} />\n </IconContainer>\n );\n}\n\ninterface ButtonContentProps extends Exclude<ButtonProps, 'onPress'> {\n isPressed?: boolean;\n type: NonNullable<ButtonType>;\n}\n\nexport function ButtonContent({\n type,\n isPressed,\n stretch,\n icon,\n iconPosition,\n iconSpin,\n disabled,\n children,\n}: ButtonContentProps): ReactElement | null {\n const color = getTextColorByType(type, Boolean(isPressed), Boolean(disabled));\n const theme = useTheme();\n\n const sharedIconProps = {\n spin: iconSpin,\n color,\n size: theme.kitt.button.iconSize,\n };\n\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 if (!children) {\n return (\n <Content iconOnly stretch={stretch}>\n {/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */}\n <TypographyIcon {...sharedIconProps} icon={icon!} />\n </Content>\n );\n }\n\n return (\n <Content stretch={stretch}>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} testID=\"button-left-icon\" />\n ) : null}\n\n <ButtonText base=\"body\" color={color} variant=\"bold\">\n {children}\n </ButtonText>\n\n {icon && iconPosition === 'right' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} />\n ) : null}\n </Content>\n );\n}\n","import { useState } from 'react';\n\nexport const useButton = (): {\n isPressed: boolean;\n handleButtonPressIn: () => void;\n handleButtonPressOut: () => void;\n} => {\n const [isPressed, setIsPressed] = useState<boolean>(false);\n\n const handleButtonPressIn = (): void => setIsPressed(true);\n const handleButtonPressOut = (): void => setIsPressed(false);\n\n return { isPressed, handleButtonPressIn, handleButtonPressOut };\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { ButtonContainer } from './ButtonContainer';\nimport { ButtonContent } from './ButtonContent';\nimport { useButton } from './useButton';\n\nexport type ButtonType = 'primary' | 'secondary' | 'subtle' | 'subtle-dark';\n\ntype IconPosition = 'right' | 'left';\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n disabled?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n iconSpin?: boolean;\n stretch?: boolean;\n testID?: string;\n onPress?: () => void;\n}\n\nexport function Button({\n children,\n type = 'secondary',\n icon,\n iconPosition = 'left',\n iconSpin,\n stretch,\n disabled,\n onPress,\n testID,\n}: ButtonProps): ReactElement {\n const { isPressed, handleButtonPressIn, handleButtonPressOut } = useButton();\n\n const sharedProps = {\n type,\n stretch,\n disabled,\n };\n\n return (\n <ButtonContainer\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: When designs are defined, update with the proper onPress styles to mimic TouchableHighlight\n // underlayColor={globalTheme.button[type].pressedBackgroundColor}\n {...sharedProps}\n isPressed={isPressed}\n accessibilityRole=\"button\"\n testID={testID}\n onPress={onPress}\n onPressIn={handleButtonPressIn}\n onPressOut={handleButtonPressOut}\n >\n <ButtonContent {...sharedProps} icon={icon} iconPosition={iconPosition} iconSpin={iconSpin}>\n {children}\n </ButtonContent>\n </ButtonContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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, ReactNode } from 'react';\nimport React 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 'grey';\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","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 React from 'react';\nimport 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 React, { forwardRef } from 'react';\nimport type { KeyboardTypeOptions, TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components/native';\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 }) => theme.kitt.typography.types.bodies.configs.body.baseAndSmall.fontSize};\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 !multiline && Platform.OS === 'ios' ? 0 : theme.kitt.typography.types.bodies.configs.body.baseAndSmall.lineHeight};\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 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 React 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 React 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 accessible={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 React 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 React 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 React, { 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 React from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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 React 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 React from 'react';\nimport type { PressableProps } 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 PressableProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\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({ children, withPadding, borders, left, right, ...rest }: ListItemProps): ReactElement {\n return (\n <Pressable {...rest}>\n <ContainerView withPadding={withPadding} borders={borders}>\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 </Pressable>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport React 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?: TypographyIconProps['color'];\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 React 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 React from 'react';\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 React from 'react';\nimport type { GestureResponderEvent } from 'react-native';\nimport { StyleSheet, View } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps {\n onPress?: (event: GestureResponderEvent) => void;\n}\n\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 onPress={onPress}>\n <View />\n </OverlayPressable>\n );\n}\n","import type { ReactNode } from 'react';\nimport React, { forwardRef } 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 const ModalBody = forwardRef<ScrollView, BodyProps>(({ children }, ref) => {\n return (\n <ScrollView ref={ref}>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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 React, { 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 React 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 React 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 { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\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.h1 variant=\"bold\" base=\"header1\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.h2 variant=\"bold\" base=\"header2\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h3 variant=\"bold\" base=\"header3\" medium=\"header4\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h4 variant=\"bold\" base=\"header4\" medium=\"header5\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h4>\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 React from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nconst StyledSection = styled.View`\n margin-bottom: 30px;\n`;\n\ninterface SectionProps extends ViewProps {\n title: string;\n className?: string;\n children: ReactNode;\n}\n\nexport function Section({ title, className, children, ...props }: SectionProps): ReactElement {\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: 20px;\n`;\n\nfunction SubSection({ title, className, children, ...props }: SectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\ninterface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 90px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <Section title=\"Demo\">{children}</Section>\n </StyledDemoSection>\n );\n}\n\nSection.SubSection = SubSection;\nSection.DemoSection = DemoSection;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: 10px;\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 { StoryContext, StoryFn } from '@storybook/addons';\nimport type { ReactNode } from 'react';\nimport React from 'react';\nimport { Story } from './Story';\n\nexport function StoryDecorator(storyFn: StoryFn<ReactNode>, context: StoryContext): ReturnType<StoryFn<ReactNode>> {\n return <Story title={context.name}>{storyFn()}</Story>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { 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: 10px 0 20px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -5px 20px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 5px 10px;\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 {React.Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {React.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}\n\nfunction StoryGridCol({ title, titleColor, children }: StoryGridColProps): ReactElement {\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 React from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\n\ntype TagType = 'primary' | 'default' | 'danger';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n}\ninterface ContainerProps {\n type: TagType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.tag[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius};\n align-self: flex-start;\n`;\n\nexport function Tag({ label, type = 'default' }: TagProps): ReactElement {\n return (\n <Container type={type}>\n <Typography.Text base=\"body-xsmall\" color={type === 'primary' ? 'primary-light' : undefined}>\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","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 buttonLateOceanTheme = {\n borderRadius: '30px',\n borderWidth: '2px',\n minHeight: '42px',\n minWidth: '40px',\n maxWidth: '335px',\n iconSize: 18,\n contentPadding: {\n default: '8px 16px',\n },\n primary: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.lateOceanLight1,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.black50,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.black100,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\n },\n 'subtle-dark': {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\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 colorsLateOceanTheme = {\n primary: lateOceanColorPalette.lateOcean,\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 uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\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';\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 { 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 const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: validate Moon shadow color with design team\n backgroundColor: '#EDEBFC',\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n },\n danger: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n },\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 TypographyTypeConfig {\n baseAndSmall: {\n fontSize: string;\n lineHeight: string;\n };\n mediumAndWide: {\n fontSize: string;\n lineHeight: string;\n };\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 grey: lateOceanColorPalette.black555,\n 'grey-light': lateOceanColorPalette.black200,\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 italic: 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 italic: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Italic',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n italic: 400,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n italic: 'italic',\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};\n","import type { WindowSizeHelper } from '../utils/windowSize/createWindowSizeHelper';\nimport { 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 { listItemLateOceanTheme } from './late-ocean/listItemLateOceanTheme';\nimport { shadowsLateOceanTheme } from './late-ocean/shadowsLateOceanTheme';\nimport { tagLateOceanTheme } from './late-ocean/tagLateOceanTheme';\nimport { typographyLateOceanTheme } from './late-ocean/typographyLateOceanTheme';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\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 listItem: listItemLateOceanTheme,\n};\n\nexport type KittTheme = {\n kitt: typeof theme;\n responsive: WindowSizeHelper;\n} & Record<string, unknown>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { View } from 'react-native';\n\nexport type TooltipPosition = 'bottom' | 'top' | 'left' | 'right';\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n defaultVisible?: boolean;\n fullWidth?: boolean;\n position: TooltipPosition;\n}\n\nexport function Tooltip({ children }: TooltipProps): ReactElement {\n return <View>{children}</View>;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { SetRequired } from 'type-fest';\nimport type { TypographyProps, TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface StyledTypographyLinkProps extends TypographyPropsWithoutRole {\n disabled?: boolean;\n noUnderline?: boolean;\n}\n\nconst StyledLink = styled(Typography).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['disabled', 'noUnderline'].includes(prop),\n})<TypographyLinkProps & TypographyProps>`\n text-decoration: ${({ noUnderline }) => (noUnderline ? 'none' : 'underline')};\n ${({ disabled }) =>\n Platform.OS === 'web'\n ? `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${disabled ? 'not-allowed' : 'pointer'};\n `\n : null};\n margin: 0;\n`;\n\nexport interface TypographyLinkProps extends SetRequired<StyledTypographyLinkProps, 'onPress'> {\n href?: string;\n}\n\nexport function TypographyLink({\n disabled,\n noUnderline,\n variant = 'bold',\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <StyledLink\n disabled={disabled}\n noUnderline={noUnderline}\n variant={variant}\n accessibilityRole=\"link\"\n {...otherProps}\n />\n );\n}\n","import { useWindowDimensions } from 'react-native';\n\nexport interface MatchWindowSizeOptions {\n minWidth: number;\n maxWidth?: number;\n}\nexport function matchWindowSize(currentWidth: number, { minWidth, maxWidth }: MatchWindowSizeOptions): boolean {\n return currentWidth >= minWidth && (!maxWidth || currentWidth <= maxWidth);\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width } = useWindowDimensions();\n return matchWindowSize(width, options);\n}\n","import 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 | null>(options: MatchWindowSizeOptions, valueIfTrue: T, valueIfFalse: T) => T;\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 function createWindowSizeHelper(currentWidth: number): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(currentWidth, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(currentWidth, 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]) =>\n matchWindowSize(currentWidth, { minWidth: Number(minWidth) }),\n );\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { KittTheme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport function useKittTheme(): KittTheme {\n const { width } = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(width) };\n }, [width]);\n}\n","import React from 'react';\nimport 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","transform","rotate","IconContainer","styled","View","color","size","align","Icon","icon","spin","clonedIcon","React","cloneElement","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","Text","theme","isHeader","type","variant","kitt","typography","types","headers","bodies","fontFamily","configs","baseAndSmall","fontSize","lineHeight","fontWeight","fontStyle","colors","isTypeHeader","startsWith","isTypographyHeader","base","typeInContext","Error","Typography","accessibilityRole","otherProps","nonNullableVariant","colorWithDefaultToBlack","content","TypographyText","props","TypographyParagraph","createHeading","level","TypographyHeading","displayName","Paragraph","h1","h2","h3","h4","h5","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","width","height","Avatar","rest","ButtonContainer","Pressable","button","minWidth","stretch","maxWidth","minHeight","isPressed","disabled","disabledBackgroundColor","pressedBackgroundColor","contentPadding","borderRadius","disabledBorderColor","borderWidth","TypographyIconInheritColor","useTheme","TypographyIconSpecifiedColor","TypographyIcon","getTextColorByType","ButtonText","Content","iconOnly","iconPosition","value","spacing","ButtonIcon","testID","ButtonContent","iconSpin","Boolean","sharedIconProps","iconSize","__DEV__","useButton","useState","setIsPressed","handleButtonPressIn","handleButtonPressOut","Button","onPress","sharedProps","Container","card","padding","borderColor","Card","getColorFromState","state","InputFeedback","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","FieldContainer","FeedbackContainer","responsive","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","Platform","OS","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","isDisabled","formState","keyboardTypeByTextInputType","text","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","forwardRef","ref","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","useWindowDimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","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","white","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StyledSection","Section","title","className","StyledSubSection","SubSection","StyledDemoSection","DemoSection","StoryContainer","ScrollView","Story","contentContainerStyle","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","tag","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","cardLateOceanTheme","colorsLateOceanTheme","accent","accentLight","success","correct","danger","hover","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","medium","tagLateOceanTheme","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","grey","bold","italic","header1","header2","header3","header4","header5","shadows","Tooltip","StyledLink","withConfig","shouldForwardProp","prop","includes","noUnderline","TypographyLink","matchWindowSize","currentWidth","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","useMemo","kittTheme","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/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/ButtonContainer.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/Button/useButton.ts","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/KittBreakpoints.ts","../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/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/StoryTitle.tsx","../src/story-components/Section.tsx","../src/story-components/Story.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/buttonLateOceanTheme.ts","../src/themes/late-ocean/cardLateOceanTheme.ts","../src/themes/late-ocean/colorsLateOceanTheme.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/listItemLateOceanTheme.ts","../src/themes/late-ocean/shadowsLateOceanTheme.ts","../src/themes/late-ocean/tagLateOceanTheme.ts","../src/themes/late-ocean/typographyLateOceanTheme.ts","../src/themes/default.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyLink.tsx","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport React, { 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 React 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 = React.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","import type { FC, ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\n\ntype TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\ntype TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\ntype TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold' | 'italic';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'grey'\n | 'grey-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst TypographyTypeContext = createContext<TypographyType | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\ninterface StyledTypographyProps {\n isHeader: boolean;\n type?: TypographyType;\n variant: TypographyVariant;\n color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, isHeader, type, variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n\n return `\n /* type */\n ${\n !type\n ? ''\n : `\n font-family: ${isHeader ? headers.fontFamily[variant] : bodies.fontFamily[variant]};\n font-size: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.fontSize\n : bodies.configs[type as TypographyBodyType].baseAndSmall.fontSize\n };\n line-height: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.lineHeight\n : bodies.configs[type as TypographyBodyType].baseAndSmall.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 TypographyProps extends Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | null;\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n small?: TypographyType;\n medium?: TypographyType;\n large?: TypographyType;\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\nconst isTypeHeader = (type: TypographyType): boolean => type.startsWith('header');\nconst isTypographyHeader = (base: TypographyType | undefined, typeInContext: TypographyType | undefined): boolean => {\n if (base) return isTypeHeader(base);\n if (typeInContext) return isTypeHeader(typeInContext);\n\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function Typography({\n accessibilityRole,\n base,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const typeInContext = useContext(TypographyTypeContext);\n const isHeader = isTypographyHeader(base, typeInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n const colorWithDefaultToBlack: TypographyColor | undefined = color ?? (typeInContext ? undefined : 'black');\n\n const content = base ? (\n // use the type and pass the type to the context for children\n <TypographyTypeContext.Provider value={base}>\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n type={base}\n variant={nonNullableVariant}\n {...otherProps}\n />\n </TypographyTypeContext.Provider>\n ) : (\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n variant={nonNullableVariant}\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 // @ts-expect-error paragraph is not allowed in react-native but exists in react-native-web\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (level: string): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" {...props} aria-level={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.h1 = createHeading('1');\nTypography.h2 = createHeading('2');\nTypography.h3 = createHeading('3');\nTypography.h4 = createHeading('4');\nTypography.h5 = createHeading('5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React 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 styled from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\ninterface ButtonContainerProps {\n type: ButtonType;\n isPressed?: boolean;\n disabled?: boolean;\n stretch?: boolean;\n}\n\nexport const ButtonContainer = styled.Pressable<ButtonContainerProps>`\n min-width: ${({ theme }) => theme.kitt.button.minWidth};\n max-width: ${({ theme, stretch }) => (stretch ? 'auto' : theme.kitt.button.maxWidth)};\n width: ${({ stretch }) => (stretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight};\n background-color: ${({ theme, isPressed, disabled, type }) => {\n if (disabled) {\n return theme.kitt.button[type].disabledBackgroundColor;\n }\n\n return isPressed ? theme.kitt.button[type].pressedBackgroundColor : theme.kitt.button[type].backgroundColor;\n }};\n padding: ${({ theme }) => theme.kitt.button.contentPadding.default};\n flex-direction: row;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\n border-color: ${({ theme, disabled, type }) =>\n disabled ? theme.kitt.button[type].disabledBorderColor : 'transparent'};\n border-width: ${({ theme }) => theme.kitt.button.borderWidth};\n`;\n","import type { ReactElement } from 'react';\nimport React 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'];\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n const theme = useTheme();\n return <Icon {...props} color={theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconSpecifiedColor({\n color,\n ...otherProps\n}: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...otherProps} color={theme.kitt.typography.colors[color]} />;\n}\n\nexport function TypographyIcon({ color, ...otherProps }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...otherProps} />;\n }\n\n return <TypographyIconInheritColor {...otherProps} />;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType } from './Button';\n\nconst getTextColorByType = (type: ButtonType, isPressed: boolean, disabled: boolean): TypographyColor => {\n if (disabled) return 'black-light';\n switch (type) {\n case 'primary':\n return 'white';\n case 'subtle':\n return isPressed ? 'primary-light' : 'primary';\n case 'subtle-dark':\n return isPressed ? 'black-light' : 'black';\n case 'secondary':\n default:\n return 'black';\n }\n};\n\nconst ButtonText = styled(Typography.Text)`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n`;\n\ninterface ContentProps {\n stretch?: boolean;\n iconOnly?: boolean;\n}\n\nconst Content = styled.View<ContentProps>`\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /*\n On native code flex grow does not work as expected which cause an issue with the flex props.\n In order to occupy only the needed space, we enable flex grow only when stretched\n */\n flex: ${({ stretch, iconOnly }) => `${stretch || iconOnly ? 1 : 0} 1 auto`};\n`;\n\ninterface IconContainerProps {\n iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n ${({ theme, iconPosition }) => {\n const value = theme.kitt.spacing * 3;\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 color: TypographyColor;\n size: number;\n iconPosition: ButtonContentProps['iconPosition'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, spin, color, size, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <IconContainer iconPosition={iconPosition}>\n <TypographyIcon icon={icon} spin={spin} color={color} size={size} testID={testID} />\n </IconContainer>\n );\n}\n\ninterface ButtonContentProps extends Exclude<ButtonProps, 'onPress'> {\n isPressed?: boolean;\n type: NonNullable<ButtonType>;\n}\n\nexport function ButtonContent({\n type,\n isPressed,\n stretch,\n icon,\n iconPosition,\n iconSpin,\n disabled,\n children,\n}: ButtonContentProps): ReactElement | null {\n const color = getTextColorByType(type, Boolean(isPressed), Boolean(disabled));\n const theme = useTheme();\n\n const sharedIconProps = {\n spin: iconSpin,\n color,\n size: theme.kitt.button.iconSize,\n };\n\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 if (!children) {\n return (\n <Content iconOnly stretch={stretch}>\n {/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */}\n <TypographyIcon {...sharedIconProps} icon={icon!} />\n </Content>\n );\n }\n\n return (\n <Content stretch={stretch}>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} testID=\"button-left-icon\" />\n ) : null}\n\n <ButtonText base=\"body\" color={color} variant=\"bold\">\n {children}\n </ButtonText>\n\n {icon && iconPosition === 'right' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} />\n ) : null}\n </Content>\n );\n}\n","import { useState } from 'react';\n\nexport const useButton = (): {\n isPressed: boolean;\n handleButtonPressIn: () => void;\n handleButtonPressOut: () => void;\n} => {\n const [isPressed, setIsPressed] = useState<boolean>(false);\n\n const handleButtonPressIn = (): void => setIsPressed(true);\n const handleButtonPressOut = (): void => setIsPressed(false);\n\n return { isPressed, handleButtonPressIn, handleButtonPressOut };\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { ButtonContainer } from './ButtonContainer';\nimport { ButtonContent } from './ButtonContent';\nimport { useButton } from './useButton';\n\nexport type ButtonType = 'primary' | 'secondary' | 'subtle' | 'subtle-dark';\n\ntype IconPosition = 'right' | 'left';\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n disabled?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n iconSpin?: boolean;\n stretch?: boolean;\n testID?: string;\n onPress?: () => void;\n}\n\nexport function Button({\n children,\n type = 'secondary',\n icon,\n iconPosition = 'left',\n iconSpin,\n stretch,\n disabled,\n onPress,\n testID,\n}: ButtonProps): ReactElement {\n const { isPressed, handleButtonPressIn, handleButtonPressOut } = useButton();\n\n const sharedProps = {\n type,\n stretch,\n disabled,\n };\n\n return (\n <ButtonContainer\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: When designs are defined, update with the proper onPress styles to mimic TouchableHighlight\n // underlayColor={globalTheme.button[type].pressedBackgroundColor}\n {...sharedProps}\n isPressed={isPressed}\n accessibilityRole=\"button\"\n testID={testID}\n onPress={onPress}\n onPressIn={handleButtonPressIn}\n onPressOut={handleButtonPressOut}\n >\n <ButtonContent {...sharedProps} icon={icon} iconPosition={iconPosition} iconSpin={iconSpin}>\n {children}\n </ButtonContent>\n </ButtonContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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, ReactNode } from 'react';\nimport React 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 'grey';\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","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 React from 'react';\nimport 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 React, { forwardRef } from 'react';\nimport type { KeyboardTypeOptions, TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components/native';\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 }) => theme.kitt.typography.types.bodies.configs.body.baseAndSmall.fontSize};\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 !multiline && Platform.OS === 'ios' ? 0 : theme.kitt.typography.types.bodies.configs.body.baseAndSmall.lineHeight};\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 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 React 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 React 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 accessible={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 React 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 React 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 React, { 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 React from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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 React 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 React from 'react';\nimport type { PressableProps } 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 PressableProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\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({ children, withPadding, borders, left, right, ...rest }: ListItemProps): ReactElement {\n return (\n <Pressable {...rest}>\n <ContainerView withPadding={withPadding} borders={borders}>\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 </Pressable>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport React 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?: TypographyIconProps['color'];\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 React 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 React from 'react';\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 React from 'react';\nimport type { GestureResponderEvent } from 'react-native';\nimport { StyleSheet, View } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps {\n onPress?: (event: GestureResponderEvent) => void;\n}\n\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 onPress={onPress}>\n <View />\n </OverlayPressable>\n );\n}\n","import type { ReactNode } from 'react';\nimport React, { forwardRef } 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 const ModalBody = forwardRef<ScrollView, BodyProps>(({ children }, ref) => {\n return (\n <ScrollView ref={ref}>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport React 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 React, { 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 React 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 React 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 { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\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.h1 variant=\"bold\" base=\"header1\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.h2 variant=\"bold\" base=\"header2\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h3 variant=\"bold\" base=\"header3\" medium=\"header4\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h4 variant=\"bold\" base=\"header4\" medium=\"header5\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h4>\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 React from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nconst StyledSection = styled.View`\n margin-bottom: 30px;\n`;\n\ninterface SectionProps extends ViewProps {\n title: string;\n className?: string;\n children: ReactNode;\n}\n\nexport function Section({ title, className, children, ...props }: SectionProps): ReactElement {\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: 20px;\n`;\n\nfunction SubSection({ title, className, children, ...props }: SectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\ninterface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 90px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <Section title=\"Demo\">{children}</Section>\n </StyledDemoSection>\n );\n}\n\nSection.SubSection = SubSection;\nSection.DemoSection = DemoSection;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: 10px;\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 { StoryContext, StoryFn } from '@storybook/addons';\nimport type { ReactNode } from 'react';\nimport React from 'react';\nimport { Story } from './Story';\n\nexport function StoryDecorator(storyFn: StoryFn<ReactNode>, context: StoryContext): ReturnType<StoryFn<ReactNode>> {\n return <Story title={context.name}>{storyFn()}</Story>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { 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: 10px 0 20px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -5px 20px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 5px 10px;\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 {React.Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {React.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}\n\nfunction StoryGridCol({ title, titleColor, children }: StoryGridColProps): ReactElement {\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 React from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\n\ntype TagType = 'primary' | 'default' | 'danger';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n}\ninterface ContainerProps {\n type: TagType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.tag[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius};\n align-self: flex-start;\n`;\n\nexport function Tag({ label, type = 'default' }: TagProps): ReactElement {\n return (\n <Container type={type}>\n <Typography.Text base=\"body-xsmall\" color={type === 'primary' ? 'primary-light' : undefined}>\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","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 buttonLateOceanTheme = {\n borderRadius: '30px',\n borderWidth: '2px',\n minHeight: '42px',\n minWidth: '40px',\n maxWidth: '335px',\n iconSize: 18,\n contentPadding: {\n default: '8px 16px',\n },\n primary: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.lateOceanLight1,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.black50,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.black100,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\n },\n 'subtle-dark': {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\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 colorsLateOceanTheme = {\n primary: lateOceanColorPalette.lateOcean,\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 uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\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';\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 { 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 const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: validate Moon shadow color with design team\n backgroundColor: '#EDEBFC',\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n },\n danger: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n },\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 TypographyTypeConfig {\n baseAndSmall: {\n fontSize: string;\n lineHeight: string;\n };\n mediumAndWide: {\n fontSize: string;\n lineHeight: string;\n };\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 grey: lateOceanColorPalette.black555,\n 'grey-light': lateOceanColorPalette.black200,\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 italic: 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 italic: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Italic',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n italic: 400,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n italic: 'italic',\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};\n","import type { WindowSizeHelper } from '../utils/windowSize/createWindowSizeHelper';\nimport { 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 { listItemLateOceanTheme } from './late-ocean/listItemLateOceanTheme';\nimport { shadowsLateOceanTheme } from './late-ocean/shadowsLateOceanTheme';\nimport { tagLateOceanTheme } from './late-ocean/tagLateOceanTheme';\nimport { typographyLateOceanTheme } from './late-ocean/typographyLateOceanTheme';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\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 listItem: listItemLateOceanTheme,\n};\n\nexport type KittTheme = {\n kitt: typeof theme;\n responsive: WindowSizeHelper;\n} & Record<string, unknown>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { View } from 'react-native';\n\nexport type TooltipPosition = 'bottom' | 'top' | 'left' | 'right';\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n defaultVisible?: boolean;\n fullWidth?: boolean;\n position: TooltipPosition;\n}\n\nexport function Tooltip({ children }: TooltipProps): ReactElement {\n return <View>{children}</View>;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { SetRequired } from 'type-fest';\nimport type { TypographyProps, TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface StyledTypographyLinkProps extends TypographyPropsWithoutRole {\n disabled?: boolean;\n noUnderline?: boolean;\n}\n\nconst StyledLink = styled(Typography).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['disabled', 'noUnderline'].includes(prop),\n})<TypographyLinkProps & TypographyProps>`\n text-decoration: ${({ noUnderline }) => (noUnderline ? 'none' : 'underline')};\n ${({ disabled }) =>\n Platform.OS === 'web'\n ? `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${disabled ? 'not-allowed' : 'pointer'};\n `\n : null};\n margin: 0;\n`;\n\nexport interface TypographyLinkProps extends SetRequired<StyledTypographyLinkProps, 'onPress'> {\n href?: string;\n}\n\nexport function TypographyLink({\n disabled,\n noUnderline,\n variant = 'bold',\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <StyledLink\n disabled={disabled}\n noUnderline={noUnderline}\n variant={variant}\n accessibilityRole=\"link\"\n {...otherProps}\n />\n );\n}\n","import { useWindowDimensions } from 'react-native';\n\nexport interface MatchWindowSizeOptions {\n minWidth: number;\n maxWidth?: number;\n}\nexport function matchWindowSize(currentWidth: number, { minWidth, maxWidth }: MatchWindowSizeOptions): boolean {\n return currentWidth >= minWidth && (!maxWidth || currentWidth <= maxWidth);\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width } = useWindowDimensions();\n return matchWindowSize(width, options);\n}\n","import 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 | null>(options: MatchWindowSizeOptions, valueIfTrue: T, valueIfFalse: T) => T;\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 function createWindowSizeHelper(currentWidth: number): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(currentWidth, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(currentWidth, 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]) =>\n matchWindowSize(currentWidth, { minWidth: Number(minWidth) }),\n );\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { KittTheme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport function useKittTheme(): KittTheme {\n const { width } = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(width) };\n }, [width]);\n}\n","import React from 'react';\nimport 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","transform","rotate","IconContainer","styled","View","color","size","align","Icon","icon","spin","clonedIcon","React","cloneElement","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","Text","theme","isHeader","type","variant","kitt","typography","types","headers","bodies","fontFamily","configs","baseAndSmall","fontSize","lineHeight","fontWeight","fontStyle","colors","isTypeHeader","startsWith","isTypographyHeader","base","typeInContext","Error","Typography","accessibilityRole","otherProps","nonNullableVariant","colorWithDefaultToBlack","content","TypographyText","props","TypographyParagraph","createHeading","level","TypographyHeading","displayName","Paragraph","h1","h2","h3","h4","h5","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","width","height","Avatar","rest","ButtonContainer","Pressable","button","minWidth","stretch","maxWidth","minHeight","isPressed","disabled","disabledBackgroundColor","pressedBackgroundColor","contentPadding","borderRadius","disabledBorderColor","borderWidth","TypographyIconInheritColor","useTheme","TypographyIconSpecifiedColor","TypographyIcon","getTextColorByType","ButtonText","Content","iconOnly","iconPosition","value","spacing","ButtonIcon","testID","ButtonContent","iconSpin","Boolean","sharedIconProps","iconSize","__DEV__","useButton","useState","setIsPressed","handleButtonPressIn","handleButtonPressOut","Button","onPress","sharedProps","Container","card","padding","borderColor","Card","getColorFromState","state","InputFeedback","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","FieldContainer","FeedbackContainer","responsive","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","isDisabled","formState","keyboardTypeByTextInputType","text","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","forwardRef","ref","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","useWindowDimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","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","white","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StyledSection","Section","title","className","StyledSubSection","SubSection","StyledDemoSection","DemoSection","StoryContainer","ScrollView","Story","contentContainerStyle","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","tag","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","cardLateOceanTheme","colorsLateOceanTheme","accent","accentLight","success","correct","danger","hover","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","medium","tagLateOceanTheme","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","grey","bold","italic","header1","header2","header3","header4","header5","shadows","Tooltip","StyledLink","withConfig","shouldForwardProp","prop","includes","noUnderline","TypographyLink","matchWindowSize","currentWidth","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","useMemo","kittTheme","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}