@ornikar/kitt-universal 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/definitions/Button/Button.d.ts +5 -2
- package/dist/definitions/Button/Button.d.ts.map +1 -1
- package/dist/definitions/Button/{ButtonContainer.d.ts → ButtonPressable.d.ts} +3 -3
- package/dist/definitions/Button/{ButtonContainer.d.ts.map → ButtonPressable.d.ts.map} +1 -1
- package/dist/definitions/ExternalLink/ExternalLink.d.ts +18 -0
- package/dist/definitions/ExternalLink/ExternalLink.d.ts.map +1 -0
- package/dist/definitions/ExternalLink/ExternalLink.web.d.ts +4 -0
- package/dist/definitions/ExternalLink/ExternalLink.web.d.ts.map +1 -0
- package/dist/definitions/ExternalLink/ExternalLinkOpenLinkBehavior.d.ts +24 -0
- package/dist/definitions/ExternalLink/ExternalLinkOpenLinkBehavior.d.ts.map +1 -0
- package/dist/definitions/index.d.ts +3 -1
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitiveLink.d.ts +3 -1
- package/dist/definitions/primitives/PrimitiveLink.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitiveLink.web.d.ts +1 -1
- package/dist/definitions/primitives/PrimitiveLink.web.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitivePressable.d.ts +2 -0
- package/dist/definitions/primitives/PrimitivePressable.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitivePressable.web.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitiveView.d.ts +2 -0
- package/dist/definitions/primitives/PrimitiveView.d.ts.map +1 -1
- package/dist/definitions/primitives/PrimitiveView.web.d.ts +6 -2
- package/dist/definitions/primitives/PrimitiveView.web.d.ts.map +1 -1
- package/dist/definitions/typography/TypographyLink.d.ts +7 -4
- package/dist/definitions/typography/TypographyLink.d.ts.map +1 -1
- package/dist/index-browser-all.es.android.js +117 -78
- package/dist/index-browser-all.es.android.js.map +1 -1
- package/dist/index-browser-all.es.ios.js +117 -78
- package/dist/index-browser-all.es.ios.js.map +1 -1
- package/dist/index-browser-all.es.js +117 -78
- package/dist/index-browser-all.es.js.map +1 -1
- package/dist/index-browser-all.es.web.js +203 -146
- package/dist/index-browser-all.es.web.js.map +1 -1
- package/dist/index-node-14.17.cjs.js +94 -55
- package/dist/index-node-14.17.cjs.js.map +1 -1
- package/dist/tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/definitions/Button/useButton.d.ts +0 -6
- package/dist/definitions/Button/useButton.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/primitives/PrimitiveView.tsx","../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/primitives/PrimitiveText.tsx","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/primitives/PrimitivePressable.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/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/Message/Message.tsx","../src/Overlay/Overlay.tsx","../src/primitives/PrimitiveScrollView.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/primitives/PrimitiveLink.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/avatarLateOceanTheme.ts","../src/themes/late-ocean/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/iconButton.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/storybook/decorators/KittThemeDecorator.tsx","../src/utils/storybook/decorators/SafeAreaProviderDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { FunctionComponent, ReactNode } from 'react';\nimport type { ViewProps as NativeViewProps } from 'react-native';\nimport { View as NativeView } from 'react-native';\n\nexport interface PrimitiveViewProps {\n /**\n * Use internally to pass all styles to our implementation with styled-components\n * @private\n */\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<NativeViewProps['accessibilityRole'], 'button' | 'radio' | 'none'>;\n testID?: NativeViewProps['testID'];\n nativeID?: NativeViewProps['nativeID'];\n /**\n * Use internally to pass all styles from PrimitiveScrollView\n * @private\n */\n style?: NativeViewProps['style'];\n // native only\n onLayout?: NativeViewProps['onLayout'];\n}\n\nexport const PrimitiveView = NativeView as unknown as FunctionComponent<PrimitiveViewProps>;\n","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';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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 { FunctionComponent, ReactNode } from 'react';\nimport { Text as NativeText } from 'react-native';\nimport type { TextProps } from 'react-native';\n\nexport interface PrimitiveTextProps {\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<TextProps['accessibilityRole'], 'header' | 'none'> | 'paragraph';\n accessibilityLevel?: number;\n accessibilityRoleDescription?: string;\n testID?: TextProps['testID'];\n numberOfLines?: TextProps['numberOfLines'];\n selectable?: TextProps['selectable'];\n // href?: string;\n}\n\nexport const PrimitiveText = NativeText as unknown as FunctionComponent<PrimitiveTextProps>;\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport styled from 'styled-components';\nimport type { Except, SetOptional } from 'type-fest';\nimport type { PrimitiveTextProps } from '../primitives/PrimitiveText';\nimport { PrimitiveText } from '../primitives/PrimitiveText';\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';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst 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(PrimitiveText)<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<PrimitiveTextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<PrimitiveTextProps['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 accessibilityRole={accessibilityRole || undefined}\n {...otherProps}\n />\n </TypographyTypeContext.Provider>\n ) : (\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n variant={nonNullableVariant}\n accessibilityRole={accessibilityRole || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components';\nimport { Icon } from '../Icon/Icon';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<StyledAvatarViewProps>`\n border-radius: ${({ round, size }) => (round ? size / 2 : 10)}px;\n background-color: ${({ theme, light }) =>\n light ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ size }) => size}px;\n width: ${({ size }) => size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\nfunction AvatarContent({ size = 40, src, firstname, lastname, light }: AvatarProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base=\"body-small\" variant=\"bold\" color={light ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={light ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport function Avatar({ size = 40, ...rest }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView {...rest} size={size}>\n <AvatarContent {...rest} size={size} />\n </StyledAvatarView>\n );\n}\n","import type { FunctionComponent, ReactNode } from 'react';\nimport { Pressable as NativePressable } from 'react-native';\nimport type { PressableProps } from 'react-native';\n\nexport interface PrimitivePressableProps {\n className?: string;\n children?: ReactNode;\n testID?: PressableProps['testID'];\n disabled?: PressableProps['disabled'];\n focusable?: PressableProps['focusable'];\n nativeID?: PressableProps['nativeID'];\n accessibilityRole: Extract<PressableProps['accessibilityRole'], 'button' | 'radio' | 'none'>;\n onPress?: NonNullable<PressableProps['onPress']>;\n // native only\n onPressIn?: PressableProps['onPressIn'];\n // native only\n onPressOut?: PressableProps['onPressOut'];\n}\n\nexport const PrimitivePressable = NativePressable as unknown as FunctionComponent<PrimitivePressableProps>;\n","import styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { ButtonType } from './Button';\n\ninterface ButtonContainerProps extends PrimitivePressableProps {\n type: ButtonType;\n isPressed?: boolean;\n disabled?: boolean;\n stretch?: boolean;\n}\n\nexport const ButtonContainer = styled(PrimitivePressable)<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';\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';\nimport type { Except } from 'type-fest';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)<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 Except<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';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","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';\nimport { KittBreakpoints } from '../../KittBreakpoints';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\n\nconst FieldContainer = styled(PrimitiveView)`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled(PrimitiveView)`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled(PrimitiveView)`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled(PrimitiveView)`\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, TextInput } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components';\nimport { PrimitivePressable } from '../../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\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(PrimitiveView)`\n margin-top: ${({ theme }) => theme.kitt.forms.input.marginTop};\n margin-bottom: ${({ theme }) => theme.kitt.forms.input.marginBottom};\n`;\n\nconst PasswordButtonContainer = styled(PrimitivePressable)`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.forms.input.passwordButtonIconSize / 2}px;\n`;\n\nconst getInputState = ({\n isDisabled,\n isFocused,\n formState,\n}: {\n isFocused: boolean;\n formState: InputFormState;\n isDisabled: boolean;\n}): InputTextState => {\n if (isDisabled) return 'disabled';\n if (isFocused) return 'focus';\n if (formState === 'invalid') return 'invalid';\n return 'default';\n};\n\nconst keyboardTypeByTextInputType: Record<InputTextType, KeyboardTypeOptions> = {\n text: 'default',\n email: 'email-address',\n password: 'default',\n username: 'default',\n};\n\nconst autoCompleteTypeByType: Record<InputTextType, 'off' | 'email' | 'password' | 'name'> = {\n text: 'off',\n email: 'email',\n password: 'password',\n username: 'name',\n};\n\nconst autoCorrectByType: Record<InputTextType, boolean> = {\n text: true,\n email: false,\n password: false,\n username: false,\n};\n\nconst textContentTypeByType: Record<InputTextType, 'none' | 'emailAddress' | 'password' | 'username'> = {\n text: 'none',\n email: 'emailAddress',\n password: 'password',\n username: 'username',\n};\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n minHeight = 0,\n type,\n state: formState,\n internalForceState,\n disabled = false,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const { isFocused, handleInputBlur, handleInputFocus, isPasswordVisible, togglePasswordVisibility } =\n useInputText();\n const theme = useTheme();\n const state = internalForceState || getInputState({ isFocused, isDisabled: disabled, formState });\n return (\n <Container>\n <Input\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardTypeByTextInputType[type]}\n autoCompleteType={autoCompleteTypeByType[type]}\n autoCorrect={autoCorrectByType[type]}\n minHeight={minHeight}\n textContentType={textContentTypeByType[type]}\n placeholderTextColor={theme.kitt.typography.colors[theme.kitt.forms.input.placeholderColor]}\n selectionColor={theme.kitt.forms.input.selectionColor}\n secureTextEntry={type === 'password' && !isPasswordVisible}\n {...props}\n state={state}\n onFocus={(e) => {\n handleInputFocus();\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n handleInputBlur();\n if (onBlur) onBlur(e);\n }}\n />\n {type === 'password' && !disabled && (\n <PasswordButtonContainer accessibilityRole=\"button\" onPress={togglePasswordVisibility}>\n <TypographyIcon\n icon={isPasswordVisible ? <EyeIcon /> : <EyeOffIcon />}\n size={theme.kitt.forms.input.passwordButtonIconSize}\n color={theme.kitt.forms.input.states[state].passwordButtonIconColor}\n />\n </PasswordButtonContainer>\n )}\n </Container>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport 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';\nimport { PrimitivePressable } from '../../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)`\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(PrimitiveView)`\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(PrimitivePressable)`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { useTheme } from 'styled-components';\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';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nconst Body = styled(PrimitiveView)`\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';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled(PrimitiveView)<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(PrimitiveView)<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(PrimitiveView)<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';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled(PrimitiveView)`\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 { Platform } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { IconButtonContentProps } from './IconButton';\n\nexport interface PressableIconButtonProps extends PrimitivePressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport const PressableIconButton = styled(PrimitivePressable)<PressableIconButtonProps>`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition, scale } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n\n &:hover,\n .kitt-hover & {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${scale.base.hover});\n }\n\n @media(${theme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${scale.medium.hover});\n }\n }\n\n &:active,\n .kitt-active & {\n transform: scale(${scale.base.active});\n }\n\n &:hover,\n .kitt-hover &,\n &:focus,\n .kitt-focus &,\n &:active,\n .kitt-active & {\n background-color: ${\n color === 'white' ? iconButton.white.pressedBackgroundColor : iconButton.default.pressedBackgroundColor\n };\n }\n `;\n }};\n`;\n","import React from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole=\"button\"\n disabled={disabled}\n color={color}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled(PrimitiveView)<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({ icon, color, disabled, onPress }: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer color={color} disabled={disabled} onPress={onPress}>\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface ListItemContentProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled(PrimitiveView)`\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 { ViewStyle } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface ListItemSideContainerProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled(PrimitiveView)<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 PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled(PrimitiveView)<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, { Fragment } from 'react';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PrimitivePressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled(PrimitiveView)<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}`;\n }\n\n if (borders === 'both') {\n return `border-top-width: ${borderWidth}; border-bottom-width: ${borderWidth}`;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? PrimitivePressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components';\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 { TouchableOpacity } from 'react-native';\nimport styled from 'styled-components';\nimport { Icon } from '../Icon/Icon';\nimport { PrimitiveText } from '../primitives/PrimitiveText';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)`\n margin-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\ninterface ContentProps {\n type: MessageType;\n centeredText: boolean;\n}\n\nconst Content = styled(PrimitiveText)<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 { StyleSheet } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface OverlayProps {\n onPress: PrimitivePressableProps['onPress'];\n}\n\nconst OverlayPressable = styled(PrimitivePressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return (\n <OverlayPressable accessibilityRole=\"none\" onPress={onPress}>\n <PrimitiveView />\n </OverlayPressable>\n );\n}\n","import type { FunctionComponent } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport { ScrollView } from 'react-native';\nimport type { PrimitiveViewProps } from './PrimitiveView';\n\nexport interface PrimitiveScrollViewProps extends PrimitiveViewProps {\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nexport const PrimitiveScrollView = ScrollView as unknown as FunctionComponent<PrimitiveScrollViewProps>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveScrollView } from '../primitives/PrimitiveScrollView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nconst BodyView = styled(PrimitiveView)`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <PrimitiveScrollView>\n <BodyView>{children}</BodyView>\n </PrimitiveScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled(PrimitiveView)`\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';\nimport { Button } from '../Button/Button';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled(PrimitiveView)`\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(PrimitiveView)`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled(PrimitiveView)`\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(PrimitiveView)<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';\nimport { Overlay } from '../Overlay/Overlay';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)`\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(PrimitiveView)`\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 { FunctionComponent, ReactNode } from 'react';\nimport { Text as NativeText } from 'react-native';\nimport type { TextProps } from 'react-native';\n\nexport interface PrimitiveLinkProps {\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<TextProps['accessibilityRole'], 'link'>;\n selectable?: TextProps['selectable'];\n onPress?: TextProps['onPress'];\n}\n\nexport const PrimitiveLink = NativeText as unknown as FunctionComponent<PrimitiveLinkProps>;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled(PrimitiveView).withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled(PrimitiveView)<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled(PrimitiveView)`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled(PrimitiveView)`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components';\nimport { PrimitiveScrollView } from '../primitives/PrimitiveScrollView';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled(PrimitiveScrollView)`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends PrimitiveViewProps {}\n\nconst StyledSection = styled(PrimitiveView)<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends PrimitiveViewProps {\n title: ReactNode;\n className?: string;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({\n title,\n className,\n children,\n internalIsDemoSection,\n ...props\n}: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled(PrimitiveView)`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, className, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled(PrimitiveView)`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, className, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled(PrimitiveView)`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext, 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 { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components';\nimport type { TypographyProps } from '..';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled(PrimitiveView)`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled(PrimitiveView)`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled(PrimitiveView)`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled(PrimitiveView)`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {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 platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled(PrimitiveView)<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth};\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius};\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","export const lateOceanColorPalette = {\n lateOcean: '#4C34E0',\n lateOceanLight1: '#705DE6',\n lateOceanLight2: '#9485EC',\n lateOceanLight3: '#D6BAF9',\n\n warmEmbrace: '#F4D3CE',\n warmEmbraceLight1: '#FFEDE6',\n\n black1000: '#000000',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const avatarLateOceanTheme = {\n default: {\n color: lateOceanColorPalette.white,\n backgroundColor: lateOceanColorPalette.lateOcean,\n },\n light: {\n color: lateOceanColorPalette.black1000,\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const 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: 'rgba(0, 0, 0, 0.05)',\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\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 white: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\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 primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n 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 { buttonLateOceanTheme } from './buttonLateOceanTheme';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: buttonLateOceanTheme.secondary.disabledBackgroundColor,\n borderColor: buttonLateOceanTheme.secondary.disabledBorderColor,\n },\n default: {\n pressedBackgroundColor: buttonLateOceanTheme.secondary.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: buttonLateOceanTheme.white.hoverBackgroundColor,\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const listItemLateOceanTheme = {\n padding: '12px 16px',\n borderColor: colorsLateOceanTheme.separator,\n borderWidth: '1px',\n innerMargin: '8px',\n};\n","export const shadowsLateOceanTheme = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.lateOcean,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.black1000,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: colorsLateOceanTheme.danger,\n },\n },\n};\n","import { 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 white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { 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 { iconButton } from './late-ocean/iconButton';\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 breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors: colorsLateOceanTheme,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar: avatarLateOceanTheme,\n button: buttonLateOceanTheme,\n card: cardLateOceanTheme,\n feedbackMessage: feedbackMessageLateOceanTheme,\n forms: formsLateOceanTheme,\n typography: typographyLateOceanTheme,\n tag: tagLateOceanTheme,\n shadows: shadowsLateOceanTheme,\n fullScreenModal: fullScreenModalLateOceanTheme,\n iconButton,\n listItem: listItemLateOceanTheme,\n};\n\nexport type KittTheme = {\n kitt: typeof theme;\n responsive: WindowSizeHelper;\n breakpoints: typeof breakpoints;\n} & Record<string, unknown>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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 <PrimitiveView>{children}</PrimitiveView>;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitiveLinkProps } from '../primitives/PrimitiveLink';\nimport { PrimitiveLink } from '../primitives/PrimitiveLink';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface StyledLinkProps {\n disabled?: boolean;\n noUnderline?: boolean;\n}\n\nconst StyledLink = styled(PrimitiveLink).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['disabled', 'noUnderline'].includes(prop),\n})<StyledLinkProps & PrimitiveLinkProps>`\n text-decoration: ${({ noUnderline }) => (noUnderline ? 'none' : 'underline')};\n\n ${({ disabled, theme, noUnderline }) => `\n ${disabled ? `color: ${theme.kitt.typography.link.disabledColor};` : ''}\n ${\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\n &:hover, &:active, .kitt-hover & {\n text-decoration: ${noUnderline ? 'underline' : 'none'};\n }\n `\n : ''\n }`}\n`;\n\nexport interface TypographyLinkProps extends StyledLinkProps, TypographyPropsWithoutRole {\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: string;\n onPress: PrimitiveLinkProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyledLink\n disabled={disabled}\n noUnderline={noUnderline}\n accessibilityRole=\"link\"\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </Typography>\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(PrimitiveView)`\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(PrimitiveView)`\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 { breakpoints, 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), breakpoints };\n }, [width]);\n}\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport type { KittTheme } from '../../../themes/default';\nimport { useKittTheme } from '../../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context)}</KittThemeProvider>;\n },\n});\n","import { makeDecorator } from '@storybook/addons';\nimport React from 'react';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nexport const SafeAreaProviderDecorator = makeDecorator({\n name: 'SafeAreaProviderDecorator',\n parameterName: 'safeAreaProvider',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <SafeAreaProvider>{storyFn(context)}</SafeAreaProvider>;\n },\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":["PrimitiveView","NativeView","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","color","size","align","Icon","icon","spin","clonedIcon","React","cloneElement","PrimitiveText","NativeText","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","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","defaultBase","TypographyHeading","displayName","Text","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","width","height","Avatar","rest","PrimitivePressable","NativePressable","ButtonContainer","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","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","PressableIconButton","iconButton","AnimatedIconButtonBackground","View","white","AnimatedViewContainer","PressableAnimatedContainer","pressed","useSharedValue","opacityStyles","useAnimatedStyle","opacity","withSpring","scaleStyles","scale","active","IconButtonContentBorder","IconButtonContent","IconButton","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","Message","onDismiss","OverlayPressable","StyleSheet","absoluteFillObject","overlay","dark","Overlay","PrimitiveScrollView","ScrollView","BodyView","ModalBody","FooterView","separator","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","palettes","lateOcean","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","PrimitiveLink","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","includes","direction","storyPadding","getBackgroundColorFromBlockColor","getTypographyColorFromBlockColor","StoryBlockBackgroundContext","StoryBlockColorContext","useStoryBlockColor","storyBlockColor","StyledStoryBlockView","background","StoryBlock","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StoryContainer","Story","title","contentContainerStyle","StyledSection","StorySection","className","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","tag","getLabelColor","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","hoverBackgroundColor","focusBorderColor","cardLateOceanTheme","colorsLateOceanTheme","primaryLight","accent","accentLight","success","correct","danger","hover","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","transition","property","timingFunction","medium","listItemLateOceanTheme","shadowsLateOceanTheme","tagLateOceanTheme","fill","outline","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","bold","header1","header2","header3","header4","header5","link","disabledColor","breakpoints","values","small","large","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","shadows","Tooltip","StyledLink","noUnderline","TypographyLink","matchWindowSize","currentWidth","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","useMemo","kittTheme","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","SafeAreaProviderDecorator","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/primitives/PrimitiveView.tsx","../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/primitives/PrimitiveText.tsx","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/primitives/PrimitivePressable.tsx","../src/Button/ButtonPressable.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.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/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/Message/Message.tsx","../src/Overlay/Overlay.tsx","../src/primitives/PrimitiveScrollView.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/primitives/PrimitiveLink.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/avatarLateOceanTheme.ts","../src/themes/late-ocean/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/iconButton.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/storybook/decorators/KittThemeDecorator.tsx","../src/utils/storybook/decorators/SafeAreaProviderDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { FunctionComponent, ReactNode } from 'react';\nimport type { ViewProps as NativeViewProps } from 'react-native';\nimport { View as NativeView } from 'react-native';\n\nexport interface PrimitiveViewProps {\n /**\n * Use internally to pass all styles to our implementation with styled-components\n * @private\n */\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<NativeViewProps['accessibilityRole'], 'button' | 'radio' | 'none'>;\n testID?: NativeViewProps['testID'];\n nativeID?: NativeViewProps['nativeID'];\n href?: NativeViewProps['href'];\n hrefAttrs?: NativeViewProps['hrefAttrs'];\n /**\n * Use internally to pass all styles from PrimitiveScrollView\n * @private\n */\n style?: NativeViewProps['style'];\n // native only\n onLayout?: NativeViewProps['onLayout'];\n}\n\nexport const PrimitiveView = NativeView as unknown as FunctionComponent<PrimitiveViewProps>;\n","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';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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 { FunctionComponent, ReactNode } from 'react';\nimport { Text as NativeText } from 'react-native';\nimport type { TextProps } from 'react-native';\n\nexport interface PrimitiveTextProps {\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<TextProps['accessibilityRole'], 'header' | 'none'> | 'paragraph';\n accessibilityLevel?: number;\n accessibilityRoleDescription?: string;\n testID?: TextProps['testID'];\n numberOfLines?: TextProps['numberOfLines'];\n selectable?: TextProps['selectable'];\n // href?: string;\n}\n\nexport const PrimitiveText = NativeText as unknown as FunctionComponent<PrimitiveTextProps>;\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport styled from 'styled-components';\nimport type { Except, SetOptional } from 'type-fest';\nimport type { PrimitiveTextProps } from '../primitives/PrimitiveText';\nimport { PrimitiveText } from '../primitives/PrimitiveText';\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';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst 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(PrimitiveText)<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<PrimitiveTextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<PrimitiveTextProps['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 accessibilityRole={accessibilityRole || undefined}\n {...otherProps}\n />\n </TypographyTypeContext.Provider>\n ) : (\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n variant={nonNullableVariant}\n accessibilityRole={accessibilityRole || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components';\nimport { Icon } from '../Icon/Icon';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<StyledAvatarViewProps>`\n border-radius: ${({ round, size }) => (round ? size / 2 : 10)}px;\n background-color: ${({ theme, light }) =>\n light ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ size }) => size}px;\n width: ${({ size }) => size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\nfunction AvatarContent({ size = 40, src, firstname, lastname, light }: AvatarProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base=\"body-small\" variant=\"bold\" color={light ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={light ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport function Avatar({ size = 40, ...rest }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView {...rest} size={size}>\n <AvatarContent {...rest} size={size} />\n </StyledAvatarView>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { useTheme } from 'styled-components';\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';\nimport type { Except } from 'type-fest';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)<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 Except<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 type { FunctionComponent, ReactNode } from 'react';\nimport { Pressable as NativePressable } from 'react-native';\nimport type { PressableProps } from 'react-native';\n\nexport interface PrimitivePressableProps {\n className?: string;\n children?: ReactNode;\n testID?: PressableProps['testID'];\n disabled?: PressableProps['disabled'];\n focusable?: PressableProps['focusable'];\n nativeID?: PressableProps['nativeID'];\n href?: PressableProps['href'];\n hrefAttrs?: PressableProps['hrefAttrs'];\n accessibilityRole: Extract<PressableProps['accessibilityRole'], 'button' | 'radio' | 'none'>;\n onPress?: NonNullable<PressableProps['onPress']>;\n // native only\n onPressIn?: PressableProps['onPressIn'];\n // native only\n onPressOut?: PressableProps['onPressOut'];\n}\n\nexport const PrimitivePressable = NativePressable as unknown as FunctionComponent<PrimitivePressableProps>;\n","import styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { ButtonType } from './Button';\n\ninterface ButtonPressableProps extends PrimitivePressableProps {\n type: ButtonType;\n isPressed?: boolean;\n disabled?: boolean;\n stretch?: boolean;\n}\n\nexport const ButtonPressable = styled(PrimitivePressable)<ButtonPressableProps>`\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, ReactNode } from 'react';\nimport React, { useState } from 'react';\nimport type { PrimitivePressableProps } from '..';\nimport { ButtonContent } from './ButtonContent';\nimport { ButtonPressable } from './ButtonPressable';\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?: PrimitivePressableProps['testID'];\n href?: PrimitivePressableProps['href'];\n hrefAttrs?: PrimitivePressableProps['hrefAttrs'];\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 testID,\n href,\n hrefAttrs,\n onPress,\n}: ButtonProps): ReactElement {\n const [isPressed, setIsPressed] = useState<boolean>(false);\n\n const handleButtonPressIn = (): void => setIsPressed(true);\n const handleButtonPressOut = (): void => setIsPressed(false);\n\n const sharedProps = {\n type,\n stretch,\n disabled,\n };\n\n return (\n <ButtonPressable\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 href={href}\n hrefAttrs={hrefAttrs}\n onPress={onPress}\n onPressIn={handleButtonPressIn}\n onPressOut={handleButtonPressOut}\n >\n <ButtonContent {...sharedProps} icon={icon} iconPosition={iconPosition} iconSpin={iconSpin}>\n {children}\n </ButtonContent>\n </ButtonPressable>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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","export interface ExternalLinkOpenLinkBehavior {\n /**\n * @default 'openInModal'\n *\n * @description open link behavior in native\n *\n * \"openInModal\": open via [expo-web-browser](https://docs.expo.dev/versions/latest/sdk/webbrowser/)\n *\n * \"openBrowserApp\": open via [Linking](https://docs.expo.dev/guides/linking/#opening-links-from-your-app)\n */\n native?: 'openInModal' | 'openBrowserApp';\n\n /**\n * @default 'targetBlank'\n *\n * @description open link behavior in native\n *\n * \"targetSelf\": no dom attributes added, behave like `target=\"_self\"`\n *\n * \"targetBlank\": dome attributes: `target=\"_blank\" rel=\"noopener noreferrer\"`\n */\n web?: 'targetSelf' | 'targetBlank';\n}\n\nexport const defaultOpenLinkBehavior: ExternalLinkOpenLinkBehavior = {\n native: 'openInModal',\n web: 'targetBlank',\n};\n","import * as WebBrowser from 'expo-web-browser';\nimport type { ComponentProps, ReactElement, VoidFunctionComponent } from 'react';\nimport React from 'react';\nimport type { ViewProps } from 'react-native';\nimport { Linking } from 'react-native';\nimport type { ExternalLinkOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport interface ExternalLinkAsComponentMinimumRequiredProps {\n href?: ViewProps['href'];\n hrefAttrs?: ViewProps['hrefAttrs'];\n onPress?: () => void;\n}\n\nexport interface ExternalLinkProps<C extends VoidFunctionComponent<any>> {\n as: C;\n openLinkBehavior?: ExternalLinkOpenLinkBehavior;\n href?: string;\n onPress?: () => void;\n}\n\n/** @internal for ExternalLink.web.tsx only */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ExternalLinkSendableComponentProps<C extends VoidFunctionComponent<any>> = Omit<\n ComponentProps<C>,\n keyof ExternalLinkProps<C> & keyof ExternalLinkAsComponentMinimumRequiredProps\n>;\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n const handleOnPress = () => {\n if (onPress) onPress();\n if (!href) return;\n switch (openLinkBehavior.native) {\n case 'openInModal':\n case undefined:\n Linking.openURL(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n case 'openBrowserApp':\n WebBrowser.openBrowserAsync(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n default:\n if (__DEV__) {\n throw new Error(`Invalid ExternalLink native behavior: ${openLinkBehavior.native as string}`);\n }\n }\n };\n\n return <Component {...(rest as any)} onPress={handleOnPress} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport 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 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","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';\nimport { KittBreakpoints } from '../../KittBreakpoints';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\n\nconst FieldContainer = styled(PrimitiveView)`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled(PrimitiveView)`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled(PrimitiveView)`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled(PrimitiveView)`\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, TextInput } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components';\nimport { PrimitivePressable } from '../../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\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(PrimitiveView)`\n margin-top: ${({ theme }) => theme.kitt.forms.input.marginTop};\n margin-bottom: ${({ theme }) => theme.kitt.forms.input.marginBottom};\n`;\n\nconst PasswordButtonContainer = styled(PrimitivePressable)`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.forms.input.passwordButtonIconSize / 2}px;\n`;\n\nconst getInputState = ({\n isDisabled,\n isFocused,\n formState,\n}: {\n isFocused: boolean;\n formState: InputFormState;\n isDisabled: boolean;\n}): InputTextState => {\n if (isDisabled) return 'disabled';\n if (isFocused) return 'focus';\n if (formState === 'invalid') return 'invalid';\n return 'default';\n};\n\nconst keyboardTypeByTextInputType: Record<InputTextType, KeyboardTypeOptions> = {\n text: 'default',\n email: 'email-address',\n password: 'default',\n username: 'default',\n};\n\nconst autoCompleteTypeByType: Record<InputTextType, 'off' | 'email' | 'password' | 'name'> = {\n text: 'off',\n email: 'email',\n password: 'password',\n username: 'name',\n};\n\nconst autoCorrectByType: Record<InputTextType, boolean> = {\n text: true,\n email: false,\n password: false,\n username: false,\n};\n\nconst textContentTypeByType: Record<InputTextType, 'none' | 'emailAddress' | 'password' | 'username'> = {\n text: 'none',\n email: 'emailAddress',\n password: 'password',\n username: 'username',\n};\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n minHeight = 0,\n type,\n state: formState,\n internalForceState,\n disabled = false,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const { isFocused, handleInputBlur, handleInputFocus, isPasswordVisible, togglePasswordVisibility } =\n useInputText();\n const theme = useTheme();\n const state = internalForceState || getInputState({ isFocused, isDisabled: disabled, formState });\n return (\n <Container>\n <Input\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardTypeByTextInputType[type]}\n autoCompleteType={autoCompleteTypeByType[type]}\n autoCorrect={autoCorrectByType[type]}\n minHeight={minHeight}\n textContentType={textContentTypeByType[type]}\n placeholderTextColor={theme.kitt.typography.colors[theme.kitt.forms.input.placeholderColor]}\n selectionColor={theme.kitt.forms.input.selectionColor}\n secureTextEntry={type === 'password' && !isPasswordVisible}\n {...props}\n state={state}\n onFocus={(e) => {\n handleInputFocus();\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n handleInputBlur();\n if (onBlur) onBlur(e);\n }}\n />\n {type === 'password' && !disabled && (\n <PasswordButtonContainer accessibilityRole=\"button\" onPress={togglePasswordVisibility}>\n <TypographyIcon\n icon={isPasswordVisible ? <EyeIcon /> : <EyeOffIcon />}\n size={theme.kitt.forms.input.passwordButtonIconSize}\n color={theme.kitt.forms.input.states[state].passwordButtonIconColor}\n />\n </PasswordButtonContainer>\n )}\n </Container>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport 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';\nimport { PrimitivePressable } from '../../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)`\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(PrimitiveView)`\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(PrimitivePressable)`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { useTheme } from 'styled-components';\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';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nconst Body = styled(PrimitiveView)`\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';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled(PrimitiveView)<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(PrimitiveView)<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(PrimitiveView)<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';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled(PrimitiveView)`\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 { Platform } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { IconButtonContentProps } from './IconButton';\n\nexport interface PressableIconButtonProps extends PrimitivePressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport const PressableIconButton = styled(PrimitivePressable)<PressableIconButtonProps>`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition, scale } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n\n &:hover,\n .kitt-hover & {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${scale.base.hover});\n }\n\n @media(${theme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${scale.medium.hover});\n }\n }\n\n &:active,\n .kitt-active & {\n transform: scale(${scale.base.active});\n }\n\n &:hover,\n .kitt-hover &,\n &:focus,\n .kitt-focus &,\n &:active,\n .kitt-active & {\n background-color: ${\n color === 'white' ? iconButton.white.pressedBackgroundColor : iconButton.default.pressedBackgroundColor\n };\n }\n `;\n }};\n`;\n","import React from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole=\"button\"\n disabled={disabled}\n color={color}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled(PrimitiveView)<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({ icon, color, disabled, onPress }: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer color={color} disabled={disabled} onPress={onPress}>\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface ListItemContentProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled(PrimitiveView)`\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 { ViewStyle } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface ListItemSideContainerProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled(PrimitiveView)<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 PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled(PrimitiveView)<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, { Fragment } from 'react';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends PrimitiveViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PrimitivePressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled(PrimitiveView)<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}`;\n }\n\n if (borders === 'both') {\n return `border-top-width: ${borderWidth}; border-bottom-width: ${borderWidth}`;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? PrimitivePressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components';\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 { TouchableOpacity } from 'react-native';\nimport styled from 'styled-components';\nimport { Icon } from '../Icon/Icon';\nimport { PrimitiveText } from '../primitives/PrimitiveText';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)<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(PrimitiveView)`\n margin-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\ninterface ContentProps {\n type: MessageType;\n centeredText: boolean;\n}\n\nconst Content = styled(PrimitiveText)<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 { StyleSheet } from 'react-native';\nimport styled from 'styled-components';\nimport type { PrimitivePressableProps } from '../primitives/PrimitivePressable';\nimport { PrimitivePressable } from '../primitives/PrimitivePressable';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface OverlayProps {\n onPress: PrimitivePressableProps['onPress'];\n}\n\nconst OverlayPressable = styled(PrimitivePressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return (\n <OverlayPressable accessibilityRole=\"none\" onPress={onPress}>\n <PrimitiveView />\n </OverlayPressable>\n );\n}\n","import type { FunctionComponent } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport { ScrollView } from 'react-native';\nimport type { PrimitiveViewProps } from './PrimitiveView';\n\nexport interface PrimitiveScrollViewProps extends PrimitiveViewProps {\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nexport const PrimitiveScrollView = ScrollView as unknown as FunctionComponent<PrimitiveScrollViewProps>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveScrollView } from '../primitives/PrimitiveScrollView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nconst BodyView = styled(PrimitiveView)`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <PrimitiveScrollView>\n <BodyView>{children}</BodyView>\n </PrimitiveScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled(PrimitiveView)`\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';\nimport { Button } from '../Button/Button';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled(PrimitiveView)`\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(PrimitiveView)`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled(PrimitiveView)`\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(PrimitiveView)<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';\nimport { Overlay } from '../Overlay/Overlay';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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(PrimitiveView)`\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(PrimitiveView)`\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 { FunctionComponent, ReactNode } from 'react';\nimport { Text as NativeText } from 'react-native';\nimport type { TextProps, ViewProps } from 'react-native';\n\nexport interface PrimitiveLinkProps {\n className?: string;\n children?: ReactNode;\n accessibilityRole?: Extract<TextProps['accessibilityRole'], 'link'>;\n selectable?: TextProps['selectable'];\n href?: ViewProps['href'];\n hrefAttrs?: ViewProps['hrefAttrs'];\n onPress?: TextProps['onPress'];\n}\n\nexport const PrimitiveLink = NativeText as unknown as FunctionComponent<PrimitiveLinkProps>;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled(PrimitiveView).withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled(PrimitiveView)<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled(PrimitiveView)`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled(PrimitiveView)`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components';\nimport { PrimitiveScrollView } from '../primitives/PrimitiveScrollView';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled(PrimitiveScrollView)`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport type { PrimitiveViewProps } from '../primitives/PrimitiveView';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends PrimitiveViewProps {}\n\nconst StyledSection = styled(PrimitiveView)<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends PrimitiveViewProps {\n title: ReactNode;\n className?: string;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({\n title,\n className,\n children,\n internalIsDemoSection,\n ...props\n}: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled(PrimitiveView)`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, className, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled(PrimitiveView)`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, className, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled(PrimitiveView)`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext, 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 { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components';\nimport type { TypographyProps } from '..';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled(PrimitiveView)`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled(PrimitiveView)`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled(PrimitiveView)`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled(PrimitiveView)`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {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 platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled(PrimitiveView)<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth};\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius};\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","export const lateOceanColorPalette = {\n lateOcean: '#4C34E0',\n lateOceanLight1: '#705DE6',\n lateOceanLight2: '#9485EC',\n lateOceanLight3: '#D6BAF9',\n\n warmEmbrace: '#F4D3CE',\n warmEmbraceLight1: '#FFEDE6',\n\n black1000: '#000000',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const avatarLateOceanTheme = {\n default: {\n color: lateOceanColorPalette.white,\n backgroundColor: lateOceanColorPalette.lateOcean,\n },\n light: {\n color: lateOceanColorPalette.black1000,\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const 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: 'rgba(0, 0, 0, 0.05)',\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\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 white: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\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 primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n 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 { buttonLateOceanTheme } from './buttonLateOceanTheme';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: buttonLateOceanTheme.secondary.disabledBackgroundColor,\n borderColor: buttonLateOceanTheme.secondary.disabledBorderColor,\n },\n default: {\n pressedBackgroundColor: buttonLateOceanTheme.secondary.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: buttonLateOceanTheme.white.hoverBackgroundColor,\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const listItemLateOceanTheme = {\n padding: '12px 16px',\n borderColor: colorsLateOceanTheme.separator,\n borderWidth: '1px',\n innerMargin: '8px',\n};\n","export const shadowsLateOceanTheme = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.lateOcean,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: lateOceanColorPalette.black1000,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: '0',\n borderColor: lateOceanColorPalette.transparent,\n },\n outline: {\n backgroundColor: lateOceanColorPalette.transparent,\n borderWidth: '1px',\n borderColor: colorsLateOceanTheme.danger,\n },\n },\n};\n","import { 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 white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { 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 { iconButton } from './late-ocean/iconButton';\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 breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors: colorsLateOceanTheme,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar: avatarLateOceanTheme,\n button: buttonLateOceanTheme,\n card: cardLateOceanTheme,\n feedbackMessage: feedbackMessageLateOceanTheme,\n forms: formsLateOceanTheme,\n typography: typographyLateOceanTheme,\n tag: tagLateOceanTheme,\n shadows: shadowsLateOceanTheme,\n fullScreenModal: fullScreenModalLateOceanTheme,\n iconButton,\n listItem: listItemLateOceanTheme,\n};\n\nexport type KittTheme = {\n kitt: typeof theme;\n responsive: WindowSizeHelper;\n breakpoints: typeof breakpoints;\n} & Record<string, unknown>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { PrimitiveView } from '../primitives/PrimitiveView';\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 <PrimitiveView>{children}</PrimitiveView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components';\nimport type { Except } from 'type-fest';\nimport type { PrimitiveLinkProps } from '../primitives/PrimitiveLink';\nimport { PrimitiveLink } from '../primitives/PrimitiveLink';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface StyledLinkProps {\n disabled?: boolean;\n noUnderline?: boolean;\n}\n\nconst StyledLink = styled(PrimitiveLink).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['disabled', 'noUnderline'].includes(prop),\n})<StyledLinkProps & PrimitiveLinkProps>`\n text-decoration: ${({ noUnderline }) => (noUnderline ? 'none' : 'underline')};\n\n ${({ disabled, theme, noUnderline }) => `\n ${disabled ? `color: ${theme.kitt.typography.link.disabledColor};` : ''}\n ${\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\n &:hover, &:active, .kitt-hover & {\n text-decoration: ${noUnderline ? 'underline' : 'none'};\n }\n `\n : ''\n }`}\n`;\n\nexport interface TypographyLinkProps extends StyledLinkProps, Except<TypographyPropsWithoutRole, 'children'> {\n children: NonNullable<ReactNode>;\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: PrimitiveLinkProps['href'];\n hrefAttrs?: PrimitiveLinkProps['hrefAttrs'];\n onPress: PrimitiveLinkProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n href,\n hrefAttrs,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyledLink\n disabled={disabled}\n noUnderline={noUnderline}\n href={href}\n hrefAttrs={hrefAttrs}\n accessibilityRole=\"link\"\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </Typography>\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(PrimitiveView)`\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(PrimitiveView)`\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 { breakpoints, 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), breakpoints };\n }, [width]);\n}\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport type { KittTheme } from '../../../themes/default';\nimport { useKittTheme } from '../../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context)}</KittThemeProvider>;\n },\n});\n","import { makeDecorator } from '@storybook/addons';\nimport React from 'react';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nexport const SafeAreaProviderDecorator = makeDecorator({\n name: 'SafeAreaProviderDecorator',\n parameterName: 'safeAreaProvider',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <SafeAreaProvider>{storyFn(context)}</SafeAreaProvider>;\n },\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":["PrimitiveView","NativeView","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","color","size","align","Icon","icon","spin","clonedIcon","React","cloneElement","PrimitiveText","NativeText","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","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","defaultBase","TypographyHeading","displayName","Text","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","AvatarContent","src","uri","width","height","Avatar","rest","TypographyIconInheritColor","useTheme","TypographyIconSpecifiedColor","TypographyIcon","getTextColorByType","isPressed","disabled","ButtonText","Content","stretch","iconOnly","iconPosition","value","spacing","ButtonIcon","testID","ButtonContent","iconSpin","Boolean","sharedIconProps","button","iconSize","PrimitivePressable","NativePressable","ButtonPressable","minWidth","maxWidth","minHeight","disabledBackgroundColor","pressedBackgroundColor","contentPadding","borderRadius","disabledBorderColor","borderWidth","Button","href","hrefAttrs","onPress","useState","setIsPressed","sharedProps","handleButtonPressIn","handleButtonPressOut","Container","card","padding","borderColor","Card","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","handleOnPress","Linking","openURL","err","console","error","WebBrowser","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","PressableIconButton","iconButton","AnimatedIconButtonBackground","View","white","AnimatedViewContainer","PressableAnimatedContainer","pressed","useSharedValue","opacityStyles","useAnimatedStyle","opacity","withSpring","scaleStyles","scale","active","IconButtonContentBorder","IconButtonContent","IconButton","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","SideContent","getActivityIndicatorSize","Loader","colorHex","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","Message","onDismiss","OverlayPressable","StyleSheet","absoluteFillObject","overlay","dark","Overlay","PrimitiveScrollView","ScrollView","BodyView","ModalBody","FooterView","separator","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","palettes","lateOcean","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","PrimitiveLink","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","includes","direction","storyPadding","getBackgroundColorFromBlockColor","getTypographyColorFromBlockColor","StoryBlockBackgroundContext","StoryBlockColorContext","useStoryBlockColor","storyBlockColor","StyledStoryBlockView","background","StoryBlock","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StoryContainer","Story","title","contentContainerStyle","StyledSection","StorySection","className","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","tag","getLabelColor","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","hoverBackgroundColor","focusBorderColor","cardLateOceanTheme","colorsLateOceanTheme","primaryLight","accent","accentLight","success","correct","danger","hover","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","transition","property","timingFunction","medium","listItemLateOceanTheme","shadowsLateOceanTheme","tagLateOceanTheme","fill","outline","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","bold","header1","header2","header3","header4","header5","link","disabledColor","breakpoints","values","small","large","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","shadows","Tooltip","StyledLink","noUnderline","TypographyLink","matchWindowSize","currentWidth","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","useMemo","kittTheme","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","SafeAreaProviderDecorator","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
|