ndcloud-storybook 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Checkmark-OGDFVW3O.svg +10 -0
- package/dist/index.cjs +177 -34
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +176 -34
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/atoms/Spinner/Spinner.tsx","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/utils/colorHelpers.ts","../src/atoms/Button/Button.tsx","../src/atoms/shared/inputStyles.ts","../src/atoms/Input/Input.tsx","../src/atoms/Label/Label.tsx","../src/atoms/Textarea/Textarea.tsx","../src/atoms/Tab/Tab.tsx","../src/atoms/HelperText/HelperText.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/UserAvatar/UserAvatar.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/FormFieldTextarea/FormFieldTextarea.tsx","../src/molecules/SearchInput/SearchInput.styles.ts","../src/molecules/SearchInput/SearchInput.tsx","../src/atoms/Table/Table.tsx","../src/atoms/Table/TableHeader.tsx","../src/atoms/Table/TableCell.tsx","../src/atoms/Table/TableRow.tsx","../src/organisms/DataTable/DataTable.styles.ts","../src/organisms/DataTable/DataTable.tsx"],"names":["jsx","jsxs","keyframes","styled","Variant","Fragment","css","FormFieldWrapper","StyledInput"],"mappings":"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","file":"index.cjs","sourcesContent":["/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\n\ninterface SpinnerProps {\n size?: number;\n speed?: string;\n bgColor?: string;\n fgColor?: string;\n}\n\nconst Spinner: React.FC<SpinnerProps> = ({\n size = 20,\n speed = \"0.75s\",\n bgColor = \"#D1D5DB\",\n fgColor = \"#FFFFFF\",\n}) => (\n <Wrapper size={size} speed={speed}>\n <svg\n viewBox=\"0 0 50 50\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"status\"\n aria-label=\"loading\"\n >\n <circle cx=\"25\" cy=\"25\" r=\"20\" stroke={bgColor} strokeWidth=\"5\" />\n <path\n d=\"M45 25a20 20 0 0 1-20 20\"\n stroke={fgColor}\n strokeWidth=\"5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </Wrapper>\n);\n\nexport default Spinner;\n\nconst spin = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`;\n\nconst Wrapper = styled.div<SpinnerProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n svg {\n width: ${({ size = 20 }) => size}px;\n height: ${({ size = 20 }) => size}px;\n animation: ${spin} ${({ speed = \"0.75s\" }) => speed} linear infinite;\n transform-origin: center;\n }\n`;\n","/**\n * Color tokens for the design system\n */\n\nexport const colors = {\n // Brand colors\n baseColors: {\n // Brand\n primaryGreen: \"#7EE896\",\n primaryPurple: \"#6D65DA\",\n primaryBlue: \"#55A3BD\",\n\n // Palette\n darkBlue1: \"#12131B\",\n darkBlue2: \"#2A2B33\",\n darkBlue3: \"#02061D\",\n\n grey1: \"#3C3C44\",\n grey2: \"#45454F\",\n grey3: \"#9CA3AF\",\n grey4: \"#8E8E98\",\n grey5: \"#4B4B4B\",\n grey6: \"#353535\",\n grey7: \"#ECECED\",\n\n white1: \"#ffffff\",\n },\n\n // Hover states\n hoverColors: {\n primaryPurple: \"#5F56D6\",\n },\n\n // Background colors\n backgrounds: {\n light1: \"#F5F6F8\",\n light2: \"#EFF1F8\",\n transparent: \"transparent\",\n },\n\n // Accents (errors, warnings, etc.)\n accents: {\n error: \"#F2545B\",\n danger: \"#D25E4A\",\n warning: \"#ECAC4D\",\n },\n\n // Gradients\n gradients: {\n gradient1: \"linear-gradient(90deg, #6D65DA 0.08%, #55A3BD 68.44%)\",\n },\n} as const;\n\nexport type Colors = typeof colors;\n\n","export type Typography = typeof typography;\n\nexport type FontWeight = (typeof FONT_WEIGHTS)[keyof typeof FONT_WEIGHTS];\nexport type FontSize = (typeof FONT_SIZES)[keyof typeof FONT_SIZES];\nexport type FontSizeKey = keyof typeof FONT_SIZES;\nexport type Align = \"left\" | \"center\" | \"right\";\n/**\n * Typography tokens for the design system\n */\n\nexport const FONT_WEIGHTS = {\n light: 300,\n regular: 350,\n normal: 400,\n medium: 500,\n bold: 700,\n} as const;\n\nexport const FONT_SIZES = {\n xxs: 10,\n xs: 12,\n s: 13,\n m: 14,\n base: 16,\n lg: 18,\n xl: 20,\n \"2xl\": 24,\n} as const;\n\nexport const typography = {\n fontFamily: {\n primary: '\"ABCFavoritExtended\", sans-serif',\n },\n\n fontWeight: FONT_WEIGHTS,\n\n fontSize: FONT_SIZES,\n\n lineHeight: {\n tight: 1.2,\n normal: 1.5,\n relaxed: 1.75,\n },\n} as const;\n\nexport const FONT_SIZE_KEYS = {\n xxs: \"xxs\",\n xs: \"xs\",\n s: \"s\",\n m: \"m\",\n base: \"base\",\n lg: \"lg\",\n xl: \"xl\",\n \"2xl\": \"2xl\",\n} as const satisfies Record<string, FontSizeKey>;\n\n","/**\n * Color utility functions for the design system\n */\n\nexport type TOpacity = number; // 0-100\nexport type TColor = string; // Hex color with alpha channel\n\n/**\n * Converts a hex color to a hex color with alpha channel\n * @param hexColor - Hex color string (e.g., \"#6D65DA\" or \"6D65DA\")\n * @param opacity - Opacity value from 0-100\n * @returns Hex color with alpha channel (e.g., \"#6D65DAB3\" for 70% opacity)\n * @throws Error if hex color is invalid\n */\nexport function getOpacity(hexColor: string, opacity: TOpacity): TColor {\n const hex = hexColor.trim().replace(/^#/, \"\");\n \n if (!/^[\\da-fA-F]{6}$/.test(hex)) {\n throw new Error(`Invalid hex color: ${hexColor}`);\n }\n\n const opacityFraction = Math.round((opacity / 100) * 255);\n const alphaHex = opacityFraction.toString(16).padStart(2, \"0\");\n\n return `#${hex}${alphaHex}`;\n}\n\n","/** @jsxImportSource @emotion/react */\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport React, { ReactNode } from \"react\";\nimport Spinner from \"../Spinner/Spinner\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport type VariantName = \"primary\" | \"secondary\" | \"outline\";\n\nexport enum Variant {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Outline = \"outline\",\n}\n\ninterface VariantStyle {\n background: string;\n color?: string;\n border?: string;\n}\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n label: string;\n variant?: VariantName;\n disabled?: boolean;\n selected?: boolean;\n icon?: ReactNode;\n loading?: boolean;\n className?: string;\n}\n\nconst VARIANTS: Record<VariantName, VariantStyle> = {\n primary: {\n background: colors.gradients.gradient1,\n color: colors.baseColors.white1,\n },\n secondary: {\n background: colors.baseColors.primaryPurple,\n color: colors.baseColors.white1,\n },\n outline: {\n background: colors.backgrounds.transparent,\n border: `1px solid ${getOpacity(colors.baseColors.grey2, 10)}`,\n color: getOpacity(colors.baseColors.darkBlue3, 85),\n },\n};\n\nconst Button: React.FC<ButtonProps> = ({\n label,\n icon,\n loading,\n disabled,\n className,\n variant = \"primary\",\n selected,\n ...rest\n}) => (\n <StyledButton\n variant={variant}\n disabled={disabled || loading}\n selected={selected}\n className={className}\n {...rest}\n >\n {loading ? (\n <Spinner />\n ) : (\n <>\n {icon && <span>{icon}</span>}\n {label}\n </>\n )}\n </StyledButton>\n);\n\nexport default Button;\n\nconst StyledButton = styled.button<Omit<ButtonProps, \"label\" | \"icon\" | \"loading\">>`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 20px;\n border-radius: 100px;\n font-weight: ${typography.fontWeight.medium};\n font-family: ${typography.fontFamily.primary};\n transition: all 0.2s ease;\n width: 100%;\n max-width: 336px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px;\n }\n\n ${({ variant = \"primary\", disabled, selected }) => {\n const { background, color, border } = VARIANTS[variant];\n return css`\n background: ${background};\n border: ${selected ? `2px solid ${colors.baseColors.white1}` : border || \"none\"};\n color: ${color || colors.baseColors.white1};\n opacity: ${disabled ? 0.5 : 1};\n cursor: ${disabled ? \"not-allowed\" : \"pointer\"};\n pointer-events: ${disabled ? \"none\" : \"auto\"};\n\n &:focus-visible {\n outline: 2px solid ${colors.baseColors.primaryBlue};\n outline-offset: 2px;\n }\n `;\n }}\n`;\n","import { css } from \"@emotion/react\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport const defaultPadding = \"9px 17px\";\nexport const focusedPadding = \"8px 16px\";\n\nexport const baseInputStyles = css`\n border-radius: 10px;\n border: 1px solid ${colors.baseColors.grey7};\n padding: ${defaultPadding};\n color: ${getOpacity(colors.baseColors.darkBlue3, 80)};\n background-color: ${colors.baseColors.white1};\n font-weight: ${typography.fontWeight.regular};\n cursor: text;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n\n &::placeholder {\n color: ${colors.baseColors.grey3};\n }\n\n &:hover:not(:disabled) {\n cursor: text;\n }\n\n &:focus {\n outline: none;\n border-width: 2px;\n border-color: ${colors.baseColors.primaryPurple};\n padding: ${focusedPadding};\n }\n\n &:disabled {\n background-color: ${colors.baseColors.grey7};\n cursor: not-allowed;\n }\n`;\n\nexport const errorStyles = css`\n border-width: 2px;\n border-color: ${colors.accents.error};\n padding: ${focusedPadding};\n\n &:focus {\n border-width: 2px;\n border-color: ${colors.accents.error};\n padding: ${focusedPadding};\n }\n`;\n\nexport const warningStyles = css`\n border-width: 2px;\n border-color: ${colors.accents.warning};\n padding: ${focusedPadding};\n\n &:focus {\n border-width: 2px;\n border-color: ${colors.accents.warning};\n padding: ${focusedPadding};\n }\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { baseInputStyles, errorStyles, warningStyles } from \"../shared/inputStyles\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n error?: boolean;\n warning?: boolean;\n}\n\nconst Input: React.FC<InputProps> = ({ className, error, warning, ...rest }) => {\n return <StyledInput className={className} error={error} warning={warning} {...rest} />;\n};\n\nexport default Input;\n\nconst StyledInput = styled.input<InputProps>`\n ${baseInputStyles}\n\n ${({ error }) => error && errorStyles}\n ${({ warning }) => warning && warningStyles}\n`;","import React from \"react\";\n\nexport interface LabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n className?: string;\n htmlFor?: string;\n}\n\nconst Label: React.FC<LabelProps> = ({ className, htmlFor, children, ...rest }) => {\n return (\n <label className={className} htmlFor={htmlFor} {...rest}>\n {children}\n </label>\n );\n};\n\nexport default Label;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { baseInputStyles, errorStyles, warningStyles } from \"../shared/inputStyles\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n className?: string;\n error?: boolean;\n warning?: boolean;\n}\n\nconst Textarea: React.FC<TextareaProps> = ({ className, error, warning, ...rest }) => {\n return <StyledTextarea className={className} error={error} warning={warning} {...rest} />;\n};\n\nexport default Textarea;\n\nconst StyledTextarea = styled.textarea<TextareaProps>`\n ${baseInputStyles}\n resize: vertical;\n min-height: 80px;\n font-family: inherit;\n\n ${({ error }) => error && errorStyles}\n ${({ warning }) => warning && warningStyles}\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography, type FontSizeKey } from \"../../tokens/typography\";\n\nexport interface TabProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"fontSize\"> {\n children: React.ReactNode;\n selected?: boolean;\n fontSize?: FontSizeKey;\n className?: string;\n}\n\ninterface StyledTabProps {\n selected?: boolean;\n fontSize: FontSizeKey;\n}\n\nconst Tab: React.FC<TabProps> = ({\n children,\n selected,\n fontSize = \"m\",\n className,\n ...rest\n}) => {\n return (\n <StyledTab\n className={className}\n selected={selected}\n fontSize={fontSize}\n {...rest}\n >\n {children}\n </StyledTab>\n );\n};\n\nexport default Tab;\n\nconst StyledTab = styled.div<StyledTabProps>`\n display: inline-block;\n padding: 8px 16px;\n user-select: none;\n font-size: ${({ fontSize }) => `${typography.fontSize[fontSize]}px`};\n position: relative;\n transition: border-color 0.2s ease;\n cursor: pointer;\n\n ${({ selected }) =>\n selected &&\n `\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: 3px;\n background-color: ${colors.baseColors.primaryGreen};\n }\n `}\n`;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface HelperTextProps {\n error?: boolean;\n warning?: boolean;\n children: React.ReactNode;\n}\n\nexport const HelperText = styled.div<HelperTextProps>`\n margin-top: 4px;\n font-size: ${typography.fontSize.xs}px;\n color: ${({ error, warning }) => {\n if (error) return colors.accents.error;\n if (warning) return colors.accents.warning;\n return colors.baseColors.grey3;\n }};\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\nimport { FONT_SIZES, FONT_WEIGHTS } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport const USER_ROLES = {\n OWNER: \"owner\",\n EDITOR: \"editor\",\n VIEWER: \"viewer\",\n AUDITOR: \"auditor\",\n} as const;\n\nexport const USER_STATUS = {\n INVITED: \"invited\",\n} as const;\n\nexport interface GroupBadgeProps {\n role: string;\n status?: string;\n children: React.ReactNode;\n}\n\nexport const getBadgeColor = (role: string, status?: string): string => {\n if (status?.toLowerCase() === USER_STATUS.INVITED) {\n return colors.accents.warning;\n }\n\n const roleLower = role.toLowerCase();\n\n switch (roleLower) {\n case USER_ROLES.OWNER:\n return colors.baseColors.primaryGreen;\n\n case USER_ROLES.EDITOR:\n return colors.baseColors.primaryBlue;\n\n case USER_ROLES.VIEWER:\n case USER_ROLES.AUDITOR:\n return colors.baseColors.primaryPurple;\n\n default:\n return colors.baseColors.primaryGreen;\n }\n};\n\n/**\n * @description Badge component for displaying user roles with dynamic colors\n */\nexport function GroupBadge({ role, status, children }: GroupBadgeProps) {\n const badgeColor = getBadgeColor(role, status);\n const displayText = status?.toLowerCase() === USER_STATUS.INVITED ? \"Invited\" : children;\n\n return <Badge badgeColor={badgeColor}>{displayText}</Badge>;\n}\n\nconst Badge = styled.div<{ badgeColor: string }>`\n display: inline-flex;\n padding: 8px 28px;\n border-radius: 100px;\n background-color: ${({ badgeColor }) => getOpacity(badgeColor, 20)};\n border: 1px solid ${({ badgeColor }) => badgeColor};\n color: ${({ badgeColor }) => badgeColor};\n font-size: ${FONT_SIZES.s}px;\n font-weight: ${FONT_WEIGHTS.bold};\n text-transform: capitalize;\n`;\n\nexport default GroupBadge;\n\n","import styled from \"@emotion/styled\";\nimport { colors, FONT_SIZES, FONT_WEIGHTS } from \"../../tokens\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport interface UserAvatarProps {\n initials?: string;\n badgeColor?: string;\n onClick?: () => void;\n size?: \"small\" | \"large\" | number;\n}\n\n/**\n * @description User avatar component that displays user initials. Supports both static (for tables) and clickable (for profile) variants.\n * If no initials are provided, returns null (user doesn't exist yet, likely invited).\n */\nexport function UserAvatar({ \n initials, \n badgeColor, \n onClick, \n size = 56\n}: UserAvatarProps) {\n if (!initials || !initials.trim()) {\n return null;\n }\n\n if (onClick) {\n return (\n <ProfileAvatar \n badgeColor={badgeColor} \n size={size} \n onClick={onClick}\n >\n {initials}\n </ProfileAvatar>\n );\n }\n\n return (\n <ColourAvatar badgeColor={badgeColor} size={size}>\n {initials}\n </ColourAvatar>\n );\n}\n\nexport default UserAvatar;\n\n\n\n\nconst ColourAvatar = styled.div<{ \n badgeColor?: string; \n size: \"small\" | \"large\" | number;\n}>`\n width: ${({ size }) => \n typeof size === \"number\" ? `${size}px` : size === \"large\" ? \"56px\" : \"40px\"\n };\n height: ${({ size }) => \n typeof size === \"number\" ? `${size}px` : size === \"large\" ? \"56px\" : \"40px\"\n };\n border-radius: 50%;\n background: ${({ badgeColor }) =>\n badgeColor\n ? getOpacity(badgeColor, 20)\n : \"linear-gradient(90deg, #6d65da 0.08%, #55a3bd 68.44%)\"};\n border: ${({ badgeColor }) => (badgeColor ? `2px solid ${badgeColor}` : \"none\")};\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.darkBlue1};\n font-size: ${({ size }) => \n typeof size === \"number\" \n ? `${size * 0.325}px` \n : size === \"large\" \n ? `${FONT_SIZES.xs}px` \n : `${FONT_SIZES.s}px`\n };\n font-weight: ${FONT_WEIGHTS.normal};\n flex-shrink: 0;\n`;\n\nconst ProfileAvatar = styled(ColourAvatar)`\n color: #fff;\n background: ${colors.gradients.gradient1};\n border: none;\n border-radius: 999px;\n line-height: 138%;\n margin-bottom: 12px;\n`;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport Input, { InputProps } from \"../../atoms/Input\";\nimport Label from \"../../atoms/Label\";\nimport { HelperText } from \"../../atoms/HelperText\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface FormFieldProps extends Omit<InputProps, \"id\" | \"onInput\" | \"error\" | \"warning\"> {\n id: string;\n label: string;\n helperText?: string;\n error?: string;\n warning?: string;\n onInput?: (value: string) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst FormField: React.FC<FormFieldProps> = ({\n id,\n label,\n helperText,\n error,\n warning,\n onInput,\n onChange,\n className,\n ...inputProps\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onInput) {\n onInput(event.target.value);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const displayText = error || warning || helperText;\n const hasError = !!error;\n const hasWarning = !!warning && !hasError;\n\n return (\n <FormFieldWrapper className={className}>\n <Label htmlFor={id}>{label}</Label>\n <Input\n id={id}\n onChange={handleChange}\n error={hasError}\n warning={hasWarning}\n {...inputProps}\n />\n {displayText && (\n <HelperText error={hasError} warning={hasWarning}>\n {displayText}\n </HelperText>\n )}\n </FormFieldWrapper>\n );\n};\n\nconst FormFieldWrapper = styled.div`\n display: flex;\n flex-direction: column;\n \n label {\n margin-bottom: 8px;\n color: ${colors.baseColors.darkBlue3};\n font-size: ${typography.fontSize.m}px;\n }\n`;\n\nexport default FormField;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport Textarea, { TextareaProps } from \"../../atoms/Textarea\";\nimport Label from \"../../atoms/Label\";\nimport { HelperText } from \"../../atoms/HelperText\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface FormFieldTextareaProps extends Omit<TextareaProps, \"id\" | \"onInput\" | \"error\" | \"warning\"> {\n id: string;\n label: string;\n helperText?: string;\n error?: string;\n warning?: string;\n onInput?: (value: string) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nconst FormFieldTextarea: React.FC<FormFieldTextareaProps> = ({\n id,\n label,\n helperText,\n error,\n warning,\n onInput,\n onChange,\n className,\n ...textareaProps\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onInput) {\n onInput(event.target.value);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const displayText = error || warning || helperText;\n const hasError = !!error;\n const hasWarning = !!warning && !hasError;\n\n return (\n <FormFieldWrapper className={className}>\n <Label htmlFor={id}>{label}</Label>\n <Textarea\n id={id}\n onChange={handleChange}\n error={hasError}\n warning={hasWarning}\n {...textareaProps}\n />\n {displayText && (\n <HelperText error={hasError} warning={hasWarning}>\n {displayText}\n </HelperText>\n )}\n </FormFieldWrapper>\n );\n};\n\nconst FormFieldWrapper = styled.div`\n display: flex;\n flex-direction: column;\n \n label {\n margin-bottom: 8px;\n color: ${colors.baseColors.darkBlue3};\n font-size: ${typography.fontSize.m}px;\n }\n`;\n\nexport default FormFieldTextarea;\n\n","import styled from \"@emotion/styled\";\nimport Input from \"../../atoms/Input\";\nimport { colors } from \"../../tokens/colors\";\nimport { FontSizeKey, typography } from \"../../tokens/typography\";\n\nexport const SearchContainer = styled.div<{ width?: string | number }>`\n width: ${({ width }) => (typeof width === \"number\" ? `${width}px` : width || \"208px\")};\n`;\n\nexport const InputWrapper = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const IconWrapper = styled.div`\n position: absolute;\n left: 17px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.grey3};\n pointer-events: none;\n z-index: 2;\n`;\n\nexport const StyledInput = styled(Input)<{ hasClearButton?: boolean; hasIcon?: boolean; fontSize?: FontSizeKey }>`\n width: 100%;\n padding-right: ${({ hasClearButton }) => (hasClearButton ? \"32px\" : \"17px\")};\n padding-left: ${({ hasIcon }) => (hasIcon ? \"44px\" : \"17px\")};\n font-size: ${({ fontSize = \"s\" }) => `${typography.fontSize[fontSize]}px`};\n position: relative;\n z-index: 1;\n\n &:focus {\n padding-left: ${({ hasIcon }) => (hasIcon ? \"43px\" : \"16px\")};\n }\n`;\n\nexport const ClearButton = styled.button`\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.grey3};\n transition: color 0.2s ease;\n z-index: 3;\n\n &:hover {\n color: ${colors.baseColors.grey1};\n }\n\n &:focus {\n outline: 2px solid ${colors.baseColors.primaryPurple};\n outline-offset: 2px;\n border-radius: 4px;\n }\n`;\n\nexport const ClearIcon = styled.svg`\n width: 16px;\n height: 16px;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n`;\n\n","import { ChangeEvent, ReactNode } from \"react\";\nimport {\n SearchContainer,\n InputWrapper,\n IconWrapper,\n StyledInput,\n ClearButton,\n ClearIcon,\n} from \"./SearchInput.styles\";\nimport { FontSizeKey } from \"../../tokens/typography\";\n\nexport interface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n showClearButton?: boolean;\n icon?: ReactNode;\n width?: string | number;\n fontSize?: FontSizeKey;\n}\n\n/**\n * @description Shared search input component for IAM views\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search...\",\n showClearButton = false,\n icon,\n width = \"208px\",\n fontSize = \"s\",\n}: SearchInputProps) {\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n const hasClearButton = showClearButton && !!value;\n const hasIcon = !!icon;\n\n return (\n <SearchContainer width={width}>\n <InputWrapper>\n {hasIcon && <IconWrapper>{icon}</IconWrapper>}\n <StyledInput\n type=\"text\"\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n autoComplete=\"off\"\n hasClearButton={hasClearButton}\n hasIcon={hasIcon}\n fontSize={fontSize}\n />\n {hasClearButton && (\n <ClearButton onClick={handleClear} type=\"button\" aria-label=\"Clear search\">\n <ClearIcon viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </ClearIcon>\n </ClearButton>\n )}\n </InputWrapper>\n </SearchContainer>\n );\n}\n\nexport default SearchInput;\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n children: React.ReactNode;\n}\n\nexport function TableElement({ children, ...rest }: TableProps) {\n return <StyledTable {...rest}>{children}</StyledTable>;\n}\n\nexport { TableElement as Table };\nexport default TableElement;\n\nconst StyledTable = styled.table`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0 4px;\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { FONT_SIZES, FONT_WEIGHTS } from \"../../tokens/typography\";\n\nexport interface TableHeaderProps\n extends React.ThHTMLAttributes<HTMLTableHeaderCellElement> {\n alignRight?: boolean;\n children: React.ReactNode;\n}\n\nexport function TableHeader({ alignRight, children, ...rest }: TableHeaderProps) {\n return (\n <StyledTableHeader alignRight={alignRight} {...rest}>\n {children}\n </StyledTableHeader>\n );\n}\n\nexport default TableHeader;\n\nconst StyledTableHeader = styled.th<{ alignRight?: boolean }>`\n padding-bottom: 12px;\n text-align: ${({ alignRight }) => (alignRight ? \"right\" : \"left\")};\n font-size: ${FONT_SIZES.xs}px;\n font-weight: ${FONT_WEIGHTS.bold};\n padding-left: ${({ alignRight }) => (alignRight ? \"0\" : \"24px\")};\n padding-right: ${({ alignRight }) => (alignRight ? \"60px\" : \"0\")};\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\n\nexport interface TableCellProps\n extends React.TdHTMLAttributes<HTMLTableDataCellElement> {\n children: React.ReactNode;\n colSpan?: number;\n}\n\nexport function TableCell({ children, colSpan, ...rest }: TableCellProps) {\n return (\n <StyledTableCell colSpan={colSpan} {...rest}>\n {children}\n </StyledTableCell>\n );\n}\n\nexport default TableCell;\n\nconst StyledTableCell = styled.td`\n\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\n\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\n children: React.ReactNode;\n}\n\nexport interface TableRowWrapperProps {\n children: React.ReactNode;\n}\n\nexport function TableRow({ children, ...rest }: TableRowProps) {\n return <StyledTableRow {...rest}>{children}</StyledTableRow>;\n}\n\nexport default TableRow;\n\nconst StyledTableRow = styled.tr`\n /* Base row styling */\n`;\n\nexport const TableRowWrapper = styled.div`\n border-radius: 6px;\n border: 1px solid ${colors.baseColors.grey7};\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 24px;\n`;\n\n","import styled from \"@emotion/styled\";\nimport { colors, FONT_SIZES } from \"../../tokens\";\nimport { TableCell } from \"../../atoms/Table\";\n\nexport const CheckboxWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const ActionsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\n\nexport const AlignedTableCell = styled(TableCell)<{ alignRight?: boolean; isFirst?: boolean; isLast?: boolean }>`\n padding-top: 12px;\n padding-bottom: 12px;\n padding-left: ${({ alignRight }) => (alignRight ? \"0\" : \"24px\")};\n padding-right: ${({ alignRight }) => (alignRight ? \"60px\" : \"0\")};\n text-align: ${({ alignRight }) => (alignRight ? \"right\" : \"left\")};\n border: 1px solid ${colors.baseColors.grey7};\n border-right: ${({ isLast }) => (isLast ? `1px solid ${colors.baseColors.grey7}` : \"none\")};\n border-left: ${({ isFirst }) => (isFirst ? `1px solid ${colors.baseColors.grey7}` : \"none\")};\n ${({ isFirst }) => isFirst && `border-top-left-radius: 6px; border-bottom-left-radius: 6px;`}\n ${({ isLast }) => isLast && `border-top-right-radius: 6px; border-bottom-right-radius: 6px;`}\n`;\n\nexport const CellContent = styled.div<{ alignRight?: boolean; isLast?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: ${({ alignRight }) => (alignRight ? \"flex-end\" : \"flex-start\")};\n flex: ${({ alignRight }) => (alignRight ? \"0 0 auto\" : \"1\")};\n min-width: 0;\n`;\n\nexport const TableWrapper = styled.div`\n margin-top: 32px;\n`;\n\nexport const EmptyState = styled.div`\n padding: 24px;\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const EmptyHeader = styled.div`\n font-size: 26px;\n font-weight: 700;\n color: ${colors.baseColors.darkBlue1};\n`;\n\nexport const EmptySubheader = styled.div`\n font-size: 12px;\n font-weight: 500;\n color: ${colors.baseColors.grey3};\n`;\n\n","import React from \"react\";\nimport { TableElement, TableHeader, TableRow, TableCell, TableRowWrapper } from \"../../atoms/Table\";\nimport {\n CheckboxWrapper,\n ActionsWrapper,\n AlignedTableCell,\n CellContent,\n TableWrapper,\n EmptyState,\n EmptyHeader,\n EmptySubheader,\n} from \"./DataTable.styles\";\n\nexport interface TableColumn<T = any> {\n label: string;\n alignRight?: boolean;\n renderCell?: (row: T, index: number) => React.ReactNode;\n accessor?: keyof T | ((row: T) => React.ReactNode);\n}\n\nexport type TableRowLayout = \"aligned\" | \"spaced\";\n\nexport interface TableProps<T = any> {\n data: T[];\n columns: TableColumn<T>[];\n getRowKey?: (row: T, index: number) => string | number;\n emptyMessage?: string;\n emptyHeader?: string;\n emptySubheader?: string;\n showCheckboxes?: boolean;\n onSelectAll?: (selected: boolean) => void;\n onSelectRow?: (row: T, selected: boolean) => void;\n selectedRows?: Set<string | number>;\n renderActions?: (row: T, index: number) => React.ReactNode;\n rowLayout?: TableRowLayout;\n}\n\n/**\n * Helper function to get cell content from column definition\n */\nfunction getCellContent<T>(\n column: TableColumn<T>,\n row: T,\n rowIndex: number\n): React.ReactNode {\n if (column.renderCell) {\n return column.renderCell(row, rowIndex);\n }\n if (column.accessor) {\n if (typeof column.accessor === \"function\") {\n return column.accessor(row);\n }\n return String(row[column.accessor] ?? \"\");\n }\n return null;\n}\n\n/**\n * Calculate total number of columns including checkboxes and actions\n */\nfunction getTotalColumns<T>(\n columns: TableColumn<T>[],\n showCheckboxes: boolean,\n renderActions?: (row: T, index: number) => React.ReactNode\n): number {\n return columns.length + (showCheckboxes ? 1 : 0) + (renderActions ? 1 : 0);\n}\n\n/**\n * @description Generic data table component with dynamic columns and cell rendering\n */\nexport function Table<T = any>({\n data,\n columns,\n getRowKey,\n emptyMessage,\n emptyHeader,\n emptySubheader,\n showCheckboxes = false,\n onSelectAll,\n onSelectRow,\n selectedRows = new Set(),\n renderActions,\n rowLayout = \"aligned\",\n}: TableProps<T>) {\n const getKey = getRowKey || ((row: T, index: number) => index);\n const allSelected = data.length > 0 && data.every((row, idx) => selectedRows.has(getKey(row, idx)));\n const someSelected = data.some((row, idx) => selectedRows.has(getKey(row, idx)));\n const totalColumns = getTotalColumns(columns, showCheckboxes, renderActions);\n\n const handleSelectAll = (e: React.ChangeEvent<HTMLInputElement>) => {\n onSelectAll?.(e.target.checked);\n };\n\n const handleSelectRow = (row: T, e: React.ChangeEvent<HTMLInputElement>) => {\n onSelectRow?.(row, e.target.checked);\n };\n\n return (\n <TableWrapper>\n <TableElement>\n <thead>\n <TableRow>\n {showCheckboxes && (\n <TableHeader>\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(input) => {\n if (input) input.indeterminate = someSelected && !allSelected;\n }}\n onChange={handleSelectAll}\n aria-label=\"Select all rows\"\n />\n </TableHeader>\n )}\n {columns.map((column, index) => (\n <TableHeader key={index} alignRight={column.alignRight}>\n {column.label}\n </TableHeader>\n ))}\n {renderActions && <TableHeader alignRight={true}> </TableHeader>}\n </TableRow>\n </thead>\n <tbody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={totalColumns}>\n <EmptyState>\n {emptyHeader ? (\n <>\n <EmptyHeader>{emptyHeader}</EmptyHeader>\n {emptySubheader && <EmptySubheader>{emptySubheader}</EmptySubheader>}\n </>\n ) : (\n <div>{emptyMessage || \"No data found\"}</div>\n )}\n </EmptyState>\n </TableCell>\n </TableRow>\n ) : (\n data.map((row, rowIndex) => {\n const rowKey = getKey(row, rowIndex);\n const isSelected = selectedRows.has(rowKey);\n\n if (rowLayout === \"spaced\") {\n return (\n <TableRow key={rowKey}>\n <TableCell colSpan={totalColumns}>\n <TableRowWrapper>\n {showCheckboxes && (\n <CheckboxWrapper>\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={(e) => handleSelectRow(row, e)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </CheckboxWrapper>\n )}\n {columns.map((column, colIndex) => {\n const cellContent = getCellContent(column, row, rowIndex);\n const isLast = colIndex === columns.length - 1 && !renderActions;\n\n return (\n <CellContent key={colIndex} alignRight={column.alignRight} isLast={isLast}>\n {cellContent}\n </CellContent>\n );\n })}\n {renderActions && (\n <ActionsWrapper>\n {renderActions(row, rowIndex)}\n </ActionsWrapper>\n )}\n </TableRowWrapper>\n </TableCell>\n </TableRow>\n );\n } else {\n return (\n <TableRow key={rowKey}>\n {showCheckboxes && (\n <AlignedTableCell isFirst={true} isLast={totalColumns === 1}>\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={(e) => handleSelectRow(row, e)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </AlignedTableCell>\n )}\n {columns.map((column, colIndex) => {\n const cellContent = getCellContent(column, row, rowIndex);\n const isFirst = !showCheckboxes && colIndex === 0;\n const isLast = !renderActions && colIndex === columns.length - 1;\n\n return (\n <AlignedTableCell key={colIndex} alignRight={column.alignRight} isFirst={isFirst} isLast={isLast}>\n {cellContent}\n </AlignedTableCell>\n );\n })}\n {renderActions && (\n <AlignedTableCell alignRight={true} isLast={true}>\n {renderActions(row, rowIndex)}\n </AlignedTableCell>\n )}\n </TableRow>\n );\n }\n })\n )}\n </tbody>\n </TableElement>\n </TableWrapper>\n );\n}\n\nexport default Table;\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/atoms/Spinner/Spinner.tsx","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/utils/colorHelpers.ts","../src/atoms/Button/Button.tsx","../src/atoms/shared/inputStyles.ts","../src/atoms/Input/Input.tsx","../src/internalUtils/useDarkMode.ts","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/Label/Label.tsx","../src/atoms/Textarea/Textarea.tsx","../src/atoms/Tab/Tab.tsx","../src/atoms/HelperText/HelperText.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/UserAvatar/UserAvatar.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/FormFieldTextarea/FormFieldTextarea.tsx","../src/molecules/SearchInput/SearchInput.styles.ts","../src/molecules/SearchInput/SearchInput.tsx","../src/atoms/Table/Table.tsx","../src/atoms/Table/TableHeader.tsx","../src/atoms/Table/TableCell.tsx","../src/atoms/Table/TableRow.tsx","../src/organisms/DataTable/DataTable.styles.ts","../src/organisms/DataTable/DataTable.tsx"],"names":["jsx","jsxs","keyframes","styled","Variant","Fragment","css","useState","useEffect","FormFieldWrapper","StyledInput","CheckboxWrapper"],"mappings":"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","file":"index.cjs","sourcesContent":["/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\n\ninterface SpinnerProps {\n size?: number;\n speed?: string;\n bgColor?: string;\n fgColor?: string;\n}\n\nconst Spinner: React.FC<SpinnerProps> = ({\n size = 20,\n speed = \"0.75s\",\n bgColor = \"#D1D5DB\",\n fgColor = \"#FFFFFF\",\n}) => (\n <Wrapper size={size} speed={speed}>\n <svg\n viewBox=\"0 0 50 50\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"status\"\n aria-label=\"loading\"\n >\n <circle cx=\"25\" cy=\"25\" r=\"20\" stroke={bgColor} strokeWidth=\"5\" />\n <path\n d=\"M45 25a20 20 0 0 1-20 20\"\n stroke={fgColor}\n strokeWidth=\"5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </Wrapper>\n);\n\nexport default Spinner;\n\nconst spin = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`;\n\nconst Wrapper = styled.div<SpinnerProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n svg {\n width: ${({ size = 20 }) => size}px;\n height: ${({ size = 20 }) => size}px;\n animation: ${spin} ${({ speed = \"0.75s\" }) => speed} linear infinite;\n transform-origin: center;\n }\n`;\n","/**\n * Color tokens for the design system\n */\n\nexport const colors = {\n // Brand colors\n baseColors: {\n // Brand\n primaryGreen: \"#7EE896\",\n primaryPurple: \"#6D65DA\",\n primaryBlue: \"#55A3BD\",\n\n // Palette\n darkBlue1: \"#12131B\",\n darkBlue2: \"#2A2B33\",\n darkBlue3: \"#02061D\",\n\n grey1: \"#3C3C44\",\n grey2: \"#45454F\",\n grey3: \"#9CA3AF\",\n grey4: \"#8E8E98\",\n grey5: \"#4B4B4B\",\n grey6: \"#353535\",\n grey7: \"#ECECED\",\n\n white1: \"#ffffff\",\n },\n\n // Hover states\n hoverColors: {\n primaryPurple: \"#5F56D6\",\n },\n\n // Background colors\n backgrounds: {\n light1: \"#F5F6F8\",\n light2: \"#EFF1F8\",\n transparent: \"transparent\",\n },\n\n // Accents (errors, warnings, etc.)\n accents: {\n error: \"#F2545B\",\n danger: \"#D25E4A\",\n warning: \"#ECAC4D\",\n },\n\n // Gradients\n gradients: {\n gradient1: \"linear-gradient(90deg, #6D65DA 0.08%, #55A3BD 68.44%)\",\n },\n} as const;\n\nexport type Colors = typeof colors;\n\n","export type Typography = typeof typography;\n\nexport type FontWeight = (typeof FONT_WEIGHTS)[keyof typeof FONT_WEIGHTS];\nexport type FontSize = (typeof FONT_SIZES)[keyof typeof FONT_SIZES];\nexport type FontSizeKey = keyof typeof FONT_SIZES;\nexport type Align = \"left\" | \"center\" | \"right\";\n/**\n * Typography tokens for the design system\n */\n\nexport const FONT_WEIGHTS = {\n light: 300,\n regular: 350,\n normal: 400,\n medium: 500,\n bold: 700,\n} as const;\n\nexport const FONT_SIZES = {\n xxs: 10,\n xs: 12,\n s: 13,\n m: 14,\n base: 16,\n lg: 18,\n xl: 20,\n \"2xl\": 24,\n} as const;\n\nexport const typography = {\n fontFamily: {\n primary: '\"ABCFavoritExtended\", sans-serif',\n },\n\n fontWeight: FONT_WEIGHTS,\n\n fontSize: FONT_SIZES,\n\n lineHeight: {\n tight: 1.2,\n normal: 1.5,\n relaxed: 1.75,\n },\n} as const;\n\nexport const FONT_SIZE_KEYS = {\n xxs: \"xxs\",\n xs: \"xs\",\n s: \"s\",\n m: \"m\",\n base: \"base\",\n lg: \"lg\",\n xl: \"xl\",\n \"2xl\": \"2xl\",\n} as const satisfies Record<string, FontSizeKey>;\n\n","/**\n * Color utility functions for the design system\n */\n\nexport type TOpacity = number; // 0-100\nexport type TColor = string; // Hex color with alpha channel\n\n/**\n * Converts a hex color to a hex color with alpha channel\n * @param hexColor - Hex color string (e.g., \"#6D65DA\" or \"6D65DA\")\n * @param opacity - Opacity value from 0-100\n * @returns Hex color with alpha channel (e.g., \"#6D65DAB3\" for 70% opacity)\n * @throws Error if hex color is invalid\n */\nexport function getOpacity(hexColor: string, opacity: TOpacity): TColor {\n const hex = hexColor.trim().replace(/^#/, \"\");\n \n if (!/^[\\da-fA-F]{6}$/.test(hex)) {\n throw new Error(`Invalid hex color: ${hexColor}`);\n }\n\n const opacityFraction = Math.round((opacity / 100) * 255);\n const alphaHex = opacityFraction.toString(16).padStart(2, \"0\");\n\n return `#${hex}${alphaHex}`;\n}\n\n","/** @jsxImportSource @emotion/react */\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport React, { ReactNode } from \"react\";\nimport Spinner from \"../Spinner/Spinner\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport type VariantName = \"primary\" | \"secondary\" | \"outline\";\n\nexport enum Variant {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Outline = \"outline\",\n}\n\ninterface VariantStyle {\n background: string;\n color?: string;\n border?: string;\n}\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n label: string;\n variant?: VariantName;\n disabled?: boolean;\n selected?: boolean;\n icon?: ReactNode;\n loading?: boolean;\n className?: string;\n}\n\nconst VARIANTS: Record<VariantName, VariantStyle> = {\n primary: {\n background: colors.gradients.gradient1,\n color: colors.baseColors.white1,\n },\n secondary: {\n background: colors.baseColors.primaryPurple,\n color: colors.baseColors.white1,\n },\n outline: {\n background: colors.backgrounds.transparent,\n border: `1px solid ${getOpacity(colors.baseColors.grey2, 10)}`,\n color: getOpacity(colors.baseColors.darkBlue3, 85),\n },\n};\n\nconst Button: React.FC<ButtonProps> = ({\n label,\n icon,\n loading,\n disabled,\n className,\n variant = \"primary\",\n selected,\n ...rest\n}) => (\n <StyledButton\n variant={variant}\n disabled={disabled || loading}\n selected={selected}\n className={className}\n {...rest}\n >\n {loading ? (\n <Spinner />\n ) : (\n <>\n {icon && <span>{icon}</span>}\n {label}\n </>\n )}\n </StyledButton>\n);\n\nexport default Button;\n\nconst StyledButton = styled.button<Omit<ButtonProps, \"label\" | \"icon\" | \"loading\">>`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 20px;\n border-radius: 100px;\n font-weight: ${typography.fontWeight.medium};\n font-family: ${typography.fontFamily.primary};\n transition: all 0.2s ease;\n width: 100%;\n max-width: 336px;\n\n span {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 8px;\n }\n\n ${({ variant = \"primary\", disabled, selected }) => {\n const { background, color, border } = VARIANTS[variant];\n return css`\n background: ${background};\n border: ${selected ? `2px solid ${colors.baseColors.white1}` : border || \"none\"};\n color: ${color || colors.baseColors.white1};\n opacity: ${disabled ? 0.5 : 1};\n cursor: ${disabled ? \"not-allowed\" : \"pointer\"};\n pointer-events: ${disabled ? \"none\" : \"auto\"};\n\n &:focus-visible {\n outline: 2px solid ${colors.baseColors.primaryBlue};\n outline-offset: 2px;\n }\n `;\n }}\n`;\n","import { css } from \"@emotion/react\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport const defaultPadding = \"9px 17px\";\nexport const focusedPadding = \"8px 16px\";\n\nexport const baseInputStyles = css`\n border-radius: 10px;\n border: 1px solid ${colors.baseColors.grey7};\n padding: ${defaultPadding};\n color: ${getOpacity(colors.baseColors.darkBlue3, 80)};\n background-color: ${colors.baseColors.white1};\n font-weight: ${typography.fontWeight.regular};\n cursor: text;\n transition: border-color 0.2s ease;\n box-sizing: border-box;\n\n &::placeholder {\n color: ${colors.baseColors.grey3};\n }\n\n &:hover:not(:disabled) {\n cursor: text;\n }\n\n &:focus {\n outline: none;\n border-width: 2px;\n border-color: ${colors.baseColors.primaryPurple};\n padding: ${focusedPadding};\n }\n\n &:disabled {\n background-color: ${colors.baseColors.grey7};\n cursor: not-allowed;\n }\n`;\n\nexport const errorStyles = css`\n border-width: 2px;\n border-color: ${colors.accents.error};\n padding: ${focusedPadding};\n\n &:focus {\n border-width: 2px;\n border-color: ${colors.accents.error};\n padding: ${focusedPadding};\n }\n`;\n\nexport const warningStyles = css`\n border-width: 2px;\n border-color: ${colors.accents.warning};\n padding: ${focusedPadding};\n\n &:focus {\n border-width: 2px;\n border-color: ${colors.accents.warning};\n padding: ${focusedPadding};\n }\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { baseInputStyles, errorStyles, warningStyles } from \"../shared/inputStyles\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n error?: boolean;\n warning?: boolean;\n}\n\nconst Input: React.FC<InputProps> = ({ className, error, warning, ...rest }) => {\n return <StyledInput className={className} error={error} warning={warning} {...rest} />;\n};\n\nexport default Input;\n\nconst StyledInput = styled.input<InputProps>`\n ${baseInputStyles}\n\n ${({ error }) => error && errorStyles}\n ${({ warning }) => warning && warningStyles}\n`;","import { useEffect, useState } from 'react';\n\n/**\n * Hook to detect dark mode from Storybook's dark mode addon\n * Checks URL parameters for dark mode indicators\n * Internal Storybook-only utility - not exported to frontend\n */\nexport const useDarkMode = (): boolean => {\n const checkDarkMode = () => {\n if (typeof window === 'undefined') return false;\n const globals = new URLSearchParams(window.location.search).get('globals');\n return !!(globals?.includes('backgrounds.value:dark') || window.location.href.includes('backgrounds.value:dark'));\n };\n\n const [isDark, setIsDark] = useState(checkDarkMode);\n\n useEffect(() => {\n const handlePopState = () => setIsDark(checkDarkMode());\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, []);\n\n return isDark;\n};\n\n","/** @jsxImportSource @emotion/react */\nimport { css } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\nimport { useDarkMode } from \"../../internalUtils/useDarkMode\";\nimport CheckmarkIcon from \"../../assets/icons/Checkmark.svg?react\";\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n className?: string;\n danger?: boolean;\n darkMode?: boolean;\n size?: number;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n className,\n danger,\n darkMode: darkModeProp,\n checked,\n size = 20,\n disabled,\n ...rest\n}) => {\n const autoDarkMode = useDarkMode();\n const darkMode: boolean = darkModeProp !== undefined ? darkModeProp : autoDarkMode;\n\n return (\n <CheckboxWrapper className={className} danger={danger} darkMode={darkMode} size={size}>\n <StyledCheckbox\n type=\"checkbox\"\n checked={checked}\n danger={danger}\n disabled={disabled}\n {...rest}\n />\n <CheckmarkWrapper \n checked={checked} \n danger={danger} \n darkMode={darkMode}\n disabled={disabled}\n size={size}\n >\n <CheckmarkIcon />\n </CheckmarkWrapper>\n </CheckboxWrapper>\n );\n};\n\nexport default Checkbox;\n\nconst CheckboxWrapper = styled.label<{ danger?: boolean; darkMode?: boolean; size: number }>`\n position: relative;\n display: inline-block;\n cursor: pointer;\n\n &:has(input:disabled) {\n cursor: not-allowed;\n }\n\n &:hover input:not(:checked):not(:disabled) + span {\n ${({ danger, darkMode }) =>\n danger\n ? css`\n border-color: ${colors.accents.danger};\n `\n : darkMode\n ? css`\n background-color: ${colors.baseColors.grey2};\n border-color: ${colors.baseColors.grey4};\n `\n : css`\n background-color: ${getOpacity(colors.baseColors.grey7, 40)};\n border-color: ${colors.baseColors.grey3};\n `}\n }\n`;\n\nconst StyledCheckbox = styled.input<{ danger?: boolean }>`\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n\n &:focus-visible + * {\n outline: 2px solid ${colors.baseColors.primaryBlue};\n outline-offset: 2px;\n border-radius: 4px;\n }\n\n &:disabled + * {\n opacity: 0.5;\n cursor: not-allowed;\n }\n`;\n\nconst CheckmarkWrapper = styled.span<{ \n checked?: boolean; \n danger?: boolean; \n darkMode?: boolean;\n disabled?: boolean;\n size: number \n}>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${({ size }) => size}px;\n height: ${({ size }) => size}px;\n box-sizing: border-box;\n border-radius: 4px;\n transition: all 0.2s ease;\n color: transparent;\n\n svg {\n width: 60%;\n height: 60%;\n }\n\n ${({ checked, danger, darkMode, disabled }) => {\n // Disabled state\n if (disabled) {\n return darkMode\n ? css`\n background-color: ${colors.baseColors.grey1};\n border: 1px solid ${colors.baseColors.grey4};\n `\n : css`\n background-color: ${colors.baseColors.grey7};\n border: 1px solid ${colors.baseColors.grey7};\n `;\n }\n\n // Checked state (same for both light and dark)\n if (checked) {\n const bgColor = danger ? colors.accents.danger : colors.baseColors.primaryPurple;\n return css`\n background-color: ${bgColor};\n border: 1px solid ${bgColor};\n color: ${colors.baseColors.white1};\n `;\n }\n\n // Error/Danger unchecked state (same for both)\n if (danger) {\n return css`\n background-color: ${getOpacity(colors.accents.danger, 10)};\n border: 1px solid ${colors.accents.danger};\n `;\n }\n\n // Default unchecked state\n return darkMode\n ? css`\n background-color: ${colors.baseColors.grey1};\n border: 1px solid ${colors.baseColors.grey4};\n `\n : css`\n background-color: ${colors.baseColors.white1};\n border: 1px solid ${colors.baseColors.grey7};\n `;\n }}\n`;\n\n","import React from \"react\";\n\nexport interface LabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n className?: string;\n htmlFor?: string;\n}\n\nconst Label: React.FC<LabelProps> = ({ className, htmlFor, children, ...rest }) => {\n return (\n <label className={className} htmlFor={htmlFor} {...rest}>\n {children}\n </label>\n );\n};\n\nexport default Label;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { baseInputStyles, errorStyles, warningStyles } from \"../shared/inputStyles\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n className?: string;\n error?: boolean;\n warning?: boolean;\n}\n\nconst Textarea: React.FC<TextareaProps> = ({ className, error, warning, ...rest }) => {\n return <StyledTextarea className={className} error={error} warning={warning} {...rest} />;\n};\n\nexport default Textarea;\n\nconst StyledTextarea = styled.textarea<TextareaProps>`\n ${baseInputStyles}\n resize: vertical;\n min-height: 80px;\n font-family: inherit;\n\n ${({ error }) => error && errorStyles}\n ${({ warning }) => warning && warningStyles}\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography, type FontSizeKey } from \"../../tokens/typography\";\n\nexport interface TabProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"fontSize\"> {\n children: React.ReactNode;\n selected?: boolean;\n fontSize?: FontSizeKey;\n className?: string;\n}\n\ninterface StyledTabProps {\n selected?: boolean;\n fontSize: FontSizeKey;\n}\n\nconst Tab: React.FC<TabProps> = ({\n children,\n selected,\n fontSize = \"m\",\n className,\n ...rest\n}) => {\n return (\n <StyledTab\n className={className}\n selected={selected}\n fontSize={fontSize}\n {...rest}\n >\n {children}\n </StyledTab>\n );\n};\n\nexport default Tab;\n\nconst StyledTab = styled.div<StyledTabProps>`\n display: inline-block;\n padding: 8px 16px;\n user-select: none;\n font-size: ${({ fontSize }) => `${typography.fontSize[fontSize]}px`};\n position: relative;\n transition: border-color 0.2s ease;\n cursor: pointer;\n\n ${({ selected }) =>\n selected &&\n `\n &::after {\n content: '';\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: 3px;\n background-color: ${colors.baseColors.primaryGreen};\n }\n `}\n`;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface HelperTextProps {\n error?: boolean;\n warning?: boolean;\n children: React.ReactNode;\n}\n\nexport const HelperText = styled.div<HelperTextProps>`\n margin-top: 4px;\n font-size: ${typography.fontSize.xs}px;\n color: ${({ error, warning }) => {\n if (error) return colors.accents.error;\n if (warning) return colors.accents.warning;\n return colors.baseColors.grey3;\n }};\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\nimport { FONT_SIZES, FONT_WEIGHTS } from \"../../tokens/typography\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport const USER_ROLES = {\n OWNER: \"owner\",\n EDITOR: \"editor\",\n VIEWER: \"viewer\",\n AUDITOR: \"auditor\",\n} as const;\n\nexport const USER_STATUS = {\n INVITED: \"invited\",\n} as const;\n\nexport interface GroupBadgeProps {\n role: string;\n status?: string;\n children: React.ReactNode;\n}\n\nexport const getBadgeColor = (role: string, status?: string): string => {\n if (status?.toLowerCase() === USER_STATUS.INVITED) {\n return colors.accents.warning;\n }\n\n const roleLower = role.toLowerCase();\n\n switch (roleLower) {\n case USER_ROLES.OWNER:\n return colors.baseColors.primaryGreen;\n\n case USER_ROLES.EDITOR:\n return colors.baseColors.primaryBlue;\n\n case USER_ROLES.VIEWER:\n case USER_ROLES.AUDITOR:\n return colors.baseColors.primaryPurple;\n\n default:\n return colors.baseColors.primaryGreen;\n }\n};\n\n/**\n * @description Badge component for displaying user roles with dynamic colors\n */\nexport function GroupBadge({ role, status, children }: GroupBadgeProps) {\n const badgeColor = getBadgeColor(role, status);\n const displayText = status?.toLowerCase() === USER_STATUS.INVITED ? \"Invited\" : children;\n\n return <Badge badgeColor={badgeColor}>{displayText}</Badge>;\n}\n\nconst Badge = styled.div<{ badgeColor: string }>`\n display: inline-flex;\n padding: 8px 28px;\n border-radius: 100px;\n background-color: ${({ badgeColor }) => getOpacity(badgeColor, 20)};\n border: 1px solid ${({ badgeColor }) => badgeColor};\n color: ${({ badgeColor }) => badgeColor};\n font-size: ${FONT_SIZES.s}px;\n font-weight: ${FONT_WEIGHTS.bold};\n text-transform: capitalize;\n`;\n\nexport default GroupBadge;\n\n","import styled from \"@emotion/styled\";\nimport { colors, FONT_SIZES, FONT_WEIGHTS } from \"../../tokens\";\nimport { getOpacity } from \"../../utils/colorHelpers\";\n\nexport interface UserAvatarProps {\n initials?: string;\n badgeColor?: string;\n onClick?: () => void;\n size?: \"small\" | \"large\" | number;\n}\n\n/**\n * @description User avatar component that displays user initials. Supports both static (for tables) and clickable (for profile) variants.\n * If no initials are provided, returns null (user doesn't exist yet, likely invited).\n */\nexport function UserAvatar({ \n initials, \n badgeColor, \n onClick, \n size = 56\n}: UserAvatarProps) {\n if (!initials || !initials.trim()) {\n return null;\n }\n\n if (onClick) {\n return (\n <ProfileAvatar \n badgeColor={badgeColor} \n size={size} \n onClick={onClick}\n >\n {initials}\n </ProfileAvatar>\n );\n }\n\n return (\n <ColourAvatar badgeColor={badgeColor} size={size}>\n {initials}\n </ColourAvatar>\n );\n}\n\nexport default UserAvatar;\n\n\n\n\nconst ColourAvatar = styled.div<{ \n badgeColor?: string; \n size: \"small\" | \"large\" | number;\n}>`\n width: ${({ size }) => \n typeof size === \"number\" ? `${size}px` : size === \"large\" ? \"56px\" : \"40px\"\n };\n height: ${({ size }) => \n typeof size === \"number\" ? `${size}px` : size === \"large\" ? \"56px\" : \"40px\"\n };\n border-radius: 50%;\n background: ${({ badgeColor }) =>\n badgeColor\n ? getOpacity(badgeColor, 20)\n : \"linear-gradient(90deg, #6d65da 0.08%, #55a3bd 68.44%)\"};\n border: ${({ badgeColor }) => (badgeColor ? `2px solid ${badgeColor}` : \"none\")};\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.darkBlue1};\n font-size: ${({ size }) => \n typeof size === \"number\" \n ? `${size * 0.325}px` \n : size === \"large\" \n ? `${FONT_SIZES.xs}px` \n : `${FONT_SIZES.s}px`\n };\n font-weight: ${FONT_WEIGHTS.normal};\n flex-shrink: 0;\n`;\n\nconst ProfileAvatar = styled(ColourAvatar)`\n color: #fff;\n background: ${colors.gradients.gradient1};\n border: none;\n border-radius: 999px;\n padding-top: 2px;\n margin-bottom: 12px;\n`;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport Input, { InputProps } from \"../../atoms/Input\";\nimport Label from \"../../atoms/Label\";\nimport { HelperText } from \"../../atoms/HelperText\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface FormFieldProps extends Omit<InputProps, \"id\" | \"onInput\" | \"error\" | \"warning\"> {\n id: string;\n label: string;\n helperText?: string;\n error?: string;\n warning?: string;\n onInput?: (value: string) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst FormField: React.FC<FormFieldProps> = ({\n id,\n label,\n helperText,\n error,\n warning,\n onInput,\n onChange,\n className,\n ...inputProps\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onInput) {\n onInput(event.target.value);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const displayText = error || warning || helperText;\n const hasError = !!error;\n const hasWarning = !!warning && !hasError;\n\n return (\n <FormFieldWrapper className={className}>\n <Label htmlFor={id}>{label}</Label>\n <Input\n id={id}\n onChange={handleChange}\n error={hasError}\n warning={hasWarning}\n {...inputProps}\n />\n {displayText && (\n <HelperText error={hasError} warning={hasWarning}>\n {displayText}\n </HelperText>\n )}\n </FormFieldWrapper>\n );\n};\n\nconst FormFieldWrapper = styled.div`\n display: flex;\n flex-direction: column;\n \n label {\n margin-bottom: 8px;\n color: ${colors.baseColors.darkBlue3};\n font-size: ${typography.fontSize.m}px;\n }\n`;\n\nexport default FormField;\n\n","import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport Textarea, { TextareaProps } from \"../../atoms/Textarea\";\nimport Label from \"../../atoms/Label\";\nimport { HelperText } from \"../../atoms/HelperText\";\nimport { colors } from \"../../tokens/colors\";\nimport { typography } from \"../../tokens/typography\";\n\nexport interface FormFieldTextareaProps extends Omit<TextareaProps, \"id\" | \"onInput\" | \"error\" | \"warning\"> {\n id: string;\n label: string;\n helperText?: string;\n error?: string;\n warning?: string;\n onInput?: (value: string) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nconst FormFieldTextarea: React.FC<FormFieldTextareaProps> = ({\n id,\n label,\n helperText,\n error,\n warning,\n onInput,\n onChange,\n className,\n ...textareaProps\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onInput) {\n onInput(event.target.value);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const displayText = error || warning || helperText;\n const hasError = !!error;\n const hasWarning = !!warning && !hasError;\n\n return (\n <FormFieldWrapper className={className}>\n <Label htmlFor={id}>{label}</Label>\n <Textarea\n id={id}\n onChange={handleChange}\n error={hasError}\n warning={hasWarning}\n {...textareaProps}\n />\n {displayText && (\n <HelperText error={hasError} warning={hasWarning}>\n {displayText}\n </HelperText>\n )}\n </FormFieldWrapper>\n );\n};\n\nconst FormFieldWrapper = styled.div`\n display: flex;\n flex-direction: column;\n \n label {\n margin-bottom: 8px;\n color: ${colors.baseColors.darkBlue3};\n font-size: ${typography.fontSize.m}px;\n }\n`;\n\nexport default FormFieldTextarea;\n\n","import styled from \"@emotion/styled\";\nimport Input from \"../../atoms/Input\";\nimport { colors } from \"../../tokens/colors\";\nimport { FontSizeKey, typography } from \"../../tokens/typography\";\n\nexport const SearchContainer = styled.div<{ width?: string | number }>`\n width: ${({ width }) => (typeof width === \"number\" ? `${width}px` : width || \"208px\")};\n`;\n\nexport const InputWrapper = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n align-items: center;\n`;\n\nexport const IconWrapper = styled.div`\n position: absolute;\n left: 17px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.grey3};\n pointer-events: none;\n z-index: 2;\n`;\n\nexport const StyledInput = styled(Input)<{ hasClearButton?: boolean; hasIcon?: boolean; fontSize?: FontSizeKey }>`\n width: 100%;\n padding-right: ${({ hasClearButton }) => (hasClearButton ? \"32px\" : \"17px\")};\n padding-left: ${({ hasIcon }) => (hasIcon ? \"44px\" : \"17px\")};\n font-size: ${({ fontSize = \"s\" }) => `${typography.fontSize[fontSize]}px`};\n position: relative;\n z-index: 1;\n\n &:focus {\n padding-left: ${({ hasIcon }) => (hasIcon ? \"43px\" : \"16px\")};\n }\n`;\n\nexport const ClearButton = styled.button`\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.baseColors.grey3};\n transition: color 0.2s ease;\n z-index: 3;\n\n &:hover {\n color: ${colors.baseColors.grey1};\n }\n\n &:focus {\n outline: 2px solid ${colors.baseColors.primaryPurple};\n outline-offset: 2px;\n border-radius: 4px;\n }\n`;\n\nexport const ClearIcon = styled.svg`\n width: 16px;\n height: 16px;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n`;\n\n","import { ChangeEvent, ReactNode } from \"react\";\nimport {\n SearchContainer,\n InputWrapper,\n IconWrapper,\n StyledInput,\n ClearButton,\n ClearIcon,\n} from \"./SearchInput.styles\";\nimport { FontSizeKey } from \"../../tokens/typography\";\n\nexport interface SearchInputProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n showClearButton?: boolean;\n icon?: ReactNode;\n width?: string | number;\n fontSize?: FontSizeKey;\n}\n\n/**\n * @description Shared search input component for IAM views\n */\nexport function SearchInput({\n value,\n onChange,\n placeholder = \"Search...\",\n showClearButton = false,\n icon,\n width = \"208px\",\n fontSize = \"s\",\n}: SearchInputProps) {\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange(e.target.value);\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n const hasClearButton = showClearButton && !!value;\n const hasIcon = !!icon;\n\n return (\n <SearchContainer width={width}>\n <InputWrapper>\n {hasIcon && <IconWrapper>{icon}</IconWrapper>}\n <StyledInput\n type=\"text\"\n placeholder={placeholder}\n value={value}\n onChange={handleChange}\n autoComplete=\"off\"\n hasClearButton={hasClearButton}\n hasIcon={hasIcon}\n fontSize={fontSize}\n />\n {hasClearButton && (\n <ClearButton onClick={handleClear} type=\"button\" aria-label=\"Clear search\">\n <ClearIcon viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </ClearIcon>\n </ClearButton>\n )}\n </InputWrapper>\n </SearchContainer>\n );\n}\n\nexport default SearchInput;\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n children: React.ReactNode;\n}\n\nexport function TableElement({ children, ...rest }: TableProps) {\n return <StyledTable {...rest}>{children}</StyledTable>;\n}\n\nexport { TableElement as Table };\nexport default TableElement;\n\nconst StyledTable = styled.table`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0 4px;\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { FONT_SIZES, FONT_WEIGHTS } from \"../../tokens/typography\";\n\nexport interface TableHeaderProps\n extends React.ThHTMLAttributes<HTMLTableHeaderCellElement> {\n alignRight?: boolean;\n children: React.ReactNode;\n}\n\nexport function TableHeader({ alignRight, children, ...rest }: TableHeaderProps) {\n return (\n <StyledTableHeader alignRight={alignRight} {...rest}>\n {children}\n </StyledTableHeader>\n );\n}\n\nexport default TableHeader;\n\nconst StyledTableHeader = styled.th<{ alignRight?: boolean }>`\n padding-bottom: 12px;\n text-align: ${({ alignRight }) => (alignRight ? \"right\" : \"left\")};\n font-size: ${FONT_SIZES.xs}px;\n font-weight: ${FONT_WEIGHTS.bold};\n padding-left: ${({ alignRight }) => (alignRight ? \"0\" : \"24px\")};\n padding-right: ${({ alignRight }) => (alignRight ? \"60px\" : \"0\")};\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\n\nexport interface TableCellProps\n extends React.TdHTMLAttributes<HTMLTableDataCellElement> {\n children: React.ReactNode;\n colSpan?: number;\n}\n\nexport function TableCell({ children, colSpan, ...rest }: TableCellProps) {\n return (\n <StyledTableCell colSpan={colSpan} {...rest}>\n {children}\n </StyledTableCell>\n );\n}\n\nexport default TableCell;\n\nconst StyledTableCell = styled.td`\n\n`;\n\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { colors } from \"../../tokens/colors\";\n\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\n children: React.ReactNode;\n}\n\nexport interface TableRowWrapperProps {\n children: React.ReactNode;\n}\n\nexport function TableRow({ children, ...rest }: TableRowProps) {\n return <StyledTableRow {...rest}>{children}</StyledTableRow>;\n}\n\nexport default TableRow;\n\nconst StyledTableRow = styled.tr`\n /* Base row styling */\n`;\n\nexport const TableRowWrapper = styled.div`\n border-radius: 6px;\n border: 1px solid ${colors.baseColors.grey7};\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 24px;\n`;\n\n","import styled from \"@emotion/styled\";\nimport { colors, FONT_SIZES } from \"../../tokens\";\nimport { TableCell } from \"../../atoms/Table\";\n\nexport const CheckboxWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const ActionsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\n\nexport const AlignedTableCell = styled(TableCell)<{ alignRight?: boolean; isFirst?: boolean; isLast?: boolean }>`\n padding-top: 12px;\n padding-bottom: 12px;\n padding-left: ${({ alignRight }) => (alignRight ? \"0\" : \"24px\")};\n padding-right: ${({ alignRight }) => (alignRight ? \"60px\" : \"0\")};\n text-align: ${({ alignRight }) => (alignRight ? \"right\" : \"left\")};\n border: 1px solid ${colors.baseColors.grey7};\n border-right: ${({ isLast }) => (isLast ? `1px solid ${colors.baseColors.grey7}` : \"none\")};\n border-left: ${({ isFirst }) => (isFirst ? `1px solid ${colors.baseColors.grey7}` : \"none\")};\n ${({ isFirst }) => isFirst && `border-top-left-radius: 6px; border-bottom-left-radius: 6px;`}\n ${({ isLast }) => isLast && `border-top-right-radius: 6px; border-bottom-right-radius: 6px;`}\n`;\n\nexport const CellContent = styled.div<{ alignRight?: boolean; isLast?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: ${({ alignRight }) => (alignRight ? \"flex-end\" : \"flex-start\")};\n flex: ${({ alignRight }) => (alignRight ? \"0 0 auto\" : \"1\")};\n min-width: 0;\n`;\n\nexport const TableWrapper = styled.div`\n margin-top: 32px;\n`;\n\nexport const EmptyState = styled.div`\n padding: 24px;\n text-align: center;\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const EmptyHeader = styled.div`\n font-size: 26px;\n font-weight: 700;\n color: ${colors.baseColors.darkBlue1};\n`;\n\nexport const EmptySubheader = styled.div`\n font-size: 12px;\n font-weight: 500;\n color: ${colors.baseColors.grey3};\n`;\n\n","import React from \"react\";\nimport { TableElement, TableHeader, TableRow, TableCell, TableRowWrapper } from \"../../atoms/Table\";\nimport {\n CheckboxWrapper,\n ActionsWrapper,\n AlignedTableCell,\n CellContent,\n TableWrapper,\n EmptyState,\n EmptyHeader,\n EmptySubheader,\n} from \"./DataTable.styles\";\n\nexport interface TableColumn<T = any> {\n label: string;\n alignRight?: boolean;\n renderCell?: (row: T, index: number) => React.ReactNode;\n accessor?: keyof T | ((row: T) => React.ReactNode);\n}\n\nexport type TableRowLayout = \"aligned\" | \"spaced\";\n\nexport interface TableProps<T = any> {\n data: T[];\n columns: TableColumn<T>[];\n getRowKey?: (row: T, index: number) => string | number;\n emptyMessage?: string;\n emptyHeader?: string;\n emptySubheader?: string;\n showCheckboxes?: boolean;\n onSelectAll?: (selected: boolean) => void;\n onSelectRow?: (row: T, selected: boolean) => void;\n selectedRows?: Set<string | number>;\n renderActions?: (row: T, index: number) => React.ReactNode;\n rowLayout?: TableRowLayout;\n}\n\n/**\n * Helper function to get cell content from column definition\n */\nfunction getCellContent<T>(\n column: TableColumn<T>,\n row: T,\n rowIndex: number\n): React.ReactNode {\n if (column.renderCell) {\n return column.renderCell(row, rowIndex);\n }\n if (column.accessor) {\n if (typeof column.accessor === \"function\") {\n return column.accessor(row);\n }\n return String(row[column.accessor] ?? \"\");\n }\n return null;\n}\n\n/**\n * Calculate total number of columns including checkboxes and actions\n */\nfunction getTotalColumns<T>(\n columns: TableColumn<T>[],\n showCheckboxes: boolean,\n renderActions?: (row: T, index: number) => React.ReactNode\n): number {\n return columns.length + (showCheckboxes ? 1 : 0) + (renderActions ? 1 : 0);\n}\n\n/**\n * @description Generic data table component with dynamic columns and cell rendering\n */\nexport function Table<T = any>({\n data,\n columns,\n getRowKey,\n emptyMessage,\n emptyHeader,\n emptySubheader,\n showCheckboxes = false,\n onSelectAll,\n onSelectRow,\n selectedRows = new Set(),\n renderActions,\n rowLayout = \"aligned\",\n}: TableProps<T>) {\n const getKey = getRowKey || ((row: T, index: number) => index);\n const allSelected = data.length > 0 && data.every((row, idx) => selectedRows.has(getKey(row, idx)));\n const someSelected = data.some((row, idx) => selectedRows.has(getKey(row, idx)));\n const totalColumns = getTotalColumns(columns, showCheckboxes, renderActions);\n\n const handleSelectAll = (e: React.ChangeEvent<HTMLInputElement>) => {\n onSelectAll?.(e.target.checked);\n };\n\n const handleSelectRow = (row: T, e: React.ChangeEvent<HTMLInputElement>) => {\n onSelectRow?.(row, e.target.checked);\n };\n\n return (\n <TableWrapper>\n <TableElement>\n <thead>\n <TableRow>\n {showCheckboxes && (\n <TableHeader>\n <input\n type=\"checkbox\"\n checked={allSelected}\n ref={(input) => {\n if (input) input.indeterminate = someSelected && !allSelected;\n }}\n onChange={handleSelectAll}\n aria-label=\"Select all rows\"\n />\n </TableHeader>\n )}\n {columns.map((column, index) => (\n <TableHeader key={index} alignRight={column.alignRight}>\n {column.label}\n </TableHeader>\n ))}\n {renderActions && <TableHeader alignRight={true}> </TableHeader>}\n </TableRow>\n </thead>\n <tbody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={totalColumns}>\n <EmptyState>\n {emptyHeader ? (\n <>\n <EmptyHeader>{emptyHeader}</EmptyHeader>\n {emptySubheader && <EmptySubheader>{emptySubheader}</EmptySubheader>}\n </>\n ) : (\n <div>{emptyMessage || \"No data found\"}</div>\n )}\n </EmptyState>\n </TableCell>\n </TableRow>\n ) : (\n data.map((row, rowIndex) => {\n const rowKey = getKey(row, rowIndex);\n const isSelected = selectedRows.has(rowKey);\n\n if (rowLayout === \"spaced\") {\n return (\n <TableRow key={rowKey}>\n <TableCell colSpan={totalColumns}>\n <TableRowWrapper>\n {showCheckboxes && (\n <CheckboxWrapper>\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={(e) => handleSelectRow(row, e)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </CheckboxWrapper>\n )}\n {columns.map((column, colIndex) => {\n const cellContent = getCellContent(column, row, rowIndex);\n const isLast = colIndex === columns.length - 1 && !renderActions;\n\n return (\n <CellContent key={colIndex} alignRight={column.alignRight} isLast={isLast}>\n {cellContent}\n </CellContent>\n );\n })}\n {renderActions && (\n <ActionsWrapper>\n {renderActions(row, rowIndex)}\n </ActionsWrapper>\n )}\n </TableRowWrapper>\n </TableCell>\n </TableRow>\n );\n } else {\n return (\n <TableRow key={rowKey}>\n {showCheckboxes && (\n <AlignedTableCell isFirst={true} isLast={totalColumns === 1}>\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={(e) => handleSelectRow(row, e)}\n aria-label={`Select row ${rowIndex + 1}`}\n />\n </AlignedTableCell>\n )}\n {columns.map((column, colIndex) => {\n const cellContent = getCellContent(column, row, rowIndex);\n const isFirst = !showCheckboxes && colIndex === 0;\n const isLast = !renderActions && colIndex === columns.length - 1;\n\n return (\n <AlignedTableCell key={colIndex} alignRight={column.alignRight} isFirst={isFirst} isLast={isLast}>\n {cellContent}\n </AlignedTableCell>\n );\n })}\n {renderActions && (\n <AlignedTableCell alignRight={true} isLast={true}>\n {renderActions(row, rowIndex)}\n </AlignedTableCell>\n )}\n </TableRow>\n );\n }\n })\n )}\n </tbody>\n </TableElement>\n </TableWrapper>\n );\n}\n\nexport default Table;\n\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -27,6 +27,14 @@ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
|
27
27
|
}
|
|
28
28
|
declare const Input: React.FC<InputProps>;
|
|
29
29
|
|
|
30
|
+
interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
|
|
31
|
+
className?: string;
|
|
32
|
+
danger?: boolean;
|
|
33
|
+
darkMode?: boolean;
|
|
34
|
+
size?: number;
|
|
35
|
+
}
|
|
36
|
+
declare const Checkbox: React.FC<CheckboxProps>;
|
|
37
|
+
|
|
30
38
|
interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
31
39
|
className?: string;
|
|
32
40
|
htmlFor?: string;
|
|
@@ -295,4 +303,4 @@ interface TableProps<T = any> {
|
|
|
295
303
|
*/
|
|
296
304
|
declare function Table<T = any>({ data, columns, getRowKey, emptyMessage, emptyHeader, emptySubheader, showCheckboxes, onSelectAll, onSelectRow, selectedRows, renderActions, rowLayout, }: TableProps<T>): _emotion_react_jsx_runtime.JSX.Element;
|
|
297
305
|
|
|
298
|
-
export { type Align, GroupBadge as Badge, Button, type ButtonProps, type Colors, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, type FontSize, type FontSizeKey, type FontWeight, FormField, type FormFieldProps, FormFieldTextarea, type FormFieldTextareaProps, GroupBadge, type GroupBadgeProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, SearchInput, type SearchInputProps, type TColor, type TOpacity, Tab, type TabProps, Table, TableCell, type TableCellProps, type TableColumn, TableElement, type TableProps$1 as TableElementProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, TableRowWrapper, Textarea, type TextareaProps, type Typography, USER_ROLES, USER_STATUS, UserAvatar, type UserAvatarProps, Variant, type VariantName, colors, getBadgeColor, getOpacity, typography };
|
|
306
|
+
export { type Align, GroupBadge as Badge, Button, type ButtonProps, Checkbox, type CheckboxProps, type Colors, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, type FontSize, type FontSizeKey, type FontWeight, FormField, type FormFieldProps, FormFieldTextarea, type FormFieldTextareaProps, GroupBadge, type GroupBadgeProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, SearchInput, type SearchInputProps, type TColor, type TOpacity, Tab, type TabProps, Table, TableCell, type TableCellProps, type TableColumn, TableElement, type TableProps$1 as TableElementProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, TableRowWrapper, Textarea, type TextareaProps, type Typography, USER_ROLES, USER_STATUS, UserAvatar, type UserAvatarProps, Variant, type VariantName, colors, getBadgeColor, getOpacity, typography };
|
package/dist/index.d.ts
CHANGED
|
@@ -27,6 +27,14 @@ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
|
27
27
|
}
|
|
28
28
|
declare const Input: React.FC<InputProps>;
|
|
29
29
|
|
|
30
|
+
interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
|
|
31
|
+
className?: string;
|
|
32
|
+
danger?: boolean;
|
|
33
|
+
darkMode?: boolean;
|
|
34
|
+
size?: number;
|
|
35
|
+
}
|
|
36
|
+
declare const Checkbox: React.FC<CheckboxProps>;
|
|
37
|
+
|
|
30
38
|
interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
31
39
|
className?: string;
|
|
32
40
|
htmlFor?: string;
|
|
@@ -295,4 +303,4 @@ interface TableProps<T = any> {
|
|
|
295
303
|
*/
|
|
296
304
|
declare function Table<T = any>({ data, columns, getRowKey, emptyMessage, emptyHeader, emptySubheader, showCheckboxes, onSelectAll, onSelectRow, selectedRows, renderActions, rowLayout, }: TableProps<T>): _emotion_react_jsx_runtime.JSX.Element;
|
|
297
305
|
|
|
298
|
-
export { type Align, GroupBadge as Badge, Button, type ButtonProps, type Colors, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, type FontSize, type FontSizeKey, type FontWeight, FormField, type FormFieldProps, FormFieldTextarea, type FormFieldTextareaProps, GroupBadge, type GroupBadgeProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, SearchInput, type SearchInputProps, type TColor, type TOpacity, Tab, type TabProps, Table, TableCell, type TableCellProps, type TableColumn, TableElement, type TableProps$1 as TableElementProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, TableRowWrapper, Textarea, type TextareaProps, type Typography, USER_ROLES, USER_STATUS, UserAvatar, type UserAvatarProps, Variant, type VariantName, colors, getBadgeColor, getOpacity, typography };
|
|
306
|
+
export { type Align, GroupBadge as Badge, Button, type ButtonProps, Checkbox, type CheckboxProps, type Colors, FONT_SIZES, FONT_SIZE_KEYS, FONT_WEIGHTS, type FontSize, type FontSizeKey, type FontWeight, FormField, type FormFieldProps, FormFieldTextarea, type FormFieldTextareaProps, GroupBadge, type GroupBadgeProps, HelperText, type HelperTextProps, Input, type InputProps, Label, type LabelProps, SearchInput, type SearchInputProps, type TColor, type TOpacity, Tab, type TabProps, Table, TableCell, type TableCellProps, type TableColumn, TableElement, type TableProps$1 as TableElementProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, TableRowWrapper, Textarea, type TextareaProps, type Typography, USER_ROLES, USER_STATUS, UserAvatar, type UserAvatarProps, Variant, type VariantName, colors, getBadgeColor, getOpacity, typography };
|