property-practice-ui 0.1.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/Button-GGqCRrab.d.cts +29 -0
- package/dist/Button-GGqCRrab.d.ts +29 -0
- package/dist/FileButton-DGczdE12.d.cts +22 -0
- package/dist/FileButton-HFyj2Jod.d.ts +22 -0
- package/dist/Textarea-BVqF5_5c.d.cts +45 -0
- package/dist/Textarea-BVqF5_5c.d.ts +45 -0
- package/dist/atoms.cjs +5 -3
- package/dist/atoms.cjs.map +1 -1
- package/dist/atoms.d.cts +14 -3
- package/dist/atoms.d.ts +14 -3
- package/dist/atoms.js +5 -3
- package/dist/atoms.js.map +1 -1
- package/dist/index.cjs +794 -300
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -400
- package/dist/index.d.ts +11 -400
- package/dist/index.js +790 -296
- package/dist/index.js.map +1 -1
- package/dist/molecules.cjs +2457 -0
- package/dist/molecules.cjs.map +1 -0
- package/dist/molecules.d.cts +283 -0
- package/dist/molecules.d.ts +283 -0
- package/dist/molecules.js +2431 -0
- package/dist/molecules.js.map +1 -0
- package/dist/organisms.cjs +2859 -0
- package/dist/organisms.cjs.map +1 -0
- package/dist/organisms.d.cts +126 -0
- package/dist/organisms.d.ts +126 -0
- package/dist/organisms.js +2845 -0
- package/dist/organisms.js.map +1 -0
- package/dist/{toast-CvZfLJrO.d.cts → tableListItem-irbfqxnQ.d.cts} +1 -3
- package/dist/{toast-CvZfLJrO.d.ts → tableListItem-irbfqxnQ.d.ts} +1 -3
- package/dist/toast-JPCqJveR.d.cts +3 -0
- package/dist/toast-JPCqJveR.d.ts +3 -0
- package/dist/types.d.cts +2 -1
- package/dist/types.d.ts +2 -1
- package/package.json +11 -1
- package/tsup.config.ts +2 -0
- package/dist/Textarea-u7ONHI5M.d.cts +0 -79
- package/dist/Textarea-u7ONHI5M.d.ts +0 -79
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const variants$1: readonly ["primary", "secondary", "tertiary", "subtle", "blue", "brand", "light", "active", "hover", "error", "focus", "success"];
|
|
5
|
+
declare const tokens: readonly ["background", "border", "text", "button"];
|
|
6
|
+
type Token = (typeof tokens)[number];
|
|
7
|
+
type Variant$1 = (typeof variants$1)[number];
|
|
8
|
+
type TokenVariant = Record<Variant$1, string>;
|
|
9
|
+
declare const colors: Record<Token, Partial<TokenVariant>>;
|
|
10
|
+
|
|
11
|
+
declare const ButtonTypes: readonly ["submit", "reset", "button"];
|
|
12
|
+
type ButtonType = (typeof ButtonTypes)[number];
|
|
13
|
+
declare const variants: readonly ["dark", "light"];
|
|
14
|
+
type Variant = (typeof variants)[number];
|
|
15
|
+
interface ButtonProps {
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
text?: string;
|
|
18
|
+
type?: ButtonType;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
icon?: ReactElement;
|
|
21
|
+
variant?: Variant;
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
}
|
|
24
|
+
declare const Button: {
|
|
25
|
+
({ onClick, text, type, disabled, icon, variant, isLoading, }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
26
|
+
types: readonly ["submit", "reset", "button"];
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { Button as B, colors as c };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const variants$1: readonly ["primary", "secondary", "tertiary", "subtle", "blue", "brand", "light", "active", "hover", "error", "focus", "success"];
|
|
5
|
+
declare const tokens: readonly ["background", "border", "text", "button"];
|
|
6
|
+
type Token = (typeof tokens)[number];
|
|
7
|
+
type Variant$1 = (typeof variants$1)[number];
|
|
8
|
+
type TokenVariant = Record<Variant$1, string>;
|
|
9
|
+
declare const colors: Record<Token, Partial<TokenVariant>>;
|
|
10
|
+
|
|
11
|
+
declare const ButtonTypes: readonly ["submit", "reset", "button"];
|
|
12
|
+
type ButtonType = (typeof ButtonTypes)[number];
|
|
13
|
+
declare const variants: readonly ["dark", "light"];
|
|
14
|
+
type Variant = (typeof variants)[number];
|
|
15
|
+
interface ButtonProps {
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
text?: string;
|
|
18
|
+
type?: ButtonType;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
icon?: ReactElement;
|
|
21
|
+
variant?: Variant;
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
}
|
|
24
|
+
declare const Button: {
|
|
25
|
+
({ onClick, text, type, disabled, icon, variant, isLoading, }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
26
|
+
types: readonly ["submit", "reset", "button"];
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export { Button as B, colors as c };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
3
|
+
import { B as Button } from './Button-GGqCRrab.cjs';
|
|
4
|
+
|
|
5
|
+
type DocumentListAccordionFileType = {
|
|
6
|
+
name: string;
|
|
7
|
+
sourceFile: string;
|
|
8
|
+
status: string;
|
|
9
|
+
createdAt?: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare const acceptTypes: readonly [".docx", ".doc", ".pdf", "image/*"];
|
|
14
|
+
type AcceptType = (typeof acceptTypes)[number];
|
|
15
|
+
interface FileButtonProps extends Omit<ComponentProps<typeof Button>, 'onClick' | 'type'> {
|
|
16
|
+
onFileSelect?: (file: File) => void;
|
|
17
|
+
accept?: AcceptType[];
|
|
18
|
+
multiple?: boolean;
|
|
19
|
+
}
|
|
20
|
+
declare const FileButton: ({ onFileSelect, accept, multiple, ...rest }: FileButtonProps) => react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { type DocumentListAccordionFileType as D, FileButton as F };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
3
|
+
import { B as Button } from './Button-GGqCRrab.js';
|
|
4
|
+
|
|
5
|
+
type DocumentListAccordionFileType = {
|
|
6
|
+
name: string;
|
|
7
|
+
sourceFile: string;
|
|
8
|
+
status: string;
|
|
9
|
+
createdAt?: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
declare const acceptTypes: readonly [".docx", ".doc", ".pdf", "image/*"];
|
|
14
|
+
type AcceptType = (typeof acceptTypes)[number];
|
|
15
|
+
interface FileButtonProps extends Omit<ComponentProps<typeof Button>, 'onClick' | 'type'> {
|
|
16
|
+
onFileSelect?: (file: File) => void;
|
|
17
|
+
accept?: AcceptType[];
|
|
18
|
+
multiple?: boolean;
|
|
19
|
+
}
|
|
20
|
+
declare const FileButton: ({ onFileSelect, accept, multiple, ...rest }: FileButtonProps) => react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { type DocumentListAccordionFileType as D, FileButton as F };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ChangeEvent } from 'react';
|
|
3
|
+
import { ChangeHandler } from 'react-hook-form';
|
|
4
|
+
|
|
5
|
+
declare const InputTypes: readonly ["number", "text", "email", "date"];
|
|
6
|
+
type InputType = (typeof InputTypes)[number];
|
|
7
|
+
interface BaseInputProps {
|
|
8
|
+
name: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
type?: InputType;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
onBlur?: ChangeHandler;
|
|
13
|
+
onFocus?: () => void;
|
|
14
|
+
}
|
|
15
|
+
type Option<T> = {
|
|
16
|
+
label: string;
|
|
17
|
+
value: T;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
interface InputProps extends Omit<BaseInputProps, 'label'> {
|
|
22
|
+
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
value?: string | number;
|
|
25
|
+
min?: string | number;
|
|
26
|
+
max?: string | number;
|
|
27
|
+
}
|
|
28
|
+
declare const Input: {
|
|
29
|
+
({ name, onChange, ...rest }: InputProps): react_jsx_runtime.JSX.Element;
|
|
30
|
+
types: readonly ["number", "text", "email", "date"];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
interface TextareaProps extends Omit<BaseInputProps, 'label'> {
|
|
34
|
+
onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
value?: string | number;
|
|
37
|
+
rows?: number;
|
|
38
|
+
cols?: number;
|
|
39
|
+
}
|
|
40
|
+
declare const Textarea: {
|
|
41
|
+
({ name, onChange, rows, ...rest }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
42
|
+
types: readonly ["number", "text", "email", "date"];
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { type BaseInputProps as B, Input as I, type Option as O, Textarea as T };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ChangeEvent } from 'react';
|
|
3
|
+
import { ChangeHandler } from 'react-hook-form';
|
|
4
|
+
|
|
5
|
+
declare const InputTypes: readonly ["number", "text", "email", "date"];
|
|
6
|
+
type InputType = (typeof InputTypes)[number];
|
|
7
|
+
interface BaseInputProps {
|
|
8
|
+
name: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
type?: InputType;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
onBlur?: ChangeHandler;
|
|
13
|
+
onFocus?: () => void;
|
|
14
|
+
}
|
|
15
|
+
type Option<T> = {
|
|
16
|
+
label: string;
|
|
17
|
+
value: T;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
interface InputProps extends Omit<BaseInputProps, 'label'> {
|
|
22
|
+
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
value?: string | number;
|
|
25
|
+
min?: string | number;
|
|
26
|
+
max?: string | number;
|
|
27
|
+
}
|
|
28
|
+
declare const Input: {
|
|
29
|
+
({ name, onChange, ...rest }: InputProps): react_jsx_runtime.JSX.Element;
|
|
30
|
+
types: readonly ["number", "text", "email", "date"];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
interface TextareaProps extends Omit<BaseInputProps, 'label'> {
|
|
34
|
+
onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
value?: string | number;
|
|
37
|
+
rows?: number;
|
|
38
|
+
cols?: number;
|
|
39
|
+
}
|
|
40
|
+
declare const Textarea: {
|
|
41
|
+
({ name, onChange, rows, ...rest }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
42
|
+
types: readonly ["number", "text", "email", "date"];
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { type BaseInputProps as B, Input as I, type Option as O, Textarea as T };
|
package/dist/atoms.cjs
CHANGED
|
@@ -542,11 +542,12 @@ var Label3 = styled6__default.default.label`
|
|
|
542
542
|
margin-bottom: 0.5rem;
|
|
543
543
|
`;
|
|
544
544
|
var StyledInput2 = styled6__default.default.input`
|
|
545
|
+
box-sizing: border-box;
|
|
545
546
|
height: 2.75rem;
|
|
546
547
|
width: 100%;
|
|
547
548
|
border-radius: 6px;
|
|
548
549
|
border: 1px solid ${(props) => props.$borderColor || "#d1d5db"};
|
|
549
|
-
background-color: ${(props) => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.
|
|
550
|
+
background-color: ${(props) => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary};
|
|
550
551
|
padding: 0 0.75rem;
|
|
551
552
|
font-size: 15px;
|
|
552
553
|
color: ${(props) => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};
|
|
@@ -564,10 +565,11 @@ var StyledInput2 = styled6__default.default.input`
|
|
|
564
565
|
}
|
|
565
566
|
`;
|
|
566
567
|
var StyledTextArea = styled6__default.default.textarea`
|
|
568
|
+
box-sizing: border-box;
|
|
567
569
|
width: 100%;
|
|
568
570
|
border-radius: 6px;
|
|
569
571
|
border: 1px solid ${(props) => props.$borderColor || "#d1d5db"};
|
|
570
|
-
background-color: ${(props) => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.
|
|
572
|
+
background-color: ${(props) => props.$bgColor ? colors.background[props.$bgColor] : colors.background?.secondary};
|
|
571
573
|
padding: 0.75rem;
|
|
572
574
|
font-size: 15px;
|
|
573
575
|
color: ${(props) => props.$textColor ? colors.text[props.$textColor] : colors.text.primary};
|
|
@@ -590,7 +592,7 @@ var SecondaryInput = ({
|
|
|
590
592
|
labelColor = "brand",
|
|
591
593
|
inputTextColor = "primary",
|
|
592
594
|
placeholderColor = "subtle",
|
|
593
|
-
backgroundColor = "
|
|
595
|
+
backgroundColor = "secondary",
|
|
594
596
|
borderColor = "#d1d5db",
|
|
595
597
|
focusRingColor = "brand",
|
|
596
598
|
...rest
|
package/dist/atoms.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/colors.ts","../src/atoms/ArrowButton/ArrowButton.tsx","../src/tokens/radii.ts","../src/tokens/spaces.ts","../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"],"names":["styled","HiArrowUpRight","jsx","keyframes","jsxs","Fragment","variants","StyledButton","Description","Container","Label","FaCheckCircle","StyledInput","sizes","StyledText","Text","StyledContainer"],"mappings":"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","file":"atoms.cjs","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 },\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","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;","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 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 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?.light || '#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 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?.light || '#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 = 'light',\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;"]}
|
|
1
|
+
{"version":3,"sources":["../src/tokens/colors.ts","../src/atoms/ArrowButton/ArrowButton.tsx","../src/tokens/radii.ts","../src/tokens/spaces.ts","../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"],"names":["styled","HiArrowUpRight","jsx","keyframes","jsxs","Fragment","variants","StyledButton","Description","Container","Label","FaCheckCircle","StyledInput","sizes","StyledText","Text","StyledContainer"],"mappings":"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","file":"atoms.cjs","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","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;","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 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;"]}
|
package/dist/atoms.d.cts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { c as colors
|
|
3
|
-
export { B as Button
|
|
2
|
+
import { c as colors } from './Button-GGqCRrab.cjs';
|
|
3
|
+
export { B as Button } from './Button-GGqCRrab.cjs';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
5
|
+
import { B as BaseInputProps } from './Textarea-BVqF5_5c.cjs';
|
|
6
|
+
export { I as Input, T as Textarea } from './Textarea-BVqF5_5c.cjs';
|
|
5
7
|
import 'react-hook-form';
|
|
6
8
|
|
|
7
9
|
declare const variants$7: readonly ["brand", "teal", "blue"];
|
|
@@ -27,6 +29,15 @@ declare const Description: {
|
|
|
27
29
|
variants: readonly ["primary", "secondary", "subtle", "error"];
|
|
28
30
|
};
|
|
29
31
|
|
|
32
|
+
interface ExtendedButtonProps {
|
|
33
|
+
text: string;
|
|
34
|
+
onClick?: () => void;
|
|
35
|
+
arrowVariant?: 'brand' | 'teal' | 'blue';
|
|
36
|
+
textBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';
|
|
37
|
+
textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';
|
|
38
|
+
}
|
|
39
|
+
declare const ExtendedButton: ({ text, onClick, arrowVariant, textBgVariant, textVariant, }: ExtendedButtonProps) => react_jsx_runtime.JSX.Element;
|
|
40
|
+
|
|
30
41
|
type TextColor = keyof typeof colors.text;
|
|
31
42
|
type BackgroundColor$1 = keyof typeof colors.background;
|
|
32
43
|
interface FeatureItemProps {
|
|
@@ -215,4 +226,4 @@ declare const ToggleButton: {
|
|
|
215
226
|
variants: readonly ["primary", "secondary", "subtle"];
|
|
216
227
|
};
|
|
217
228
|
|
|
218
|
-
export { ArrowButton, Description, FeatureItem, FormContainer, Header, Label, Loader, Pill, RadioItem, SecondaryInput, SocialButton, TermsCheckbox, Text, TextButton, ToggleButton };
|
|
229
|
+
export { ArrowButton, Description, ExtendedButton, FeatureItem, FormContainer, Header, Label, Loader, Pill, RadioItem, SecondaryInput, SocialButton, TermsCheckbox, Text, TextButton, ToggleButton };
|
package/dist/atoms.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { c as colors
|
|
3
|
-
export { B as Button
|
|
2
|
+
import { c as colors } from './Button-GGqCRrab.js';
|
|
3
|
+
export { B as Button } from './Button-GGqCRrab.js';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
5
|
+
import { B as BaseInputProps } from './Textarea-BVqF5_5c.js';
|
|
6
|
+
export { I as Input, T as Textarea } from './Textarea-BVqF5_5c.js';
|
|
5
7
|
import 'react-hook-form';
|
|
6
8
|
|
|
7
9
|
declare const variants$7: readonly ["brand", "teal", "blue"];
|
|
@@ -27,6 +29,15 @@ declare const Description: {
|
|
|
27
29
|
variants: readonly ["primary", "secondary", "subtle", "error"];
|
|
28
30
|
};
|
|
29
31
|
|
|
32
|
+
interface ExtendedButtonProps {
|
|
33
|
+
text: string;
|
|
34
|
+
onClick?: () => void;
|
|
35
|
+
arrowVariant?: 'brand' | 'teal' | 'blue';
|
|
36
|
+
textBgVariant?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'blue' | 'brand' | 'light' | 'transparent';
|
|
37
|
+
textVariant?: 'brand' | 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'light' | 'error' | 'blue';
|
|
38
|
+
}
|
|
39
|
+
declare const ExtendedButton: ({ text, onClick, arrowVariant, textBgVariant, textVariant, }: ExtendedButtonProps) => react_jsx_runtime.JSX.Element;
|
|
40
|
+
|
|
30
41
|
type TextColor = keyof typeof colors.text;
|
|
31
42
|
type BackgroundColor$1 = keyof typeof colors.background;
|
|
32
43
|
interface FeatureItemProps {
|
|
@@ -215,4 +226,4 @@ declare const ToggleButton: {
|
|
|
215
226
|
variants: readonly ["primary", "secondary", "subtle"];
|
|
216
227
|
};
|
|
217
228
|
|
|
218
|
-
export { ArrowButton, Description, FeatureItem, FormContainer, Header, Label, Loader, Pill, RadioItem, SecondaryInput, SocialButton, TermsCheckbox, Text, TextButton, ToggleButton };
|
|
229
|
+
export { ArrowButton, Description, ExtendedButton, FeatureItem, FormContainer, Header, Label, Loader, Pill, RadioItem, SecondaryInput, SocialButton, TermsCheckbox, Text, TextButton, ToggleButton };
|