@ornikar/kitt-universal 1.0.2 → 1.2.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/definitions/Avatar/Avatar.d.ts.map +1 -1
  3. package/dist/definitions/Button/Button.d.ts +1 -1
  4. package/dist/definitions/Button/Button.d.ts.map +1 -1
  5. package/dist/definitions/Button/ButtonContainer.d.ts +3 -3
  6. package/dist/definitions/Button/ButtonContainer.d.ts.map +1 -1
  7. package/dist/definitions/Button/ButtonContent.d.ts +2 -1
  8. package/dist/definitions/Button/ButtonContent.d.ts.map +1 -1
  9. package/dist/definitions/Card/Card.d.ts.map +1 -1
  10. package/dist/definitions/FullScreenModal/Body.d.ts.map +1 -1
  11. package/dist/definitions/FullScreenModal/FullScreenModal.d.ts.map +1 -1
  12. package/dist/definitions/FullScreenModal/Header.d.ts.map +1 -1
  13. package/dist/definitions/Icon/Icon.d.ts.map +1 -1
  14. package/dist/definitions/Icon/SpinningIcon.web.d.ts +2 -5
  15. package/dist/definitions/Icon/SpinningIcon.web.d.ts.map +1 -1
  16. package/dist/definitions/IconButton/IconButton.d.ts +11 -0
  17. package/dist/definitions/IconButton/IconButton.d.ts.map +1 -0
  18. package/dist/definitions/IconButton/PressableAnimatedContainer.d.ts +13 -0
  19. package/dist/definitions/IconButton/PressableAnimatedContainer.d.ts.map +1 -0
  20. package/dist/definitions/IconButton/PressableIconButton.d.ts +8 -0
  21. package/dist/definitions/IconButton/PressableIconButton.d.ts.map +1 -0
  22. package/dist/definitions/ListItem/ListItem.d.ts +5 -3
  23. package/dist/definitions/ListItem/ListItem.d.ts.map +1 -1
  24. package/dist/definitions/ListItem/ListItemContent.d.ts +2 -2
  25. package/dist/definitions/ListItem/ListItemContent.d.ts.map +1 -1
  26. package/dist/definitions/ListItem/ListItemSideContent.d.ts +4 -3
  27. package/dist/definitions/ListItem/ListItemSideContent.d.ts.map +1 -1
  28. package/dist/definitions/Loader/LargeLoader.web.d.ts.map +1 -1
  29. package/dist/definitions/Message/Message.d.ts.map +1 -1
  30. package/dist/definitions/Modal/Body.d.ts +2 -4
  31. package/dist/definitions/Modal/Body.d.ts.map +1 -1
  32. package/dist/definitions/Modal/Footer.d.ts.map +1 -1
  33. package/dist/definitions/Modal/Header.d.ts.map +1 -1
  34. package/dist/definitions/Modal/Modal.d.ts +2 -2
  35. package/dist/definitions/Modal/Modal.d.ts.map +1 -1
  36. package/dist/definitions/Overlay/Overlay.d.ts +2 -2
  37. package/dist/definitions/Overlay/Overlay.d.ts.map +1 -1
  38. package/dist/definitions/Tag/Tag.d.ts +6 -3
  39. package/dist/definitions/Tag/Tag.d.ts.map +1 -1
  40. package/dist/definitions/forms/InputField/InputField.d.ts.map +1 -1
  41. package/dist/definitions/forms/InputText/InputText.d.ts +0 -1
  42. package/dist/definitions/forms/InputText/InputText.d.ts.map +1 -1
  43. package/dist/definitions/forms/Radio/Radio.d.ts.map +1 -1
  44. package/dist/definitions/index.d.ts +15 -1
  45. package/dist/definitions/index.d.ts.map +1 -1
  46. package/dist/definitions/primitives/PrimitiveLink.d.ts +11 -0
  47. package/dist/definitions/primitives/PrimitiveLink.d.ts.map +1 -0
  48. package/dist/definitions/primitives/PrimitiveLink.web.d.ts +4 -0
  49. package/dist/definitions/primitives/PrimitiveLink.web.d.ts.map +1 -0
  50. package/dist/definitions/primitives/PrimitivePressable.d.ts +16 -0
  51. package/dist/definitions/primitives/PrimitivePressable.d.ts.map +1 -0
  52. package/dist/definitions/primitives/PrimitivePressable.web.d.ts +4 -0
  53. package/dist/definitions/primitives/PrimitivePressable.web.d.ts.map +1 -0
  54. package/dist/definitions/primitives/PrimitiveScrollView.d.ts +8 -0
  55. package/dist/definitions/primitives/PrimitiveScrollView.d.ts.map +1 -0
  56. package/dist/definitions/primitives/PrimitiveScrollView.web.d.ts +4 -0
  57. package/dist/definitions/primitives/PrimitiveScrollView.web.d.ts.map +1 -0
  58. package/dist/definitions/primitives/PrimitiveText.d.ts +14 -0
  59. package/dist/definitions/primitives/PrimitiveText.d.ts.map +1 -0
  60. package/dist/definitions/primitives/PrimitiveText.web.d.ts +6 -0
  61. package/dist/definitions/primitives/PrimitiveText.web.d.ts.map +1 -0
  62. package/dist/definitions/primitives/PrimitiveView.d.ts +21 -0
  63. package/dist/definitions/primitives/PrimitiveView.d.ts.map +1 -0
  64. package/dist/definitions/primitives/PrimitiveView.web.d.ts +23 -0
  65. package/dist/definitions/primitives/PrimitiveView.web.d.ts.map +1 -0
  66. package/dist/definitions/primitives/helpers.d.ts +7 -0
  67. package/dist/definitions/primitives/helpers.d.ts.map +1 -0
  68. package/dist/definitions/primitives/reset.d.ts +2 -0
  69. package/dist/definitions/primitives/reset.d.ts.map +1 -0
  70. package/dist/definitions/story-components/Flex.d.ts +9 -0
  71. package/dist/definitions/story-components/Flex.d.ts.map +1 -0
  72. package/dist/definitions/story-components/Story.d.ts.map +1 -1
  73. package/dist/definitions/story-components/StoryBlock.d.ts +11 -0
  74. package/dist/definitions/story-components/StoryBlock.d.ts.map +1 -0
  75. package/dist/definitions/story-components/StoryContainer.d.ts +9 -0
  76. package/dist/definitions/story-components/StoryContainer.d.ts.map +1 -0
  77. package/dist/definitions/story-components/StoryContainer.web.d.ts +4 -0
  78. package/dist/definitions/story-components/StoryContainer.web.d.ts.map +1 -0
  79. package/dist/definitions/story-components/StoryGrid.d.ts +2 -1
  80. package/dist/definitions/story-components/StoryGrid.d.ts.map +1 -1
  81. package/dist/definitions/story-components/StorySection.d.ts +23 -0
  82. package/dist/definitions/story-components/StorySection.d.ts.map +1 -0
  83. package/dist/definitions/story-components/StoryTitle.d.ts.map +1 -1
  84. package/dist/definitions/story-components/index.d.ts +10 -1
  85. package/dist/definitions/story-components/index.d.ts.map +1 -1
  86. package/dist/definitions/story-components/theme.d.ts +2 -0
  87. package/dist/definitions/story-components/theme.d.ts.map +1 -0
  88. package/dist/definitions/themes/default.d.ts +64 -3
  89. package/dist/definitions/themes/default.d.ts.map +1 -1
  90. package/dist/definitions/themes/late-ocean/buttonLateOceanTheme.d.ts +8 -0
  91. package/dist/definitions/themes/late-ocean/buttonLateOceanTheme.d.ts.map +1 -1
  92. package/dist/definitions/themes/late-ocean/iconButton.d.ts +36 -0
  93. package/dist/definitions/themes/late-ocean/iconButton.d.ts.map +1 -0
  94. package/dist/definitions/themes/late-ocean/tagLateOceanTheme.d.ts +30 -3
  95. package/dist/definitions/themes/late-ocean/tagLateOceanTheme.d.ts.map +1 -1
  96. package/dist/definitions/themes/late-ocean/typographyLateOceanTheme.d.ts +3 -0
  97. package/dist/definitions/themes/late-ocean/typographyLateOceanTheme.d.ts.map +1 -1
  98. package/dist/definitions/typography/Typography.d.ts +9 -3
  99. package/dist/definitions/typography/Typography.d.ts.map +1 -1
  100. package/dist/definitions/typography/TypographyLink.d.ts +6 -4
  101. package/dist/definitions/typography/TypographyLink.d.ts.map +1 -1
  102. package/dist/definitions/utils/tests/styled-component-typing-test.d.ts +18 -0
  103. package/dist/definitions/utils/tests/styled-component-typing-test.d.ts.map +1 -0
  104. package/dist/definitions/utils/windowSize/createWindowSizeHelper.d.ts +2 -2
  105. package/dist/index-browser-all.es.android.js +658 -161
  106. package/dist/index-browser-all.es.android.js.map +1 -1
  107. package/dist/index-browser-all.es.ios.js +658 -161
  108. package/dist/index-browser-all.es.ios.js.map +1 -1
  109. package/dist/index-browser-all.es.js +694 -153
  110. package/dist/index-browser-all.es.js.map +1 -1
  111. package/dist/index-browser-all.es.web.js +804 -182
  112. package/dist/index-browser-all.es.web.js.map +1 -1
  113. package/dist/index-node-14.17.cjs.js +712 -135
  114. package/dist/index-node-14.17.cjs.js.map +1 -1
  115. package/dist/tsbuildinfo +1 -1
  116. package/package.json +10 -5
  117. package/dist/definitions/story-components/Section.d.ts +0 -18
  118. package/dist/definitions/story-components/Section.d.ts.map +0 -1
  119. package/dist/styles.css +0 -117
@@ -1 +1 @@
1
- {"version":3,"file":"index-node-14.17.cjs.js","sources":["../src/Icon/SpinningIcon.tsx","../src/Icon/Icon.tsx","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/ButtonContainer.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/Button/useButton.ts","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/KittBreakpoints.ts","../src/forms/InputField/InputField.tsx","../src/forms/InputText/useInputText.ts","../src/forms/InputText/InputText.tsx","../src/forms/Label/Label.tsx","../src/forms/Radio/Radio.tsx","../src/forms/TextArea/TextArea.tsx","../src/FullScreenModal/Body.tsx","../src/FullScreenModal/Header.tsx","../src/FullScreenModal/FullScreenModal.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/Loader/Loader.tsx","../src/Loader/LargeLoader.tsx","../src/Message/Message.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/Notification/Notification.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Section.tsx","../src/story-components/Story.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/avatarLateOceanTheme.ts","../src/themes/late-ocean/buttonLateOceanTheme.ts","../src/themes/late-ocean/cardLateOceanTheme.ts","../src/themes/late-ocean/colorsLateOceanTheme.ts","../src/themes/late-ocean/feedbackMessageLateOceanTheme.ts","../src/themes/late-ocean/inputFieldLateOceanTheme.ts","../src/themes/late-ocean/inputLateOceanTheme.ts","../src/themes/late-ocean/radioLateOceanTheme.ts","../src/themes/late-ocean/formLateOceanTheme.ts","../src/themes/late-ocean/fullScreenModalLateOceanTheme.ts","../src/themes/late-ocean/listItemLateOceanTheme.ts","../src/themes/late-ocean/shadowsLateOceanTheme.ts","../src/themes/late-ocean/tagLateOceanTheme.ts","../src/themes/late-ocean/typographyLateOceanTheme.ts","../src/themes/default.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyLink.tsx","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { ReactElement, ReactNode } from 'react';\nimport React, { useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nexport interface SpinningIconProps {\n children: ReactNode;\n}\n\nexport function SpinningIcon({ children }: SpinningIconProps): ReactElement {\n const animationRef = useRef(new Animated.Value(0));\n\n const rotation = animationRef.current.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n useEffect(() => {\n if (process.env.TESTS) return undefined;\n\n const animation = Animated.loop(\n Animated.timing(animationRef.current, {\n toValue: 1,\n duration: 1100,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n );\n animation.start();\n return () => {\n if (process.env.TESTS) return undefined;\n\n animation.stop();\n return undefined;\n };\n }, []);\n\n return <Animated.View style={{ transform: [{ rotate: rotation }] }}>{children}</Animated.View>;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SpinningIcon } from './SpinningIcon';\n\nexport interface IconProps {\n icon: ReactElement;\n size?: number;\n color: string;\n spin?: boolean;\n align?: ViewStyle['alignSelf'];\n testID?: ViewStyle['testID'];\n}\n\ninterface IconContainerProps {\n size?: number;\n color: string;\n align?: ViewStyle['alignSelf'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n color: ${({ color }) => color};\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n align-self: ${({ align = 'auto' }) => align};\n`;\n\nexport function Icon({ icon, size = 20, spin, align, color }: IconProps): ReactElement {\n const clonedIcon = React.cloneElement(icon, { color });\n\n return (\n <IconContainer align={align} size={size} color={color}>\n {spin ? <SpinningIcon>{clonedIcon}</SpinningIcon> : clonedIcon}\n </IconContainer>\n );\n}\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport React, { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\n\ntype TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\ntype TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\ntype TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold' | 'italic';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'grey'\n | 'grey-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst TypographyTypeContext = createContext<TypographyType | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\ninterface StyledTypographyProps {\n isHeader: boolean;\n type?: TypographyType;\n variant: TypographyVariant;\n color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, isHeader, type, variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n\n return `\n /* type */\n ${\n !type\n ? ''\n : `\n font-family: ${isHeader ? headers.fontFamily[variant] : bodies.fontFamily[variant]};\n font-size: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.fontSize\n : bodies.configs[type as TypographyBodyType].baseAndSmall.fontSize\n };\n line-height: ${\n isHeader\n ? headers.configs[type as TypographyHeaderType].baseAndSmall.lineHeight\n : bodies.configs[type as TypographyBodyType].baseAndSmall.lineHeight\n };\n `\n }\n\n /* variant */\n font-weight: ${isHeader ? headers.fontWeight : bodies.fontWeight[variant]};\n font-style: ${isHeader ? headers.fontStyle : bodies.fontStyle[variant]};\n `;\n }}\n\n /* color */\n ${({ theme, color }) =>\n !color\n ? ''\n : `\n color: ${theme.kitt.typography.colors[color]};\n text-decoration-color: ${theme.kitt.typography.colors[color]};\n `}\n`;\n\nexport interface TypographyProps extends Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | null;\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n small?: TypographyType;\n medium?: TypographyType;\n large?: TypographyType;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nconst isTypeHeader = (type: TypographyType): boolean => type.startsWith('header');\nconst isTypographyHeader = (base: TypographyType | undefined, typeInContext: TypographyType | undefined): boolean => {\n if (base) return isTypeHeader(base);\n if (typeInContext) return isTypeHeader(typeInContext);\n\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function Typography({\n accessibilityRole,\n base,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const typeInContext = useContext(TypographyTypeContext);\n const isHeader = isTypographyHeader(base, typeInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n const colorWithDefaultToBlack: TypographyColor | undefined = color ?? (typeInContext ? undefined : 'black');\n\n const content = base ? (\n // use the type and pass the type to the context for children\n <TypographyTypeContext.Provider value={base}>\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n type={base}\n variant={nonNullableVariant}\n {...otherProps}\n />\n </TypographyTypeContext.Provider>\n ) : (\n <StyledTypography\n color={colorWithDefaultToBlack}\n isHeader={isHeader}\n variant={nonNullableVariant}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n // @ts-expect-error paragraph is not allowed in react-native but exists in react-native-web\n return <Typography accessibilityRole=\"paragraph\" {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (level: string): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" {...props} aria-level={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.h1 = createHeading('1');\nTypography.h2 = createHeading('2');\nTypography.h3 = createHeading('3');\nTypography.h4 = createHeading('4');\nTypography.h5 = createHeading('5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { Typography } from '../typography/Typography';\n\nconst getFirstCharacter = (string: string): string => (string ? string[0] : '');\n\nconst getInitials = (firstname: string, lastname: string): string =>\n (getFirstCharacter(firstname) + getFirstCharacter(lastname)).toUpperCase();\n\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n firstname?: string | null;\n lastname?: string | null;\n round?: boolean;\n light?: boolean;\n}\n\nexport interface StyledAvatarViewProps extends Pick<AvatarProps, 'round' | 'light'> {\n size: number;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ round, size }) => (round ? size / 2 : 10)}px;\n background-color: ${({ theme, light }) =>\n light ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ size }) => size}px;\n width: ${({ size }) => size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\nfunction AvatarContent({ size = 40, src, firstname, lastname, light }: AvatarProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text base=\"body-small\" variant=\"bold\" color={light ? 'black' : 'white'}>\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={light ? 'black' : 'white'} size={size / 2} />;\n}\n\nexport function Avatar({ size = 40, ...rest }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView {...rest} size={size}>\n <AvatarContent {...rest} size={size} />\n </StyledAvatarView>\n );\n}\n","import styled from 'styled-components/native';\nimport type { ButtonType } from './Button';\n\ninterface ButtonContainerProps {\n type: ButtonType;\n isPressed?: boolean;\n disabled?: boolean;\n stretch?: boolean;\n}\n\nexport const ButtonContainer = styled.Pressable<ButtonContainerProps>`\n min-width: ${({ theme }) => theme.kitt.button.minWidth};\n max-width: ${({ theme, stretch }) => (stretch ? 'auto' : theme.kitt.button.maxWidth)};\n width: ${({ stretch }) => (stretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight};\n background-color: ${({ theme, isPressed, disabled, type }) => {\n if (disabled) {\n return theme.kitt.button[type].disabledBackgroundColor;\n }\n\n return isPressed ? theme.kitt.button[type].pressedBackgroundColor : theme.kitt.button[type].backgroundColor;\n }};\n padding: ${({ theme }) => theme.kitt.button.contentPadding.default};\n flex-direction: row;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius};\n border-color: ${({ theme, disabled, type }) =>\n disabled ? theme.kitt.button[type].disabledBorderColor : 'transparent'};\n border-width: ${({ theme }) => theme.kitt.button.borderWidth};\n`;\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'];\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n const theme = useTheme();\n return <Icon {...props} color={theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconSpecifiedColor({\n color,\n ...otherProps\n}: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...otherProps} color={theme.kitt.typography.colors[color]} />;\n}\n\nexport function TypographyIcon({ color, ...otherProps }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...otherProps} />;\n }\n\n return <TypographyIconInheritColor {...otherProps} />;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType } from './Button';\n\nconst getTextColorByType = (type: ButtonType, isPressed: boolean, disabled: boolean): TypographyColor => {\n if (disabled) return 'black-light';\n switch (type) {\n case 'primary':\n return 'white';\n case 'subtle':\n return isPressed ? 'primary-light' : 'primary';\n case 'subtle-dark':\n return isPressed ? 'black-light' : 'black';\n case 'secondary':\n default:\n return 'black';\n }\n};\n\nconst ButtonText = styled(Typography.Text)`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n`;\n\ninterface ContentProps {\n stretch?: boolean;\n iconOnly?: boolean;\n}\n\nconst Content = styled.View<ContentProps>`\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /*\n On native code flex grow does not work as expected which cause an issue with the flex props.\n In order to occupy only the needed space, we enable flex grow only when stretched\n */\n flex: ${({ stretch, iconOnly }) => `${stretch || iconOnly ? 1 : 0} 1 auto`};\n`;\n\ninterface IconContainerProps {\n iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst IconContainer = styled.View<IconContainerProps>`\n ${({ theme, iconPosition }) => {\n const value = theme.kitt.spacing * 3;\n\n if (iconPosition === 'left') {\n return `margin: 0 ${value}px 0 0;`;\n }\n\n return `margin: 0 0 0 ${value}px;`;\n }}\n`;\n\ninterface ButtonIconProps {\n icon: NonNullable<ButtonContentProps['icon']>;\n spin: ButtonProps['iconSpin'];\n color: TypographyColor;\n size: number;\n iconPosition: ButtonContentProps['iconPosition'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, spin, color, size, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <IconContainer iconPosition={iconPosition}>\n <TypographyIcon icon={icon} spin={spin} color={color} size={size} testID={testID} />\n </IconContainer>\n );\n}\n\ninterface ButtonContentProps extends Exclude<ButtonProps, 'onPress'> {\n isPressed?: boolean;\n type: NonNullable<ButtonType>;\n}\n\nexport function ButtonContent({\n type,\n isPressed,\n stretch,\n icon,\n iconPosition,\n iconSpin,\n disabled,\n children,\n}: ButtonContentProps): ReactElement | null {\n const color = getTextColorByType(type, Boolean(isPressed), Boolean(disabled));\n const theme = useTheme();\n\n const sharedIconProps = {\n spin: iconSpin,\n color,\n size: theme.kitt.button.iconSize,\n };\n\n if (__DEV__) {\n if (!(children || icon)) {\n throw new Error('kitt(Button): You should provide at least a children or a icon');\n }\n }\n\n if (!children) {\n return (\n <Content iconOnly stretch={stretch}>\n {/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */}\n <TypographyIcon {...sharedIconProps} icon={icon!} />\n </Content>\n );\n }\n\n return (\n <Content stretch={stretch}>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} testID=\"button-left-icon\" />\n ) : null}\n\n <ButtonText base=\"body\" color={color} variant=\"bold\">\n {children}\n </ButtonText>\n\n {icon && iconPosition === 'right' ? (\n <ButtonIcon {...sharedIconProps} icon={icon} iconPosition={iconPosition} />\n ) : null}\n </Content>\n );\n}\n","import { useState } from 'react';\n\nexport const useButton = (): {\n isPressed: boolean;\n handleButtonPressIn: () => void;\n handleButtonPressOut: () => void;\n} => {\n const [isPressed, setIsPressed] = useState<boolean>(false);\n\n const handleButtonPressIn = (): void => setIsPressed(true);\n const handleButtonPressOut = (): void => setIsPressed(false);\n\n return { isPressed, handleButtonPressIn, handleButtonPressOut };\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { ButtonContainer } from './ButtonContainer';\nimport { ButtonContent } from './ButtonContent';\nimport { useButton } from './useButton';\n\nexport type ButtonType = 'primary' | 'secondary' | 'subtle' | 'subtle-dark';\n\ntype IconPosition = 'right' | 'left';\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n disabled?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n iconSpin?: boolean;\n stretch?: boolean;\n testID?: string;\n onPress?: () => void;\n}\n\nexport function Button({\n children,\n type = 'secondary',\n icon,\n iconPosition = 'left',\n iconSpin,\n stretch,\n disabled,\n onPress,\n testID,\n}: ButtonProps): ReactElement {\n const { isPressed, handleButtonPressIn, handleButtonPressOut } = useButton();\n\n const sharedProps = {\n type,\n stretch,\n disabled,\n };\n\n return (\n <ButtonContainer\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: When designs are defined, update with the proper onPress styles to mimic TouchableHighlight\n // underlayColor={globalTheme.button[type].pressedBackgroundColor}\n {...sharedProps}\n isPressed={isPressed}\n accessibilityRole=\"button\"\n testID={testID}\n onPress={onPress}\n onPressIn={handleButtonPressIn}\n onPressOut={handleButtonPressOut}\n >\n <ButtonContent {...sharedProps} icon={icon} iconPosition={iconPosition} iconSpin={iconSpin}>\n {children}\n </ButtonContent>\n </ButtonContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\n\ntype CardType = 'primary' | 'secondary' | 'subtle';\n\nexport interface CardProps {\n children: NonNullable<ReactNode>;\n type: CardType;\n}\ninterface ContainerProps {\n type: CardType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.card[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.card.padding};\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius};\n border-width: ${({ theme }) => theme.kitt.card.borderWidth};\n border-color: ${({ theme, type }) => theme.kitt.card[type].borderColor};\n`;\n\nexport function Card({ children, type }: CardProps): ReactElement {\n return <Container type={type}>{children}</Container>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../InputFormState';\n\nexport interface InputFeedbackProps {\n state?: InputFormState;\n testID?: TypographyProps['testID'];\n children: NonNullable<ReactNode>;\n}\n\nconst getColorFromState = (state?: InputFormState): TypographyColor => {\n switch (state) {\n case 'invalid':\n return 'danger';\n default:\n return 'grey';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import React from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../../KittBreakpoints';\n\nconst FieldContainer = styled.View`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled.View`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.forms.inputField.iconMarginLeft}px;\n`;\n\nexport interface InputFieldProps {\n label?: ReactNode;\n labelFeedback?: ReactNode;\n input: NonNullable<ReactNode>;\n feedback?: ReactNode;\n}\n\nexport function InputField({ label, labelFeedback, input, feedback }: InputFieldProps): ReactElement {\n return (\n <FieldContainer>\n {label ? (\n <FieldLabelContainer>\n <LabelContainer>{label}</LabelContainer>\n {labelFeedback}\n </FieldLabelContainer>\n ) : null}\n {input}\n {feedback ? <FeedbackContainer>{feedback}</FeedbackContainer> : null}\n </FieldContainer>\n );\n}\n","import { useState } from 'react';\n\nexport const useInputText = (): {\n isFocused: boolean;\n handleInputFocus: () => void;\n handleInputBlur: () => void;\n isPasswordVisible: boolean;\n togglePasswordVisibility: () => void;\n} => {\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [isPasswordVisible, setIsPasswordVisible] = useState<boolean>(false);\n\n const handleInputFocus = (): void => setIsFocused(true);\n const handleInputBlur = (): void => setIsFocused(false);\n\n const togglePasswordVisibility = (): void => setIsPasswordVisible((isVisible) => !isVisible);\n\n return { isFocused, handleInputFocus, handleInputBlur, togglePasswordVisibility, isPasswordVisible };\n};\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport React, { forwardRef } from 'react';\nimport type { KeyboardTypeOptions, TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled, { css, useTheme } from 'styled-components/native';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport type { InputFormState } from '../InputFormState';\nimport { useInputText } from './useInputText';\n\ntype InputTextType = 'text' | 'email' | 'password' | 'username';\nexport type InputTextState = 'default' | 'invalid' | 'disabled' | 'hover' | 'focus';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n type: InputTextType;\n minHeight?: number;\n state?: InputFormState;\n /** @internal */\n internalForceState?: InputTextState;\n}\n\nexport interface TextInputMixinProps {\n state: InputTextState;\n}\ninterface InputProps extends TextInputMixinProps {\n minHeight: number;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n /* stylelint-disable declaration-property-value-allowed-list */\n background-color: ${({ theme, state }) =>\n state === 'disabled'\n ? theme.kitt.forms.input.states.disabled.backgroundColor\n : theme.kitt.forms.input.states.default.backgroundColor};\n border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth};\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius};\n border-color: ${({ theme, state }) => theme.kitt.forms.input.states[state].borderColor};\n font-size: ${({ theme }) => theme.kitt.typography.types.bodies.configs.body.baseAndSmall.fontSize};\n color: ${({ theme, state }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[state].color]};\n font-family: ${({ theme }) => theme.kitt.typography.types.bodies.fontFamily.regular};\n`;\n\nconst Input = styled.TextInput<InputProps>`\n /* stylelint-disable declaration-bang-space-before */\n /* stylelint-disable comment-word-disallowed-list */\n\n /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) =>\n !multiline && Platform.OS === 'ios' ? theme.kitt.forms.input.paddingSingleLineIOS : theme.kitt.forms.input.padding};\n line-height: ${({ theme, multiline }) =>\n !multiline && Platform.OS === 'ios' ? 0 : theme.kitt.typography.types.bodies.configs.body.baseAndSmall.lineHeight};\n min-height: ${({ minHeight }) => minHeight}px;\n`;\n\nconst Container = styled.View`\n margin-top: ${({ theme }) => theme.kitt.forms.input.marginTop};\n margin-bottom: ${({ theme }) => theme.kitt.forms.input.marginBottom};\n`;\n\nconst PasswordButtonContainer = styled.Pressable`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.forms.input.passwordButtonIconSize / 2}px;\n`;\n\nconst getInputState = ({\n isDisabled,\n isFocused,\n formState,\n}: {\n isFocused: boolean;\n formState: InputFormState;\n isDisabled: boolean;\n}): InputTextState => {\n if (isDisabled) return 'disabled';\n if (isFocused) return 'focus';\n if (formState === 'invalid') return 'invalid';\n return 'default';\n};\n\nconst keyboardTypeByTextInputType: Record<InputTextType, KeyboardTypeOptions> = {\n text: 'default',\n email: 'email-address',\n password: 'default',\n username: 'default',\n};\n\nconst autoCompleteTypeByType: Record<InputTextType, 'off' | 'email' | 'password' | 'name'> = {\n text: 'off',\n email: 'email',\n password: 'password',\n username: 'name',\n};\n\nconst autoCorrectByType: Record<InputTextType, boolean> = {\n text: true,\n email: false,\n password: false,\n username: false,\n};\n\nconst textContentTypeByType: Record<InputTextType, 'none' | 'emailAddress' | 'password' | 'username'> = {\n text: 'none',\n email: 'emailAddress',\n password: 'password',\n username: 'username',\n};\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n minHeight = 0,\n type,\n state: formState,\n internalForceState,\n disabled = false,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const { isFocused, handleInputBlur, handleInputFocus, isPasswordVisible, togglePasswordVisibility } =\n useInputText();\n const theme = useTheme();\n const state = internalForceState || getInputState({ isFocused, isDisabled: disabled, formState });\n return (\n <Container>\n <Input\n ref={ref}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardTypeByTextInputType[type]}\n autoCompleteType={autoCompleteTypeByType[type]}\n autoCorrect={autoCorrectByType[type]}\n minHeight={minHeight}\n textContentType={textContentTypeByType[type]}\n placeholderTextColor={theme.kitt.typography.colors[theme.kitt.forms.input.placeholderColor]}\n selectionColor={theme.kitt.forms.input.selectionColor}\n secureTextEntry={type === 'password' && !isPasswordVisible}\n {...props}\n state={state}\n onFocus={(e) => {\n handleInputFocus();\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n handleInputBlur();\n if (onBlur) onBlur(e);\n }}\n />\n {type === 'password' && !disabled && (\n <PasswordButtonContainer onPress={togglePasswordVisibility}>\n <TypographyIcon\n icon={isPasswordVisible ? <EyeIcon /> : <EyeOffIcon />}\n size={theme.kitt.forms.input.passwordButtonIconSize}\n color={theme.kitt.forms.input.states[state].passwordButtonIconColor}\n />\n </PasswordButtonContainer>\n )}\n </Container>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface LabelProps {\n htmlFor: string;\n children: NonNullable<ReactNode>;\n}\n\nexport function Label({ htmlFor, children }: LabelProps): ReactElement {\n return (\n <Typography.Text base=\"body\">\n {Platform.OS === 'web' ? <label htmlFor={htmlFor}>{children}</label> : children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { PressableProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface RadioProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n right?: boolean;\n children?: NonNullable<ReactNode>;\n value: string;\n onChange: (newValue: string) => void;\n}\n\ninterface OuterRadioProps {\n disabled: boolean;\n}\n\nconst OuterRadio = styled.View<OuterRadioProps>`\n background-color: ${({ theme, disabled }) =>\n theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n border-width: ${({ theme }) => theme.kitt.forms.radio.unchecked.borderWidth};\n border-color: ${({ theme, disabled }) => theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].borderColor};\n`;\nconst SelectedOuterRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n justify-content: center;\n align-items: center;\n`;\nconst SelectedInnerRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.innerBackgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n height: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize / 2}px;\n`;\nconst Container = styled.Pressable`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n accessible={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface TextAreaProps extends Omit<InputTextProps, 'type'> {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n return <InputText multiline {...props} type=\"text\" minHeight={theme.kitt.forms.input.textAreaMinHeight} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\nconst Body = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding-right: ${theme.kitt.spacing * 12}px;\n padding-left: ${theme.kitt.spacing * 12}px;`,\n `padding-right: ${theme.kitt.spacing * 6}px;\n padding-left: ${theme.kitt.spacing * 6}px;`,\n )}\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n flex: 1;\n`;\n\ninterface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function FullScreenModalBody({ children }: BodyProps): ReactElement {\n return <Body>{children}</Body>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React, { useState } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled.View<SideContainerProps>`\n ${({ theme, side = 'left' }) => {\n const padding = theme.kitt.spacing * 2;\n\n if (side === 'left') {\n return `padding-right: ${padding}px;`;\n }\n\n return `padding-left: ${padding}px;`;\n }}\n`;\n\nfunction getHeaderHorizontalMediumPadding(spacing: number): number {\n return spacing * 6;\n}\n\ninterface HeaderProps {\n insetTop?: number;\n}\n\nconst Header = styled.View<HeaderProps>`\n ${({ theme, insetTop = 0 }) => {\n const paddingTop = insetTop + theme.kitt.fullScreenModal.header.paddingVertical;\n const { paddingVertical, paddingHorizontal } = theme.kitt.fullScreenModal.header;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding: ${paddingTop}px ${getHeaderHorizontalMediumPadding(theme.kitt.spacing)}px ${paddingVertical}px;`,\n `padding: ${paddingTop}px ${paddingHorizontal}px ${paddingVertical}px;`,\n );\n }};\n border-bottom-color: ${({ theme }) => theme.kitt.fullScreenModal.header.borderColor};\n border-bottom-width: 1px;\n flex-direction: row;\n align-items: center;\n`;\n\ninterface HeaderContentProps {\n windowWidth: number;\n leftWidth: number;\n rightWidth: number;\n}\n\nconst HeaderContent = styled.View<HeaderContentProps>`\n ${({ theme, leftWidth, rightWidth, windowWidth }) => {\n /*\n * Since we don't have controll over the rendered left and right elements,\n * we must apply some logic to give the title all the available space\n */\n const sideElementMaxWidth = Math.max(leftWidth, rightWidth);\n\n const parentHorizontalPadding = theme.kitt.fullScreenModal.header.paddingHorizontal * 2;\n const parentHorizontalPaddingMedium = getHeaderHorizontalMediumPadding(theme.kitt.spacing) * 2;\n\n const computeWidth = (breakpointPadding: number): number =>\n windowWidth - breakpointPadding - sideElementMaxWidth * 2;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `width: ${computeWidth(parentHorizontalPaddingMedium)}px;`,\n `width: ${computeWidth(parentHorizontalPadding)}px;`,\n );\n }};\n ${({ leftWidth, rightWidth }) => {\n // Depending of the wider element, we must add a margin to fill the diff in space between elements\n const deltaMargin = Math.abs(leftWidth - rightWidth);\n\n if (leftWidth > rightWidth) {\n return `margin-right: ${deltaMargin}px;`;\n }\n\n return `margin-left: ${deltaMargin}px;`;\n }};\n justify-content: center;\n align-items: center;\n`;\n\nexport interface FullScreenModalHeaderProps {\n children: NonNullable<ReactNode>;\n right?: ReactNode;\n left?: ReactNode;\n}\n\nexport function FullScreenModalHeader({ children, right, left }: FullScreenModalHeaderProps): ReactElement {\n const { top } = useSafeAreaInsets();\n const dimensions = useWindowDimensions();\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(0);\n\n const handleLayoutChange = (event: LayoutChangeEvent, side: 'left' | 'right'): void => {\n // Prevents react to nullify event on rerenders\n event.persist();\n\n if (side === 'left') {\n setLeftWidth(event.nativeEvent.layout.width);\n return;\n }\n\n setRightWidth(event.nativeEvent.layout.width);\n };\n\n return (\n <Header insetTop={Platform.OS === 'ios' ? undefined : top}>\n {left ? <SideContainer onLayout={(e) => handleLayoutChange(e, 'left')}>{left}</SideContainer> : null}\n\n <HeaderContent windowWidth={dimensions.width} leftWidth={leftWidth} rightWidth={rightWidth}>\n {children}\n </HeaderContent>\n\n {right ? (\n <SideContainer side=\"right\" onLayout={(e) => handleLayoutChange(e, 'right')}>\n {right}\n </SideContainer>\n ) : null}\n </Header>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled.View`\n flex: 1 0 0%;\n align-self: center;\n`;\n\nexport function ListItemContent({ children, ...rest }: ListItemContentProps): ReactElement {\n return <ContentView {...rest}>{children}</ContentView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ViewProps, ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemSideContainerProps extends ViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled.View<ListItemSideContainerProps>`\n flex-direction: row;\n margin-left: ${({ theme, side }) => (side === 'right' ? theme.kitt.listItem.innerMargin : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? theme.kitt.listItem.innerMargin : 0)};\n`;\n\n// Handles the vertical alignment of the side elements of the list item\nexport function ListItemSideContainer({ children, side = 'left', ...rest }: ListItemSideContainerProps): ReactElement {\n return (\n <SideContainerView side={side} {...rest}>\n {children}\n </SideContainerView>\n );\n}\n\nexport interface ListItemSideContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled.View<ListItemSideContentProps>`\n align-self: ${({ align }) => align};\n`;\n\nexport function ListItemSideContent({ children, align = 'auto', ...rest }: ListItemSideContentProps): ReactElement {\n return (\n <SideContentView align={align} {...rest}>\n {children}\n </SideContentView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable } from 'react-native';\nimport styled from 'styled-components/native';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends PressableProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled.View<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}`;\n }\n\n if (borders === 'both') {\n return `border-top-width: ${borderWidth}; border-bottom-width: ${borderWidth}`;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({ children, withPadding, borders, left, right, ...rest }: ListItemProps): ReactElement {\n return (\n <Pressable {...rest}>\n <ContainerView withPadding={withPadding} borders={borders}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Pressable>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\n\nexport interface LoaderProps {\n color?: TypographyIconProps['color'];\n size?: TypographyIconProps['size'];\n}\n\nfunction getActivityIndicatorSize(size: number): number | 'small' | 'large' {\n if (Platform.OS === 'android') return size;\n return size < 36 ? 'small' : 'large';\n}\n\nexport function Loader({ color = 'primary', size = 20 }: LoaderProps): ReactElement {\n const theme = useTheme();\n const colorHex = theme.kitt.typography.colors[color];\n return <ActivityIndicator testID=\"ActivityIndicator\" color={colorHex} size={getActivityIndicatorSize(size)} />;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { LoaderProps } from './Loader';\nimport { Loader } from './Loader';\n\nexport interface LargeLoaderProps {\n color?: LoaderProps['color'];\n}\n\nexport function LargeLoader({ color = 'primary' }: LargeLoaderProps): ReactElement {\n return <Loader color={color} size={60} />;\n}\n","import { AlertCircleIcon, AlertTriangleIcon, CheckIcon, InfoIcon, XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\nconst xIconSize = 14;\nconst mainIconSize = 20;\n\nexport interface MessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n noRadius?: boolean;\n centeredText?: boolean;\n insets?: { top?: number };\n onDismiss?: () => void;\n}\n\ninterface ContainerProps {\n type: MessageType;\n noRadius: boolean;\n insets: MessageProps['insets'];\n}\n\nconst Container = styled.View<ContainerProps>`\n border-radius: ${({ theme, noRadius }) => (noRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, type }) => theme.kitt.feedbackMessage.backgroundColors[type]};\n padding-bottom: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding-top: ${({ theme, insets }) => (insets?.top ?? 0) + theme.kitt.spacing * 4}px;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nconst CloseContainer = styled.TouchableOpacity`\n margin-left: ${({ theme }) => theme.kitt.spacing * 4}px;\n padding: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nconst IconContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\ninterface ContentProps {\n type: MessageType;\n centeredText: boolean;\n}\n\nconst Content = styled.Text<ContentProps>`\n text-align: ${({ centeredText }) => (centeredText ? 'center' : 'left')};\n flex: 1;\n`;\n\nconst getColorByType = (type: MessageType): TypographyColor => {\n switch (type) {\n case 'success':\n return 'white';\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n\nfunction getIconContent(type: MessageType): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon />;\n case 'success':\n return <CheckIcon />;\n case 'danger':\n return <AlertTriangleIcon />;\n default:\n return <InfoIcon />;\n }\n}\n\nexport function Message({\n type = 'info',\n children,\n noRadius = false,\n centeredText = false,\n onDismiss,\n insets,\n}: MessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <Container type={type} noRadius={noRadius} insets={insets}>\n {!centeredText ? (\n <IconContainer>\n <Icon size={mainIconSize} color={color} icon={getIconContent(type)} />\n </IconContainer>\n ) : null}\n <Content type={type} centeredText={centeredText}>\n <Typography.Text base=\"body-small\" color={color}>\n {children}\n </Typography.Text>\n </Content>\n {onDismiss ? (\n <CloseContainer onPress={onDismiss}>\n <Icon icon={<XIcon />} size={xIconSize} color={color} />\n </CloseContainer>\n ) : null}\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport type { GestureResponderEvent } from 'react-native';\nimport { StyleSheet, View } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps {\n onPress?: (event: GestureResponderEvent) => void;\n}\n\nconst OverlayPressable = styled.Pressable(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return (\n <OverlayPressable onPress={onPress}>\n <View />\n </OverlayPressable>\n );\n}\n","import type { ReactNode } from 'react';\nimport React, { forwardRef } from 'react';\nimport { ScrollView } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst BodyView = styled.View`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport const ModalBody = forwardRef<ScrollView, BodyProps>(({ children }, ref) => {\n return (\n <ScrollView ref={ref}>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled.View`\n flex: 0 0 auto;\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-top-width: 1px;\n border-top-color: ${({ theme }) => theme.kitt.colors.separator};\n`;\n\nexport function ModalFooter({ children }: FooterProps): ReactElement {\n return <FooterView>{children}</FooterView>;\n}\n","import { createContext } from 'react';\n\nexport const OnCloseContext = createContext<() => void>(() => {});\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport React, { useContext } from 'react';\nimport styled from 'styled-components/native';\nimport { Button } from '../Button/Button';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled.View`\n position: relative;\n padding: ${({ theme }) => theme.kitt.spacing * 2}px;\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-bottom-width: 1px;\n border-bottom-color: ${({ theme }) => theme.kitt.colors.separator};\n min-height: 57px;\n`;\n\nconst LeftIconView = styled.View`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled.View`\n align-self: flex-start;\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\ninterface TitleViewProps {\n isIconLeft?: boolean;\n}\n\nconst TitleView = styled.View<TitleViewProps>`\n padding-left: ${({ theme, isIconLeft }) => (isIconLeft ? 0 : theme.kitt.spacing * 2)}px;\n flex-shrink: 1;\n`;\n\nexport function ModalHeader({ left, right, children }: HeaderProps): ReactElement {\n const onClose = useContext(OnCloseContext);\n\n const isIconLeft = !!left;\n\n return (\n <HeaderView>\n {isIconLeft && <LeftIconView>{left}</LeftIconView>}\n\n <TitleView isIconLeft={isIconLeft}>{children}</TitleView>\n\n {right !== undefined ? (\n right\n ) : (\n <RightIconView>\n <Button type=\"subtle-dark\" icon={<XIcon />} onPress={onClose} />\n </RightIconView>\n )}\n </HeaderView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { Modal as NativeModal } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Overlay } from '../Overlay/Overlay';\nimport { ModalBody } from './Body';\nimport { ModalFooter } from './Footer';\nimport { ModalHeader } from './Header';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface ModalProps {\n visible: boolean;\n children: ReactNode;\n onClose: () => void;\n onEntered?: () => void;\n onExited?: () => void;\n}\n\nconst ModalView = styled.View`\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.spacing * 20}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nconst ContentView = styled.View`\n position: relative;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 540px;\n height: auto;\n width: 100%;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius};\n background-color: ${({ theme }) => theme.kitt.palettes.lateOcean.white};\n`;\n\nexport function Modal({ visible, children, onClose, onEntered, onExited }: ModalProps): ReactElement {\n return (\n <OnCloseContext.Provider value={onClose}>\n <NativeModal\n transparent\n animationType=\"fade\"\n visible={visible}\n onShow={onEntered}\n onDismiss={onExited}\n onRequestClose={onClose}\n >\n <ModalView>\n <Overlay onPress={onClose} />\n\n <ContentView>{children}</ContentView>\n </ModalView>\n </NativeModal>\n </OnCloseContext.Provider>\n );\n}\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport type { MessageProps } from '../Message/Message';\nimport { Message } from '../Message/Message';\n\nexport interface NotificationProps {\n children: NonNullable<ReactNode>;\n type?: MessageProps['type'];\n centeredText?: MessageProps['centeredText'];\n onDelete?: MessageProps['onDismiss'];\n}\n\nexport function Notification({ type, children, centeredText, onDelete }: NotificationProps): ReactElement {\n const { top } = useSafeAreaInsets();\n return (\n <Message noRadius type={type} centeredText={centeredText} insets={{ top }} onDismiss={onDelete}>\n {children}\n </Message>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled.View`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled.View`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.h1 variant=\"bold\" base=\"header1\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.h2 variant=\"bold\" base=\"header2\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h3 variant=\"bold\" base=\"header3\" medium=\"header4\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.h4 variant=\"bold\" base=\"header4\" medium=\"header5\" color={color} numberOfLines={numberOfLines}>\n {children}\n </Typography.h4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nconst StyledSection = styled.View`\n margin-bottom: 30px;\n`;\n\ninterface SectionProps extends ViewProps {\n title: string;\n className?: string;\n children: ReactNode;\n}\n\nexport function Section({ title, className, children, ...props }: SectionProps): ReactElement {\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled.View`\n margin-bottom: 20px;\n`;\n\nfunction SubSection({ title, className, children, ...props }: SectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\ninterface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 90px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <Section title=\"Demo\">{children}</Section>\n </StyledDemoSection>\n );\n}\n\nSection.SubSection = SubSection;\nSection.DemoSection = DemoSection;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: 10px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { StoryContext, StoryFn } from '@storybook/addons';\nimport type { ReactNode } from 'react';\nimport React from 'react';\nimport { Story } from './Story';\n\nexport function StoryDecorator(storyFn: StoryFn<ReactNode>, context: StoryContext): ReturnType<StoryFn<ReactNode>> {\n return <Story title={context.name}>{storyFn()}</Story>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 10px 0 20px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -5px 20px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 5px 10px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {React.Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {React.Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n}\n\nfunction StoryGridCol({ title, titleColor, children }: StoryGridColProps): ReactElement {\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\n\ntype TagType = 'primary' | 'default' | 'danger';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n}\ninterface ContainerProps {\n type: TagType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.tag[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius};\n align-self: flex-start;\n`;\n\nexport function Tag({ label, type = 'default' }: TagProps): ReactElement {\n return (\n <Container type={type}>\n <Typography.Text base=\"body-xsmall\" color={type === 'primary' ? 'primary-light' : undefined}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","export const lateOceanColorPalette = {\n lateOcean: '#4C34E0',\n lateOceanLight1: '#705DE6',\n lateOceanLight2: '#9485EC',\n lateOceanLight3: '#D6BAF9',\n\n warmEmbrace: '#F4D3CE',\n warmEmbraceLight1: '#FFEDE6',\n\n black1000: '#000000',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const avatarLateOceanTheme = {\n default: {\n color: lateOceanColorPalette.white,\n backgroundColor: lateOceanColorPalette.lateOcean,\n },\n light: {\n color: lateOceanColorPalette.black1000,\n backgroundColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const buttonLateOceanTheme = {\n borderRadius: '30px',\n borderWidth: '2px',\n minHeight: '42px',\n minWidth: '40px',\n maxWidth: '335px',\n iconSize: 18,\n contentPadding: {\n default: '8px 16px',\n },\n primary: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.lateOceanLight1,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.black50,\n disabledBackgroundColor: lateOceanColorPalette.black50,\n pressedBackgroundColor: lateOceanColorPalette.black100,\n disabledBorderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\n },\n 'subtle-dark': {\n backgroundColor: lateOceanColorPalette.transparent,\n disabledBackgroundColor: lateOceanColorPalette.transparent,\n pressedBackgroundColor: lateOceanColorPalette.transparent,\n disabledBorderColor: lateOceanColorPalette.transparent,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const cardLateOceanTheme = {\n borderRadius: '20px',\n borderWidth: '2px',\n padding: '16px',\n primary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.lateOcean,\n },\n secondary: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colorsLateOceanTheme = {\n primary: lateOceanColorPalette.lateOcean,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const feedbackMessageLateOceanTheme = {\n backgroundColors: {\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n warning: lateOceanColorPalette.goldCrayola,\n info: lateOceanColorPalette.aero,\n },\n};\n","export const inputFieldLateOceanTheme = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import type { InputTextState } from '../../forms/InputText/InputText';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport type { typographyLateOceanTheme } from './typographyLateOceanTheme';\n\nexport type TypographyColor = keyof typeof typographyLateOceanTheme.colors;\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: TypographyColor;\n passwordButtonIconColor: TypographyColor;\n}\n\nconst inputStatesStyle: Record<InputTextState, InputStateStyle> = {\n default: {\n backgroundColor: lateOceanColorPalette.white,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n focus: {\n borderColor: lateOceanColorPalette.lateOcean,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n color: 'black-light',\n passwordButtonIconColor: 'black-light',\n },\n invalid: {\n borderColor: lateOceanColorPalette.englishVermillon,\n color: 'black',\n passwordButtonIconColor: 'black',\n },\n};\n\nexport const inputLateOceanTheme = {\n marginTop: '2px',\n marginBottom: '4px',\n borderWidth: '2px',\n borderRadius: '10px',\n passwordButtonIconSize: 20,\n padding: '7px 16px',\n paddingSingleLineIOS: '12px 16px',\n selectionColor: lateOceanColorPalette.lateOcean,\n placeholderColor: 'black-light' as const,\n textAreaMinHeight: 120,\n states: inputStatesStyle,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const radioLateOceanTheme = {\n size: 18,\n unchecked: {\n backgroundColor: lateOceanColorPalette.white,\n borderWidth: '2px',\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: lateOceanColorPalette.lateOcean,\n innerSize: 5,\n innerBackgroundColor: lateOceanColorPalette.white,\n },\n disabled: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { inputFieldLateOceanTheme } from './inputFieldLateOceanTheme';\nimport { inputLateOceanTheme } from './inputLateOceanTheme';\nimport { radioLateOceanTheme } from './radioLateOceanTheme';\n\nexport const formsLateOceanTheme = {\n input: inputLateOceanTheme,\n radio: radioLateOceanTheme,\n inputField: inputFieldLateOceanTheme,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModalLateOceanTheme = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { colorsLateOceanTheme } from './colorsLateOceanTheme';\n\nexport const listItemLateOceanTheme = {\n padding: '12px 16px',\n borderColor: colorsLateOceanTheme.separator,\n borderWidth: '1px',\n innerMargin: '8px',\n};\n","export const shadowsLateOceanTheme = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const tagLateOceanTheme = {\n borderRadius: '10px',\n padding: '2px 12px',\n primary: {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO: validate Moon shadow color with design team\n backgroundColor: '#EDEBFC',\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n },\n danger: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n },\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nconst calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeConfig {\n baseAndSmall: {\n fontSize: string;\n lineHeight: string;\n };\n mediumAndWide: {\n fontSize: string;\n lineHeight: string;\n };\n}\n\nconst createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: `${baseAndSmallFontSize}px`,\n lineHeight: `${calcLineHeight(lineHeightMultiplier, baseAndSmallFontSize)}px`,\n },\n mediumAndWide: {\n fontSize: `${mediumAndWideFontSize}px`,\n lineHeight: `${calcLineHeight(lineHeightMultiplier, baseAndSmallFontSize)}px`,\n },\n});\n\nexport const typographyLateOceanTheme = {\n colors: {\n black: lateOceanColorPalette.black1000,\n 'black-light': lateOceanColorPalette.black555,\n grey: lateOceanColorPalette.black555,\n 'grey-light': lateOceanColorPalette.black200,\n white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n italic: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n italic: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Italic',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n italic: 400,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n italic: 'italic',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n};\n","import type { WindowSizeHelper } from '../utils/windowSize/createWindowSizeHelper';\nimport { avatarLateOceanTheme } from './late-ocean/avatarLateOceanTheme';\nimport { buttonLateOceanTheme } from './late-ocean/buttonLateOceanTheme';\nimport { cardLateOceanTheme } from './late-ocean/cardLateOceanTheme';\nimport { colorsLateOceanTheme } from './late-ocean/colorsLateOceanTheme';\nimport { feedbackMessageLateOceanTheme } from './late-ocean/feedbackMessageLateOceanTheme';\nimport { formsLateOceanTheme } from './late-ocean/formLateOceanTheme';\nimport { fullScreenModalLateOceanTheme } from './late-ocean/fullScreenModalLateOceanTheme';\nimport { listItemLateOceanTheme } from './late-ocean/listItemLateOceanTheme';\nimport { shadowsLateOceanTheme } from './late-ocean/shadowsLateOceanTheme';\nimport { tagLateOceanTheme } from './late-ocean/tagLateOceanTheme';\nimport { typographyLateOceanTheme } from './late-ocean/typographyLateOceanTheme';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nexport const theme = {\n spacing: 4,\n colors: colorsLateOceanTheme,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar: avatarLateOceanTheme,\n button: buttonLateOceanTheme,\n card: cardLateOceanTheme,\n feedbackMessage: feedbackMessageLateOceanTheme,\n forms: formsLateOceanTheme,\n typography: typographyLateOceanTheme,\n tag: tagLateOceanTheme,\n shadows: shadowsLateOceanTheme,\n fullScreenModal: fullScreenModalLateOceanTheme,\n listItem: listItemLateOceanTheme,\n};\n\nexport type KittTheme = {\n kitt: typeof theme;\n responsive: WindowSizeHelper;\n} & Record<string, unknown>;\n","import type { ReactElement, ReactNode } from 'react';\nimport React from 'react';\nimport { View } from 'react-native';\n\nexport type TooltipPosition = 'bottom' | 'top' | 'left' | 'right';\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n defaultVisible?: boolean;\n fullWidth?: boolean;\n position: TooltipPosition;\n}\n\nexport function Tooltip({ children }: TooltipProps): ReactElement {\n return <View>{children}</View>;\n}\n","import type { ReactElement } from 'react';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { SetRequired } from 'type-fest';\nimport type { TypographyProps, TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface StyledTypographyLinkProps extends TypographyPropsWithoutRole {\n disabled?: boolean;\n noUnderline?: boolean;\n}\n\nconst StyledLink = styled(Typography).withConfig({\n shouldForwardProp: (prop, defaultValidatorFn) => !['disabled', 'noUnderline'].includes(prop),\n})<TypographyLinkProps & TypographyProps>`\n text-decoration: ${({ noUnderline }) => (noUnderline ? 'none' : 'underline')};\n ${({ disabled }) =>\n Platform.OS === 'web'\n ? `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${disabled ? 'not-allowed' : 'pointer'};\n `\n : null};\n margin: 0;\n`;\n\nexport interface TypographyLinkProps extends SetRequired<StyledTypographyLinkProps, 'onPress'> {\n href?: string;\n}\n\nexport function TypographyLink({\n disabled,\n noUnderline,\n variant = 'bold',\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <StyledLink\n disabled={disabled}\n noUnderline={noUnderline}\n variant={variant}\n accessibilityRole=\"link\"\n {...otherProps}\n />\n );\n}\n","import { useWindowDimensions } from 'react-native';\n\nexport interface MatchWindowSizeOptions {\n minWidth: number;\n maxWidth?: number;\n}\nexport function matchWindowSize(currentWidth: number, { minWidth, maxWidth }: MatchWindowSizeOptions): boolean {\n return currentWidth >= minWidth && (!maxWidth || currentWidth <= maxWidth);\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width } = useWindowDimensions();\n return matchWindowSize(width, options);\n}\n","import type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { matchWindowSize } from './useMatchWindowSize';\n\nexport interface WindowSizeHelper {\n /** Prefer using if or map variants, at it should be more web friendly */\n matchWindowSize: (options: MatchWindowSizeOptions) => boolean;\n\n /**\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.ifWindowSizeMatches(\n * { minWidth: KittBreakpoints.SMALL },\n * 'padding: 5px 0 10px;'\n * )\n * )};\n * `;\n * ```\n */\n ifWindowSizeMatches: <T extends string | null>(options: MatchWindowSizeOptions, valueIfTrue: T, valueIfFalse: T) => T;\n\n /**\n *\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.mapWindowWidth(\n * [KittBreakpoints.BASE, 'padding: 5px 0 10px;'],\n * [KittBreakpoints.SMALL, 'padding: 10px 0;'],\n * )\n * )};\n * `;\n * ```\n */\n mapWindowWidth: <V extends string>(...widthList: [number, V][]) => V | null;\n}\n\nexport function createWindowSizeHelper(currentWidth: number): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(currentWidth, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(currentWidth, options) ? valueIfTrue : valueIfFalse,\n\n mapWindowWidth: <V extends string>(...widthList: [number, V][]): V | null => {\n if (__DEV__) {\n widthList.slice(1).forEach(([minWidth], index) => {\n const previousMinWidth = widthList[index][0];\n if (previousMinWidth > minWidth) {\n throw new Error(\n `mapWindowWidth: sort your values to be mobile first. ${minWidth} is < ${previousMinWidth}, so ${minWidth} should be before ${previousMinWidth}.`,\n );\n }\n });\n }\n const found = widthList.find(([minWidth, value]) =>\n matchWindowSize(currentWidth, { minWidth: Number(minWidth) }),\n );\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { KittTheme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport function useKittTheme(): KittTheme {\n const { width } = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(width) };\n }, [width]);\n}\n","import React from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { useMatchWindowSize } from './useMatchWindowSize';\n\ninterface MatchWindowSizeProps extends MatchWindowSizeOptions {\n children: ReactNode;\n}\n\nexport function MatchWindowSize({ children, ...matchWindowSizeOptions }: MatchWindowSizeProps): ReactElement | null {\n const match = useMatchWindowSize(matchWindowSizeOptions);\n if (!match) return null;\n return <>{children}</>;\n}\n"],"names":["SpinningIcon","children","animationRef","useRef","Animated","Value","rotation","current","interpolate","inputRange","outputRange","useEffect","process","env","TESTS","undefined","animation","loop","timing","toValue","duration","easing","Easing","linear","useNativeDriver","start","stop","React","transform","rotate","IconContainer","styled","View","color","size","align","Icon","icon","spin","clonedIcon","cloneElement","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","Text","theme","isHeader","type","variant","headers","bodies","kitt","typography","types","fontFamily","configs","baseAndSmall","fontSize","lineHeight","fontWeight","fontStyle","colors","isTypeHeader","startsWith","isTypographyHeader","base","typeInContext","Error","Typography","accessibilityRole","otherProps","nonNullableVariant","colorWithDefaultToBlack","content","TypographyText","props","TypographyParagraph","createHeading","level","TypographyHeading","displayName","Paragraph","h1","h2","h3","h4","h5","getFirstCharacter","string","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","round","light","avatar","backgroundColor","default","AvatarContent","src","Image","uri","width","height","UserIcon","Avatar","rest","ButtonContainer","Pressable","button","minWidth","stretch","maxWidth","minHeight","isPressed","disabled","disabledBackgroundColor","pressedBackgroundColor","contentPadding","borderRadius","disabledBorderColor","borderWidth","TypographyIconInheritColor","useTheme","TypographyIconSpecifiedColor","TypographyIcon","getTextColorByType","ButtonText","Content","iconOnly","iconPosition","value","spacing","ButtonIcon","testID","ButtonContent","iconSpin","Boolean","sharedIconProps","iconSize","__DEV__","useButton","setIsPressed","useState","handleButtonPressIn","handleButtonPressOut","Button","onPress","sharedProps","Container","card","padding","borderColor","Card","getColorFromState","state","InputFeedback","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","FieldContainer","FeedbackContainer","responsive","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","Platform","OS","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","isDisabled","formState","keyboardTypeByTextInputType","text","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","forwardRef","id","internalForceState","onFocus","onBlur","ref","placeholderColor","selectionColor","e","EyeIcon","EyeOffIcon","passwordButtonIconColor","Label","htmlFor","OuterRadio","radio","unchecked","SelectedOuterRadio","checked","SelectedInnerRadio","innerBackgroundColor","innerSize","Radio","onChange","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","top","useSafeAreaInsets","dimensions","useWindowDimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","SideContent","getActivityIndicatorSize","Loader","colorHex","ActivityIndicator","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","AlertCircleIcon","CheckIcon","AlertTriangleIcon","InfoIcon","Message","onDismiss","XIcon","OverlayPressable","StyleSheet","absoluteFillObject","overlay","dark","Overlay","BodyView","ModalBody","ScrollView","FooterView","separator","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","palettes","lateOcean","white","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StyledSection","Section","title","className","StyledSubSection","SubSection","StyledDemoSection","DemoSection","StoryContainer","Story","contentContainerStyle","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","tag","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","cardLateOceanTheme","colorsLateOceanTheme","accent","accentLight","success","correct","danger","hover","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","medium","tagLateOceanTheme","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","grey","bold","italic","header1","header2","header3","header4","header5","shadows","Tooltip","StyledLink","withConfig","shouldForwardProp","prop","includes","noUnderline","TypographyLink","matchWindowSize","currentWidth","useMatchWindowSize","options","createWindowSizeHelper","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","useMemo","kittTheme","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
1
+ {"version":3,"file":"index-node-14.17.cjs.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' | 'italic';\nexport type TypographyColor =\n | 'black'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'grey'\n | 'grey-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst TypographyTypeContext = createContext<TypographyType | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\ninterface StyledTypographyProps {\n isHeader: boolean;\n type?: TypographyType;\n variant: TypographyVariant;\n color?: TypographyColor;\n}\n\nconst StyledTypography = styled(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 'grey';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import React from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components';\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 { Platform } from 'react-native';\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\ninterface AnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\nfunction WebAnimatedContainer({ children, color, disabled, onPress }: AnimatedContainerProps): ReactElement {\n return (\n <PressableIconButton accessibilityRole=\"button\" color={color} disabled={disabled} onPress={onPress}>\n {children}\n </PressableIconButton>\n );\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\nfunction NativeAnimatedContainer({\n disabled,\n color = 'black',\n children,\n onPress,\n}: AnimatedContainerProps): 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\nexport const PressableAnimatedContainer = Platform.OS === 'web' ? WebAnimatedContainer : NativeAnimatedContainer;\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","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 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: '#EDEBFC',\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 grey: lateOceanColorPalette.black555,\n 'grey-light': lateOceanColorPalette.black200,\n white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n italic: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n italic: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Italic',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n italic: 400,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n italic: 'italic',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n 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\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","React","transform","rotate","IconContainer","styled","color","size","align","Icon","icon","spin","clonedIcon","cloneElement","PrimitiveText","NativeText","TypographyTypeContext","createContext","TypographyColorContext","useTypographyColor","useContext","StyledTypography","theme","isHeader","type","variant","headers","bodies","kitt","typography","types","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","default","AvatarContent","src","Image","uri","width","height","UserIcon","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","setIsPressed","useState","handleButtonPressIn","handleButtonPressOut","Button","onPress","sharedProps","Container","card","padding","borderColor","Card","getColorFromState","state","InputFeedback","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","FieldContainer","FeedbackContainer","responsive","ifWindowSizeMatches","FieldLabelContainer","forms","inputField","labelContainerPaddingBottom","LabelContainer","iconMarginLeft","InputField","label","labelFeedback","input","feedback","useInputText","isFocused","setIsFocused","isPasswordVisible","setIsPasswordVisible","handleInputFocus","handleInputBlur","togglePasswordVisibility","isVisible","styledTextInputMixin","css","states","body","regular","Input","TextInput","multiline","Platform","OS","paddingSingleLineIOS","marginTop","marginBottom","PasswordButtonContainer","passwordButtonIconSize","getInputState","isDisabled","formState","keyboardTypeByTextInputType","text","email","password","username","autoCompleteTypeByType","autoCorrectByType","textContentTypeByType","InputText","forwardRef","id","internalForceState","onFocus","onBlur","ref","placeholderColor","selectionColor","e","EyeIcon","EyeOffIcon","passwordButtonIconColor","Label","htmlFor","OuterRadio","radio","unchecked","SelectedOuterRadio","checked","SelectedInnerRadio","innerBackgroundColor","innerSize","Radio","onChange","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","top","useSafeAreaInsets","dimensions","useWindowDimensions","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","uiBackground","FullScreenModal","PressableIconButton","iconButton","transition","scale","property","timingFunction","hover","breakpoints","min","mediumBreakpoint","medium","active","white","WebAnimatedContainer","AnimatedIconButtonBackground","View","AnimatedViewContainer","NativeAnimatedContainer","pressed","useSharedValue","opacityStyles","useAnimatedStyle","opacity","withSpring","scaleStyles","PressableAnimatedContainer","IconButtonContentBorder","IconButtonContent","IconButton","ContentView","ListItemContent","SideContainerView","listItem","innerMargin","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","SideContent","getActivityIndicatorSize","Loader","colorHex","ActivityIndicator","LargeLoader","xIconSize","mainIconSize","noRadius","feedbackMessage","backgroundColors","insets","CloseContainer","TouchableOpacity","centeredText","getColorByType","getIconContent","AlertCircleIcon","CheckIcon","AlertTriangleIcon","InfoIcon","Message","onDismiss","XIcon","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","isNative","StoryGrid","Row","Col","tag","getLabelColor","Tag","lateOceanColorPalette","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black555","black200","black100","black50","black25","viride","englishVermillon","goldCrayola","aero","transparent","avatarLateOceanTheme","buttonLateOceanTheme","primary","secondary","subtle","hoverBackgroundColor","focusBorderColor","cardLateOceanTheme","colorsLateOceanTheme","accent","accentLight","success","correct","danger","fullscreenLoader","feedbackMessageLateOceanTheme","warning","info","inputFieldLateOceanTheme","inputStatesStyle","focus","invalid","inputLateOceanTheme","radioLateOceanTheme","formsLateOceanTheme","fullScreenModalLateOceanTheme","listItemLateOceanTheme","shadowsLateOceanTheme","tagLateOceanTheme","fill","outline","calcLineHeight","lineHeightMultiplier","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","mediumAndWide","typographyLateOceanTheme","black","grey","bold","italic","header1","header2","header3","header4","header5","link","disabledColor","values","small","large","wide","smallBreakpoint","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","ThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","SafeAreaProviderDecorator","SafeAreaProvider","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}