@ornikar/kitt-universal 7.5.0 → 7.6.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 (43) hide show
  1. package/dist/definitions/Picker/Picker.d.ts +17 -0
  2. package/dist/definitions/Picker/Picker.d.ts.map +1 -0
  3. package/dist/definitions/Picker/Picker.web.d.ts +3 -0
  4. package/dist/definitions/Picker/Picker.web.d.ts.map +1 -0
  5. package/dist/definitions/Picker/PickerItem.d.ts +9 -0
  6. package/dist/definitions/Picker/PickerItem.d.ts.map +1 -0
  7. package/dist/definitions/TimePicker/useTimePicker.d.ts +2 -2
  8. package/dist/definitions/TimePicker/useTimePicker.d.ts.map +1 -1
  9. package/dist/definitions/index.d.ts +2 -0
  10. package/dist/definitions/index.d.ts.map +1 -1
  11. package/dist/definitions/themes/default.d.ts +1 -0
  12. package/dist/definitions/themes/default.d.ts.map +1 -1
  13. package/dist/definitions/themes/late-ocean/picker.d.ts +21 -0
  14. package/dist/definitions/themes/late-ocean/picker.d.ts.map +1 -0
  15. package/dist/definitions/typography/Typography.d.ts +3 -2
  16. package/dist/definitions/typography/Typography.d.ts.map +1 -1
  17. package/dist/index-browser-all.es.android.js +168 -36
  18. package/dist/index-browser-all.es.android.js.map +1 -1
  19. package/dist/index-browser-all.es.ios.js +168 -36
  20. package/dist/index-browser-all.es.ios.js.map +1 -1
  21. package/dist/index-browser-all.es.js +168 -36
  22. package/dist/index-browser-all.es.js.map +1 -1
  23. package/dist/index-browser-all.es.web.js +72 -35
  24. package/dist/index-browser-all.es.web.js.map +1 -1
  25. package/dist/index-node-14.17.cjs.js +180 -67
  26. package/dist/index-node-14.17.cjs.js.map +1 -1
  27. package/dist/index-node-14.17.cjs.web.js +51 -24
  28. package/dist/index-node-14.17.cjs.web.js.map +1 -1
  29. package/dist/linaria-themes-browser-all.es.android.js +26 -0
  30. package/dist/linaria-themes-browser-all.es.android.js.map +1 -1
  31. package/dist/linaria-themes-browser-all.es.ios.js +26 -0
  32. package/dist/linaria-themes-browser-all.es.ios.js.map +1 -1
  33. package/dist/linaria-themes-browser-all.es.js +26 -0
  34. package/dist/linaria-themes-browser-all.es.js.map +1 -1
  35. package/dist/linaria-themes-browser-all.es.web.js +27 -0
  36. package/dist/linaria-themes-browser-all.es.web.js.map +1 -1
  37. package/dist/linaria-themes-node-14.17.cjs.js +25 -0
  38. package/dist/linaria-themes-node-14.17.cjs.js.map +1 -1
  39. package/dist/linaria-themes-node-14.17.cjs.web.js +25 -0
  40. package/dist/linaria-themes-node-14.17.cjs.web.js.map +1 -1
  41. package/dist/tsbuildinfo +1 -1
  42. package/package.json +7 -2
  43. package/translations/fr-FR.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-browser-all.es.web.js","sources":["../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/utils/withTheme.tsx","../src/Button/getVariantValuesIfExist.ts","../src/Button/isSubtle.ts","../src/Button/AnimatedButtonPressable.web.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.web.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/colors.ts","../src/themes/late-ocean/avatar.ts","../src/themes/late-ocean/button.ts","../src/themes/late-ocean/card.ts","../src/themes/late-ocean/feedback.ts","../src/themes/late-ocean/checkbox.ts","../src/themes/late-ocean/datePicker.ts","../src/themes/late-ocean/typography.ts","../src/themes/late-ocean/input.ts","../src/themes/late-ocean/inputField.ts","../src/themes/late-ocean/inputTag.ts","../src/themes/late-ocean/radio.ts","../src/themes/late-ocean/textArea.ts","../src/themes/late-ocean/forms.ts","../src/themes/late-ocean/fullScreenModal.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItem.ts","../src/themes/late-ocean/pageLoader.ts","../src/themes/late-ocean/shadows.ts","../src/themes/late-ocean/skeleton.ts","../src/themes/late-ocean/tag.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/default.ts","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/forms/Checkbox/Checkbox.tsx","../src/forms/utils.ts","../src/forms/styledTextInputMixin.ts","../src/forms/DatePicker/DatePickerInputPart.tsx","../src/forms/DatePicker/DatePickerInputs.tsx","../src/forms/DatePicker/DatePicker.web.tsx","../src/forms/InputText/InputTextContainer.web.tsx","../src/forms/InputText/InputText.tsx","../src/forms/InputEmail/InputEmail.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputIcon/InputIcon.tsx","../src/forms/InputPressable/InputPressable.tsx","../src/forms/InputPassword/InputPassword.tsx","../src/forms/InputPhone/InputPhone.tsx","../src/forms/InputTag/InputTag.tsx","../src/forms/Label/Label.tsx","../src/forms/Radio/Radio.tsx","../src/forms/TextArea/TextArea.tsx","../src/FullScreenModal/Body.tsx","../src/FullScreenModal/Header.tsx","../src/FullScreenModal/FullScreenModal.tsx","../src/Icon/SpinningIcon.web.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.web.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/LoaderIcon/LoaderIcon.tsx","../src/BaseMessage/IconContent.tsx","../src/BaseMessage/helper.ts","../src/BaseMessage/BaseMessage.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/PageLoader/PageLoader.web.tsx","../src/Skeleton/SkeletonContent.web.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.web.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/TimePicker.web.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.web.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface IconProps {\n icon: ReactElement;\n size?: number;\n color: string;\n align?: ViewStyle['alignSelf'];\n testID?: ViewStyle['testID'];\n}\n\ninterface IconContainerProps {\n $align?: ViewStyle['alignSelf'];\n $size: number;\n $color: string;\n}\n\nexport const defaultIconSize = 20;\n\nexport const 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 = defaultIconSize, align, color }: IconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n\n return (\n <IconContainer $align={align} $size={size} $color={color}>\n {clonedIcon}\n </IconContainer>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled, { css } from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport type { TypographyTypeConfig } from '../themes/late-ocean/typography';\nimport type { KittTheme } from '../useKittTheme';\n\nexport type TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\nexport type TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\nexport type TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold';\nexport type TypographyColor =\n | 'black'\n | 'black-anthracite'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst IsHeaderTypographyContext = createContext<boolean | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\nexport const getTypographyTypeConfigKey = (theme: KittTheme): keyof TypographyTypeConfig => {\n const isMediumOrAbove = theme.responsive.matchWindowSize({ minWidth: KittBreakpoints.MEDIUM });\n return isMediumOrAbove ? 'mediumAndWide' : 'baseAndSmall';\n};\n\nconst isTypeHeader = (type: TypographyType): type is TypographyHeaderType => type.startsWith('header');\nexport const isTypographyHeader = (\n type: TypographyType | undefined,\n typographyIsHeaderInContext: boolean | undefined,\n): type is TypographyHeaderType => {\n if (type) return isTypeHeader(type);\n if (typographyIsHeaderInContext != null) return typographyIsHeaderInContext;\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function getTypographyTypeConfig(type: TypographyType, theme: DefaultTheme): TypographyTypeConfig {\n if (isTypographyHeader(type, undefined)) {\n return theme.kitt.typography.types.headers.configs[type];\n }\n\n return theme.kitt.typography.types.bodies.configs[type];\n}\n\ninterface StyledTypographyProps {\n accessibilityRole: TextProps['accessibilityRole'] | 'paragraph';\n $isHeader: boolean;\n $typeForCurrentWindowSize?: TypographyType;\n $variant: TypographyVariant;\n $color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n /* font */\n ${({ theme, $isHeader, $typeForCurrentWindowSize, $variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n\n return `\n /* type */\n ${\n !$typeForCurrentWindowSize\n ? ''\n : `\n font-family: ${$isHeader ? headers.fontFamily[$variant] : bodies.fontFamily[$variant]};\n font-size: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].fontSize\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].fontSize\n }px;\n line-height: ${\n $isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight\n }px;\n `\n }\n\n /* variant */\n font-weight: ${$isHeader ? headers.fontWeight : bodies.fontWeight[$variant]};\n font-style: ${$isHeader ? headers.fontStyle : bodies.fontStyle[$variant]};\n `;\n }}\n\n /* color */\n ${({ theme, $color }) => {\n if (!$color) return '';\n\n return css`\n color: ${theme.kitt.typography.colors[$color]};\n text-decoration-color: ${theme.kitt.typography.colors[$color]};\n `;\n }}\n`;\n\nexport interface TypographyBreakpointTypesProps {\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n /** small type. use base if undefined */\n small?: TypographyType;\n /** medium type. use small or base if undefined */\n medium?: TypographyType;\n /** large type. use medium or small or base if undefined */\n large?: TypographyType;\n}\n\nexport interface TypographyProps extends TypographyBreakpointTypesProps, Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | 'paragraph' | null;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nexport function useTypographyTypeForCurrentWindowSize(\n base: TypographyType | undefined,\n small: TypographyType | undefined,\n medium: TypographyType | undefined,\n large: TypographyType | undefined,\n): TypographyType | undefined {\n const { width } = useWindowDimensions();\n if (large && width >= KittBreakpoints.LARGE) return large;\n if (medium && width >= KittBreakpoints.MEDIUM) return medium;\n if (small && width >= KittBreakpoints.SMALL) return small;\n return base;\n}\n\ntype GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps = Pick<TypographyProps, 'base' | 'color'>;\n\nexport function getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(\n hasTypographyAncestor: boolean,\n { base, color }: GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps,\n): GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps {\n // return the props set or undefined. In case of undefined, the value will be inherited from its parents.\n if (hasTypographyAncestor) return { base, color };\n\n return {\n base: base ?? 'body',\n color: color ?? 'black',\n };\n}\n\nexport function Typography({\n accessibilityRole,\n base,\n small,\n medium,\n large,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const isHeaderTypographyInContext = useContext(IsHeaderTypographyContext);\n const hasTypographyAncestor = isHeaderTypographyInContext !== undefined;\n const { base: baseOrDefaultToBody, color: colorOrDefaultToBlack } =\n getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(hasTypographyAncestor, {\n base,\n color,\n });\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(baseOrDefaultToBody, small, medium, large);\n const isHeader = isTypographyHeader(typeForCurrentWindowSize, isHeaderTypographyInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n\n const content = baseOrDefaultToBody ? (\n <IsHeaderTypographyContext.Provider value={isHeader}>\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $typeForCurrentWindowSize={typeForCurrentWindowSize}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n </IsHeaderTypographyContext.Provider>\n ) : (\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n // role 'paragraph' does not exist in native, it's a web feature only.\n return <Typography accessibilityRole={Platform.OS === 'web' ? 'paragraph' : null} {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { Typography } from '../typography/Typography';\n\nconst getInitials = (firstname: string, lastname: string): string => `${firstname[0]}${lastname[0]}`.toUpperCase();\n\nexport type AvatarSizeVariant = 'large';\n\nexport interface StyledAvatarViewProps {\n $size: number;\n $isRound?: boolean;\n $isLight?: boolean;\n $sizeVariant?: AvatarSizeVariant;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ theme, $isRound, $size, $sizeVariant }) => {\n if ($isRound) return `${$size / 2}px`;\n\n return `${$sizeVariant === 'large' ? theme.kitt.avatar.large.borderRadius : theme.kitt.avatar.borderRadius}px`;\n }};\n background-color: ${({ theme, $isLight }) =>\n $isLight ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ $size }) => $size}px;\n width: ${({ $size }) => $size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\ninterface AvatarContentProps extends Exclude<AvatarProps, 'light | round'> {\n size: NonNullable<number>;\n isLight?: boolean;\n sizeVariant?: AvatarSizeVariant;\n}\n\nfunction AvatarContent({\n size,\n src,\n firstname,\n lastname,\n alt,\n isLight,\n sizeVariant,\n}: AvatarContentProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} accessibilityLabel={alt} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text\n base={sizeVariant === 'large' ? 'body-large' : 'body-small'}\n variant={sizeVariant === 'large' ? 'bold' : 'regular'}\n color={isLight ? 'black' : 'white'}\n >\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={isLight ? 'black' : 'white'} size={size / 2} />;\n}\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n alt?: string;\n firstname?: string | null;\n lastname?: string | null;\n round?: boolean;\n light?: boolean;\n sizeVariant?: AvatarSizeVariant;\n}\n\nexport function Avatar({ size = 40, round, light, sizeVariant, ...props }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView $size={size} $isRound={round} $isLight={light} $sizeVariant={sizeVariant}>\n <AvatarContent size={size} isLight={light} sizeVariant={sizeVariant} {...props} />\n </StyledAvatarView>\n );\n}\n","import type { ComponentType, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\n\n// type $Without<T, K extends keyof any> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;\n// type $DeepPartial<T> = { [P in keyof T]?: $DeepPartial<T[P]> };\n\n// export function withTheme<Props extends { theme: DefaultTheme }, C>(\n// WrappedComponent: ComponentType<Props> & C,\n// ): ComponentType<SetOptional<Props, 'theme'>> & hoistNonReactStatics.NonReactStatics<typeof WrappedComponent> {\n// return function ThemedComponent(props) {\n// const theme = useTheme();\n\n// return (<WrappedComponent theme={theme} {...(props as any)} />) as any;\n// };\n// }\n\nexport function withTheme<Props extends { theme: DefaultTheme }, T>(\n WrappedComponent: ComponentType<Props>,\n): ForwardRefExoticComponent<PropsWithoutRef<Except<Props, 'theme'>> & RefAttributes<T>> {\n // eslint-disable-next-line prefer-arrow-callback\n return forwardRef<T, Except<Props, 'theme'>>(function ThemedComponent(props, ref) {\n const theme = useTheme();\n\n return <WrappedComponent ref={ref} theme={theme} {...(props as any)} />;\n });\n}\n","import type { DefaultTheme } from 'styled-components/native';\nimport type { BaseButtonTheme, BaseButtonWithVariant } from '../themes/late-ocean/button';\nimport type { ButtonType, ButtonVariant } from './Button';\n\nconst hasVariant = (button: BaseButtonTheme, variant: ButtonVariant): button is BaseButtonWithVariant => {\n return variant in button;\n};\n\nexport function getVariantValuesIfExist<V extends ButtonVariant>(\n theme: DefaultTheme,\n type: ButtonType,\n variant: ButtonVariant,\n): BaseButtonTheme['default'] | BaseButtonWithVariant[V] {\n const button = theme.kitt.button[type];\n\n if (hasVariant(button, variant)) {\n return button[variant];\n }\n\n return theme.kitt.button[type].default;\n}\n","import type { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { Pressable } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { SubtleButtonTheme } from 'themes/late-ocean/button';\nimport { theme as kittTheme } from '../themes/default';\nimport { withTheme } from '../utils/withTheme';\nimport type { AnimatedButtonPressableProps } from './AnimatedButtonPressable';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\nimport { isSubtle } from './isSubtle';\n\ninterface AnimatedButtonPressableContainerProps {\n theme: DefaultTheme;\n children: ReactNode;\n $isDisabled?: boolean;\n $type: ButtonType;\n $variant: ButtonVariant;\n $isStretch?: boolean;\n $isSubtle?: boolean;\n}\n\nexport const AnimatedButtonPressableContainer = withTheme<\n AnimatedButtonPressableContainerProps,\n HTMLDivElement\n>(styled.div<AnimatedButtonPressableContainerProps>`\n width: auto;\n\n display: ${({ $isStretch }) => ($isStretch ? 'inherit' : 'inline-flex')};\n align-self: ${({ $isStretch }) => ($isStretch ? 'stretch' : 'baseline')};\n\n /* Transitions managment */\n .kitt-hover & > * > *,\n &:hover > * > * {\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme }) => theme.kitt.button.scale.medium.hover});\n }\n }\n\n .kitt-active & > * > *,\n &:active > * > * {\n /* Scale down */\n transform: ${({ theme, $isDisabled }) => `scale(${$isDisabled ? 1 : theme.kitt.button.scale.base.active})`};\n }\n\n .kitt-active & > * > *,\n &:active > * > *,\n .kitt-hover & > * > *,\n &:hover > * > * {\n background: ${({ theme, $type, $variant, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.button.disabled.default.hoverBackgroundColor;\n\n return getVariantValuesIfExist(theme, $type, $variant).hoverBackgroundColor;\n }};\n }\n\n & > * > * {\n /* translateZ(0) for hardware acceleration */\n transform: scale(1) translateZ(0);\n display: inline-flex;\n\n /* Simplifies the animation to just the front of the object – avoid blurry scale */\n backface-visibility: hidden;\n\n transition: ${({ theme }) => {\n const { duration, timingFunction } = theme.kitt.button.transition;\n\n return `color, background, border-color, ${duration} ${timingFunction}`;\n }};\n }\n\n & > * > *::after,\n & > * > *::before {\n content: '';\n position: absolute;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n transition: ${({ theme }) =>\n `opacity ${theme.kitt.button.transition.duration} ${theme.kitt.button.transition.timingFunction}`};\n }\n\n & > * > *::after {\n opacity: ${({ $isDisabled }) => ($isDisabled ? 1 : 0)};\n top: ${({ theme }) => `-${theme.kitt.button.borderWidth.disabled}px`};\n left: ${({ theme }) => `-${theme.kitt.button.borderWidth.disabled}px`};\n width: ${({ theme }) => `calc(100% - ${theme.kitt.button.borderWidth.disabled * 0.5}px)`};\n height: ${({ theme }) => `calc(100% - ${theme.kitt.button.borderWidth.disabled * 0.5}px)`};\n border: ${({ theme }) =>\n `${theme.kitt.button.borderWidth.disabled}px solid ${theme.kitt.button.disabled.default.borderColor}`};\n }\n\n & > * > *::before {\n opacity: 0;\n border: ${({ theme, $type, $variant }) =>\n `${theme.kitt.button.borderWidth.focus}px solid ${\n getVariantValuesIfExist(theme, $type, $variant).focusBorderColor\n }`};\n width: 100%;\n height: 100%;\n top: ${({ theme }) => `-${theme.kitt.button.borderWidth.focus}px`};\n left: ${({ theme }) => `-${theme.kitt.button.borderWidth.focus}px`};\n }\n\n outline: none;\n\n .kitt-focus & > *,\n &:focus > *,\n & > [data-focusvisible-polyfill] {\n outline: none;\n\n & > *::before {\n opacity: 1;\n }\n }\n\n .kitt-hover & > *,\n &:hover > *,\n .kitt-active & > *,\n &:active > * {\n & > *::before {\n opacity: 0;\n }\n }\n\n /* Subtle Typography handling */\n & > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.color;\n }\n\n return 'inherit';\n }};\n }\n\n .kitt-hover & > *,\n &:hover > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.hoverColor;\n }\n return 'inherit';\n }};\n }\n\n .kitt-active & > *,\n &:active > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.activeColor;\n }\n\n return 'inherit';\n }};\n }\n`);\n\nexport const AnimatedButtonPressable = forwardRef<HTMLDivElement, AnimatedButtonPressableProps>(\n ({ $type, $variant, $isStretch, disabled, ...props }: AnimatedButtonPressableProps, ref): ReactElement => {\n return (\n <AnimatedButtonPressableContainer\n ref={ref}\n $type={$type}\n $variant={$variant}\n $isDisabled={!!disabled}\n $isStretch={$isStretch}\n >\n <Pressable disabled={disabled} {...props} />\n </AnimatedButtonPressableContainer>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\n\nexport interface BaseStyledButtonPressableProps extends ViewProps {\n $type: ButtonType;\n $variant: ButtonVariant;\n $isLarge?: boolean;\n $isXLarge?: boolean;\n $isStretch?: boolean;\n $isDisabled?: boolean;\n}\n\nexport const BaseStyledButtonPressable = styled.View<BaseStyledButtonPressableProps>`\n position: relative;\n min-width: ${({ theme }) => theme.kitt.button.minWidth}px;\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : `${theme.kitt.button.maxWidth}px`)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight}px;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n\n background-color: ${({ theme, $isDisabled, $type, $variant }) => {\n if ($isDisabled) return theme.kitt.button.disabled.default.backgroundColor;\n\n if (Platform.OS !== 'web') return 'transparent';\n\n return getVariantValuesIfExist(theme, $type, $variant).backgroundColor;\n }};\n\n padding: ${({ theme, $isLarge, $isXLarge, $isDisabled }) => {\n const { large, default: defaultPadding, disabled: disabledPadding, xLarge } = theme.kitt.button.contentPadding;\n\n if ($isXLarge) return xLarge;\n if ($isLarge) return large;\n if ($isDisabled) return disabledPadding;\n\n return defaultPadding;\n }};\n`;\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'] | 'inherit';\n}\n\nfunction TypographyIconSpecifiedColor({ color, ...props }: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...props} color={color === 'inherit' ? 'inherit' : theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n}\n\nexport function TypographyIcon({ color, ...props }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n }\n\n return <TypographyIconInheritColor {...props} />;\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType, ButtonVariant } from './Button';\nimport { isSubtle } from './isSubtle';\n\nconst getTextColorByType = (type: ButtonType, variant: ButtonVariant): TypographyColor => {\n switch (type) {\n case 'primary':\n return variant === 'ghost' ? 'primary' : 'white';\n case 'white':\n return 'white';\n case 'subtle':\n return 'primary';\n case 'subtle-dark':\n return 'black';\n case 'default':\n return variant === 'ghost' ? 'white' : 'black';\n default:\n return 'black';\n }\n};\n\ninterface StyledButtonTextProps extends TypographyTextProps {\n $type: ButtonType;\n $isDisabled?: boolean;\n}\n\nconst StyledButtonText = styled(Typography.Text)<StyledButtonTextProps>`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n\n ${() => {\n // Make the multilines case work properly on native\n // Breaks the web implem\n if (Platform.OS === 'web') return undefined;\n\n return `\n flex-shrink: 1;\n `;\n }}\n\n ${({ $type, $isDisabled }) => {\n /* For subltes button, color changes when hovered.\n * We don't want to use a mouse event handler with a react state to handle it\n * For this precise case, we've decided to work outside the typography logic\n */\n if (Platform.OS !== 'web' || $isDisabled || !isSubtle($type)) return undefined;\n return 'color: inherit';\n }}\n`;\n\ninterface StyledIconContainerProps {\n $iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst StyledIconContainer = styled.View<StyledIconContainerProps>`\n ${({ theme, $iconPosition }) => {\n const value = theme.kitt.spacing * 2;\n\n if ($iconPosition === 'left') {\n return `margin: 0 ${value}px 0 0;`;\n }\n\n return `margin: 0 0 0 ${value}px;`;\n }}\n`;\n\ninterface ButtonIconProps {\n icon: NonNullable<ButtonContentProps['icon']>;\n iconPosition: ButtonContentProps['iconPosition'];\n color: TypographyIconProps['color'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, color, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <StyledIconContainer $iconPosition={iconPosition}>\n <TypographyIcon icon={icon} testID={testID} color={color} />\n </StyledIconContainer>\n );\n}\n\ninterface ButtonContentProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n variant: NonNullable<ButtonVariant>;\n $isStretch: ButtonProps['stretch'];\n}\n\ninterface ButtonContentChildrenProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n color: TypographyColor;\n}\n\nconst StyledChildrenWithIcon = styled.View`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n`;\n\nexport function ButtonContentChildren({\n type,\n icon,\n iconPosition,\n isDisabled,\n color,\n children,\n}: ButtonContentChildrenProps): ReactElement | null {\n if (__DEV__) {\n if (!(children || icon)) {\n throw new Error('kitt(Button): You should provide at least a children or a icon');\n }\n }\n\n const isWebSubtle = isSubtle(type) && Platform.OS === 'web' && !isDisabled;\n\n if (!children) {\n return (\n <TypographyIcon\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n icon={icon!}\n color={isWebSubtle ? 'inherit' : color}\n />\n );\n }\n\n const buttonIconSharedProps = {\n type,\n iconPosition,\n color: isWebSubtle ? 'inherit' : (color as TypographyIconProps['color']),\n };\n\n return (\n <StyledChildrenWithIcon>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...buttonIconSharedProps} testID=\"button-left-icon\" icon={icon} />\n ) : null}\n\n <StyledButtonText\n base=\"body\"\n variant=\"bold\"\n $type={type}\n $isDisabled={isDisabled}\n // set to color: inherit via styled components\n color={isWebSubtle ? undefined : color}\n >\n {children}\n </StyledButtonText>\n\n {icon && iconPosition === 'right' ? <ButtonIcon {...buttonIconSharedProps} icon={icon} /> : null}\n </StyledChildrenWithIcon>\n );\n}\n\ninterface ButtonContentContainerProps {\n $isSubtle?: boolean;\n $isStretch?: boolean;\n $isIconOnly?: boolean;\n}\n\nconst ButtonContentContainer = styled.View<ButtonContentContainerProps>`\n line-height: 16px;\n\n ${({ $isStretch, $isIconOnly }) => {\n // Make the multilines case work properly on web\n // Breaks the native implem\n if (Platform.OS !== 'web') return undefined;\n\n return `\n flex: ${$isStretch || $isIconOnly ? 1 : 0} 1 auto;\n `;\n }}\n\n ${({ $isSubtle }) => {\n if (Platform.OS !== 'web' || !$isSubtle) return undefined;\n // Needed for subtle type\n return 'color: inherit';\n }};\n`;\n\nexport function ButtonContent({\n type,\n variant,\n isDisabled,\n $isStretch,\n icon,\n children,\n ...props\n}: ButtonContentProps): ReactElement {\n const color = isDisabled ? 'black-light' : getTextColorByType(type, variant);\n\n return (\n <ButtonContentContainer $isSubtle={isSubtle(type)} $isStretch={$isStretch} $isIconOnly={Boolean(!children && icon)}>\n <ButtonContentChildren icon={icon} type={type} isDisabled={isDisabled} color={color} {...props}>\n {children}\n </ButtonContentChildren>\n </ButtonContentContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport { Platform } from 'react-native';\nimport { AnimatedButtonPressable } from './AnimatedButtonPressable';\nimport { BaseStyledButtonPressable } from './BaseStyledButtonPressable';\nimport { ButtonContent } from './ButtonContent';\nimport { StyledDisabled } from './StyledDisabled';\n\nexport type SubtleButtonType = 'subtle' | 'subtle-dark';\nexport type ButtonType = 'primary' | 'default' | SubtleButtonType | 'white';\n\nexport type ButtonVariant = 'default' | 'ghost';\n\ntype IconPosition = 'right' | 'left';\n\nconst allowedGhostTypes = ['primary', 'default'];\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n variant?: ButtonVariant;\n disabled?: boolean;\n stretch?: boolean;\n large?: boolean;\n xLarge?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n testID?: PressableProps['testID'];\n href?: PressableProps['href'];\n hrefAttrs?: PressableProps['hrefAttrs'];\n accessibilityRole?: PressableProps['accessibilityRole'];\n className?: string;\n style?: PressableProps['style'];\n onPress?: PressableProps['onPress'];\n}\n\nexport const Button = forwardRef<View, ButtonProps>(\n (\n {\n children,\n type = 'default',\n variant = 'default',\n disabled,\n stretch,\n large,\n xLarge,\n icon,\n iconPosition = 'left',\n testID,\n href,\n hrefAttrs,\n accessibilityRole = 'button',\n onPress,\n }: ButtonProps,\n ref,\n ): ReactElement => {\n if (__DEV__ && variant === 'ghost' && !allowedGhostTypes.includes(type)) {\n throw new Error('variant=ghost is only allowed with type=primary or default');\n }\n\n return (\n <AnimatedButtonPressable\n ref={ref}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n disabled={disabled}\n $isStretch={stretch}\n $type={type}\n $variant={variant}\n onPress={onPress}\n >\n <BaseStyledButtonPressable\n $type={type}\n $variant={variant}\n $isStretch={stretch}\n $isLarge={large}\n $isXLarge={xLarge}\n $isDisabled={disabled}\n >\n <ButtonContent\n type={type}\n variant={variant}\n $isStretch={stretch}\n isDisabled={disabled}\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n {Platform.OS !== 'web' && disabled ? <StyledDisabled /> : null}\n </BaseStyledButtonPressable>\n </AnimatedButtonPressable>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\ntype CardType = 'primary' | 'secondary' | 'subtle';\n\nexport interface CardProps {\n children: NonNullable<ReactNode>;\n type: CardType;\n}\ninterface ContainerProps {\n type: CardType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.card[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n border-width: ${({ theme }) => theme.kitt.card.borderWidth}px;\n border-color: ${({ theme, type }) => theme.kitt.card[type].borderColor};\n`;\n\nexport function Card({ children, type }: CardProps): ReactElement {\n return <Container type={type}>{children}</Container>;\n}\n","import type { ReactElement } from 'react';\nimport { useMemo } from 'react';\nimport type { ImageProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { parse } from 'twemoji-parser';\n\ninterface StyledEmojiProps {\n size: number;\n}\n\nconst StyledEmoji = styled.Image<StyledEmojiProps>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n`;\n\nexport interface EmojiProps extends Pick<ImageProps, 'style'> {\n emoji: string;\n size: number;\n}\n\nexport function Emoji({ emoji, size, style }: EmojiProps): ReactElement | null {\n const [emojiData] = useMemo(\n () =>\n parse(emoji, {\n // on native plaforms, you can't display svg as Image\n assetType: Platform.OS === 'web' ? 'svg' : 'png',\n }),\n [emoji],\n );\n\n if (!emojiData) return null;\n\n return <StyledEmoji size={size} accessibilityLabel={emojiData.text} source={{ uri: emojiData.url }} style={style} />;\n}\n","export interface ExternalLinkOpenLinkBehavior {\n /**\n * @default 'openInModal'\n *\n * @description open link behavior in native\n *\n * \"openInModal\": open via [expo-web-browser](https://docs.expo.dev/versions/latest/sdk/webbrowser/)\n *\n * \"openBrowserApp\": open via [Linking](https://docs.expo.dev/guides/linking/#opening-links-from-your-app)\n */\n native?: 'openInModal' | 'openBrowserApp';\n\n /**\n * @default 'targetBlank'\n *\n * @description open link behavior in native\n *\n * \"targetSelf\": no dom attributes added, behave like `target=\"_self\"`\n *\n * \"targetBlank\": dome attributes: `target=\"_blank\" rel=\"noopener noreferrer\"`\n */\n web?: 'targetSelf' | 'targetBlank';\n}\n\nexport const defaultOpenLinkBehavior: ExternalLinkOpenLinkBehavior = {\n native: 'openInModal',\n web: 'targetBlank',\n};\n","import type { ReactElement, VoidFunctionComponent } from 'react';\nimport type { ExternalLinkProps, ExternalLinkSendableComponentProps } from './ExternalLink';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n return (\n <Component\n {...(rest as any)}\n href={href}\n hrefAttrs={openLinkBehavior?.web === 'targetSelf' ? undefined : { target: '_blank', rel: 'noopener noreferrer' }}\n onPress={onPress}\n />\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 black800: '#2C293D',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colors = {\n primary: lateOceanColorPalette.lateOcean,\n primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n info: lateOceanColorPalette.aero,\n warning: lateOceanColorPalette.goldCrayola,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n white: lateOceanColorPalette.white,\n black: lateOceanColorPalette.black1000,\n blackAnthracite: lateOceanColorPalette.black800,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n transparent: lateOceanColorPalette.transparent,\n disabled: lateOceanColorPalette.black50,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface AvatarThemeColorVariant {\n backgroundColor: string;\n}\n\nexport interface AvatarThemeSizeVariant {\n borderRadius: number;\n}\n\nexport interface AvatarTheme {\n borderRadius: number;\n default: AvatarThemeColorVariant;\n light: AvatarThemeColorVariant;\n large: AvatarThemeSizeVariant;\n}\n\nexport const avatar: AvatarTheme = {\n borderRadius: 10,\n default: {\n backgroundColor: colors.primary,\n },\n light: {\n backgroundColor: lateOceanColorPalette.black100,\n },\n large: {\n borderRadius: 30,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface BaseVariantTheme {\n backgroundColor: string;\n pressedBackgroundColor: string;\n hoverBackgroundColor: string;\n focusBorderColor: string;\n}\n\nexport interface GhostVariantTheme extends BaseVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\nexport interface BaseButtonTheme {\n default: BaseVariantTheme;\n}\n\nexport interface BaseButtonWithVariant extends BaseButtonTheme {\n ghost: GhostVariantTheme;\n}\n\nexport interface SubtleBaseVariantTheme extends BaseVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\n\nexport interface SubtleButtonTheme extends BaseButtonTheme {\n default: SubtleBaseVariantTheme;\n}\n\nexport interface DisabledBaseVariantTheme extends BaseVariantTheme {\n borderColor: string;\n}\n\nexport interface DisabledButtonTheme extends BaseButtonTheme {\n default: DisabledBaseVariantTheme;\n}\n\nexport interface ButtonTheme {\n borderRadius: number;\n borderWidth: {\n disabled: number;\n focus: number;\n };\n minHeight: number;\n minWidth: number;\n maxWidth: number;\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n contentPadding: {\n default: string;\n large: string;\n xLarge: string;\n disabled: string;\n };\n transition: {\n duration: string;\n timingFunction: string;\n };\n default: BaseButtonWithVariant;\n primary: BaseButtonWithVariant;\n white: BaseButtonTheme;\n subtle: SubtleButtonTheme;\n 'subtle-dark': SubtleButtonTheme;\n disabled: DisabledButtonTheme;\n}\n\nexport const button: ButtonTheme = {\n borderRadius: 30,\n borderWidth: {\n disabled: 2,\n focus: 3,\n },\n minHeight: 40,\n minWidth: 40,\n maxWidth: 335,\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n contentPadding: {\n default: '7px 16px 7px',\n large: '11px 24px 11px',\n xLarge: '15px 24px 15px',\n disabled: '5px 14px 5px',\n },\n transition: {\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n },\n default: {\n default: {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n hoverBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n },\n ghost: {\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.05)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.05)',\n focusBorderColor: 'rgba(255, 255, 255, 0.4)',\n color: lateOceanColorPalette.white,\n hoverColor: lateOceanColorPalette.white,\n activeColor: lateOceanColorPalette.white,\n },\n },\n primary: {\n default: {\n backgroundColor: colors.primary,\n pressedBackgroundColor: colors.primaryLight,\n hoverBackgroundColor: colors.primaryLight,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n },\n ghost: {\n backgroundColor: colors.uiBackgroundLight,\n pressedBackgroundColor: colors.uiBackground,\n hoverBackgroundColor: colors.hover,\n focusBorderColor: 'rgba(255,255,255, 0.4)',\n color: colors.primary,\n hoverColor: colors.hover,\n activeColor: colors.hover,\n },\n },\n white: {\n default: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\n },\n },\n subtle: {\n default: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colors.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n },\n 'subtle-dark': {\n default: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colors.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n },\n disabled: {\n default: {\n backgroundColor: colors.disabled,\n pressedBackgroundColor: colors.disabled,\n hoverBackgroundColor: colors.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface CardThemeType {\n backgroundColor: string;\n borderColor: string;\n}\nexport interface CardTheme {\n borderRadius: number;\n borderWidth: number;\n primary: CardThemeType;\n secondary: CardThemeType;\n subtle: CardThemeType;\n}\n\nexport const card: CardTheme = {\n borderRadius: 20,\n borderWidth: 2,\n primary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: colors.separator,\n },\n};\n","import { colors } from './colors';\n\nexport interface FeedbackMessageVariantTheme {\n backgroundColor: string;\n}\n\nexport interface FeedbackMessageTheme {\n danger: FeedbackMessageVariantTheme;\n info: FeedbackMessageVariantTheme;\n success: FeedbackMessageVariantTheme;\n warning: FeedbackMessageVariantTheme;\n}\n\nexport const feedbackMessage: FeedbackMessageTheme = {\n danger: {\n backgroundColor: colors.danger,\n },\n success: {\n backgroundColor: colors.success,\n },\n info: {\n backgroundColor: colors.info,\n },\n warning: {\n backgroundColor: colors.warning,\n },\n};\n","import { colors } from './colors';\n\nexport const checkbox = {\n borderWidth: 2,\n borderRadius: 5,\n height: 20,\n width: 20,\n iconSize: 14,\n borderColor: colors.separator,\n backgroundColor: colors.uiBackgroundLight,\n checkedBorderColor: colors.primary,\n checkedBackgroundColor: colors.primary,\n markColor: colors.uiBackgroundLight,\n};\n","interface DatePickerPartTheme {\n minWidth: number;\n}\n\nexport interface DatePickerTheme {\n day: DatePickerPartTheme;\n month: DatePickerPartTheme;\n year: DatePickerPartTheme;\n}\n\nexport const datePicker: DatePickerTheme = {\n day: {\n minWidth: 64,\n },\n month: {\n minWidth: 64,\n },\n year: {\n minWidth: 82,\n },\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors as kittColors } from './colors';\n\nexport const calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeBreakpointRangeConfig {\n fontSize: number;\n lineHeight: number;\n}\n\nexport interface TypographyTypeConfig {\n baseAndSmall: TypographyTypeBreakpointRangeConfig;\n mediumAndWide: TypographyTypeBreakpointRangeConfig;\n}\n\nexport const createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: baseAndSmallFontSize,\n lineHeight: calcLineHeight(baseAndSmallFontSize, lineHeightMultiplier),\n },\n mediumAndWide: {\n fontSize: mediumAndWideFontSize,\n lineHeight: calcLineHeight(mediumAndWideFontSize, lineHeightMultiplier),\n },\n});\n\nexport const typography = {\n colors: {\n black: kittColors.black,\n 'black-anthracite': kittColors.blackAnthracite,\n 'black-light': lateOceanColorPalette.black555,\n white: kittColors.white,\n 'white-light': kittColors.white,\n primary: kittColors.primary,\n 'primary-light': kittColors.primaryLight,\n accent: kittColors.accent,\n success: kittColors.success,\n danger: kittColors.danger,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { InputUIState } from '../../forms/utils';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\nimport { typography } from './typography';\n\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: keyof typeof typography.colors;\n}\n\nexport type InputStateTheme = Record<InputUIState, InputStateStyle>;\n\nconst inputStatesStyle: InputStateTheme = {\n default: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n pending: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n valid: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n },\n focus: {\n borderColor: colors.primary,\n color: 'black',\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n color: 'black-light',\n },\n invalid: {\n borderColor: colors.separator,\n color: 'black',\n },\n};\n\nexport interface InputTheme {\n minHeight: number;\n color: {\n selection: string;\n placeholder: string;\n };\n borderWidth: number;\n borderRadius: number;\n icon: {\n size: number;\n };\n padding: {\n horizontal: number;\n vertical: number;\n };\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n states: InputStateTheme;\n}\n\nexport const input: InputTheme = {\n minHeight: 40,\n color: {\n selection: colors.primary,\n placeholder: typography.colors['black-light'],\n },\n borderWidth: 2,\n borderRadius: 10,\n icon: {\n size: 20,\n },\n padding: {\n horizontal: 16,\n vertical: 5,\n },\n transition: {\n property: 'border-color',\n duration: '200ms',\n timingFunction: 'ease-in-out',\n },\n states: inputStatesStyle,\n};\n","export const inputField = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\ninterface InputTagTypeTheme {\n backgroundColor: string;\n labelColor: string;\n}\nexport interface InputTagTheme {\n borderRadius: number;\n iconSize: number;\n default: InputTagTypeTheme;\n success: InputTagTypeTheme;\n danger: InputTagTypeTheme;\n}\n\nexport const inputTag: InputTagTheme = {\n success: {\n backgroundColor: colors.success,\n labelColor: colors.uiBackgroundLight,\n },\n danger: {\n backgroundColor: colors.danger,\n labelColor: colors.uiBackgroundLight,\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n labelColor: colors.black,\n },\n borderRadius: 10,\n iconSize: 13.5,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface RadioTheme {\n size: number;\n unchecked: {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n };\n checked: {\n backgroundColor: string;\n innerBackgroundColor: string;\n innerSize: number;\n };\n disabled: {\n backgroundColor: string;\n borderColor: string;\n };\n}\n\nexport const radio: RadioTheme = {\n size: 18,\n unchecked: {\n backgroundColor: colors.uiBackgroundLight,\n borderWidth: 2,\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: colors.primary,\n innerSize: 5,\n innerBackgroundColor: colors.uiBackgroundLight,\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n },\n};\n","export interface TextAreaTheme {\n minHeight: number;\n}\n\nexport const textArea: TextAreaTheme = {\n minHeight: 120,\n};\n","import { checkbox } from './checkbox';\nimport { datePicker } from './datePicker';\nimport { input } from './input';\nimport { inputField } from './inputField';\nimport { inputTag } from './inputTag';\nimport { radio } from './radio';\nimport { textArea } from './textArea';\n\nexport const forms = {\n datePicker,\n input,\n radio,\n inputField,\n textArea,\n checkbox,\n inputTag,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModal = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { button } from './button';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: button.disabled.default.backgroundColor,\n borderColor: button.disabled.default.borderColor,\n },\n default: {\n pressedBackgroundColor: button.default.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: button.white.default.hoverBackgroundColor,\n },\n};\n","import { colors } from './colors';\n\nexport interface ListItemTheme {\n padding: string;\n borderColor: string;\n borderWidth: number;\n innerMargin: number;\n}\n\nexport const listItem: ListItemTheme = {\n padding: '12px 16px',\n borderColor: colors.separator,\n borderWidth: 1,\n innerMargin: 8,\n};\n","import { colors } from './colors';\n\nexport interface PageLoaderTheme {\n size: number;\n strokeWidth: number;\n colors: {\n base: string;\n fill: string;\n };\n animation: {\n delay: number;\n circleBackgroundFillDuration: number;\n filledCircleFillDuration: number;\n groupFilledCircleRotationDuration: number;\n filledCircleRotationDuration: number;\n fillEasingFunction: [number, number, number, number];\n };\n}\n\nexport const pageLoader: PageLoaderTheme = {\n size: 60,\n strokeWidth: 3,\n colors: {\n base: colors.separator,\n fill: colors.primary,\n },\n animation: {\n delay: 500,\n circleBackgroundFillDuration: 1000,\n filledCircleFillDuration: 1800,\n groupFilledCircleRotationDuration: 1800,\n filledCircleRotationDuration: 2160,\n fillEasingFunction: [0.39, 0.575, 0.565, 1],\n },\n};\n","export const shadows = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport interface SkeletonTheme {\n backgroundColor: string;\n flareColor: string;\n animationDuration: number;\n}\n\nexport const skeleton: SkeletonTheme = {\n backgroundColor: lateOceanColorPalette.black100,\n flareColor: lateOceanColorPalette.black200,\n animationDuration: 1000,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface TagVariantTheme {\n borderWidth: number;\n backgroundColor: string;\n borderColor: string;\n}\n\nexport interface TagTypeTheme {\n fill: TagVariantTheme;\n outline: TagVariantTheme;\n}\n\nexport interface TagTheme {\n borderRadius: number;\n padding: string;\n primary: TagTypeTheme;\n default: TagTypeTheme;\n danger: TagTypeTheme;\n}\n\nexport const tag: TagTheme = {\n borderRadius: 10,\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.primary,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.black,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.danger,\n },\n },\n};\n","import { colors } from './colors';\n\nexport interface TooltipTheme {\n backgroundColor: string;\n borderRadius: number;\n opacity: number;\n horizontalPadding: number;\n verticalPadding: number;\n floatingPadding: number;\n}\n\nexport const tooltip: TooltipTheme = {\n backgroundColor: colors.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\n};\n","import { avatar } from './late-ocean/avatar';\nimport { button } from './late-ocean/button';\nimport { card } from './late-ocean/card';\nimport { colors } from './late-ocean/colors';\nimport { feedbackMessage } from './late-ocean/feedback';\nimport { forms } from './late-ocean/forms';\nimport { fullScreenModal } from './late-ocean/fullScreenModal';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItem } from './late-ocean/listItem';\nimport { pageLoader } from './late-ocean/pageLoader';\nimport { shadows } from './late-ocean/shadows';\nimport { skeleton } from './late-ocean/skeleton';\nimport { tag } from './late-ocean/tag';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typography } from './late-ocean/typography';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nconst breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar,\n breakpoints,\n button,\n card,\n feedbackMessage,\n forms,\n fullScreenModal,\n iconButton,\n listItem,\n pageLoader,\n shadows,\n skeleton,\n tag,\n tooltip,\n typography,\n};\n\nexport type Theme = typeof theme;\n","import { useWindowDimensions } from 'react-native';\nimport type { WindowDimensions } from './createWindowSizeHelper';\n\nexport interface MatchWindowSizeOptions {\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n}\nexport function matchWindowSize(\n { width, height }: WindowDimensions,\n { minWidth, maxWidth, minHeight, maxHeight }: MatchWindowSizeOptions,\n): boolean {\n const hasWidthMatched = width ? (!minWidth || width >= minWidth) && (!maxWidth || width <= maxWidth) : true;\n const hasHeightMatched = height ? (!minHeight || height >= minHeight) && (!maxHeight || height <= maxHeight) : true;\n return hasWidthMatched && hasHeightMatched;\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width, height } = useWindowDimensions();\n return matchWindowSize({ width, height }, options);\n}\n","// eslint-disable-next-line no-restricted-imports\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { matchWindowSize } from './useMatchWindowSize';\n\nexport interface WindowSizeHelper {\n /** Prefer using if or map variants, at it should be more web friendly */\n matchWindowSize: (options: MatchWindowSizeOptions) => boolean;\n\n /**\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.ifWindowSizeMatches(\n * { minWidth: KittBreakpoints.SMALL },\n * 'padding: 5px 0 10px;'\n * )\n * )};\n * `;\n * ```\n */\n ifWindowSizeMatches: <T extends string | FlattenSimpleInterpolation | null>(\n options: MatchWindowSizeOptions,\n valueIfTrue: T,\n valueIfFalse?: T,\n ) => T | undefined;\n\n /**\n *\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.mapWindowWidth(\n * [KittBreakpoints.BASE, 'padding: 5px 0 10px;'],\n * [KittBreakpoints.SMALL, 'padding: 10px 0;'],\n * )\n * )};\n * `;\n * ```\n */\n mapWindowWidth: <V extends string>(...widthList: [number, V][]) => V | null;\n}\n\nexport interface WindowDimensions {\n width?: number;\n height?: number;\n}\n\nexport function createWindowSizeHelper(dimensions: WindowDimensions): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(dimensions, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(dimensions, options) ? valueIfTrue : valueIfFalse,\n\n mapWindowWidth: <V extends string>(...widthList: [number, V][]): V | null => {\n if (__DEV__) {\n widthList.slice(1).forEach(([minWidth], index) => {\n const previousMinWidth = widthList[index][0];\n if (previousMinWidth > minWidth) {\n throw new Error(\n `mapWindowWidth: sort your values to be mobile first. ${minWidth} is < ${previousMinWidth}, so ${minWidth} should be before ${previousMinWidth}.`,\n );\n }\n });\n }\n const found = widthList.find(([minWidth, value]) => matchWindowSize(dimensions, { minWidth: Number(minWidth) }));\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { Theme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport type { WindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport interface KittTheme {\n kitt: Theme;\n responsive: WindowSizeHelper;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions) };\n }, [dimensions]);\n}\n","import { CheckboxMark } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { GestureResponderEvent, PressableProps } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { Icon } from '../../Icon/Icon';\nimport { useKittTheme } from '../../useKittTheme';\n\ninterface CheckboxContainerProps {\n $isChecked: boolean;\n $hasLabel: boolean;\n}\n\nconst CheckboxAndLabelPressableWrapper = styled.Pressable`\n display: flex;\n flex-direction: row;\n`;\n\nconst CheckboxContainer = styled.View<CheckboxContainerProps>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n height: ${({ theme }) => theme.kitt.forms.checkbox.height}px;\n width: ${({ theme }) => theme.kitt.forms.checkbox.width}px;\n position: relative;\n border-radius: ${({ theme }) => theme.kitt.forms.checkbox.borderRadius}px;\n\n ${({ $isChecked, theme }) => {\n const { checkedBackgroundColor, checkedBorderColor, borderColor, borderWidth, backgroundColor } =\n theme.kitt.forms.checkbox;\n if ($isChecked) {\n return css`\n background-color: ${checkedBackgroundColor};\n border: ${`${borderWidth}px solid ${checkedBorderColor}`};\n `;\n }\n return css`\n background-color: ${backgroundColor};\n border: ${`${borderWidth}px solid ${borderColor}`};\n `;\n }}\n\n margin-right: ${({ theme, $hasLabel }) => {\n if (!$hasLabel) return '0px';\n return `${theme.kitt.spacing * 2.5}px;`;\n }};\n`;\n\nexport interface CheckboxProps {\n onChange: (checked: boolean, e: GestureResponderEvent) => void;\n onBlur?: (e: any) => void;\n onFocus?: (e: any) => void;\n checked: boolean;\n hitSlop?: number;\n id?: PressableProps['testID'];\n children?: ReactNode;\n}\n\nexport function Checkbox({\n onChange,\n onBlur,\n onFocus,\n checked,\n hitSlop = 40,\n id,\n children,\n}: CheckboxProps): ReactElement {\n const theme = useKittTheme();\n\n const handlePress = (e: GestureResponderEvent): void => {\n if (onFocus) onFocus(e);\n if (onChange) onChange(!checked, e);\n if (onBlur) onBlur(e);\n };\n\n return (\n <CheckboxAndLabelPressableWrapper\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked }}\n hitSlop={hitSlop}\n onPress={handlePress}\n >\n <CheckboxContainer $isChecked={checked} $hasLabel={!!children} testID={id}>\n {checked ? (\n <Icon\n align=\"center\"\n color={theme.kitt.forms.checkbox.markColor}\n size={theme.kitt.forms.checkbox.iconSize}\n icon={<CheckboxMark />}\n />\n ) : null}\n </CheckboxContainer>\n\n {children}\n </CheckboxAndLabelPressableWrapper>\n );\n}\n","export type InputFormState = undefined | 'valid' | 'invalid' | 'pending';\n\nexport type InputUIState = NonNullable<InputFormState> | 'default' | 'disabled' | 'hover' | 'focus';\n\ninterface GetInputStateConfig {\n isFocused: boolean;\n isDisabled: boolean;\n formState: InputFormState;\n}\n\nexport function getInputUIState({ isFocused, isDisabled, formState }: GetInputStateConfig): InputUIState {\n if (isDisabled) return 'disabled';\n\n if (isFocused) return 'focus';\n\n if (formState === 'invalid') return 'invalid';\n\n return 'default';\n}\n","import { css } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../typography/Typography';\nimport type { InputUIState } from './utils';\n\nexport interface TextInputMixinProps {\n $state: InputUIState;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n background-color: ${({ theme, $state }) =>\n $state === 'disabled'\n ? theme.kitt.forms.input.states.disabled.backgroundColor\n : theme.kitt.forms.input.states.default.backgroundColor};\n\n border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth}px;\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius}px;\n border-color: ${({ theme, $state }) => theme.kitt.forms.input.states[$state].borderColor};\n\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;\n }};\n\n color: ${({ theme, $state }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color]};\n font-family: ${({ theme }) => theme.kitt.typography.types.bodies.fontFamily.regular};\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\n\ntype PartName = 'year' | 'month' | 'day';\n\nconst StyledTypographyText = styled(Typography.Text)`\n text-align: center;\n`;\n\ninterface ViewInputProps extends TextInputMixinProps {\n $partName?: PartName;\n}\n\nconst ViewInput = styled.View<ViewInputProps>`\n ${styledTextInputMixin}\n padding: ${({ theme }) =>\n `${theme.kitt.forms.input.padding.vertical}px ${theme.kitt.forms.input.padding.horizontal}px`};\n\n min-height: ${({ theme }) => theme.kitt.forms.input.minHeight}px;\n min-width: ${({ theme, $partName }) => {\n if (!$partName) {\n return undefined;\n }\n\n return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;\n }};\n`;\n\ninterface DatePickerInputPartProps extends TextInputMixinProps {\n disabled?: boolean;\n partName?: 'year' | 'month' | 'day';\n placeholder?: string;\n value?: ReactNode;\n}\n\nexport function DatePickerInputPart({\n $state,\n placeholder,\n value,\n partName,\n disabled,\n}: DatePickerInputPartProps): ReactElement {\n const hasContent = placeholder || value;\n\n return (\n <ViewInput $state={$state} $partName={partName}>\n {hasContent ? (\n <StyledTypographyText color={!value || disabled ? 'black-light' : undefined}>\n {value || placeholder}\n </StyledTypographyText>\n ) : null}\n </ViewInput>\n );\n}\n","import type { ReactElement } from 'react';\nimport styled, { css } from 'styled-components/native';\nimport { getInputUIState } from '../utils';\nimport { DatePickerInputPart } from './DatePickerInputPart';\nimport type { DatePickerInputsProps } from './types';\n\nfunction prefixWithZero(value: number): string {\n return `${value}`.padStart(2, '0');\n}\n\ninterface PartContainerProps {\n $isLast?: boolean;\n $isStretch?: boolean;\n}\n\nconst PartContainer = styled.View<PartContainerProps>`\n margin-right: ${({ theme, $isLast }) => (!$isLast ? `${theme.kitt.spacing * 2}px` : 0)};\n ${({ $isStretch }) =>\n $isStretch\n ? css`\n flex: 0.33;\n flex-grow: 1;\n `\n : undefined};\n`;\n\ninterface DatePickerPressableProps {\n $isStretch?: boolean;\n}\n\nconst DatePickerPressable = styled.Pressable<DatePickerPressableProps>`\n display: flex;\n flex-direction: row;\n ${({ $isStretch }) => {\n if ($isStretch) {\n return css`\n width: 100%;\n `;\n }\n\n return css`\n align-self: baseline;\n `;\n }};\n`;\n\nexport interface DatePickerPlaceholder {\n day: string;\n month: string;\n year: string;\n}\n\nexport function DatePickerInputs({\n state,\n internalForceState,\n isFocused,\n disabled,\n stretch,\n id,\n testID,\n handleModalOpen,\n currentValue,\n placeholder,\n}: DatePickerInputsProps): ReactElement {\n const currentState =\n internalForceState || getInputUIState({ isFocused, isDisabled: Boolean(disabled), formState: state });\n\n const sharedPartProps = {\n disabled,\n $state: currentState,\n };\n\n return (\n <DatePickerPressable\n $isStretch={stretch}\n nativeID={id}\n disabled={disabled}\n testID={testID}\n onPress={handleModalOpen}\n >\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"day\"\n value={currentValue ? prefixWithZero(currentValue.getDate()) : undefined}\n placeholder={placeholder?.day}\n />\n </PartContainer>\n\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"month\"\n value={currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined}\n placeholder={placeholder?.month}\n />\n </PartContainer>\n\n <PartContainer $isLast $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"year\"\n value={currentValue ? currentValue.getFullYear() : undefined}\n placeholder={placeholder?.year}\n />\n </PartContainer>\n </DatePickerPressable>\n );\n}\n","import type { ReactElement } from 'react';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\n// This is not yet implemented\n// We still display the inputs for chromatic\nexport function DatePicker({ value, ...props }: DatePickerProps): ReactElement {\n return <DatePickerInputs handleModalOpen={() => {}} currentValue={value} isFocused={false} {...props} />;\n}\n","import { styled } from '@linaria/react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../../utils/withTheme';\nimport type { InputTextContainerProps } from './InputTextContainer';\n\ninterface WebInputTextContainerProps extends InputTextContainerProps {\n theme: DefaultTheme;\n}\n\nexport const InputTextContainer = withTheme(styled.div<WebInputTextContainerProps>`\n display: flex;\n position: relative;\n\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *::-ms-clear,\n & > *::-ms-reveal {\n display: none;\n }\n\n &,\n & > * {\n cursor: ${({ $isDisabled }) => ($isDisabled ? 'not-allowed' : 'inherit')};\n }\n\n & > * {\n transition: ${({ theme }) => {\n const { property, duration, timingFunction } = theme.kitt.forms.input.transition;\n return `${property} ${duration} ${timingFunction}`;\n }};\n }\n\n &:hover > *,\n .kitt-hover & > * {\n border-color: ${({ theme, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.forms.input.states.disabled.borderColor;\n return theme.kitt.forms.input.states.hover.borderColor;\n }};\n }\n\n &:focus > *,\n & > *:focus,\n .kitt-focus & > * {\n border-color: ${({ theme, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.forms.input.states.disabled.borderColor;\n return theme.kitt.forms.input.states.focus.borderColor;\n }};\n }\n`);\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\nimport type { TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\nimport type { InputFormState, InputUIState } from '../utils';\nimport { getInputUIState } from '../utils';\nimport { InputTextContainer } from './InputTextContainer';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n minHeight?: number;\n state?: InputFormState;\n right?: ReactNode;\n /** @internal */\n internalForceState?: InputUIState;\n}\n\ninterface StyledTextInputProps extends TextInputMixinProps {\n $minHeight?: number;\n}\n\nconst StyledTextInput = styled(TextInput)<StyledTextInputProps>`\n ${styledTextInputMixin}\n\n padding: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS !== 'web') return `0 ${theme.kitt.forms.input.padding.horizontal}px`;\n\n return `${theme.kitt.forms.input.padding.vertical}px ${theme.kitt.forms.input.padding.horizontal}px`;\n }};\n\n line-height: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS !== 'web') return 0;\n\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].lineHeight}px`;\n }};\n\n width: 100%;\n min-height: ${({ theme, $minHeight = theme.kitt.forms.input.minHeight }) => $minHeight}px;\n`;\n\nconst RightInputContainer = styled.View`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: 10px;\n`;\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n right,\n minHeight,\n state: formState,\n internalForceState,\n disabled = false,\n autoCorrect = true,\n textContentType = 'none',\n autoCompleteType = 'off',\n keyboardType = 'default',\n multiline,\n onSubmitEditing,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n const state = internalForceState || getInputUIState({ isFocused, isDisabled: disabled, formState });\n\n return (\n <InputTextContainer $isDisabled={disabled}>\n <StyledTextInput\n ref={ref}\n multiline={multiline}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardType}\n autoCompleteType={autoCompleteType}\n autoCorrect={autoCorrect}\n $minHeight={minHeight}\n textContentType={textContentType}\n placeholderTextColor={theme.kitt.forms.input.color.placeholder}\n selectionColor={theme.kitt.forms.input.color.selection}\n {...props}\n $state={state}\n onFocus={(e) => {\n setIsFocused(true);\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n if (onBlur) onBlur(e);\n }}\n onSubmitEditing={multiline ? () => null : onSubmitEditing}\n />\n {right ? <RightInputContainer>{right}</RightInputContainer> : null}\n </InputTextContainer>\n );\n },\n);\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputEmailProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType' | 'autoCapitalize'> {}\n\nexport function InputEmail(props: InputEmailProps): ReactElement {\n return (\n <InputText\n autoCompleteType=\"email\"\n keyboardType=\"email-address\"\n textContentType=\"emailAddress\"\n autoCapitalize=\"none\"\n {...props}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../utils';\n\nexport interface InputFeedbackProps {\n state?: InputFormState;\n testID?: TypographyProps['testID'];\n children: NonNullable<ReactNode>;\n}\n\nconst getColorFromState = (state?: InputFormState): TypographyColor => {\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n default:\n return 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../../KittBreakpoints';\n\nconst FieldContainer = styled.View`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled.View`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.forms.inputField.iconMarginLeft}px;\n`;\n\nexport interface InputFieldProps {\n label?: ReactNode;\n labelFeedback?: ReactNode;\n input: NonNullable<ReactNode>;\n feedback?: ReactNode;\n}\n\nexport function InputField({ label, labelFeedback, input, feedback }: InputFieldProps): ReactElement {\n return (\n <FieldContainer>\n {label ? (\n <FieldLabelContainer>\n <LabelContainer>{label}</LabelContainer>\n {labelFeedback}\n </FieldLabelContainer>\n ) : null}\n {input}\n {feedback ? <FeedbackContainer>{feedback}</FeedbackContainer> : null}\n </FieldContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputFormState } from 'forms/utils';\nimport type { TypographyIconProps } from '../../typography/TypographyIcon';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\n\nfunction getIconColor(state?: InputFormState, disabled?: boolean): TypographyIconProps['color'] {\n if (disabled) return 'black-light';\n\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n return 'success';\n default:\n return undefined;\n }\n}\n\nexport interface InputIconProps {\n icon: NonNullable<ReactElement>;\n disabled?: boolean;\n state?: InputFormState;\n}\n\nexport function InputIcon({ icon, state, disabled }: InputIconProps): ReactElement {\n const theme = useTheme();\n\n const color = getIconColor(state, disabled);\n\n return <TypographyIcon color={color} icon={icon} size={theme.kitt.forms.input.icon.size} />;\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable } from 'react-native';\n\nexport interface InputPressableProps extends PressableProps {}\n\nexport function InputPressable({ ...props }: InputPressableProps): ReactElement {\n return <Pressable {...props} />;\n}\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { InputIcon } from '../InputIcon/InputIcon';\nimport { InputPressable } from '../InputPressable/InputPressable';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPasswordProps extends InputTextProps {\n isPasswordDefaultVisible?: boolean;\n}\n\nexport function InputPassword({ isPasswordDefaultVisible, right, ...props }: InputPasswordProps): ReactElement {\n const [isVisible, setIsVisible] = useState(Boolean(isPasswordDefaultVisible));\n\n return (\n <InputText\n {...props}\n textContentType=\"password\"\n autoCompleteType=\"password\"\n autoCorrect={false}\n secureTextEntry={!isVisible}\n right={\n right || (\n <InputPressable hitSlop={20} accessibilityRole=\"button\" onPress={() => setIsVisible((prev) => !prev)}>\n <InputIcon icon={isVisible ? <EyeOffIcon /> : <EyeIcon />} />\n </InputPressable>\n )\n }\n />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPhoneProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType'> {}\n\nexport function InputPhone(props: InputPhoneProps): ReactElement {\n return <InputText {...props} autoCompleteType=\"tel\" keyboardType=\"number-pad\" textContentType=\"telephoneNumber\" />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport { useKittTheme } from '../../useKittTheme';\n\ntype InputTagType = 'success' | 'danger';\n\nconst getTypographyColor = (type: InputTagType | undefined): TypographyColor => (type ? 'white' : 'black');\n\ninterface InputTagContainerProps {\n type?: InputTagType;\n}\n\nconst InputTagContainer = styled(View)<InputTagContainerProps>`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n align-self: flex-start;\n overflow: hidden;\n padding-horizontal: ${({ theme }) => theme.kitt.spacing * 2}px;\n\n background-color: ${({ theme, type }) => {\n if (type === 'success') {\n return theme.kitt.forms.inputTag.success.backgroundColor;\n }\n if (type === 'danger') {\n return theme.kitt.forms.inputTag.danger.backgroundColor;\n }\n\n return theme.kitt.forms.inputTag.default.backgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.forms.inputTag.borderRadius}px;\n`;\n\nconst IconContainer = styled(View)`\n margin-right: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nexport interface InputTagProps {\n type?: InputTagType;\n children: ReactNode;\n icon?: ReactElement;\n}\n\nexport function InputTag({ children, type, icon }: InputTagProps): ReactElement {\n const typographyColor = getTypographyColor(type);\n const theme = useKittTheme();\n\n return (\n <InputTagContainer type={type}>\n {icon && (\n <IconContainer>\n <TypographyIcon icon={icon} size={theme.kitt.forms.inputTag.iconSize} color={typographyColor} />\n </IconContainer>\n )}\n <Typography.Text base=\"body-small\" color={typographyColor}>\n {children}\n </Typography.Text>\n </InputTagContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface LabelProps {\n htmlFor: string;\n children: NonNullable<ReactNode>;\n}\n\nexport function Label({ htmlFor, children }: LabelProps): ReactElement {\n return (\n <Typography.Text base=\"body\">\n {Platform.OS === 'web' ? <label htmlFor={htmlFor}>{children}</label> : children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { PressableProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface RadioProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n right?: boolean;\n children?: NonNullable<ReactNode>;\n value: string;\n onChange: (newValue: string) => void;\n}\n\ninterface OuterRadioProps {\n disabled: boolean;\n}\n\nconst OuterRadio = styled.View<OuterRadioProps>`\n background-color: ${({ theme, disabled }) =>\n theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n border-width: ${({ theme }) => theme.kitt.forms.radio.unchecked.borderWidth}px;\n border-color: ${({ theme, disabled }) => theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].borderColor};\n`;\nconst SelectedOuterRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n justify-content: center;\n align-items: center;\n`;\nconst SelectedInnerRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.innerBackgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n height: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize / 2}px;\n`;\nconst Container = styled.Pressable`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface TextAreaProps extends InputTextProps {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n\n return <InputText multiline textAlignVertical=\"top\" minHeight={theme.kitt.forms.textArea.minHeight} {...props} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\nconst Body = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding-right: ${theme.kitt.spacing * 12}px;\n padding-left: ${theme.kitt.spacing * 12}px;`,\n `padding-right: ${theme.kitt.spacing * 6}px;\n padding-left: ${theme.kitt.spacing * 6}px;`,\n )}\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n flex: 1;\n`;\n\ninterface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function FullScreenModalBody({ children }: BodyProps): ReactElement {\n return <Body>{children}</Body>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled.View<SideContainerProps>`\n ${({ theme, side = 'left' }) => {\n const padding = theme.kitt.spacing * 2;\n\n if (side === 'left') {\n return `padding-right: ${padding}px;`;\n }\n\n return `padding-left: ${padding}px;`;\n }}\n`;\n\nfunction getHeaderHorizontalMediumPadding(spacing: number): number {\n return spacing * 6;\n}\n\ninterface HeaderProps {\n insetTop?: number;\n}\n\nconst Header = styled.View<HeaderProps>`\n ${({ theme, insetTop = 0 }) => {\n const paddingTop = insetTop + theme.kitt.fullScreenModal.header.paddingVertical;\n const { paddingVertical, paddingHorizontal } = theme.kitt.fullScreenModal.header;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding: ${paddingTop}px ${getHeaderHorizontalMediumPadding(theme.kitt.spacing)}px ${paddingVertical}px;`,\n `padding: ${paddingTop}px ${paddingHorizontal}px ${paddingVertical}px;`,\n );\n }};\n border-bottom-color: ${({ theme }) => theme.kitt.fullScreenModal.header.borderColor};\n border-bottom-width: 1px;\n flex-direction: row;\n align-items: center;\n`;\n\ninterface HeaderContentProps {\n windowWidth: number;\n leftWidth: number;\n rightWidth: number;\n}\n\nconst HeaderContent = styled.View<HeaderContentProps>`\n ${({ theme, leftWidth, rightWidth, windowWidth }) => {\n /*\n * Since we don't have controll over the rendered left and right elements,\n * we must apply some logic to give the title all the available space\n */\n const sideElementMaxWidth = Math.max(leftWidth, rightWidth);\n\n const parentHorizontalPadding = theme.kitt.fullScreenModal.header.paddingHorizontal * 2;\n const parentHorizontalPaddingMedium = getHeaderHorizontalMediumPadding(theme.kitt.spacing) * 2;\n\n const computeWidth = (breakpointPadding: number): number =>\n windowWidth - breakpointPadding - sideElementMaxWidth * 2;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `width: ${computeWidth(parentHorizontalPaddingMedium)}px;`,\n `width: ${computeWidth(parentHorizontalPadding)}px;`,\n );\n }};\n ${({ leftWidth, rightWidth }) => {\n // Depending of the wider element, we must add a margin to fill the diff in space between elements\n const deltaMargin = Math.abs(leftWidth - rightWidth);\n\n if (leftWidth > rightWidth) {\n return `margin-right: ${deltaMargin}px;`;\n }\n\n return `margin-left: ${deltaMargin}px;`;\n }};\n justify-content: center;\n align-items: center;\n`;\n\nexport interface FullScreenModalHeaderProps {\n children: NonNullable<ReactNode>;\n right?: ReactNode;\n left?: ReactNode;\n}\n\nexport function FullScreenModalHeader({ children, right, left }: FullScreenModalHeaderProps): ReactElement {\n const { top } = useSafeAreaInsets();\n const dimensions = useWindowDimensions();\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(0);\n\n const handleLayoutChange = (event: LayoutChangeEvent, side: 'left' | 'right'): void => {\n // Prevents react to nullify event on rerenders\n event.persist();\n\n if (side === 'left') {\n setLeftWidth(event.nativeEvent.layout.width);\n return;\n }\n\n setRightWidth(event.nativeEvent.layout.width);\n };\n\n return (\n <Header insetTop={Platform.OS === 'ios' ? undefined : top}>\n {left ? <SideContainer onLayout={(e) => handleLayoutChange(e, 'left')}>{left}</SideContainer> : null}\n\n <HeaderContent windowWidth={dimensions.width} leftWidth={leftWidth} rightWidth={rightWidth}>\n {children}\n </HeaderContent>\n\n {right ? (\n <SideContainer side=\"right\" onLayout={(e) => handleLayoutChange(e, 'right')}>\n {right}\n </SideContainer>\n ) : null}\n </Header>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\nimport type { SpinningIconProps } from './SpinningIcon';\n\ninterface StyledSpinningIconContainerProps {\n theme: DefaultTheme;\n}\n\nconst StyledSpinningIconContainer = withTheme(styled.div<StyledSpinningIconContainerProps>`\n & {\n display: inline-flex;\n }\n\n & > svg {\n animation: spin 1.1s infinite linear;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(-1deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n }\n`);\n\nexport function SpinningIcon({ icon, color }: SpinningIconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n return <StyledSpinningIconContainer>{clonedIcon}</StyledSpinningIconContainer>;\n}\n","import type { ComponentProps, ElementType, ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\n\nexport interface StyleWebWrapperProps<T extends ElementType> {\n as: T;\n children: ReactNode;\n}\n\nexport function StyleWebWrapper<T extends ElementType = 'div'>({\n as,\n children,\n ...props\n}: StyleWebWrapperProps<T> & ComponentProps<T>): ReactElement {\n if (Platform.OS !== 'web') return children as ReactElement;\n const Component: T = as || ('div' as T); // as or default to div. If as is undefined, T is div but typescript is not sure\n return <Component {...(props as any)}>{children}</Component>;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport { theme as kittTheme } from '../themes/default';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: boolean;\n $isDisabled?: boolean;\n}\n\nconst PressableIconButtonWebWrapper = withTheme(styledLinaria.div<PressableIconButtonWebWrapperProps>`\n & > *:hover,\n .kitt-hover & > * {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover)});\n }\n\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover)});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.active)});\n }\n\n &,\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *:hover,\n .kitt-hover & > *,\n & > *:focus,\n .kitt-focus & > *,\n & > [data-focusvisible-polyfill],\n & > *:active,\n .kitt-active & > * {\n background-color: ${({ theme, $isWhite, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;\n\n const { white, default: defaultIconButton } = theme.kitt.iconButton;\n\n if ($isWhite) return white.pressedBackgroundColor;\n return defaultIconButton.pressedBackgroundColor;\n }};\n }\n`);\n\nconst StyledPressableIconButton = styled.Pressable`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n `;\n }};\n`;\n\nexport interface PressableIconButtonProps extends PressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport function PressableIconButton({ color, disabled, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'} $isDisabled={Boolean(disabled)}>\n <StyledPressableIconButton {...props} disabled={disabled} />\n </StyleWebWrapper>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableAnimatedContainerProps } from './PressableAnimatedContainer';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport function PressableAnimatedContainer({\n children,\n color,\n disabled,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n return (\n <PressableIconButton accessibilityRole=\"button\" color={color} disabled={disabled} onPress={onPress}>\n {children}\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { AccessibilityRole } from 'react-native';\nimport styled from 'styled-components/native';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled.View<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n testID?: string;\n accessibilityLabel?: string;\n accessibilityRole?: AccessibilityRole;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({\n icon,\n color,\n disabled,\n testID,\n accessibilityLabel,\n accessibilityRole,\n onPress,\n}: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer\n color={color}\n disabled={disabled}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled.View`\n flex: 1 0 0%;\n align-self: center;\n`;\n\nexport function ListItemContent({ children, ...rest }: ListItemContentProps): ReactElement {\n return <ContentView {...rest}>{children}</ContentView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps, ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemSideContainerProps extends ViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled.View<ListItemSideContainerProps>`\n flex-direction: row;\n margin-left: ${({ theme, side }) => (side === 'right' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n`;\n\n// Handles the vertical alignment of the side elements of the list item\nexport function ListItemSideContainer({ children, side = 'left', ...rest }: ListItemSideContainerProps): ReactElement {\n return (\n <SideContainerView side={side} {...rest}>\n {children}\n </SideContainerView>\n );\n}\n\nexport interface ListItemSideContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled.View<ListItemSideContentProps>`\n align-self: ${({ align }) => align};\n`;\n\nexport function ListItemSideContent({ children, align = 'auto', ...rest }: ListItemSideContentProps): ReactElement {\n return (\n <SideContentView align={align} {...rest}>\n {children}\n </SideContentView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Fragment } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport { Pressable } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends ViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled.View<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}px`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}px`;\n }\n\n if (borders === 'both') {\n return css`\n border-top-width: ${borderWidth}px;\n border-bottom-width: ${borderWidth}px;\n `;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? Pressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import { ArcIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { SpinningIconProps } from '../Icon/SpinningIcon';\nimport { SpinningIcon } from '../Icon/SpinningIcon';\n\nexport interface LoaderIconProps {\n color?: SpinningIconProps['color'];\n}\n\nexport function LoaderIcon({ color }: LoaderIconProps): ReactElement {\n return <SpinningIcon color={color} icon={<ArcIcon />} />;\n}\n","import { AlertCircleIcon, AlertTriangleIcon, CheckIcon, InfoIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\ninterface IconContentProps {\n type: MessageType;\n color: TypographyColor;\n}\n\nexport function IconContent({ type, color }: IconContentProps): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon color={color} />;\n case 'success':\n return <CheckIcon color={color} />;\n case 'danger':\n return <AlertTriangleIcon color={color} />;\n default:\n return <InfoIcon color={color} />;\n }\n}\n","import type { IconButtonProps } from '../IconButton/IconButton';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\nexport const getColorByType = (type: MessageType): TypographyColor => {\n switch (type) {\n case 'success':\n return 'white';\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n\nexport const getIconButtonColor = (messageType: MessageType): IconButtonProps['color'] => {\n switch (messageType) {\n case 'success':\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Typography } from '../typography/Typography';\nimport { IconContent } from './IconContent';\nimport { getColorByType, getIconButtonColor } from './helper';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\ninterface StyledMessageContainerProps {\n $type: MessageType;\n $hasNoRadius?: boolean;\n $insets?: EdgeInsets;\n}\n\nconst StyledMessageContainer = styled.View<StyledMessageContainerProps>`\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n min-height: 60px;\n padding-top: ${({ $insets }) => $insets?.top ?? 0}px;\n border-radius: ${({ theme, $hasNoRadius }) => ($hasNoRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, $type }) => theme.kitt.feedbackMessage[$type].backgroundColor};\n`;\n\nconst StyledDismissWrapper = styled.View`\n align-items: center;\n align-items: flex-start;\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 2.5}px ${spacing * 2}px 0 ${spacing * 5}px`;\n }};\n`;\n\nconst StyledIconContainer = styled.View`\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing}px ${spacing * 5}px 0 0`;\n }};\n`;\n\ninterface StyledTextContentProps {\n $isCenteredText?: boolean;\n}\n\nconst StyledTextContent = styled(Typography.Text)<StyledTextContentProps>`\n flex: 1;\n text-align: ${({ $isCenteredText }) => ($isCenteredText ? 'center' : 'left')};\n`;\n\nconst StyledMessageContent = styled.View`\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-self: center;\n align-items: flex-start;\n flex-shrink: 1;\n padding: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 4}px ${spacing * 5}px`;\n }};\n`;\n\nexport interface BaseMessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n /**\n * @internal for styling between Message and Notification\n */\n hasNoRadius?: boolean;\n centeredText?: boolean;\n insets?: EdgeInsets;\n onDismiss?: () => void;\n}\n\nexport function BaseMessage({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: BaseMessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <StyledMessageContainer $type={type} $hasNoRadius={hasNoRadius} $insets={insets}>\n <StyledMessageContent>\n {centeredText ? null : (\n <StyledIconContainer>\n <Icon color={color} icon={<IconContent type={type} color={color} />} />\n </StyledIconContainer>\n )}\n <StyledTextContent $isCenteredText={centeredText} base=\"body\" color={color}>\n {children}\n </StyledTextContent>\n </StyledMessageContent>\n\n {onDismiss ? (\n <StyledDismissWrapper>\n <IconButton color={getIconButtonColor(type)} icon={<XIcon />} onPress={onDismiss} />\n </StyledDismissWrapper>\n ) : null}\n </StyledMessageContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\n\nexport interface MessageProps extends BaseMessageProps {}\n\nexport function Message({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: MessageProps): ReactElement {\n return (\n <BaseMessage\n insets={insets}\n hasNoRadius={hasNoRadius}\n type={type}\n centeredText={centeredText}\n onDismiss={onDismiss}\n >\n {children}\n </BaseMessage>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable, StyleSheet } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps extends Pick<PressableProps, 'onPress'> {}\n\n// Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates\nconst OverlayPressable = styled(Pressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return <OverlayPressable accessibilityRole=\"none\" onPress={onPress} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { ScrollView } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst BodyView = styled.View`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <ScrollView>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled.View`\n flex: 0 0 auto;\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-top-width: 1px;\n border-top-color: ${({ theme }) => theme.kitt.colors.separator};\n`;\n\nexport function ModalFooter({ children }: FooterProps): ReactElement {\n return <FooterView>{children}</FooterView>;\n}\n","import { createContext } from 'react';\n\nexport const OnCloseContext = createContext<() => void>(() => {});\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useContext } from 'react';\nimport styled from 'styled-components/native';\nimport { IconButton } from '../IconButton/IconButton';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled.View`\n position: relative;\n padding: ${({ theme }) => theme.kitt.spacing * 2}px;\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-bottom-width: 1px;\n border-bottom-color: ${({ theme }) => theme.kitt.colors.separator};\n min-height: 57px;\n`;\n\nconst LeftIconView = styled.View`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled.View`\n align-self: flex-start;\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\ninterface TitleViewProps {\n isIconLeft?: boolean;\n}\n\nconst TitleView = styled.View<TitleViewProps>`\n padding-left: ${({ theme, isIconLeft }) => (isIconLeft ? 0 : theme.kitt.spacing * 2)}px;\n flex-shrink: 1;\n`;\n\nexport function ModalHeader({ left, right, children }: HeaderProps): ReactElement {\n const onClose = useContext(OnCloseContext);\n\n const isIconLeft = !!left;\n\n return (\n <HeaderView>\n {isIconLeft && <LeftIconView>{left}</LeftIconView>}\n\n <TitleView isIconLeft={isIconLeft}>{children}</TitleView>\n\n {right !== undefined ? (\n right\n ) : (\n <RightIconView>\n <IconButton icon={<XIcon />} onPress={onClose} />\n </RightIconView>\n )}\n </HeaderView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Modal as NativeModal } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Overlay } from '../Overlay/Overlay';\nimport { ModalBody } from './Body';\nimport { ModalFooter } from './Footer';\nimport { ModalHeader } from './Header';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface ModalProps {\n visible: boolean;\n children: ReactNode;\n onClose: () => void;\n onEntered?: () => void;\n onExited?: () => void;\n}\n\nconst ModalView = styled.View`\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.spacing * 20}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nconst ContentView = styled.View`\n position: relative;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 540px;\n height: auto;\n width: 100%;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function Modal({ visible, children, onClose, onEntered, onExited }: ModalProps): ReactElement {\n return (\n <OnCloseContext.Provider value={onClose}>\n <NativeModal\n transparent\n animationType=\"fade\"\n visible={visible}\n onShow={onEntered}\n onDismiss={onExited}\n onRequestClose={onClose}\n >\n <ModalView>\n <Overlay onPress={onClose} />\n\n <ContentView>{children}</ContentView>\n </ModalView>\n </NativeModal>\n </OnCloseContext.Provider>\n );\n}\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import type { ReactElement } from 'react';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\n\nexport interface NotificationProps extends BaseMessageProps {\n /**\n * @deprecated use onDismiss instead\n */\n onDelete?: BaseMessageProps['onDismiss'];\n}\n\nexport function Notification({\n type,\n children,\n centeredText,\n insets,\n onDelete,\n onDismiss,\n}: NotificationProps): ReactElement {\n if (__DEV__) {\n if (onDelete) {\n throw new Error('onDelete is deprecated us onDismiss instead');\n }\n }\n\n return (\n <BaseMessage hasNoRadius type={type} centeredText={centeredText} insets={insets} onDismiss={onDismiss}>\n {children}\n </BaseMessage>\n );\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { useTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\n\ninterface PageLoaderContainerProps {\n theme: DefaultTheme;\n $circlePerimeter: number;\n}\n\nconst PageLoaderContainer = withTheme(styled.div<PageLoaderContainerProps>`\n @keyframes PageLoaderInit {\n 0% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n }\n\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n /** Primary circle animation **/\n @keyframes PageLoaderOffset {\n 0% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n }\n\n /** 20% of this radius and represent the min offset part of the animated circle */\n 100% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter * 0.2}px;\n }\n }\n\n @keyframes PageLoaderRotation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n width: ${({ theme }) => theme.kitt.pageLoader.size}px;\n height: ${({ theme }) => theme.kitt.pageLoader.size}px;\n\n /* Needed to make the animation starting from the top of the circles */\n transform: scale(-1) rotate(90deg);\n\n & circle,\n & g {\n transform-origin: center center;\n }\n\n & circle {\n stroke-width: ${({ theme }) => theme.kitt.pageLoader.strokeWidth}px;\n stroke-dasharray: ${({ $circlePerimeter }) => $circlePerimeter}px;\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n stroke-linecap: round;\n }\n\n & g[data-large-loader='base'] circle {\n stroke: ${({ theme }) => theme.kitt.pageLoader.colors.base};\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n const [x1, y1, x2, y2] = animation.fillEasingFunction;\n\n return `${animation.circleBackgroundFillDuration}ms cubic-bezier(${x1}, ${y1}, ${x2}, ${y2}) ${animation.delay}ms forwards`;\n }};\n animation-name: PageLoaderInit;\n }\n\n & g[data-large-loader='fill'] {\n transform-origin: center center;\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n\n return `${animation.filledCircleFillDuration}ms linear ${animation.delay}ms infinite`;\n }};\n animation-name: PageLoaderRotation;\n }\n\n & g[data-large-loader='fill'] circle {\n stroke: ${({ theme }) => theme.kitt.pageLoader.colors.fill};\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n\n const [x1, y1, x2, y2] = animation.fillEasingFunction;\n\n const fillAnimation = `${animation.filledCircleFillDuration}ms cubic-bezier(${x1}, ${y1}, ${x2}, ${y2}) ${animation.delay}ms infinite alternate`;\n const rotationAnimation = `${animation.filledCircleRotationDuration}ms linear ${animation.delay}ms infinite`;\n\n return [fillAnimation, rotationAnimation].join(',');\n }};\n animation-name: PageLoaderOffset, PageLoaderRotation;\n }\n`);\n\nexport function PageLoader(props: Record<string, never>): ReactElement {\n const theme = useTheme();\n const { size, strokeWidth } = theme.kitt.pageLoader;\n\n const center = size * 0.5;\n const radius = center - strokeWidth;\n\n const circlePerimeter = 2 * Math.PI * radius;\n\n const sharedProps = {\n cx: center,\n cy: center,\n r: radius,\n fill: 'none',\n };\n\n return (\n <PageLoaderContainer $circlePerimeter={circlePerimeter}>\n <svg width={size} height={size}>\n <g data-large-loader=\"base\">\n <circle {...sharedProps} />\n </g>\n <g data-large-loader=\"fill\">\n <circle {...sharedProps} />\n </g>\n </svg>\n </PageLoaderContainer>\n );\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\n\ninterface SkeletonBaseProps {\n $isLoading?: boolean;\n theme: DefaultTheme;\n}\n\nconst StyledSkeleton = withTheme(styled.div<SkeletonBaseProps>`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n\n @keyframes flareTranslate {\n from {\n transform: translateX(-100%);\n }\n\n to {\n transform: translateX(100%);\n }\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-image: ${({ $isLoading, theme }) =>\n $isLoading\n ? `linear-gradient(\n -90deg,\n ${theme.kitt.skeleton.backgroundColor},\n ${theme.kitt.skeleton.flareColor} 50%,\n ${theme.kitt.skeleton.backgroundColor} 100%\n )`\n : 'none'};\n animation: ${({ $isLoading }) => ($isLoading ? '1s ease-in-out infinite' : 'none')};\n animation-name: flareTranslate;\n }\n`);\n\ninterface SkeletonProps {\n isLoading: boolean;\n}\n\nexport function SkeletonContent({ isLoading }: SkeletonProps): ReactElement {\n return <StyledSkeleton $isLoading={isLoading} />;\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\nconst SkeletonContainer = styled(View)`\n overflow: hidden;\n`;\nexport interface SkeletonProps {\n isLoading?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Skeleton({ isLoading, style }: SkeletonProps): ReactElement {\n const [width, setWidth] = useState(0);\n\n return (\n <SkeletonContainer style={style} onLayout={({ nativeEvent }) => setWidth(nativeEvent.layout.width)}>\n <SkeletonContent isLoading={isLoading} width={width} />\n </SkeletonContainer>\n );\n}\n\nconst Bar = styled(Skeleton)`\n width: 100%;\n height: ${({ theme }) => theme.kitt.spacing * 2}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst Circle = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 6}px;\n`;\n\nconst Square = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 1.5}px;\n`;\n\nSkeleton.Bar = Bar;\nSkeleton.Circle = Circle;\nSkeleton.Square = Square;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled.View.withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled.View<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled.View`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled.View`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends ViewProps {}\n\nconst StyledSection = styled.View<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends ViewProps {\n title: ReactNode;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({ title, children, internalIsDemoSection, ...props }: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement } from 'react';\nimport type { StoryContainerProps } from './StoryContainer';\nimport { StorySection } from './StorySection';\n\nexport function StoryContainer({ children, state, title, platform }: StoryContainerProps): ReactElement | null {\n if (platform === 'native') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n <div className={state ? `kitt-${state}` : undefined}>{children}</div>\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}px;\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius}px;\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { Typography } from '../typography/Typography';\n\n// This is not yet implemented\nexport function TimePicker(): ReactElement {\n return <Typography.Text base=\"body\">TimePicker is not implemented for the web</Typography.Text>;\n}\n","import { TooltipArrowIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\nimport type { TooltipPosition } from './Tooltip';\n\nconst StyledTooltipView = styled.View`\n align-items: center;\n`;\n\nconst StyledTooltipContent = styled.View`\n background-color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n border-radius: ${({ theme }) => theme.kitt.tooltip.borderRadius}px;\n opacity: ${({ theme }) => theme.kitt.tooltip.opacity};\n padding: ${({ theme }) => `${theme.kitt.tooltip.verticalPadding}px ${theme.kitt.tooltip.horizontalPadding}px`};\n`;\n\ninterface StyledArrowProps {\n $position: TooltipPosition;\n}\n\nfunction ArrowView(props: ViewProps): ReactElement {\n const theme = useTheme();\n return (\n <View {...props}>\n <TooltipArrowIcon color={theme.kitt.tooltip.backgroundColor} />\n </View>\n );\n}\n\nconst StyledArrow = styled(ArrowView)<StyledArrowProps>`\n color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n transform: ${({ $position }) => `rotate(${$position === 'bottom' ? 180 : 0}deg)`};\n`;\n\nexport interface TooltipViewProps {\n children: NonNullable<ReactNode>;\n position: TooltipPosition;\n}\n\nexport function TooltipView({ children, position }: TooltipViewProps): ReactElement {\n return (\n <StyledTooltipView>\n {position === 'bottom' ? <StyledArrow $position={position} /> : null}\n <StyledTooltipContent>\n <Typography.Text base=\"body\" color=\"white\">\n {children}\n </Typography.Text>\n </StyledTooltipContent>\n {position === 'top' ? <StyledArrow $position={position} /> : null}\n </StyledTooltipView>\n );\n}\n","import type { TooltipProps } from '..';\nimport type { TooltipPosition } from './Tooltip';\n\nexport const tooltipDefaultPosition: TooltipPosition = 'top';\nexport const tooltipDefaultFloatingStrategy: TooltipProps['floatingStrategy'] = {\n web: 'absolute',\n};\n","import { flip, getScrollParents, offset, shift, useFloating } from '@floating-ui/react-dom';\nimport type { ReactElement } from 'react';\nimport { useEffect, useState } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { TooltipPosition, TooltipProps } from './Tooltip';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultFloatingStrategy, tooltipDefaultPosition } from './tooltipUtils';\n\ninterface StyledTooltipTriggerProps extends PressableProps {\n ref: (node: Element | null) => void;\n}\n\nconst StyledTooltipTrigger = styled.Pressable<StyledTooltipTriggerProps>`\n display: inline-flex;\n align-self: baseline;\n`;\n\ninterface WebAnimatedTooltipProps extends ViewProps {\n $visible: boolean;\n ref: (node: HTMLDivElement | null) => void;\n}\n\nconst WebAnimatedTooltip = styled.View<WebAnimatedTooltipProps>`\n opacity: ${({ theme, $visible }) => ($visible ? theme.kitt.tooltip.opacity : 0)};\n transition: opacity 200ms;\n visibility: ${({ $visible }) => ($visible ? 'visible' : 'hidden')};\n`;\n\nfunction getActualPosition(\n originalPosition: TooltipPosition,\n offsetMiddlewareData?: { x: number; y: number },\n): TooltipPosition {\n if (!offsetMiddlewareData) return originalPosition;\n\n if (originalPosition === 'top') {\n return offsetMiddlewareData.y > 0 ? 'bottom' : originalPosition;\n }\n\n if (originalPosition === 'bottom') {\n return offsetMiddlewareData.y < 0 ? 'top' : originalPosition;\n }\n\n return originalPosition;\n}\n\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingStrategy = tooltipDefaultFloatingStrategy,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const [visible, setVisible] = useState(Boolean(defaultVisible));\n\n const { x, y, reference, floating, strategy, update, refs, middlewareData } = useFloating({\n placement: position,\n strategy: floatingStrategy?.web,\n middleware: [offset(padding), shift(), flip()],\n });\n\n // Update on scroll and resize for all relevant nodes\n useEffect(() => {\n if (!refs.reference.current || !refs.floating.current) {\n return () => undefined;\n }\n const parents = [...getScrollParents(refs.reference.current), ...getScrollParents(refs.floating.current)];\n parents.forEach((parent) => {\n parent.addEventListener('scroll', update);\n parent.addEventListener('resize', update);\n });\n\n return () => {\n parents.forEach((parent) => {\n parent.removeEventListener('scroll', update);\n parent.removeEventListener('resize', update);\n });\n };\n }, [refs.reference, refs.floating, update]);\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy,\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, strategy, update, refs, middlewareData, onUpdate]);\n\n return (\n <>\n <StyledTooltipTrigger\n ref={reference as any}\n accessibilityRole=\"button\"\n onPress={() => setVisible((prev) => !prev)}\n onMouseEnter={() => {\n setVisible(true);\n }}\n onFocus={() => {\n setVisible(true);\n }}\n >\n {children}\n </StyledTooltipTrigger>\n\n <WebAnimatedTooltip\n ref={floating as any}\n $visible={visible}\n accessibilityHidden={!visible}\n style={{\n position: strategy as any,\n top: 0,\n left: 0,\n transform: [\n {\n // @ts-expect-error translate3d is missing in react-native definitions, only supported in web\n translate3d: `${Math.round(x ?? 0)}px, ${Math.round(y ?? 0)}px, 0`,\n },\n ],\n }}\n >\n <TooltipView position={getActualPosition(position, middlewareData.offset)}>{content}</TooltipView>\n </WebAnimatedTooltip>\n </>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n return <StyledTypographyEmoji size={fontSize} emoji={emoji} />;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface TypographyLinkWebWrapperProps {\n theme: DefaultTheme;\n $hasNoUnderline?: boolean;\n}\n\nconst TypographyLinkWebWrapper = withTheme(styledLinaria.span<TypographyLinkWebWrapperProps>`\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: none;\n }\n\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'underline' : 'none')}\n }\n`);\n\ninterface StyledLinkProps {\n $disabled?: boolean;\n $hasNoUnderline?: boolean;\n}\n\nconst StyledLink = styled.Text<StyledLinkProps & TextProps>`\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'none' : 'underline')};\n\n ${({ $disabled }) => {\n if (Platform.OS !== 'web') return undefined;\n\n return `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n `;\n }};\n\n ${({ $disabled, theme }) => {\n if (!$disabled) return undefined;\n return `color: ${theme.kitt.typography.link.disabledColor};`;\n }};\n`;\n\nexport interface TypographyLinkProps extends Except<TypographyPropsWithoutRole, 'children'> {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n noUnderline?: boolean;\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress: TextProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n href,\n hrefAttrs,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyleWebWrapper as={TypographyLinkWebWrapper} $hasNoUnderline={noUnderline}>\n <StyledLink\n $disabled={disabled}\n $hasNoUnderline={noUnderline}\n href={href}\n hrefAttrs={hrefAttrs}\n accessibilityRole=\"link\"\n dataSet={{\n // remove data-kitt-universal when we delete kitt web. See See :global(a) in Link styles.module.css\n 'kitt-universal': 'true',\n }}\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </StyleWebWrapper>\n </Typography>\n );\n}\n","export const hex2rgba = (hex: string, alpha = 1): string => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { ThemeProvider } from 'styled-components/native';\nimport type { KittTheme } from '../../useKittTheme';\nimport { useKittTheme } from '../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context) as ReactNode}</KittThemeProvider>;\n },\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { useMatchWindowSize } from './useMatchWindowSize';\n\ninterface MatchWindowSizeProps extends MatchWindowSizeOptions {\n children: ReactNode;\n}\n\nexport function MatchWindowSize({ children, ...matchWindowSizeOptions }: MatchWindowSizeProps): ReactElement | null {\n const match = useMatchWindowSize(matchWindowSizeOptions);\n if (!match) return null;\n return children as ReactElement;\n}\n"],"names":["defaultIconSize","IconContainer","styled","$color","$size","$align","Icon","icon","size","align","color","clonedIcon","cloneElement","_jsx","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","IsHeaderTypographyContext","createContext","undefined","TypographyColorContext","useTypographyColor","useContext","getTypographyTypeConfigKey","theme","isMediumOrAbove","responsive","matchWindowSize","minWidth","isTypeHeader","type","startsWith","isTypographyHeader","typographyIsHeaderInContext","Error","getTypographyTypeConfig","kitt","typography","types","headers","configs","bodies","StyledTypography","$isHeader","$typeForCurrentWindowSize","$variant","typeConfigKey","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","css","colors","useTypographyTypeForCurrentWindowSize","base","small","medium","large","useWindowDimensions","width","getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors","hasTypographyAncestor","Typography","accessibilityRole","variant","otherProps","isHeaderTypographyInContext","baseOrDefaultToBody","colorOrDefaultToBlack","typeForCurrentWindowSize","isHeader","nonNullableVariant","content","TypographyText","props","TypographyParagraph","createHeading","level","defaultBase","TypographyHeading","displayName","Text","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","$isRound","$sizeVariant","avatar","borderRadius","$isLight","light","backgroundColor","AvatarContent","src","alt","isLight","sizeVariant","uri","height","Avatar","round","withTheme","WrappedComponent","forwardRef","ref","useTheme","hasVariant","button","getVariantValuesIfExist","isSubtle","AnimatedButtonPressableContainer","$isStretch","scale","hover","$isDisabled","active","$type","disabled","hoverBackgroundColor","transition","duration","timingFunction","borderWidth","borderColor","focus","focusBorderColor","hoverColor","activeColor","AnimatedButtonPressable","BaseStyledButtonPressable","maxWidth","minHeight","$isLarge","$isXLarge","contentPadding","defaultPadding","disabledPadding","xLarge","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","value","spacing","ButtonIcon","iconPosition","testID","StyledChildrenWithIcon","ButtonContentChildren","isDisabled","children","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","allowedGhostTypes","Button","stretch","href","hrefAttrs","onPress","__DEV__","includes","Container","card","Card","StyledEmoji","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","target","rel","lateOceanColorPalette","lateOcean","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black800","black555","black200","black100","black50","black25","white","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","primary","primaryLight","accent","accentLight","success","correct","danger","info","warning","separator","black","blackAnthracite","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","pressedBackgroundColor","ghost","subtle","secondary","feedbackMessage","checkbox","iconSize","checkedBorderColor","checkedBackgroundColor","markColor","datePicker","day","month","year","calcLineHeight","lineHeightMultiplier","Math","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","kittColors","regular","bold","header1","header2","header3","header4","header5","body","link","disabledColor","inputStatesStyle","pending","valid","invalid","input","selection","placeholder","padding","horizontal","vertical","property","states","inputField","labelContainerPaddingBottom","iconMarginLeft","inputTag","labelColor","radio","unchecked","checked","innerSize","innerBackgroundColor","textArea","forms","fullScreenModal","header","paddingVertical","paddingHorizontal","iconButton","listItem","innerMargin","pageLoader","strokeWidth","fill","animation","delay","circleBackgroundFillDuration","filledCircleFillDuration","groupFilledCircleRotationDuration","filledCircleRotationDuration","fillEasingFunction","shadows","skeleton","flareColor","animationDuration","tag","outline","tooltip","opacity","horizontalPadding","verticalPadding","floatingPadding","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","max","palettes","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","dimensions","ifWindowSizeMatches","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","CheckboxAndLabelPressableWrapper","CheckboxContainer","$isChecked","$hasLabel","Checkbox","onChange","onBlur","onFocus","hitSlop","id","handlePress","e","getInputUIState","isFocused","formState","styledTextInputMixin","$state","StyledTypographyText","ViewInput","$partName","DatePickerInputPart","partName","prefixWithZero","padStart","PartContainer","$isLast","DatePickerPressable","DatePickerInputs","state","internalForceState","handleModalOpen","currentValue","currentState","sharedPartProps","getDate","getMonth","getFullYear","DatePicker","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","right","autoCorrect","textContentType","autoCompleteType","keyboardType","onSubmitEditing","useState","setIsFocused","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","isVisible","setIsVisible","prev","InputPhone","getTypographyColor","InputTagContainer","View","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","Body","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","Header","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","left","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","FullScreenModal","StyledSpinningIconContainer","SpinningIcon","StyleWebWrapper","PressableIconButtonWebWrapper","$isWhite","defaultIconButton","StyledPressableIconButton","PressableIconButton","PressableAnimatedContainer","IconButtonContentBorder","IconButtonContent","IconButton","accessibilityLabel","ContentView","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Pressable","Fragment","wrapperProps","containerProps","Content","SideContent","LoaderIcon","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","PageLoaderContainer","$circlePerimeter","x1","y1","x2","y2","fillAnimation","rotationAnimation","join","PageLoader","center","radius","circlePerimeter","PI","sharedProps","cx","cy","r","StyledSkeleton","$isLoading","SkeletonContent","isLoading","SkeletonContainer","Skeleton","setWidth","Bar","Circle","Square","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","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","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","getLabelColor","Tag","TimePicker","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","tooltipDefaultFloatingStrategy","StyledTooltipTrigger","WebAnimatedTooltip","$visible","getActualPosition","originalPosition","offsetMiddlewareData","y","Tooltip","defaultVisible","floatingStrategy","onUpdate","setVisible","useFloating","placement","strategy","middleware","offset","shift","flip","x","reference","floating","update","refs","middlewareData","useEffect","current","parents","getScrollParents","parent","addEventListener","removeEventListener","transform","translate3d","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","$hasNoUnderline","StyledLink","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}
1
+ {"version":3,"file":"index-browser-all.es.web.js","sources":["../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/utils/withTheme.tsx","../src/Button/getVariantValuesIfExist.ts","../src/Button/isSubtle.ts","../src/Button/AnimatedButtonPressable.web.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/ButtonContent.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.web.tsx","../src/themes/palettes/lateOceanColorPalette.ts","../src/themes/late-ocean/colors.ts","../src/themes/late-ocean/avatar.ts","../src/themes/late-ocean/button.ts","../src/themes/late-ocean/card.ts","../src/themes/late-ocean/feedback.ts","../src/themes/late-ocean/checkbox.ts","../src/themes/late-ocean/datePicker.ts","../src/themes/late-ocean/typography.ts","../src/themes/late-ocean/input.ts","../src/themes/late-ocean/inputField.ts","../src/themes/late-ocean/inputTag.ts","../src/themes/late-ocean/radio.ts","../src/themes/late-ocean/textArea.ts","../src/themes/late-ocean/forms.ts","../src/themes/late-ocean/fullScreenModal.ts","../src/themes/late-ocean/iconButton.ts","../src/themes/late-ocean/listItem.ts","../src/themes/late-ocean/pageLoader.ts","../src/themes/late-ocean/picker.ts","../src/themes/late-ocean/shadows.ts","../src/themes/late-ocean/skeleton.ts","../src/themes/late-ocean/tag.ts","../src/themes/late-ocean/tooltip.ts","../src/themes/default.ts","../src/utils/windowSize/useMatchWindowSize.ts","../src/utils/windowSize/createWindowSizeHelper.ts","../src/useKittTheme.tsx","../src/forms/Checkbox/Checkbox.tsx","../src/forms/utils.ts","../src/forms/styledTextInputMixin.ts","../src/forms/DatePicker/DatePickerInputPart.tsx","../src/forms/DatePicker/DatePickerInputs.tsx","../src/forms/DatePicker/DatePicker.web.tsx","../src/forms/InputText/InputTextContainer.web.tsx","../src/forms/InputText/InputText.tsx","../src/forms/InputEmail/InputEmail.tsx","../src/forms/InputFeedback/InputFeedback.tsx","../src/forms/InputField/InputField.tsx","../src/forms/InputIcon/InputIcon.tsx","../src/forms/InputPressable/InputPressable.tsx","../src/forms/InputPassword/InputPassword.tsx","../src/forms/InputPhone/InputPhone.tsx","../src/forms/InputTag/InputTag.tsx","../src/forms/Label/Label.tsx","../src/forms/Radio/Radio.tsx","../src/forms/TextArea/TextArea.tsx","../src/FullScreenModal/Body.tsx","../src/FullScreenModal/Header.tsx","../src/FullScreenModal/FullScreenModal.tsx","../src/Icon/SpinningIcon.web.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.web.tsx","../src/IconButton/IconButton.tsx","../src/ListItem/ListItemContent.tsx","../src/ListItem/ListItemSideContent.tsx","../src/ListItem/ListItem.tsx","../src/LoaderIcon/LoaderIcon.tsx","../src/BaseMessage/IconContent.tsx","../src/BaseMessage/helper.ts","../src/BaseMessage/BaseMessage.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/PageLoader/PageLoader.web.tsx","../src/Picker/Picker.web.tsx","../src/Skeleton/SkeletonContent.web.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.web.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/TimePicker.web.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.web.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface IconProps {\n icon: ReactElement;\n size?: number;\n color: string;\n align?: ViewStyle['alignSelf'];\n testID?: ViewStyle['testID'];\n}\n\ninterface IconContainerProps {\n $align?: ViewStyle['alignSelf'];\n $size: number;\n $color: string;\n}\n\nexport const defaultIconSize = 20;\n\nexport const 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 = defaultIconSize, align, color }: IconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n\n return (\n <IconContainer $align={align} $size={size} $color={color}>\n {clonedIcon}\n </IconContainer>\n );\n}\n","export const KittBreakpoints = {\n /**\n * min-width: 0\n */\n BASE: 0,\n /**\n * min-width: 480px\n */\n SMALL: 480,\n /**\n * min-width: 768px\n */\n MEDIUM: 768,\n /**\n * min-width: 1024px\n */\n LARGE: 1024,\n /**\n * min-width: 1280px\n */\n WIDE: 1280,\n};\n\nexport const KittBreakpointsMax = {\n /**\n * max-width: 479px\n */\n BASE: KittBreakpoints.SMALL - 1,\n /**\n * max-width: 767px\n */\n SMALL: KittBreakpoints.MEDIUM - 1,\n /**\n * max-width: 1023px\n */\n MEDIUM: KittBreakpoints.LARGE - 1,\n /**\n * max-width: 1279px\n */\n LARGE: KittBreakpoints.WIDE - 1,\n};\n\nexport type KittBreakpoint = typeof KittBreakpoints[keyof typeof KittBreakpoints];\nexport type KittBreakpointMax = typeof KittBreakpointsMax[keyof typeof KittBreakpointsMax];\n","import type { FC, ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { TextProps, TextStyle } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled, { css } from 'styled-components/native';\nimport type { Except, SetOptional } from 'type-fest';\nimport { KittBreakpoints } from '../KittBreakpoints';\nimport type { TypographyTypeConfig } from '../themes/late-ocean/typography';\nimport type { KittTheme } from '../useKittTheme';\n\nexport type TypographyHeaderType = `header${'1' | '2' | '3' | '4' | '5'}`;\nexport type TypographyBodyType = 'body' | `body-${'large' | 'medium' | 'small' | 'xsmall'}`;\nexport type TypographyType = TypographyHeaderType | TypographyBodyType;\ntype TypographyVariant = 'regular' | 'bold';\nexport type TypographyColor =\n | 'black'\n | 'black-anthracite'\n | 'black-light'\n | 'white'\n | 'white-light'\n | 'primary'\n | 'primary-light'\n | 'accent'\n | 'success'\n | 'danger';\n\nconst IsHeaderTypographyContext = createContext<boolean | undefined>(undefined);\nconst TypographyColorContext = createContext<TypographyColor>('black');\n\nexport function useTypographyColor(): TypographyColor {\n return useContext(TypographyColorContext);\n}\n\nexport const getTypographyTypeConfigKey = (theme: KittTheme): keyof TypographyTypeConfig => {\n const isMediumOrAbove = theme.responsive.matchWindowSize({ minWidth: KittBreakpoints.MEDIUM });\n return isMediumOrAbove ? 'mediumAndWide' : 'baseAndSmall';\n};\n\nconst isTypeHeader = (type: TypographyType): type is TypographyHeaderType => type.startsWith('header');\nexport const isTypographyHeader = (\n type: TypographyType | undefined,\n typographyIsHeaderInContext: boolean | undefined,\n): type is TypographyHeaderType => {\n if (type) return isTypeHeader(type);\n if (typographyIsHeaderInContext != null) return typographyIsHeaderInContext;\n throw new Error('You must set a \"base\" prop or wrap this Typography in one that does.');\n};\n\nexport function getTypographyTypeConfig(type: TypographyType, theme: DefaultTheme): TypographyTypeConfig {\n if (isTypographyHeader(type, undefined)) {\n return theme.kitt.typography.types.headers.configs[type];\n }\n\n return theme.kitt.typography.types.bodies.configs[type];\n}\n\ninterface StyledTypographyProps {\n $textAlign?: TextStyle['textAlign'];\n accessibilityRole: TextProps['accessibilityRole'] | 'paragraph';\n $isHeader: boolean;\n $typeForCurrentWindowSize?: TypographyType;\n $variant: TypographyVariant;\n $color?: TypographyColor;\n}\n\nconst StyledTypography = styled.Text<StyledTypographyProps>`\n ${({ $textAlign }) => {\n if (!$textAlign) return undefined;\n\n return css`\n text-align: ${$textAlign};\n `;\n }};\n\n /* font */\n ${({ theme, $isHeader, $typeForCurrentWindowSize, $variant }) => {\n const { headers, bodies } = theme.kitt.typography.types;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n\n return css`\n /* type */\n ${!$typeForCurrentWindowSize\n ? ''\n : css`\n font-family: ${$isHeader ? headers.fontFamily[$variant] : bodies.fontFamily[$variant]};\n font-size: ${$isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].fontSize\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].fontSize}px;\n line-height: ${$isHeader\n ? headers.configs[$typeForCurrentWindowSize as TypographyHeaderType][typeConfigKey].lineHeight\n : bodies.configs[$typeForCurrentWindowSize as TypographyBodyType][typeConfigKey].lineHeight}px;\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 if (!$color) return '';\n\n return css`\n color: ${theme.kitt.typography.colors[$color]};\n text-decoration-color: ${theme.kitt.typography.colors[$color]};\n `;\n }}\n`;\n\nexport interface TypographyBreakpointTypesProps {\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n /** small type. use base if undefined */\n small?: TypographyType;\n /** medium type. use small or base if undefined */\n medium?: TypographyType;\n /** large type. use medium or small or base if undefined */\n large?: TypographyType;\n}\n\nexport interface TypographyProps extends TypographyBreakpointTypesProps, Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | 'paragraph' | null;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n textAlign?: TextStyle['textAlign'];\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nexport function useTypographyTypeForCurrentWindowSize(\n base: TypographyType | undefined,\n small: TypographyType | undefined,\n medium: TypographyType | undefined,\n large: TypographyType | undefined,\n): TypographyType | undefined {\n const { width } = useWindowDimensions();\n if (large && width >= KittBreakpoints.LARGE) return large;\n if (medium && width >= KittBreakpoints.MEDIUM) return medium;\n if (small && width >= KittBreakpoints.SMALL) return small;\n return base;\n}\n\ntype GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps = Pick<TypographyProps, 'base' | 'color'>;\n\nexport function getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(\n hasTypographyAncestor: boolean,\n { base, color }: GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps,\n): GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps {\n // return the props set or undefined. In case of undefined, the value will be inherited from its parents.\n if (hasTypographyAncestor) return { base, color };\n\n return {\n base: base ?? 'body',\n color: color ?? 'black',\n };\n}\n\nexport function Typography({\n accessibilityRole,\n base,\n small,\n medium,\n large,\n variant,\n color,\n textAlign,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const isHeaderTypographyInContext = useContext(IsHeaderTypographyContext);\n const hasTypographyAncestor = isHeaderTypographyInContext !== undefined;\n const { base: baseOrDefaultToBody, color: colorOrDefaultToBlack } =\n getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(hasTypographyAncestor, {\n base,\n color,\n });\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(baseOrDefaultToBody, small, medium, large);\n const isHeader = isTypographyHeader(typeForCurrentWindowSize, isHeaderTypographyInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n\n const sharedProps = {\n $color: colorOrDefaultToBlack,\n $isHeader: isHeader,\n $variant: nonNullableVariant,\n accessibilityRole: (accessibilityRole as TextProps['accessibilityRole']) || undefined,\n $textAlign: textAlign,\n ...otherProps,\n };\n\n const content = baseOrDefaultToBody ? (\n <IsHeaderTypographyContext.Provider value={isHeader}>\n <StyledTypography {...sharedProps} $typeForCurrentWindowSize={typeForCurrentWindowSize} {...otherProps} />\n </IsHeaderTypographyContext.Provider>\n ) : (\n <StyledTypography {...sharedProps} />\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 // role 'paragraph' does not exist in native, it's a web feature only.\n return <Typography accessibilityRole={Platform.OS === 'web' ? 'paragraph' : null} {...props} />;\n}\n\nexport type TypographyHeadingProps = TypographyPropsWithoutRole;\n\nconst createHeading = (\n level: number,\n /** @deprecated accessibility and design should be independent */\n defaultBase?: TypographyHeadingProps['base'],\n): FC<TypographyHeadingProps> => {\n // https://github.com/necolas/react-native-web/issues/401\n function TypographyHeading(props: TypographyHeadingProps): ReactElement {\n return <Typography accessibilityRole=\"header\" base={defaultBase} {...props} accessibilityLevel={level} />;\n }\n TypographyHeading.displayName = `TypographyHeading${level}`;\n return TypographyHeading;\n};\n\nTypography.Text = TypographyText;\nTypography.Paragraph = TypographyParagraph;\nTypography.Header1 = createHeading(1);\nTypography.Header2 = createHeading(2);\nTypography.Header3 = createHeading(3);\nTypography.Header4 = createHeading(4);\nTypography.Header5 = createHeading(5);\nTypography.Header6 = createHeading(6);\n\n/** @deprecated use Typography.Header1 */\nTypography.h1 = createHeading(1, 'header1');\n/** @deprecated use Typography.Header2 */\nTypography.h2 = createHeading(2, 'header2');\n/** @deprecated use Typography.Header3 */\nTypography.h3 = createHeading(3, 'header3');\n/** @deprecated use Typography.Header4 */\nTypography.h4 = createHeading(4, 'header4');\n/** @deprecated use Typography.Header6 */\nTypography.h5 = createHeading(5, 'header5');\n","import { UserIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { Image } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { Typography } from '../typography/Typography';\n\nconst getInitials = (firstname: string, lastname: string): string => `${firstname[0]}${lastname[0]}`.toUpperCase();\n\nexport type AvatarSizeVariant = 'large';\n\nexport interface StyledAvatarViewProps {\n $size: number;\n $isRound?: boolean;\n $isLight?: boolean;\n $sizeVariant?: AvatarSizeVariant;\n}\n\nconst StyledAvatarView = styled.View<StyledAvatarViewProps>`\n border-radius: ${({ theme, $isRound, $size, $sizeVariant }) => {\n if ($isRound) return `${$size / 2}px`;\n\n return `${$sizeVariant === 'large' ? theme.kitt.avatar.large.borderRadius : theme.kitt.avatar.borderRadius}px`;\n }};\n background-color: ${({ theme, $isLight }) =>\n $isLight ? theme.kitt.avatar.light.backgroundColor : theme.kitt.avatar.default.backgroundColor};\n height: ${({ $size }) => $size}px;\n width: ${({ $size }) => $size}px;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n`;\n\ninterface AvatarContentProps extends Exclude<AvatarProps, 'light | round'> {\n size: NonNullable<number>;\n isLight?: boolean;\n sizeVariant?: AvatarSizeVariant;\n}\n\nfunction AvatarContent({\n size,\n src,\n firstname,\n lastname,\n alt,\n isLight,\n sizeVariant,\n}: AvatarContentProps): ReactElement {\n if (src) {\n return <Image source={{ uri: src }} style={{ width: size, height: size }} accessibilityLabel={alt} />;\n }\n\n if (firstname && lastname) {\n return (\n <Typography.Text\n base={sizeVariant === 'large' ? 'body-large' : 'body-small'}\n variant={sizeVariant === 'large' ? 'bold' : 'regular'}\n color={isLight ? 'black' : 'white'}\n >\n {getInitials(firstname, lastname)}\n </Typography.Text>\n );\n }\n\n return <Icon icon={<UserIcon />} color={isLight ? 'black' : 'white'} size={size / 2} />;\n}\nexport interface AvatarProps {\n size?: number;\n src?: string | null;\n alt?: string;\n firstname?: string | null;\n lastname?: string | null;\n round?: boolean;\n light?: boolean;\n sizeVariant?: AvatarSizeVariant;\n}\n\nexport function Avatar({ size = 40, round, light, sizeVariant, ...props }: AvatarProps): ReactElement {\n return (\n <StyledAvatarView $size={size} $isRound={round} $isLight={light} $sizeVariant={sizeVariant}>\n <AvatarContent size={size} isLight={light} sizeVariant={sizeVariant} {...props} />\n </StyledAvatarView>\n );\n}\n","import type { ComponentType, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\n\n// type $Without<T, K extends keyof any> = T extends any ? Pick<T, Exclude<keyof T, K>> : never;\n// type $DeepPartial<T> = { [P in keyof T]?: $DeepPartial<T[P]> };\n\n// export function withTheme<Props extends { theme: DefaultTheme }, C>(\n// WrappedComponent: ComponentType<Props> & C,\n// ): ComponentType<SetOptional<Props, 'theme'>> & hoistNonReactStatics.NonReactStatics<typeof WrappedComponent> {\n// return function ThemedComponent(props) {\n// const theme = useTheme();\n\n// return (<WrappedComponent theme={theme} {...(props as any)} />) as any;\n// };\n// }\n\nexport function withTheme<Props extends { theme: DefaultTheme }, T>(\n WrappedComponent: ComponentType<Props>,\n): ForwardRefExoticComponent<PropsWithoutRef<Except<Props, 'theme'>> & RefAttributes<T>> {\n // eslint-disable-next-line prefer-arrow-callback\n return forwardRef<T, Except<Props, 'theme'>>(function ThemedComponent(props, ref) {\n const theme = useTheme();\n\n return <WrappedComponent ref={ref} theme={theme} {...(props as any)} />;\n });\n}\n","import type { DefaultTheme } from 'styled-components/native';\nimport type { BaseButtonTheme, BaseButtonWithVariant } from '../themes/late-ocean/button';\nimport type { ButtonType, ButtonVariant } from './Button';\n\nconst hasVariant = (button: BaseButtonTheme, variant: ButtonVariant): button is BaseButtonWithVariant => {\n return variant in button;\n};\n\nexport function getVariantValuesIfExist<V extends ButtonVariant>(\n theme: DefaultTheme,\n type: ButtonType,\n variant: ButtonVariant,\n): BaseButtonTheme['default'] | BaseButtonWithVariant[V] {\n const button = theme.kitt.button[type];\n\n if (hasVariant(button, variant)) {\n return button[variant];\n }\n\n return theme.kitt.button[type].default;\n}\n","import type { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { Pressable } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport type { SubtleButtonTheme } from 'themes/late-ocean/button';\nimport { theme as kittTheme } from '../themes/default';\nimport { withTheme } from '../utils/withTheme';\nimport type { AnimatedButtonPressableProps } from './AnimatedButtonPressable';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\nimport { isSubtle } from './isSubtle';\n\ninterface AnimatedButtonPressableContainerProps {\n theme: DefaultTheme;\n children: ReactNode;\n $isDisabled?: boolean;\n $type: ButtonType;\n $variant: ButtonVariant;\n $isStretch?: boolean;\n $isSubtle?: boolean;\n}\n\nexport const AnimatedButtonPressableContainer = withTheme<\n AnimatedButtonPressableContainerProps,\n HTMLDivElement\n>(styled.div<AnimatedButtonPressableContainerProps>`\n width: auto;\n\n display: ${({ $isStretch }) => ($isStretch ? 'inherit' : 'inline-flex')};\n align-self: ${({ $isStretch }) => ($isStretch ? 'stretch' : 'baseline')};\n\n /* Transitions managment */\n .kitt-hover & > * > *,\n &:hover > * > * {\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme }) => theme.kitt.button.scale.medium.hover});\n }\n }\n\n .kitt-active & > * > *,\n &:active > * > * {\n /* Scale down */\n transform: ${({ theme, $isDisabled }) => `scale(${$isDisabled ? 1 : theme.kitt.button.scale.base.active})`};\n }\n\n .kitt-active & > * > *,\n &:active > * > *,\n .kitt-hover & > * > *,\n &:hover > * > * {\n background: ${({ theme, $type, $variant, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.button.disabled.default.hoverBackgroundColor;\n\n return getVariantValuesIfExist(theme, $type, $variant).hoverBackgroundColor;\n }};\n }\n\n & > * > * {\n /* translateZ(0) for hardware acceleration */\n transform: scale(1) translateZ(0);\n display: inline-flex;\n\n /* Simplifies the animation to just the front of the object – avoid blurry scale */\n backface-visibility: hidden;\n\n transition: ${({ theme }) => {\n const { duration, timingFunction } = theme.kitt.button.transition;\n\n return `color, background, border-color, ${duration} ${timingFunction}`;\n }};\n }\n\n & > * > *::after,\n & > * > *::before {\n content: '';\n position: absolute;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n transition: ${({ theme }) =>\n `opacity ${theme.kitt.button.transition.duration} ${theme.kitt.button.transition.timingFunction}`};\n }\n\n & > * > *::after {\n opacity: ${({ $isDisabled }) => ($isDisabled ? 1 : 0)};\n top: ${({ theme }) => `-${theme.kitt.button.borderWidth.disabled}px`};\n left: ${({ theme }) => `-${theme.kitt.button.borderWidth.disabled}px`};\n width: ${({ theme }) => `calc(100% - ${theme.kitt.button.borderWidth.disabled * 0.5}px)`};\n height: ${({ theme }) => `calc(100% - ${theme.kitt.button.borderWidth.disabled * 0.5}px)`};\n border: ${({ theme }) =>\n `${theme.kitt.button.borderWidth.disabled}px solid ${theme.kitt.button.disabled.default.borderColor}`};\n }\n\n & > * > *::before {\n opacity: 0;\n border: ${({ theme, $type, $variant }) =>\n `${theme.kitt.button.borderWidth.focus}px solid ${\n getVariantValuesIfExist(theme, $type, $variant).focusBorderColor\n }`};\n width: 100%;\n height: 100%;\n top: ${({ theme }) => `-${theme.kitt.button.borderWidth.focus}px`};\n left: ${({ theme }) => `-${theme.kitt.button.borderWidth.focus}px`};\n }\n\n outline: none;\n\n .kitt-focus & > *,\n &:focus > *,\n & > [data-focusvisible-polyfill] {\n outline: none;\n\n & > *::before {\n opacity: 1;\n }\n }\n\n .kitt-hover & > *,\n &:hover > *,\n .kitt-active & > *,\n &:active > * {\n & > *::before {\n opacity: 0;\n }\n }\n\n /* Subtle Typography handling */\n & > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.color;\n }\n\n return 'inherit';\n }};\n }\n\n .kitt-hover & > *,\n &:hover > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.hoverColor;\n }\n return 'inherit';\n }};\n }\n\n .kitt-active & > *,\n &:active > * {\n color: ${({ theme, $type, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.typography.colors['black-light'];\n\n if (isSubtle($type)) {\n return (theme.kitt.button[$type] as SubtleButtonTheme).default.activeColor;\n }\n\n return 'inherit';\n }};\n }\n`);\n\nexport const AnimatedButtonPressable = forwardRef<HTMLDivElement, AnimatedButtonPressableProps>(\n ({ $type, $variant, $isStretch, disabled, ...props }: AnimatedButtonPressableProps, ref): ReactElement => {\n return (\n <AnimatedButtonPressableContainer\n ref={ref}\n $type={$type}\n $variant={$variant}\n $isDisabled={!!disabled}\n $isStretch={$isStretch}\n >\n <Pressable disabled={disabled} {...props} />\n </AnimatedButtonPressableContainer>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\n\nexport interface BaseStyledButtonPressableProps extends ViewProps {\n $type: ButtonType;\n $variant: ButtonVariant;\n $isLarge?: boolean;\n $isXLarge?: boolean;\n $isStretch?: boolean;\n $isDisabled?: boolean;\n}\n\nexport const BaseStyledButtonPressable = styled.View<BaseStyledButtonPressableProps>`\n position: relative;\n min-width: ${({ theme }) => theme.kitt.button.minWidth}px;\n max-width: ${({ theme, $isStretch }) => ($isStretch ? '100%' : `${theme.kitt.button.maxWidth}px`)};\n width: ${({ $isStretch }) => ($isStretch ? '100%' : 'auto')};\n min-height: ${({ theme }) => theme.kitt.button.minHeight}px;\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n /* Emulate inline-* css display by making the button taking only its necessary space */\n align-self: flex-start;\n\n background-color: ${({ theme, $isDisabled, $type, $variant }) => {\n if ($isDisabled) return theme.kitt.button.disabled.default.backgroundColor;\n\n if (Platform.OS !== 'web') return 'transparent';\n\n return getVariantValuesIfExist(theme, $type, $variant).backgroundColor;\n }};\n\n padding: ${({ theme, $isLarge, $isXLarge, $isDisabled }) => {\n const { large, default: defaultPadding, disabled: disabledPadding, xLarge } = theme.kitt.button.contentPadding;\n\n if ($isXLarge) return xLarge;\n if ($isLarge) return large;\n if ($isDisabled) return disabledPadding;\n\n return defaultPadding;\n }};\n`;\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'] | 'inherit';\n}\n\nfunction TypographyIconSpecifiedColor({ color, ...props }: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...props} color={color === 'inherit' ? 'inherit' : theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n}\n\nexport function TypographyIcon({ color, ...props }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n }\n\n return <TypographyIconInheritColor {...props} />;\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType, ButtonVariant } from './Button';\nimport { isSubtle } from './isSubtle';\n\nconst getTextColorByType = (type: ButtonType, variant: ButtonVariant): TypographyColor => {\n switch (type) {\n case 'primary':\n return variant === 'ghost' ? 'primary' : 'white';\n case 'white':\n return 'white';\n case 'subtle':\n return 'primary';\n case 'subtle-dark':\n return 'black';\n case 'default':\n return variant === 'ghost' ? 'white' : 'black';\n default:\n return 'black';\n }\n};\n\ninterface StyledButtonTextProps extends TypographyTextProps {\n $type: ButtonType;\n $isDisabled?: boolean;\n}\n\nconst StyledButtonText = styled(Typography.Text)<StyledButtonTextProps>`\n /* On native code, this is the only way to ensure that the text is centered */\n text-align: center;\n\n ${() => {\n // Make the multilines case work properly on native\n // Breaks the web implem\n if (Platform.OS === 'web') return undefined;\n\n return `\n flex-shrink: 1;\n `;\n }}\n\n ${({ $type, $isDisabled }) => {\n /* For subltes button, color changes when hovered.\n * We don't want to use a mouse event handler with a react state to handle it\n * For this precise case, we've decided to work outside the typography logic\n */\n if (Platform.OS !== 'web' || $isDisabled || !isSubtle($type)) return undefined;\n return 'color: inherit';\n }}\n`;\n\ninterface StyledIconContainerProps {\n $iconPosition?: ButtonProps['iconPosition'];\n}\n\nconst StyledIconContainer = styled.View<StyledIconContainerProps>`\n ${({ theme, $iconPosition }) => {\n const value = theme.kitt.spacing * 2;\n\n if ($iconPosition === 'left') {\n return `margin: 0 ${value}px 0 0;`;\n }\n\n return `margin: 0 0 0 ${value}px;`;\n }}\n`;\n\ninterface ButtonIconProps {\n icon: NonNullable<ButtonContentProps['icon']>;\n iconPosition: ButtonContentProps['iconPosition'];\n color: TypographyIconProps['color'];\n testID?: string;\n}\n\nfunction ButtonIcon({ icon, color, iconPosition, testID }: ButtonIconProps): ReactElement | null {\n return (\n <StyledIconContainer $iconPosition={iconPosition}>\n <TypographyIcon icon={icon} testID={testID} color={color} />\n </StyledIconContainer>\n );\n}\n\ninterface ButtonContentProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n variant: NonNullable<ButtonVariant>;\n $isStretch: ButtonProps['stretch'];\n}\n\ninterface ButtonContentChildrenProps extends Except<ButtonProps, 'onPress' | 'disabled' | 'stretch'> {\n isDisabled?: boolean;\n type: NonNullable<ButtonType>;\n color: TypographyColor;\n}\n\nconst StyledChildrenWithIcon = styled.View`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n`;\n\nexport function ButtonContentChildren({\n type,\n icon,\n iconPosition,\n isDisabled,\n color,\n children,\n}: ButtonContentChildrenProps): ReactElement | null {\n if (__DEV__) {\n if (!(children || icon)) {\n throw new Error('kitt(Button): You should provide at least a children or a icon');\n }\n }\n\n const isWebSubtle = isSubtle(type) && Platform.OS === 'web' && !isDisabled;\n\n if (!children) {\n return (\n <TypographyIcon\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n icon={icon!}\n color={isWebSubtle ? 'inherit' : color}\n />\n );\n }\n\n const buttonIconSharedProps = {\n type,\n iconPosition,\n color: isWebSubtle ? 'inherit' : (color as TypographyIconProps['color']),\n };\n\n return (\n <StyledChildrenWithIcon>\n {icon && iconPosition === 'left' ? (\n <ButtonIcon {...buttonIconSharedProps} testID=\"button-left-icon\" icon={icon} />\n ) : null}\n\n <StyledButtonText\n base=\"body\"\n variant=\"bold\"\n $type={type}\n $isDisabled={isDisabled}\n // set to color: inherit via styled components\n color={isWebSubtle ? undefined : color}\n >\n {children}\n </StyledButtonText>\n\n {icon && iconPosition === 'right' ? <ButtonIcon {...buttonIconSharedProps} icon={icon} /> : null}\n </StyledChildrenWithIcon>\n );\n}\n\ninterface ButtonContentContainerProps {\n $isSubtle?: boolean;\n $isStretch?: boolean;\n $isIconOnly?: boolean;\n}\n\nconst ButtonContentContainer = styled.View<ButtonContentContainerProps>`\n line-height: 16px;\n\n ${({ $isStretch, $isIconOnly }) => {\n // Make the multilines case work properly on web\n // Breaks the native implem\n if (Platform.OS !== 'web') return undefined;\n\n return `\n flex: ${$isStretch || $isIconOnly ? 1 : 0} 1 auto;\n `;\n }}\n\n ${({ $isSubtle }) => {\n if (Platform.OS !== 'web' || !$isSubtle) return undefined;\n // Needed for subtle type\n return 'color: inherit';\n }};\n`;\n\nexport function ButtonContent({\n type,\n variant,\n isDisabled,\n $isStretch,\n icon,\n children,\n ...props\n}: ButtonContentProps): ReactElement {\n const color = isDisabled ? 'black-light' : getTextColorByType(type, variant);\n\n return (\n <ButtonContentContainer $isSubtle={isSubtle(type)} $isStretch={$isStretch} $isIconOnly={Boolean(!children && icon)}>\n <ButtonContentChildren icon={icon} type={type} isDisabled={isDisabled} color={color} {...props}>\n {children}\n </ButtonContentChildren>\n </ButtonContentContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport { Platform } from 'react-native';\nimport { AnimatedButtonPressable } from './AnimatedButtonPressable';\nimport { BaseStyledButtonPressable } from './BaseStyledButtonPressable';\nimport { ButtonContent } from './ButtonContent';\nimport { StyledDisabled } from './StyledDisabled';\n\nexport type SubtleButtonType = 'subtle' | 'subtle-dark';\nexport type ButtonType = 'primary' | 'default' | SubtleButtonType | 'white';\n\nexport type ButtonVariant = 'default' | 'ghost';\n\ntype IconPosition = 'right' | 'left';\n\nconst allowedGhostTypes = ['primary', 'default'];\n\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n variant?: ButtonVariant;\n disabled?: boolean;\n stretch?: boolean;\n large?: boolean;\n xLarge?: boolean;\n icon?: ReactElement;\n iconPosition?: IconPosition;\n testID?: PressableProps['testID'];\n href?: PressableProps['href'];\n hrefAttrs?: PressableProps['hrefAttrs'];\n accessibilityRole?: PressableProps['accessibilityRole'];\n className?: string;\n style?: PressableProps['style'];\n onPress?: PressableProps['onPress'];\n}\n\nexport const Button = forwardRef<View, ButtonProps>(\n (\n {\n children,\n type = 'default',\n variant = 'default',\n disabled,\n stretch,\n large,\n xLarge,\n icon,\n iconPosition = 'left',\n testID,\n href,\n hrefAttrs,\n accessibilityRole = 'button',\n onPress,\n }: ButtonProps,\n ref,\n ): ReactElement => {\n if (__DEV__ && variant === 'ghost' && !allowedGhostTypes.includes(type)) {\n throw new Error('variant=ghost is only allowed with type=primary or default');\n }\n\n return (\n <AnimatedButtonPressable\n ref={ref}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n disabled={disabled}\n $isStretch={stretch}\n $type={type}\n $variant={variant}\n onPress={onPress}\n >\n <BaseStyledButtonPressable\n $type={type}\n $variant={variant}\n $isStretch={stretch}\n $isLarge={large}\n $isXLarge={xLarge}\n $isDisabled={disabled}\n >\n <ButtonContent\n type={type}\n variant={variant}\n $isStretch={stretch}\n isDisabled={disabled}\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n {Platform.OS !== 'web' && disabled ? <StyledDisabled /> : null}\n </BaseStyledButtonPressable>\n </AnimatedButtonPressable>\n );\n },\n);\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\ntype CardType = 'primary' | 'secondary' | 'subtle';\n\nexport interface CardProps {\n children: NonNullable<ReactNode>;\n type: CardType;\n}\ninterface ContainerProps {\n type: CardType;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type }) => theme.kitt.card[type].backgroundColor};\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n border-width: ${({ theme }) => theme.kitt.card.borderWidth}px;\n border-color: ${({ theme, type }) => theme.kitt.card[type].borderColor};\n`;\n\nexport function Card({ children, type }: CardProps): ReactElement {\n return <Container type={type}>{children}</Container>;\n}\n","import type { ReactElement } from 'react';\nimport { useMemo } from 'react';\nimport type { ImageProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { parse } from 'twemoji-parser';\n\ninterface StyledEmojiProps {\n size: number;\n}\n\nconst StyledEmoji = styled.Image<StyledEmojiProps>`\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n`;\n\nexport interface EmojiProps extends Pick<ImageProps, 'style'> {\n emoji: string;\n size: number;\n}\n\nexport function Emoji({ emoji, size, style }: EmojiProps): ReactElement | null {\n const [emojiData] = useMemo(\n () =>\n parse(emoji, {\n // on native plaforms, you can't display svg as Image\n assetType: Platform.OS === 'web' ? 'svg' : 'png',\n }),\n [emoji],\n );\n\n if (!emojiData) return null;\n\n return <StyledEmoji size={size} accessibilityLabel={emojiData.text} source={{ uri: emojiData.url }} style={style} />;\n}\n","export interface ExternalLinkOpenLinkBehavior {\n /**\n * @default 'openInModal'\n *\n * @description open link behavior in native\n *\n * \"openInModal\": open via [expo-web-browser](https://docs.expo.dev/versions/latest/sdk/webbrowser/)\n *\n * \"openBrowserApp\": open via [Linking](https://docs.expo.dev/guides/linking/#opening-links-from-your-app)\n */\n native?: 'openInModal' | 'openBrowserApp';\n\n /**\n * @default 'targetBlank'\n *\n * @description open link behavior in native\n *\n * \"targetSelf\": no dom attributes added, behave like `target=\"_self\"`\n *\n * \"targetBlank\": dome attributes: `target=\"_blank\" rel=\"noopener noreferrer\"`\n */\n web?: 'targetSelf' | 'targetBlank';\n}\n\nexport const defaultOpenLinkBehavior: ExternalLinkOpenLinkBehavior = {\n native: 'openInModal',\n web: 'targetBlank',\n};\n","import type { ReactElement, VoidFunctionComponent } from 'react';\nimport type { ExternalLinkProps, ExternalLinkSendableComponentProps } from './ExternalLink';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n return (\n <Component\n {...(rest as any)}\n href={href}\n hrefAttrs={openLinkBehavior?.web === 'targetSelf' ? undefined : { target: '_blank', rel: 'noopener noreferrer' }}\n onPress={onPress}\n />\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 black800: '#2C293D',\n black555: '#737373',\n black200: '#CCCCCC',\n black100: '#E5E5E5',\n black50: '#F2F2F2',\n black25: '#F9F9F9',\n white: '#FFFFFF',\n\n viride: '#38836D',\n englishVermillon: '#D44148',\n goldCrayola: '#F8C583',\n aero: '#89BDDD',\n\n transparent: 'transparent',\n\n moonPurple: '#DBD6F9',\n moonPurpleLight1: '#EDEBFC',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const colors = {\n primary: lateOceanColorPalette.lateOcean,\n primaryLight: lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n accentLight: lateOceanColorPalette.warmEmbraceLight1,\n success: lateOceanColorPalette.viride,\n correct: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n info: lateOceanColorPalette.aero,\n warning: lateOceanColorPalette.goldCrayola,\n separator: lateOceanColorPalette.black100,\n hover: lateOceanColorPalette.black100,\n white: lateOceanColorPalette.white,\n black: lateOceanColorPalette.black1000,\n blackAnthracite: lateOceanColorPalette.black800,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n transparent: lateOceanColorPalette.transparent,\n disabled: lateOceanColorPalette.black50,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface AvatarThemeColorVariant {\n backgroundColor: string;\n}\n\nexport interface AvatarThemeSizeVariant {\n borderRadius: number;\n}\n\nexport interface AvatarTheme {\n borderRadius: number;\n default: AvatarThemeColorVariant;\n light: AvatarThemeColorVariant;\n large: AvatarThemeSizeVariant;\n}\n\nexport const avatar: AvatarTheme = {\n borderRadius: 10,\n default: {\n backgroundColor: colors.primary,\n },\n light: {\n backgroundColor: lateOceanColorPalette.black100,\n },\n large: {\n borderRadius: 30,\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface BaseVariantTheme {\n backgroundColor: string;\n pressedBackgroundColor: string;\n hoverBackgroundColor: string;\n focusBorderColor: string;\n}\n\nexport interface GhostVariantTheme extends BaseVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\nexport interface BaseButtonTheme {\n default: BaseVariantTheme;\n}\n\nexport interface BaseButtonWithVariant extends BaseButtonTheme {\n ghost: GhostVariantTheme;\n}\n\nexport interface SubtleBaseVariantTheme extends BaseVariantTheme {\n color: string;\n hoverColor: string;\n activeColor: string;\n}\n\nexport interface SubtleButtonTheme extends BaseButtonTheme {\n default: SubtleBaseVariantTheme;\n}\n\nexport interface DisabledBaseVariantTheme extends BaseVariantTheme {\n borderColor: string;\n}\n\nexport interface DisabledButtonTheme extends BaseButtonTheme {\n default: DisabledBaseVariantTheme;\n}\n\nexport interface ButtonTheme {\n borderRadius: number;\n borderWidth: {\n disabled: number;\n focus: number;\n };\n minHeight: number;\n minWidth: number;\n maxWidth: number;\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n contentPadding: {\n default: string;\n large: string;\n xLarge: string;\n disabled: string;\n };\n transition: {\n duration: string;\n timingFunction: string;\n };\n default: BaseButtonWithVariant;\n primary: BaseButtonWithVariant;\n white: BaseButtonTheme;\n subtle: SubtleButtonTheme;\n 'subtle-dark': SubtleButtonTheme;\n disabled: DisabledButtonTheme;\n}\n\nexport const button: ButtonTheme = {\n borderRadius: 30,\n borderWidth: {\n disabled: 2,\n focus: 3,\n },\n minHeight: 40,\n minWidth: 40,\n maxWidth: 335,\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n contentPadding: {\n default: '7px 16px 7px',\n large: '11px 24px 11px',\n xLarge: '15px 24px 15px',\n disabled: '5px 14px 5px',\n },\n transition: {\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n },\n default: {\n default: {\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\n pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n hoverBackgroundColor: 'rgba(0, 0, 0, 0.1)',\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n },\n ghost: {\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.05)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.05)',\n focusBorderColor: 'rgba(255, 255, 255, 0.4)',\n color: lateOceanColorPalette.white,\n hoverColor: lateOceanColorPalette.white,\n activeColor: lateOceanColorPalette.white,\n },\n },\n primary: {\n default: {\n backgroundColor: colors.primary,\n pressedBackgroundColor: colors.primaryLight,\n hoverBackgroundColor: colors.primaryLight,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n },\n ghost: {\n backgroundColor: colors.uiBackgroundLight,\n pressedBackgroundColor: colors.uiBackground,\n hoverBackgroundColor: colors.hover,\n focusBorderColor: 'rgba(255,255,255, 0.4)',\n color: colors.primary,\n hoverColor: colors.hover,\n activeColor: colors.hover,\n },\n },\n white: {\n default: {\n backgroundColor: 'rgba(255, 255, 255, 0.05)',\n pressedBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n hoverBackgroundColor: 'rgba(255, 255, 255, 0.1)',\n focusBorderColor: 'rgba(255, 255, 255, 0.1)',\n },\n },\n subtle: {\n default: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(76, 52, 224, 0.2)',\n color: colors.primary,\n hoverColor: 'rgba(76, 52, 224, 0.8)',\n activeColor: 'rgba(76, 52, 224, 0.8)',\n },\n },\n 'subtle-dark': {\n default: {\n backgroundColor: colors.transparent,\n pressedBackgroundColor: colors.transparent,\n hoverBackgroundColor: colors.transparent,\n focusBorderColor: 'rgba(0, 0, 0, 0.1)',\n color: colors.black,\n hoverColor: 'rgba(0, 0, 0, 0.8)',\n activeColor: 'rgba(0, 0, 0, 0.8)',\n },\n },\n disabled: {\n default: {\n backgroundColor: colors.disabled,\n pressedBackgroundColor: colors.disabled,\n hoverBackgroundColor: colors.disabled,\n focusBorderColor: lateOceanColorPalette.black100,\n borderColor: lateOceanColorPalette.black100,\n },\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface CardThemeType {\n backgroundColor: string;\n borderColor: string;\n}\nexport interface CardTheme {\n borderRadius: number;\n borderWidth: number;\n primary: CardThemeType;\n secondary: CardThemeType;\n subtle: CardThemeType;\n}\n\nexport const card: CardTheme = {\n borderRadius: 20,\n borderWidth: 2,\n primary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.primary,\n },\n secondary: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n },\n subtle: {\n backgroundColor: lateOceanColorPalette.black50,\n borderColor: colors.separator,\n },\n};\n","import { colors } from './colors';\n\nexport interface FeedbackMessageVariantTheme {\n backgroundColor: string;\n}\n\nexport interface FeedbackMessageTheme {\n danger: FeedbackMessageVariantTheme;\n info: FeedbackMessageVariantTheme;\n success: FeedbackMessageVariantTheme;\n warning: FeedbackMessageVariantTheme;\n}\n\nexport const feedbackMessage: FeedbackMessageTheme = {\n danger: {\n backgroundColor: colors.danger,\n },\n success: {\n backgroundColor: colors.success,\n },\n info: {\n backgroundColor: colors.info,\n },\n warning: {\n backgroundColor: colors.warning,\n },\n};\n","import { colors } from './colors';\n\nexport const checkbox = {\n borderWidth: 2,\n borderRadius: 5,\n height: 20,\n width: 20,\n iconSize: 14,\n borderColor: colors.separator,\n backgroundColor: colors.uiBackgroundLight,\n checkedBorderColor: colors.primary,\n checkedBackgroundColor: colors.primary,\n markColor: colors.uiBackgroundLight,\n};\n","interface DatePickerPartTheme {\n minWidth: number;\n}\n\nexport interface DatePickerTheme {\n day: DatePickerPartTheme;\n month: DatePickerPartTheme;\n year: DatePickerPartTheme;\n}\n\nexport const datePicker: DatePickerTheme = {\n day: {\n minWidth: 64,\n },\n month: {\n minWidth: 64,\n },\n year: {\n minWidth: 82,\n },\n};\n","import { Platform } from 'react-native';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors as kittColors } from './colors';\n\nexport const calcLineHeight = (fontSize: number, lineHeightMultiplier: number): number =>\n Math.round(fontSize * lineHeightMultiplier);\n\nexport interface TypographyTypeBreakpointRangeConfig {\n fontSize: number;\n lineHeight: number;\n}\n\nexport interface TypographyTypeConfig {\n baseAndSmall: TypographyTypeBreakpointRangeConfig;\n mediumAndWide: TypographyTypeBreakpointRangeConfig;\n}\n\nexport const createTypographyTypeConfig = (\n lineHeightMultiplier: number,\n baseAndSmallFontSize: number,\n mediumAndWideFontSize: number,\n): TypographyTypeConfig => ({\n baseAndSmall: {\n fontSize: baseAndSmallFontSize,\n lineHeight: calcLineHeight(baseAndSmallFontSize, lineHeightMultiplier),\n },\n mediumAndWide: {\n fontSize: mediumAndWideFontSize,\n lineHeight: calcLineHeight(mediumAndWideFontSize, lineHeightMultiplier),\n },\n});\n\nexport const typography = {\n colors: {\n black: kittColors.black,\n 'black-anthracite': kittColors.blackAnthracite,\n 'black-light': lateOceanColorPalette.black555,\n white: kittColors.white,\n 'white-light': kittColors.white,\n primary: kittColors.primary,\n 'primary-light': kittColors.primaryLight,\n accent: kittColors.accent,\n success: kittColors.success,\n danger: kittColors.danger,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { InputUIState } from '../../forms/utils';\nimport { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\nimport { typography } from './typography';\n\nexport interface InputStateStyle {\n backgroundColor?: string;\n borderColor: string;\n color: keyof typeof typography.colors;\n}\n\nexport type InputStateTheme = Record<InputUIState, InputStateStyle>;\n\nconst inputStatesStyle: InputStateTheme = {\n default: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n pending: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: colors.separator,\n color: 'black',\n },\n valid: {\n backgroundColor: colors.uiBackgroundLight,\n borderColor: lateOceanColorPalette.black100,\n color: 'black',\n },\n hover: {\n borderColor: lateOceanColorPalette.black200,\n color: 'black',\n },\n focus: {\n borderColor: colors.primary,\n color: 'black',\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n color: 'black-light',\n },\n invalid: {\n borderColor: colors.separator,\n color: 'black',\n },\n};\n\nexport interface InputTheme {\n minHeight: number;\n color: {\n selection: string;\n placeholder: string;\n };\n borderWidth: number;\n borderRadius: number;\n icon: {\n size: number;\n };\n padding: {\n horizontal: number;\n vertical: number;\n };\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n states: InputStateTheme;\n}\n\nexport const input: InputTheme = {\n minHeight: 40,\n color: {\n selection: colors.primary,\n placeholder: typography.colors['black-light'],\n },\n borderWidth: 2,\n borderRadius: 10,\n icon: {\n size: 20,\n },\n padding: {\n horizontal: 16,\n vertical: 5,\n },\n transition: {\n property: 'border-color',\n duration: '200ms',\n timingFunction: 'ease-in-out',\n },\n states: inputStatesStyle,\n};\n","export const inputField = {\n labelContainerPaddingBottom: 5,\n iconMarginLeft: 6,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\ninterface InputTagTypeTheme {\n backgroundColor: string;\n labelColor: string;\n}\nexport interface InputTagTheme {\n borderRadius: number;\n iconSize: number;\n default: InputTagTypeTheme;\n success: InputTagTypeTheme;\n danger: InputTagTypeTheme;\n}\n\nexport const inputTag: InputTagTheme = {\n success: {\n backgroundColor: colors.success,\n labelColor: colors.uiBackgroundLight,\n },\n danger: {\n backgroundColor: colors.danger,\n labelColor: colors.uiBackgroundLight,\n },\n default: {\n backgroundColor: lateOceanColorPalette.black50,\n labelColor: colors.black,\n },\n borderRadius: 10,\n iconSize: 13.5,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface RadioTheme {\n size: number;\n unchecked: {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n };\n checked: {\n backgroundColor: string;\n innerBackgroundColor: string;\n innerSize: number;\n };\n disabled: {\n backgroundColor: string;\n borderColor: string;\n };\n}\n\nexport const radio: RadioTheme = {\n size: 18,\n unchecked: {\n backgroundColor: colors.uiBackgroundLight,\n borderWidth: 2,\n borderColor: lateOceanColorPalette.black200,\n },\n checked: {\n backgroundColor: colors.primary,\n innerSize: 5,\n innerBackgroundColor: colors.uiBackgroundLight,\n },\n disabled: {\n backgroundColor: colors.disabled,\n borderColor: colors.separator,\n },\n};\n","export interface TextAreaTheme {\n minHeight: number;\n}\n\nexport const textArea: TextAreaTheme = {\n minHeight: 120,\n};\n","import { checkbox } from './checkbox';\nimport { datePicker } from './datePicker';\nimport { input } from './input';\nimport { inputField } from './inputField';\nimport { inputTag } from './inputTag';\nimport { radio } from './radio';\nimport { textArea } from './textArea';\n\nexport const forms = {\n datePicker,\n input,\n radio,\n inputField,\n textArea,\n checkbox,\n inputTag,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport const fullScreenModal = {\n header: {\n paddingVertical: 12,\n paddingHorizontal: 16,\n borderColor: lateOceanColorPalette.black100,\n },\n};\n","import { button } from './button';\n\ninterface IconButtonVariationValues {\n pressedBackgroundColor: string;\n}\n\nexport interface IconButtonTheme {\n backgroundColor: string;\n width: number;\n height: number;\n borderRadius: number;\n borderWidth: number;\n borderColor: string;\n transition: {\n property: string;\n duration: string;\n timingFunction: string;\n };\n scale: {\n base: {\n default: number;\n hover: number;\n active: number;\n };\n medium: {\n hover: number;\n };\n };\n disabled: {\n scale: number;\n backgroundColor: string;\n borderColor: string;\n };\n default: IconButtonVariationValues;\n white: IconButtonVariationValues;\n}\n\nexport const iconButton: IconButtonTheme = {\n backgroundColor: 'transparent',\n width: 40,\n height: 40,\n borderRadius: 20,\n borderWidth: 2,\n borderColor: 'transparent',\n transition: {\n property: 'all',\n duration: '200ms',\n timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1);',\n },\n scale: {\n base: {\n default: 1,\n hover: 0.95,\n active: 0.95,\n },\n medium: {\n hover: 1.05,\n },\n },\n disabled: {\n scale: 1,\n backgroundColor: button.disabled.default.backgroundColor,\n borderColor: button.disabled.default.borderColor,\n },\n default: {\n pressedBackgroundColor: button.default.default.pressedBackgroundColor,\n },\n white: {\n pressedBackgroundColor: button.white.default.hoverBackgroundColor,\n },\n};\n","import { colors } from './colors';\n\nexport interface ListItemTheme {\n padding: string;\n borderColor: string;\n borderWidth: number;\n innerMargin: number;\n}\n\nexport const listItem: ListItemTheme = {\n padding: '12px 16px',\n borderColor: colors.separator,\n borderWidth: 1,\n innerMargin: 8,\n};\n","import { colors } from './colors';\n\nexport interface PageLoaderTheme {\n size: number;\n strokeWidth: number;\n colors: {\n base: string;\n fill: string;\n };\n animation: {\n delay: number;\n circleBackgroundFillDuration: number;\n filledCircleFillDuration: number;\n groupFilledCircleRotationDuration: number;\n filledCircleRotationDuration: number;\n fillEasingFunction: [number, number, number, number];\n };\n}\n\nexport const pageLoader: PageLoaderTheme = {\n size: 60,\n strokeWidth: 3,\n colors: {\n base: colors.separator,\n fill: colors.primary,\n },\n animation: {\n delay: 500,\n circleBackgroundFillDuration: 1000,\n filledCircleFillDuration: 1800,\n groupFilledCircleRotationDuration: 1800,\n filledCircleRotationDuration: 2160,\n fillEasingFunction: [0.39, 0.575, 0.565, 1],\n },\n};\n","import type { TextStyle } from 'react-native';\nimport { colors } from './colors';\nimport { typography } from './typography';\n\nexport interface PickerTheme {\n ios: {\n default: TextStyle;\n selected: {\n color: string;\n };\n };\n android: {\n padding: string;\n default: {\n backgroundColor: string;\n };\n selected: {\n backgroundColor: string;\n color: string;\n };\n };\n}\n\nexport const picker: PickerTheme = {\n ios: {\n default: {\n fontFamily: typography.types.bodies.fontFamily.regular,\n ...typography.types.bodies.configs.body.baseAndSmall,\n fontSize: 16,\n color: typography.colors['black-light'],\n },\n selected: {\n color: typography.colors.primary,\n },\n },\n android: {\n padding: '12px 24px',\n default: {\n backgroundColor: colors.transparent,\n },\n selected: {\n backgroundColor: colors.primary,\n color: typography.colors.white,\n },\n },\n};\n","export const shadows = {\n medium: '0px 10px 20px rgba(41, 48, 51, 0.25)',\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\n\nexport interface SkeletonTheme {\n backgroundColor: string;\n flareColor: string;\n animationDuration: number;\n}\n\nexport const skeleton: SkeletonTheme = {\n backgroundColor: lateOceanColorPalette.black100,\n flareColor: lateOceanColorPalette.black200,\n animationDuration: 1000,\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { colors } from './colors';\n\nexport interface TagVariantTheme {\n borderWidth: number;\n backgroundColor: string;\n borderColor: string;\n}\n\nexport interface TagTypeTheme {\n fill: TagVariantTheme;\n outline: TagVariantTheme;\n}\n\nexport interface TagTheme {\n borderRadius: number;\n padding: string;\n primary: TagTypeTheme;\n default: TagTypeTheme;\n danger: TagTypeTheme;\n}\n\nexport const tag: TagTheme = {\n borderRadius: 10,\n padding: '2px 12px',\n primary: {\n fill: {\n backgroundColor: lateOceanColorPalette.moonPurpleLight1,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.primary,\n },\n },\n default: {\n fill: {\n backgroundColor: lateOceanColorPalette.black50,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.black,\n },\n },\n danger: {\n fill: {\n backgroundColor: lateOceanColorPalette.warmEmbrace,\n borderWidth: 0,\n borderColor: colors.transparent,\n },\n outline: {\n backgroundColor: colors.transparent,\n borderWidth: 1,\n borderColor: colors.danger,\n },\n },\n};\n","import { colors } from './colors';\n\nexport interface TooltipTheme {\n backgroundColor: string;\n borderRadius: number;\n opacity: number;\n horizontalPadding: number;\n verticalPadding: number;\n floatingPadding: number;\n}\n\nexport const tooltip: TooltipTheme = {\n backgroundColor: colors.black,\n borderRadius: 10,\n opacity: 0.95,\n horizontalPadding: 16,\n verticalPadding: 4,\n floatingPadding: 8,\n};\n","import { avatar } from './late-ocean/avatar';\nimport { button } from './late-ocean/button';\nimport { card } from './late-ocean/card';\nimport { colors } from './late-ocean/colors';\nimport { feedbackMessage } from './late-ocean/feedback';\nimport { forms } from './late-ocean/forms';\nimport { fullScreenModal } from './late-ocean/fullScreenModal';\nimport { iconButton } from './late-ocean/iconButton';\nimport { listItem } from './late-ocean/listItem';\nimport { pageLoader } from './late-ocean/pageLoader';\nimport { picker } from './late-ocean/picker';\nimport { shadows } from './late-ocean/shadows';\nimport { skeleton } from './late-ocean/skeleton';\nimport { tag } from './late-ocean/tag';\nimport { tooltip } from './late-ocean/tooltip';\nimport { typography } from './late-ocean/typography';\nimport { lateOceanColorPalette } from './palettes/lateOceanColorPalette';\n\nconst breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 1024,\n wide: 1280,\n },\n min: {\n smallBreakpoint: 'min-width: 480px',\n mediumBreakpoint: 'min-width: 768px',\n largeBreakpoint: 'min-width: 1024px',\n wideBreakpoint: 'min-width: 1280px',\n },\n max: {\n smallBreakpoint: 'max-width: 479px',\n mediumBreakpoint: 'max-width: 767px',\n largeBreakpoint: 'max-width: 1023px',\n wideBreakpoint: 'max-width: 1279px',\n },\n};\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : seperate brand color usage definition from proper theme definition and add typings - https://ornikar.atlassian.net/browse/CME-156\nexport const theme = {\n spacing: 4,\n colors,\n palettes: { lateOcean: lateOceanColorPalette },\n avatar,\n breakpoints,\n button,\n card,\n feedbackMessage,\n forms,\n fullScreenModal,\n iconButton,\n listItem,\n pageLoader,\n picker,\n shadows,\n skeleton,\n tag,\n tooltip,\n typography,\n};\n\nexport type Theme = typeof theme;\n","import { useWindowDimensions } from 'react-native';\nimport type { WindowDimensions } from './createWindowSizeHelper';\n\nexport interface MatchWindowSizeOptions {\n minWidth?: number;\n maxWidth?: number;\n minHeight?: number;\n maxHeight?: number;\n}\nexport function matchWindowSize(\n { width, height }: WindowDimensions,\n { minWidth, maxWidth, minHeight, maxHeight }: MatchWindowSizeOptions,\n): boolean {\n const hasWidthMatched = width ? (!minWidth || width >= minWidth) && (!maxWidth || width <= maxWidth) : true;\n const hasHeightMatched = height ? (!minHeight || height >= minHeight) && (!maxHeight || height <= maxHeight) : true;\n return hasWidthMatched && hasHeightMatched;\n}\n\nexport function useMatchWindowSize(options: MatchWindowSizeOptions): boolean {\n const { width, height } = useWindowDimensions();\n return matchWindowSize({ width, height }, options);\n}\n","// eslint-disable-next-line no-restricted-imports\nimport type { FlattenSimpleInterpolation } from 'styled-components';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { matchWindowSize } from './useMatchWindowSize';\n\nexport interface WindowSizeHelper {\n /** Prefer using if or map variants, at it should be more web friendly */\n matchWindowSize: (options: MatchWindowSizeOptions) => boolean;\n\n /**\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.ifWindowSizeMatches(\n * { minWidth: KittBreakpoints.SMALL },\n * 'padding: 5px 0 10px;'\n * )\n * )};\n * `;\n * ```\n */\n ifWindowSizeMatches: <T extends string | FlattenSimpleInterpolation | null>(\n options: MatchWindowSizeOptions,\n valueIfTrue: T,\n valueIfFalse?: T,\n ) => T | undefined;\n\n /**\n *\n * @example\n * ```typescript\n * const Container = styled.View`\n * ${({ theme }) =>\n * theme.responsive.mapWindowWidth(\n * [KittBreakpoints.BASE, 'padding: 5px 0 10px;'],\n * [KittBreakpoints.SMALL, 'padding: 10px 0;'],\n * )\n * )};\n * `;\n * ```\n */\n mapWindowWidth: <V extends string>(...widthList: [number, V][]) => V | null;\n}\n\nexport interface WindowDimensions {\n width?: number;\n height?: number;\n}\n\nexport function createWindowSizeHelper(dimensions: WindowDimensions): WindowSizeHelper {\n return {\n matchWindowSize: (options) => matchWindowSize(dimensions, options),\n\n ifWindowSizeMatches: (options, valueIfTrue, valueIfFalse) =>\n matchWindowSize(dimensions, options) ? valueIfTrue : valueIfFalse,\n\n mapWindowWidth: <V extends string>(...widthList: [number, V][]): V | null => {\n if (__DEV__) {\n widthList.slice(1).forEach(([minWidth], index) => {\n const previousMinWidth = widthList[index][0];\n if (previousMinWidth > minWidth) {\n throw new Error(\n `mapWindowWidth: sort your values to be mobile first. ${minWidth} is < ${previousMinWidth}, so ${minWidth} should be before ${previousMinWidth}.`,\n );\n }\n });\n }\n const found = widthList.find(([minWidth, value]) => matchWindowSize(dimensions, { minWidth: Number(minWidth) }));\n if (!found) return null;\n return found[1];\n },\n };\n}\n","import { useMemo } from 'react';\nimport type { Theme } from './themes/default';\nimport { theme as kittTheme } from './themes/default';\nimport type { WindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { createWindowSizeHelper } from './utils/windowSize/createWindowSizeHelper';\nimport { useWindowSize } from './utils/windowSize/useWindowSize';\n\nexport interface KittTheme {\n kitt: Theme;\n responsive: WindowSizeHelper;\n}\n\nexport function useKittTheme(): KittTheme {\n const dimensions = useWindowSize();\n return useMemo(() => {\n return { kitt: kittTheme, responsive: createWindowSizeHelper(dimensions) };\n }, [dimensions]);\n}\n","import { CheckboxMark } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { GestureResponderEvent, PressableProps } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { Icon } from '../../Icon/Icon';\nimport { useKittTheme } from '../../useKittTheme';\n\ninterface CheckboxContainerProps {\n $isChecked: boolean;\n $hasLabel: boolean;\n}\n\nconst CheckboxAndLabelPressableWrapper = styled.Pressable`\n display: flex;\n flex-direction: row;\n`;\n\nconst CheckboxContainer = styled.View<CheckboxContainerProps>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n height: ${({ theme }) => theme.kitt.forms.checkbox.height}px;\n width: ${({ theme }) => theme.kitt.forms.checkbox.width}px;\n position: relative;\n border-radius: ${({ theme }) => theme.kitt.forms.checkbox.borderRadius}px;\n\n ${({ $isChecked, theme }) => {\n const { checkedBackgroundColor, checkedBorderColor, borderColor, borderWidth, backgroundColor } =\n theme.kitt.forms.checkbox;\n if ($isChecked) {\n return css`\n background-color: ${checkedBackgroundColor};\n border: ${`${borderWidth}px solid ${checkedBorderColor}`};\n `;\n }\n return css`\n background-color: ${backgroundColor};\n border: ${`${borderWidth}px solid ${borderColor}`};\n `;\n }}\n\n margin-right: ${({ theme, $hasLabel }) => {\n if (!$hasLabel) return '0px';\n return `${theme.kitt.spacing * 2.5}px;`;\n }};\n`;\n\nexport interface CheckboxProps {\n onChange: (checked: boolean, e: GestureResponderEvent) => void;\n onBlur?: (e: any) => void;\n onFocus?: (e: any) => void;\n checked: boolean;\n hitSlop?: number;\n id?: PressableProps['testID'];\n children?: ReactNode;\n}\n\nexport function Checkbox({\n onChange,\n onBlur,\n onFocus,\n checked,\n hitSlop = 40,\n id,\n children,\n}: CheckboxProps): ReactElement {\n const theme = useKittTheme();\n\n const handlePress = (e: GestureResponderEvent): void => {\n if (onFocus) onFocus(e);\n if (onChange) onChange(!checked, e);\n if (onBlur) onBlur(e);\n };\n\n return (\n <CheckboxAndLabelPressableWrapper\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked }}\n hitSlop={hitSlop}\n onPress={handlePress}\n >\n <CheckboxContainer $isChecked={checked} $hasLabel={!!children} testID={id}>\n {checked ? (\n <Icon\n align=\"center\"\n color={theme.kitt.forms.checkbox.markColor}\n size={theme.kitt.forms.checkbox.iconSize}\n icon={<CheckboxMark />}\n />\n ) : null}\n </CheckboxContainer>\n\n {children}\n </CheckboxAndLabelPressableWrapper>\n );\n}\n","export type InputFormState = undefined | 'valid' | 'invalid' | 'pending';\n\nexport type InputUIState = NonNullable<InputFormState> | 'default' | 'disabled' | 'hover' | 'focus';\n\ninterface GetInputStateConfig {\n isFocused: boolean;\n isDisabled: boolean;\n formState: InputFormState;\n}\n\nexport function getInputUIState({ isFocused, isDisabled, formState }: GetInputStateConfig): InputUIState {\n if (isDisabled) return 'disabled';\n\n if (isFocused) return 'focus';\n\n if (formState === 'invalid') return 'invalid';\n\n return 'default';\n}\n","import { css } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../typography/Typography';\nimport type { InputUIState } from './utils';\n\nexport interface TextInputMixinProps {\n $state: InputUIState;\n}\n\nexport const styledTextInputMixin = css<TextInputMixinProps>`\n background-color: ${({ theme, $state }) =>\n $state === 'disabled'\n ? theme.kitt.forms.input.states.disabled.backgroundColor\n : theme.kitt.forms.input.states.default.backgroundColor};\n\n border-width: ${({ theme }) => theme.kitt.forms.input.borderWidth}px;\n border-radius: ${({ theme }) => theme.kitt.forms.input.borderRadius}px;\n border-color: ${({ theme, $state }) => theme.kitt.forms.input.states[$state].borderColor};\n\n font-size: ${({ theme }) => {\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].fontSize}px`;\n }};\n\n color: ${({ theme, $state }) => theme.kitt.typography.colors[theme.kitt.forms.input.states[$state].color]};\n font-family: ${({ theme }) => theme.kitt.typography.types.bodies.fontFamily.regular};\n`;\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\n\ntype PartName = 'year' | 'month' | 'day';\n\nconst StyledTypographyText = styled(Typography.Text)`\n text-align: center;\n`;\n\ninterface ViewInputProps extends TextInputMixinProps {\n $partName?: PartName;\n}\n\nconst ViewInput = styled.View<ViewInputProps>`\n ${styledTextInputMixin}\n padding: ${({ theme }) =>\n `${theme.kitt.forms.input.padding.vertical}px ${theme.kitt.forms.input.padding.horizontal}px`};\n\n min-height: ${({ theme }) => theme.kitt.forms.input.minHeight}px;\n min-width: ${({ theme, $partName }) => {\n if (!$partName) {\n return undefined;\n }\n\n return `${theme.kitt.forms.datePicker[$partName].minWidth}px`;\n }};\n`;\n\ninterface DatePickerInputPartProps extends TextInputMixinProps {\n disabled?: boolean;\n partName?: 'year' | 'month' | 'day';\n placeholder?: string;\n value?: ReactNode;\n}\n\nexport function DatePickerInputPart({\n $state,\n placeholder,\n value,\n partName,\n disabled,\n}: DatePickerInputPartProps): ReactElement {\n const hasContent = placeholder || value;\n\n return (\n <ViewInput $state={$state} $partName={partName}>\n {hasContent ? (\n <StyledTypographyText color={!value || disabled ? 'black-light' : undefined}>\n {value || placeholder}\n </StyledTypographyText>\n ) : null}\n </ViewInput>\n );\n}\n","import type { ReactElement } from 'react';\nimport styled, { css } from 'styled-components/native';\nimport { getInputUIState } from '../utils';\nimport { DatePickerInputPart } from './DatePickerInputPart';\nimport type { DatePickerInputsProps } from './types';\n\nfunction prefixWithZero(value: number): string {\n return `${value}`.padStart(2, '0');\n}\n\ninterface PartContainerProps {\n $isLast?: boolean;\n $isStretch?: boolean;\n}\n\nconst PartContainer = styled.View<PartContainerProps>`\n margin-right: ${({ theme, $isLast }) => (!$isLast ? `${theme.kitt.spacing * 2}px` : 0)};\n ${({ $isStretch }) =>\n $isStretch\n ? css`\n flex: 0.33;\n flex-grow: 1;\n `\n : undefined};\n`;\n\ninterface DatePickerPressableProps {\n $isStretch?: boolean;\n}\n\nconst DatePickerPressable = styled.Pressable<DatePickerPressableProps>`\n display: flex;\n flex-direction: row;\n ${({ $isStretch }) => {\n if ($isStretch) {\n return css`\n width: 100%;\n `;\n }\n\n return css`\n align-self: baseline;\n `;\n }};\n`;\n\nexport interface DatePickerPlaceholder {\n day: string;\n month: string;\n year: string;\n}\n\nexport function DatePickerInputs({\n state,\n internalForceState,\n isFocused,\n disabled,\n stretch,\n id,\n testID,\n handleModalOpen,\n currentValue,\n placeholder,\n}: DatePickerInputsProps): ReactElement {\n const currentState =\n internalForceState || getInputUIState({ isFocused, isDisabled: Boolean(disabled), formState: state });\n\n const sharedPartProps = {\n disabled,\n $state: currentState,\n };\n\n return (\n <DatePickerPressable\n $isStretch={stretch}\n nativeID={id}\n disabled={disabled}\n testID={testID}\n onPress={handleModalOpen}\n >\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"day\"\n value={currentValue ? prefixWithZero(currentValue.getDate()) : undefined}\n placeholder={placeholder?.day}\n />\n </PartContainer>\n\n <PartContainer $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"month\"\n value={currentValue ? prefixWithZero(currentValue.getMonth() + 1) : undefined}\n placeholder={placeholder?.month}\n />\n </PartContainer>\n\n <PartContainer $isLast $isStretch={stretch}>\n <DatePickerInputPart\n {...sharedPartProps}\n partName=\"year\"\n value={currentValue ? currentValue.getFullYear() : undefined}\n placeholder={placeholder?.year}\n />\n </PartContainer>\n </DatePickerPressable>\n );\n}\n","import type { ReactElement } from 'react';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\n// This is not yet implemented\n// We still display the inputs for chromatic\nexport function DatePicker({ value, ...props }: DatePickerProps): ReactElement {\n return <DatePickerInputs handleModalOpen={() => {}} currentValue={value} isFocused={false} {...props} />;\n}\n","import { styled } from '@linaria/react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../../utils/withTheme';\nimport type { InputTextContainerProps } from './InputTextContainer';\n\ninterface WebInputTextContainerProps extends InputTextContainerProps {\n theme: DefaultTheme;\n}\n\nexport const InputTextContainer = withTheme(styled.div<WebInputTextContainerProps>`\n display: flex;\n position: relative;\n\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *::-ms-clear,\n & > *::-ms-reveal {\n display: none;\n }\n\n &,\n & > * {\n cursor: ${({ $isDisabled }) => ($isDisabled ? 'not-allowed' : 'inherit')};\n }\n\n & > * {\n transition: ${({ theme }) => {\n const { property, duration, timingFunction } = theme.kitt.forms.input.transition;\n return `${property} ${duration} ${timingFunction}`;\n }};\n }\n\n &:hover > *,\n .kitt-hover & > * {\n border-color: ${({ theme, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.forms.input.states.disabled.borderColor;\n return theme.kitt.forms.input.states.hover.borderColor;\n }};\n }\n\n &:focus > *,\n & > *:focus,\n .kitt-focus & > * {\n border-color: ${({ theme, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.forms.input.states.disabled.borderColor;\n return theme.kitt.forms.input.states.focus.borderColor;\n }};\n }\n`);\n","import type { ReactElement, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\nimport type { TextInput as RNTextInput, TextInputProps as RNTextInputProps } from 'react-native';\nimport { Platform, TextInput } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { getTypographyTypeConfigKey } from '../../typography/Typography';\nimport type { TextInputMixinProps } from '../styledTextInputMixin';\nimport { styledTextInputMixin } from '../styledTextInputMixin';\nimport type { InputFormState, InputUIState } from '../utils';\nimport { getInputUIState } from '../utils';\nimport { InputTextContainer } from './InputTextContainer';\n\nexport interface InputTextProps extends Exclude<RNTextInputProps, 'nativeID'> {\n id?: string;\n name?: string;\n disabled?: boolean;\n minHeight?: number;\n state?: InputFormState;\n right?: ReactNode;\n /** @internal */\n internalForceState?: InputUIState;\n}\n\ninterface StyledTextInputProps extends TextInputMixinProps {\n $minHeight?: number;\n}\n\nconst StyledTextInput = styled(TextInput)<StyledTextInputProps>`\n ${styledTextInputMixin}\n\n padding: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS !== 'web') return `0 ${theme.kitt.forms.input.padding.horizontal}px`;\n\n return `${theme.kitt.forms.input.padding.vertical}px ${theme.kitt.forms.input.padding.horizontal}px`;\n }};\n\n line-height: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS !== 'web') return 0;\n\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].lineHeight}px`;\n }};\n\n width: 100%;\n min-height: ${({ theme, $minHeight = theme.kitt.forms.input.minHeight }) => $minHeight}px;\n`;\n\nconst RightInputContainer = styled.View`\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n justify-content: center;\n padding: 10px;\n`;\n\nexport const InputText = forwardRef<RNTextInput, InputTextProps>(\n (\n {\n id,\n right,\n minHeight,\n state: formState,\n internalForceState,\n disabled = false,\n autoCorrect = true,\n textContentType = 'none',\n autoCompleteType = 'off',\n keyboardType = 'default',\n multiline,\n onSubmitEditing,\n onFocus,\n onBlur,\n ...props\n }: InputTextProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const [isFocused, setIsFocused] = useState<boolean>(false);\n\n const state = internalForceState || getInputUIState({ isFocused, isDisabled: disabled, formState });\n\n return (\n <InputTextContainer $isDisabled={disabled}>\n <StyledTextInput\n ref={ref}\n multiline={multiline}\n nativeID={id}\n editable={!disabled}\n keyboardType={keyboardType}\n autoCompleteType={autoCompleteType}\n autoCorrect={autoCorrect}\n $minHeight={minHeight}\n textContentType={textContentType}\n placeholderTextColor={theme.kitt.forms.input.color.placeholder}\n selectionColor={theme.kitt.forms.input.color.selection}\n {...props}\n $state={state}\n onFocus={(e) => {\n setIsFocused(true);\n if (onFocus) onFocus(e);\n }}\n onBlur={(e) => {\n setIsFocused(false);\n if (onBlur) onBlur(e);\n }}\n onSubmitEditing={multiline ? () => null : onSubmitEditing}\n />\n {right ? <RightInputContainer>{right}</RightInputContainer> : null}\n </InputTextContainer>\n );\n },\n);\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputEmailProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType' | 'autoCapitalize'> {}\n\nexport function InputEmail(props: InputEmailProps): ReactElement {\n return (\n <InputText\n autoCompleteType=\"email\"\n keyboardType=\"email-address\"\n textContentType=\"emailAddress\"\n autoCapitalize=\"none\"\n {...props}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { TypographyColor, TypographyProps } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport type { InputFormState } from '../utils';\n\nexport interface InputFeedbackProps {\n state?: InputFormState;\n testID?: TypographyProps['testID'];\n children: NonNullable<ReactNode>;\n}\n\nconst getColorFromState = (state?: InputFormState): TypographyColor => {\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n default:\n return 'black-light';\n }\n};\n\nexport function InputFeedback({ state, testID, children }: InputFeedbackProps): ReactElement {\n return (\n <Typography.Text base=\"body-small\" color={getColorFromState(state)} testID={testID}>\n {children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../../KittBreakpoints';\n\nconst FieldContainer = styled.View`\n padding: 5px 0 10px;\n`;\n\nconst FeedbackContainer = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches({ minWidth: KittBreakpoints.SMALL }, 'padding-top: 10px', 'padding-top: 5px')};\n`;\n\nconst FieldLabelContainer = styled.View`\n flex-direction: row;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.kitt.forms.inputField.labelContainerPaddingBottom}px;\n`;\n\nconst LabelContainer = styled.View`\n margin-right: ${({ theme }) => theme.kitt.forms.inputField.iconMarginLeft}px;\n`;\n\nexport interface InputFieldProps {\n label?: ReactNode;\n labelFeedback?: ReactNode;\n input: NonNullable<ReactNode>;\n feedback?: ReactNode;\n}\n\nexport function InputField({ label, labelFeedback, input, feedback }: InputFieldProps): ReactElement {\n return (\n <FieldContainer>\n {label ? (\n <FieldLabelContainer>\n <LabelContainer>{label}</LabelContainer>\n {labelFeedback}\n </FieldLabelContainer>\n ) : null}\n {input}\n {feedback ? <FeedbackContainer>{feedback}</FeedbackContainer> : null}\n </FieldContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputFormState } from 'forms/utils';\nimport type { TypographyIconProps } from '../../typography/TypographyIcon';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\n\nfunction getIconColor(state?: InputFormState, disabled?: boolean): TypographyIconProps['color'] {\n if (disabled) return 'black-light';\n\n switch (state) {\n case 'invalid':\n return 'danger';\n case 'valid':\n return 'success';\n default:\n return undefined;\n }\n}\n\nexport interface InputIconProps {\n icon: NonNullable<ReactElement>;\n disabled?: boolean;\n state?: InputFormState;\n}\n\nexport function InputIcon({ icon, state, disabled }: InputIconProps): ReactElement {\n const theme = useTheme();\n\n const color = getIconColor(state, disabled);\n\n return <TypographyIcon color={color} icon={icon} size={theme.kitt.forms.input.icon.size} />;\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable } from 'react-native';\n\nexport interface InputPressableProps extends PressableProps {}\n\nexport function InputPressable({ ...props }: InputPressableProps): ReactElement {\n return <Pressable {...props} />;\n}\n","import { EyeIcon, EyeOffIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { InputIcon } from '../InputIcon/InputIcon';\nimport { InputPressable } from '../InputPressable/InputPressable';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPasswordProps extends InputTextProps {\n isPasswordDefaultVisible?: boolean;\n}\n\nexport function InputPassword({ isPasswordDefaultVisible, right, ...props }: InputPasswordProps): ReactElement {\n const [isVisible, setIsVisible] = useState(Boolean(isPasswordDefaultVisible));\n\n return (\n <InputText\n {...props}\n textContentType=\"password\"\n autoCompleteType=\"password\"\n autoCorrect={false}\n secureTextEntry={!isVisible}\n right={\n right || (\n <InputPressable hitSlop={20} accessibilityRole=\"button\" onPress={() => setIsVisible((prev) => !prev)}>\n <InputIcon icon={isVisible ? <EyeOffIcon /> : <EyeIcon />} />\n </InputPressable>\n )\n }\n />\n );\n}\n","import type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface InputPhoneProps\n extends Except<InputTextProps, 'autoCompleteType' | 'keyboardType' | 'textContentType'> {}\n\nexport function InputPhone(props: InputPhoneProps): ReactElement {\n return <InputText {...props} autoCompleteType=\"tel\" keyboardType=\"number-pad\" textContentType=\"telephoneNumber\" />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../../typography/Typography';\nimport { Typography } from '../../typography/Typography';\nimport { TypographyIcon } from '../../typography/TypographyIcon';\nimport { useKittTheme } from '../../useKittTheme';\n\ntype InputTagType = 'success' | 'danger';\n\nconst getTypographyColor = (type: InputTagType | undefined): TypographyColor => (type ? 'white' : 'black');\n\ninterface InputTagContainerProps {\n type?: InputTagType;\n}\n\nconst InputTagContainer = styled(View)<InputTagContainerProps>`\n align-items: center;\n justify-content: center;\n flex-direction: row;\n align-self: flex-start;\n overflow: hidden;\n padding-horizontal: ${({ theme }) => theme.kitt.spacing * 2}px;\n\n background-color: ${({ theme, type }) => {\n if (type === 'success') {\n return theme.kitt.forms.inputTag.success.backgroundColor;\n }\n if (type === 'danger') {\n return theme.kitt.forms.inputTag.danger.backgroundColor;\n }\n\n return theme.kitt.forms.inputTag.default.backgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.forms.inputTag.borderRadius}px;\n`;\n\nconst IconContainer = styled(View)`\n margin-right: ${({ theme }) => theme.kitt.spacing}px;\n`;\n\nexport interface InputTagProps {\n type?: InputTagType;\n children: ReactNode;\n icon?: ReactElement;\n}\n\nexport function InputTag({ children, type, icon }: InputTagProps): ReactElement {\n const typographyColor = getTypographyColor(type);\n const theme = useKittTheme();\n\n return (\n <InputTagContainer type={type}>\n {icon && (\n <IconContainer>\n <TypographyIcon icon={icon} size={theme.kitt.forms.inputTag.iconSize} color={typographyColor} />\n </IconContainer>\n )}\n <Typography.Text base=\"body-small\" color={typographyColor}>\n {children}\n </Typography.Text>\n </InputTagContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface LabelProps {\n htmlFor: string;\n children: NonNullable<ReactNode>;\n}\n\nexport function Label({ htmlFor, children }: LabelProps): ReactElement {\n return (\n <Typography.Text base=\"body\">\n {Platform.OS === 'web' ? <label htmlFor={htmlFor}>{children}</label> : children}\n </Typography.Text>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { PressableProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Typography } from '../../typography/Typography';\n\nexport interface RadioProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n right?: boolean;\n children?: NonNullable<ReactNode>;\n value: string;\n onChange: (newValue: string) => void;\n}\n\ninterface OuterRadioProps {\n disabled: boolean;\n}\n\nconst OuterRadio = styled.View<OuterRadioProps>`\n background-color: ${({ theme, disabled }) =>\n theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n border-width: ${({ theme }) => theme.kitt.forms.radio.unchecked.borderWidth}px;\n border-color: ${({ theme, disabled }) => theme.kitt.forms.radio[disabled ? 'disabled' : 'unchecked'].borderColor};\n`;\nconst SelectedOuterRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.backgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.size}px;\n height: ${({ theme }) => theme.kitt.forms.radio.size}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.size / 2}px;\n justify-content: center;\n align-items: center;\n`;\nconst SelectedInnerRadio = styled.View`\n background-color: ${({ theme }) => theme.kitt.forms.radio.checked.innerBackgroundColor};\n width: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n height: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize}px;\n border-radius: ${({ theme }) => theme.kitt.forms.radio.checked.innerSize / 2}px;\n`;\nconst Container = styled.Pressable`\n flex-direction: row;\n align-items: center;\n`;\n\nconst Text = styled(Typography.Text)`\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nexport function Radio({ id, checked, onChange, value, disabled = false, children }: RadioProps): ReactElement {\n const handlePress: PressableProps['onPress'] = () => {\n onChange(value);\n };\n\n return (\n <Container\n nativeID={id}\n disabled={disabled}\n accessibilityRole=\"radio\"\n aria-checked={checked}\n focusable={checked && !disabled}\n onPress={handlePress}\n >\n {checked && !disabled ? (\n <SelectedOuterRadio>\n <SelectedInnerRadio />\n </SelectedOuterRadio>\n ) : (\n <OuterRadio disabled={disabled} />\n )}\n\n <Text base=\"body\" color={disabled ? 'black-light' : 'black'}>\n {children}\n </Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { InputTextProps } from '../InputText/InputText';\nimport { InputText } from '../InputText/InputText';\n\nexport interface TextAreaProps extends InputTextProps {}\n\nexport function TextArea({ ...props }: TextAreaProps): ReactElement {\n const theme = useTheme();\n\n return <InputText multiline textAlignVertical=\"top\" minHeight={theme.kitt.forms.textArea.minHeight} {...props} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\nconst Body = styled.View`\n ${({ theme }) =>\n theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding-right: ${theme.kitt.spacing * 12}px;\n padding-left: ${theme.kitt.spacing * 12}px;`,\n `padding-right: ${theme.kitt.spacing * 6}px;\n padding-left: ${theme.kitt.spacing * 6}px;`,\n )}\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n flex: 1;\n`;\n\ninterface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function FullScreenModalBody({ children }: BodyProps): ReactElement {\n return <Body>{children}</Body>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { KittBreakpoints } from '../KittBreakpoints';\n\ninterface SideContainerProps {\n side?: 'left' | 'right';\n}\n\nconst SideContainer = styled.View<SideContainerProps>`\n ${({ theme, side = 'left' }) => {\n const padding = theme.kitt.spacing * 2;\n\n if (side === 'left') {\n return `padding-right: ${padding}px;`;\n }\n\n return `padding-left: ${padding}px;`;\n }}\n`;\n\nfunction getHeaderHorizontalMediumPadding(spacing: number): number {\n return spacing * 6;\n}\n\ninterface HeaderProps {\n insetTop?: number;\n}\n\nconst Header = styled.View<HeaderProps>`\n ${({ theme, insetTop = 0 }) => {\n const paddingTop = insetTop + theme.kitt.fullScreenModal.header.paddingVertical;\n const { paddingVertical, paddingHorizontal } = theme.kitt.fullScreenModal.header;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `padding: ${paddingTop}px ${getHeaderHorizontalMediumPadding(theme.kitt.spacing)}px ${paddingVertical}px;`,\n `padding: ${paddingTop}px ${paddingHorizontal}px ${paddingVertical}px;`,\n );\n }};\n border-bottom-color: ${({ theme }) => theme.kitt.fullScreenModal.header.borderColor};\n border-bottom-width: 1px;\n flex-direction: row;\n align-items: center;\n`;\n\ninterface HeaderContentProps {\n windowWidth: number;\n leftWidth: number;\n rightWidth: number;\n}\n\nconst HeaderContent = styled.View<HeaderContentProps>`\n ${({ theme, leftWidth, rightWidth, windowWidth }) => {\n /*\n * Since we don't have controll over the rendered left and right elements,\n * we must apply some logic to give the title all the available space\n */\n const sideElementMaxWidth = Math.max(leftWidth, rightWidth);\n\n const parentHorizontalPadding = theme.kitt.fullScreenModal.header.paddingHorizontal * 2;\n const parentHorizontalPaddingMedium = getHeaderHorizontalMediumPadding(theme.kitt.spacing) * 2;\n\n const computeWidth = (breakpointPadding: number): number =>\n windowWidth - breakpointPadding - sideElementMaxWidth * 2;\n\n return theme.responsive.ifWindowSizeMatches(\n { minWidth: KittBreakpoints.MEDIUM },\n `width: ${computeWidth(parentHorizontalPaddingMedium)}px;`,\n `width: ${computeWidth(parentHorizontalPadding)}px;`,\n );\n }};\n ${({ leftWidth, rightWidth }) => {\n // Depending of the wider element, we must add a margin to fill the diff in space between elements\n const deltaMargin = Math.abs(leftWidth - rightWidth);\n\n if (leftWidth > rightWidth) {\n return `margin-right: ${deltaMargin}px;`;\n }\n\n return `margin-left: ${deltaMargin}px;`;\n }};\n justify-content: center;\n align-items: center;\n`;\n\nexport interface FullScreenModalHeaderProps {\n children: NonNullable<ReactNode>;\n right?: ReactNode;\n left?: ReactNode;\n}\n\nexport function FullScreenModalHeader({ children, right, left }: FullScreenModalHeaderProps): ReactElement {\n const { top } = useSafeAreaInsets();\n const dimensions = useWindowDimensions();\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(0);\n\n const handleLayoutChange = (event: LayoutChangeEvent, side: 'left' | 'right'): void => {\n // Prevents react to nullify event on rerenders\n event.persist();\n\n if (side === 'left') {\n setLeftWidth(event.nativeEvent.layout.width);\n return;\n }\n\n setRightWidth(event.nativeEvent.layout.width);\n };\n\n return (\n <Header insetTop={Platform.OS === 'ios' ? undefined : top}>\n {left ? <SideContainer onLayout={(e) => handleLayoutChange(e, 'left')}>{left}</SideContainer> : null}\n\n <HeaderContent windowWidth={dimensions.width} leftWidth={leftWidth} rightWidth={rightWidth}>\n {children}\n </HeaderContent>\n\n {right ? (\n <SideContainer side=\"right\" onLayout={(e) => handleLayoutChange(e, 'right')}>\n {right}\n </SideContainer>\n ) : null}\n </Header>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { FullScreenModalBody } from './Body';\nimport { FullScreenModalHeader } from './Header';\n\nconst Container = styled.View`\n flex: 1;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackground};\n`;\n\nexport interface FullScreenModalProps {\n children: ReactNode;\n}\n\nexport function FullScreenModal({ children }: FullScreenModalProps): ReactElement {\n return <Container>{children}</Container>;\n}\n\nFullScreenModal.Header = FullScreenModalHeader;\nFullScreenModal.Body = FullScreenModalBody;\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport { cloneElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\nimport type { SpinningIconProps } from './SpinningIcon';\n\ninterface StyledSpinningIconContainerProps {\n theme: DefaultTheme;\n}\n\nconst StyledSpinningIconContainer = withTheme(styled.div<StyledSpinningIconContainerProps>`\n & {\n display: inline-flex;\n }\n\n & > svg {\n animation: spin 1.1s infinite linear;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(-1deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n }\n`);\n\nexport function SpinningIcon({ icon, color }: SpinningIconProps): ReactElement {\n const clonedIcon = cloneElement(icon, { color });\n return <StyledSpinningIconContainer>{clonedIcon}</StyledSpinningIconContainer>;\n}\n","import type { ComponentProps, ElementType, ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\n\nexport interface StyleWebWrapperProps<T extends ElementType> {\n as: T;\n children: ReactNode;\n}\n\nexport function StyleWebWrapper<T extends ElementType = 'div'>({\n as,\n children,\n ...props\n}: StyleWebWrapperProps<T> & ComponentProps<T>): ReactElement {\n if (Platform.OS !== 'web') return children as ReactElement;\n const Component: T = as || ('div' as T); // as or default to div. If as is undefined, T is div but typescript is not sure\n return <Component {...(props as any)}>{children}</Component>;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport { theme as kittTheme } from '../themes/default';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { IconButtonContentProps } from './IconButton';\n\ninterface PressableIconButtonWebWrapperProps {\n theme: DefaultTheme;\n $isWhite?: boolean;\n $isDisabled?: boolean;\n}\n\nconst PressableIconButtonWebWrapper = withTheme(styledLinaria.div<PressableIconButtonWebWrapperProps>`\n & > *:hover,\n .kitt-hover & > * {\n @media (hover: none) and (pointer: coarse) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.hover)});\n }\n\n @media (${kittTheme.breakpoints.min.mediumBreakpoint}) {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.medium.hover)});\n }\n }\n\n & > *:active,\n .kitt-active & > * {\n transform: scale(${({ theme, $isDisabled }) => ($isDisabled ? 1 : theme.kitt.iconButton.scale.base.active)});\n }\n\n &,\n & > [data-focusvisible-polyfill] {\n outline: none;\n }\n\n & > *:hover,\n .kitt-hover & > *,\n & > *:focus,\n .kitt-focus & > *,\n & > [data-focusvisible-polyfill],\n & > *:active,\n .kitt-active & > * {\n background-color: ${({ theme, $isWhite, $isDisabled }) => {\n if ($isDisabled) return theme.kitt.iconButton.disabled.backgroundColor;\n\n const { white, default: defaultIconButton } = theme.kitt.iconButton;\n\n if ($isWhite) return white.pressedBackgroundColor;\n return defaultIconButton.pressedBackgroundColor;\n }};\n }\n`);\n\nconst StyledPressableIconButton = styled.Pressable`\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n align-items: center;\n justify-content: center;\n position: relative;\n background-color: transparent;\n\n ${({ theme, disabled }) => {\n const { iconButton } = theme.kitt;\n\n if (Platform.OS !== 'web') {\n return undefined;\n }\n\n const { transition } = iconButton;\n\n if (disabled) {\n return `\n background-color: ${iconButton.disabled.backgroundColor};\n `;\n }\n\n return `\n transition: ${transition.property} ${transition.duration} ${transition.timingFunction};\n `;\n }};\n`;\n\nexport interface PressableIconButtonProps extends PressableProps {\n color: IconButtonContentProps['color'];\n}\n\nexport function PressableIconButton({ color, disabled, ...props }: PressableIconButtonProps): ReactElement {\n return (\n <StyleWebWrapper as={PressableIconButtonWebWrapper} $isWhite={color === 'white'} $isDisabled={Boolean(disabled)}>\n <StyledPressableIconButton {...props} disabled={disabled} />\n </StyleWebWrapper>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableAnimatedContainerProps } from './PressableAnimatedContainer';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport function PressableAnimatedContainer({\n children,\n color,\n disabled,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n return (\n <PressableIconButton accessibilityRole=\"button\" color={color} disabled={disabled} onPress={onPress}>\n {children}\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { AccessibilityRole } from 'react-native';\nimport styled from 'styled-components/native';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport { PressableAnimatedContainer } from './PressableAnimatedContainer';\n\ninterface IconButtonContentBorderProps {\n disabled?: boolean;\n}\n\nconst IconButtonContentBorder = styled.View<IconButtonContentBorderProps>`\n border: ${({ theme }) => `${theme.kitt.iconButton.borderWidth}px solid`};\n border-color: ${({ theme, disabled }) =>\n disabled ? theme.kitt.iconButton.disabled.borderColor : theme.kitt.iconButton.borderColor};\n width: ${({ theme }) => theme.kitt.iconButton.width - theme.kitt.iconButton.borderWidth}px;\n height: ${({ theme }) => theme.kitt.iconButton.height - theme.kitt.iconButton.borderWidth}px;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n`;\nexport interface IconButtonContentProps {\n icon: NonNullable<ReactElement>;\n color?: 'black' | 'white';\n disabled?: boolean;\n testID?: string;\n accessibilityLabel?: string;\n accessibilityRole?: AccessibilityRole;\n}\n\nfunction IconButtonContent({ disabled, color, icon }: IconButtonContentProps): ReactElement {\n return (\n <IconButtonContentBorder disabled={disabled}>\n <TypographyIcon color={disabled ? 'black-light' : color} icon={icon} />\n </IconButtonContentBorder>\n );\n}\n\nexport interface IconButtonProps extends IconButtonContentProps {\n onPress: () => void;\n}\n\nexport function IconButton({\n icon,\n color,\n disabled,\n testID,\n accessibilityLabel,\n accessibilityRole,\n onPress,\n}: IconButtonProps): ReactElement {\n return (\n <PressableAnimatedContainer\n color={color}\n disabled={disabled}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n onPress={onPress}\n >\n <IconButtonContent disabled={disabled} color={color} icon={icon} />\n </PressableAnimatedContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n}\n\nconst ContentView = styled.View`\n flex: 1 0 0%;\n align-self: center;\n`;\n\nexport function ListItemContent({ children, ...rest }: ListItemContentProps): ReactElement {\n return <ContentView {...rest}>{children}</ContentView>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps, ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\nexport interface ListItemSideContainerProps extends ViewProps {\n children: NonNullable<ReactNode>;\n side?: 'left' | 'right';\n}\n\nconst SideContainerView = styled.View<ListItemSideContainerProps>`\n flex-direction: row;\n margin-left: ${({ theme, side }) => (side === 'right' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n margin-right: ${({ theme, side }) => (side === 'left' ? `${theme.kitt.listItem.innerMargin}px` : 0)};\n`;\n\n// Handles the vertical alignment of the side elements of the list item\nexport function ListItemSideContainer({ children, side = 'left', ...rest }: ListItemSideContainerProps): ReactElement {\n return (\n <SideContainerView side={side} {...rest}>\n {children}\n </SideContainerView>\n );\n}\n\nexport interface ListItemSideContentProps extends ViewProps {\n children: NonNullable<ReactNode>;\n align?: ViewStyle['alignSelf'];\n}\n\nconst SideContentView = styled.View<ListItemSideContentProps>`\n align-self: ${({ align }) => align};\n`;\n\nexport function ListItemSideContent({ children, align = 'auto', ...rest }: ListItemSideContentProps): ReactElement {\n return (\n <SideContentView align={align} {...rest}>\n {children}\n </SideContentView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Fragment } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport { Pressable } from 'react-native';\nimport styled, { css } from 'styled-components/native';\nimport { ListItemContent } from './ListItemContent';\nimport { ListItemSideContainer, ListItemSideContent } from './ListItemSideContent';\n\ntype Borders = 'top' | 'bottom' | 'both';\n\nexport interface ListItemProps extends ViewProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n borders?: Borders;\n withPadding?: boolean;\n onPress?: PressableProps['onPress'];\n}\n\ninterface ContainerViewProps extends Pick<ListItemProps, 'borders' | 'withPadding'> {}\n\nconst ContainerView = styled.View<ContainerViewProps>`\n flex-direction: row;\n padding: ${({ withPadding, theme }) => (withPadding ? theme.kitt.listItem.padding : 0)};\n ${({ theme, borders }) => {\n const { borderWidth } = theme.kitt.listItem;\n\n if (borders === 'top') {\n return `border-top-width: ${borderWidth}px`;\n }\n\n if (borders === 'bottom') {\n return `border-bottom-width: ${borderWidth}px`;\n }\n\n if (borders === 'both') {\n return css`\n border-top-width: ${borderWidth}px;\n border-bottom-width: ${borderWidth}px;\n `;\n }\n\n return 'border: none';\n }};\n border-color: ${({ theme }) => theme.kitt.listItem.borderColor};\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function ListItem({\n children,\n withPadding,\n borders,\n left,\n right,\n onPress,\n ...rest\n}: ListItemProps): ReactElement {\n const Wrapper = onPress ? Pressable : Fragment;\n const wrapperProps = onPress ? { accessibilityRole: 'button', onPress, ...rest } : undefined;\n const containerProps = onPress ? undefined : rest;\n\n return (\n <Wrapper {...(wrapperProps as any)}>\n <ContainerView withPadding={withPadding} borders={borders} {...containerProps}>\n {left ? <ListItemSideContainer side=\"left\">{left}</ListItemSideContainer> : null}\n\n <ListItemContent>{children}</ListItemContent>\n\n {right ? <ListItemSideContainer side=\"right\">{right}</ListItemSideContainer> : null}\n </ContainerView>\n </Wrapper>\n );\n}\n\nListItem.Content = ListItemContent;\nListItem.SideContent = ListItemSideContent;\nListItem.SideContainer = ListItemSideContainer;\n","import { ArcIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { SpinningIconProps } from '../Icon/SpinningIcon';\nimport { SpinningIcon } from '../Icon/SpinningIcon';\n\nexport interface LoaderIconProps {\n color?: SpinningIconProps['color'];\n}\n\nexport function LoaderIcon({ color }: LoaderIconProps): ReactElement {\n return <SpinningIcon color={color} icon={<ArcIcon />} />;\n}\n","import { AlertCircleIcon, AlertTriangleIcon, CheckIcon, InfoIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement } from 'react';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\ninterface IconContentProps {\n type: MessageType;\n color: TypographyColor;\n}\n\nexport function IconContent({ type, color }: IconContentProps): ReactElement {\n switch (type) {\n case 'warning':\n return <AlertCircleIcon color={color} />;\n case 'success':\n return <CheckIcon color={color} />;\n case 'danger':\n return <AlertTriangleIcon color={color} />;\n default:\n return <InfoIcon color={color} />;\n }\n}\n","import type { IconButtonProps } from '../IconButton/IconButton';\nimport type { TypographyColor } from '../typography/Typography';\nimport type { MessageType } from './BaseMessage';\n\nexport const getColorByType = (type: MessageType): TypographyColor => {\n switch (type) {\n case 'success':\n return 'white';\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n\nexport const getIconButtonColor = (messageType: MessageType): IconButtonProps['color'] => {\n switch (messageType) {\n case 'success':\n case 'danger':\n return 'white';\n case 'warning':\n default:\n return 'black';\n }\n};\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { EdgeInsets } from 'react-native-safe-area-context';\nimport styled from 'styled-components/native';\nimport { Icon } from '../Icon/Icon';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Typography } from '../typography/Typography';\nimport { IconContent } from './IconContent';\nimport { getColorByType, getIconButtonColor } from './helper';\n\nexport type MessageType = 'success' | 'warning' | 'danger' | 'info';\n\ninterface StyledMessageContainerProps {\n $type: MessageType;\n $hasNoRadius?: boolean;\n $insets?: EdgeInsets;\n}\n\nconst StyledMessageContainer = styled.View<StyledMessageContainerProps>`\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n min-height: 60px;\n padding-top: ${({ $insets }) => $insets?.top ?? 0}px;\n border-radius: ${({ theme, $hasNoRadius }) => ($hasNoRadius ? 0 : theme.kitt.spacing * 5)}px;\n background-color: ${({ theme, $type }) => theme.kitt.feedbackMessage[$type].backgroundColor};\n`;\n\nconst StyledDismissWrapper = styled.View`\n align-items: center;\n align-items: flex-start;\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 2.5}px ${spacing * 2}px 0 ${spacing * 5}px`;\n }};\n`;\n\nconst StyledIconContainer = styled.View`\n margin: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing}px ${spacing * 5}px 0 0`;\n }};\n`;\n\ninterface StyledTextContentProps {\n $isCenteredText?: boolean;\n}\n\nconst StyledTextContent = styled(Typography.Text)<StyledTextContentProps>`\n flex: 1;\n text-align: ${({ $isCenteredText }) => ($isCenteredText ? 'center' : 'left')};\n`;\n\nconst StyledMessageContent = styled.View`\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n align-self: center;\n align-items: flex-start;\n flex-shrink: 1;\n padding: ${({ theme }) => {\n const { spacing } = theme.kitt;\n return `${spacing * 4}px ${spacing * 5}px`;\n }};\n`;\n\nexport interface BaseMessageProps {\n type?: MessageType;\n children: NonNullable<ReactNode>;\n /**\n * @internal for styling between Message and Notification\n */\n hasNoRadius?: boolean;\n centeredText?: boolean;\n insets?: EdgeInsets;\n onDismiss?: () => void;\n}\n\nexport function BaseMessage({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: BaseMessageProps): ReactElement {\n const color = getColorByType(type);\n\n return (\n <StyledMessageContainer $type={type} $hasNoRadius={hasNoRadius} $insets={insets}>\n <StyledMessageContent>\n {centeredText ? null : (\n <StyledIconContainer>\n <Icon color={color} icon={<IconContent type={type} color={color} />} />\n </StyledIconContainer>\n )}\n <StyledTextContent $isCenteredText={centeredText} base=\"body\" color={color}>\n {children}\n </StyledTextContent>\n </StyledMessageContent>\n\n {onDismiss ? (\n <StyledDismissWrapper>\n <IconButton color={getIconButtonColor(type)} icon={<XIcon />} onPress={onDismiss} />\n </StyledDismissWrapper>\n ) : null}\n </StyledMessageContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\n\nexport interface MessageProps extends BaseMessageProps {}\n\nexport function Message({\n type = 'info',\n children,\n hasNoRadius,\n centeredText,\n insets,\n onDismiss,\n}: MessageProps): ReactElement {\n return (\n <BaseMessage\n insets={insets}\n hasNoRadius={hasNoRadius}\n type={type}\n centeredText={centeredText}\n onDismiss={onDismiss}\n >\n {children}\n </BaseMessage>\n );\n}\n","import type { ReactElement } from 'react';\nimport type { PressableProps } from 'react-native';\nimport { Pressable, StyleSheet } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface OverlayProps extends Pick<PressableProps, 'onPress'> {}\n\n// Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates\nconst OverlayPressable = styled(Pressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return <OverlayPressable accessibilityRole=\"none\" onPress={onPress} />;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { ScrollView } from 'react-native';\nimport styled from 'styled-components/native';\n\nconst BodyView = styled.View`\n padding: ${({ theme }) => theme.kitt.spacing * 6}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nexport interface BodyProps {\n children: NonNullable<ReactNode>;\n}\n\nexport function ModalBody({ children }: BodyProps): ReactElement {\n return (\n <ScrollView>\n <BodyView>{children}</BodyView>\n </ScrollView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface FooterProps {\n children: NonNullable<ReactNode>;\n}\n\nconst FooterView = styled.View`\n flex: 0 0 auto;\n padding: ${({ theme }) => theme.kitt.spacing * 4}px;\n border-top-width: 1px;\n border-top-color: ${({ theme }) => theme.kitt.colors.separator};\n`;\n\nexport function ModalFooter({ children }: FooterProps): ReactElement {\n return <FooterView>{children}</FooterView>;\n}\n","import { createContext } from 'react';\n\nexport const OnCloseContext = createContext<() => void>(() => {});\n","import { XIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useContext } from 'react';\nimport styled from 'styled-components/native';\nimport { IconButton } from '../IconButton/IconButton';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface HeaderProps {\n children: NonNullable<ReactNode>;\n left?: ReactNode;\n right?: ReactNode;\n}\n\nconst HeaderView = styled.View`\n position: relative;\n padding: ${({ theme }) => theme.kitt.spacing * 2}px;\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-bottom-width: 1px;\n border-bottom-color: ${({ theme }) => theme.kitt.colors.separator};\n min-height: 57px;\n`;\n\nconst LeftIconView = styled.View`\n align-self: flex-start;\n margin-right: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst RightIconView = styled.View`\n align-self: flex-start;\n margin-left: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\ninterface TitleViewProps {\n isIconLeft?: boolean;\n}\n\nconst TitleView = styled.View<TitleViewProps>`\n padding-left: ${({ theme, isIconLeft }) => (isIconLeft ? 0 : theme.kitt.spacing * 2)}px;\n flex-shrink: 1;\n`;\n\nexport function ModalHeader({ left, right, children }: HeaderProps): ReactElement {\n const onClose = useContext(OnCloseContext);\n\n const isIconLeft = !!left;\n\n return (\n <HeaderView>\n {isIconLeft && <LeftIconView>{left}</LeftIconView>}\n\n <TitleView isIconLeft={isIconLeft}>{children}</TitleView>\n\n {right !== undefined ? (\n right\n ) : (\n <RightIconView>\n <IconButton icon={<XIcon />} onPress={onClose} />\n </RightIconView>\n )}\n </HeaderView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Modal as NativeModal } from 'react-native';\nimport styled from 'styled-components/native';\nimport { Overlay } from '../Overlay/Overlay';\nimport { ModalBody } from './Body';\nimport { ModalFooter } from './Footer';\nimport { ModalHeader } from './Header';\nimport { OnCloseContext } from './OnCloseContext';\n\nexport interface ModalProps {\n visible: boolean;\n children: ReactNode;\n onClose: () => void;\n onEntered?: () => void;\n onExited?: () => void;\n}\n\nconst ModalView = styled.View`\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.kitt.spacing * 20}px ${({ theme }) => theme.kitt.spacing * 4}px;\n`;\n\nconst ContentView = styled.View`\n position: relative;\n display: flex;\n flex-direction: column;\n max-height: 100%;\n max-width: 540px;\n height: auto;\n width: 100%;\n border-radius: ${({ theme }) => theme.kitt.card.borderRadius}px;\n background-color: ${({ theme }) => theme.kitt.colors.uiBackgroundLight};\n`;\n\nexport function Modal({ visible, children, onClose, onEntered, onExited }: ModalProps): ReactElement {\n return (\n <OnCloseContext.Provider value={onClose}>\n <NativeModal\n transparent\n animationType=\"fade\"\n visible={visible}\n onShow={onEntered}\n onDismiss={onExited}\n onRequestClose={onClose}\n >\n <ModalView>\n <Overlay onPress={onClose} />\n\n <ContentView>{children}</ContentView>\n </ModalView>\n </NativeModal>\n </OnCloseContext.Provider>\n );\n}\n\nModal.Header = ModalHeader;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import type { ReactElement } from 'react';\nimport { BaseMessage } from '../BaseMessage/BaseMessage';\nimport type { BaseMessageProps } from '../BaseMessage/BaseMessage';\n\nexport interface NotificationProps extends BaseMessageProps {\n /**\n * @deprecated use onDismiss instead\n */\n onDelete?: BaseMessageProps['onDismiss'];\n}\n\nexport function Notification({\n type,\n children,\n centeredText,\n insets,\n onDelete,\n onDismiss,\n}: NotificationProps): ReactElement {\n if (__DEV__) {\n if (onDelete) {\n throw new Error('onDelete is deprecated us onDismiss instead');\n }\n }\n\n return (\n <BaseMessage hasNoRadius type={type} centeredText={centeredText} insets={insets} onDismiss={onDismiss}>\n {children}\n </BaseMessage>\n );\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { useTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\n\ninterface PageLoaderContainerProps {\n theme: DefaultTheme;\n $circlePerimeter: number;\n}\n\nconst PageLoaderContainer = withTheme(styled.div<PageLoaderContainerProps>`\n @keyframes PageLoaderInit {\n 0% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n }\n\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n /** Primary circle animation **/\n @keyframes PageLoaderOffset {\n 0% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n }\n\n /** 20% of this radius and represent the min offset part of the animated circle */\n 100% {\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter * 0.2}px;\n }\n }\n\n @keyframes PageLoaderRotation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n width: ${({ theme }) => theme.kitt.pageLoader.size}px;\n height: ${({ theme }) => theme.kitt.pageLoader.size}px;\n\n /* Needed to make the animation starting from the top of the circles */\n transform: scale(-1) rotate(90deg);\n\n & circle,\n & g {\n transform-origin: center center;\n }\n\n & circle {\n stroke-width: ${({ theme }) => theme.kitt.pageLoader.strokeWidth}px;\n stroke-dasharray: ${({ $circlePerimeter }) => $circlePerimeter}px;\n stroke-dashoffset: ${({ $circlePerimeter }) => $circlePerimeter}px;\n stroke-linecap: round;\n }\n\n & g[data-large-loader='base'] circle {\n stroke: ${({ theme }) => theme.kitt.pageLoader.colors.base};\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n const [x1, y1, x2, y2] = animation.fillEasingFunction;\n\n return `${animation.circleBackgroundFillDuration}ms cubic-bezier(${x1}, ${y1}, ${x2}, ${y2}) ${animation.delay}ms forwards`;\n }};\n animation-name: PageLoaderInit;\n }\n\n & g[data-large-loader='fill'] {\n transform-origin: center center;\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n\n return `${animation.filledCircleFillDuration}ms linear ${animation.delay}ms infinite`;\n }};\n animation-name: PageLoaderRotation;\n }\n\n & g[data-large-loader='fill'] circle {\n stroke: ${({ theme }) => theme.kitt.pageLoader.colors.fill};\n animation: ${({ theme }) => {\n const { animation } = theme.kitt.pageLoader;\n\n const [x1, y1, x2, y2] = animation.fillEasingFunction;\n\n const fillAnimation = `${animation.filledCircleFillDuration}ms cubic-bezier(${x1}, ${y1}, ${x2}, ${y2}) ${animation.delay}ms infinite alternate`;\n const rotationAnimation = `${animation.filledCircleRotationDuration}ms linear ${animation.delay}ms infinite`;\n\n return [fillAnimation, rotationAnimation].join(',');\n }};\n animation-name: PageLoaderOffset, PageLoaderRotation;\n }\n`);\n\nexport function PageLoader(props: Record<string, never>): ReactElement {\n const theme = useTheme();\n const { size, strokeWidth } = theme.kitt.pageLoader;\n\n const center = size * 0.5;\n const radius = center - strokeWidth;\n\n const circlePerimeter = 2 * Math.PI * radius;\n\n const sharedProps = {\n cx: center,\n cy: center,\n r: radius,\n fill: 'none',\n };\n\n return (\n <PageLoaderContainer $circlePerimeter={circlePerimeter}>\n <svg width={size} height={size}>\n <g data-large-loader=\"base\">\n <circle {...sharedProps} />\n </g>\n <g data-large-loader=\"fill\">\n <circle {...sharedProps} />\n </g>\n </svg>\n </PageLoaderContainer>\n );\n}\n","import type { ReactElement } from 'react';\nimport { Typography } from '../typography/Typography';\n\nexport function Picker(): ReactElement {\n return <Typography.Text base=\"body\">Picker is not implemented for the web</Typography.Text>;\n}\n","import { styled } from '@linaria/react';\nimport type { ReactElement } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport { withTheme } from '../utils/withTheme';\n\ninterface SkeletonBaseProps {\n $isLoading?: boolean;\n theme: DefaultTheme;\n}\n\nconst StyledSkeleton = withTheme(styled.div<SkeletonBaseProps>`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n\n @keyframes flareTranslate {\n from {\n transform: translateX(-100%);\n }\n\n to {\n transform: translateX(100%);\n }\n }\n\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-image: ${({ $isLoading, theme }) =>\n $isLoading\n ? `linear-gradient(\n -90deg,\n ${theme.kitt.skeleton.backgroundColor},\n ${theme.kitt.skeleton.flareColor} 50%,\n ${theme.kitt.skeleton.backgroundColor} 100%\n )`\n : 'none'};\n animation: ${({ $isLoading }) => ($isLoading ? '1s ease-in-out infinite' : 'none')};\n animation-name: flareTranslate;\n }\n`);\n\ninterface SkeletonProps {\n isLoading: boolean;\n}\n\nexport function SkeletonContent({ isLoading }: SkeletonProps): ReactElement {\n return <StyledSkeleton $isLoading={isLoading} />;\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\nconst SkeletonContainer = styled(View)`\n overflow: hidden;\n`;\nexport interface SkeletonProps {\n isLoading?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Skeleton({ isLoading, style }: SkeletonProps): ReactElement {\n const [width, setWidth] = useState(0);\n\n return (\n <SkeletonContainer style={style} onLayout={({ nativeEvent }) => setWidth(nativeEvent.layout.width)}>\n <SkeletonContent isLoading={isLoading} width={width} />\n </SkeletonContainer>\n );\n}\n\nconst Bar = styled(Skeleton)`\n width: 100%;\n height: ${({ theme }) => theme.kitt.spacing * 2}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 2}px;\n`;\n\nconst Circle = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 6}px;\n`;\n\nconst Square = styled(Skeleton)`\n width: ${({ theme }) => theme.kitt.spacing * 12}px;\n height: ${({ theme }) => theme.kitt.spacing * 12}px;\n border-radius: ${({ theme }) => theme.kitt.spacing * 1.5}px;\n`;\n\nSkeleton.Bar = Bar;\nSkeleton.Circle = Circle;\nSkeleton.Square = Square;\n","import type { ViewStyle } from 'react-native';\nimport styled from 'styled-components/native';\n\ninterface FlexProps {\n direction: ViewStyle['flexDirection'];\n padding?: number;\n}\n\nexport const Flex = styled.View.withConfig<FlexProps>({\n shouldForwardProp: (prop, defaultValidatorFn) => !['direction', 'padding'].includes(prop) && defaultValidatorFn(prop),\n})`\n display: flex;\n flex-direction: ${({ direction }) => direction};\n flex-wrap: wrap;\n padding: ${({ theme, padding = 0 }) => padding * theme.kitt.spacing}px;\n`;\n","export const storyPadding = 16;\n","import type { ReactElement, ReactNode } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { storyPadding } from './theme';\n\nexport interface StoryBlockProps {\n background?: 'dark' | 'light' | 'primary' | 'transparent';\n children: ReactNode;\n}\n\nconst getBackgroundColorFromBlockColor = (\n theme: DefaultTheme,\n color: StoryBlockProps['background'] = 'transparent',\n): string => {\n switch (color) {\n case 'dark':\n return '#293033';\n case 'light':\n return '#ffffff';\n case 'primary':\n return theme.kitt.palettes.lateOcean.lateOcean;\n default:\n return 'transparent';\n }\n};\n\nconst getTypographyColorFromBlockColor = (color: StoryBlockProps['background'] = 'transparent'): TypographyColor => {\n switch (color) {\n case 'dark':\n case 'primary':\n return 'white';\n case 'light':\n default:\n return 'black';\n }\n};\n\nexport const StoryBlockBackgroundContext = createContext<StoryBlockProps['background']>('transparent');\nconst StoryBlockColorContext = createContext<TypographyColor>('black');\n\nexport const useStoryBlockColor = (color?: TypographyColor | undefined): TypographyColor => {\n const storyBlockColor = useContext(StoryBlockColorContext);\n return color || storyBlockColor;\n};\n\nconst StyledStoryBlockView = styled.View<StoryBlockProps>`\n padding: 16px ${storyPadding}px 0;\n margin: 0 -${storyPadding}px;\n background: ${({ theme, background }) => getBackgroundColorFromBlockColor(theme, background)};\n`;\n\nexport function StoryBlock({ children, background }: StoryBlockProps): ReactElement {\n return (\n <StyledStoryBlockView background={background}>\n <StoryBlockColorContext.Provider value={getTypographyColorFromBlockColor(background)}>\n <StoryBlockBackgroundContext.Provider value={background}>{children}</StoryBlockBackgroundContext.Provider>\n </StoryBlockColorContext.Provider>\n </StyledStoryBlockView>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport { useStoryBlockColor } from './StoryBlock';\n\ninterface StoryTitleProps {\n color?: TypographyProps['color'];\n numberOfLines?: TypographyProps['numberOfLines'];\n children: ReactNode;\n}\n\nconst StoryTitleContainer = styled.View`\n margin-bottom: 30px;\n`;\n\nconst StorySubTitleContainer = styled.View`\n margin-bottom: 10px;\n`;\n\nexport function StoryTitle({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header1 variant=\"bold\" base=\"header1\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header1>\n </StoryTitleContainer>\n );\n}\n\nfunction StoryTitleLevel2({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StoryTitleContainer>\n <Typography.Header2 variant=\"bold\" base=\"header2\" color={useStoryBlockColor(color)} numberOfLines={numberOfLines}>\n {children}\n </Typography.Header2>\n </StoryTitleContainer>\n );\n}\n\nStoryTitleLevel2.displayName = 'StoryTitle.Level2';\n\nfunction StoryTitleLevel3({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header3\n variant=\"bold\"\n base=\"header3\"\n medium=\"header4\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header3>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel3.displayName = 'StoryTitle.Level3';\n\nfunction StoryTitleLevel4({ color, children, numberOfLines }: StoryTitleProps): ReactElement {\n return (\n <StorySubTitleContainer>\n <Typography.Header4\n variant=\"bold\"\n base=\"header4\"\n medium=\"header5\"\n color={useStoryBlockColor(color)}\n numberOfLines={numberOfLines}\n >\n {children}\n </Typography.Header4>\n </StorySubTitleContainer>\n );\n}\n\nStoryTitleLevel4.displayName = 'StoryTitle.Level3';\n\nStoryTitle.Level2 = StoryTitleLevel2;\nStoryTitle.Level3 = StoryTitleLevel3;\nStoryTitle.Level4 = StoryTitleLevel4;\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ScrollViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\nimport { storyPadding } from './theme';\n\nexport interface StoryProps {\n title: ReactNode;\n children: ReactNode;\n contentContainerStyle?: ScrollViewProps['contentContainerStyle'];\n}\n\nconst StoryContainer = styled.ScrollView`\n padding: ${storyPadding}px;\n`;\n\nexport function Story({ title, contentContainerStyle, children }: StoryProps): ReactElement {\n return (\n <StoryContainer contentContainerStyle={contentContainerStyle}>\n <StoryTitle>{title}</StoryTitle>\n {children}\n </StoryContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport styled from 'styled-components/native';\nimport { StoryTitle } from './StoryTitle';\n\ninterface StyledSectionProps extends ViewProps {}\n\nconst StyledSection = styled.View<StyledSectionProps>`\n margin-bottom: 32px;\n`;\n\nexport interface StorySectionProps extends ViewProps {\n title: ReactNode;\n children: ReactNode;\n /** @private */\n internalIsDemoSection?: boolean;\n}\n\nexport function StorySection({ title, children, internalIsDemoSection, ...props }: StorySectionProps): ReactElement {\n if (title === 'Demo' && !internalIsDemoSection) throw new Error('Use StorySection.Demo instead');\n return (\n <StyledSection {...props}>\n <StoryTitle.Level2>{title}</StoryTitle.Level2>\n {children}\n </StyledSection>\n );\n}\n\nconst StyledSubSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction SubSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledSubSection {...props}>\n <StoryTitle.Level3>{title}</StoryTitle.Level3>\n {children}\n </StyledSubSection>\n );\n}\n\nconst StyledBlockSection = styled.View`\n margin-bottom: 16px;\n`;\n\nfunction BlockSection({ title, children, ...props }: StorySectionProps): ReactElement {\n return (\n <StyledBlockSection {...props}>\n <StoryTitle.Level4>{title}</StoryTitle.Level4>\n {children}\n </StyledBlockSection>\n );\n}\n\nexport interface DemoSectionProps {\n children: ReactNode;\n}\n\nconst StyledDemoSection = styled.View`\n margin-bottom: 64px;\n`;\n\nfunction DemoSection({ children }: DemoSectionProps): ReactElement {\n return (\n <StyledDemoSection>\n <StorySection internalIsDemoSection title=\"Demo\">\n {children}\n </StorySection>\n </StyledDemoSection>\n );\n}\n\nStorySection.SubSection = SubSection;\nStorySection.BlockSection = BlockSection;\n/** @deprecated use StorySection.Demo instead */\nStorySection.DemoSection = DemoSection;\nStorySection.Demo = DemoSection;\n\n/** @deprecated use StorySection instead */\nexport const DeprecatedSection = StorySection;\n","import type { ReactElement } from 'react';\nimport type { StoryContainerProps } from './StoryContainer';\nimport { StorySection } from './StorySection';\n\nexport function StoryContainer({ children, state, title, platform }: StoryContainerProps): ReactElement | null {\n if (platform === 'native') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n <div className={state ? `kitt-${state}` : undefined}>{children}</div>\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}px;\n border-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderColor};\n padding: ${({ theme }) => theme.kitt.tag.padding};\n border-radius: ${({ theme }) => theme.kitt.tag.borderRadius}px;\n align-self: flex-start;\n`;\n\nexport const getLabelColor = (type: TagType, variant: TagVariant): TypographyColor => {\n switch (type) {\n case 'danger': {\n return variant === 'outline' ? 'danger' : 'black';\n }\n case 'primary': {\n return 'primary';\n }\n case 'default': {\n return 'black';\n }\n default: {\n return 'black';\n }\n }\n};\n\nexport function Tag({ label, type = 'default', variant = 'fill' }: TagProps): ReactElement {\n return (\n <Container type={type} variant={variant}>\n <Typography.Text base=\"body-xsmall\" color={getLabelColor(type, variant)}>\n {label}\n </Typography.Text>\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { Typography } from '../typography/Typography';\n\n// This is not yet implemented\nexport function TimePicker(): ReactElement {\n return <Typography.Text base=\"body\">TimePicker is not implemented for the web</Typography.Text>;\n}\n","import { TooltipArrowIcon } from '@ornikar/kitt-icons';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Typography } from '../typography/Typography';\nimport type { TooltipPosition } from './Tooltip';\n\nconst StyledTooltipView = styled.View`\n align-items: center;\n`;\n\nconst StyledTooltipContent = styled.View`\n background-color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n border-radius: ${({ theme }) => theme.kitt.tooltip.borderRadius}px;\n opacity: ${({ theme }) => theme.kitt.tooltip.opacity};\n padding: ${({ theme }) => `${theme.kitt.tooltip.verticalPadding}px ${theme.kitt.tooltip.horizontalPadding}px`};\n`;\n\ninterface StyledArrowProps {\n $position: TooltipPosition;\n}\n\nfunction ArrowView(props: ViewProps): ReactElement {\n const theme = useTheme();\n return (\n <View {...props}>\n <TooltipArrowIcon color={theme.kitt.tooltip.backgroundColor} />\n </View>\n );\n}\n\nconst StyledArrow = styled(ArrowView)<StyledArrowProps>`\n color: ${({ theme }) => theme.kitt.tooltip.backgroundColor};\n transform: ${({ $position }) => `rotate(${$position === 'bottom' ? 180 : 0}deg)`};\n`;\n\nexport interface TooltipViewProps {\n children: NonNullable<ReactNode>;\n position: TooltipPosition;\n}\n\nexport function TooltipView({ children, position }: TooltipViewProps): ReactElement {\n return (\n <StyledTooltipView>\n {position === 'bottom' ? <StyledArrow $position={position} /> : null}\n <StyledTooltipContent>\n <Typography.Text base=\"body\" color=\"white\">\n {children}\n </Typography.Text>\n </StyledTooltipContent>\n {position === 'top' ? <StyledArrow $position={position} /> : null}\n </StyledTooltipView>\n );\n}\n","import type { TooltipProps } from '..';\nimport type { TooltipPosition } from './Tooltip';\n\nexport const tooltipDefaultPosition: TooltipPosition = 'top';\nexport const tooltipDefaultFloatingStrategy: TooltipProps['floatingStrategy'] = {\n web: 'absolute',\n};\n","import { flip, getScrollParents, offset, shift, useFloating } from '@floating-ui/react-dom';\nimport type { ReactElement } from 'react';\nimport { useEffect, useState } from 'react';\nimport type { PressableProps, ViewProps } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { TooltipPosition, TooltipProps } from './Tooltip';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultFloatingStrategy, tooltipDefaultPosition } from './tooltipUtils';\n\ninterface StyledTooltipTriggerProps extends PressableProps {\n ref: (node: Element | null) => void;\n}\n\nconst StyledTooltipTrigger = styled.Pressable<StyledTooltipTriggerProps>`\n display: inline-flex;\n align-self: baseline;\n`;\n\ninterface WebAnimatedTooltipProps extends ViewProps {\n $visible: boolean;\n ref: (node: HTMLDivElement | null) => void;\n}\n\nconst WebAnimatedTooltip = styled.View<WebAnimatedTooltipProps>`\n opacity: ${({ theme, $visible }) => ($visible ? theme.kitt.tooltip.opacity : 0)};\n transition: opacity 200ms;\n visibility: ${({ $visible }) => ($visible ? 'visible' : 'hidden')};\n`;\n\nfunction getActualPosition(\n originalPosition: TooltipPosition,\n offsetMiddlewareData?: { x: number; y: number },\n): TooltipPosition {\n if (!offsetMiddlewareData) return originalPosition;\n\n if (originalPosition === 'top') {\n return offsetMiddlewareData.y > 0 ? 'bottom' : originalPosition;\n }\n\n if (originalPosition === 'bottom') {\n return offsetMiddlewareData.y < 0 ? 'top' : originalPosition;\n }\n\n return originalPosition;\n}\n\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingStrategy = tooltipDefaultFloatingStrategy,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const [visible, setVisible] = useState(Boolean(defaultVisible));\n\n const { x, y, reference, floating, strategy, update, refs, middlewareData } = useFloating({\n placement: position,\n strategy: floatingStrategy?.web,\n middleware: [offset(padding), shift(), flip()],\n });\n\n // Update on scroll and resize for all relevant nodes\n useEffect(() => {\n if (!refs.reference.current || !refs.floating.current) {\n return () => undefined;\n }\n const parents = [...getScrollParents(refs.reference.current), ...getScrollParents(refs.floating.current)];\n parents.forEach((parent) => {\n parent.addEventListener('scroll', update);\n parent.addEventListener('resize', update);\n });\n\n return () => {\n parents.forEach((parent) => {\n parent.removeEventListener('scroll', update);\n parent.removeEventListener('resize', update);\n });\n };\n }, [refs.reference, refs.floating, update]);\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy,\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, strategy, update, refs, middlewareData, onUpdate]);\n\n return (\n <>\n <StyledTooltipTrigger\n ref={reference as any}\n accessibilityRole=\"button\"\n onPress={() => setVisible((prev) => !prev)}\n onMouseEnter={() => {\n setVisible(true);\n }}\n onFocus={() => {\n setVisible(true);\n }}\n >\n {children}\n </StyledTooltipTrigger>\n\n <WebAnimatedTooltip\n ref={floating as any}\n $visible={visible}\n accessibilityHidden={!visible}\n style={{\n position: strategy as any,\n top: 0,\n left: 0,\n transform: [\n {\n // @ts-expect-error translate3d is missing in react-native definitions, only supported in web\n translate3d: `${Math.round(x ?? 0)}px, ${Math.round(y ?? 0)}px, 0`,\n },\n ],\n }}\n >\n <TooltipView position={getActualPosition(position, middlewareData.offset)}>{content}</TooltipView>\n </WebAnimatedTooltip>\n </>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n return <StyledTypographyEmoji size={fontSize} emoji={emoji} />;\n}\n","import { styled as styledLinaria } from '@linaria/react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport type { DefaultTheme } from 'styled-components/native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport { StyleWebWrapper } from '../utils/StyleWebWrapper';\nimport { withTheme } from '../utils/withTheme';\nimport type { TypographyPropsWithoutRole } from './Typography';\nimport { Typography } from './Typography';\n\ninterface TypographyLinkWebWrapperProps {\n theme: DefaultTheme;\n $hasNoUnderline?: boolean;\n}\n\nconst TypographyLinkWebWrapper = withTheme(styledLinaria.span<TypographyLinkWebWrapperProps>`\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: none;\n }\n\n & > *:hover,\n & > *:active,\n .kitt-hover & > * {\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'underline' : 'none')}\n }\n`);\n\ninterface StyledLinkProps {\n $disabled?: boolean;\n $hasNoUnderline?: boolean;\n}\n\nconst StyledLink = styled.Text<StyledLinkProps & TextProps>`\n text-decoration: ${({ $hasNoUnderline }) => ($hasNoUnderline ? 'none' : 'underline')};\n\n ${({ $disabled }) => {\n if (Platform.OS !== 'web') return undefined;\n\n return `\n text-decoration-color: inherit;\n transition: color 0.2s ease-in-out;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n `;\n }};\n\n ${({ $disabled, theme }) => {\n if (!$disabled) return undefined;\n return `color: ${theme.kitt.typography.link.disabledColor};`;\n }};\n`;\n\nexport interface TypographyLinkProps extends Except<TypographyPropsWithoutRole, 'children'> {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n noUnderline?: boolean;\n variant: NonNullable<TypographyPropsWithoutRole['variant']>;\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress: TextProps['onPress'];\n}\n\nexport function TypographyLink({\n children,\n disabled,\n noUnderline,\n href,\n hrefAttrs,\n onPress,\n ...otherProps\n}: TypographyLinkProps): ReactElement {\n return (\n <Typography {...otherProps} accessibilityRole=\"none\">\n <StyleWebWrapper as={TypographyLinkWebWrapper} $hasNoUnderline={noUnderline}>\n <StyledLink\n $disabled={disabled}\n $hasNoUnderline={noUnderline}\n href={href}\n hrefAttrs={hrefAttrs}\n accessibilityRole=\"link\"\n dataSet={{\n // remove data-kitt-universal when we delete kitt web. See See :global(a) in Link styles.module.css\n 'kitt-universal': 'true',\n }}\n onPress={disabled ? undefined : onPress}\n >\n {children}\n </StyledLink>\n </StyleWebWrapper>\n </Typography>\n );\n}\n","export const hex2rgba = (hex: string, alpha = 1): string => {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","import { makeDecorator } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { ThemeProvider } from 'styled-components/native';\nimport type { KittTheme } from '../../useKittTheme';\nimport { useKittTheme } from '../../useKittTheme';\n\ndeclare module 'styled-components' {\n export interface DefaultTheme extends KittTheme {}\n}\n\ninterface KittThemeProviderProps {\n children: ReactNode;\n}\n\nexport function KittThemeProvider({ children }: KittThemeProviderProps): ReactElement {\n const theme = useKittTheme();\n return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n}\n\nexport const KittThemeDecorator = makeDecorator({\n name: 'ThemeDecorator',\n parameterName: 'theme',\n wrapper: (storyFn, context, { options = {}, parameters = {} }) => {\n return <KittThemeProvider>{storyFn(context) as ReactNode}</KittThemeProvider>;\n },\n});\n","import type { ReactElement, ReactNode } from 'react';\nimport type { MatchWindowSizeOptions } from './useMatchWindowSize';\nimport { useMatchWindowSize } from './useMatchWindowSize';\n\ninterface MatchWindowSizeProps extends MatchWindowSizeOptions {\n children: ReactNode;\n}\n\nexport function MatchWindowSize({ children, ...matchWindowSizeOptions }: MatchWindowSizeProps): ReactElement | null {\n const match = useMatchWindowSize(matchWindowSizeOptions);\n if (!match) return null;\n return children as ReactElement;\n}\n"],"names":["defaultIconSize","IconContainer","styled","$color","$size","$align","Icon","icon","size","align","color","clonedIcon","cloneElement","_jsx","KittBreakpoints","BASE","SMALL","MEDIUM","LARGE","WIDE","KittBreakpointsMax","IsHeaderTypographyContext","createContext","undefined","TypographyColorContext","useTypographyColor","useContext","getTypographyTypeConfigKey","theme","isMediumOrAbove","responsive","matchWindowSize","minWidth","isTypeHeader","type","startsWith","isTypographyHeader","typographyIsHeaderInContext","Error","getTypographyTypeConfig","kitt","typography","types","headers","configs","bodies","StyledTypography","$textAlign","css","$isHeader","$typeForCurrentWindowSize","$variant","typeConfigKey","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","colors","useTypographyTypeForCurrentWindowSize","base","small","medium","large","useWindowDimensions","width","getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors","hasTypographyAncestor","Typography","accessibilityRole","variant","textAlign","otherProps","isHeaderTypographyInContext","baseOrDefaultToBody","colorOrDefaultToBlack","typeForCurrentWindowSize","isHeader","nonNullableVariant","sharedProps","content","TypographyText","props","TypographyParagraph","createHeading","level","defaultBase","TypographyHeading","displayName","Text","Paragraph","Header1","Header2","Header3","Header4","Header5","Header6","h1","h2","h3","h4","h5","getInitials","firstname","lastname","toUpperCase","StyledAvatarView","$isRound","$sizeVariant","avatar","borderRadius","$isLight","light","backgroundColor","AvatarContent","src","alt","isLight","sizeVariant","uri","height","Avatar","round","withTheme","WrappedComponent","forwardRef","ref","useTheme","hasVariant","button","getVariantValuesIfExist","isSubtle","AnimatedButtonPressableContainer","$isStretch","scale","hover","$isDisabled","active","$type","disabled","hoverBackgroundColor","transition","duration","timingFunction","borderWidth","borderColor","focus","focusBorderColor","hoverColor","activeColor","AnimatedButtonPressable","BaseStyledButtonPressable","maxWidth","minHeight","$isLarge","$isXLarge","contentPadding","defaultPadding","disabledPadding","xLarge","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","value","spacing","ButtonIcon","iconPosition","testID","StyledChildrenWithIcon","ButtonContentChildren","isDisabled","children","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","allowedGhostTypes","Button","stretch","href","hrefAttrs","onPress","__DEV__","includes","Container","card","Card","StyledEmoji","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","target","rel","lateOceanColorPalette","lateOcean","lateOceanLight1","lateOceanLight2","lateOceanLight3","warmEmbrace","warmEmbraceLight1","black1000","black800","black555","black200","black100","black50","black25","white","viride","englishVermillon","goldCrayola","aero","transparent","moonPurple","moonPurpleLight1","primary","primaryLight","accent","accentLight","success","correct","danger","info","warning","separator","black","blackAnthracite","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","pressedBackgroundColor","ghost","subtle","secondary","feedbackMessage","checkbox","iconSize","checkedBorderColor","checkedBackgroundColor","markColor","datePicker","day","month","year","calcLineHeight","lineHeightMultiplier","Math","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","kittColors","regular","bold","header1","header2","header3","header4","header5","body","link","disabledColor","inputStatesStyle","pending","valid","invalid","input","selection","placeholder","padding","horizontal","vertical","property","states","inputField","labelContainerPaddingBottom","iconMarginLeft","inputTag","labelColor","radio","unchecked","checked","innerSize","innerBackgroundColor","textArea","forms","fullScreenModal","header","paddingVertical","paddingHorizontal","iconButton","listItem","innerMargin","pageLoader","strokeWidth","fill","animation","delay","circleBackgroundFillDuration","filledCircleFillDuration","groupFilledCircleRotationDuration","filledCircleRotationDuration","fillEasingFunction","picker","ios","selected","android","shadows","skeleton","flareColor","animationDuration","tag","outline","tooltip","opacity","horizontalPadding","verticalPadding","floatingPadding","breakpoints","values","wide","min","smallBreakpoint","mediumBreakpoint","largeBreakpoint","wideBreakpoint","max","palettes","maxHeight","hasWidthMatched","hasHeightMatched","useMatchWindowSize","options","createWindowSizeHelper","dimensions","ifWindowSizeMatches","valueIfTrue","valueIfFalse","mapWindowWidth","widthList","slice","forEach","index","previousMinWidth","found","find","Number","useKittTheme","useWindowSize","kittTheme","CheckboxAndLabelPressableWrapper","CheckboxContainer","$isChecked","$hasLabel","Checkbox","onChange","onBlur","onFocus","hitSlop","id","handlePress","e","getInputUIState","isFocused","formState","styledTextInputMixin","$state","StyledTypographyText","ViewInput","$partName","DatePickerInputPart","partName","prefixWithZero","padStart","PartContainer","$isLast","DatePickerPressable","DatePickerInputs","state","internalForceState","handleModalOpen","currentValue","currentState","sharedPartProps","getDate","getMonth","getFullYear","DatePicker","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","right","autoCorrect","textContentType","autoCompleteType","keyboardType","onSubmitEditing","useState","setIsFocused","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","isVisible","setIsVisible","prev","InputPhone","getTypographyColor","InputTagContainer","View","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","Body","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","Header","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","left","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","nativeEvent","layout","FullScreenModal","StyledSpinningIconContainer","SpinningIcon","StyleWebWrapper","PressableIconButtonWebWrapper","$isWhite","defaultIconButton","StyledPressableIconButton","PressableIconButton","PressableAnimatedContainer","IconButtonContentBorder","IconButtonContent","IconButton","accessibilityLabel","ContentView","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Pressable","Fragment","wrapperProps","containerProps","Content","SideContent","LoaderIcon","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","onClose","ModalView","Modal","visible","onEntered","onExited","NativeModal","Footer","Notification","onDelete","PageLoaderContainer","$circlePerimeter","x1","y1","x2","y2","fillAnimation","rotationAnimation","join","PageLoader","center","radius","circlePerimeter","PI","cx","cy","r","Picker","StyledSkeleton","$isLoading","SkeletonContent","isLoading","SkeletonContainer","Skeleton","setWidth","Bar","Circle","Square","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","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","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","StoryGrid","Row","Col","getLabelColor","Tag","TimePicker","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","tooltipDefaultFloatingStrategy","StyledTooltipTrigger","WebAnimatedTooltip","$visible","getActualPosition","originalPosition","offsetMiddlewareData","y","Tooltip","defaultVisible","floatingStrategy","onUpdate","setVisible","useFloating","placement","strategy","middleware","offset","shift","flip","x","reference","floating","update","refs","middlewareData","useEffect","current","parents","getScrollParents","parent","addEventListener","removeEventListener","transform","translate3d","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","$hasNoUnderline","StyledLink","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match"],"mappings":"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"}