property-practice-ui 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/index.cjs +9 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/molecules.cjs +2 -2
- package/dist/molecules.cjs.map +1 -1
- package/dist/molecules.js +2 -2
- package/dist/molecules.js.map +1 -1
- package/dist/organisms.cjs +25 -3
- package/dist/organisms.cjs.map +1 -1
- package/dist/organisms.js +25 -3
- package/dist/organisms.js.map +1 -1
- package/package.json +1 -1
- package/src/molecules/ContentCard/ContentCard.tsx +1 -1
- package/src/molecules/SideNav/SideNav.tsx +1 -1
- package/src/organisms/FeatureCarousel/FeatureCarousel.tsx +3 -1
- package/src/organisms/Header/Header.tsx +27 -2
package/dist/molecules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/colors.ts","../src/tokens/radii.ts","../src/tokens/spaces.ts","../src/molecules/AccordionContent/AccordionContent.tsx","../src/atoms/ArrowButton/ArrowButton.tsx","../src/atoms/Loader/Loader.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Description/Description.tsx","../src/atoms/ExtendedButton/ExtendedButton.tsx","../src/atoms/FeatureItem/FeatureItem.tsx","../src/tokens/breakpoints.ts","../src/atoms/FormContainer/FormContainer.tsx","../src/atoms/Header/Header.tsx","../src/types.ts","../src/atoms/Input/Input.tsx","../src/tokens/sizes.ts","../src/atoms/Label/Label.tsx","../src/atoms/Pill/Pill.tsx","../src/atoms/RadioItem/RadioItem.tsx","../src/atoms/SecondaryInput/SecondaryInput.tsx","../src/atoms/SocialButton/SocialButton.tsx","../src/atoms/TermsCheckbox/TermsCheckbox.tsx","../src/atoms/Text/Text.tsx","../src/atoms/Textarea/Textarea.tsx","../src/atoms/TextButton/TextButton.tsx","../src/atoms/ToggleButton/ToggleButton.tsx","../src/molecules/AccordionHeader/AccordionHeader.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/Address/Address.tsx","../src/atoms/CheckboxItem/CheckboxItem.tsx","../src/molecules/Checkbox/Checkbox.tsx","../src/molecules/ContentCard/ContentCard.tsx","../src/molecules/CTAContainer/CTAContainer.tsx","../src/molecules/InputContainer/InputContainer.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/molecules/FAQAccordion/FAQAccordion.tsx","../src/molecules/FeatureContainer/FeatureContainer.tsx","../src/molecules/FileButton/FileButton.tsx","../src/molecules/Input/Input.tsx","../src/tokens/animations.ts","../src/molecules/Modal/Modal.tsx","../src/molecules/OverviewRowItem/OverviewRowItem.tsx","../src/components/Spinner.tsx","../src/molecules/PageLayout/PageLayout.tsx","../src/molecules/EmptyState/EmptyState.tsx","../src/molecules/PDFPreviewer/PDFPreviewer.tsx","../src/molecules/ProductInfo/ProductInfo.tsx","../src/molecules/RadioGroup/RadioGroup.tsx","../src/molecules/RatesChart/RatesChart.tsx","../src/molecules/SideNav/SideNav.tsx","../src/molecules/SidePanel/SidePanel.tsx","../src/molecules/StepperHeaderTab/StepperHeaderTab.tsx","../src/molecules/Textarea/Textarea.tsx"],"names":["styled","jsx","variants","StyledButton","jsxs","Container","Description","Label","StyledContainer","StyledText","Fragment","FaPlus","FaP","useState","HiddenCheckbox","StyledCheckbox","ThumbnailWrapper","ButtonWrapper","Header","InnerContainer","AccordionHeader","HeaderWrapper","AccordionContent","HiMinus","HiPlus","Input","useMemo","keyframes","HeaderContainer","ContentContainer","OptionsContainer","Overlay","CloseButton","IconWrapper","ContentWrapper","HiX","StyledLabel","Textarea"],"mappings":"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","file":"molecules.js","sourcesContent":["const variants = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'subtle',\n 'blue',\n 'brand',\n 'light',\n 'active',\n 'hover',\n 'error',\n 'focus',\n 'success',\n] as const;\nconst tokens = ['background', 'border', 'text', 'button'] as const;\n\ntype Token = (typeof tokens)[number];\ntype Variant = (typeof variants)[number];\n\ntype TokenVariant = Record<Variant, string>;\n\nexport const colors: Record<Token, Partial<TokenVariant>> = {\n background: {\n primary: '#FFFFFF',\n secondary: '#EEF1F5',\n tertiary: '#1E4384',\n subtle: 'rgba(102, 153, 153, 1)',\n blue: '#36b8e7',\n brand: '#1D3C77',\n success: '#00ab3fff',\n error: '#F87171',\n light: '#cacbcc'\n },\n border: {\n primary: '#669999',\n secondary: 'rgba(30, 67, 132, 0.2)',\n hover: '#cacbcc',\n active: '#828282',\n error: '#F87171',\n focus: '#3B82F6',\n brand: '#1D3C77',\n light: '#f3f3f3',\n },\n text: {\n brand: '#1D3C77',\n primary: '#262626',\n secondary: '#FFFFFF',\n tertiary: '#669999',\n subtle: '#919EB0',\n light: '#b5b6b8ff',\n error: '#F87171',\n blue: '#3B82F6',\n },\n button: {\n primary: 'rgba(30, 67, 132, 0.2)',\n hover: 'rgba(30, 67, 132, 0.5)',\n active: 'rgba(30, 67, 132, 0.8)',\n secondary: 'rgba(30, 67, 132, 1)',\n },\n} as const;\n","export const radii = {\n sm: '4px',\n md: '8px',\n lg: '10px',\n xl: '16px',\n} as const;\n","export const spaces: Record<number, `${number}px`> = {\n 0: '0px',\n 0.5: '2px',\n 1: '4px',\n 1.5: '6px',\n 2: '8px',\n 2.5: '10px',\n 3: '12px',\n 3.5: '14px',\n 4: '16px',\n 4.5: '18px',\n 5: '20px',\n 5.5: '22px',\n 6: '24px',\n 6.5: '28px',\n 7: '34px',\n 7.5: '38px',\n 8: '44px',\n 9: '56px',\n 20: '150px',\n} as const;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { spaces } from '../../tokens/spaces';\n\ninterface AccordionContentProps {\n children: ReactNode;\n}\n\nconst Container = styled.div`\n width: 100%;\n padding: ${spaces[4]};\n`;\n\nexport const AccordionContent = ({ children }: AccordionContentProps) => {\n return <Container>{children}</Container>;\n};\n","import { HiArrowUpRight } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['brand', 'teal', 'blue'] as const;\ntype Variant = (typeof variants)[number];\n\nconst StyledContainer = styled.button<{\n as?: 'button' | 'div';\n variant: Variant;\n}>`\n padding: 0.75rem;\n ${props => props.as === 'button' ? `\n width: 2.5rem;\n height: 2.5rem;\n ` : ''}\n flex-shrink: 0;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'brand':\n return colors.background.brand;\n case 'teal':\n return colors.background.subtle;\n case 'blue':\n return colors.background.blue;\n default:\n return colors.background.brand;\n }\n }};\n transition: all 0.2s;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover svg {\n transform: rotate(45deg);\n }\n`;\n\nconst StyledIcon = styled(HiArrowUpRight)`\n width: 1rem;\n height: 1rem;\n color: ${colors.text.secondary};\n transition: transform 0.2s;\n`;\n\ninterface ButtonProps {\n onClick?: () => void;\n asChild?: boolean;\n variant?: Variant;\n}\n\nexport const ArrowButton = ({ \n onClick, \n asChild = false,\n variant = 'brand'\n}: ButtonProps) => {\n return (\n <StyledContainer \n as={asChild ? 'div' : 'button'}\n onClick={onClick}\n variant={variant}\n >\n <StyledIcon aria-hidden />\n </StyledContainer>\n );\n};\n\nArrowButton.variants = variants;","import styled, { keyframes } from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\ntype LoaderProps = {\n size?: number | string;\n thickness?: number;\n speed?: string;\n};\n\nconst spin = keyframes`\n to { transform: rotate(360deg); }\n`;\n\nconst Ring = styled.span<\n Required<Pick<LoaderProps, 'size' | 'thickness' | 'speed'>>\n>`\n display: inline-block;\n width: ${({ size }) => (typeof size === 'number' ? `${size}px` : size)};\n height: ${({ size }) => (typeof size === 'number' ? `${size}px` : size)};\n border-radius: 50%;\n box-sizing: border-box;\n\n border: ${({ thickness }) => thickness}px solid ${colors.background.brand};\n\n border-top-color: ${colors.border.active};\n\n animation: ${spin} ${({ speed }) => speed} linear infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n border-top-color: ${colors.border.active};\n }\n`;\n\nexport const Loader = ({\n size = 32,\n thickness = 3,\n speed = '0.8s',\n}: LoaderProps) => {\n return (\n <Ring\n role=\"status\"\n aria-live=\"polite\"\n size={size}\n thickness={thickness}\n speed={speed}\n />\n );\n};\n","import { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\nimport { Loader } from '../Loader/Loader';\n\nconst ButtonTypes = ['submit', 'reset', 'button'] as const;\n\ntype ButtonType = (typeof ButtonTypes)[number];\n\nconst variants = ['dark', 'light'] as const;\n\ntype Variant = (typeof variants)[number];\n\ninterface ButtonProps {\n onClick?: () => void;\n text?: string;\n type?: ButtonType;\n disabled?: boolean;\n icon?: ReactElement;\n variant?: Variant;\n isLoading?: boolean;\n}\n\nconst StyledButton = styled.button<{ variant: Variant }>`\n padding: ${spaces[2]} ${spaces[4]};\n background-color: ${(props) =>\n props.variant === 'light'\n ? colors.button.primary\n : colors.button.secondary};\n border-radius: ${radii.lg};\n color: ${(props) =>\n props.variant === 'light' ? colors.text.primary : colors.text.secondary};\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${spaces[2]};\n max-height: 34px;\n\n &:hover {\n background-color: ${colors.button.hover};\n cursor: pointer;\n }\n\n &:active {\n background-color: ${colors.button.active};\n color: ${colors.text.secondary};\n }\n\n &:disabled {\n background-color: ${colors.button.primary};\n cursor: not-allowed;\n color: ${colors.text.primary};\n }\n`;\n\nconst ButtonText = styled.span`\n font-size: 12px;\n font-weight: 700;\n`;\n\nexport const Button = ({\n onClick,\n text,\n type = 'button',\n disabled,\n icon = undefined,\n variant = 'light',\n isLoading,\n}: ButtonProps) => {\n return (\n <StyledButton\n type={type}\n onClick={onClick}\n disabled={disabled || isLoading}\n variant={variant}\n >\n {!isLoading ? (\n <>\n {typeof icon !== 'undefined' && icon}\n <ButtonText>{text}</ButtonText>\n </>\n ) : (\n <Loader size=\"20px\" />\n )}\n </StyledButton>\n );\n};\n\nButton.types = ButtonTypes;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle', 'error'] as const;\ntype Variant = (typeof variants)[number];\n\ninterface DescriptionProps {\n children: string;\n variant?: Variant;\n}\n\nconst StyledDescription = styled.p<{ variant: Variant }>`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'secondary':\n return colors.text.secondary;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\nexport const Description = ({\n children,\n variant = 'primary',\n}: DescriptionProps) => {\n return (\n <StyledDescription variant={variant}>\n {children}\n </StyledDescription>\n );\n};\n\nDescription.variants = variants;","import styled from 'styled-components';\nimport { ArrowButton, TextButton } from \"..\";\n\nconst StyledButton = styled.button`\n display: flex;\n align-items: center;\n height: 2.5rem;\n border: none;\n cursor: pointer;\n transition: opacity 0.2s;\n padding: 0;\n background: transparent;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\ninterface ExtendedButtonProps {\n text: string;\n onClick?: () => void;\n arrowVariant?: 'brand' | 'teal' | 'blue';\n textBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const ExtendedButton = ({ \n text, \n onClick,\n arrowVariant = 'teal',\n textBgVariant = 'brand',\n textVariant = 'secondary',\n}: ExtendedButtonProps) => {\n return (\n <StyledButton onClick={onClick}>\n <ArrowButton asChild variant={arrowVariant} />\n <TextButton asChild text={text} bgVariant={textBgVariant} textVariant={textVariant} uppercase={false} />\n </StyledButton>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n gap: 1rem;\n background-color: transparent;\n`;\n\nconst ThumbnailWrapper = styled.div<{ $size?: string; thumbnailBgColor: BackgroundColor }>`\n width: ${props => props.$size || '3rem'};\n height: ${props => props.$size || '3rem'};\n border-radius: 50%;\n background-color: ${props => colors.background[props.thumbnailBgColor]};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n`;\n\nconst Title = styled.h3<{ titleColor: TextColor }>`\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n color: ${props => colors.text[props.titleColor]};\n`;\n\nconst Description = styled.p<{ descriptionColor: TextColor }>`\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.5;\n color: ${props => colors.text[props.descriptionColor]};\n`;\n\ninterface FeatureItemProps {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n thumbnailSize?: string;\n thumbnailBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FeatureItem = ({\n thumbnail,\n title,\n description,\n thumbnailSize,\n thumbnailBgColor = 'brand',\n titleColor = 'primary',\n descriptionVariant = 'subtle',\n}: FeatureItemProps) => {\n // Map descriptionVariant to text color\n const getDescriptionColor = (): TextColor => {\n switch (descriptionVariant) {\n case 'primary':\n return 'primary';\n case 'secondary':\n return 'secondary';\n case 'subtle':\n return 'subtle';\n case 'error':\n return 'error';\n default:\n return 'subtle';\n }\n };\n\n return (\n <Container>\n <ThumbnailWrapper $size={thumbnailSize} thumbnailBgColor={thumbnailBgColor}>\n {thumbnail}\n </ThumbnailWrapper>\n <Content>\n <Title titleColor={titleColor}>{title}</Title>\n <Description descriptionColor={getDescriptionColor()}>{description}</Description>\n </Content>\n </Container>\n );\n};","export const breakpoints = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n} as const;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { breakpoints } from '../../tokens/breakpoints';\nimport { spaces } from '../../tokens/spaces';\n\ntype Space = keyof typeof spaces;\n\ninterface FormContainerProps {\n children: ReactNode;\n space?: Space;\n}\n\nconst Container = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`;\n\nconst InnerContainer = styled.div<{ space: Space }>`\n display: flex;\n flex-direction: column;\n padding: ${spaces[4]};\n width: 100%;\n max-width: ${breakpoints.lg};\n gap: ${(props) => spaces[props.space]};\n`;\n\nexport const FormContainer = ({ children, space = 4 }: FormContainerProps) => {\n return (\n <Container>\n <InnerContainer space={space}>{children}</InnerContainer>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = {\n h1: {\n fontSize: '24px',\n fontWeight: 700,\n letterSpacing: '0.6px',\n lineHeight: '32px',\n },\n h2: {\n fontSize: '20px',\n fontWeight: 700,\n lineHeight: '28px',\n letterSpacing: '0.4px',\n },\n h3: {\n fontSize: '18px',\n fontWeight: 600,\n lineHeight: '28px',\n letterSpacing: '0.2px',\n },\n} as const;\n\ntype Variant = keyof typeof variants;\n\ntype Color = keyof typeof colors.text;\n\ninterface HeaderProps {\n children: string;\n variant?: Variant;\n color?: Color;\n}\n\nconst StyledText = styled.h1<{ variant: Variant; color: Color }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${(props) => variants[props.variant].fontSize};\n font-weight: ${(props) => variants[props.variant].fontWeight};\n letter-spacing: ${(props) => variants[props.variant].letterSpacing};\n line-height: ${(props) => variants[props.variant].lineHeight};\n`;\n\nexport const Header = ({\n children,\n variant = 'h1',\n color = 'primary',\n}: HeaderProps) => {\n return (\n <StyledText variant={variant} color={color}>\n {children}\n </StyledText>\n );\n};\n","import { ChangeHandler } from 'react-hook-form';\n\nexport const InputTypes = ['number', 'text', 'email', 'date'] as const;\n\nexport type InputType = (typeof InputTypes)[number];\n\nexport interface BaseInputProps {\n name: string;\n label?: string;\n type?: InputType;\n placeholder?: string;\n onBlur?: ChangeHandler;\n onFocus?: () => void;\n}\n\nexport type Option<T> = {\n label: string;\n value: T;\n disabled?: boolean;\n};\n","import { ChangeEvent } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { InputTypes, type BaseInputProps } from '../../types';\n\ninterface InputProps extends Omit<BaseInputProps, 'label'> {\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n value?: string | number;\n min?: string | number;\n max?: string | number;\n}\n\nconst StyledInput = styled.input`\n display: block;\n height: 100%;\n width: 100%;\n outline: none;\n background-color: transparent;\n color: ${colors.text.subtle};\n font-weight: 600;\n`;\n\nexport const Input = ({ name, onChange, ...rest }: InputProps) => {\n return <StyledInput name={name} onChange={onChange} {...rest} />;\n};\n\nInput.types = InputTypes;\n","export const sizes = {\n sm: '12px',\n md: '14px',\n lg: '18px',\n xl: '24px',\n 0: '1px',\n 0.5: '1.5px',\n} as const;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ntype Color = keyof typeof colors.text;\n\ninterface LabelProps {\n value: string;\n color?: Color;\n fontWeight?: string;\n}\n\nconst StyledLabel = styled.span<{ color: Color; fontWeight: string }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${sizes.sm};\n font-weight: ${(props) => props.fontWeight};\n`;\n\nconst StyledFloatingLabel = styled(StyledLabel)`\n position: absolute;\n left: 0;\n bottom: 100%;\n margin-left: ${spaces[3]};\n margin-bottom: -${spaces[2.5]};\n transform: translateY(-${spaces[0.5]});\n background-color: ${colors.background.primary};\n padding: 0 ${spaces[1]};\n`;\n\nexport const Label = ({\n value,\n color = 'subtle',\n fontWeight = '500',\n}: LabelProps) => {\n return (\n <StyledLabel color={color} fontWeight={fontWeight}>\n {value}\n </StyledLabel>\n );\n};\n\nexport const FloatingLabel = ({\n value,\n color = 'subtle',\n fontWeight = '500',\n}: LabelProps) => {\n return (\n <StyledFloatingLabel color={color} fontWeight={fontWeight}>\n {value}\n </StyledFloatingLabel>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle', 'error'] as const;\ntype Variant = (typeof variants)[number];\n\ninterface PillProps {\n children: string;\n variant?: Variant;\n inverse?: boolean;\n}\n\nconst StyledPill = styled.span<{ variant: Variant; $inverse: boolean }>`\n display: inline-block;\n padding: 0.5rem 1rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n background-color: ${(props) => {\n if (props.$inverse) return 'transparent';\n \n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.brand;\n }\n }};\n color: ${(props) => {\n if (props.$inverse) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.brand;\n }\n }\n return colors.text.secondary; \n }};\n border: ${(props) => {\n if (!props.$inverse) return 'none';\n \n switch (props.variant) {\n case 'primary':\n return `1px solid ${colors.text.brand}`;\n case 'secondary':\n return `1px solid ${colors.text.blue}`;\n case 'subtle':\n return `1px solid ${colors.text.subtle}`;\n case 'error':\n return `1px solid ${colors.text.error}`;\n default:\n return `1px solid ${colors.text.brand}`;\n }\n }};\n`;\n\nexport const Pill = ({\n children,\n variant = 'primary',\n inverse = false,\n}: PillProps) => {\n return (\n <StyledPill variant={variant} $inverse={inverse}>\n {children}\n </StyledPill>\n );\n};\n\nPill.variants = variants;","import { FaCheckCircle } from 'react-icons/fa';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\n\ninterface RadioItem {\n label: string;\n isSelected: boolean;\n onClick: () => void;\n disabled?: boolean;\n}\n\nconst Container = styled.div`\n border-radius: ${radii.md};\n padding: ${spaces['3']};\n display: flex;\n flex: 1;\n gap: ${spaces[2]};\n background-color: white;\n align-items: center;\n justify-content: center;\n border-width: 1px;\n border-color: ${colors.border.active};\n transition:\n background-color 0.25s ease,\n box-shadow 0.35s ease,\n transform 0.25s ease;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.96);\n border-color: ${colors.border.hover};\n cursor: pointer;\n }\n\n &:active {\n background-color: rgba(255, 255, 255, 0.92);\n }\n`;\n\nconst Label = styled.span<Pick<RadioItem, 'isSelected'>>`\n font-size: 16px;\n font-weight: ${(props) => (props.isSelected ? '800' : '400')};\n text-align: center;\n`;\n\nexport const RadioItem = ({ label, isSelected, onClick }: RadioItem) => {\n return (\n <Container onClick={onClick}>\n {isSelected && <FaCheckCircle color={colors.background.blue} />}\n <Label isSelected={isSelected}>{label}</Label>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { BaseInputProps } from '../../types';\n\ntype Color = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\ninterface SecondaryInputProps extends BaseInputProps {\n required?: boolean;\n isTextArea?: boolean;\n labelColor?: Color;\n inputTextColor?: Color;\n placeholderColor?: Color;\n backgroundColor?: BackgroundColor;\n borderColor?: string;\n focusRingColor?: Color;\n}\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst Label = styled.label<{ $color?: Color }>`\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: ${props => props.$color ? colors.text[props.$color] : colors.text.primary};\n opacity: 0.8;\n margin-bottom: 0.5rem;\n`;\n\nconst StyledInput = styled.input<{ \n $textColor?: Color;\n $placeholderColor?: Color;\n $bgColor?: BackgroundColor;\n $borderColor?: string;\n $focusRingColor?: Color;\n}>`\n box-sizing: border-box;\n height: 2.75rem;\n width: 100%;\n border-radius: 6px;\n border: 1px solid ${props => props.$borderColor || '#d1d5db'};\n background-color: ${props => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary || '#f9fafb'};\n padding: 0 0.75rem;\n font-size: 15px;\n color: ${props => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};\n outline: none;\n \n &::placeholder {\n color: ${props => props.$placeholderColor ? colors.text[props.$placeholderColor] : colors.text.secondary};\n }\n \n &:focus {\n box-shadow: 0 0 0 2px ${props => {\n const color = props.$focusRingColor ? colors.text[props.$focusRingColor] : colors.text.primary;\n return `${color}33`; // Add 33 for 20% opacity\n }};\n }\n`;\n\nconst StyledTextArea = styled.textarea<{ \n $textColor?: Color;\n $placeholderColor?: Color;\n $bgColor?: BackgroundColor;\n $borderColor?: string;\n $focusRingColor?: Color;\n}>`\n box-sizing: border-box;\n width: 100%;\n border-radius: 6px;\n border: 1px solid ${props => props.$borderColor || '#d1d5db'};\n background-color: ${props => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary || '#f9fafb'};\n padding: 0.75rem;\n font-size: 15px;\n color: ${props => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};\n outline: none;\n \n &::placeholder {\n color: ${props => props.$placeholderColor ? colors.text[props.$placeholderColor] : colors.text.secondary};\n }\n \n &:focus {\n box-shadow: 0 0 0 2px ${props => {\n const color = props.$focusRingColor ? colors.text[props.$focusRingColor] : colors.text.primary;\n return `${color}33`; // Add 33 for 20% opacity\n }};\n }\n`;\n\nexport const SecondaryInput = ({\n label,\n isTextArea = false,\n labelColor = 'brand',\n inputTextColor = 'primary',\n placeholderColor = 'subtle',\n backgroundColor = 'secondary',\n borderColor = '#d1d5db',\n focusRingColor = 'brand',\n ...rest\n}: SecondaryInputProps) => {\n return (\n <Container>\n {typeof label === 'string' && <Label $color={labelColor}>{label}</Label>}\n {isTextArea ? (\n <StyledTextArea \n {...rest} \n rows={5}\n $textColor={inputTextColor}\n $placeholderColor={placeholderColor}\n $bgColor={backgroundColor}\n $borderColor={borderColor}\n $focusRingColor={focusRingColor}\n />\n ) : (\n <StyledInput \n {...rest}\n $textColor={inputTextColor}\n $placeholderColor={placeholderColor}\n $bgColor={backgroundColor}\n $borderColor={borderColor}\n $focusRingColor={focusRingColor}\n />\n )}\n </Container>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'inverse', 'filled'] as const;\ntype Variant = (typeof variants)[number];\n\nconst StyledButton = styled.button<{ variant: Variant }>`\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'filled':\n return colors.background.brand;\n case 'primary':\n case 'secondary':\n case 'inverse':\n default:\n return 'transparent';\n }\n }};\n border: 2px solid ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'inverse':\n return colors.text.secondary; \n case 'filled':\n return colors.background.brand;\n default:\n return colors.text.brand;\n }\n }};\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'inverse':\n return colors.text.secondary; \n case 'filled':\n return colors.text.secondary;\n default:\n return colors.text.brand;\n }\n }};\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n opacity: 0.8;\n }\n\n svg {\n width: 1.25rem;\n height: 1.25rem;\n }\n`;\n\ninterface SocialButtonProps {\n icon: React.ReactNode;\n onClick?: () => void;\n variant?: Variant;\n ariaLabel?: string;\n}\n\nexport const SocialButton = ({\n icon,\n onClick,\n variant = 'primary',\n ariaLabel,\n}: SocialButtonProps) => {\n return (\n <StyledButton\n onClick={onClick}\n variant={variant}\n aria-label={ariaLabel}\n >\n {icon}\n </StyledButton>\n );\n};\n\nSocialButton.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst CheckboxContainer = styled.label`\n display: flex;\n align-items: flex-start;\n gap: 0.75rem;\n cursor: pointer;\n font-size: 0.875rem;\n line-height: 1.5;\n`;\n\nconst HiddenCheckbox = styled.input.attrs({ type: 'checkbox' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n`;\n\nconst StyledCheckbox = styled.div<{ $checked: boolean; variant: Variant }>`\n width: 1.25rem;\n height: 1.25rem;\n border: 2px solid ${props => {\n if (props.$checked) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }\n return colors.text.subtle; \n }};\n border-radius: 4px;\n background-color: ${props => {\n if (props.$checked) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }\n return 'transparent';\n }};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.2s;\n\n &::after {\n content: '✓';\n color: ${colors.text.secondary}; // white checkmark\n font-size: 0.875rem;\n font-weight: bold;\n display: ${props => props.$checked ? 'block' : 'none'};\n }\n`;\n\nconst Text = styled.span<{ variant: Variant }>`\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\nconst Link = styled.a<{ variant: Variant }>`\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n font-weight: 700;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\ninterface TermsCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n text?: string;\n termsText?: string;\n termsUrl?: string;\n cookieText?: string;\n cookieUrl?: string;\n variant?: Variant;\n}\n\nexport const TermsCheckbox = ({\n checked,\n onChange,\n text = \"By submitting, I agree to Juta's\",\n termsText = \"Terms and Conditions\",\n termsUrl = \"/terms\",\n cookieText = \"Cookie Policy\",\n cookieUrl = \"/cookie-policy\",\n variant = 'primary',\n}: TermsCheckboxProps) => {\n return (\n <CheckboxContainer>\n <HiddenCheckbox\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n />\n <StyledCheckbox $checked={checked} variant={variant} />\n <Text variant={variant}>\n {text}{' '}\n <Link href={termsUrl} variant={variant} target=\"_blank\" rel=\"noopener noreferrer\">\n {termsText}\n </Link>\n {' '}and{' '}\n <Link href={cookieUrl} variant={variant} target=\"_blank\" rel=\"noopener noreferrer\">\n {cookieText}\n </Link>\n </Text>\n </CheckboxContainer>\n );\n};\n\nTermsCheckbox.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst sizes = ['sm', 'md', 'lg'] as const;\n\nconst variants = {\n sm: {\n fontSize: '14px',\n fontWeight: 500,\n },\n md: {\n fontSize: '16px',\n fontWeight: 500,\n },\n lg: {\n fontSize: '18px',\n fontWeight: 500,\n },\n} as const;\n\ntype Variant = keyof typeof variants;\n\ntype Color = keyof typeof colors.text;\n\ninterface TextProps {\n children: string;\n variant?: Variant;\n color?: Color;\n}\n\nconst StyledText = styled.h1<{ variant: Variant; color: Color }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${(props) => variants[props.variant].fontSize};\n font-weight: ${(props) => variants[props.variant].fontWeight};\n`;\n\nexport const Text = ({\n children,\n color = 'primary',\n variant = 'md',\n}: TextProps) => {\n return (\n <StyledText color={color} variant={variant}>\n {children}\n </StyledText>\n );\n};\n\nText.variants = sizes;\n","import { ChangeEvent } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { InputTypes, type BaseInputProps } from '../../types';\n\ninterface TextareaProps extends Omit<BaseInputProps, 'label'> {\n onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n disabled?: boolean;\n value?: string | number;\n rows?: number;\n cols?: number;\n}\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n height: 100%;\n outline: none;\n background-color: transparent;\n color: ${colors.text.subtle};\n font-weight: 600;\n resize: vertical;\n`;\n\nexport const Textarea = ({\n name,\n onChange,\n rows = 3,\n ...rest\n}: TextareaProps) => {\n return (\n <StyledTextarea name={name} onChange={onChange} rows={rows} {...rest} />\n );\n};\n\nTextarea.types = InputTypes;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst bgVariants = ['primary', 'secondary', 'tertiary', 'subtle', 'blue', 'brand', 'light', 'transparent'] as const;\nconst textVariants = ['brand', 'primary', 'secondary', 'tertiary', 'subtle', 'light', 'error', 'blue'] as const;\n\ntype BgVariant = (typeof bgVariants)[number];\ntype TextVariant = (typeof textVariants)[number];\n\nconst StyledContainer = styled.button<{ \n as?: 'button' | 'div';\n bgVariant: BgVariant;\n}>`\n padding: 0 1rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n flex-shrink:0;\n white-space: nowrap;\n background-color: ${(props) => {\n if (props.bgVariant === 'transparent') return 'transparent';\n return colors.background[props.bgVariant];\n }};\n transition: all 0.2s;\n border: none;\n cursor: pointer;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nconst StyledText = styled.span<{ \n textVariant: TextVariant;\n $uppercase?: boolean;\n $bold?: boolean;\n}>`\n color: ${(props) => colors.text[props.textVariant]};\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: ${props => props.$uppercase ? 'uppercase' : 'none'};\n font-weight: ${props => props.$bold ? 700 : 600};\n`;\n\ninterface TextButtonProps {\n text: string;\n onClick?: () => void;\n asChild?: boolean;\n bgVariant?: BgVariant;\n textVariant?: TextVariant;\n uppercase?: boolean;\n bold?: boolean;\n}\n\nexport const TextButton = ({ \n text,\n onClick,\n asChild = false,\n bgVariant = 'brand',\n textVariant = 'secondary',\n uppercase = true,\n bold = false\n}: TextButtonProps) => {\n return (\n <StyledContainer \n as={asChild ? 'div' : 'button'}\n onClick={onClick}\n bgVariant={bgVariant}\n >\n <StyledText textVariant={textVariant} $uppercase={uppercase} $bold={bold}>\n {text}\n </StyledText>\n </StyledContainer>\n );\n};\n\nTextButton.bgVariants = bgVariants;\nTextButton.textVariants = textVariants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst ToggleContainer = styled.div<{ variant: Variant }>`\n display: inline-flex;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.background.secondary;\n case 'secondary':\n return colors.background.light;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.secondary;\n }\n }};\n border-radius: 9999px;\n padding: 0.25rem;\n gap: 0.25rem;\n`;\n\nconst ToggleOption = styled.button<{ \n $isActive: boolean; \n variant: Variant;\n}>`\n padding: 0.5rem 1.5rem;\n border-radius: 9999px;\n border: none;\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n \n background-color: ${props => {\n if (!props.$isActive) return 'transparent';\n \n switch (props.variant) {\n case 'primary':\n return colors.background.brand;\n case 'secondary':\n return colors.background.blue;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.brand;\n }\n }};\n \n color: ${props => {\n if (props.$isActive) {\n return colors.text.secondary; \n }\n \n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n\n &:hover {\n opacity: ${props => props.$isActive ? 1 : 0.7};\n }\n`;\n\ninterface ToggleButtonProps {\n options: string[];\n activeOption: string;\n onChange: (option: string) => void;\n variant?: Variant;\n}\n\nexport const ToggleButton = ({\n options,\n activeOption,\n onChange,\n variant = 'primary',\n}: ToggleButtonProps) => {\n return (\n <ToggleContainer variant={variant}>\n {options.map((option) => (\n <ToggleOption\n key={option}\n $isActive={activeOption === option}\n variant={variant}\n onClick={() => onChange(option)}\n >\n {option}\n </ToggleOption>\n ))}\n </ToggleContainer>\n );\n};\n\nToggleButton.variants = variants;","import { ReactElement } from 'react';\nimport { FaMinus, FaPlus } from 'react-icons/fa';\nimport { FaPlus as FaP } from 'react-icons/fa6';\nimport styled from 'styled-components';\nimport { Button, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface AccordionHeaderProps {\n title: string;\n isOpen: boolean;\n buttonText?: string;\n onButtonPress?: () => void;\n rightElement?: ReactElement;\n onAccordionPress: () => void;\n}\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n\n &:hover {\n cursor: pointer;\n }\n`;\n\nexport const AccordionHeader = ({\n title,\n isOpen,\n buttonText,\n onAccordionPress,\n onButtonPress,\n rightElement,\n}: AccordionHeaderProps) => {\n return (\n <Container>\n <HeaderContainer onClick={onAccordionPress}>\n <>\n {isOpen ? (\n <FaMinus color={colors.text.primary} size={sizes.lg} />\n ) : (\n <FaPlus color={colors.text.primary} size={sizes.lg} />\n )}\n </>\n <Header variant=\"h2\">{title}</Header>\n </HeaderContainer>\n {rightElement ? (\n rightElement\n ) : (\n <Button\n text={buttonText}\n icon={<FaP fontSize=\"10px\" />}\n onClick={onButtonPress}\n />\n )}\n </Container>\n );\n};\n","import { ComponentProps, ReactElement, useState } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\nimport { AccordionContent } from '../AccordionContent/AccordionContent';\nimport { AccordionHeader } from '../AccordionHeader/AccordionHeader';\n\ninterface AccordionProps\n extends Pick<\n ComponentProps<typeof AccordionHeader>,\n 'title' | 'onButtonPress' | 'buttonText' | 'rightElement'\n > {\n children: ReactElement;\n}\n\nconst Container = styled.div`\n border-radius: ${radii.lg};\n background-color: ${colors.background.secondary};\n padding: ${spaces[4]};\n`;\n\nexport const Accordion = ({\n buttonText,\n onButtonPress,\n title,\n children,\n rightElement,\n}: AccordionProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <Container>\n <AccordionHeader\n isOpen={isOpen}\n buttonText={buttonText}\n onButtonPress={onButtonPress}\n onAccordionPress={() => setIsOpen((previousState) => !previousState)}\n title={title}\n rightElement={rightElement}\n />\n {isOpen && <AccordionContent>{children}</AccordionContent>}\n </Container>\n );\n};\n","import { useState } from 'react';\nimport { HiMinus, HiPlus } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { Header, TextButton } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'inverse', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst AddressContainer = styled.div`\n display: flex;\n flex-direction: column;\n background-color: transparent;\n padding: 2rem;\n \n /* Desktop: normal spacing */\n @media (min-width: 768px) {\n gap: 1rem;\n }\n \n /* Mobile: no gap, handled by collapse */\n @media (max-width: 767px) {\n padding: 1rem;\n gap: 0;\n }\n`;\n\nconst HeaderWrapper = styled.div<{ $isClickable: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n /* Desktop: not clickable */\n @media (min-width: 768px) {\n cursor: default;\n }\n \n /* Mobile: clickable */\n @media (max-width: 767px) {\n cursor: ${props => props.$isClickable ? 'pointer' : 'default'};\n padding: 0.5rem 0;\n user-select: none;\n }\n`;\n\nconst ToggleIcon = styled.div<{ variant: Variant }>`\n display: none;\n \n /* Only show on mobile */\n @media (max-width: 767px) {\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n \n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'inverse':\n return colors.text.secondary;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n }\n`;\n\nconst CollapseContent = styled.div<{ $isOpen: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n \n /* Desktop: always visible */\n @media (min-width: 768px) {\n display: flex;\n }\n \n /* Mobile: collapsible */\n @media (max-width: 767px) {\n max-height: ${props => props.$isOpen ? '500px' : '0'};\n opacity: ${props => props.$isOpen ? '1' : '0'};\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n padding-top: ${props => props.$isOpen ? '1rem' : '0'};\n }\n`;\n\nconst InfoSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n`;\n\nconst InfoText = styled.p<{ variant: Variant; $bold?: boolean }>`\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.6;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'inverse':\n return colors.text.secondary; \n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n font-weight: ${props => props.$bold ? 600 : 400};\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: 0.5rem;\n`;\n\ninterface AddressProps {\n title: string;\n phone?: string;\n email?: string;\n addressLines: string[];\n directionsText?: string;\n onDirectionsClick?: () => void;\n variant?: Variant;\n}\n\nexport const Address = ({\n title,\n phone,\n email,\n addressLines,\n directionsText = 'GET DIRECTIONS',\n onDirectionsClick,\n variant = 'primary',\n}: AddressProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleDirectionsClick = () => {\n if (onDirectionsClick) {\n onDirectionsClick();\n } else {\n const fullAddress = addressLines.join(', ');\n const encodedAddress = encodeURIComponent(fullAddress);\n const mapsUrl = `https://www.google.com/maps/search/?api=1&query=${encodedAddress}`;\n window.open(mapsUrl, '_blank');\n }\n };\n\n const getHeaderVariant = () => {\n switch (variant) {\n case 'primary':\n return 'primary';\n case 'inverse':\n return 'secondary'; \n case 'subtle':\n return 'subtle';\n default:\n return 'primary';\n }\n };\n\n const getButtonBgVariant = (): 'transparent' => {\n return 'transparent';\n };\n\n const getButtonTextVariant = (): 'primary' | 'secondary' | 'subtle' => {\n switch (variant) {\n case 'primary':\n return 'primary';\n case 'inverse':\n return 'secondary';\n case 'subtle':\n return 'subtle';\n default:\n return 'primary';\n }\n };\n\n return (\n <AddressContainer>\n <HeaderWrapper \n $isClickable={true}\n onClick={() => setIsOpen(!isOpen)}\n >\n <Header variant=\"h1\" color={getHeaderVariant()}>\n {title}\n </Header>\n <ToggleIcon variant={variant}>\n {isOpen ? <HiMinus /> : <HiPlus />}\n </ToggleIcon>\n </HeaderWrapper>\n \n <CollapseContent $isOpen={isOpen}>\n <InfoSection>\n {phone && (\n <InfoText variant={variant}>{phone}</InfoText>\n )}\n {email && (\n <InfoText variant={variant} $bold>{email.toUpperCase()}</InfoText>\n )}\n {addressLines.map((line, index) => (\n <InfoText key={index} variant={variant}>\n {line}\n </InfoText>\n ))}\n </InfoSection>\n <ButtonWrapper>\n <TextButton\n text={directionsText}\n onClick={handleDirectionsClick}\n bgVariant={getButtonBgVariant()}\n textVariant={getButtonTextVariant()}\n uppercase={true}\n />\n </ButtonWrapper>\n </CollapseContent>\n </AddressContainer>\n );\n};\n\nAddress.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface CheckboxItemProps<T> {\n value: T;\n label: string;\n checked: boolean;\n onClick: () => void;\n}\n\nconst CheckboxWrapper = styled.label`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n cursor: pointer;\n font-size: 16px;\n color: ${colors.text.subtle};\n`;\n\nconst HiddenCheckbox = styled.input.attrs({ type: 'checkbox' })`\n display: none;\n`;\n\nconst StyledCheckbox = styled.span<{ checked: boolean }>`\n width: ${sizes.lg};\n height: ${sizes.lg};\n border: 1.5px solid ${colors.background.tertiary};\n border-radius: ${radii.md};\n background-color: ${({ checked }) =>\n checked ? colors.background.tertiary : 'transparent'};\n transition: all 0.2s ease-in-out;\n`;\n\nexport const CheckboxItem = <T extends string | number | boolean>({\n label,\n onClick,\n checked,\n}: CheckboxItemProps<T>) => {\n return (\n <CheckboxWrapper onClick={onClick}>\n <HiddenCheckbox checked={checked} readOnly />\n <StyledCheckbox checked={checked} />\n {label}\n </CheckboxWrapper>\n );\n};\n","import styled from 'styled-components';\nimport { Label } from '../../atoms';\nimport { CheckboxItem } from '../../atoms/CheckboxItem/CheckboxItem';\nimport { spaces } from '../../tokens/spaces';\nimport { Option } from '../../types';\n\nconst alignments = ['row', 'column'] as const;\n\ntype Align = (typeof alignments)[number];\n\ninterface CheckboxProps<T> {\n error?: string;\n label?: string;\n value: T;\n onChange: (value: T) => void;\n options: Option<T>[];\n align?: Align;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst OptionsContainer = styled.div`\n display: flex;\n gap: ${spaces[4]};\n`;\n\nexport const Checkbox = <T extends string | number | boolean>({\n error,\n label,\n onChange,\n options,\n value,\n}: CheckboxProps<T>) => {\n return (\n <Container>\n {typeof label === 'string' && label?.length ? (\n <Label\n value={label}\n color={\n typeof error === 'string' && error?.length ? 'error' : undefined\n }\n fontWeight=\"600\"\n />\n ) : null}\n <OptionsContainer>\n {options.map((option) => (\n <CheckboxItem\n checked={value === option.value}\n label={option.label}\n onClick={() => onChange(option.value)}\n value={option.value}\n />\n ))}\n </OptionsContainer>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { ArrowButton, Description, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n background-color: #ffffff;\n width: 284px;\n height: 482px;\n padding: 1.5rem;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n flex-shrink: 0;\n \n @media (max-width: 767px) {\n width: 70vw;\n }\n`;\n\nconst ThumbnailWrapper = styled.div<{ thumbnailBgColor: BackgroundColor }>`\n width: 180px;\n height: 180px;\n border-radius: 50%;\n background-color: ${props => colors.background[props.thumbnailBgColor]};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: center;\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n margin-top: auto;\n`;\n\ninterface ContentCardProps {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n onArrowClick?: () => void;\n headerVariant?: 'h1' | 'h2' | 'h3';\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n arrowVariant?: 'brand' | 'teal' | 'blue';\n thumbnailBgColor?: BackgroundColor;\n}\n\nexport const ContentCard = ({\n thumbnail,\n title,\n description,\n onArrowClick,\n headerVariant = 'h2',\n titleColor = 'brand',\n descriptionVariant = 'subtle',\n arrowVariant = 'teal',\n thumbnailBgColor = 'brand',\n}: ContentCardProps) => {\n return (\n <Container>\n <ThumbnailWrapper thumbnailBgColor={thumbnailBgColor}>\n {thumbnail}\n </ThumbnailWrapper>\n <Header variant={headerVariant} color={titleColor}>\n {title}\n </Header>\n <Description variant={descriptionVariant}>\n {description}\n </Description>\n <ButtonWrapper>\n <ArrowButton \n onClick={onArrowClick}\n variant={arrowVariant}\n />\n </ButtonWrapper>\n </Container>\n );\n};","import styled from 'styled-components';\nimport { ExtendedButton, TextButton } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst variants = ['primary', 'secondary', 'transparent'] as const;\ntype Variant = (typeof variants)[number];\n\nconst Container = styled.div<{ variant: Variant }>`\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 3rem 2rem;\n max-width: 500px;\n \n /* Mobile adjustments */\n @media (max-width: 767px) {\n padding: 2rem 1rem;\n max-width: 100%;\n }\n`;\n\nconst Header = styled.h1<{ textColor: TextColor }>`\n margin: 0;\n font-size: 2.5rem;\n font-weight: 700;\n line-height: 1.2;\n color: ${(props) => colors.text[props.textColor]};\n \n /* Responsive font size */\n @media (max-width: 767px) {\n font-size: 2rem;\n }\n \n @media (max-width: 480px) {\n font-size: 1.75rem;\n }\n`;\n\nconst Description = styled.p<{ textColor: TextColor }>`\n margin: 0;\n font-size: 1.125rem;\n line-height: 1.6;\n color: ${(props) => colors.text[props.textColor]};\n \n /* Responsive font size */\n @media (max-width: 767px) {\n font-size: 1rem;\n }\n`;\n\nconst ButtonGroup = styled.div`\n display: flex;\n gap: 1rem;\n align-items: center;\n \n /* Stack vertically on mobile */\n @media (max-width: 767px) {\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n }\n`;\n\ninterface CTAContainerProps {\n header: string;\n description: string;\n primaryButtonText: string;\n secondaryButtonText?: string;\n onPrimaryClick?: () => void;\n onSecondaryClick?: () => void;\n variant?: Variant;\n headerTextColor?: TextColor;\n descriptionTextColor?: TextColor;\n primaryArrowVariant?: 'brand' | 'teal' | 'blue';\n primaryTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n primaryTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n secondaryBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n secondaryTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const CTAContainer = ({\n header,\n description,\n primaryButtonText,\n secondaryButtonText,\n onPrimaryClick,\n onSecondaryClick,\n variant = 'transparent',\n headerTextColor = 'secondary',\n descriptionTextColor = 'secondary',\n primaryArrowVariant = 'teal',\n primaryTextBgVariant = 'brand',\n primaryTextVariant = 'secondary',\n secondaryBgVariant = 'transparent',\n secondaryTextVariant = 'secondary',\n}: CTAContainerProps) => {\n return (\n <Container variant={variant}>\n <Header textColor={headerTextColor}>{header}</Header>\n <Description textColor={descriptionTextColor}>{description}</Description>\n <ButtonGroup>\n <ExtendedButton\n text={primaryButtonText}\n onClick={onPrimaryClick}\n arrowVariant={primaryArrowVariant}\n textBgVariant={primaryTextBgVariant}\n textVariant={primaryTextVariant}\n />\n {secondaryButtonText && (\n <TextButton\n text={secondaryButtonText}\n onClick={onSecondaryClick}\n bgVariant={secondaryBgVariant}\n textVariant={secondaryTextVariant}\n />\n )}\n </ButtonGroup>\n </Container>\n );\n};\n\nCTAContainer.variants = variants;","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Label } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\nconst variants = ['outline', 'none'] as const;\ninterface InputContainerProps {\n error?: string;\n children: ReactNode;\n variant?: (typeof variants)[number];\n}\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst InnerContainer = styled.div<\n Pick<InputContainerProps, 'error' | 'variant'>\n>`\n position: relative;\n width: 100%;\n min-height: 58px;\n display: flex;\n align-items: center;\n\n border-style: solid;\n border-width: ${(props) => (props?.variant === 'outline' ? sizes[0] : '0px')};\n border-color: ${(props) =>\n props?.error ? colors.border.error : colors.border.active};\n border-radius: ${radii.lg};\n\n padding: ${spaces[3]} ${spaces[3]} ${spaces[2]};\n\n &:hover {\n border-color: ${colors.border.hover};\n cursor: text;\n }\n\n &:focus-within {\n border-color: ${colors.border.focus};\n }\n`;\n\nexport const InputContainer = ({\n error,\n children,\n variant = 'outline',\n}: InputContainerProps) => {\n return (\n <Container>\n <InnerContainer error={error} variant={variant}>\n {children}\n </InnerContainer>\n {typeof error === 'string' && <Label value={error} color=\"error\" />}\n </Container>\n );\n};\n","import { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { colors } from '../../tokens/colors';\nimport { Option } from '../../types';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface DropdownProps<T> {\n options: Option<T>[];\n value?: T;\n onChange: (value: T) => void;\n label?: string;\n error?: string;\n name: string;\n placeholder?: string;\n disabled?: boolean;\n}\n\nconst Select = styled.select<{ isInvalid: boolean }>`\n width: 100%;\n color: ${colors.text.subtle};\n background: transparent;\n font-weight: 600;\n border: none;\n outline: none;\n padding: 0;\n margin: 0;\n\n &:focus,\n &:active,\n &:hover {\n border: none;\n outline: none;\n box-shadow: none;\n }\n\n &:invalid {\n color: ${colors.text.subtle};\n }\n`;\n\nconst OptionItem = styled.option`\n color: ${(props) =>\n props.disabled ? colors.text.light : colors.text.subtle};\n`;\n\nexport const Dropdown = <T extends string | number>({\n error,\n onChange,\n options,\n value,\n label,\n name,\n placeholder = 'Select an option',\n disabled,\n}: DropdownProps<T>) => {\n const isInvalid = useMemo(\n () => error ? typeof error === 'string' && error?.length > 0 : false,\n [error],\n );\n\n return (\n <InputContainer error={error}>\n {typeof label === 'string' && (\n <FloatingLabel\n value={label}\n color={isInvalid ? 'error' : 'subtle'}\n fontWeight=\"600\"\n />\n )}\n <Select\n name={name}\n value={value ?? ''}\n onChange={(e) => onChange(e.target.value as T)}\n isInvalid={isInvalid}\n disabled={disabled}\n >\n <OptionItem value=\"\" disabled hidden>\n {placeholder}\n </OptionItem>\n {options.map((option) => (\n <OptionItem key={option.value} value={option.value}>\n {option.label}\n </OptionItem>\n ))}\n </Select>\n </InputContainer>\n );\n};\n","import { useState } from 'react';\nimport { HiMinus, HiPlus } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { Description, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst AccordionContainer = styled.div`\n border-bottom: 1px solid ${colors.text.light || '#d1d5db'};\n padding: 1.5rem 0;\n`;\n\nconst AccordionHeader = styled.button`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 1rem;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n padding: 0;\n`;\n\nconst NumberBadge = styled.span<{ numberColor: TextColor }>`\n font-size: 1rem;\n font-weight: 600;\n color: ${props => colors.text[props.numberColor]};\n flex-shrink: 0;\n`;\n\nconst HeaderWrapper = styled.div`\n flex-grow: 1;\n`;\n\nconst IconWrapper = styled.div<{ iconColor: TextColor }>`\n color: ${props => colors.text[props.iconColor]};\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst AccordionContent = styled.div<{ $isOpen: boolean }>`\n max-height: ${props => props.$isOpen ? '1000px' : '0'};\n overflow: hidden;\n transition: max-height 0.3s ease-in-out;\n padding-left: 2.5rem;\n margin-top: ${props => props.$isOpen ? '1rem' : '0'};\n`;\n\ninterface AccordionProps {\n number: string;\n title: string;\n content: string;\n defaultOpen?: boolean;\n headerVariant?: 'h1' | 'h2' | 'h3';\n numberColor?: TextColor;\n titleColor?: TextColor;\n iconColor?: TextColor;\n contentVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FAQAccordion = ({\n number,\n title,\n content,\n defaultOpen = false,\n headerVariant = 'h3',\n numberColor = 'brand',\n titleColor = 'brand',\n iconColor = 'brand',\n contentVariant = 'primary',\n}: AccordionProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n return (\n <AccordionContainer>\n <AccordionHeader onClick={() => setIsOpen(!isOpen)}>\n <NumberBadge numberColor={numberColor}>{number}</NumberBadge>\n <HeaderWrapper>\n <Header variant={headerVariant} color={titleColor}>\n {title}\n </Header>\n </HeaderWrapper>\n <IconWrapper iconColor={iconColor}>\n {isOpen ? <HiMinus size={24} /> : <HiPlus size={24} />}\n </IconWrapper>\n </AccordionHeader>\n <AccordionContent $isOpen={isOpen}>\n <Description variant={contentVariant}>\n {content}\n </Description>\n </AccordionContent>\n </AccordionContainer>\n );\n};","import styled from 'styled-components';\nimport { FeatureItem } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst FeatureWrapper = styled.div`\n padding: 1rem 0;\n border-bottom: 1px solid #e5e7eb;\n\n &:last-child {\n border-bottom: none;\n }\n`;\n\ninterface FeatureItemData {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n thumbnailSize?: string;\n}\n\ninterface FeatureContainerProps {\n items: FeatureItemData[];\n thumbnailBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FeatureContainer = ({ \n items, \n thumbnailBgColor = 'brand',\n titleColor = 'primary',\n descriptionVariant = 'subtle',\n}: FeatureContainerProps) => {\n return (\n <Container>\n {items.map((item, index) => (\n <FeatureWrapper key={index}>\n <FeatureItem\n thumbnail={item.thumbnail}\n title={item.title}\n description={item.description}\n thumbnailSize={item.thumbnailSize}\n thumbnailBgColor={thumbnailBgColor}\n titleColor={titleColor}\n descriptionVariant={descriptionVariant}\n />\n </FeatureWrapper>\n ))}\n </Container>\n );\n};","import { ComponentProps, useRef } from 'react';\nimport { FaPlus } from 'react-icons/fa6';\nimport { Button } from '../../atoms';\n\nconst acceptTypes = ['.docx', '.doc', '.pdf', 'image/*'] as const;\n\ntype AcceptType = (typeof acceptTypes)[number];\n\ninterface FileButtonProps\n extends Omit<ComponentProps<typeof Button>, 'onClick' | 'type'> {\n onFileSelect?: (file: File) => void;\n accept?: AcceptType[];\n multiple?: boolean;\n}\n\nexport const FileButton = ({\n onFileSelect,\n accept = ['.pdf'],\n multiple = false,\n ...rest\n}: FileButtonProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files && files.length > 0 && onFileSelect) {\n Array.from(files).forEach((file) => onFileSelect(file));\n }\n };\n\n return (\n <>\n <Button\n {...rest}\n icon={<FaPlus fontSize=\"10px\" />}\n onClick={handleClick}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={handleFileChange}\n accept={accept?.map((item) => item).join(',')}\n multiple={multiple}\n />\n </>\n );\n};\n","import { ComponentProps, useMemo } from 'react';\nimport { Input as InputBase } from '../../atoms/Input/Input';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface InputProps extends ComponentProps<typeof InputBase> {\n label?: string;\n error?: string;\n}\n\nexport const Input = ({ label, error, ...rest }: InputProps) => {\n const isInvalid = useMemo(\n () => typeof error === 'string' && error.length > 0,\n [error],\n );\n\n return (\n <InputContainer error={error}>\n {typeof label === 'string' && (\n <FloatingLabel\n color={isInvalid ? 'error' : 'subtle'}\n value={label}\n fontWeight=\"600\"\n />\n )}\n <InputBase {...rest} />\n </InputContainer>\n );\n};\n\nInput.types = InputBase.types;\n","import { keyframes } from 'styled-components';\n\nexport const fadeIn = keyframes`\n from { opacity: 0 }\n to { opacity: 1 }\n`;\n\nexport const popIn = keyframes`\n from { transform: translateY(8px) scale(.98); opacity: 0 }\n to { transform: translateY(0) scale(1); opacity: 1 }\n`;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { fadeIn } from '../../tokens/animations';\nimport { breakpoints } from '../../tokens/breakpoints';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\n\nconst positions = ['top', 'center', 'bottom'] as const;\n\ntype ContentPosition = (typeof positions)[number];\n\ninterface ModalProps {\n visible: boolean;\n onClose: () => void;\n dismissable?: boolean;\n contentPosition?: ContentPosition;\n children: ReactNode;\n}\n\nconst Overlay = styled.div<{ contentPosition: ContentPosition }>`\n height: 100vh;\n width: 100vw;\n background-color: rgba(0, 0, 0, 0.4);\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: ${(props) =>\n props.contentPosition === 'center'\n ? 'center'\n : props.contentPosition === 'bottom'\n ? 'flex-end'\n : 'flex-start'};\n justify-content: center;\n animation: ${fadeIn} 160ms ease-out;\n`;\n\nconst ContentContainer = styled.div`\n position: relative;\n width: min(${breakpoints.sm}, 92vw);\n max-height: 86vh;\n overflow: auto;\n border-radius: ${radii.xl};\n padding: ${spaces[6]};\n background-color: ${colors.background.primary};\n`;\n\nexport const Modal = ({\n visible,\n contentPosition = 'center',\n dismissable = true,\n onClose,\n children,\n}: ModalProps) => {\n function onDismiss() {\n if (dismissable) {\n onClose();\n }\n }\n\n if (!visible) return <></>;\n\n return (\n <Overlay contentPosition={contentPosition} onClick={onDismiss}>\n <ContentContainer onClick={(e) => e.stopPropagation()}>\n {children}\n </ContentContainer>\n </Overlay>\n );\n};\n","import { FaCircleCheck, FaCircleExclamation } from \"react-icons/fa6\"\nimport styled from \"styled-components\"\nimport { Header } from \"../../atoms\"\nimport { colors } from \"../../tokens/colors\"\nimport { radii } from \"../../tokens/radii\"\nimport { spaces } from \"../../tokens/spaces\"\n\nconst Container = styled.div<{isComplete: boolean}>`\ndisplay: flex;\nalign-items: center ;\njustify-content: space-between;\npadding: ${spaces[2]} ${spaces[3]};\nbackground-color: ${props => props.isComplete ? colors.background.blue : colors.background.light};\nborder-radius: ${radii.sm};\n`\n\nconst Row = styled.div`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n`\n\ninterface OverviewRowItemProps {\n isComplete: boolean\n title: string\n isMainHeader: boolean\n}\n\nexport const OverviewRowItem = ({isComplete, isMainHeader, title}: OverviewRowItemProps) => {\n\n return <Container isComplete={isComplete}>\n <Header variant={isMainHeader ? 'h2' : 'h3'} color={isComplete ? 'secondary' : 'primary'}>{title}</Header>\n\n <Row>\n <Header variant='h3' color={isComplete ? 'secondary' : 'primary'}>{isComplete ? 'Complete' : 'Information Outstanding'}</Header>\n {isComplete ? <FaCircleCheck color={colors.background.success}/> : <FaCircleExclamation color={colors.background.error}/>}\n </Row>\n </Container>\n}","'use client';\n\ninterface SpinnerProps {\n height?: `${number}px`;\n width?: `${number}px`;\n}\n\nexport default function Spinner(props: SpinnerProps) {\n return (\n <>\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </>\n );\n}\n","import { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport Spinner from '../../components/Spinner';\nimport { colors } from '../../tokens/colors';\nimport { spaces } from '../../tokens/spaces';\n\ninterface PageLayoutProps {\n title: string;\n children: ReactNode;\n isLoading?: boolean;\n rightElement?: ReactElement\n}\n\nconst Container = styled.div`\n width: '100%';\n min-height: '100vh';\n padding-bottom: ${spaces[9]};\n`;\n\nconst HeaderContainer = styled.div`\n padding: ${spaces[4.5]} ${spaces[6]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst ContentContainer = styled.div`\n border-top: 1px solid ${colors.border.hover};\n`;\n\nconst SpinnerContainer = styled.div`\n display: flex;\n width: 100%;\n padding: ${spaces[6]};\n align-items: center;\n justify-content: center;\n`;\n\nexport const PageLayout = ({\n title,\n children,\n isLoading = false,\n rightElement\n}: PageLayoutProps) => {\n return (\n <Container>\n <HeaderContainer>\n <Header color=\"subtle\">{title}</Header> {rightElement && rightElement}\n </HeaderContainer>\n {isLoading ? (\n <SpinnerContainer>\n <Spinner />\n </SpinnerContainer>\n ) : (\n <ContentContainer>{children}</ContentContainer>\n )}\n </Container>\n );\n};\n","import { useMemo } from 'react';\nimport { FaHouse, FaRegFolderOpen } from 'react-icons/fa6';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\nconst variants = ['documents', 'properties'] as const;\n\ntype EmptyStateType = (typeof variants)[number];\n\ninterface EmptyStateProps {\n variant: EmptyStateType;\n message: string;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: ${spaces[4]};\n padding: ${spaces[8]};\n`;\n\nexport const EmptyState = ({ variant, message }: EmptyStateProps) => {\n const size = sizes.xl;\n const color = colors.text.primary;\n\n const Icon = useMemo(() => {\n switch (variant) {\n case 'documents':\n return <FaRegFolderOpen size={size} color={color} />;\n case 'properties':\n return <FaHouse size={size} color={color} />;\n }\n }, [variant]);\n\n return (\n <Container>\n {Icon}\n <Header variant=\"h3\">{message}</Header>\n </Container>\n );\n};\n\nEmptyState.variants = variants;\n","import { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { EmptyState } from '../EmptyState/EmptyState';\n\ninterface PDFPreviewerProps {\n url: string;\n}\n\nconst Container = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nexport const PDFPreviewer = ({ url }: PDFPreviewerProps) => {\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n setError(null);\n try {\n new URL(url);\n } catch {\n setError('Invalid preview URL');\n }\n }, [url]);\n\n if (typeof error === 'string')\n return (\n <EmptyState message=\"Failed to load this document\" variant=\"documents\" />\n );\n\n return (\n <Container>\n <iframe\n src={`${url}#view=FitH&toolbar=1&navpanes=0`}\n title=\"Document preview\"\n allow=\"clipboard-read; clipboard-write\"\n referrerPolicy=\"no-referrer\"\n style={{ width: '100%', height: '100%', border: '0' }}\n />\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { ExtendedButton, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst Container = styled.div`\n display: flex;\n gap: 1.5rem;\n align-items: center;\n max-width: 600px;\n \n /* Mobile: stack vertically */\n @media (max-width: 767px) {\n flex-direction: column;\n align-items: flex-start;\n max-width: 100%;\n }\n`;\n\nconst ImageWrapper = styled.div`\n flex-shrink: 0;\n width: 180px;\n height: 180px;\n border-radius: 8px;\n overflow: hidden;\n \n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n \n /* Mobile: full width */\n @media (max-width: 767px) {\n width: 100%;\n height: 200px;\n }\n`;\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n \n /* Mobile: full width */\n @media (max-width: 767px) {\n width: 100%;\n }\n`;\n\nconst LogoWrapper = styled.div`\n max-width: 200px;\n \n img {\n width: 100%;\n height: auto;\n }\n`;\n\ninterface ProductInfoItemProps {\n image: string;\n logoImage: string;\n title: string;\n buttonText: string;\n onButtonClick?: () => void;\n titleVariant?: 'h1' | 'h2' | 'h3';\n titleColor?: TextColor;\n buttonArrowVariant?: 'brand' | 'teal' | 'blue';\n buttonTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n buttonTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const ProductInfo = ({\n image,\n logoImage,\n title,\n buttonText,\n onButtonClick,\n titleVariant = 'h2',\n titleColor = 'brand',\n buttonArrowVariant = 'teal',\n buttonTextBgVariant = 'brand',\n buttonTextVariant = 'secondary',\n}: ProductInfoItemProps) => {\n return (\n <Container>\n <ImageWrapper>\n <img src={image} alt=\"Product\" />\n </ImageWrapper>\n <ContentWrapper>\n <LogoWrapper>\n <img src={logoImage} alt=\"Logo\" />\n </LogoWrapper>\n <Header variant={titleVariant} color={titleColor}>\n {title}\n </Header>\n <ExtendedButton\n text={buttonText}\n onClick={onButtonClick}\n arrowVariant={buttonArrowVariant}\n textBgVariant={buttonTextBgVariant}\n textVariant={buttonTextVariant}\n />\n </ContentWrapper>\n </Container>\n );\n};","import styled from 'styled-components';\nimport { Label, RadioItem } from '../../atoms';\nimport { spaces } from '../../tokens/spaces';\nimport { Option } from '../../types';\n\ntype RadioGroupProps<T extends string | number> = {\n label?: string;\n options: readonly Option<T>[];\n value: T;\n onClick: (value: T) => void;\n className?: string;\n};\n\nconst Container = styled.div``;\n\nconst OptionsContainer = styled.div`\n margin-top: ${spaces[2]};\n display: flex;\n flex-direction: row;\n flex: 1;\n gap: ${spaces[2]};\n`;\n\nconst LabelContainer = styled.div`\n padding-left: ${spaces[1]};\n`;\n\nexport const RadioGroup = <T extends string | number>({\n label,\n options,\n value,\n onClick,\n className,\n}: RadioGroupProps<T>) => {\n return (\n <Container className={className}>\n {typeof label === 'string' && (\n <LabelContainer>\n <Label value={label} fontWeight=\"600\" />\n </LabelContainer>\n )}\n <OptionsContainer>\n {options.map((option, idx) => (\n <RadioItem\n key={idx}\n isSelected={value === option.value}\n label={option.label}\n disabled={option.disabled}\n onClick={() => onClick(option.value)}\n />\n ))}\n </OptionsContainer>\n </Container>\n );\n};\n","import { HiX } from 'react-icons/hi';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst ChartContainer = styled.div`\n background-color: #ffffff;\n border-radius: 8px;\n padding: 2rem;\n max-width: 400px;\n width: 90%;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n`;\n\nconst HeaderSection = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 1.5rem;\n`;\n\nconst CloseButton = styled.button<{ variant: Variant }>`\n background-color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.background.brand;\n case 'secondary':\n return colors.background.blue;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.brand;\n }\n }};\n color: #ffffff;\n border: none;\n border-radius: 4px;\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: opacity 0.2s;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst Table = styled.table`\n width: 100%;\n border-collapse: collapse;\n`;\n\nconst TableHeader = styled.thead`\n border-bottom: 2px solid #e5e7eb;\n`;\n\nconst TableHeaderCell = styled.th<{ variant: Variant }>`\n text-align: left;\n padding: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 700;\n text-transform: uppercase;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n`;\n\nconst TableBody = styled.tbody``;\n\nconst TableRow = styled.tr`\n border-bottom: 1px solid #f3f4f6;\n\n &:last-child {\n border-bottom: none;\n }\n`;\n\nconst TableCell = styled.td<{ variant: Variant }>`\n padding: 0.75rem 0;\n font-size: 0.875rem;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n case 'secondary':\n return colors.text.primary;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\ninterface RateItem {\n transactionType: string;\n price: string;\n}\n\ninterface RatesChartProps {\n title?: string;\n rates: RateItem[];\n onClose: () => void;\n variant?: Variant;\n}\n\nexport const RatesChart = ({\n title = 'Rates chart',\n rates,\n onClose,\n variant = 'primary',\n}: RatesChartProps) => {\n const getHeaderColor = () => {\n switch (variant) {\n case 'primary':\n return 'brand';\n case 'secondary':\n return 'primary';\n case 'subtle':\n return 'subtle';\n default:\n return 'brand';\n }\n };\n\n return (\n <Overlay onClick={onClose}>\n <ChartContainer onClick={(e) => e.stopPropagation()}>\n <HeaderSection>\n <Header variant=\"h2\" color={getHeaderColor()}>\n {title}\n </Header>\n <CloseButton onClick={onClose} variant={variant}>\n <HiX size={20} />\n </CloseButton>\n </HeaderSection>\n <Table>\n <TableHeader>\n <tr>\n <TableHeaderCell variant={variant}>Transaction type</TableHeaderCell>\n <TableHeaderCell variant={variant}>Price</TableHeaderCell>\n </tr>\n </TableHeader>\n <TableBody>\n {rates.map((rate, index) => (\n <TableRow key={index}>\n <TableCell variant={variant}>{rate.transactionType}</TableCell>\n <TableCell variant={variant}>{rate.price}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </ChartContainer>\n </Overlay>\n );\n};\n\nRatesChart.variants = variants;","import styled from 'styled-components';\nimport { ExtendedButton, TextButton } from \"../../atoms\";\nimport { colors } from '../../tokens/colors';\n\ntype BorderColor = keyof typeof colors.border;\ntype BgColor = keyof typeof colors.background;\n\nconst Backdrop = styled.div<{ $isOpen: boolean }>`\n display: none;\n \n @media (max-width: 767px) {\n display: ${props => props.$isOpen ? 'block' : 'none'};\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n }\n`;\n\nconst BackToTopWrapper = styled.div`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst StyledNav = styled.nav<{ \n $isOpen: boolean;\n $mobileBgVariant: BgColor;\n $borderVariant: BorderColor;\n}>`\n width: 195px;\n display: flex;\n flex-direction: column;\n min-height: 500px;\n height: 100vh;\n padding-bottom: 15px;\n \n @media (min-width: 768px) {\n position: relative;\n background-color: #ffffff;\n border-right: 1px solid #e5e7eb;\n }\n \n @media (max-width: 767px) {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 9999;\n background-color: ${props => colors.background[props.$mobileBgVariant]};\n border-right: 1px solid ${props => colors.border[props.$borderVariant]};\n transform: translateX(${props => props.$isOpen ? '0' : '-100%'});\n transition: transform 0.3s ease-in-out;\n box-shadow: ${props => props.$isOpen ? '2px 0 8px rgba(0, 0, 0, 0.15)' : 'none'};\n }\n`;\n\nconst CloseButton = styled.button<{ $textVariant: BorderColor }>`\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n padding: 0.5rem;\n color: ${props => colors.border[props.$textVariant]};\n \n &:hover {\n opacity: 0.7;\n }\n`;\n\nconst MobileHeader = styled.div`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n }\n`;\n\nconst NavList = styled.ul`\n display: flex;\n flex-direction: column;\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst DesktopNavList = styled(NavList)`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst MobileNavList = styled(NavList)`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n }\n`;\n\nconst NavItem = styled.li`\n display: flex;\n`;\n\nconst NavLink = styled.a<{ $isActive: boolean }>`\n display: flex;\n align-items: center;\n text-decoration: none;\n width: 100%;\n padding-left: 0.5rem;\n \n ${props => !props.$isActive && `\n &:hover {\n font-weight: 100;\n }\n `}\n`;\n\nconst ActiveTriangle = styled.div<{ triangleColor: BorderColor }>`\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-left: 6px solid ${props => colors.border[props.triangleColor]};\n border-bottom: 4px solid transparent;\n flex-shrink: 0;\n margin-left: 1.5rem;\n`;\n\nconst InactiveSpacer = styled.span`\n width: 6px;\n margin-right: 0.5rem;\n flex-shrink: 0;\n`;\n\nconst Divider = styled.div<{ dividerColor: BorderColor }>`\n height: 1px;\n background-color: ${props => colors.border[props.dividerColor]};\n margin: 1rem;\n`;\n\nconst Spacer = styled.div`\n flex-grow: 1;\n`;\n\nconst DesktopOnlySpacer = styled(Spacer)`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst MobileButtonsWrapper = styled.div`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n padding: 0 1rem;\n margin-top: auto;\n margin-bottom: 20px;\n }\n`;\n\ninterface NavItemData {\n label: string;\n href: string;\n}\n\ninterface SideNavProps {\n logo?: React.ReactNode;\n items: NavItemData[];\n activeItem?: string;\n onBackToTop?: () => void;\n isOpen?: boolean;\n onClose?: () => void;\n mobileButtons?: Array<{\n text: string;\n onClick: () => void;\n bgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n arrowButton?: 'blue'\n }>;\n mobileBgVariant?: BgColor;\n borderVariant?: BorderColor;\n closeButtonVariant?: BorderColor;\n mobileActiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n mobileActiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n mobileInactiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n mobileInactiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n triangleColor?: BorderColor;\n dividerColor?: BorderColor;\n activeTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n activeTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n inactiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n inactiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n backToTopBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n backToTopTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const SideNav = ({ \n logo,\n items, \n activeItem,\n onBackToTop,\n isOpen = true, \n onClose,\n mobileButtons = [],\n mobileBgVariant = 'tertiary',\n borderVariant = 'primary',\n closeButtonVariant = 'light',\n mobileActiveTextBgVariant = 'transparent',\n mobileActiveTextVariant = 'light',\n mobileInactiveTextBgVariant = 'transparent',\n mobileInactiveTextVariant= 'light',\n triangleColor = 'primary',\n dividerColor = 'light',\n activeTextBgVariant = 'transparent',\n activeTextVariant = 'brand',\n inactiveTextBgVariant = 'transparent',\n inactiveTextVariant = 'subtle',\n backToTopBgVariant = 'transparent',\n backToTopTextVariant = 'subtle',\n}: SideNavProps) => {\n const renderNavItems = (isMobile: boolean) => items.map((item) => {\n const isActive = activeItem === item.href;\n return (\n <NavItem key={item.href}>\n <NavLink href={item.href} $isActive={isActive}>\n {isActive ? <ActiveTriangle triangleColor={triangleColor} /> : <InactiveSpacer />}\n <TextButton\n asChild\n text={item.label}\n bgVariant={isActive \n ? (isMobile && mobileActiveTextBgVariant ? mobileActiveTextBgVariant : activeTextBgVariant)\n : (isMobile && mobileInactiveTextBgVariant ? mobileInactiveTextBgVariant : inactiveTextBgVariant)\n }\n textVariant={isActive\n ? (isMobile && mobileActiveTextVariant ? mobileActiveTextVariant : activeTextVariant)\n : (isMobile && mobileInactiveTextVariant ? mobileInactiveTextVariant : inactiveTextVariant)\n }\n uppercase={false}\n bold={isActive}\n />\n </NavLink>\n </NavItem>\n );\n });\n\n return (\n <>\n <Backdrop $isOpen={isOpen} onClick={onClose} />\n <StyledNav \n $isOpen={isOpen}\n $mobileBgVariant={mobileBgVariant}\n $borderVariant={borderVariant}\n >\n <MobileHeader>\n {logo}\n <CloseButton onClick={onClose} aria-label=\"Close menu\" $textVariant={closeButtonVariant}>\n ✕\n </CloseButton>\n </MobileHeader>\n \n <DesktopOnlySpacer />\n \n {/* Desktop nav */}\n <DesktopNavList>\n {renderNavItems(false)}\n </DesktopNavList>\n\n {/* Mobile nav */}\n <MobileNavList>\n {renderNavItems(true)}\n </MobileNavList>\n\n <Divider dividerColor={dividerColor} />\n <Spacer />\n\n {mobileButtons.length > 0 && (\n <>\n <Divider dividerColor={dividerColor} />\n <MobileButtonsWrapper>\n {mobileButtons.map((button, index) => (\n <ExtendedButton\n key={index}\n text={button.text}\n onClick={button.onClick}\n textBgVariant={button.bgVariant || 'transparent'}\n textVariant={button.textVariant || 'subtle'}\n arrowVariant={button.arrowButton || 'blue'}\n />\n ))}\n </MobileButtonsWrapper> \n </>\n )}\n\n <BackToTopWrapper>\n <TextButton\n text=\"Back to top\"\n onClick={onBackToTop}\n bgVariant={backToTopBgVariant}\n textVariant={backToTopTextVariant}\n uppercase={false}\n />\n </BackToTopWrapper>\n </StyledNav>\n </>\n );\n};","import { HiX } from 'react-icons/hi';\nimport styled from 'styled-components';\nimport { Description, ExtendedButton, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype BackgroundColor = keyof typeof colors.background;\ntype TextColor = keyof typeof colors.text;\n\nconst Overlay = styled.div<{ $isOpen: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: ${props => props.$isOpen ? 'flex' : 'none'};\n justify-content: flex-end;\n z-index: 1000;\n`;\n\nconst PanelContainer = styled.div<{ $isOpen: boolean }>`\n background-color: #ffffff;\n width: 100%;\n max-width: 400px;\n height: 100vh;\n padding: 3rem 2rem;\n box-shadow: -4px 0 15px rgba(0, 0, 0, 0.2);\n display: flex;\n flex-direction: column;\n gap: 2rem;\n transform: ${props => props.$isOpen ? 'translateX(0)' : 'translateX(100%)'};\n transition: transform 0.3s ease-in-out;\n overflow-y: auto;\n`;\n\nconst CloseButton = styled.button<{ closeButtonBgColor: BackgroundColor }>`\n position: absolute;\n top: 1.5rem;\n right: 1.5rem;\n background-color: ${props => colors.background[props.closeButtonBgColor]};\n color: #ffffff;\n border: none;\n border-radius: 4px;\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: opacity 0.2s;\n z-index: 10;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst IconWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-bottom: 1rem;\n\n svg {\n width: 150px;\n height: 150px;\n }\n\n img {\n width: 150px;\n height: 150px;\n object-fit: contain;\n }\n`;\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n`;\n\ninterface SidePanelProps {\n isOpen: boolean;\n onClose: () => void;\n icon: React.ReactNode;\n title: string;\n description: string;\n buttonText: string;\n onButtonClick?: () => void;\n closeButtonBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n buttonArrowVariant?: 'brand' | 'teal' | 'blue';\n buttonTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n buttonTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const SidePanel = ({\n isOpen,\n onClose,\n icon,\n title,\n description,\n buttonText,\n onButtonClick,\n closeButtonBgColor = 'subtle',\n titleColor = 'brand',\n descriptionVariant = 'primary',\n buttonArrowVariant = 'teal',\n buttonTextBgVariant = 'brand',\n buttonTextVariant = 'secondary',\n}: SidePanelProps) => {\n return (\n <Overlay $isOpen={isOpen} onClick={onClose}>\n <PanelContainer $isOpen={isOpen} onClick={(e) => e.stopPropagation()}>\n <CloseButton onClick={onClose} closeButtonBgColor={closeButtonBgColor}>\n <HiX size={24} />\n </CloseButton>\n <IconWrapper>{icon}</IconWrapper>\n <ContentWrapper>\n <Header variant=\"h2\" color={titleColor}>\n {title}\n </Header>\n <Description variant={descriptionVariant}>\n {description}\n </Description>\n <ExtendedButton\n text={buttonText}\n onClick={onButtonClick}\n arrowVariant={buttonArrowVariant}\n textBgVariant={buttonTextBgVariant}\n textVariant={buttonTextVariant}\n />\n </ContentWrapper>\n </PanelContainer>\n </Overlay>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface StepperHeaderTabProps {\n onClick?: () => void;\n title: string;\n isSelected: boolean;\n}\n\nconst Container = styled.div<Pick<StepperHeaderTabProps, 'isSelected'>>`\n width: 100%;\n background-color: ${(props) =>\n props.isSelected ? colors.background.blue : colors.background.primary};\n border: 1px solid ${colors.background.blue};\n border-radius: ${radii.lg};\n display: flex;\n justify-content: center;\n align-items: center;\n padding: ${spaces[2]} ${spaces[3]};\n cursor: pointer;\n`;\n\nconst StyledLabel = styled.span<Pick<StepperHeaderTabProps, 'isSelected'>>`\n color: ${(props) =>\n props.isSelected ? colors.text.secondary : colors.text.blue};\n font-size: ${sizes.sm};\n font-weight: 700;\n`;\n\nexport const StepperHeaderTab = ({\n title,\n isSelected,\n onClick,\n}: StepperHeaderTabProps) => {\n return (\n <Container isSelected={isSelected} onClick={onClick}>\n <StyledLabel isSelected={isSelected}>{title}</StyledLabel>\n </Container>\n );\n};\n","import { ComponentProps, useMemo } from 'react';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { Textarea as TextareaBase } from '../../atoms/Textarea/Textarea';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface TextareaProps extends ComponentProps<typeof TextareaBase> {\n label?: string;\n error?: string;\n}\n\nexport const Textarea = ({ label, error, ...rest }: TextareaProps) => {\n const isInvalid = useMemo(\n () => typeof error === 'string' && error.length > 0,\n [error],\n );\n\n return (\n <InputContainer>\n {typeof label === 'string' && (\n <FloatingLabel\n color={isInvalid ? 'error' : 'subtle'}\n value={label}\n fontWeight=\"600\"\n />\n )}\n <TextareaBase {...rest} />\n </InputContainer>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tokens/colors.ts","../src/tokens/radii.ts","../src/tokens/spaces.ts","../src/molecules/AccordionContent/AccordionContent.tsx","../src/atoms/ArrowButton/ArrowButton.tsx","../src/atoms/Loader/Loader.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Description/Description.tsx","../src/atoms/ExtendedButton/ExtendedButton.tsx","../src/atoms/FeatureItem/FeatureItem.tsx","../src/tokens/breakpoints.ts","../src/atoms/FormContainer/FormContainer.tsx","../src/atoms/Header/Header.tsx","../src/types.ts","../src/atoms/Input/Input.tsx","../src/tokens/sizes.ts","../src/atoms/Label/Label.tsx","../src/atoms/Pill/Pill.tsx","../src/atoms/RadioItem/RadioItem.tsx","../src/atoms/SecondaryInput/SecondaryInput.tsx","../src/atoms/SocialButton/SocialButton.tsx","../src/atoms/TermsCheckbox/TermsCheckbox.tsx","../src/atoms/Text/Text.tsx","../src/atoms/Textarea/Textarea.tsx","../src/atoms/TextButton/TextButton.tsx","../src/atoms/ToggleButton/ToggleButton.tsx","../src/molecules/AccordionHeader/AccordionHeader.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/Address/Address.tsx","../src/atoms/CheckboxItem/CheckboxItem.tsx","../src/molecules/Checkbox/Checkbox.tsx","../src/molecules/ContentCard/ContentCard.tsx","../src/molecules/CTAContainer/CTAContainer.tsx","../src/molecules/InputContainer/InputContainer.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/molecules/FAQAccordion/FAQAccordion.tsx","../src/molecules/FeatureContainer/FeatureContainer.tsx","../src/molecules/FileButton/FileButton.tsx","../src/molecules/Input/Input.tsx","../src/tokens/animations.ts","../src/molecules/Modal/Modal.tsx","../src/molecules/OverviewRowItem/OverviewRowItem.tsx","../src/components/Spinner.tsx","../src/molecules/PageLayout/PageLayout.tsx","../src/molecules/EmptyState/EmptyState.tsx","../src/molecules/PDFPreviewer/PDFPreviewer.tsx","../src/molecules/ProductInfo/ProductInfo.tsx","../src/molecules/RadioGroup/RadioGroup.tsx","../src/molecules/RatesChart/RatesChart.tsx","../src/molecules/SideNav/SideNav.tsx","../src/molecules/SidePanel/SidePanel.tsx","../src/molecules/StepperHeaderTab/StepperHeaderTab.tsx","../src/molecules/Textarea/Textarea.tsx"],"names":["styled","jsx","variants","StyledButton","jsxs","Container","Description","Label","StyledContainer","StyledText","Fragment","FaPlus","FaP","useState","HiddenCheckbox","StyledCheckbox","ThumbnailWrapper","ButtonWrapper","Header","InnerContainer","AccordionHeader","HeaderWrapper","AccordionContent","HiMinus","HiPlus","Input","useMemo","keyframes","HeaderContainer","ContentContainer","OptionsContainer","Overlay","CloseButton","IconWrapper","ContentWrapper","HiX","StyledLabel","Textarea"],"mappings":"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","file":"molecules.js","sourcesContent":["const variants = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'subtle',\n 'blue',\n 'brand',\n 'light',\n 'active',\n 'hover',\n 'error',\n 'focus',\n 'success',\n] as const;\nconst tokens = ['background', 'border', 'text', 'button'] as const;\n\ntype Token = (typeof tokens)[number];\ntype Variant = (typeof variants)[number];\n\ntype TokenVariant = Record<Variant, string>;\n\nexport const colors: Record<Token, Partial<TokenVariant>> = {\n background: {\n primary: '#FFFFFF',\n secondary: '#EEF1F5',\n tertiary: '#1E4384',\n subtle: 'rgba(102, 153, 153, 1)',\n blue: '#36b8e7',\n brand: '#1D3C77',\n success: '#00ab3fff',\n error: '#F87171',\n light: '#cacbcc'\n },\n border: {\n primary: '#669999',\n secondary: 'rgba(30, 67, 132, 0.2)',\n hover: '#cacbcc',\n active: '#828282',\n error: '#F87171',\n focus: '#3B82F6',\n brand: '#1D3C77',\n light: '#f3f3f3',\n },\n text: {\n brand: '#1D3C77',\n primary: '#262626',\n secondary: '#FFFFFF',\n tertiary: '#669999',\n subtle: '#919EB0',\n light: '#b5b6b8ff',\n error: '#F87171',\n blue: '#3B82F6',\n },\n button: {\n primary: 'rgba(30, 67, 132, 0.2)',\n hover: 'rgba(30, 67, 132, 0.5)',\n active: 'rgba(30, 67, 132, 0.8)',\n secondary: 'rgba(30, 67, 132, 1)',\n },\n} as const;\n","export const radii = {\n sm: '4px',\n md: '8px',\n lg: '10px',\n xl: '16px',\n} as const;\n","export const spaces: Record<number, `${number}px`> = {\n 0: '0px',\n 0.5: '2px',\n 1: '4px',\n 1.5: '6px',\n 2: '8px',\n 2.5: '10px',\n 3: '12px',\n 3.5: '14px',\n 4: '16px',\n 4.5: '18px',\n 5: '20px',\n 5.5: '22px',\n 6: '24px',\n 6.5: '28px',\n 7: '34px',\n 7.5: '38px',\n 8: '44px',\n 9: '56px',\n 20: '150px',\n} as const;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { spaces } from '../../tokens/spaces';\n\ninterface AccordionContentProps {\n children: ReactNode;\n}\n\nconst Container = styled.div`\n width: 100%;\n padding: ${spaces[4]};\n`;\n\nexport const AccordionContent = ({ children }: AccordionContentProps) => {\n return <Container>{children}</Container>;\n};\n","import { HiArrowUpRight } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['brand', 'teal', 'blue'] as const;\ntype Variant = (typeof variants)[number];\n\nconst StyledContainer = styled.button<{\n as?: 'button' | 'div';\n variant: Variant;\n}>`\n padding: 0.75rem;\n ${props => props.as === 'button' ? `\n width: 2.5rem;\n height: 2.5rem;\n ` : ''}\n flex-shrink: 0;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'brand':\n return colors.background.brand;\n case 'teal':\n return colors.background.subtle;\n case 'blue':\n return colors.background.blue;\n default:\n return colors.background.brand;\n }\n }};\n transition: all 0.2s;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover svg {\n transform: rotate(45deg);\n }\n`;\n\nconst StyledIcon = styled(HiArrowUpRight)`\n width: 1rem;\n height: 1rem;\n color: ${colors.text.secondary};\n transition: transform 0.2s;\n`;\n\ninterface ButtonProps {\n onClick?: () => void;\n asChild?: boolean;\n variant?: Variant;\n}\n\nexport const ArrowButton = ({ \n onClick, \n asChild = false,\n variant = 'brand'\n}: ButtonProps) => {\n return (\n <StyledContainer \n as={asChild ? 'div' : 'button'}\n onClick={onClick}\n variant={variant}\n >\n <StyledIcon aria-hidden />\n </StyledContainer>\n );\n};\n\nArrowButton.variants = variants;","import styled, { keyframes } from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\ntype LoaderProps = {\n size?: number | string;\n thickness?: number;\n speed?: string;\n};\n\nconst spin = keyframes`\n to { transform: rotate(360deg); }\n`;\n\nconst Ring = styled.span<\n Required<Pick<LoaderProps, 'size' | 'thickness' | 'speed'>>\n>`\n display: inline-block;\n width: ${({ size }) => (typeof size === 'number' ? `${size}px` : size)};\n height: ${({ size }) => (typeof size === 'number' ? `${size}px` : size)};\n border-radius: 50%;\n box-sizing: border-box;\n\n border: ${({ thickness }) => thickness}px solid ${colors.background.brand};\n\n border-top-color: ${colors.border.active};\n\n animation: ${spin} ${({ speed }) => speed} linear infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n border-top-color: ${colors.border.active};\n }\n`;\n\nexport const Loader = ({\n size = 32,\n thickness = 3,\n speed = '0.8s',\n}: LoaderProps) => {\n return (\n <Ring\n role=\"status\"\n aria-live=\"polite\"\n size={size}\n thickness={thickness}\n speed={speed}\n />\n );\n};\n","import { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\nimport { Loader } from '../Loader/Loader';\n\nconst ButtonTypes = ['submit', 'reset', 'button'] as const;\n\ntype ButtonType = (typeof ButtonTypes)[number];\n\nconst variants = ['dark', 'light'] as const;\n\ntype Variant = (typeof variants)[number];\n\ninterface ButtonProps {\n onClick?: () => void;\n text?: string;\n type?: ButtonType;\n disabled?: boolean;\n icon?: ReactElement;\n variant?: Variant;\n isLoading?: boolean;\n}\n\nconst StyledButton = styled.button<{ variant: Variant }>`\n padding: ${spaces[2]} ${spaces[4]};\n background-color: ${(props) =>\n props.variant === 'light'\n ? colors.button.primary\n : colors.button.secondary};\n border-radius: ${radii.lg};\n color: ${(props) =>\n props.variant === 'light' ? colors.text.primary : colors.text.secondary};\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${spaces[2]};\n max-height: 34px;\n\n &:hover {\n background-color: ${colors.button.hover};\n cursor: pointer;\n }\n\n &:active {\n background-color: ${colors.button.active};\n color: ${colors.text.secondary};\n }\n\n &:disabled {\n background-color: ${colors.button.primary};\n cursor: not-allowed;\n color: ${colors.text.primary};\n }\n`;\n\nconst ButtonText = styled.span`\n font-size: 12px;\n font-weight: 700;\n`;\n\nexport const Button = ({\n onClick,\n text,\n type = 'button',\n disabled,\n icon = undefined,\n variant = 'light',\n isLoading,\n}: ButtonProps) => {\n return (\n <StyledButton\n type={type}\n onClick={onClick}\n disabled={disabled || isLoading}\n variant={variant}\n >\n {!isLoading ? (\n <>\n {typeof icon !== 'undefined' && icon}\n <ButtonText>{text}</ButtonText>\n </>\n ) : (\n <Loader size=\"20px\" />\n )}\n </StyledButton>\n );\n};\n\nButton.types = ButtonTypes;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle', 'error'] as const;\ntype Variant = (typeof variants)[number];\n\ninterface DescriptionProps {\n children: string;\n variant?: Variant;\n}\n\nconst StyledDescription = styled.p<{ variant: Variant }>`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'secondary':\n return colors.text.secondary;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\nexport const Description = ({\n children,\n variant = 'primary',\n}: DescriptionProps) => {\n return (\n <StyledDescription variant={variant}>\n {children}\n </StyledDescription>\n );\n};\n\nDescription.variants = variants;","import styled from 'styled-components';\nimport { ArrowButton, TextButton } from \"..\";\n\nconst StyledButton = styled.button`\n display: flex;\n align-items: center;\n height: 2.5rem;\n border: none;\n cursor: pointer;\n transition: opacity 0.2s;\n padding: 0;\n background: transparent;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\ninterface ExtendedButtonProps {\n text: string;\n onClick?: () => void;\n arrowVariant?: 'brand' | 'teal' | 'blue';\n textBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const ExtendedButton = ({ \n text, \n onClick,\n arrowVariant = 'teal',\n textBgVariant = 'brand',\n textVariant = 'secondary',\n}: ExtendedButtonProps) => {\n return (\n <StyledButton onClick={onClick}>\n <ArrowButton asChild variant={arrowVariant} />\n <TextButton asChild text={text} bgVariant={textBgVariant} textVariant={textVariant} uppercase={false} />\n </StyledButton>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n gap: 1rem;\n background-color: transparent;\n`;\n\nconst ThumbnailWrapper = styled.div<{ $size?: string; thumbnailBgColor: BackgroundColor }>`\n width: ${props => props.$size || '3rem'};\n height: ${props => props.$size || '3rem'};\n border-radius: 50%;\n background-color: ${props => colors.background[props.thumbnailBgColor]};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n`;\n\nconst Title = styled.h3<{ titleColor: TextColor }>`\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n color: ${props => colors.text[props.titleColor]};\n`;\n\nconst Description = styled.p<{ descriptionColor: TextColor }>`\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.5;\n color: ${props => colors.text[props.descriptionColor]};\n`;\n\ninterface FeatureItemProps {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n thumbnailSize?: string;\n thumbnailBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FeatureItem = ({\n thumbnail,\n title,\n description,\n thumbnailSize,\n thumbnailBgColor = 'brand',\n titleColor = 'primary',\n descriptionVariant = 'subtle',\n}: FeatureItemProps) => {\n // Map descriptionVariant to text color\n const getDescriptionColor = (): TextColor => {\n switch (descriptionVariant) {\n case 'primary':\n return 'primary';\n case 'secondary':\n return 'secondary';\n case 'subtle':\n return 'subtle';\n case 'error':\n return 'error';\n default:\n return 'subtle';\n }\n };\n\n return (\n <Container>\n <ThumbnailWrapper $size={thumbnailSize} thumbnailBgColor={thumbnailBgColor}>\n {thumbnail}\n </ThumbnailWrapper>\n <Content>\n <Title titleColor={titleColor}>{title}</Title>\n <Description descriptionColor={getDescriptionColor()}>{description}</Description>\n </Content>\n </Container>\n );\n};","export const breakpoints = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n} as const;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { breakpoints } from '../../tokens/breakpoints';\nimport { spaces } from '../../tokens/spaces';\n\ntype Space = keyof typeof spaces;\n\ninterface FormContainerProps {\n children: ReactNode;\n space?: Space;\n}\n\nconst Container = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`;\n\nconst InnerContainer = styled.div<{ space: Space }>`\n display: flex;\n flex-direction: column;\n padding: ${spaces[4]};\n width: 100%;\n max-width: ${breakpoints.lg};\n gap: ${(props) => spaces[props.space]};\n`;\n\nexport const FormContainer = ({ children, space = 4 }: FormContainerProps) => {\n return (\n <Container>\n <InnerContainer space={space}>{children}</InnerContainer>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = {\n h1: {\n fontSize: '24px',\n fontWeight: 700,\n letterSpacing: '0.6px',\n lineHeight: '32px',\n },\n h2: {\n fontSize: '20px',\n fontWeight: 700,\n lineHeight: '28px',\n letterSpacing: '0.4px',\n },\n h3: {\n fontSize: '18px',\n fontWeight: 600,\n lineHeight: '28px',\n letterSpacing: '0.2px',\n },\n} as const;\n\ntype Variant = keyof typeof variants;\n\ntype Color = keyof typeof colors.text;\n\ninterface HeaderProps {\n children: string;\n variant?: Variant;\n color?: Color;\n}\n\nconst StyledText = styled.h1<{ variant: Variant; color: Color }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${(props) => variants[props.variant].fontSize};\n font-weight: ${(props) => variants[props.variant].fontWeight};\n letter-spacing: ${(props) => variants[props.variant].letterSpacing};\n line-height: ${(props) => variants[props.variant].lineHeight};\n`;\n\nexport const Header = ({\n children,\n variant = 'h1',\n color = 'primary',\n}: HeaderProps) => {\n return (\n <StyledText variant={variant} color={color}>\n {children}\n </StyledText>\n );\n};\n","import { ChangeHandler } from 'react-hook-form';\n\nexport const InputTypes = ['number', 'text', 'email', 'date'] as const;\n\nexport type InputType = (typeof InputTypes)[number];\n\nexport interface BaseInputProps {\n name: string;\n label?: string;\n type?: InputType;\n placeholder?: string;\n onBlur?: ChangeHandler;\n onFocus?: () => void;\n}\n\nexport type Option<T> = {\n label: string;\n value: T;\n disabled?: boolean;\n};\n","import { ChangeEvent } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { InputTypes, type BaseInputProps } from '../../types';\n\ninterface InputProps extends Omit<BaseInputProps, 'label'> {\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n value?: string | number;\n min?: string | number;\n max?: string | number;\n}\n\nconst StyledInput = styled.input`\n display: block;\n height: 100%;\n width: 100%;\n outline: none;\n background-color: transparent;\n color: ${colors.text.subtle};\n font-weight: 600;\n`;\n\nexport const Input = ({ name, onChange, ...rest }: InputProps) => {\n return <StyledInput name={name} onChange={onChange} {...rest} />;\n};\n\nInput.types = InputTypes;\n","export const sizes = {\n sm: '12px',\n md: '14px',\n lg: '18px',\n xl: '24px',\n 0: '1px',\n 0.5: '1.5px',\n} as const;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ntype Color = keyof typeof colors.text;\n\ninterface LabelProps {\n value: string;\n color?: Color;\n fontWeight?: string;\n}\n\nconst StyledLabel = styled.span<{ color: Color; fontWeight: string }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${sizes.sm};\n font-weight: ${(props) => props.fontWeight};\n`;\n\nconst StyledFloatingLabel = styled(StyledLabel)`\n position: absolute;\n left: 0;\n bottom: 100%;\n margin-left: ${spaces[3]};\n margin-bottom: -${spaces[2.5]};\n transform: translateY(-${spaces[0.5]});\n background-color: ${colors.background.primary};\n padding: 0 ${spaces[1]};\n`;\n\nexport const Label = ({\n value,\n color = 'subtle',\n fontWeight = '500',\n}: LabelProps) => {\n return (\n <StyledLabel color={color} fontWeight={fontWeight}>\n {value}\n </StyledLabel>\n );\n};\n\nexport const FloatingLabel = ({\n value,\n color = 'subtle',\n fontWeight = '500',\n}: LabelProps) => {\n return (\n <StyledFloatingLabel color={color} fontWeight={fontWeight}>\n {value}\n </StyledFloatingLabel>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle', 'error'] as const;\ntype Variant = (typeof variants)[number];\n\ninterface PillProps {\n children: string;\n variant?: Variant;\n inverse?: boolean;\n}\n\nconst StyledPill = styled.span<{ variant: Variant; $inverse: boolean }>`\n display: inline-block;\n padding: 0.5rem 1rem;\n border-radius: 9999px;\n font-size: 0.75rem;\n font-weight: 600;\n background-color: ${(props) => {\n if (props.$inverse) return 'transparent';\n \n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.brand;\n }\n }};\n color: ${(props) => {\n if (props.$inverse) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n case 'error':\n return colors.text.error;\n default:\n return colors.text.brand;\n }\n }\n return colors.text.secondary; \n }};\n border: ${(props) => {\n if (!props.$inverse) return 'none';\n \n switch (props.variant) {\n case 'primary':\n return `1px solid ${colors.text.brand}`;\n case 'secondary':\n return `1px solid ${colors.text.blue}`;\n case 'subtle':\n return `1px solid ${colors.text.subtle}`;\n case 'error':\n return `1px solid ${colors.text.error}`;\n default:\n return `1px solid ${colors.text.brand}`;\n }\n }};\n`;\n\nexport const Pill = ({\n children,\n variant = 'primary',\n inverse = false,\n}: PillProps) => {\n return (\n <StyledPill variant={variant} $inverse={inverse}>\n {children}\n </StyledPill>\n );\n};\n\nPill.variants = variants;","import { FaCheckCircle } from 'react-icons/fa';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\n\ninterface RadioItem {\n label: string;\n isSelected: boolean;\n onClick: () => void;\n disabled?: boolean;\n}\n\nconst Container = styled.div`\n border-radius: ${radii.md};\n padding: ${spaces['3']};\n display: flex;\n flex: 1;\n gap: ${spaces[2]};\n background-color: white;\n align-items: center;\n justify-content: center;\n border-width: 1px;\n border-color: ${colors.border.active};\n transition:\n background-color 0.25s ease,\n box-shadow 0.35s ease,\n transform 0.25s ease;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.96);\n border-color: ${colors.border.hover};\n cursor: pointer;\n }\n\n &:active {\n background-color: rgba(255, 255, 255, 0.92);\n }\n`;\n\nconst Label = styled.span<Pick<RadioItem, 'isSelected'>>`\n font-size: 16px;\n font-weight: ${(props) => (props.isSelected ? '800' : '400')};\n text-align: center;\n`;\n\nexport const RadioItem = ({ label, isSelected, onClick }: RadioItem) => {\n return (\n <Container onClick={onClick}>\n {isSelected && <FaCheckCircle color={colors.background.blue} />}\n <Label isSelected={isSelected}>{label}</Label>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { BaseInputProps } from '../../types';\n\ntype Color = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\ninterface SecondaryInputProps extends BaseInputProps {\n required?: boolean;\n isTextArea?: boolean;\n labelColor?: Color;\n inputTextColor?: Color;\n placeholderColor?: Color;\n backgroundColor?: BackgroundColor;\n borderColor?: string;\n focusRingColor?: Color;\n}\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst Label = styled.label<{ $color?: Color }>`\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: ${props => props.$color ? colors.text[props.$color] : colors.text.primary};\n opacity: 0.8;\n margin-bottom: 0.5rem;\n`;\n\nconst StyledInput = styled.input<{ \n $textColor?: Color;\n $placeholderColor?: Color;\n $bgColor?: BackgroundColor;\n $borderColor?: string;\n $focusRingColor?: Color;\n}>`\n box-sizing: border-box;\n height: 2.75rem;\n width: 100%;\n border-radius: 6px;\n border: 1px solid ${props => props.$borderColor || '#d1d5db'};\n background-color: ${props => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary || '#f9fafb'};\n padding: 0 0.75rem;\n font-size: 15px;\n color: ${props => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};\n outline: none;\n \n &::placeholder {\n color: ${props => props.$placeholderColor ? colors.text[props.$placeholderColor] : colors.text.secondary};\n }\n \n &:focus {\n box-shadow: 0 0 0 2px ${props => {\n const color = props.$focusRingColor ? colors.text[props.$focusRingColor] : colors.text.primary;\n return `${color}33`; // Add 33 for 20% opacity\n }};\n }\n`;\n\nconst StyledTextArea = styled.textarea<{ \n $textColor?: Color;\n $placeholderColor?: Color;\n $bgColor?: BackgroundColor;\n $borderColor?: string;\n $focusRingColor?: Color;\n}>`\n box-sizing: border-box;\n width: 100%;\n border-radius: 6px;\n border: 1px solid ${props => props.$borderColor || '#d1d5db'};\n background-color: ${props => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary || '#f9fafb'};\n padding: 0.75rem;\n font-size: 15px;\n color: ${props => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};\n outline: none;\n \n &::placeholder {\n color: ${props => props.$placeholderColor ? colors.text[props.$placeholderColor] : colors.text.secondary};\n }\n \n &:focus {\n box-shadow: 0 0 0 2px ${props => {\n const color = props.$focusRingColor ? colors.text[props.$focusRingColor] : colors.text.primary;\n return `${color}33`; // Add 33 for 20% opacity\n }};\n }\n`;\n\nexport const SecondaryInput = ({\n label,\n isTextArea = false,\n labelColor = 'brand',\n inputTextColor = 'primary',\n placeholderColor = 'subtle',\n backgroundColor = 'secondary',\n borderColor = '#d1d5db',\n focusRingColor = 'brand',\n ...rest\n}: SecondaryInputProps) => {\n return (\n <Container>\n {typeof label === 'string' && <Label $color={labelColor}>{label}</Label>}\n {isTextArea ? (\n <StyledTextArea \n {...rest} \n rows={5}\n $textColor={inputTextColor}\n $placeholderColor={placeholderColor}\n $bgColor={backgroundColor}\n $borderColor={borderColor}\n $focusRingColor={focusRingColor}\n />\n ) : (\n <StyledInput \n {...rest}\n $textColor={inputTextColor}\n $placeholderColor={placeholderColor}\n $bgColor={backgroundColor}\n $borderColor={borderColor}\n $focusRingColor={focusRingColor}\n />\n )}\n </Container>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'inverse', 'filled'] as const;\ntype Variant = (typeof variants)[number];\n\nconst StyledButton = styled.button<{ variant: Variant }>`\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'filled':\n return colors.background.brand;\n case 'primary':\n case 'secondary':\n case 'inverse':\n default:\n return 'transparent';\n }\n }};\n border: 2px solid ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'inverse':\n return colors.text.secondary; \n case 'filled':\n return colors.background.brand;\n default:\n return colors.text.brand;\n }\n }};\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'inverse':\n return colors.text.secondary; \n case 'filled':\n return colors.text.secondary;\n default:\n return colors.text.brand;\n }\n }};\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n opacity: 0.8;\n }\n\n svg {\n width: 1.25rem;\n height: 1.25rem;\n }\n`;\n\ninterface SocialButtonProps {\n icon: React.ReactNode;\n onClick?: () => void;\n variant?: Variant;\n ariaLabel?: string;\n}\n\nexport const SocialButton = ({\n icon,\n onClick,\n variant = 'primary',\n ariaLabel,\n}: SocialButtonProps) => {\n return (\n <StyledButton\n onClick={onClick}\n variant={variant}\n aria-label={ariaLabel}\n >\n {icon}\n </StyledButton>\n );\n};\n\nSocialButton.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst CheckboxContainer = styled.label`\n display: flex;\n align-items: flex-start;\n gap: 0.75rem;\n cursor: pointer;\n font-size: 0.875rem;\n line-height: 1.5;\n`;\n\nconst HiddenCheckbox = styled.input.attrs({ type: 'checkbox' })`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n`;\n\nconst StyledCheckbox = styled.div<{ $checked: boolean; variant: Variant }>`\n width: 1.25rem;\n height: 1.25rem;\n border: 2px solid ${props => {\n if (props.$checked) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }\n return colors.text.subtle; \n }};\n border-radius: 4px;\n background-color: ${props => {\n if (props.$checked) {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }\n return 'transparent';\n }};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: all 0.2s;\n\n &::after {\n content: '✓';\n color: ${colors.text.secondary}; // white checkmark\n font-size: 0.875rem;\n font-weight: bold;\n display: ${props => props.$checked ? 'block' : 'none'};\n }\n`;\n\nconst Text = styled.span<{ variant: Variant }>`\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\nconst Link = styled.a<{ variant: Variant }>`\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n font-weight: 700;\n text-decoration: underline;\n cursor: pointer;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\ninterface TermsCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n text?: string;\n termsText?: string;\n termsUrl?: string;\n cookieText?: string;\n cookieUrl?: string;\n variant?: Variant;\n}\n\nexport const TermsCheckbox = ({\n checked,\n onChange,\n text = \"By submitting, I agree to Juta's\",\n termsText = \"Terms and Conditions\",\n termsUrl = \"/terms\",\n cookieText = \"Cookie Policy\",\n cookieUrl = \"/cookie-policy\",\n variant = 'primary',\n}: TermsCheckboxProps) => {\n return (\n <CheckboxContainer>\n <HiddenCheckbox\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n />\n <StyledCheckbox $checked={checked} variant={variant} />\n <Text variant={variant}>\n {text}{' '}\n <Link href={termsUrl} variant={variant} target=\"_blank\" rel=\"noopener noreferrer\">\n {termsText}\n </Link>\n {' '}and{' '}\n <Link href={cookieUrl} variant={variant} target=\"_blank\" rel=\"noopener noreferrer\">\n {cookieText}\n </Link>\n </Text>\n </CheckboxContainer>\n );\n};\n\nTermsCheckbox.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst sizes = ['sm', 'md', 'lg'] as const;\n\nconst variants = {\n sm: {\n fontSize: '14px',\n fontWeight: 500,\n },\n md: {\n fontSize: '16px',\n fontWeight: 500,\n },\n lg: {\n fontSize: '18px',\n fontWeight: 500,\n },\n} as const;\n\ntype Variant = keyof typeof variants;\n\ntype Color = keyof typeof colors.text;\n\ninterface TextProps {\n children: string;\n variant?: Variant;\n color?: Color;\n}\n\nconst StyledText = styled.h1<{ variant: Variant; color: Color }>`\n color: ${(props) => colors.text[props?.color]};\n font-size: ${(props) => variants[props.variant].fontSize};\n font-weight: ${(props) => variants[props.variant].fontWeight};\n`;\n\nexport const Text = ({\n children,\n color = 'primary',\n variant = 'md',\n}: TextProps) => {\n return (\n <StyledText color={color} variant={variant}>\n {children}\n </StyledText>\n );\n};\n\nText.variants = sizes;\n","import { ChangeEvent } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { InputTypes, type BaseInputProps } from '../../types';\n\ninterface TextareaProps extends Omit<BaseInputProps, 'label'> {\n onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n disabled?: boolean;\n value?: string | number;\n rows?: number;\n cols?: number;\n}\n\nconst StyledTextarea = styled.textarea`\n display: block;\n width: 100%;\n height: 100%;\n outline: none;\n background-color: transparent;\n color: ${colors.text.subtle};\n font-weight: 600;\n resize: vertical;\n`;\n\nexport const Textarea = ({\n name,\n onChange,\n rows = 3,\n ...rest\n}: TextareaProps) => {\n return (\n <StyledTextarea name={name} onChange={onChange} rows={rows} {...rest} />\n );\n};\n\nTextarea.types = InputTypes;\n","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst bgVariants = ['primary', 'secondary', 'tertiary', 'subtle', 'blue', 'brand', 'light', 'transparent'] as const;\nconst textVariants = ['brand', 'primary', 'secondary', 'tertiary', 'subtle', 'light', 'error', 'blue'] as const;\n\ntype BgVariant = (typeof bgVariants)[number];\ntype TextVariant = (typeof textVariants)[number];\n\nconst StyledContainer = styled.button<{ \n as?: 'button' | 'div';\n bgVariant: BgVariant;\n}>`\n padding: 0 1rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n flex-shrink:0;\n white-space: nowrap;\n background-color: ${(props) => {\n if (props.bgVariant === 'transparent') return 'transparent';\n return colors.background[props.bgVariant];\n }};\n transition: all 0.2s;\n border: none;\n cursor: pointer;\n\n &:hover {\n opacity: 0.9;\n }\n`;\n\nconst StyledText = styled.span<{ \n textVariant: TextVariant;\n $uppercase?: boolean;\n $bold?: boolean;\n}>`\n color: ${(props) => colors.text[props.textVariant]};\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n text-transform: ${props => props.$uppercase ? 'uppercase' : 'none'};\n font-weight: ${props => props.$bold ? 700 : 600};\n`;\n\ninterface TextButtonProps {\n text: string;\n onClick?: () => void;\n asChild?: boolean;\n bgVariant?: BgVariant;\n textVariant?: TextVariant;\n uppercase?: boolean;\n bold?: boolean;\n}\n\nexport const TextButton = ({ \n text,\n onClick,\n asChild = false,\n bgVariant = 'brand',\n textVariant = 'secondary',\n uppercase = true,\n bold = false\n}: TextButtonProps) => {\n return (\n <StyledContainer \n as={asChild ? 'div' : 'button'}\n onClick={onClick}\n bgVariant={bgVariant}\n >\n <StyledText textVariant={textVariant} $uppercase={uppercase} $bold={bold}>\n {text}\n </StyledText>\n </StyledContainer>\n );\n};\n\nTextButton.bgVariants = bgVariants;\nTextButton.textVariants = textVariants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst ToggleContainer = styled.div<{ variant: Variant }>`\n display: inline-flex;\n background-color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.background.secondary;\n case 'secondary':\n return colors.background.light;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.secondary;\n }\n }};\n border-radius: 9999px;\n padding: 0.25rem;\n gap: 0.25rem;\n`;\n\nconst ToggleOption = styled.button<{ \n $isActive: boolean; \n variant: Variant;\n}>`\n padding: 0.5rem 1.5rem;\n border-radius: 9999px;\n border: none;\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n \n background-color: ${props => {\n if (!props.$isActive) return 'transparent';\n \n switch (props.variant) {\n case 'primary':\n return colors.background.brand;\n case 'secondary':\n return colors.background.blue;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.brand;\n }\n }};\n \n color: ${props => {\n if (props.$isActive) {\n return colors.text.secondary; \n }\n \n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n\n &:hover {\n opacity: ${props => props.$isActive ? 1 : 0.7};\n }\n`;\n\ninterface ToggleButtonProps {\n options: string[];\n activeOption: string;\n onChange: (option: string) => void;\n variant?: Variant;\n}\n\nexport const ToggleButton = ({\n options,\n activeOption,\n onChange,\n variant = 'primary',\n}: ToggleButtonProps) => {\n return (\n <ToggleContainer variant={variant}>\n {options.map((option) => (\n <ToggleOption\n key={option}\n $isActive={activeOption === option}\n variant={variant}\n onClick={() => onChange(option)}\n >\n {option}\n </ToggleOption>\n ))}\n </ToggleContainer>\n );\n};\n\nToggleButton.variants = variants;","import { ReactElement } from 'react';\nimport { FaMinus, FaPlus } from 'react-icons/fa';\nimport { FaPlus as FaP } from 'react-icons/fa6';\nimport styled from 'styled-components';\nimport { Button, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface AccordionHeaderProps {\n title: string;\n isOpen: boolean;\n buttonText?: string;\n onButtonPress?: () => void;\n rightElement?: ReactElement;\n onAccordionPress: () => void;\n}\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n\n &:hover {\n cursor: pointer;\n }\n`;\n\nexport const AccordionHeader = ({\n title,\n isOpen,\n buttonText,\n onAccordionPress,\n onButtonPress,\n rightElement,\n}: AccordionHeaderProps) => {\n return (\n <Container>\n <HeaderContainer onClick={onAccordionPress}>\n <>\n {isOpen ? (\n <FaMinus color={colors.text.primary} size={sizes.lg} />\n ) : (\n <FaPlus color={colors.text.primary} size={sizes.lg} />\n )}\n </>\n <Header variant=\"h2\">{title}</Header>\n </HeaderContainer>\n {rightElement ? (\n rightElement\n ) : (\n <Button\n text={buttonText}\n icon={<FaP fontSize=\"10px\" />}\n onClick={onButtonPress}\n />\n )}\n </Container>\n );\n};\n","import { ComponentProps, ReactElement, useState } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\nimport { AccordionContent } from '../AccordionContent/AccordionContent';\nimport { AccordionHeader } from '../AccordionHeader/AccordionHeader';\n\ninterface AccordionProps\n extends Pick<\n ComponentProps<typeof AccordionHeader>,\n 'title' | 'onButtonPress' | 'buttonText' | 'rightElement'\n > {\n children: ReactElement;\n}\n\nconst Container = styled.div`\n border-radius: ${radii.lg};\n background-color: ${colors.background.secondary};\n padding: ${spaces[4]};\n`;\n\nexport const Accordion = ({\n buttonText,\n onButtonPress,\n title,\n children,\n rightElement,\n}: AccordionProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <Container>\n <AccordionHeader\n isOpen={isOpen}\n buttonText={buttonText}\n onButtonPress={onButtonPress}\n onAccordionPress={() => setIsOpen((previousState) => !previousState)}\n title={title}\n rightElement={rightElement}\n />\n {isOpen && <AccordionContent>{children}</AccordionContent>}\n </Container>\n );\n};\n","import { useState } from 'react';\nimport { HiMinus, HiPlus } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { Header, TextButton } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'inverse', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst AddressContainer = styled.div`\n display: flex;\n flex-direction: column;\n background-color: transparent;\n padding: 2rem;\n \n /* Desktop: normal spacing */\n @media (min-width: 768px) {\n gap: 1rem;\n }\n \n /* Mobile: no gap, handled by collapse */\n @media (max-width: 767px) {\n padding: 1rem;\n gap: 0;\n }\n`;\n\nconst HeaderWrapper = styled.div<{ $isClickable: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n /* Desktop: not clickable */\n @media (min-width: 768px) {\n cursor: default;\n }\n \n /* Mobile: clickable */\n @media (max-width: 767px) {\n cursor: ${props => props.$isClickable ? 'pointer' : 'default'};\n padding: 0.5rem 0;\n user-select: none;\n }\n`;\n\nconst ToggleIcon = styled.div<{ variant: Variant }>`\n display: none;\n \n /* Only show on mobile */\n @media (max-width: 767px) {\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n \n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'inverse':\n return colors.text.secondary;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n }\n`;\n\nconst CollapseContent = styled.div<{ $isOpen: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n \n /* Desktop: always visible */\n @media (min-width: 768px) {\n display: flex;\n }\n \n /* Mobile: collapsible */\n @media (max-width: 767px) {\n max-height: ${props => props.$isOpen ? '500px' : '0'};\n opacity: ${props => props.$isOpen ? '1' : '0'};\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n padding-top: ${props => props.$isOpen ? '1rem' : '0'};\n }\n`;\n\nconst InfoSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n`;\n\nconst InfoText = styled.p<{ variant: Variant; $bold?: boolean }>`\n margin: 0;\n font-size: 0.875rem;\n line-height: 1.6;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.primary;\n case 'inverse':\n return colors.text.secondary; \n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n font-weight: ${props => props.$bold ? 600 : 400};\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: 0.5rem;\n`;\n\ninterface AddressProps {\n title: string;\n phone?: string;\n email?: string;\n addressLines: string[];\n directionsText?: string;\n onDirectionsClick?: () => void;\n variant?: Variant;\n}\n\nexport const Address = ({\n title,\n phone,\n email,\n addressLines,\n directionsText = 'GET DIRECTIONS',\n onDirectionsClick,\n variant = 'primary',\n}: AddressProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleDirectionsClick = () => {\n if (onDirectionsClick) {\n onDirectionsClick();\n } else {\n const fullAddress = addressLines.join(', ');\n const encodedAddress = encodeURIComponent(fullAddress);\n const mapsUrl = `https://www.google.com/maps/search/?api=1&query=${encodedAddress}`;\n window.open(mapsUrl, '_blank');\n }\n };\n\n const getHeaderVariant = () => {\n switch (variant) {\n case 'primary':\n return 'primary';\n case 'inverse':\n return 'secondary'; \n case 'subtle':\n return 'subtle';\n default:\n return 'primary';\n }\n };\n\n const getButtonBgVariant = (): 'transparent' => {\n return 'transparent';\n };\n\n const getButtonTextVariant = (): 'primary' | 'secondary' | 'subtle' => {\n switch (variant) {\n case 'primary':\n return 'primary';\n case 'inverse':\n return 'secondary';\n case 'subtle':\n return 'subtle';\n default:\n return 'primary';\n }\n };\n\n return (\n <AddressContainer>\n <HeaderWrapper \n $isClickable={true}\n onClick={() => setIsOpen(!isOpen)}\n >\n <Header variant=\"h1\" color={getHeaderVariant()}>\n {title}\n </Header>\n <ToggleIcon variant={variant}>\n {isOpen ? <HiMinus /> : <HiPlus />}\n </ToggleIcon>\n </HeaderWrapper>\n \n <CollapseContent $isOpen={isOpen}>\n <InfoSection>\n {phone && (\n <InfoText variant={variant}>{phone}</InfoText>\n )}\n {email && (\n <InfoText variant={variant} $bold>{email.toUpperCase()}</InfoText>\n )}\n {addressLines.map((line, index) => (\n <InfoText key={index} variant={variant}>\n {line}\n </InfoText>\n ))}\n </InfoSection>\n <ButtonWrapper>\n <TextButton\n text={directionsText}\n onClick={handleDirectionsClick}\n bgVariant={getButtonBgVariant()}\n textVariant={getButtonTextVariant()}\n uppercase={true}\n />\n </ButtonWrapper>\n </CollapseContent>\n </AddressContainer>\n );\n};\n\nAddress.variants = variants;","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface CheckboxItemProps<T> {\n value: T;\n label: string;\n checked: boolean;\n onClick: () => void;\n}\n\nconst CheckboxWrapper = styled.label`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n cursor: pointer;\n font-size: 16px;\n color: ${colors.text.subtle};\n`;\n\nconst HiddenCheckbox = styled.input.attrs({ type: 'checkbox' })`\n display: none;\n`;\n\nconst StyledCheckbox = styled.span<{ checked: boolean }>`\n width: ${sizes.lg};\n height: ${sizes.lg};\n border: 1.5px solid ${colors.background.tertiary};\n border-radius: ${radii.md};\n background-color: ${({ checked }) =>\n checked ? colors.background.tertiary : 'transparent'};\n transition: all 0.2s ease-in-out;\n`;\n\nexport const CheckboxItem = <T extends string | number | boolean>({\n label,\n onClick,\n checked,\n}: CheckboxItemProps<T>) => {\n return (\n <CheckboxWrapper onClick={onClick}>\n <HiddenCheckbox checked={checked} readOnly />\n <StyledCheckbox checked={checked} />\n {label}\n </CheckboxWrapper>\n );\n};\n","import styled from 'styled-components';\nimport { Label } from '../../atoms';\nimport { CheckboxItem } from '../../atoms/CheckboxItem/CheckboxItem';\nimport { spaces } from '../../tokens/spaces';\nimport { Option } from '../../types';\n\nconst alignments = ['row', 'column'] as const;\n\ntype Align = (typeof alignments)[number];\n\ninterface CheckboxProps<T> {\n error?: string;\n label?: string;\n value: T;\n onChange: (value: T) => void;\n options: Option<T>[];\n align?: Align;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst OptionsContainer = styled.div`\n display: flex;\n gap: ${spaces[4]};\n`;\n\nexport const Checkbox = <T extends string | number | boolean>({\n error,\n label,\n onChange,\n options,\n value,\n}: CheckboxProps<T>) => {\n return (\n <Container>\n {typeof label === 'string' && label?.length ? (\n <Label\n value={label}\n color={\n typeof error === 'string' && error?.length ? 'error' : undefined\n }\n fontWeight=\"600\"\n />\n ) : null}\n <OptionsContainer>\n {options.map((option) => (\n <CheckboxItem\n checked={value === option.value}\n label={option.label}\n onClick={() => onChange(option.value)}\n value={option.value}\n />\n ))}\n </OptionsContainer>\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { ArrowButton, Description, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n background-color: #ffffff;\n width: 284px;\n height: 100%;\n padding: 1.5rem;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n flex-shrink: 0;\n \n @media (max-width: 767px) {\n width: 70vw;\n }\n`;\n\nconst ThumbnailWrapper = styled.div<{ thumbnailBgColor: BackgroundColor }>`\n width: 180px;\n height: 180px;\n border-radius: 50%;\n background-color: ${props => colors.background[props.thumbnailBgColor]};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: center;\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n margin-top: auto;\n`;\n\ninterface ContentCardProps {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n onArrowClick?: () => void;\n headerVariant?: 'h1' | 'h2' | 'h3';\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n arrowVariant?: 'brand' | 'teal' | 'blue';\n thumbnailBgColor?: BackgroundColor;\n}\n\nexport const ContentCard = ({\n thumbnail,\n title,\n description,\n onArrowClick,\n headerVariant = 'h2',\n titleColor = 'brand',\n descriptionVariant = 'subtle',\n arrowVariant = 'teal',\n thumbnailBgColor = 'brand',\n}: ContentCardProps) => {\n return (\n <Container>\n <ThumbnailWrapper thumbnailBgColor={thumbnailBgColor}>\n {thumbnail}\n </ThumbnailWrapper>\n <Header variant={headerVariant} color={titleColor}>\n {title}\n </Header>\n <Description variant={descriptionVariant}>\n {description}\n </Description>\n <ButtonWrapper>\n <ArrowButton \n onClick={onArrowClick}\n variant={arrowVariant}\n />\n </ButtonWrapper>\n </Container>\n );\n};","import styled from 'styled-components';\nimport { ExtendedButton, TextButton } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst variants = ['primary', 'secondary', 'transparent'] as const;\ntype Variant = (typeof variants)[number];\n\nconst Container = styled.div<{ variant: Variant }>`\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 3rem 2rem;\n max-width: 500px;\n \n /* Mobile adjustments */\n @media (max-width: 767px) {\n padding: 2rem 1rem;\n max-width: 100%;\n }\n`;\n\nconst Header = styled.h1<{ textColor: TextColor }>`\n margin: 0;\n font-size: 2.5rem;\n font-weight: 700;\n line-height: 1.2;\n color: ${(props) => colors.text[props.textColor]};\n \n /* Responsive font size */\n @media (max-width: 767px) {\n font-size: 2rem;\n }\n \n @media (max-width: 480px) {\n font-size: 1.75rem;\n }\n`;\n\nconst Description = styled.p<{ textColor: TextColor }>`\n margin: 0;\n font-size: 1.125rem;\n line-height: 1.6;\n color: ${(props) => colors.text[props.textColor]};\n \n /* Responsive font size */\n @media (max-width: 767px) {\n font-size: 1rem;\n }\n`;\n\nconst ButtonGroup = styled.div`\n display: flex;\n gap: 1rem;\n align-items: center;\n \n /* Stack vertically on mobile */\n @media (max-width: 767px) {\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n }\n`;\n\ninterface CTAContainerProps {\n header: string;\n description: string;\n primaryButtonText: string;\n secondaryButtonText?: string;\n onPrimaryClick?: () => void;\n onSecondaryClick?: () => void;\n variant?: Variant;\n headerTextColor?: TextColor;\n descriptionTextColor?: TextColor;\n primaryArrowVariant?: 'brand' | 'teal' | 'blue';\n primaryTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n primaryTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n secondaryBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n secondaryTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const CTAContainer = ({\n header,\n description,\n primaryButtonText,\n secondaryButtonText,\n onPrimaryClick,\n onSecondaryClick,\n variant = 'transparent',\n headerTextColor = 'secondary',\n descriptionTextColor = 'secondary',\n primaryArrowVariant = 'teal',\n primaryTextBgVariant = 'brand',\n primaryTextVariant = 'secondary',\n secondaryBgVariant = 'transparent',\n secondaryTextVariant = 'secondary',\n}: CTAContainerProps) => {\n return (\n <Container variant={variant}>\n <Header textColor={headerTextColor}>{header}</Header>\n <Description textColor={descriptionTextColor}>{description}</Description>\n <ButtonGroup>\n <ExtendedButton\n text={primaryButtonText}\n onClick={onPrimaryClick}\n arrowVariant={primaryArrowVariant}\n textBgVariant={primaryTextBgVariant}\n textVariant={primaryTextVariant}\n />\n {secondaryButtonText && (\n <TextButton\n text={secondaryButtonText}\n onClick={onSecondaryClick}\n bgVariant={secondaryBgVariant}\n textVariant={secondaryTextVariant}\n />\n )}\n </ButtonGroup>\n </Container>\n );\n};\n\nCTAContainer.variants = variants;","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Label } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\nconst variants = ['outline', 'none'] as const;\ninterface InputContainerProps {\n error?: string;\n children: ReactNode;\n variant?: (typeof variants)[number];\n}\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst InnerContainer = styled.div<\n Pick<InputContainerProps, 'error' | 'variant'>\n>`\n position: relative;\n width: 100%;\n min-height: 58px;\n display: flex;\n align-items: center;\n\n border-style: solid;\n border-width: ${(props) => (props?.variant === 'outline' ? sizes[0] : '0px')};\n border-color: ${(props) =>\n props?.error ? colors.border.error : colors.border.active};\n border-radius: ${radii.lg};\n\n padding: ${spaces[3]} ${spaces[3]} ${spaces[2]};\n\n &:hover {\n border-color: ${colors.border.hover};\n cursor: text;\n }\n\n &:focus-within {\n border-color: ${colors.border.focus};\n }\n`;\n\nexport const InputContainer = ({\n error,\n children,\n variant = 'outline',\n}: InputContainerProps) => {\n return (\n <Container>\n <InnerContainer error={error} variant={variant}>\n {children}\n </InnerContainer>\n {typeof error === 'string' && <Label value={error} color=\"error\" />}\n </Container>\n );\n};\n","import { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { colors } from '../../tokens/colors';\nimport { Option } from '../../types';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface DropdownProps<T> {\n options: Option<T>[];\n value?: T;\n onChange: (value: T) => void;\n label?: string;\n error?: string;\n name: string;\n placeholder?: string;\n disabled?: boolean;\n}\n\nconst Select = styled.select<{ isInvalid: boolean }>`\n width: 100%;\n color: ${colors.text.subtle};\n background: transparent;\n font-weight: 600;\n border: none;\n outline: none;\n padding: 0;\n margin: 0;\n\n &:focus,\n &:active,\n &:hover {\n border: none;\n outline: none;\n box-shadow: none;\n }\n\n &:invalid {\n color: ${colors.text.subtle};\n }\n`;\n\nconst OptionItem = styled.option`\n color: ${(props) =>\n props.disabled ? colors.text.light : colors.text.subtle};\n`;\n\nexport const Dropdown = <T extends string | number>({\n error,\n onChange,\n options,\n value,\n label,\n name,\n placeholder = 'Select an option',\n disabled,\n}: DropdownProps<T>) => {\n const isInvalid = useMemo(\n () => error ? typeof error === 'string' && error?.length > 0 : false,\n [error],\n );\n\n return (\n <InputContainer error={error}>\n {typeof label === 'string' && (\n <FloatingLabel\n value={label}\n color={isInvalid ? 'error' : 'subtle'}\n fontWeight=\"600\"\n />\n )}\n <Select\n name={name}\n value={value ?? ''}\n onChange={(e) => onChange(e.target.value as T)}\n isInvalid={isInvalid}\n disabled={disabled}\n >\n <OptionItem value=\"\" disabled hidden>\n {placeholder}\n </OptionItem>\n {options.map((option) => (\n <OptionItem key={option.value} value={option.value}>\n {option.label}\n </OptionItem>\n ))}\n </Select>\n </InputContainer>\n );\n};\n","import { useState } from 'react';\nimport { HiMinus, HiPlus } from 'react-icons/hi2';\nimport styled from 'styled-components';\nimport { Description, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst AccordionContainer = styled.div`\n border-bottom: 1px solid ${colors.text.light || '#d1d5db'};\n padding: 1.5rem 0;\n`;\n\nconst AccordionHeader = styled.button`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 1rem;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n padding: 0;\n`;\n\nconst NumberBadge = styled.span<{ numberColor: TextColor }>`\n font-size: 1rem;\n font-weight: 600;\n color: ${props => colors.text[props.numberColor]};\n flex-shrink: 0;\n`;\n\nconst HeaderWrapper = styled.div`\n flex-grow: 1;\n`;\n\nconst IconWrapper = styled.div<{ iconColor: TextColor }>`\n color: ${props => colors.text[props.iconColor]};\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst AccordionContent = styled.div<{ $isOpen: boolean }>`\n max-height: ${props => props.$isOpen ? '1000px' : '0'};\n overflow: hidden;\n transition: max-height 0.3s ease-in-out;\n padding-left: 2.5rem;\n margin-top: ${props => props.$isOpen ? '1rem' : '0'};\n`;\n\ninterface AccordionProps {\n number: string;\n title: string;\n content: string;\n defaultOpen?: boolean;\n headerVariant?: 'h1' | 'h2' | 'h3';\n numberColor?: TextColor;\n titleColor?: TextColor;\n iconColor?: TextColor;\n contentVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FAQAccordion = ({\n number,\n title,\n content,\n defaultOpen = false,\n headerVariant = 'h3',\n numberColor = 'brand',\n titleColor = 'brand',\n iconColor = 'brand',\n contentVariant = 'primary',\n}: AccordionProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n return (\n <AccordionContainer>\n <AccordionHeader onClick={() => setIsOpen(!isOpen)}>\n <NumberBadge numberColor={numberColor}>{number}</NumberBadge>\n <HeaderWrapper>\n <Header variant={headerVariant} color={titleColor}>\n {title}\n </Header>\n </HeaderWrapper>\n <IconWrapper iconColor={iconColor}>\n {isOpen ? <HiMinus size={24} /> : <HiPlus size={24} />}\n </IconWrapper>\n </AccordionHeader>\n <AccordionContent $isOpen={isOpen}>\n <Description variant={contentVariant}>\n {content}\n </Description>\n </AccordionContent>\n </AccordionContainer>\n );\n};","import styled from 'styled-components';\nimport { FeatureItem } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\ntype BackgroundColor = keyof typeof colors.background;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst FeatureWrapper = styled.div`\n padding: 1rem 0;\n border-bottom: 1px solid #e5e7eb;\n\n &:last-child {\n border-bottom: none;\n }\n`;\n\ninterface FeatureItemData {\n thumbnail: React.ReactNode;\n title: string;\n description: string;\n thumbnailSize?: string;\n}\n\ninterface FeatureContainerProps {\n items: FeatureItemData[];\n thumbnailBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n}\n\nexport const FeatureContainer = ({ \n items, \n thumbnailBgColor = 'brand',\n titleColor = 'primary',\n descriptionVariant = 'subtle',\n}: FeatureContainerProps) => {\n return (\n <Container>\n {items.map((item, index) => (\n <FeatureWrapper key={index}>\n <FeatureItem\n thumbnail={item.thumbnail}\n title={item.title}\n description={item.description}\n thumbnailSize={item.thumbnailSize}\n thumbnailBgColor={thumbnailBgColor}\n titleColor={titleColor}\n descriptionVariant={descriptionVariant}\n />\n </FeatureWrapper>\n ))}\n </Container>\n );\n};","import { ComponentProps, useRef } from 'react';\nimport { FaPlus } from 'react-icons/fa6';\nimport { Button } from '../../atoms';\n\nconst acceptTypes = ['.docx', '.doc', '.pdf', 'image/*'] as const;\n\ntype AcceptType = (typeof acceptTypes)[number];\n\ninterface FileButtonProps\n extends Omit<ComponentProps<typeof Button>, 'onClick' | 'type'> {\n onFileSelect?: (file: File) => void;\n accept?: AcceptType[];\n multiple?: boolean;\n}\n\nexport const FileButton = ({\n onFileSelect,\n accept = ['.pdf'],\n multiple = false,\n ...rest\n}: FileButtonProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (files && files.length > 0 && onFileSelect) {\n Array.from(files).forEach((file) => onFileSelect(file));\n }\n };\n\n return (\n <>\n <Button\n {...rest}\n icon={<FaPlus fontSize=\"10px\" />}\n onClick={handleClick}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n style={{ display: 'none' }}\n onChange={handleFileChange}\n accept={accept?.map((item) => item).join(',')}\n multiple={multiple}\n />\n </>\n );\n};\n","import { ComponentProps, useMemo } from 'react';\nimport { Input as InputBase } from '../../atoms/Input/Input';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface InputProps extends ComponentProps<typeof InputBase> {\n label?: string;\n error?: string;\n}\n\nexport const Input = ({ label, error, ...rest }: InputProps) => {\n const isInvalid = useMemo(\n () => typeof error === 'string' && error.length > 0,\n [error],\n );\n\n return (\n <InputContainer error={error}>\n {typeof label === 'string' && (\n <FloatingLabel\n color={isInvalid ? 'error' : 'subtle'}\n value={label}\n fontWeight=\"600\"\n />\n )}\n <InputBase {...rest} />\n </InputContainer>\n );\n};\n\nInput.types = InputBase.types;\n","import { keyframes } from 'styled-components';\n\nexport const fadeIn = keyframes`\n from { opacity: 0 }\n to { opacity: 1 }\n`;\n\nexport const popIn = keyframes`\n from { transform: translateY(8px) scale(.98); opacity: 0 }\n to { transform: translateY(0) scale(1); opacity: 1 }\n`;\n","import { ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { fadeIn } from '../../tokens/animations';\nimport { breakpoints } from '../../tokens/breakpoints';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { spaces } from '../../tokens/spaces';\n\nconst positions = ['top', 'center', 'bottom'] as const;\n\ntype ContentPosition = (typeof positions)[number];\n\ninterface ModalProps {\n visible: boolean;\n onClose: () => void;\n dismissable?: boolean;\n contentPosition?: ContentPosition;\n children: ReactNode;\n}\n\nconst Overlay = styled.div<{ contentPosition: ContentPosition }>`\n height: 100vh;\n width: 100vw;\n background-color: rgba(0, 0, 0, 0.4);\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: ${(props) =>\n props.contentPosition === 'center'\n ? 'center'\n : props.contentPosition === 'bottom'\n ? 'flex-end'\n : 'flex-start'};\n justify-content: center;\n animation: ${fadeIn} 160ms ease-out;\n`;\n\nconst ContentContainer = styled.div`\n position: relative;\n width: min(${breakpoints.sm}, 92vw);\n max-height: 86vh;\n overflow: auto;\n border-radius: ${radii.xl};\n padding: ${spaces[6]};\n background-color: ${colors.background.primary};\n`;\n\nexport const Modal = ({\n visible,\n contentPosition = 'center',\n dismissable = true,\n onClose,\n children,\n}: ModalProps) => {\n function onDismiss() {\n if (dismissable) {\n onClose();\n }\n }\n\n if (!visible) return <></>;\n\n return (\n <Overlay contentPosition={contentPosition} onClick={onDismiss}>\n <ContentContainer onClick={(e) => e.stopPropagation()}>\n {children}\n </ContentContainer>\n </Overlay>\n );\n};\n","import { FaCircleCheck, FaCircleExclamation } from \"react-icons/fa6\"\nimport styled from \"styled-components\"\nimport { Header } from \"../../atoms\"\nimport { colors } from \"../../tokens/colors\"\nimport { radii } from \"../../tokens/radii\"\nimport { spaces } from \"../../tokens/spaces\"\n\nconst Container = styled.div<{isComplete: boolean}>`\ndisplay: flex;\nalign-items: center ;\njustify-content: space-between;\npadding: ${spaces[2]} ${spaces[3]};\nbackground-color: ${props => props.isComplete ? colors.background.blue : colors.background.light};\nborder-radius: ${radii.sm};\n`\n\nconst Row = styled.div`\n display: flex;\n align-items: center;\n gap: ${spaces[2]};\n`\n\ninterface OverviewRowItemProps {\n isComplete: boolean\n title: string\n isMainHeader: boolean\n}\n\nexport const OverviewRowItem = ({isComplete, isMainHeader, title}: OverviewRowItemProps) => {\n\n return <Container isComplete={isComplete}>\n <Header variant={isMainHeader ? 'h2' : 'h3'} color={isComplete ? 'secondary' : 'primary'}>{title}</Header>\n\n <Row>\n <Header variant='h3' color={isComplete ? 'secondary' : 'primary'}>{isComplete ? 'Complete' : 'Information Outstanding'}</Header>\n {isComplete ? <FaCircleCheck color={colors.background.success}/> : <FaCircleExclamation color={colors.background.error}/>}\n </Row>\n </Container>\n}","'use client';\n\ninterface SpinnerProps {\n height?: `${number}px`;\n width?: `${number}px`;\n}\n\nexport default function Spinner(props: SpinnerProps) {\n return (\n <>\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-blue-600\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </>\n );\n}\n","import { ReactElement, ReactNode } from 'react';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport Spinner from '../../components/Spinner';\nimport { colors } from '../../tokens/colors';\nimport { spaces } from '../../tokens/spaces';\n\ninterface PageLayoutProps {\n title: string;\n children: ReactNode;\n isLoading?: boolean;\n rightElement?: ReactElement\n}\n\nconst Container = styled.div`\n width: '100%';\n min-height: '100vh';\n padding-bottom: ${spaces[9]};\n`;\n\nconst HeaderContainer = styled.div`\n padding: ${spaces[4.5]} ${spaces[6]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst ContentContainer = styled.div`\n border-top: 1px solid ${colors.border.hover};\n`;\n\nconst SpinnerContainer = styled.div`\n display: flex;\n width: 100%;\n padding: ${spaces[6]};\n align-items: center;\n justify-content: center;\n`;\n\nexport const PageLayout = ({\n title,\n children,\n isLoading = false,\n rightElement\n}: PageLayoutProps) => {\n return (\n <Container>\n <HeaderContainer>\n <Header color=\"subtle\">{title}</Header> {rightElement && rightElement}\n </HeaderContainer>\n {isLoading ? (\n <SpinnerContainer>\n <Spinner />\n </SpinnerContainer>\n ) : (\n <ContentContainer>{children}</ContentContainer>\n )}\n </Container>\n );\n};\n","import { useMemo } from 'react';\nimport { FaHouse, FaRegFolderOpen } from 'react-icons/fa6';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\nconst variants = ['documents', 'properties'] as const;\n\ntype EmptyStateType = (typeof variants)[number];\n\ninterface EmptyStateProps {\n variant: EmptyStateType;\n message: string;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: ${spaces[4]};\n padding: ${spaces[8]};\n`;\n\nexport const EmptyState = ({ variant, message }: EmptyStateProps) => {\n const size = sizes.xl;\n const color = colors.text.primary;\n\n const Icon = useMemo(() => {\n switch (variant) {\n case 'documents':\n return <FaRegFolderOpen size={size} color={color} />;\n case 'properties':\n return <FaHouse size={size} color={color} />;\n }\n }, [variant]);\n\n return (\n <Container>\n {Icon}\n <Header variant=\"h3\">{message}</Header>\n </Container>\n );\n};\n\nEmptyState.variants = variants;\n","import { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { EmptyState } from '../EmptyState/EmptyState';\n\ninterface PDFPreviewerProps {\n url: string;\n}\n\nconst Container = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nexport const PDFPreviewer = ({ url }: PDFPreviewerProps) => {\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n setError(null);\n try {\n new URL(url);\n } catch {\n setError('Invalid preview URL');\n }\n }, [url]);\n\n if (typeof error === 'string')\n return (\n <EmptyState message=\"Failed to load this document\" variant=\"documents\" />\n );\n\n return (\n <Container>\n <iframe\n src={`${url}#view=FitH&toolbar=1&navpanes=0`}\n title=\"Document preview\"\n allow=\"clipboard-read; clipboard-write\"\n referrerPolicy=\"no-referrer\"\n style={{ width: '100%', height: '100%', border: '0' }}\n />\n </Container>\n );\n};\n","import styled from 'styled-components';\nimport { ExtendedButton, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype TextColor = keyof typeof colors.text;\n\nconst Container = styled.div`\n display: flex;\n gap: 1.5rem;\n align-items: center;\n max-width: 600px;\n \n /* Mobile: stack vertically */\n @media (max-width: 767px) {\n flex-direction: column;\n align-items: flex-start;\n max-width: 100%;\n }\n`;\n\nconst ImageWrapper = styled.div`\n flex-shrink: 0;\n width: 180px;\n height: 180px;\n border-radius: 8px;\n overflow: hidden;\n \n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n \n /* Mobile: full width */\n @media (max-width: 767px) {\n width: 100%;\n height: 200px;\n }\n`;\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n \n /* Mobile: full width */\n @media (max-width: 767px) {\n width: 100%;\n }\n`;\n\nconst LogoWrapper = styled.div`\n max-width: 200px;\n \n img {\n width: 100%;\n height: auto;\n }\n`;\n\ninterface ProductInfoItemProps {\n image: string;\n logoImage: string;\n title: string;\n buttonText: string;\n onButtonClick?: () => void;\n titleVariant?: 'h1' | 'h2' | 'h3';\n titleColor?: TextColor;\n buttonArrowVariant?: 'brand' | 'teal' | 'blue';\n buttonTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n buttonTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const ProductInfo = ({\n image,\n logoImage,\n title,\n buttonText,\n onButtonClick,\n titleVariant = 'h2',\n titleColor = 'brand',\n buttonArrowVariant = 'teal',\n buttonTextBgVariant = 'brand',\n buttonTextVariant = 'secondary',\n}: ProductInfoItemProps) => {\n return (\n <Container>\n <ImageWrapper>\n <img src={image} alt=\"Product\" />\n </ImageWrapper>\n <ContentWrapper>\n <LogoWrapper>\n <img src={logoImage} alt=\"Logo\" />\n </LogoWrapper>\n <Header variant={titleVariant} color={titleColor}>\n {title}\n </Header>\n <ExtendedButton\n text={buttonText}\n onClick={onButtonClick}\n arrowVariant={buttonArrowVariant}\n textBgVariant={buttonTextBgVariant}\n textVariant={buttonTextVariant}\n />\n </ContentWrapper>\n </Container>\n );\n};","import styled from 'styled-components';\nimport { Label, RadioItem } from '../../atoms';\nimport { spaces } from '../../tokens/spaces';\nimport { Option } from '../../types';\n\ntype RadioGroupProps<T extends string | number> = {\n label?: string;\n options: readonly Option<T>[];\n value: T;\n onClick: (value: T) => void;\n className?: string;\n};\n\nconst Container = styled.div``;\n\nconst OptionsContainer = styled.div`\n margin-top: ${spaces[2]};\n display: flex;\n flex-direction: row;\n flex: 1;\n gap: ${spaces[2]};\n`;\n\nconst LabelContainer = styled.div`\n padding-left: ${spaces[1]};\n`;\n\nexport const RadioGroup = <T extends string | number>({\n label,\n options,\n value,\n onClick,\n className,\n}: RadioGroupProps<T>) => {\n return (\n <Container className={className}>\n {typeof label === 'string' && (\n <LabelContainer>\n <Label value={label} fontWeight=\"600\" />\n </LabelContainer>\n )}\n <OptionsContainer>\n {options.map((option, idx) => (\n <RadioItem\n key={idx}\n isSelected={value === option.value}\n label={option.label}\n disabled={option.disabled}\n onClick={() => onClick(option.value)}\n />\n ))}\n </OptionsContainer>\n </Container>\n );\n};\n","import { HiX } from 'react-icons/hi';\nimport styled from 'styled-components';\nimport { Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\nconst variants = ['primary', 'secondary', 'subtle'] as const;\ntype Variant = (typeof variants)[number];\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst ChartContainer = styled.div`\n background-color: #ffffff;\n border-radius: 8px;\n padding: 2rem;\n max-width: 400px;\n width: 90%;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);\n`;\n\nconst HeaderSection = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 1.5rem;\n`;\n\nconst CloseButton = styled.button<{ variant: Variant }>`\n background-color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.background.brand;\n case 'secondary':\n return colors.background.blue;\n case 'subtle':\n return colors.background.subtle;\n default:\n return colors.background.brand;\n }\n }};\n color: #ffffff;\n border: none;\n border-radius: 4px;\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: opacity 0.2s;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst Table = styled.table`\n width: 100%;\n border-collapse: collapse;\n`;\n\nconst TableHeader = styled.thead`\n border-bottom: 2px solid #e5e7eb;\n`;\n\nconst TableHeaderCell = styled.th<{ variant: Variant }>`\n text-align: left;\n padding: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 700;\n text-transform: uppercase;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n return colors.text.brand;\n case 'secondary':\n return colors.text.blue;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.brand;\n }\n }};\n`;\n\nconst TableBody = styled.tbody``;\n\nconst TableRow = styled.tr`\n border-bottom: 1px solid #f3f4f6;\n\n &:last-child {\n border-bottom: none;\n }\n`;\n\nconst TableCell = styled.td<{ variant: Variant }>`\n padding: 0.75rem 0;\n font-size: 0.875rem;\n color: ${(props) => {\n switch (props.variant) {\n case 'primary':\n case 'secondary':\n return colors.text.primary;\n case 'subtle':\n return colors.text.subtle;\n default:\n return colors.text.primary;\n }\n }};\n`;\n\ninterface RateItem {\n transactionType: string;\n price: string;\n}\n\ninterface RatesChartProps {\n title?: string;\n rates: RateItem[];\n onClose: () => void;\n variant?: Variant;\n}\n\nexport const RatesChart = ({\n title = 'Rates chart',\n rates,\n onClose,\n variant = 'primary',\n}: RatesChartProps) => {\n const getHeaderColor = () => {\n switch (variant) {\n case 'primary':\n return 'brand';\n case 'secondary':\n return 'primary';\n case 'subtle':\n return 'subtle';\n default:\n return 'brand';\n }\n };\n\n return (\n <Overlay onClick={onClose}>\n <ChartContainer onClick={(e) => e.stopPropagation()}>\n <HeaderSection>\n <Header variant=\"h2\" color={getHeaderColor()}>\n {title}\n </Header>\n <CloseButton onClick={onClose} variant={variant}>\n <HiX size={20} />\n </CloseButton>\n </HeaderSection>\n <Table>\n <TableHeader>\n <tr>\n <TableHeaderCell variant={variant}>Transaction type</TableHeaderCell>\n <TableHeaderCell variant={variant}>Price</TableHeaderCell>\n </tr>\n </TableHeader>\n <TableBody>\n {rates.map((rate, index) => (\n <TableRow key={index}>\n <TableCell variant={variant}>{rate.transactionType}</TableCell>\n <TableCell variant={variant}>{rate.price}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </ChartContainer>\n </Overlay>\n );\n};\n\nRatesChart.variants = variants;","import styled from 'styled-components';\nimport { ExtendedButton, TextButton } from \"../../atoms\";\nimport { colors } from '../../tokens/colors';\n\ntype BorderColor = keyof typeof colors.border;\ntype BgColor = keyof typeof colors.background;\n\nconst Backdrop = styled.div<{ $isOpen: boolean }>`\n display: none;\n \n @media (max-width: 767px) {\n display: ${props => props.$isOpen ? 'block' : 'none'};\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n }\n`;\n\nconst BackToTopWrapper = styled.div`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst StyledNav = styled.nav<{ \n $isOpen: boolean;\n $mobileBgVariant: BgColor;\n $borderVariant: BorderColor;\n}>`\n width: 195px;\n display: flex;\n flex-direction: column;\n min-height: 500px;\n height: 100vh;\n padding-bottom: 15px;\n \n @media (min-width: 768px) {\n position: relative;\n background-color: #ffffff;\n border-right: 1px solid #e5e7eb;\n }\n \n @media (max-width: 767px) {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 9999;\n background-color: ${props => colors.background[props.$mobileBgVariant]};\n border-right: 1px solid ${props => colors.border[props.$borderVariant]};\n transform: translateX(${props => props.$isOpen ? '0' : '-100%'});\n transition: transform 0.3s ease-in-out;\n box-shadow: ${props => props.$isOpen ? '2px 0 8px rgba(0, 0, 0, 0.15)' : 'none'};\n }\n`;\n\nconst CloseButton = styled.button<{ $textVariant: BorderColor }>`\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n padding: 0.5rem;\n color: ${props => colors.border[props.$textVariant]};\n \n &:hover {\n opacity: 0.7;\n }\n`;\n\nconst MobileHeader = styled.div`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n }\n`;\n\nconst NavList = styled.ul`\n display: flex;\n flex-direction: column;\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst DesktopNavList = styled(NavList)`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst MobileNavList = styled(NavList)`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n }\n`;\n\nconst NavItem = styled.li`\n display: flex;\n`;\n\nconst NavLink = styled.a<{ $isActive: boolean }>`\n display: flex;\n align-items: center;\n text-decoration: none;\n width: 100%;\n padding-left: 0.5rem;\n \n ${props => !props.$isActive && `\n &:hover {\n font-weight: 100;\n }\n `}\n`;\n\nconst ActiveTriangle = styled.div<{ triangleColor: BorderColor }>`\n width: 0;\n height: 0;\n border-top: 4px solid transparent;\n border-left: 6px solid ${props => colors.border[props.triangleColor]};\n border-bottom: 4px solid transparent;\n flex-shrink: 0;\n margin-left: 1.5rem;\n`;\n\nconst InactiveSpacer = styled.span`\n width: 6px;\n margin-right: 0.5rem;\n flex-shrink: 0;\n`;\n\nconst Divider = styled.div<{ dividerColor: BorderColor }>`\n height: 1px;\n background-color: ${props => colors.border[props.dividerColor]};\n margin: 1rem;\n`;\n\nconst Spacer = styled.div`\n flex-grow: 1;\n`;\n\nconst DesktopOnlySpacer = styled(Spacer)`\n @media (max-width: 767px) {\n display: none;\n }\n`;\n\nconst MobileButtonsWrapper = styled.div`\n display: none;\n \n @media (max-width: 767px) {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n padding: 0 1rem;\n margin-top: auto;\n margin-bottom: 20px;\n }\n`;\n\ninterface NavItemData {\n label: string;\n href: string;\n}\n\ninterface SideNavProps {\n logo?: React.ReactNode;\n items: NavItemData[];\n activeItem?: string;\n onBackToTop?: () => void;\n isOpen?: boolean;\n onClose?: () => void;\n mobileButtons?: Array<{\n text: string;\n onClick: () => void;\n bgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n arrowButton?: 'blue'\n }>;\n mobileBgVariant?: BgColor;\n borderVariant?: BorderColor;\n closeButtonVariant?: BorderColor;\n mobileActiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n mobileActiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n mobileInactiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n mobileInactiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n triangleColor?: BorderColor;\n dividerColor?: BorderColor;\n activeTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n activeTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n inactiveTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n inactiveTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n backToTopBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n backToTopTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const SideNav = ({ \n logo,\n items, \n activeItem,\n onBackToTop,\n isOpen = true, \n onClose,\n mobileButtons = [],\n mobileBgVariant = 'tertiary',\n borderVariant = 'primary',\n closeButtonVariant = 'light',\n mobileActiveTextBgVariant = 'transparent',\n mobileActiveTextVariant = 'light',\n mobileInactiveTextBgVariant = 'transparent',\n mobileInactiveTextVariant= 'light',\n triangleColor = 'primary',\n dividerColor = 'light',\n activeTextBgVariant = 'transparent',\n activeTextVariant = 'brand',\n inactiveTextBgVariant = 'transparent',\n inactiveTextVariant = 'subtle',\n backToTopBgVariant = 'transparent',\n backToTopTextVariant = 'subtle',\n}: SideNavProps) => {\n const renderNavItems = (isMobile: boolean) => items.map((item) => {\n const isActive = activeItem === item.href;\n return (\n <NavItem key={item.href}>\n <NavLink href={item.href} $isActive={isActive} onClick={onClose}>\n {isActive ? <ActiveTriangle triangleColor={triangleColor} /> : <InactiveSpacer />}\n <TextButton\n asChild\n text={item.label}\n bgVariant={isActive \n ? (isMobile && mobileActiveTextBgVariant ? mobileActiveTextBgVariant : activeTextBgVariant)\n : (isMobile && mobileInactiveTextBgVariant ? mobileInactiveTextBgVariant : inactiveTextBgVariant)\n }\n textVariant={isActive\n ? (isMobile && mobileActiveTextVariant ? mobileActiveTextVariant : activeTextVariant)\n : (isMobile && mobileInactiveTextVariant ? mobileInactiveTextVariant : inactiveTextVariant)\n }\n uppercase={false}\n bold={isActive}\n />\n </NavLink>\n </NavItem>\n );\n });\n\n return (\n <>\n <Backdrop $isOpen={isOpen} onClick={onClose} />\n <StyledNav \n $isOpen={isOpen}\n $mobileBgVariant={mobileBgVariant}\n $borderVariant={borderVariant}\n >\n <MobileHeader>\n {logo}\n <CloseButton onClick={onClose} aria-label=\"Close menu\" $textVariant={closeButtonVariant}>\n ✕\n </CloseButton>\n </MobileHeader>\n \n <DesktopOnlySpacer />\n \n {/* Desktop nav */}\n <DesktopNavList>\n {renderNavItems(false)}\n </DesktopNavList>\n\n {/* Mobile nav */}\n <MobileNavList>\n {renderNavItems(true)}\n </MobileNavList>\n\n <Divider dividerColor={dividerColor} />\n <Spacer />\n\n {mobileButtons.length > 0 && (\n <>\n <Divider dividerColor={dividerColor} />\n <MobileButtonsWrapper>\n {mobileButtons.map((button, index) => (\n <ExtendedButton\n key={index}\n text={button.text}\n onClick={button.onClick}\n textBgVariant={button.bgVariant || 'transparent'}\n textVariant={button.textVariant || 'subtle'}\n arrowVariant={button.arrowButton || 'blue'}\n />\n ))}\n </MobileButtonsWrapper> \n </>\n )}\n\n <BackToTopWrapper>\n <TextButton\n text=\"Back to top\"\n onClick={onBackToTop}\n bgVariant={backToTopBgVariant}\n textVariant={backToTopTextVariant}\n uppercase={false}\n />\n </BackToTopWrapper>\n </StyledNav>\n </>\n );\n};","import { HiX } from 'react-icons/hi';\nimport styled from 'styled-components';\nimport { Description, ExtendedButton, Header } from '../../atoms';\nimport { colors } from '../../tokens/colors';\n\ntype BackgroundColor = keyof typeof colors.background;\ntype TextColor = keyof typeof colors.text;\n\nconst Overlay = styled.div<{ $isOpen: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: ${props => props.$isOpen ? 'flex' : 'none'};\n justify-content: flex-end;\n z-index: 1000;\n`;\n\nconst PanelContainer = styled.div<{ $isOpen: boolean }>`\n background-color: #ffffff;\n width: 100%;\n max-width: 400px;\n height: 100vh;\n padding: 3rem 2rem;\n box-shadow: -4px 0 15px rgba(0, 0, 0, 0.2);\n display: flex;\n flex-direction: column;\n gap: 2rem;\n transform: ${props => props.$isOpen ? 'translateX(0)' : 'translateX(100%)'};\n transition: transform 0.3s ease-in-out;\n overflow-y: auto;\n`;\n\nconst CloseButton = styled.button<{ closeButtonBgColor: BackgroundColor }>`\n position: absolute;\n top: 1.5rem;\n right: 1.5rem;\n background-color: ${props => colors.background[props.closeButtonBgColor]};\n color: #ffffff;\n border: none;\n border-radius: 4px;\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: opacity 0.2s;\n z-index: 10;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst IconWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-bottom: 1rem;\n\n svg {\n width: 150px;\n height: 150px;\n }\n\n img {\n width: 150px;\n height: 150px;\n object-fit: contain;\n }\n`;\n\nconst ContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n`;\n\ninterface SidePanelProps {\n isOpen: boolean;\n onClose: () => void;\n icon: React.ReactNode;\n title: string;\n description: string;\n buttonText: string;\n onButtonClick?: () => void;\n closeButtonBgColor?: BackgroundColor;\n titleColor?: TextColor;\n descriptionVariant?: 'primary' | 'secondary' | 'subtle' | 'error';\n buttonArrowVariant?: 'brand' | 'teal' | 'blue';\n buttonTextBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';\n buttonTextVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';\n}\n\nexport const SidePanel = ({\n isOpen,\n onClose,\n icon,\n title,\n description,\n buttonText,\n onButtonClick,\n closeButtonBgColor = 'subtle',\n titleColor = 'brand',\n descriptionVariant = 'primary',\n buttonArrowVariant = 'teal',\n buttonTextBgVariant = 'brand',\n buttonTextVariant = 'secondary',\n}: SidePanelProps) => {\n return (\n <Overlay $isOpen={isOpen} onClick={onClose}>\n <PanelContainer $isOpen={isOpen} onClick={(e) => e.stopPropagation()}>\n <CloseButton onClick={onClose} closeButtonBgColor={closeButtonBgColor}>\n <HiX size={24} />\n </CloseButton>\n <IconWrapper>{icon}</IconWrapper>\n <ContentWrapper>\n <Header variant=\"h2\" color={titleColor}>\n {title}\n </Header>\n <Description variant={descriptionVariant}>\n {description}\n </Description>\n <ExtendedButton\n text={buttonText}\n onClick={onButtonClick}\n arrowVariant={buttonArrowVariant}\n textBgVariant={buttonTextBgVariant}\n textVariant={buttonTextVariant}\n />\n </ContentWrapper>\n </PanelContainer>\n </Overlay>\n );\n};","import styled from 'styled-components';\nimport { colors } from '../../tokens/colors';\nimport { radii } from '../../tokens/radii';\nimport { sizes } from '../../tokens/sizes';\nimport { spaces } from '../../tokens/spaces';\n\ninterface StepperHeaderTabProps {\n onClick?: () => void;\n title: string;\n isSelected: boolean;\n}\n\nconst Container = styled.div<Pick<StepperHeaderTabProps, 'isSelected'>>`\n width: 100%;\n background-color: ${(props) =>\n props.isSelected ? colors.background.blue : colors.background.primary};\n border: 1px solid ${colors.background.blue};\n border-radius: ${radii.lg};\n display: flex;\n justify-content: center;\n align-items: center;\n padding: ${spaces[2]} ${spaces[3]};\n cursor: pointer;\n`;\n\nconst StyledLabel = styled.span<Pick<StepperHeaderTabProps, 'isSelected'>>`\n color: ${(props) =>\n props.isSelected ? colors.text.secondary : colors.text.blue};\n font-size: ${sizes.sm};\n font-weight: 700;\n`;\n\nexport const StepperHeaderTab = ({\n title,\n isSelected,\n onClick,\n}: StepperHeaderTabProps) => {\n return (\n <Container isSelected={isSelected} onClick={onClick}>\n <StyledLabel isSelected={isSelected}>{title}</StyledLabel>\n </Container>\n );\n};\n","import { ComponentProps, useMemo } from 'react';\nimport { FloatingLabel } from '../../atoms/Label/Label';\nimport { Textarea as TextareaBase } from '../../atoms/Textarea/Textarea';\nimport { InputContainer } from '../InputContainer/InputContainer';\n\ninterface TextareaProps extends ComponentProps<typeof TextareaBase> {\n label?: string;\n error?: string;\n}\n\nexport const Textarea = ({ label, error, ...rest }: TextareaProps) => {\n const isInvalid = useMemo(\n () => typeof error === 'string' && error.length > 0,\n [error],\n );\n\n return (\n <InputContainer>\n {typeof label === 'string' && (\n <FloatingLabel\n color={isInvalid ? 'error' : 'subtle'}\n value={label}\n fontWeight=\"600\"\n />\n )}\n <TextareaBase {...rest} />\n </InputContainer>\n );\n};\n"]}
|