@ornikar/kitt-universal 7.1.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/definitions/Button/BaseStyledButtonPressable.d.ts +1 -0
- package/dist/definitions/Button/BaseStyledButtonPressable.d.ts.map +1 -1
- package/dist/definitions/Button/Button.d.ts +1 -0
- package/dist/definitions/Button/Button.d.ts.map +1 -1
- package/dist/definitions/Button/ButtonContent.d.ts.map +1 -1
- package/dist/definitions/Overlay/Overlay.d.ts +1 -2
- package/dist/definitions/Overlay/Overlay.d.ts.map +1 -1
- package/dist/definitions/PageLoader/AnimatedBackgroundCircle.d.ts +3 -0
- package/dist/definitions/PageLoader/AnimatedBackgroundCircle.d.ts.map +1 -0
- package/dist/definitions/PageLoader/AnimatedFillCircle.d.ts +3 -0
- package/dist/definitions/PageLoader/AnimatedFillCircle.d.ts.map +1 -0
- package/dist/definitions/PageLoader/AnimatedFillCircleContainer.d.ts +8 -0
- package/dist/definitions/PageLoader/AnimatedFillCircleContainer.d.ts.map +1 -0
- package/dist/definitions/PageLoader/AnimatedLoaderCircle.d.ts +10 -0
- package/dist/definitions/PageLoader/AnimatedLoaderCircle.d.ts.map +1 -0
- package/dist/definitions/PageLoader/PageLoader.d.ts.map +1 -1
- package/dist/definitions/PageLoader/PageLoader.web.d.ts.map +1 -1
- package/dist/definitions/forms/DatePicker/DatePickerInputPart.d.ts.map +1 -1
- package/dist/definitions/forms/InputText/InputText.d.ts.map +1 -1
- package/dist/definitions/themes/default.d.ts +2 -0
- package/dist/definitions/themes/default.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/button.d.ts +2 -1
- package/dist/definitions/themes/late-ocean/button.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/colors.d.ts +2 -0
- package/dist/definitions/themes/late-ocean/colors.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/input.d.ts +2 -2
- package/dist/definitions/themes/late-ocean/input.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/pageLoader.d.ts +13 -0
- package/dist/definitions/themes/late-ocean/pageLoader.d.ts.map +1 -1
- package/dist/definitions/themes/late-ocean/typography.d.ts.map +1 -1
- package/dist/definitions/typography/Typography.d.ts.map +1 -1
- package/dist/index-browser-all.es.android.js +232 -40
- package/dist/index-browser-all.es.android.js.map +1 -1
- package/dist/index-browser-all.es.ios.js +232 -40
- package/dist/index-browser-all.es.ios.js.map +1 -1
- package/dist/index-browser-all.es.js +232 -40
- package/dist/index-browser-all.es.js.map +1 -1
- package/dist/index-browser-all.es.web.js +127 -46
- package/dist/index-browser-all.es.web.js.map +1 -1
- package/dist/index-node-14.17.cjs.js +228 -37
- package/dist/index-node-14.17.cjs.js.map +1 -1
- package/dist/index-node-14.17.cjs.web.css +1 -1
- package/dist/index-node-14.17.cjs.web.js +117 -42
- package/dist/index-node-14.17.cjs.web.js.map +1 -1
- package/dist/linaria-themes-browser-all.es.android.js +37 -12
- package/dist/linaria-themes-browser-all.es.android.js.map +1 -1
- package/dist/linaria-themes-browser-all.es.ios.js +37 -12
- package/dist/linaria-themes-browser-all.es.ios.js.map +1 -1
- package/dist/linaria-themes-browser-all.es.js +37 -12
- package/dist/linaria-themes-browser-all.es.js.map +1 -1
- package/dist/linaria-themes-browser-all.es.web.js +37 -12
- package/dist/linaria-themes-browser-all.es.web.js.map +1 -1
- package/dist/linaria-themes-node-14.17.cjs.js +37 -12
- package/dist/linaria-themes-node-14.17.cjs.js.map +1 -1
- package/dist/linaria-themes-node-14.17.cjs.web.js +37 -12
- package/dist/linaria-themes-node-14.17.cjs.web.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tsbuildinfo +1 -1
- package/package.json +9 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/getVariantValuesIfExist.ts","../src/Button/AnimatedButtonPressable.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/isSubtle.ts","../src/Button/ButtonContent.tsx","../src/Button/StyledDisabled.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.tsx","../src/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/DatePickerAndroid.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/forms/DatePicker/PlatformDateTimePicker.tsx","../src/forms/DatePicker/ModalPlatformDateTimePicker.tsx","../src/forms/DatePicker/DatePicker.tsx","../src/forms/InputText/InputTextContainer.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.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/Notification/Notification.tsx","../src/PageLoader/PageLoader.tsx","../src/Skeleton/SkeletonContent.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/ModalDateTimePicker.tsx","../src/TimePicker/useTimePicker.ts","../src/TimePicker/TimePicker.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx","../src/utils/withTheme.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 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 !$color\n ? ''\n : `\n color: ${theme.kitt.typography.colors[$color]};\n text-decoration-color: ${theme.kitt.typography.colors[$color]};\n `}\n`;\n\nexport interface TypographyBreakpointTypesProps {\n /** base type. Inherited from parent Typography if not specified */\n base?: TypographyType;\n /** small type. use base if undefined */\n small?: TypographyType;\n /** medium type. use small or base if undefined */\n medium?: TypographyType;\n /** large type. use medium or small or base if undefined */\n large?: TypographyType;\n}\n\nexport interface TypographyProps extends TypographyBreakpointTypesProps, Except<TextProps, 'accessibilityRole'> {\n // Find mapping for web here: https://www.w3.org/TR/html-aria/\n accessibilityRole: NonNullable<TextProps['accessibilityRole']> | 'paragraph' | null;\n /** Default to regular for bodies and bold of headers. Is not inherited. */\n variant?: TypographyVariant;\n /** Inherited from parent Typography if not specified, or black if no Typography parent found. */\n color?: TypographyColor;\n children: ReactNode;\n}\nexport type TypographyPropsWithoutRole = Except<TypographyProps, 'accessibilityRole'>;\n\nexport function useTypographyTypeForCurrentWindowSize(\n base: TypographyType | undefined,\n small: TypographyType | undefined,\n medium: TypographyType | undefined,\n large: TypographyType | undefined,\n): TypographyType | undefined {\n const { width } = useWindowDimensions();\n if (large && width >= KittBreakpoints.LARGE) return large;\n if (medium && width >= KittBreakpoints.MEDIUM) return medium;\n if (small && width >= KittBreakpoints.SMALL) return small;\n return base;\n}\n\ntype GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps = Pick<TypographyProps, 'base' | 'color'>;\n\nexport function getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(\n hasTypographyAncestor: boolean,\n { base, color }: GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps,\n): GetTypographyInheritedOrDefaultValuesBasedOnExistingAncestorsProps {\n // return the props set or undefined. In case of undefined, the value will be inherited from its parents.\n if (hasTypographyAncestor) return { base, color };\n\n return {\n base: base ?? 'body',\n color: color ?? 'black',\n };\n}\n\nexport function Typography({\n accessibilityRole,\n base,\n small,\n medium,\n large,\n variant,\n color,\n ...otherProps\n}: TypographyProps): ReactElement | null {\n const isHeaderTypographyInContext = useContext(IsHeaderTypographyContext);\n const hasTypographyAncestor = isHeaderTypographyInContext !== undefined;\n const { base: baseOrDefaultToBody, color: colorOrDefaultToBlack } =\n getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors(hasTypographyAncestor, {\n base,\n color,\n });\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(baseOrDefaultToBody, small, medium, large);\n const isHeader = isTypographyHeader(typeForCurrentWindowSize, isHeaderTypographyInContext);\n const nonNullableVariant: TypographyVariant = variant ?? (isHeader ? 'bold' : 'regular');\n\n const content = baseOrDefaultToBody ? (\n <IsHeaderTypographyContext.Provider value={isHeader}>\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $typeForCurrentWindowSize={typeForCurrentWindowSize}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n </IsHeaderTypographyContext.Provider>\n ) : (\n <StyledTypography\n $color={colorOrDefaultToBlack}\n $isHeader={isHeader}\n $variant={nonNullableVariant}\n accessibilityRole={(accessibilityRole as TextProps['accessibilityRole']) || undefined}\n {...otherProps}\n />\n );\n\n return color ? <TypographyColorContext.Provider value={color}>{content}</TypographyColorContext.Provider> : content;\n}\n\nexport type TypographyTextProps = SetOptional<TypographyProps, 'accessibilityRole'>;\nfunction TypographyText(props: TypographyTextProps): ReactElement {\n return <Typography accessibilityRole={null} {...props} />;\n}\n\nfunction TypographyParagraph(props: TypographyTextProps): ReactElement {\n // 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 { 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 { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\n\nexport interface StyledPressableProps extends PressableProps {\n $isStretch?: boolean;\n $type: ButtonType;\n}\n\nconst StyledPressable = styled.Pressable<StyledPressableProps>`\n ${({ $isStretch }) => {\n if ($isStretch) return undefined;\n\n return 'align-self: flex-start;';\n }}\n`;\n\nconst StyledAnimatedView = styled(Animated.View)`\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n\nexport interface AnimatedButtonPressableProps extends PressableProps {\n accessibilityRole: NonNullable<PressableProps['accessibilityRole']>;\n $type: ButtonType;\n $variant: ButtonVariant;\n $isStretch?: boolean;\n}\n\nexport const AnimatedButtonPressable = forwardRef<View, AnimatedButtonPressableProps>(\n (\n {\n children,\n disabled,\n accessibilityRole,\n $type,\n $variant,\n $isStretch,\n href,\n hrefAttrs,\n testID,\n onPress,\n }: AnimatedButtonPressableProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const pressed = useSharedValue<0 | 1>(0);\n const color = useSharedValue(0);\n\n const { backgroundColor, pressedBackgroundColor } = getVariantValuesIfExist(theme, $type, $variant);\n const { scale } = theme.kitt.button;\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n backgroundColor: interpolateColor(color.value, [0, 1], [backgroundColor, pressedBackgroundColor]),\n transform: [\n {\n scale: withSpring(pressed.value ? scale.base.active : scale.base.default),\n },\n ],\n };\n });\n\n const handlePressInOut = (pressIn: boolean): void => {\n color.value = withSpring(pressIn ? 1 : 0);\n pressed.value = pressIn ? 1 : 0;\n };\n\n return (\n <StyledPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n $isStretch={$isStretch}\n $type={$type}\n onPress={onPress}\n onPressIn={() => {\n handlePressInOut(true);\n }}\n onPressOut={() => {\n handlePressInOut(false);\n }}\n >\n <StyledAnimatedView style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n {children}\n </StyledAnimatedView>\n </StyledPressable>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\n\nexport interface BaseStyledButtonPressableProps extends ViewProps {\n $type: ButtonType;\n $variant: ButtonVariant;\n $isLarge?: boolean;\n $isStretch?: boolean;\n $isDisabled?: boolean;\n}\n\nexport const BaseStyledButtonPressable = styled.View<BaseStyledButtonPressableProps>`\n position: relative;\n min-width: ${({ theme }) => theme.kitt.button.minWidth}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, $isDisabled }) => {\n const { large, default: defaultPadding, disabled: disabledPadding } = theme.kitt.button.contentPadding;\n\n if ($isLarge) return large;\n if ($isDisabled) return disabledPadding;\n\n return defaultPadding;\n }};\n`;\n","import type { ReactElement } from 'react';\nimport { useTheme } from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { IconProps } from '../Icon/Icon';\nimport { Icon } from '../Icon/Icon';\nimport type { SetNonNullable } from '../utils/typeUtils';\nimport type { TypographyProps } from './Typography';\nimport { useTypographyColor } from './Typography';\n\nexport interface TypographyIconProps extends Except<IconProps, 'color'> {\n color?: TypographyProps['color'] | 'inherit';\n}\n\nfunction TypographyIconSpecifiedColor({ color, ...props }: SetNonNullable<TypographyIconProps, 'color'>): ReactElement {\n const theme = useTheme();\n return <Icon {...props} color={color === 'inherit' ? 'inherit' : theme.kitt.typography.colors[color]} />;\n}\n\nfunction TypographyIconInheritColor(props: TypographyIconProps): ReactElement {\n const color = useTypographyColor();\n\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n}\n\nexport function TypographyIcon({ color, ...props }: TypographyIconProps): ReactElement {\n if (color) {\n return <TypographyIconSpecifiedColor color={color} {...props} />;\n }\n\n return <TypographyIconInheritColor {...props} />;\n}\n","import type { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType, 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 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 styled from 'styled-components/native';\n\nexport const StyledDisabled = styled.View`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ${({ theme }) => {\n const { borderWidth, disabled } = theme.kitt.button;\n return `${borderWidth.disabled}px solid ${disabled.default.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\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\nexport interface ButtonProps {\n children?: ReactNode;\n type?: ButtonType;\n variant?: ButtonVariant;\n disabled?: boolean;\n stretch?: boolean;\n large?: 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 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' && type !== 'primary') {\n throw new Error('variant=ghost is only allowed with type=primary');\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 $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 * as WebBrowser from 'expo-web-browser';\nimport type { ComponentProps, ReactElement, VoidFunctionComponent } from 'react';\nimport type { PressableProps, TextProps } from 'react-native';\nimport { Linking } from 'react-native';\nimport type { ExternalLinkOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport interface ExternalLinkAsComponentMinimumRequiredProps {\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress?: PressableProps['onPress'];\n}\n\nexport interface ExternalLinkProps<C extends VoidFunctionComponent<any>> {\n as: C;\n openLinkBehavior?: ExternalLinkOpenLinkBehavior;\n href?: string;\n onPress?: PressableProps['onPress'];\n}\n\n/** @internal for ExternalLink.web.tsx only */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ExternalLinkSendableComponentProps<C extends VoidFunctionComponent<any>> = Omit<\n ComponentProps<C>,\n keyof ExternalLinkProps<C> & keyof ExternalLinkAsComponentMinimumRequiredProps\n>;\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n const handleOnPress: PressableProps['onPress'] = (e) => {\n if (onPress) {\n onPress(e);\n if (e?.defaultPrevented) return;\n }\n\n if (!href) return;\n\n switch (openLinkBehavior.native) {\n case 'openInModal':\n case undefined:\n WebBrowser.openBrowserAsync(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n case 'openBrowserApp':\n Linking.openURL(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n default:\n if (__DEV__) {\n throw new Error(`Invalid ExternalLink native behavior: ${openLinkBehavior.native as string}`);\n }\n }\n };\n\n return <Component {...(rest as any)} onPress={handleOnPress} />;\n}\n","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 black: lateOceanColorPalette.black1000,\n uiBackground: lateOceanColorPalette.black25,\n uiBackgroundLight: lateOceanColorPalette.white,\n transparent: lateOceanColorPalette.transparent,\n disabled: lateOceanColorPalette.black50,\n overlay: {\n dark: 'rgba(41, 48, 51, 0.25)',\n light: 'rgba(255, 255, 255, 0.90)',\n fullscreenLoader: 'rgba(0, 0, 0, 0.25)',\n },\n};\n","import { lateOceanColorPalette } from '../palettes/lateOceanColorPalette';\nimport { 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 disabled: string;\n };\n transition: {\n duration: string;\n timingFunction: string;\n };\n default: BaseButtonTheme;\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 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 },\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';\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: lateOceanColorPalette.black1000,\n 'black-anthracite': lateOceanColorPalette.black800,\n 'black-light': lateOceanColorPalette.black555,\n white: lateOceanColorPalette.white,\n 'white-light': lateOceanColorPalette.white,\n primary: lateOceanColorPalette.lateOcean,\n 'primary-light': lateOceanColorPalette.lateOceanLight1,\n accent: lateOceanColorPalette.warmEmbrace,\n success: lateOceanColorPalette.viride,\n danger: lateOceanColorPalette.englishVermillon,\n },\n types: {\n headers: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n bold: Platform.OS === 'web' ? 'Moderat' : 'Moderat-Extended-Bold',\n },\n fontWeight: 400,\n fontStyle: 'normal',\n configs: {\n // also known as xxlarge\n header1: createTypographyTypeConfig(1.3, 38, 62),\n // also known as xlarge\n header2: createTypographyTypeConfig(1.3, 32, 48),\n // also known as medium\n header3: createTypographyTypeConfig(1.3, 24, 36),\n // also known as xsmall\n header4: createTypographyTypeConfig(1.3, 18, 24),\n // also known as xxsmall\n header5: createTypographyTypeConfig(1.3, 18, 18),\n },\n },\n bodies: {\n fontFamily: {\n regular: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans',\n bold: Platform.OS === 'web' ? 'Noto Sans' : 'NotoSans-Bold',\n },\n fontWeight: {\n regular: 400,\n bold: 700,\n },\n fontStyle: {\n regular: 'normal',\n bold: 'normal',\n },\n configs: {\n 'body-large': createTypographyTypeConfig(1.6, 18, 24),\n 'body-medium': createTypographyTypeConfig(1.6, 18, 18),\n body: createTypographyTypeConfig(1.6, 16, 16),\n 'body-small': createTypographyTypeConfig(1.6, 14, 14),\n 'body-xsmall': createTypographyTypeConfig(1.6, 12, 12),\n },\n },\n },\n link: {\n disabledColor: lateOceanColorPalette.black200,\n },\n};\n","import type { 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 default: string;\n iOSSingleLine: string;\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 default: '5px 16px',\n iOSSingleLine: '7px 16px',\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","export interface PageLoaderTheme {\n size: number;\n}\n\nexport const pageLoader: PageLoaderTheme = {\n size: 60,\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 }) => theme.kitt.forms.input.padding.default};\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 { DateTimePickerAndroid } from '@react-native-community/datetimepicker';\nimport type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\ninterface DatePickerAndroidProps\n extends Except<DatePickerProps, 'pickerUITitle' | 'pickerUIValidateButtonLabel' | 'value'> {\n isFocused: boolean;\n setIsFocused: (isFocused: boolean) => void;\n currentValue: Date | undefined;\n setCurrentValue: (value: Date | undefined) => void;\n}\n\nexport function DatePickerAndroid({\n onBlur,\n onFocus,\n pickerDefaultDate,\n pickerUITestID,\n setIsFocused,\n currentValue,\n setCurrentValue,\n onChange,\n isFocused,\n ...props\n}: DatePickerAndroidProps): ReactElement {\n const handleClose = (): void => {\n if (onBlur) onBlur();\n };\n\n const handleModalOpen = (): void => {\n setIsFocused(true);\n if (onFocus) onFocus();\n\n DateTimePickerAndroid.open({\n testID: pickerUITestID,\n value: currentValue || pickerDefaultDate || new Date(Date.now()),\n onChange: (e) => {\n setIsFocused(false);\n const { timestamp } = e.nativeEvent;\n if (timestamp) {\n const date = new Date(timestamp);\n\n setCurrentValue(date);\n onChange(date);\n handleClose();\n }\n },\n onTouchCancel: handleClose,\n });\n };\n\n return (\n <DatePickerInputs handleModalOpen={handleModalOpen} currentValue={currentValue} isFocused={isFocused} {...props} />\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 PressableProps {\n onPress: PressableProps['onPress'];\n}\n\n// Don't use styled.Pressable here - babel-plugin-styled-components-react-native-web only supports tagged templates\nconst OverlayPressable = styled(Pressable)(({ theme }) => ({\n ...StyleSheet.absoluteFillObject,\n backgroundColor: theme.kitt.colors.overlay.dark,\n}));\n\nexport function Overlay({ onPress }: OverlayProps): ReactElement {\n return <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 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, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n testID?: IconButtonContentProps['testID'];\n accessibilityLabel?: IconButtonContentProps['accessibilityLabel'];\n accessibilityRole?: IconButtonContentProps['accessibilityRole'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n testID,\n accessibilityRole = 'button',\n accessibilityLabel,\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole={accessibilityRole}\n disabled={disabled}\n color={color}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport 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 { 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 DateTimePicker from '@react-native-community/datetimepicker';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport type { ComponentProps, ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\n\ntype DateTimePickerProps = ComponentProps<typeof DateTimePicker>;\n\nfunction getDatePickerDisplayMode(): DateTimePickerProps['display'] {\n if (Platform.OS === 'android') return 'calendar';\n\n if (Platform.OS === 'ios') return 'spinner';\n\n return 'default';\n}\n\nexport interface PlatformDateTimePickerProps {\n value?: Date;\n defaultDate?: Date;\n maximumDate?: DateTimePickerProps['maximumDate'];\n minimuDate?: DateTimePickerProps['minimumDate'];\n testID?: DateTimePickerProps['testID'];\n onChange: (newDate?: Date) => void;\n}\n\nexport function PlatformDateTimePicker({\n value,\n defaultDate = new Date(),\n maximumDate,\n minimuDate,\n testID,\n onChange,\n}: PlatformDateTimePickerProps): ReactElement {\n const theme = useTheme();\n const displayMode = getDatePickerDisplayMode();\n\n const iosProps = Platform.OS === 'ios' ? { textColor: theme.kitt.colors.primary } : {};\n\n return (\n <DateTimePicker\n is24Hour\n testID={testID}\n value={value || defaultDate}\n mode=\"date\"\n maximumDate={maximumDate}\n minimumDate={minimuDate}\n display={displayMode}\n {...iosProps}\n onChange={(_event: DateTimePickerEvent, date?: Date | undefined) => onChange(date)}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Text } from 'react-native';\nimport { Button } from '../../Button/Button';\nimport { Modal } from '../../Modal/Modal';\nimport { Typography } from '../../typography/Typography';\nimport type { PlatformDateTimePickerProps } from './PlatformDateTimePicker';\nimport { PlatformDateTimePicker } from './PlatformDateTimePicker';\n\ninterface ModalTitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction ModalTitle({ children }: ModalTitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalPlatformDateTimePickerProps extends PlatformDateTimePickerProps {\n title?: ReactNode;\n isVisible?: boolean;\n validateButtonLabel?: string;\n onClose: () => void;\n}\n\nexport function ModalPlatformDateTimePicker({\n title,\n isVisible,\n value,\n validateButtonLabel,\n onClose,\n onChange,\n ...props\n}: ModalPlatformDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue((prev) => {\n return newDate || prev;\n });\n };\n\n return (\n <Modal visible={Boolean(isVisible)} onClose={handleClose}>\n {isVisible ? (\n <>\n {title ? <ModalTitle>{title}</ModalTitle> : null}\n\n <Modal.Body>\n <PlatformDateTimePicker {...props} value={currentValue} onChange={handleChange} />\n </Modal.Body>\n\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { Platform } from 'react-native';\nimport { DatePickerAndroid } from './DatePickerAndroid';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport { ModalPlatformDateTimePicker } from './ModalPlatformDateTimePicker';\nimport type { DatePickerProps } from './types';\n\nexport function DatePicker({\n value,\n pickerUITestID,\n pickerUITitle,\n pickerUIValidateButtonLabel,\n onChange,\n onFocus,\n onBlur,\n pickerDefaultDate,\n ...props\n}: DatePickerProps): ReactElement {\n const [isPickerUIVisible, setIsPickerUIVisible] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [currentValue, setCurrentValue] = useState<Date | undefined>(value);\n\n if (Platform.OS === 'android') {\n return (\n <DatePickerAndroid\n pickerDefaultDate={pickerDefaultDate}\n pickerUITestID={pickerUITestID}\n currentValue={currentValue}\n setCurrentValue={setCurrentValue}\n isFocused={isFocused}\n setIsFocused={setIsFocused}\n onChange={onChange}\n onBlur={onBlur}\n {...props}\n />\n );\n }\n\n const handleModalOpen = (): void => {\n if (onFocus) onFocus();\n\n setIsPickerUIVisible(true);\n\n setIsFocused(true);\n };\n\n const handleModalClose = (): void => {\n if (onBlur) onBlur();\n\n setIsPickerUIVisible(false);\n\n setIsFocused(false);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue(newDate);\n\n onChange(newDate);\n\n handleModalClose();\n };\n return (\n <>\n <DatePickerInputs\n handleModalOpen={handleModalOpen}\n currentValue={currentValue}\n isFocused={isFocused}\n {...props}\n />\n <ModalPlatformDateTimePicker\n testID={pickerUITestID}\n value={currentValue}\n isVisible={isPickerUIVisible}\n title={pickerUITitle}\n validateButtonLabel={pickerUIValidateButtonLabel}\n defaultDate={pickerDefaultDate}\n onClose={handleModalClose}\n onChange={handleChange}\n />\n </>\n );\n}\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface InputTextContainerProps {\n children: NonNullable<ReactNode>;\n $isDisabled?: boolean;\n}\n\nexport const InputTextContainer = styled.View<InputTextContainerProps>`\n position: relative;\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 /* FIXME: text input is not vertically centered on iOS because of bigger line-height */\n ${styledTextInputMixin}\n padding: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') {\n return theme.kitt.forms.input.padding.iOSSingleLine;\n }\n\n return theme.kitt.forms.input.padding.default;\n }};\n line-height: ${({ theme, multiline }) => {\n if (!multiline && Platform.OS === 'ios') return 0;\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n return `${theme.kitt.typography.types.bodies.configs.body[typeConfigKey].lineHeight}px`;\n }};\n width: 100%;\n min-height: ${({ $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 = 0,\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 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 type { ReactElement } from 'react';\nimport { cloneElement, useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nexport interface SpinningIconProps {\n icon: ReactElement;\n color?: string;\n}\n\nexport function SpinningIcon({ icon, color }: SpinningIconProps): ReactElement {\n if (process.env.NODE_ENV !== 'production' && !color) {\n throw new Error(`Invalid color passed to SpinningIcon: ${String(color)}`);\n }\n const clonedIcon = cloneElement(icon, { color });\n const animationRef = useRef(new Animated.Value(0));\n\n const rotation = animationRef.current.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'test') return undefined;\n\n const animation = Animated.loop(\n Animated.timing(animationRef.current, {\n toValue: 1,\n duration: 1100,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n );\n animation.start();\n return () => {\n if (process.env.NODE_ENV === 'test') return undefined;\n\n animation.stop();\n return undefined;\n };\n }, []);\n\n return <Animated.View style={{ transform: [{ rotate: rotation }] }}>{clonedIcon}</Animated.View>;\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 { 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 type { ReactElement } from 'react';\nimport { ActivityIndicator, Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\n\nexport type PageLoaderProps = Record<string, never>;\n\nfunction getActivityIndicatorSize(size: number): number | 'small' | 'large' {\n if (Platform.OS === 'android') return size;\n return size < 36 ? 'small' : 'large';\n}\n\nexport function PageLoader(props: PageLoaderProps): ReactElement {\n const theme = useTheme();\n const { size } = theme.kitt.pageLoader;\n const colorHex = theme.kitt.typography.colors.primary;\n return <ActivityIndicator testID=\"ActivityIndicator\" color={colorHex} size={getActivityIndicatorSize(size)} />;\n}\n","import { LinearGradient } from 'expo-linear-gradient';\nimport type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n Easing,\n interpolate,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\n\ninterface SkeletonProps {\n isLoading?: boolean;\n width: number;\n}\n\nconst Container = styled.View`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n border-color: ${({ theme }) => theme.kitt.skeleton.flareColor};\n height: 100%;\n width: 100%;\n`;\nconst AnimatedLinearGradient = Animated.createAnimatedComponent(LinearGradient);\n\nexport function SkeletonContent({ isLoading, width }: SkeletonProps): ReactElement {\n const theme = useTheme();\n const sharedX = useSharedValue(0);\n\n useEffect(() => {\n if (isLoading) {\n sharedX.value = withRepeat(\n withTiming(1, { duration: theme.kitt.skeleton.animationDuration, easing: Easing.inOut(Easing.ease) }),\n -1,\n );\n }\n }, [sharedX, width, isLoading, theme]);\n\n const linearGradientStyle = useAnimatedStyle(() => {\n return {\n transform: [{ translateX: interpolate(sharedX.value, [0, 1], [-width, width]) }],\n };\n });\n\n return (\n <Container>\n <AnimatedLinearGradient\n colors={[\n theme.kitt.skeleton.backgroundColor,\n theme.kitt.skeleton.flareColor,\n theme.kitt.skeleton.backgroundColor,\n ]}\n locations={[0.1, 0.5, 0.9]}\n start={{ x: 0, y: 0 }}\n end={{ x: 1, y: 0 }}\n style={[StyleSheet.absoluteFill, linearGradientStyle]}\n />\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\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, ReactNode } from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}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 { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Platform, Text } from 'react-native';\nimport { Button } from '../Button/Button';\nimport { Modal } from '../Modal/Modal';\nimport { Typography } from '../typography/Typography';\n\ninterface TitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction Title({ children }: TitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalDateTimePickerProps {\n title?: ReactNode;\n visible?: boolean;\n value: Date;\n validateButtonLabel?: string;\n onClose: () => void;\n onChange: (newDate: Date) => void;\n}\n\nexport function ModalDateTimePicker({\n title,\n visible,\n value,\n validateButtonLabel,\n onChange,\n onClose,\n}: ModalDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n return (\n <Modal visible={Boolean(visible)} onClose={handleClose}>\n {visible ? (\n <>\n {title ? <Title>{title}</Title> : null}\n\n <Modal.Body>\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={currentValue}\n mode=\"time\"\n display={Platform.OS === 'ios' ? 'spinner' : 'default'}\n onChange={(_event: DateTimePickerEvent, date?: Date) =>\n setCurrentValue((prev) => {\n return date || prev;\n })\n }\n />\n </Modal.Body>\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { InputUIState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\n\nexport const formatNumberToTimeString = (time: number): string => `${String(time).padStart(2, '0')}`;\n\nexport const formatDateToTimeString = (date: Date): string =>\n `${formatNumberToTimeString(date.getHours())}:${formatNumberToTimeString(date.getMinutes())}`;\n\nexport const useTimePicker = (\n value: Date | null,\n onChange: (time?: Date | null) => void,\n onBlur: () => void,\n disabled: boolean,\n defaultValue?: Date | null,\n): {\n displayedValue: string;\n dateTimePickerValue: Date;\n timePickerState: InputUIState;\n isTimePickerModalVisible: boolean;\n handleInputPress: () => void;\n handleModalClose: () => void;\n handleTimeChange: (date?: Date) => void;\n} => {\n const [isTimePickerModalVisible, setIsTimePickerModalVisible] = useState<boolean>(false);\n\n const todayAtNoon = useMemo(() => {\n const now = new Date(2000, 0, 1, 12);\n return new Date(now.getFullYear(), now.getMonth(), now.getDay(), 12);\n }, []);\n\n const defaultDate = defaultValue || todayAtNoon;\n const handleInputPress = (): void => {\n if (disabled) {\n return;\n }\n setIsTimePickerModalVisible(true);\n };\n\n const handleTimeChange = (date?: Date | null): void => {\n setIsTimePickerModalVisible(false);\n\n onChange(date || defaultDate);\n onBlur();\n };\n\n const dateTimePickerValue = value || defaultDate;\n const displayedValue = value === null ? timePickerPlaceholder : formatDateToTimeString(dateTimePickerValue);\n const timePickerState = isTimePickerModalVisible ? 'focus' : 'default';\n\n return {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n isTimePickerModalVisible,\n handleInputPress,\n handleTimeChange,\n handleModalClose: () => setIsTimePickerModalVisible(false),\n };\n};\n","import type { TextInputMixinProps } from '@ornikar/kitt-universal';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { styledTextInputMixin } from '../forms/styledTextInputMixin';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\ninterface ContainerProps extends TextInputMixinProps {}\n\nconst Container = styled.Pressable<ContainerProps>`\n ${styledTextInputMixin}\n width: 100px;\n height: 40px;\n justify-content: center;\n align-items: center;\n`;\n\nexport type TimePickerValue = Date | null | undefined;\n\nexport interface TimePickerProps {\n title?: ReactNode;\n state?: TextInputMixinProps['$state'];\n disabled?: boolean;\n forceDefaultValue?: TimePickerValue;\n value?: Date | '' | null;\n validateButtonLabel?: string;\n onChange: (time: TimePickerValue) => void;\n onBlur: () => void;\n}\n\nexport function TimePicker({\n title,\n state = 'default',\n disabled = false,\n forceDefaultValue,\n value,\n validateButtonLabel,\n onChange,\n onBlur,\n}: TimePickerProps): ReactElement {\n const {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n handleInputPress,\n handleModalClose,\n handleTimeChange,\n isTimePickerModalVisible,\n } = useTimePicker(value || null, onChange, onBlur, disabled, forceDefaultValue);\n\n return (\n <Container\n $state={timePickerState === 'default' ? state : timePickerState}\n accessibilityRole=\"button\"\n onPress={handleInputPress}\n >\n <Typography.Text base=\"body\" color={displayedValue === timePickerPlaceholder ? 'black-light' : 'black'}>\n {displayedValue}\n </Typography.Text>\n\n {Platform.OS === 'android' && isTimePickerModalVisible ? (\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={dateTimePickerValue}\n mode=\"time\"\n display=\"default\"\n onChange={(_event: DateTimePickerEvent, date?: Date) => handleTimeChange(date)}\n />\n ) : null}\n\n {Platform.OS !== 'android' ? (\n <ModalDateTimePicker\n title={title}\n visible={isTimePickerModalVisible}\n value={dateTimePickerValue}\n validateButtonLabel={validateButtonLabel}\n onChange={handleTimeChange}\n onClose={handleModalClose}\n />\n ) : null}\n </Container>\n );\n}\n","import { 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, offset, shift, useFloating } from '@floating-ui/react-native';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useEffect } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultPosition } from './tooltipUtils';\n\nexport type TooltipPosition = 'bottom' | 'top';\nexport type WebFloatingPosition = 'fixed' | 'absolute';\n\n// Since the tooltip use absolute positionning, we need a parent to provide the relative root\nconst TooltipContainer = styled.View`\n position: relative;\n align-self: baseline;\n`;\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n floatingPadding?: number;\n position?: TooltipPosition;\n /**\n * @description\n * This value init the internal visibile state of the tooltip. This is mainly used for testing purpose.\n */\n defaultVisible?: boolean;\n // eslint-disable-next-line react/no-unused-prop-types\n fullWidth?: boolean;\n /**\n * @default absolute\n * @description\n * Specific position strategy to apply to the tooltip.\n * Might be usefull when dealing with edge case (see https://floating-ui.com/docs/misc#z-index-stacking).\n */\n // eslint-disable-next-line react/no-unused-prop-types\n floatingStrategy?: {\n web: WebFloatingPosition;\n };\n onUpdate?: (tooltipConfig: any) => void;\n}\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : update position on scroll in future iteration\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const pressed = useSharedValue(defaultVisible);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? theme.kitt.tooltip.opacity : 0),\n };\n });\n\n const handlePress = (): void => {\n pressed.value = !pressed.value;\n };\n\n const { x, y, reference, floating, update, refs, middlewareData } = useFloating({\n placement: position,\n middleware: [offset(padding), shift(), flip({ padding })],\n });\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy: 'absolute',\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, update, refs, middlewareData, onUpdate]);\n\n return (\n <TooltipContainer>\n <View ref={reference}>\n <Pressable accessibilityRole=\"button\" onPress={handlePress}>\n {children}\n </Pressable>\n </View>\n\n <View\n ref={floating}\n accessibilityElementsHidden={!pressed.value}\n importantForAccessibility={pressed.value === true ? 'auto' : 'no-hide-descendants'}\n style={{\n ...StyleSheet.absoluteFillObject,\n top: y && position === 'bottom' ? y : undefined,\n bottom: y && position === 'top' ? y : undefined,\n left: x ?? 0,\n }}\n >\n <Animated.View style={[opacityStyles]}>\n <TooltipView position={position}>{content}</TooltipView>\n </Animated.View>\n </View>\n </TooltipContainer>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n 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","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"],"names":["defaultIconSize","IconContainer","styled","View","$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","Text","$isHeader","$typeForCurrentWindowSize","$variant","typeConfigKey","fontFamily","fontSize","lineHeight","fontWeight","fontStyle","colors","useTypographyTypeForCurrentWindowSize","base","small","medium","large","useWindowDimensions","width","getTypographyInheritedOrDefaultValuesBasedOnExistingAncestors","hasTypographyAncestor","Typography","accessibilityRole","variant","otherProps","isHeaderTypographyInContext","baseOrDefaultToBody","colorOrDefaultToBlack","typeForCurrentWindowSize","isHeader","nonNullableVariant","content","TypographyText","props","TypographyParagraph","Platform","OS","createHeading","level","defaultBase","TypographyHeading","displayName","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","hasVariant","button","getVariantValuesIfExist","StyledPressable","Pressable","$isStretch","StyledAnimatedView","Animated","AnimatedButtonPressable","forwardRef","ref","children","disabled","$type","href","hrefAttrs","testID","onPress","useTheme","pressed","useSharedValue","pressedBackgroundColor","scale","scaleStyles","useAnimatedStyle","interpolateColor","value","transform","withSpring","active","handlePressInOut","pressIn","BaseStyledButtonPressable","maxWidth","minHeight","$isDisabled","$isLarge","contentPadding","defaultPadding","disabledPadding","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","isSubtle","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","spacing","ButtonIcon","iconPosition","StyledChildrenWithIcon","ButtonContentChildren","isDisabled","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","StyledDisabled","borderWidth","borderColor","Button","stretch","__DEV__","Container","card","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","handleOnPress","e","defaultPrevented","WebBrowser","err","console","error","Linking","openURL","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","hover","black","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","focus","transition","duration","timingFunction","hoverBackgroundColor","focusBorderColor","ghost","hoverColor","activeColor","subtle","secondary","feedbackMessage","checkbox","iconSize","checkedBorderColor","checkedBackgroundColor","markColor","datePicker","day","month","year","calcLineHeight","lineHeightMultiplier","Math","createTypographyTypeConfig","baseAndSmallFontSize","mediumAndWideFontSize","baseAndSmall","mediumAndWide","regular","bold","header1","header2","header3","header4","header5","body","link","disabledColor","inputStatesStyle","pending","valid","invalid","input","selection","placeholder","padding","iOSSingleLine","property","states","inputField","labelContainerPaddingBottom","iconMarginLeft","inputTag","labelColor","radio","unchecked","checked","innerSize","innerBackgroundColor","textArea","forms","fullScreenModal","header","paddingVertical","paddingHorizontal","iconButton","listItem","innerMargin","pageLoader","shadows","skeleton","flareColor","animationDuration","tag","fill","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","css","$hasLabel","Checkbox","onChange","onBlur","onFocus","hitSlop","id","handlePress","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","DatePickerAndroid","pickerDefaultDate","pickerUITestID","setIsFocused","setCurrentValue","handleClose","DateTimePickerAndroid","open","Date","now","timestamp","nativeEvent","date","onTouchCancel","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","PressableIconButton","AnimatedIconButtonBackground","AnimatedViewContainer","PressableAnimatedContainer","accessibilityLabel","opacityStyles","IconButtonContentBorder","IconButtonContent","IconButton","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","left","right","onClose","ModalView","ContentView","Modal","visible","onEntered","onExited","NativeModal","Header","Body","Footer","getDatePickerDisplayMode","PlatformDateTimePicker","defaultDate","maximumDate","minimuDate","displayMode","iosProps","textColor","_event","ModalTitle","ModalPlatformDateTimePicker","title","isVisible","validateButtonLabel","useState","handleChange","newDate","prev","handleSubmit","DatePicker","pickerUITitle","pickerUIValidateButtonLabel","isPickerUIVisible","setIsPickerUIVisible","handleModalClose","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","autoCorrect","textContentType","autoCompleteType","keyboardType","onSubmitEditing","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","setIsVisible","InputPhone","getTypographyColor","InputTagContainer","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","layout","FullScreenModal","SpinningIcon","process","env","NODE_ENV","String","animationRef","useRef","Value","rotation","current","interpolate","inputRange","outputRange","useEffect","animation","loop","timing","toValue","easing","Easing","linear","useNativeDriver","start","stop","rotate","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","LoaderIcon","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","Notification","onDelete","getActivityIndicatorSize","PageLoader","colorHex","AnimatedLinearGradient","createAnimatedComponent","LinearGradient","SkeletonContent","isLoading","sharedX","withRepeat","withTiming","inOut","ease","linearGradientStyle","translateX","x","y","absoluteFill","SkeletonContainer","Skeleton","setWidth","Bar","Circle","Square","Flex","withConfig","shouldForwardProp","prop","defaultValidatorFn","includes","direction","storyPadding","getBackgroundColorFromBlockColor","getTypographyColorFromBlockColor","StoryBlockBackgroundContext","StoryBlockColorContext","useStoryBlockColor","storyBlockColor","StyledStoryBlockView","background","StoryBlock","StoryTitleContainer","StorySubTitleContainer","StoryTitle","numberOfLines","StoryTitleLevel2","StoryTitleLevel3","StoryTitleLevel4","Level2","Level3","Level4","StoryContainer","ScrollView","Story","contentContainerStyle","StyledSection","StorySection","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","isNative","StoryGrid","Row","Col","getLabelColor","Tag","Title","ModalDateTimePicker","timePickerPlaceholder","formatNumberToTimeString","time","formatDateToTimeString","getHours","getMinutes","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","getDay","dateTimePickerValue","displayedValue","timePickerState","handleInputPress","handleTimeChange","TimePicker","forceDefaultValue","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","TooltipContainer","Tooltip","defaultVisible","onUpdate","useFloating","placement","middleware","offset","shift","flip","reference","floating","update","refs","middlewareData","strategy","bottom","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","r","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match","withTheme","WrappedComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser-all.es.ios.js","sources":["../src/Icon/Icon.tsx","../src/KittBreakpoints.ts","../src/typography/Typography.tsx","../src/Avatar/Avatar.tsx","../src/Button/getVariantValuesIfExist.ts","../src/Button/AnimatedButtonPressable.tsx","../src/Button/BaseStyledButtonPressable.tsx","../src/typography/TypographyIcon.tsx","../src/Button/isSubtle.ts","../src/Button/ButtonContent.tsx","../src/Button/StyledDisabled.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Emoji/Emoji.tsx","../src/ExternalLink/ExternalLinkOpenLinkBehavior.ts","../src/ExternalLink/ExternalLink.tsx","../src/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/DatePickerAndroid.tsx","../src/Overlay/Overlay.tsx","../src/Modal/Body.tsx","../src/Modal/Footer.tsx","../src/utils/StyleWebWrapper.tsx","../src/IconButton/PressableIconButton.tsx","../src/IconButton/PressableAnimatedContainer.tsx","../src/IconButton/IconButton.tsx","../src/Modal/OnCloseContext.ts","../src/Modal/Header.tsx","../src/Modal/Modal.tsx","../src/forms/DatePicker/PlatformDateTimePicker.tsx","../src/forms/DatePicker/ModalPlatformDateTimePicker.tsx","../src/forms/DatePicker/DatePicker.tsx","../src/forms/InputText/InputTextContainer.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.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/Notification/Notification.tsx","../src/PageLoader/AnimatedLoaderCircle.tsx","../src/PageLoader/AnimatedBackgroundCircle.tsx","../src/PageLoader/AnimatedFillCircleContainer.tsx","../src/PageLoader/AnimatedFillCircle.tsx","../src/PageLoader/PageLoader.tsx","../src/Skeleton/SkeletonContent.tsx","../src/Skeleton/Skeleton.tsx","../src/story-components/Flex.tsx","../src/story-components/theme.ts","../src/story-components/StoryBlock.tsx","../src/story-components/StoryTitle.tsx","../src/story-components/Story.tsx","../src/story-components/StorySection.tsx","../src/story-components/StoryContainer.tsx","../src/story-components/StoryDecorator.tsx","../src/story-components/StoryGrid.tsx","../src/Tag/Tag.tsx","../src/TimePicker/ModalDateTimePicker.tsx","../src/TimePicker/useTimePicker.ts","../src/TimePicker/TimePicker.tsx","../src/Tooltip/TooltipView.tsx","../src/Tooltip/tooltipUtils.ts","../src/Tooltip/Tooltip.tsx","../src/typography/TypographyEmoji.tsx","../src/typography/TypographyLink.tsx","../src/utils/hexToRgba.ts","../src/utils/storybook/KittThemeDecorator.tsx","../src/utils/windowSize/MatchWindowSize.tsx","../src/utils/withTheme.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 { 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 { ReactElement } from 'react';\nimport { forwardRef } from 'react';\nimport type { PressableProps, View } from 'react-native';\nimport Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { ButtonType, ButtonVariant } from './Button';\nimport { getVariantValuesIfExist } from './getVariantValuesIfExist';\n\nexport interface StyledPressableProps extends PressableProps {\n $isStretch?: boolean;\n $type: ButtonType;\n}\n\nconst StyledPressable = styled.Pressable<StyledPressableProps>`\n ${({ $isStretch }) => {\n if ($isStretch) return undefined;\n\n return 'align-self: flex-start;';\n }}\n`;\n\nconst StyledAnimatedView = styled(Animated.View)`\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\n`;\n\nexport interface AnimatedButtonPressableProps extends PressableProps {\n accessibilityRole: NonNullable<PressableProps['accessibilityRole']>;\n $type: ButtonType;\n $variant: ButtonVariant;\n $isStretch?: boolean;\n}\n\nexport const AnimatedButtonPressable = forwardRef<View, AnimatedButtonPressableProps>(\n (\n {\n children,\n disabled,\n accessibilityRole,\n $type,\n $variant,\n $isStretch,\n href,\n hrefAttrs,\n testID,\n onPress,\n }: AnimatedButtonPressableProps,\n ref,\n ): ReactElement => {\n const theme = useTheme();\n const pressed = useSharedValue<0 | 1>(0);\n const color = useSharedValue(0);\n\n const { backgroundColor, pressedBackgroundColor } = getVariantValuesIfExist(theme, $type, $variant);\n const { scale } = theme.kitt.button;\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n backgroundColor: interpolateColor(color.value, [0, 1], [backgroundColor, pressedBackgroundColor]),\n transform: [\n {\n scale: withSpring(pressed.value ? scale.base.active : scale.base.default),\n },\n ],\n };\n });\n\n const handlePressInOut = (pressIn: boolean): void => {\n color.value = withSpring(pressIn ? 1 : 0);\n pressed.value = pressIn ? 1 : 0;\n };\n\n return (\n <StyledPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole={accessibilityRole}\n testID={testID}\n href={href}\n hrefAttrs={hrefAttrs}\n $isStretch={$isStretch}\n $type={$type}\n onPress={onPress}\n onPressIn={() => {\n handlePressInOut(true);\n }}\n onPressOut={() => {\n handlePressInOut(false);\n }}\n >\n <StyledAnimatedView style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n {children}\n </StyledAnimatedView>\n </StyledPressable>\n );\n },\n);\n","import type { ViewProps } from 'react-native';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { ButtonType, 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 { ButtonType, SubtleButtonType } from './Button';\n\nexport function isSubtle(type: ButtonType): type is SubtleButtonType {\n return type.startsWith('subtle');\n}\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { Except } from 'type-fest';\nimport type { TypographyColor, TypographyTextProps } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\nimport type { TypographyIconProps } from '../typography/TypographyIcon';\nimport { TypographyIcon } from '../typography/TypographyIcon';\nimport type { ButtonProps, ButtonType, 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 styled from 'styled-components/native';\n\nexport const StyledDisabled = styled.View`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: ${({ theme }) => {\n const { borderWidth, disabled } = theme.kitt.button;\n return `${borderWidth.disabled}px solid ${disabled.default.borderColor}`;\n }};\n border-radius: ${({ theme }) => theme.kitt.button.borderRadius}px;\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 * as WebBrowser from 'expo-web-browser';\nimport type { ComponentProps, ReactElement, VoidFunctionComponent } from 'react';\nimport type { PressableProps, TextProps } from 'react-native';\nimport { Linking } from 'react-native';\nimport type { ExternalLinkOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\nimport { defaultOpenLinkBehavior } from './ExternalLinkOpenLinkBehavior';\n\nexport interface ExternalLinkAsComponentMinimumRequiredProps {\n href?: TextProps['href'];\n hrefAttrs?: TextProps['hrefAttrs'];\n onPress?: PressableProps['onPress'];\n}\n\nexport interface ExternalLinkProps<C extends VoidFunctionComponent<any>> {\n as: C;\n openLinkBehavior?: ExternalLinkOpenLinkBehavior;\n href?: string;\n onPress?: PressableProps['onPress'];\n}\n\n/** @internal for ExternalLink.web.tsx only */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type ExternalLinkSendableComponentProps<C extends VoidFunctionComponent<any>> = Omit<\n ComponentProps<C>,\n keyof ExternalLinkProps<C> & keyof ExternalLinkAsComponentMinimumRequiredProps\n>;\n\nexport function ExternalLink<C extends VoidFunctionComponent<any>>({\n as: Component,\n href,\n openLinkBehavior = defaultOpenLinkBehavior,\n onPress,\n ...rest\n}: ExternalLinkProps<C> & ExternalLinkSendableComponentProps<C>): ReactElement {\n const handleOnPress: PressableProps['onPress'] = (e) => {\n if (onPress) {\n onPress(e);\n if (e?.defaultPrevented) return;\n }\n\n if (!href) return;\n\n switch (openLinkBehavior.native) {\n case 'openInModal':\n case undefined:\n WebBrowser.openBrowserAsync(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n case 'openBrowserApp':\n Linking.openURL(href).catch((err) => {\n console.error(`An error occurred while opening ${href}`, err);\n });\n break;\n default:\n if (__DEV__) {\n throw new Error(`Invalid ExternalLink native behavior: ${openLinkBehavior.native as string}`);\n }\n }\n };\n\n return <Component {...(rest as any)} onPress={handleOnPress} />;\n}\n","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 { DateTimePickerAndroid } from '@react-native-community/datetimepicker';\nimport type { ReactElement } from 'react';\nimport type { Except } from 'type-fest';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport type { DatePickerProps } from './types';\n\ninterface DatePickerAndroidProps\n extends Except<DatePickerProps, 'pickerUITitle' | 'pickerUIValidateButtonLabel' | 'value'> {\n isFocused: boolean;\n setIsFocused: (isFocused: boolean) => void;\n currentValue: Date | undefined;\n setCurrentValue: (value: Date | undefined) => void;\n}\n\nexport function DatePickerAndroid({\n onBlur,\n onFocus,\n pickerDefaultDate,\n pickerUITestID,\n setIsFocused,\n currentValue,\n setCurrentValue,\n onChange,\n isFocused,\n ...props\n}: DatePickerAndroidProps): ReactElement {\n const handleClose = (): void => {\n if (onBlur) onBlur();\n };\n\n const handleModalOpen = (): void => {\n setIsFocused(true);\n if (onFocus) onFocus();\n\n DateTimePickerAndroid.open({\n testID: pickerUITestID,\n value: currentValue || pickerDefaultDate || new Date(Date.now()),\n onChange: (e) => {\n setIsFocused(false);\n const { timestamp } = e.nativeEvent;\n if (timestamp) {\n const date = new Date(timestamp);\n\n setCurrentValue(date);\n onChange(date);\n handleClose();\n }\n },\n onTouchCancel: handleClose,\n });\n };\n\n return (\n <DatePickerInputs handleModalOpen={handleModalOpen} currentValue={currentValue} isFocused={isFocused} {...props} />\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 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, ReactNode } from 'react';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport type { IconButtonContentProps } from './IconButton';\nimport type { PressableIconButtonProps } from './PressableIconButton';\nimport { PressableIconButton } from './PressableIconButton';\n\nexport interface PressableAnimatedContainerProps {\n children: NonNullable<ReactNode>;\n disabled?: boolean;\n color: IconButtonContentProps['color'];\n testID?: IconButtonContentProps['testID'];\n accessibilityLabel?: IconButtonContentProps['accessibilityLabel'];\n accessibilityRole?: IconButtonContentProps['accessibilityRole'];\n onPress: NonNullable<PressableIconButtonProps['onPress']>;\n}\n\ninterface AnimatedIconButtonBackgroundProps {\n color: IconButtonContentProps['color'];\n disabled?: boolean;\n}\n\nconst AnimatedIconButtonBackground = styled(Animated.View)<AnimatedIconButtonBackgroundProps>`\n background-color: ${({ theme, color, disabled }) => {\n const { iconButton } = theme.kitt;\n if (disabled) return iconButton.disabled.backgroundColor;\n\n if (color === 'white') return iconButton.white.pressedBackgroundColor;\n\n return iconButton.default.pressedBackgroundColor;\n }};\n border-radius: ${({ theme }) => theme.kitt.iconButton.borderRadius}px;\n width: ${({ theme }) => theme.kitt.iconButton.width}px;\n height: ${({ theme }) => theme.kitt.iconButton.height}px;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst AnimatedViewContainer = styled(Animated.View)`\n position: relative;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n`;\n\nexport function PressableAnimatedContainer({\n disabled,\n color = 'black',\n testID,\n accessibilityRole = 'button',\n accessibilityLabel,\n children,\n onPress,\n}: PressableAnimatedContainerProps): ReactElement {\n const theme = useTheme();\n const pressed = useSharedValue(false);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? 1 : 0),\n };\n });\n\n const scaleStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n scale: withSpring(\n pressed.value ? theme.kitt.iconButton.scale.base.active : theme.kitt.iconButton.scale.base.default,\n ),\n },\n ],\n };\n });\n\n return (\n <PressableIconButton\n accessibilityRole={accessibilityRole}\n disabled={disabled}\n color={color}\n testID={testID}\n accessibilityLabel={accessibilityLabel}\n onPress={onPress}\n onPressIn={() => {\n pressed.value = true;\n }}\n onPressOut={() => {\n pressed.value = false;\n }}\n >\n <AnimatedViewContainer style={disabled ? [{ transform: [{ scale: 1 }] }] : [scaleStyles]}>\n <AnimatedIconButtonBackground\n disabled={disabled}\n color={color}\n style={disabled ? [{ opacity: 1 }] : [opacityStyles]}\n />\n {children}\n </AnimatedViewContainer>\n </PressableIconButton>\n );\n}\n","import type { ReactElement } from 'react';\nimport 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 { 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 DateTimePicker from '@react-native-community/datetimepicker';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport type { ComponentProps, ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport { useTheme } from 'styled-components/native';\n\ntype DateTimePickerProps = ComponentProps<typeof DateTimePicker>;\n\nfunction getDatePickerDisplayMode(): DateTimePickerProps['display'] {\n if (Platform.OS === 'android') return 'calendar';\n\n if (Platform.OS === 'ios') return 'spinner';\n\n return 'default';\n}\n\nexport interface PlatformDateTimePickerProps {\n value?: Date;\n defaultDate?: Date;\n maximumDate?: DateTimePickerProps['maximumDate'];\n minimuDate?: DateTimePickerProps['minimumDate'];\n testID?: DateTimePickerProps['testID'];\n onChange: (newDate?: Date) => void;\n}\n\nexport function PlatformDateTimePicker({\n value,\n defaultDate = new Date(),\n maximumDate,\n minimuDate,\n testID,\n onChange,\n}: PlatformDateTimePickerProps): ReactElement {\n const theme = useTheme();\n const displayMode = getDatePickerDisplayMode();\n\n const iosProps = Platform.OS === 'ios' ? { textColor: theme.kitt.colors.primary } : {};\n\n return (\n <DateTimePicker\n is24Hour\n testID={testID}\n value={value || defaultDate}\n mode=\"date\"\n maximumDate={maximumDate}\n minimumDate={minimuDate}\n display={displayMode}\n {...iosProps}\n onChange={(_event: DateTimePickerEvent, date?: Date | undefined) => onChange(date)}\n />\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Text } from 'react-native';\nimport { Button } from '../../Button/Button';\nimport { Modal } from '../../Modal/Modal';\nimport { Typography } from '../../typography/Typography';\nimport type { PlatformDateTimePickerProps } from './PlatformDateTimePicker';\nimport { PlatformDateTimePicker } from './PlatformDateTimePicker';\n\ninterface ModalTitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction ModalTitle({ children }: ModalTitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalPlatformDateTimePickerProps extends PlatformDateTimePickerProps {\n title?: ReactNode;\n isVisible?: boolean;\n validateButtonLabel?: string;\n onClose: () => void;\n}\n\nexport function ModalPlatformDateTimePicker({\n title,\n isVisible,\n value,\n validateButtonLabel,\n onClose,\n onChange,\n ...props\n}: ModalPlatformDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue((prev) => {\n return newDate || prev;\n });\n };\n\n return (\n <Modal visible={Boolean(isVisible)} onClose={handleClose}>\n {isVisible ? (\n <>\n {title ? <ModalTitle>{title}</ModalTitle> : null}\n\n <Modal.Body>\n <PlatformDateTimePicker {...props} value={currentValue} onChange={handleChange} />\n </Modal.Body>\n\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport { Platform } from 'react-native';\nimport { DatePickerAndroid } from './DatePickerAndroid';\nimport { DatePickerInputs } from './DatePickerInputs';\nimport { ModalPlatformDateTimePicker } from './ModalPlatformDateTimePicker';\nimport type { DatePickerProps } from './types';\n\nexport function DatePicker({\n value,\n pickerUITestID,\n pickerUITitle,\n pickerUIValidateButtonLabel,\n onChange,\n onFocus,\n onBlur,\n pickerDefaultDate,\n ...props\n}: DatePickerProps): ReactElement {\n const [isPickerUIVisible, setIsPickerUIVisible] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [currentValue, setCurrentValue] = useState<Date | undefined>(value);\n\n if (Platform.OS === 'android') {\n return (\n <DatePickerAndroid\n pickerDefaultDate={pickerDefaultDate}\n pickerUITestID={pickerUITestID}\n currentValue={currentValue}\n setCurrentValue={setCurrentValue}\n isFocused={isFocused}\n setIsFocused={setIsFocused}\n onChange={onChange}\n onBlur={onBlur}\n {...props}\n />\n );\n }\n\n const handleModalOpen = (): void => {\n if (onFocus) onFocus();\n\n setIsPickerUIVisible(true);\n\n setIsFocused(true);\n };\n\n const handleModalClose = (): void => {\n if (onBlur) onBlur();\n\n setIsPickerUIVisible(false);\n\n setIsFocused(false);\n };\n\n const handleChange = (newDate?: Date): void => {\n setCurrentValue(newDate);\n\n onChange(newDate);\n\n handleModalClose();\n };\n return (\n <>\n <DatePickerInputs\n handleModalOpen={handleModalOpen}\n currentValue={currentValue}\n isFocused={isFocused}\n {...props}\n />\n <ModalPlatformDateTimePicker\n testID={pickerUITestID}\n value={currentValue}\n isVisible={isPickerUIVisible}\n title={pickerUITitle}\n validateButtonLabel={pickerUIValidateButtonLabel}\n defaultDate={pickerDefaultDate}\n onClose={handleModalClose}\n onChange={handleChange}\n />\n </>\n );\n}\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components/native';\n\nexport interface InputTextContainerProps {\n children: NonNullable<ReactNode>;\n $isDisabled?: boolean;\n}\n\nexport const InputTextContainer = styled.View<InputTextContainerProps>`\n position: relative;\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 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 type { ReactElement } from 'react';\nimport { cloneElement, useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nexport interface SpinningIconProps {\n icon: ReactElement;\n color?: string;\n}\n\nexport function SpinningIcon({ icon, color }: SpinningIconProps): ReactElement {\n if (process.env.NODE_ENV !== 'production' && !color) {\n throw new Error(`Invalid color passed to SpinningIcon: ${String(color)}`);\n }\n const clonedIcon = cloneElement(icon, { color });\n const animationRef = useRef(new Animated.Value(0));\n\n const rotation = animationRef.current.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'test') return undefined;\n\n const animation = Animated.loop(\n Animated.timing(animationRef.current, {\n toValue: 1,\n duration: 1100,\n easing: Easing.linear,\n useNativeDriver: true,\n }),\n );\n animation.start();\n return () => {\n if (process.env.NODE_ENV === 'test') return undefined;\n\n animation.stop();\n return undefined;\n };\n }, []);\n\n return <Animated.View style={{ transform: [{ rotate: rotation }] }}>{clonedIcon}</Animated.View>;\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 { 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 type { ReactElement } from 'react';\nimport Animated, { useAnimatedProps } from 'react-native-reanimated';\nimport type { CircleProps } from 'react-native-svg';\nimport { Circle } from 'react-native-svg';\nimport { useTheme } from 'styled-components/native';\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n\ninterface PageLoaderCircleProps {\n color: CircleProps['stroke'];\n progress: Animated.SharedValue<number>;\n}\n\nexport function AnimatedLoaderCircle({ color, progress }: PageLoaderCircleProps): ReactElement {\n const theme = useTheme();\n\n const { strokeWidth, size } = theme.kitt.pageLoader;\n\n const centerCoord = size * 0.5;\n const radius = centerCoord - strokeWidth;\n const circlePerimeter = 2 * Math.PI * (size * 0.5 - strokeWidth);\n\n const strokeAnimation = useAnimatedProps(() => {\n return {\n strokeDashoffset: circlePerimeter - circlePerimeter * progress.value,\n };\n });\n\n return (\n <AnimatedCircle\n transform-origin=\"center center\"\n strokeWidth={strokeWidth}\n stroke={color}\n strokeLinecap=\"round\"\n cx={centerCoord}\n cy={centerCoord}\n r={radius}\n fill=\"none\"\n strokeDasharray={circlePerimeter}\n animatedProps={strokeAnimation}\n />\n );\n}\n","import type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { Easing, useSharedValue, withDelay, withTiming } from 'react-native-reanimated';\nimport Svg from 'react-native-svg';\nimport { useTheme } from 'styled-components/native';\nimport { AnimatedLoaderCircle } from './AnimatedLoaderCircle';\n\nexport function AnimatedBackgroundCircle(): ReactElement {\n const theme = useTheme();\n const progress = useSharedValue(0);\n\n const { animation, colors, size } = theme.kitt.pageLoader;\n\n useEffect(() => {\n const { delay, circleBackgroundFillDuration, fillEasingFunction } = animation;\n const [x1, y1, x2, y2] = fillEasingFunction;\n\n progress.value = withDelay(\n delay,\n withTiming(1, { duration: circleBackgroundFillDuration, easing: Easing.bezier(x1, y1, x2, y2) }),\n );\n }, [progress, animation]);\n\n return (\n <Svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <AnimatedLoaderCircle color={colors.base} progress={progress} />\n </Svg>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n Easing,\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\nimport { useTheme } from 'styled-components/native';\n\nconst isInfinitAnimation = -1;\n\ninterface AnimatedFillCircleContainerProps {\n children: NonNullable<ReactNode>;\n duration: number;\n}\n\nexport function AnimatedFillCircleContainer({ children, duration }: AnimatedFillCircleContainerProps): ReactElement {\n const theme = useTheme();\n const progress = useSharedValue(0);\n\n const { animation } = theme.kitt.pageLoader;\n\n useEffect(() => {\n const { delay } = animation;\n\n progress.value = withDelay(\n delay,\n withRepeat(withTiming(1, { duration, easing: Easing.linear }), isInfinitAnimation),\n );\n }, [progress, animation, duration]);\n\n const rotationStyles = useAnimatedStyle(() => {\n return {\n transform: [\n {\n rotate: `${360 * progress.value}deg`,\n },\n ],\n };\n });\n\n return <Animated.View style={[StyleSheet.absoluteFill, rotationStyles]}>{children}</Animated.View>;\n}\n","import type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { Easing, useSharedValue, withDelay, withRepeat, withTiming } from 'react-native-reanimated';\nimport Svg from 'react-native-svg';\nimport { useTheme } from 'styled-components/native';\nimport { AnimatedFillCircleContainer } from './AnimatedFillCircleContainer';\nimport { AnimatedLoaderCircle } from './AnimatedLoaderCircle';\n\nconst isInfinitAnimation = -1;\nconst shouldReverse = true;\n\nexport function AnimatedFilledCircle(): ReactElement {\n const theme = useTheme();\n const progress = useSharedValue(0);\n\n const { size, animation, colors } = theme.kitt.pageLoader;\n\n useEffect(() => {\n const { delay, filledCircleFillDuration, fillEasingFunction } = animation;\n const [x1, y1, x2, y2] = fillEasingFunction;\n\n progress.value = withDelay(\n delay,\n withRepeat(\n withTiming(0.8, { duration: filledCircleFillDuration, easing: Easing.bezier(x1, y1, x2, y2) }),\n isInfinitAnimation,\n shouldReverse,\n ),\n );\n }, [progress, animation]);\n\n return (\n <AnimatedFillCircleContainer duration={animation.groupFilledCircleRotationDuration}>\n <AnimatedFillCircleContainer duration={animation.filledCircleRotationDuration}>\n <Svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <AnimatedLoaderCircle color={colors.fill} progress={progress} />\n </Svg>\n </AnimatedFillCircleContainer>\n </AnimatedFillCircleContainer>\n );\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport { AnimatedBackgroundCircle } from './AnimatedBackgroundCircle';\nimport { AnimatedFilledCircle } from './AnimatedFillCircle';\n\ninterface PageLoaderContainerProps {\n children: NonNullable<ReactNode>;\n}\n\nconst PageLoaderContainer = styled.View<PageLoaderContainerProps>`\n /* Needed to make the animation starting from the top of the circles */\n transform: scale(-1) rotate(90deg);\n position: relative;\n width: ${({ theme }) => theme.kitt.pageLoader.size}px;\n height: ${({ theme }) => theme.kitt.pageLoader.size}px;\n`;\n\nexport type PageLoaderProps = Record<string, never>;\n\nexport function PageLoader(props: PageLoaderProps): ReactElement {\n return (\n <PageLoaderContainer>\n <AnimatedBackgroundCircle />\n <AnimatedFilledCircle />\n </PageLoaderContainer>\n );\n}\n","import { LinearGradient } from 'expo-linear-gradient';\nimport type { ReactElement } from 'react';\nimport { useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, {\n Easing,\n interpolate,\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n} from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\n\ninterface SkeletonProps {\n isLoading?: boolean;\n width: number;\n}\n\nconst Container = styled.View`\n background-color: ${({ theme }) => theme.kitt.skeleton.backgroundColor};\n border-color: ${({ theme }) => theme.kitt.skeleton.flareColor};\n height: 100%;\n width: 100%;\n`;\nconst AnimatedLinearGradient = Animated.createAnimatedComponent(LinearGradient);\n\nexport function SkeletonContent({ isLoading, width }: SkeletonProps): ReactElement {\n const theme = useTheme();\n const sharedX = useSharedValue(0);\n\n useEffect(() => {\n if (isLoading) {\n sharedX.value = withRepeat(\n withTiming(1, { duration: theme.kitt.skeleton.animationDuration, easing: Easing.inOut(Easing.ease) }),\n -1,\n );\n }\n }, [sharedX, width, isLoading, theme]);\n\n const linearGradientStyle = useAnimatedStyle(() => {\n return {\n transform: [{ translateX: interpolate(sharedX.value, [0, 1], [-width, width]) }],\n };\n });\n\n return (\n <Container>\n <AnimatedLinearGradient\n colors={[\n theme.kitt.skeleton.backgroundColor,\n theme.kitt.skeleton.flareColor,\n theme.kitt.skeleton.backgroundColor,\n ]}\n locations={[0.1, 0.5, 0.9]}\n start={{ x: 0, y: 0 }}\n end={{ x: 1, y: 0 }}\n style={[StyleSheet.absoluteFill, linearGradientStyle]}\n />\n </Container>\n );\n}\n","import type { ReactElement } from 'react';\nimport { useState } from 'react';\nimport type { StyleProp, ViewStyle } from 'react-native';\nimport { View } from 'react-native';\nimport styled from 'styled-components/native';\nimport { SkeletonContent } from './SkeletonContent';\n\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, ReactNode } from 'react';\nimport { StorySection } from './StorySection';\n\nexport interface StoryContainerProps {\n children: NonNullable<ReactNode>;\n state?: 'none' | 'active' | 'hover' | 'focus';\n platform?: 'all' | 'native' | 'web';\n title?: ReactNode;\n}\n\nexport function StoryContainer({\n children,\n title,\n state = 'none',\n platform = 'all',\n}: StoryContainerProps): ReactElement | null {\n if (platform === 'web') return null;\n\n return (\n <StorySection.BlockSection testID={state} title={title}>\n {children}\n </StorySection.BlockSection>\n );\n}\n","import type { StoryContext } from '@storybook/addons';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Story as StoryContainer } from './Story';\n\nexport function StoryDecorator(storyFn: () => ReactNode, context: StoryContext): ReactElement {\n return <StoryContainer title={context.name}>{storyFn()}</StoryContainer>;\n}\n","import type { ReactElement, ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport styled from 'styled-components/native';\nimport type { TypographyProps } from '..';\nimport { StoryTitle } from './StoryTitle';\n\nconst SmallScreenRow = styled.View`\n flex-direction: column;\n margin: 0;\n`;\n\nconst SmallScreenCol = styled.View`\n padding: 8px 0 16px;\n`;\n\nconst FlexRow = styled.View`\n flex-direction: row;\n margin: 0 -4px 16px;\n`;\n\nconst FlexCol = styled.View`\n flex-grow: 1;\n flex-basis: 0;\n margin: 0 8px;\n`;\n\nexport interface StoryGridRowProps {\n children: NonNullable<ReactNode>;\n breakpoint?: 'small' | 'medium';\n}\n\nfunction StoryGridRow({ children, breakpoint = 'small' }: StoryGridRowProps): ReactElement {\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO use useBreakpoint instead\n const { width } = useWindowDimensions();\n const breakpointValue = breakpoint === 'small' ? 480 : 768;\n\n if (width < breakpointValue) {\n return (\n <SmallScreenRow>\n {Children.map(children, (child) => (\n <SmallScreenCol>{child}</SmallScreenCol>\n ))}\n </SmallScreenRow>\n );\n }\n\n return (\n <FlexRow>\n {Children.map(children, (child) => (\n <FlexCol>{child}</FlexCol>\n ))}\n </FlexRow>\n );\n}\n\nexport interface StoryGridColProps {\n children: NonNullable<ReactNode>;\n title?: string;\n titleColor?: TypographyProps['color'];\n platform?: 'all' | 'native' | 'web';\n}\n\nfunction StoryGridCol({ title, titleColor, children, platform = 'all' }: StoryGridColProps): ReactElement | null {\n const isNative = Platform.OS === 'ios' || Platform.OS === 'android';\n\n if (Platform.OS === 'web' && platform === 'native') {\n return null;\n }\n\n if (isNative && platform === 'web') {\n return null;\n }\n\n return (\n <>\n {title ? (\n <StoryTitle.Level4 numberOfLines={1} color={titleColor}>\n {title}\n </StoryTitle.Level4>\n ) : null}\n {children}\n </>\n );\n}\n\nexport const StoryGrid = {\n Row: StoryGridRow,\n Col: StoryGridCol,\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components/native';\nimport type { TypographyColor } from '../typography/Typography';\nimport { Typography } from '../typography/Typography';\n\nexport type TagType = 'primary' | 'default' | 'danger';\n\nexport type TagVariant = 'outline' | 'fill';\n\nexport interface TagProps {\n label: ReactNode;\n type?: TagType;\n variant?: TagVariant;\n}\n\ninterface ContainerProps {\n type: TagType;\n variant: TagVariant;\n}\n\nconst Container = styled.View<ContainerProps>`\n background-color: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].backgroundColor};\n border-width: ${({ theme, type, variant }) => theme.kitt.tag[type][variant].borderWidth}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 { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Platform, Text } from 'react-native';\nimport { Button } from '../Button/Button';\nimport { Modal } from '../Modal/Modal';\nimport { Typography } from '../typography/Typography';\n\ninterface TitleProps {\n children: NonNullable<ReactNode>;\n}\n\nfunction Title({ children }: TitleProps): ReactElement {\n return (\n <Modal.Header>\n <Typography.Text base=\"body\" variant=\"bold\">\n {children}\n </Typography.Text>\n </Modal.Header>\n );\n}\n\ninterface ModalDateTimePickerProps {\n title?: ReactNode;\n visible?: boolean;\n value: Date;\n validateButtonLabel?: string;\n onClose: () => void;\n onChange: (newDate: Date) => void;\n}\n\nexport function ModalDateTimePicker({\n title,\n visible,\n value,\n validateButtonLabel,\n onChange,\n onClose,\n}: ModalDateTimePickerProps): ReactElement {\n const [currentValue, setCurrentValue] = useState(value);\n\n // Prevent unsynced value between the modal and its parent state\n const handleClose = (): void => {\n setCurrentValue(value);\n onClose();\n };\n\n const handleSubmit = (): void => {\n onChange(currentValue);\n };\n\n return (\n <Modal visible={Boolean(visible)} onClose={handleClose}>\n {visible ? (\n <>\n {title ? <Title>{title}</Title> : null}\n\n <Modal.Body>\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={currentValue}\n mode=\"time\"\n display={Platform.OS === 'ios' ? 'spinner' : 'default'}\n onChange={(_event: DateTimePickerEvent, date?: Date) =>\n setCurrentValue((prev) => {\n return date || prev;\n })\n }\n />\n </Modal.Body>\n <Modal.Footer>\n <Button stretch type=\"primary\" onPress={handleSubmit}>\n {validateButtonLabel ? (\n <Text>{validateButtonLabel}</Text>\n ) : (\n <FormattedMessage id=\"kitt-universal.ModalDateTimePicker.confirm\" defaultMessage=\"Valider\" />\n )}\n </Button>\n </Modal.Footer>\n </>\n ) : null}\n </Modal>\n );\n}\n","import type { InputUIState } from '@ornikar/kitt-universal';\nimport { useMemo, useState } from 'react';\n\nexport const timePickerPlaceholder = '--:--';\n\nexport const formatNumberToTimeString = (time: number): string => `${String(time).padStart(2, '0')}`;\n\nexport const formatDateToTimeString = (date: Date): string =>\n `${formatNumberToTimeString(date.getHours())}:${formatNumberToTimeString(date.getMinutes())}`;\n\nexport const useTimePicker = (\n value: Date | null,\n onChange: (time?: Date | null) => void,\n onBlur: () => void,\n disabled: boolean,\n defaultValue?: Date | null,\n): {\n displayedValue: string;\n dateTimePickerValue: Date;\n timePickerState: InputUIState;\n isTimePickerModalVisible: boolean;\n handleInputPress: () => void;\n handleModalClose: () => void;\n handleTimeChange: (date?: Date) => void;\n} => {\n const [isTimePickerModalVisible, setIsTimePickerModalVisible] = useState<boolean>(false);\n\n const todayAtNoon = useMemo(() => {\n const now = new Date(2000, 0, 1, 12);\n return new Date(now.getFullYear(), now.getMonth(), now.getDay(), 12);\n }, []);\n\n const defaultDate = defaultValue || todayAtNoon;\n const handleInputPress = (): void => {\n if (disabled) {\n return;\n }\n setIsTimePickerModalVisible(true);\n };\n\n const handleTimeChange = (date?: Date | null): void => {\n setIsTimePickerModalVisible(false);\n\n onChange(date || defaultDate);\n onBlur();\n };\n\n const dateTimePickerValue = value || defaultDate;\n const displayedValue = value === null ? timePickerPlaceholder : formatDateToTimeString(dateTimePickerValue);\n const timePickerState = isTimePickerModalVisible ? 'focus' : 'default';\n\n return {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n isTimePickerModalVisible,\n handleInputPress,\n handleTimeChange,\n handleModalClose: () => setIsTimePickerModalVisible(false),\n };\n};\n","import type { TextInputMixinProps } from '@ornikar/kitt-universal';\nimport type { DateTimePickerEvent } from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport type { ReactElement, ReactNode } from 'react';\nimport { Platform } from 'react-native';\nimport styled from 'styled-components/native';\nimport { styledTextInputMixin } from '../forms/styledTextInputMixin';\nimport { Typography } from '../typography/Typography';\nimport { ModalDateTimePicker } from './ModalDateTimePicker';\nimport { timePickerPlaceholder, useTimePicker } from './useTimePicker';\n\ninterface ContainerProps extends TextInputMixinProps {}\n\nconst Container = styled.Pressable<ContainerProps>`\n ${styledTextInputMixin}\n width: 100px;\n height: 40px;\n justify-content: center;\n align-items: center;\n`;\n\nexport type TimePickerValue = Date | null | undefined;\n\nexport interface TimePickerProps {\n title?: ReactNode;\n state?: TextInputMixinProps['$state'];\n disabled?: boolean;\n forceDefaultValue?: TimePickerValue;\n value?: Date | '' | null;\n validateButtonLabel?: string;\n onChange: (time: TimePickerValue) => void;\n onBlur: () => void;\n}\n\nexport function TimePicker({\n title,\n state = 'default',\n disabled = false,\n forceDefaultValue,\n value,\n validateButtonLabel,\n onChange,\n onBlur,\n}: TimePickerProps): ReactElement {\n const {\n dateTimePickerValue,\n displayedValue,\n timePickerState,\n handleInputPress,\n handleModalClose,\n handleTimeChange,\n isTimePickerModalVisible,\n } = useTimePicker(value || null, onChange, onBlur, disabled, forceDefaultValue);\n\n return (\n <Container\n $state={timePickerState === 'default' ? state : timePickerState}\n accessibilityRole=\"button\"\n onPress={handleInputPress}\n >\n <Typography.Text base=\"body\" color={displayedValue === timePickerPlaceholder ? 'black-light' : 'black'}>\n {displayedValue}\n </Typography.Text>\n\n {Platform.OS === 'android' && isTimePickerModalVisible ? (\n <DateTimePicker\n is24Hour\n testID=\"date-picker-native-element\"\n value={dateTimePickerValue}\n mode=\"time\"\n display=\"default\"\n onChange={(_event: DateTimePickerEvent, date?: Date) => handleTimeChange(date)}\n />\n ) : null}\n\n {Platform.OS !== 'android' ? (\n <ModalDateTimePicker\n title={title}\n visible={isTimePickerModalVisible}\n value={dateTimePickerValue}\n validateButtonLabel={validateButtonLabel}\n onChange={handleTimeChange}\n onClose={handleModalClose}\n />\n ) : null}\n </Container>\n );\n}\n","import { 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, offset, shift, useFloating } from '@floating-ui/react-native';\nimport type { ReactElement, ReactNode } from 'react';\nimport { useEffect } from 'react';\nimport { Pressable, StyleSheet, View } from 'react-native';\nimport Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';\nimport styled, { useTheme } from 'styled-components/native';\nimport { TooltipView } from './TooltipView';\nimport { tooltipDefaultPosition } from './tooltipUtils';\n\nexport type TooltipPosition = 'bottom' | 'top';\nexport type WebFloatingPosition = 'fixed' | 'absolute';\n\n// Since the tooltip use absolute positionning, we need a parent to provide the relative root\nconst TooltipContainer = styled.View`\n position: relative;\n align-self: baseline;\n`;\n\nexport interface TooltipProps {\n children: NonNullable<ReactNode>;\n content: NonNullable<ReactNode>;\n floatingPadding?: number;\n position?: TooltipPosition;\n /**\n * @description\n * This value init the internal visibile state of the tooltip. This is mainly used for testing purpose.\n */\n defaultVisible?: boolean;\n // eslint-disable-next-line react/no-unused-prop-types\n fullWidth?: boolean;\n /**\n * @default absolute\n * @description\n * Specific position strategy to apply to the tooltip.\n * Might be usefull when dealing with edge case (see https://floating-ui.com/docs/misc#z-index-stacking).\n */\n // eslint-disable-next-line react/no-unused-prop-types\n floatingStrategy?: {\n web: WebFloatingPosition;\n };\n onUpdate?: (tooltipConfig: any) => void;\n}\n\n// eslint-disable-next-line unicorn/expiring-todo-comments\n// TODO : update position on scroll in future iteration\nexport function Tooltip({\n children,\n defaultVisible,\n position = tooltipDefaultPosition,\n content,\n floatingPadding,\n onUpdate,\n}: TooltipProps): ReactElement {\n const theme = useTheme();\n const padding = floatingPadding || theme.kitt.tooltip.floatingPadding;\n\n const pressed = useSharedValue(defaultVisible);\n\n const opacityStyles = useAnimatedStyle(() => {\n return {\n opacity: withSpring(pressed.value ? theme.kitt.tooltip.opacity : 0),\n };\n });\n\n const handlePress = (): void => {\n pressed.value = !pressed.value;\n };\n\n const { x, y, reference, floating, update, refs, middlewareData } = useFloating({\n placement: position,\n middleware: [offset(padding), shift(), flip({ padding })],\n });\n\n useEffect(() => {\n if (!onUpdate) return;\n onUpdate({\n x,\n y,\n reference,\n floating,\n strategy: 'absolute',\n update,\n refs,\n middlewareData,\n });\n }, [x, y, reference, floating, update, refs, middlewareData, onUpdate]);\n\n return (\n <TooltipContainer>\n <View ref={reference}>\n <Pressable accessibilityRole=\"button\" onPress={handlePress}>\n {children}\n </Pressable>\n </View>\n\n <View\n ref={floating}\n accessibilityElementsHidden={!pressed.value}\n importantForAccessibility={pressed.value === true ? 'auto' : 'no-hide-descendants'}\n style={{\n ...StyleSheet.absoluteFillObject,\n top: y && position === 'bottom' ? y : undefined,\n bottom: y && position === 'top' ? y : undefined,\n left: x ?? 0,\n }}\n >\n <Animated.View style={[opacityStyles]}>\n <TooltipView position={position}>{content}</TooltipView>\n </Animated.View>\n </View>\n </TooltipContainer>\n );\n}\n\nTooltip.View = TooltipView;\n","import type { ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport styled, { useTheme } from 'styled-components/native';\nimport { Emoji } from '../Emoji/Emoji';\nimport type { TypographyBreakpointTypesProps } from './Typography';\nimport {\n getTypographyTypeConfig,\n getTypographyTypeConfigKey,\n useTypographyTypeForCurrentWindowSize,\n} from './Typography';\n\nconst StyledTypographyEmoji = styled(Emoji)`\n align-self: center;\n\n ${({ size }) => {\n if (Platform.OS !== 'web') return undefined;\n\n /* Style Twemoji: https://github.com/twitter/twemoji#inline-styles */\n return `\n margin: 0 ${size / 20}px 0 ${size / 10}px;\n transform: translateY(${(size / 10) * 2}px);\n `;\n }}\n`;\n\nexport interface TypographyEmojiProps extends TypographyBreakpointTypesProps {\n emoji: string;\n}\n\nexport function TypographyEmoji({ emoji, base, small, medium, large }: TypographyEmojiProps): ReactElement {\n const theme = useTheme();\n const typeForCurrentWindowSize = useTypographyTypeForCurrentWindowSize(base, small, medium, large);\n const typeConfig = getTypographyTypeConfig(typeForCurrentWindowSize || 'body', theme);\n const typeConfigKey = getTypographyTypeConfigKey(theme);\n const { fontSize } = typeConfig[typeConfigKey];\n\n 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","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"],"names":["defaultIconSize","IconContainer","styled","View","$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","Text","$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","Platform","OS","createHeading","level","defaultBase","TypographyHeading","displayName","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","hasVariant","button","getVariantValuesIfExist","StyledPressable","Pressable","$isStretch","StyledAnimatedView","Animated","AnimatedButtonPressable","forwardRef","ref","children","disabled","$type","href","hrefAttrs","testID","onPress","useTheme","pressed","useSharedValue","pressedBackgroundColor","scale","scaleStyles","useAnimatedStyle","interpolateColor","value","transform","withSpring","active","handlePressInOut","pressIn","BaseStyledButtonPressable","maxWidth","minHeight","$isDisabled","$isLarge","$isXLarge","contentPadding","defaultPadding","disabledPadding","xLarge","TypographyIconSpecifiedColor","TypographyIconInheritColor","TypographyIcon","isSubtle","getTextColorByType","StyledButtonText","StyledIconContainer","$iconPosition","spacing","ButtonIcon","iconPosition","StyledChildrenWithIcon","ButtonContentChildren","isDisabled","isWebSubtle","buttonIconSharedProps","_jsxs","ButtonContentContainer","$isIconOnly","$isSubtle","ButtonContent","Boolean","StyledDisabled","borderWidth","borderColor","allowedGhostTypes","Button","stretch","__DEV__","includes","Container","card","Card","StyledEmoji","Image","Emoji","emoji","style","useMemo","parse","assetType","emojiData","text","url","defaultOpenLinkBehavior","web","ExternalLink","Component","as","openLinkBehavior","rest","handleOnPress","e","defaultPrevented","WebBrowser","err","console","error","Linking","openURL","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","hover","black","blackAnthracite","uiBackground","uiBackgroundLight","overlay","dark","fullscreenLoader","focus","transition","duration","timingFunction","hoverBackgroundColor","focusBorderColor","ghost","hoverColor","activeColor","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","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","DatePickerAndroid","pickerDefaultDate","pickerUITestID","setIsFocused","setCurrentValue","handleClose","DateTimePickerAndroid","open","Date","now","timestamp","nativeEvent","date","onTouchCancel","OverlayPressable","StyleSheet","absoluteFillObject","Overlay","BodyView","ModalBody","FooterView","ModalFooter","StyleWebWrapper","PressableIconButtonWebWrapper","StyledPressableIconButton","PressableIconButton","AnimatedIconButtonBackground","AnimatedViewContainer","PressableAnimatedContainer","accessibilityLabel","opacityStyles","IconButtonContentBorder","IconButtonContent","IconButton","OnCloseContext","HeaderView","LeftIconView","RightIconView","TitleView","isIconLeft","ModalHeader","left","right","onClose","ModalView","ContentView","Modal","visible","onEntered","onExited","NativeModal","Header","Body","Footer","getDatePickerDisplayMode","PlatformDateTimePicker","defaultDate","maximumDate","minimuDate","displayMode","iosProps","textColor","_event","ModalTitle","ModalPlatformDateTimePicker","title","isVisible","validateButtonLabel","useState","handleChange","newDate","prev","handleSubmit","DatePicker","pickerUITitle","pickerUIValidateButtonLabel","isPickerUIVisible","setIsPickerUIVisible","handleModalClose","InputTextContainer","StyledTextInput","TextInput","multiline","$minHeight","RightInputContainer","InputText","autoCorrect","textContentType","autoCompleteType","keyboardType","onSubmitEditing","InputEmail","getColorFromState","InputFeedback","FieldContainer","FeedbackContainer","FieldLabelContainer","LabelContainer","InputField","label","labelFeedback","feedback","getIconColor","InputIcon","InputPressable","InputPassword","isPasswordDefaultVisible","setIsVisible","InputPhone","getTypographyColor","InputTagContainer","InputTag","typographyColor","Label","htmlFor","OuterRadio","SelectedOuterRadio","SelectedInnerRadio","Radio","TextArea","FullScreenModalBody","SideContainer","side","getHeaderHorizontalMediumPadding","insetTop","paddingTop","HeaderContent","leftWidth","rightWidth","windowWidth","sideElementMaxWidth","parentHorizontalPadding","parentHorizontalPaddingMedium","computeWidth","breakpointPadding","deltaMargin","abs","FullScreenModalHeader","useSafeAreaInsets","top","setLeftWidth","setRightWidth","handleLayoutChange","event","persist","layout","FullScreenModal","SpinningIcon","process","env","NODE_ENV","String","animationRef","useRef","Value","rotation","current","interpolate","inputRange","outputRange","useEffect","loop","timing","toValue","easing","Easing","linear","useNativeDriver","start","stop","rotate","ListItemContent","SideContainerView","ListItemSideContainer","SideContentView","ListItemSideContent","ContainerView","withPadding","borders","ListItem","Wrapper","Fragment","wrapperProps","containerProps","Content","SideContent","LoaderIcon","IconContent","getColorByType","getIconButtonColor","messageType","StyledMessageContainer","$insets","$hasNoRadius","StyledDismissWrapper","StyledTextContent","$isCenteredText","StyledMessageContent","BaseMessage","hasNoRadius","centeredText","insets","onDismiss","Message","Notification","onDelete","AnimatedCircle","createAnimatedComponent","Circle","AnimatedLoaderCircle","progress","centerCoord","circlePerimeter","PI","strokeAnimation","useAnimatedProps","strokeDashoffset","AnimatedBackgroundCircle","x1","y1","x2","y2","withDelay","withTiming","bezier","isInfinitAnimation","AnimatedFillCircleContainer","withRepeat","rotationStyles","absoluteFill","shouldReverse","AnimatedFilledCircle","PageLoaderContainer","PageLoader","AnimatedLinearGradient","LinearGradient","SkeletonContent","isLoading","sharedX","inOut","ease","linearGradientStyle","translateX","x","y","SkeletonContainer","Skeleton","setWidth","Bar","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","ScrollView","Story","contentContainerStyle","StyledSection","StorySection","internalIsDemoSection","StyledSubSection","SubSection","StyledBlockSection","BlockSection","StyledDemoSection","DemoSection","Demo","DeprecatedSection","platform","StoryDecorator","storyFn","context","name","SmallScreenRow","SmallScreenCol","FlexRow","FlexCol","StoryGridRow","breakpoint","breakpointValue","Children","map","child","StoryGridCol","titleColor","isNative","StoryGrid","Row","Col","getLabelColor","Tag","Title","ModalDateTimePicker","timePickerPlaceholder","formatNumberToTimeString","time","formatDateToTimeString","getHours","getMinutes","useTimePicker","defaultValue","isTimePickerModalVisible","setIsTimePickerModalVisible","todayAtNoon","getDay","dateTimePickerValue","displayedValue","timePickerState","handleInputPress","handleTimeChange","TimePicker","forceDefaultValue","StyledTooltipView","StyledTooltipContent","ArrowView","StyledArrow","$position","TooltipView","position","tooltipDefaultPosition","TooltipContainer","Tooltip","defaultVisible","onUpdate","useFloating","placement","middleware","offset","shift","flip","reference","floating","update","refs","middlewareData","strategy","bottom","StyledTypographyEmoji","TypographyEmoji","typeConfig","TypographyLinkWebWrapper","StyledLink","$hasNoUnderline","$disabled","TypographyLink","noUnderline","hex2rgba","hex","alpha","r","parseInt","g","b","KittThemeProvider","KittThemeDecorator","makeDecorator","parameterName","wrapper","parameters","MatchWindowSize","matchWindowSizeOptions","match","withTheme","WrappedComponent"],"mappings":"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"}
|