@szymonpiatek/designsystem 0.0.3 → 0.0.5
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/index.cjs +7439 -759
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +993 -34
- package/dist/index.d.ts +993 -34
- package/dist/index.js +7253 -721
- package/dist/index.js.map +1 -1
- package/dist/ssr/EmotionRegistry.cjs +71 -0
- package/dist/ssr/EmotionRegistry.cjs.map +1 -0
- package/dist/ssr/EmotionRegistry.js +46 -0
- package/dist/ssr/EmotionRegistry.js.map +1 -0
- package/package.json +20 -3
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/atoms/buttons/Button/Button.tsx","../src/components/atoms/inputs/elements/HelperText/HelperText.tsx","../src/components/atoms/inputs/elements/Label/Label.tsx","../src/components/atoms/inputs/elements/sizeMap.ts","../src/components/atoms/inputs/elements/dropdown.tsx","../src/components/atoms/inputs/BaseInput/BaseInput.tsx","../src/components/atoms/inputs/CheckboxInput/CheckboxInput.tsx","../src/components/atoms/inputs/FileInput/FileInput.tsx","../src/components/atoms/inputs/EmailInput/EmailInput.tsx","../src/components/atoms/inputs/BaseSelectInput/BaseSelectInput.tsx","../src/components/atoms/inputs/NumberInput/NumberInput.tsx","../src/components/atoms/inputs/MultiSelectInput/MultiSelectInput.tsx","../src/components/atoms/inputs/PasswordInput/PasswordInput.tsx","../src/components/atoms/inputs/SearchInput/SearchInput.tsx","../src/components/atoms/inputs/SelectInput/SelectInput.tsx","../src/components/atoms/inputs/TextareaInput/TextareaInput.tsx","../src/components/atoms/CountryFlag/CountryFlag.tsx","../src/data/countries.json","../src/components/atoms/inputs/PhoneInput/PhoneInput.tsx","../src/components/atoms/inputs/TextInput/TextInput.tsx","../src/components/layout/Box/Box.tsx","../src/components/layout/Container/Container.tsx","../src/components/layout/Section/Section.tsx","../src/components/layout/typography.ts","../src/components/layout/Main/Main.tsx","../src/components/layout/Prose/Prose.tsx","../src/components/layout/Article/Article.tsx","../src/components/molecules/PaginationBar/elements/PaginationButton/PaginationButton.tsx","../src/components/molecules/PaginationBar/elements/PaginationEllipsis/PaginationEllipsis.tsx","../src/components/molecules/PaginationBar/PaginationBar.tsx","../src/theme/theme.ts","../src/theme/myTheme.ts","../src/theme/MyThemeProvider.tsx"],"names":["keyframes","alpha","styled","forwardRef","jsxs","jsx","useId","Root","useRef","useEffect","HiddenInput","useState","Fragment","DropdownPanel","renderTrigger","renderOption","useCallback","XIcon","sizeMap","getCountryCallingCode","InputWrapper","StyledInput","SearchInput","OptionItem","useMemo","Box","StyledButton","createTheme","ThemeProvider","CssBaseline"],"mappings":"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","file":"index.cjs","sourcesContent":["import { forwardRef } from 'react';\nimport { styled, alpha, type Theme } from '@mui/material/styles';\nimport { keyframes, type CSSObject } from '@emotion/react';\nimport type { ButtonProps, ButtonVariant, ButtonSize } from '@/components';\n\nconst spin = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`;\n\nconst sizeMap: Record<ButtonSize, { padding: string; fontSize: string; gap: string }> = {\n sm: { padding: '0.25rem 0.75rem', fontSize: '0.75rem', gap: '0.25rem' },\n md: { padding: '0.5rem 1.25rem', fontSize: '0.875rem', gap: '0.375rem' },\n lg: { padding: '0.75rem 1.75rem', fontSize: '1rem', gap: '0.5rem' },\n};\n\nconst variantStyles: Record<ButtonVariant, (theme: Theme) => CSSObject> = {\n primary: (theme) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.primary.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n secondary: (theme) => ({\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.secondary.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n ghost: (theme) => ({\n backgroundColor: 'transparent',\n color: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n '&:hover:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.08) },\n '&:active:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.16) },\n }),\n danger: (theme) => ({\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.error.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n};\n\ninterface StyledButtonProps {\n $variant: ButtonVariant;\n $size: ButtonSize;\n $fullWidth: boolean;\n}\n\nconst StyledButton = styled('button')<StyledButtonProps>(\n ({ theme, $variant, $size, $fullWidth }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n lineHeight: 1.5,\n textDecoration: 'none',\n transition: 'background-color 150ms ease, box-shadow 150ms ease, border-color 150ms ease',\n width: $fullWidth ? '100%' : 'auto',\n ...sizeMap[$size],\n ...variantStyles[$variant](theme),\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n backgroundColor:\n $variant === 'ghost' ? 'transparent' : theme.palette.action.disabledBackground,\n borderColor: $variant === 'ghost' ? theme.palette.action.disabled : 'transparent',\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n);\n\nconst IconSlot = styled('span')({\n display: 'inline-flex',\n alignItems: 'center',\n});\n\nconst Spinner = styled('span')({\n display: 'inline-flex',\n animation: `${spin} 700ms linear infinite`,\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n fullWidth = false,\n startIcon,\n endIcon,\n onClick,\n type = 'button',\n children,\n className,\n 'aria-label': ariaLabel,\n 'aria-current': ariaCurrent,\n },\n ref,\n ) => (\n <StyledButton\n ref={ref}\n type={type}\n disabled={disabled || loading}\n onClick={onClick}\n $variant={variant}\n $size={size}\n $fullWidth={fullWidth}\n aria-busy={loading || undefined}\n className={className}\n aria-label={ariaLabel}\n aria-current={ariaCurrent}\n >\n {loading ? (\n <Spinner aria-hidden=\"true\">\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" strokeOpacity=\"0.25\" />\n <path d=\"M12 2a10 10 0 0 1 10 10\" />\n </svg>\n </Spinner>\n ) : (\n startIcon && <IconSlot>{startIcon}</IconSlot>\n )}\n <span>{children}</span>\n {endIcon && <IconSlot>{endIcon}</IconSlot>}\n </StyledButton>\n ),\n);\n\nButton.displayName = 'Button';\n","import { styled } from '@mui/material/styles';\nimport type { HelperTextProps } from './HelperText.types';\n\nconst StyledHelperText = styled('p')<{ $error: boolean }>(({ theme, $error }) => ({\n margin: '0.25rem 0 0',\n fontSize: '0.75rem',\n fontFamily: theme.typography.fontFamily,\n color: $error ? theme.palette.error.main : theme.palette.text.secondary,\n}));\n\nexport const HelperText = ({ error = false, children, ...rest }: HelperTextProps) => (\n <StyledHelperText $error={error} {...rest}>\n {children}\n </StyledHelperText>\n);\n\nHelperText.displayName = 'HelperText';\n","import { styled } from '@mui/material/styles';\nimport type { InputSize } from '../types';\nimport type { LabelProps } from './Label.types';\n\nconst labelSizeMap: Record<InputSize, string> = {\n sm: '0.625rem',\n md: '0.75rem',\n lg: '0.875rem',\n};\n\ninterface StyledLabelProps {\n $error: boolean;\n $size: InputSize;\n}\n\nconst StyledLabel = styled('label')<StyledLabelProps>(({ theme, $error, $size }) => ({\n display: 'block',\n marginBottom: '0.25rem',\n fontSize: labelSizeMap[$size],\n fontWeight: 500,\n fontFamily: theme.typography.fontFamily,\n color: $error ? theme.palette.error.main : theme.palette.text.primary,\n}));\n\nexport const Label = ({ error = false, size = 'md', children, ...rest }: LabelProps) => (\n <StyledLabel $error={error} $size={size} {...rest}>\n {children}\n </StyledLabel>\n);\n\nLabel.displayName = 'Label';\n","import type { InputSize } from './types';\n\nexport interface SizeTokens {\n padding: string;\n fontSize: string;\n gap: string;\n}\n\nexport const inputSizeMap: Record<InputSize, SizeTokens> = {\n sm: { padding: '0.25rem 0.5rem', fontSize: '0.75rem', gap: '0.25rem' },\n md: { padding: '0.375rem 0.75rem', fontSize: '0.875rem', gap: '0.375rem' },\n lg: { padding: '0.5rem 1rem', fontSize: '1rem', gap: '0.5rem' },\n};\n\nexport const inputHeightMap: Record<InputSize, string> = {\n sm: '26px',\n md: '32px',\n lg: '38.5px',\n};\n","import { styled } from '@mui/material/styles';\n\nexport const DropdownPanel = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(100% + 4px)',\n left: 0,\n zIndex: theme.zIndex.modal,\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n}));\n\nexport const Chevron = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n);\n","import { forwardRef, useId } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport type { BaseInputProps } from '@/components';\nimport { Label, HelperText, inputSizeMap, inputHeightMap } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\n\nconst inputColors = (theme: Theme, error: boolean) => ({\n borderColor: error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within):not([data-disabled])': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`,\n },\n});\n\ninterface StyledWrapperProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst InputWrapper = styled('div')<StyledWrapperProps>(\n ({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n cursor: $disabled ? 'not-allowed' : 'text',\n ...inputSizeMap[$size],\n height: inputHeightMap[$size],\n paddingBlock: 0,\n ...inputColors(theme, $error),\n ...($disabled && {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }),\n }),\n);\n\nconst StyledInput = styled('input')(({ theme }) => ({\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: theme.palette.text.primary,\n width: '100%',\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n '&[type=\"search\"]::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n}));\n\nconst Adornment = styled('span')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n}));\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n startAdornment,\n endAdornment,\n disabled = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <InputWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n >\n {startAdornment && <Adornment>{startAdornment}</Adornment>}\n <StyledInput ref={ref} id={inputId} disabled={disabled} {...rest} />\n {endAdornment && <Adornment>{endAdornment}</Adornment>}\n </InputWrapper>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nBaseInput.displayName = 'BaseInput';\n","import { forwardRef, useEffect, useId, useRef } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { HelperText } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { CheckboxInputProps } from './CheckboxInput.types';\n\nconst checkboxSizeMap: Record<InputSize, string> = {\n sm: '14px',\n md: '16px',\n lg: '20px',\n};\n\nconst labelFontSizeMap: Record<InputSize, string> = {\n sm: '0.75rem',\n md: '0.875rem',\n lg: '1rem',\n};\n\ninterface BoxProps {\n $size: InputSize;\n $error: boolean;\n $disabled: boolean;\n}\n\nconst checkedColor = (theme: Theme, error: boolean) =>\n error ? theme.palette.error.main : theme.palette.primary.main;\n\nconst Box = styled('span')<BoxProps>(({ theme, $size, $error, $disabled }) => ({\n position: 'relative',\n flexShrink: 0,\n width: checkboxSizeMap[$size],\n height: checkboxSizeMap[$size],\n borderRadius: theme.shape.borderRadius / 2,\n border: '1px solid',\n borderColor: $disabled\n ? theme.palette.action.disabled\n : $error\n ? theme.palette.error.main\n : theme.palette.divider,\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...(!$disabled && {\n 'label:hover &': {\n borderColor: $error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n 'label:has(input:checked) &, label:has(input:indeterminate) &': {\n backgroundColor: checkedColor(theme, $error),\n borderColor: checkedColor(theme, $error),\n },\n 'label:has(input:focus-visible) &': {\n boxShadow: `0 0 0 3px ${checkedColor(theme, $error)}33`,\n },\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n display: 'none',\n },\n 'label:has(input:checked) &::after': {\n display: 'block',\n width: '30%',\n height: '55%',\n borderRight: `2px solid #fff`,\n borderBottom: `2px solid #fff`,\n transform: 'rotate(45deg) translate(-10%, -15%)',\n },\n 'label:has(input:indeterminate) &::after': {\n display: 'block',\n width: '55%',\n height: '2px',\n backgroundColor: '#fff',\n borderRadius: '1px',\n },\n}));\n\nconst HiddenInput = styled('input')({\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n});\n\nconst Row = styled('label')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n cursor: 'inherit',\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst LabelText = styled('span')<{ $size: InputSize; $disabled: boolean; $error: boolean }>(\n ({ theme, $size, $disabled, $error }) => ({\n fontSize: labelFontSizeMap[$size],\n fontWeight: 400,\n color: $disabled\n ? theme.palette.action.disabled\n : $error\n ? theme.palette.error.main\n : theme.palette.text.primary,\n userSelect: 'none',\n }),\n);\n\nconst Root = styled('span')<{ $disabled: boolean }>(({ $disabled }) => ({\n display: 'inline-flex',\n flexDirection: 'column',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n}));\n\nexport const CheckboxInput = forwardRef<HTMLInputElement, CheckboxInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n disabled = false,\n indeterminate = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n const innerRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Root $disabled={disabled}>\n <Row htmlFor={inputId}>\n <Box $size={size} $error={error} $disabled={disabled}>\n <HiddenInput\n ref={(node) => {\n innerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref)\n (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }}\n id={inputId}\n type=\"checkbox\"\n disabled={disabled}\n {...rest}\n />\n </Box>\n {label && (\n <LabelText $size={size} $disabled={disabled} $error={error}>\n {label}\n </LabelText>\n )}\n </Row>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nCheckboxInput.displayName = 'CheckboxInput';\n","import { forwardRef, useId, useRef, useState } from 'react';\nimport { styled, alpha } from '@mui/material/styles';\nimport { Label, HelperText, inputSizeMap, inputHeightMap } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { FileInputProps } from './FileInput.types';\n\n// ─── helpers ──────────────────────────────────────────────────────────────────\n\nconst formatSize = (bytes: number): string => {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 ** 2) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / 1024 ** 2).toFixed(1)} MB`;\n};\n\n// ─── icons ────────────────────────────────────────────────────────────────────\n\nconst UploadArrowIcon = ({ size = 13 }: { size?: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n <path d=\"M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4\" />\n </svg>\n);\n\nconst CloudUploadIcon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth={1.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <polyline points=\"16 16 12 12 8 16\" />\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\" />\n <path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\" />\n </svg>\n);\n\nconst FileDocIcon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth={1.75} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n </svg>\n);\n\nconst TrashIcon = ({ size = 12 }: { size?: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden>\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\" />\n <path d=\"M10 11v6M14 11v6\" />\n <path d=\"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2\" />\n </svg>\n);\n\nconst XIcon = () => (\n <svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth={2.5} strokeLinecap=\"round\" aria-hidden>\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n// ─── shared ───────────────────────────────────────────────────────────────────\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst HiddenInput = styled('input')({\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n});\n\n// ─── compact variant ──────────────────────────────────────────────────────────\n\nconst CompactWrapper = styled('div')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n height: inputHeightMap[$size],\n fontSize: inputSizeMap[$size].fontSize,\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n overflow: 'hidden',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n ...($disabled\n ? { borderColor: theme.palette.action.disabled, pointerEvents: 'none' }\n : {\n borderColor: $error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within)': {\n borderColor: $error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${alpha(\n $error ? theme.palette.error.main : theme.palette.primary.main,\n 0.2,\n )}`,\n },\n }),\n}));\n\nconst BrowseBtn = styled('button')<{ $size: InputSize; $error: boolean }>(\n ({ theme, $size, $error }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.35rem',\n height: '100%',\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n border: 'none',\n borderRight: `1px solid ${alpha('#fff', 0.25)}`,\n backgroundColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n color: '#fff',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n fontWeight: 600,\n letterSpacing: '0.01em',\n cursor: 'pointer',\n transition: 'background-color 150ms ease',\n whiteSpace: 'nowrap',\n '&:hover:not(:disabled)': {\n backgroundColor: $error ? theme.palette.error.dark : theme.palette.primary.dark,\n },\n '&:active:not(:disabled)': { filter: 'brightness(0.9)' },\n '&:disabled': {\n backgroundColor: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n }),\n);\n\nconst CompactFileName = styled('span')<{ $hasFile: boolean }>(({ theme, $hasFile }) => ({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n padding: '0 0.5rem 0 0.75rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: $hasFile ? theme.palette.text.primary : theme.palette.text.disabled,\n}));\n\nconst ClearBtn = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1.5rem',\n height: '1.5rem',\n marginRight: '0.25rem',\n border: 'none',\n background: 'none',\n color: theme.palette.text.secondary,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.08),\n },\n}));\n\n// ─── compact — file chips (multiple) ─────────────────────────────────────────\n\nconst FileChipList = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.3rem',\n marginTop: '0.375rem',\n});\n\nconst FileChip = styled('div')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.25rem',\n maxWidth: '220px',\n padding: '0.1875rem 0.3125rem 0.1875rem 0.5rem',\n borderRadius: '100px',\n backgroundColor: alpha(theme.palette.primary.main, 0.07),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.18)}`,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.primary,\n}));\n\nconst FileChipName = styled('span')({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n flex: 1,\n});\n\nconst FileChipRemove = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1rem',\n height: '1rem',\n padding: 0,\n border: 'none',\n background: 'none',\n borderRadius: '50%',\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.1),\n },\n}));\n\n// ─── dropzone variant ─────────────────────────────────────────────────────────\n\nconst dropzoneSizes: Record<InputSize, {\n minHeight: string; padding: string; iconSize: number;\n circleSize: string; fontSize: string; subFontSize: string; gap: string;\n}> = {\n sm: { minHeight: '100px', padding: '1.125rem', iconSize: 16, circleSize: '2.25rem', fontSize: '0.75rem', subFontSize: '0.6875rem', gap: '0.375rem' },\n md: { minHeight: '140px', padding: '1.5rem', iconSize: 20, circleSize: '2.875rem', fontSize: '0.875rem', subFontSize: '0.75rem', gap: '0.5rem' },\n lg: { minHeight: '180px', padding: '2rem', iconSize: 26, circleSize: '3.5rem', fontSize: '1rem', subFontSize: '0.875rem', gap: '0.625rem' },\n};\n\nconst DropzoneArea = styled('div')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n $isDragging: boolean;\n $hasFile: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled, $isDragging, $hasFile }) => {\n const ds = dropzoneSizes[$size];\n const mainColor = $error ? theme.palette.error.main : theme.palette.primary.main;\n const mainDark = $error ? theme.palette.error.dark : theme.palette.primary.dark;\n return {\n position: 'relative',\n display: $fullWidth ? 'flex' : 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n width: $fullWidth ? '100%' : 'auto',\n minWidth: $fullWidth ? undefined : '240px',\n minHeight: ds.minHeight,\n padding: ds.padding,\n gap: ds.gap,\n borderRadius: theme.shape.borderRadius * 2,\n border: '2px dashed',\n transition: 'border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease, transform 200ms ease',\n ...($disabled\n ? {\n borderColor: theme.palette.action.disabled,\n backgroundColor: theme.palette.action.disabledBackground,\n color: theme.palette.action.disabled,\n }\n : $isDragging\n ? {\n borderStyle: 'solid',\n borderColor: mainColor,\n backgroundColor: alpha(mainColor, 0.06),\n color: mainColor,\n transform: 'scale(1.01)',\n boxShadow: `0 0 0 3px ${alpha(mainColor, 0.2)}`,\n }\n : $hasFile\n ? {\n borderStyle: 'solid',\n borderColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n backgroundColor: alpha(mainColor, 0.03),\n color: theme.palette.text.secondary,\n }\n : {\n borderColor: $error ? theme.palette.error.main : theme.palette.divider,\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.secondary,\n '&:hover': {\n borderColor: $error ? mainDark : theme.palette.text.secondary,\n backgroundColor: alpha(mainColor, 0.04),\n },\n }),\n };\n});\n\nconst DropzoneClickBtn = styled('button')<{ $size: InputSize }>(({ theme, $size }) => {\n const ds = dropzoneSizes[$size];\n return {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: ds.gap,\n width: '100%',\n padding: 0,\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n color: 'inherit',\n fontFamily: theme.typography.fontFamily,\n borderRadius: theme.shape.borderRadius,\n transition: 'box-shadow 150ms ease',\n '&:focus-visible': {\n boxShadow: `0 0 0 2px ${theme.palette.primary.main}`,\n outline: 'none',\n },\n '&:disabled': { cursor: 'not-allowed' },\n };\n});\n\nconst DropzoneIconWrap = styled('span')<{ $isDragging: boolean }>(({ $isDragging }) => ({\n display: 'inline-flex',\n transition: 'transform 200ms ease',\n transform: $isDragging ? 'translateY(-3px)' : 'translateY(0)',\n}));\n\nconst DropzoneText = styled('p')<{ $sub?: boolean }>(({ theme, $sub }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: $sub ? 400 : 500,\n color: 'inherit',\n}));\n\n// FIX: primary.dark (contrast ~5.2:1 on #f5f5f5) vs primary.main (~4.2:1)\nconst BrowseLink = styled('span')(({ theme }) => ({\n color: theme.palette.primary.dark,\n fontWeight: 700,\n textDecoration: 'underline',\n textDecorationThickness: '1px',\n textUnderlineOffset: '2px',\n}));\n\n// ─── dropzone — single file display ──────────────────────────────────────────\n\nconst FileIconCircle = styled('div')<{ $size: InputSize }>(({ theme, $size }) => ({\n width: dropzoneSizes[$size].circleSize,\n height: dropzoneSizes[$size].circleSize,\n borderRadius: '50%',\n backgroundColor: alpha(theme.palette.primary.main, 0.1),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.primary.main,\n flexShrink: 0,\n}));\n\nconst FileDisplayName = styled('p')<{ $size: InputSize }>(({ theme, $size }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: dropzoneSizes[$size].fontSize,\n color: theme.palette.text.primary,\n maxWidth: '260px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst FileDisplayMeta = styled('p')<{ $size: InputSize }>(({ theme, $size }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 400,\n fontSize: dropzoneSizes[$size].subFontSize,\n color: theme.palette.text.secondary,\n}));\n\n// ─── dropzone — multiple files list ──────────────────────────────────────────\n\nconst FileListContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.3rem',\n width: '100%',\n maxWidth: '340px',\n maxHeight: '160px',\n overflowY: 'auto',\n});\n\nconst FileListRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n padding: '0.3125rem 0.5rem',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: alpha(theme.palette.primary.main, 0.05),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.14)}`,\n textAlign: 'left',\n}));\n\nconst FileListRowIcon = styled('span')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n color: theme.palette.primary.main,\n}));\n\nconst FileListRowBody = styled('span')({\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n gap: '0.05rem',\n});\n\nconst FileListRowName = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n fontWeight: 500,\n color: theme.palette.text.primary,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst FileListRowSize = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.6875rem',\n color: theme.palette.text.secondary,\n}));\n\nconst FileListRowRemove = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1.25rem',\n height: '1.25rem',\n border: 'none',\n background: 'none',\n borderRadius: '50%',\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.1),\n },\n}));\n\n// ─── shared action row ────────────────────────────────────────────────────────\n\nconst FileActionsRow = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n marginTop: '0.25rem',\n});\n\nconst FileActionBtn = styled('button')<{ $variant: 'remove' | 'replace' }>(\n ({ theme, $variant }) => {\n const isRemove = $variant === 'remove';\n return {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.3rem',\n padding: '0.25rem 0.75rem',\n border: '1px solid',\n borderColor: isRemove ? theme.palette.error.main : theme.palette.divider,\n borderRadius: '100px',\n background: 'none',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n fontWeight: 500,\n color: isRemove ? theme.palette.error.main : theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'background-color 150ms ease, border-color 150ms ease, color 150ms ease',\n whiteSpace: 'nowrap',\n '&:hover': isRemove\n ? {\n backgroundColor: alpha(theme.palette.error.main, 0.06),\n borderColor: theme.palette.error.dark,\n color: theme.palette.error.dark,\n }\n : {\n backgroundColor: theme.palette.action.hover,\n borderColor: theme.palette.text.secondary,\n color: theme.palette.text.primary,\n },\n '&:active': { filter: 'brightness(0.93)' },\n '&:disabled': { opacity: 0.5, cursor: 'not-allowed' },\n };\n },\n);\n\n// ─── component ────────────────────────────────────────────────────────────────\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n variant = 'compact',\n browseLabel = 'Przeglądaj',\n noFileLabel = 'Nie wybrano pliku',\n dropzoneLabel,\n dropzoneSublabel,\n dropToUploadLabel = 'Upuść, by wgrać',\n filesSelectedLabel = (n) => `Wybrano ${n} pliki/plików`,\n removeLabel = 'Usuń',\n removeAllLabel = 'Usuń wszystkie',\n changeLabel = 'Zmień',\n clearAriaLabel = 'Wyczyść wybór pliku',\n removeFileAriaLabel = (name) => `Usuń ${name}`,\n removeAllAriaLabel = 'Usuń wszystkie pliki',\n changeAriaLabel = 'Zmień plik',\n chooseFileAriaLabel = 'Wybierz plik',\n id,\n multiple,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const innerRef = useRef<HTMLInputElement | null>(null);\n const [files, setFiles] = useState<File[]>([]);\n const [isDragging, setIsDragging] = useState(false);\n\n const assignRef = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n };\n\n const openPicker = () => {\n if (!disabled) innerRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const list = e.target.files;\n setFiles(list && list.length > 0 ? Array.from(list) : []);\n onChange?.(e);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n setFiles([]);\n if (innerRef.current) innerRef.current.value = '';\n };\n\n const handleRemoveFile = (index: number) => (e: React.MouseEvent) => {\n e.stopPropagation();\n setFiles((prev) => {\n const next = prev.filter((_, i) => i !== index);\n if (innerRef.current && next.length === 0) innerRef.current.value = '';\n return next;\n });\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n if (!disabled) setIsDragging(true);\n };\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (disabled || !innerRef.current) return;\n const dropped = Array.from(e.dataTransfer.files);\n const picked = multiple ? dropped : [dropped[0]].filter(Boolean);\n if (picked.length === 0) return;\n // Set state directly — dispatching a change event would cause handleChange to\n // read e.target.files which is empty (input.files is read-only in browsers),\n // then call setFiles([]) and wipe out the dragged files.\n setFiles(picked);\n try {\n const dt = new DataTransfer();\n picked.forEach((f) => dt.items.add(f));\n innerRef.current.files = dt.files;\n } catch {\n // best-effort native sync for form submission\n }\n };\n\n const hasFiles = files.length > 0;\n const isMultiFile = files.length > 1;\n const ds = dropzoneSizes[size];\n\n const compactLabel = hasFiles\n ? files.length === 1\n ? files[0].name\n : filesSelectedLabel(files.length)\n : noFileLabel;\n\n const hiddenInput = (\n <HiddenInput\n ref={assignRef}\n id={inputId}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n onChange={handleChange}\n {...rest}\n />\n );\n\n // ── dropzone ──────────────────────────────────────────────────────────────\n if (variant === 'dropzone') {\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <DropzoneArea\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n $isDragging={isDragging}\n $hasFile={hasFiles}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {hiddenInput}\n\n {hasFiles ? (\n isMultiFile ? (\n // ── multiple files: scrollable list ──\n <>\n <FileListContainer>\n {files.map((file, i) => (\n <FileListRow key={`${file.name}-${i}`}>\n <FileListRowIcon>\n <FileDocIcon size={14} />\n </FileListRowIcon>\n <FileListRowBody>\n <FileListRowName title={file.name}>{file.name}</FileListRowName>\n <FileListRowSize>{formatSize(file.size)}</FileListRowSize>\n </FileListRowBody>\n <FileListRowRemove\n type=\"button\"\n onClick={handleRemoveFile(i)}\n aria-label={removeFileAriaLabel(file.name)}\n >\n <XIcon />\n </FileListRowRemove>\n </FileListRow>\n ))}\n </FileListContainer>\n <FileActionsRow>\n <FileActionBtn\n type=\"button\"\n $variant=\"remove\"\n onClick={handleClear}\n aria-label={removeAllAriaLabel}\n >\n <TrashIcon />\n {removeAllLabel}\n </FileActionBtn>\n <FileActionBtn\n type=\"button\"\n $variant=\"replace\"\n onClick={openPicker}\n disabled={disabled}\n aria-label={changeAriaLabel}\n >\n <UploadArrowIcon size={11} />\n {changeLabel}\n </FileActionBtn>\n </FileActionsRow>\n </>\n ) : (\n // ── single file: icon card ──\n <>\n <FileIconCircle $size={size}>\n <FileDocIcon size={dropzoneSizes[size].iconSize} />\n </FileIconCircle>\n <FileDisplayName $size={size} title={files[0].name}>\n {files[0].name}\n </FileDisplayName>\n <FileDisplayMeta $size={size}>\n {formatSize(files[0].size)}\n </FileDisplayMeta>\n <FileActionsRow>\n <FileActionBtn\n type=\"button\"\n $variant=\"remove\"\n onClick={handleClear}\n aria-label={removeLabel}\n >\n <TrashIcon />\n {removeLabel}\n </FileActionBtn>\n <FileActionBtn\n type=\"button\"\n $variant=\"replace\"\n onClick={openPicker}\n disabled={disabled}\n aria-label={changeAriaLabel}\n >\n <UploadArrowIcon size={11} />\n {changeLabel}\n </FileActionBtn>\n </FileActionsRow>\n </>\n )\n ) : (\n // ── empty: click-to-browse ──\n <DropzoneClickBtn\n type=\"button\"\n $size={size}\n disabled={disabled}\n onClick={openPicker}\n aria-label={label ? undefined : chooseFileAriaLabel}\n >\n <DropzoneIconWrap $isDragging={isDragging}>\n <CloudUploadIcon size={ds.iconSize + 8} />\n </DropzoneIconWrap>\n <DropzoneText style={{ fontSize: ds.fontSize }}>\n {isDragging\n ? dropToUploadLabel\n : (dropzoneLabel ?? (\n <>Upuść pliki lub <BrowseLink>przeglądaj</BrowseLink></>\n ))}\n </DropzoneText>\n {dropzoneSublabel && (\n <DropzoneText $sub style={{ fontSize: ds.subFontSize }}>\n {dropzoneSublabel}\n </DropzoneText>\n )}\n </DropzoneClickBtn>\n )}\n </DropzoneArea>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n }\n\n // ── compact ───────────────────────────────────────────────────────────────\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <CompactWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {hiddenInput}\n <BrowseBtn\n type=\"button\"\n $size={size}\n $error={error}\n disabled={disabled}\n onClick={openPicker}\n >\n <UploadArrowIcon />\n {browseLabel}\n </BrowseBtn>\n <CompactFileName $hasFile={hasFiles}>{compactLabel}</CompactFileName>\n {hasFiles && (\n <ClearBtn\n type=\"button\"\n onClick={handleClear}\n aria-label={clearAriaLabel}\n tabIndex={-1}\n >\n <XIcon />\n </ClearBtn>\n )}\n </CompactWrapper>\n\n {/* chips appear below the wrapper when multiple files are selected */}\n {hasFiles && isMultiFile && (\n <FileChipList>\n {files.map((file, i) => (\n <FileChip key={`${file.name}-${i}`}>\n <FileChipName title={file.name}>{file.name}</FileChipName>\n <FileChipRemove\n type=\"button\"\n onClick={handleRemoveFile(i)}\n aria-label={removeFileAriaLabel(file.name)}\n >\n <XIcon />\n </FileChipRemove>\n </FileChip>\n ))}\n </FileChipList>\n )}\n\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nFileInput.displayName = 'FileInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { EmailInputProps } from './EmailInput.types';\n\n/** Characters allowed before the @ sign */\nconst LOCAL_CHAR = /^[a-zA-Z0-9._+-]$/;\n/** Characters allowed after the @ sign */\nconst DOMAIN_CHAR = /^[a-zA-Z0-9.-]$/;\n\n/**\n * Strips characters that are invalid for email addresses.\n * Enforces a single @ and applies separate character sets for local/domain parts.\n */\nconst filterEmailString = (value: string): string => {\n const atIdx = value.indexOf('@');\n if (atIdx === -1) {\n return value.replace(/[^a-zA-Z0-9._+-]/g, '');\n }\n const local = value.slice(0, atIdx).replace(/[^a-zA-Z0-9._+-]/g, '');\n const domain = value\n .slice(atIdx + 1)\n .replace(/@/g, '')\n .replace(/[^a-zA-Z0-9.-]/g, '');\n return `${local}@${domain}`;\n};\n\nexport const EmailInput = forwardRef<HTMLInputElement, EmailInputProps>(\n ({ onKeyDown, onPaste, ...props }, ref) => {\n const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n // Pass through control keys and key combos\n if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;\n\n const input = e.currentTarget;\n const { value } = input;\n const atIdx = value.indexOf('@');\n const hasAt = atIdx !== -1;\n const cursor = input.selectionStart ?? value.length;\n\n if (e.key === '@') {\n if (hasAt) e.preventDefault();\n return;\n }\n\n const inDomain = hasAt && cursor > atIdx;\n if (!(inDomain ? DOMAIN_CHAR : LOCAL_CHAR).test(e.key)) {\n e.preventDefault();\n }\n };\n\n const handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (e) => {\n onPaste?.(e);\n if (e.defaultPrevented) return;\n\n e.preventDefault();\n const input = e.currentTarget;\n const pasted = e.clipboardData.getData('text');\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n const merged = input.value.slice(0, start) + pasted + input.value.slice(end);\n const filtered = filterEmailString(merged);\n\n // Use native setter so React picks up the change via the dispatched input event\n const setter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value')?.set;\n setter?.call(input, filtered);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n };\n\n return (\n <BaseInput\n ref={ref}\n type=\"email\"\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n {...props}\n />\n );\n },\n);\n\nEmailInput.displayName = 'EmailInput';\n","import { useId, useRef, useState, useEffect, useCallback } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n DropdownPanel as BaseDropdownPanel,\n Chevron,\n} from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { BaseSelectInputProps, SelectOption } from '@/components';\n\nconst triggerColors = (theme: Theme, error: boolean, open: boolean) => ({\n borderColor: open\n ? error\n ? theme.palette.error.main\n : theme.palette.primary.main\n : error\n ? theme.palette.error.main\n : theme.palette.divider,\n boxShadow: open\n ? `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`\n : 'none',\n '&:hover:not(:disabled)': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n});\n\ninterface StyledTriggerProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $open: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n position: 'relative',\n}));\n\nconst Trigger = styled('button')<StyledTriggerProps>(\n ({ theme, $size, $fullWidth, $error, $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n cursor: 'pointer',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n outline: 'none',\n textAlign: 'left',\n ...inputSizeMap[$size],\n height: inputHeightMap[$size],\n paddingBlock: 0,\n ...triggerColors(theme, $error, $open),\n '&:disabled': {\n backgroundColor: theme.palette.action.disabledBackground,\n borderColor: theme.palette.action.disabled,\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n);\n\nconst TriggerContent = styled('span')({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n});\n\nconst ChevronWrapper = styled('span')<{ $open: boolean }>(({ $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n marginLeft: '0.5rem',\n transition: 'transform 150ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst DropdownPanel = styled(BaseDropdownPanel)({\n right: 0,\n maxHeight: '240px',\n overflowY: 'auto',\n});\n\nconst OptionItem = styled('div')<{ $disabled: boolean; $size: InputSize }>(\n ({ theme, $disabled, $size }) => ({\n padding: '0.5rem 0.75rem',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n fontSize: inputSizeMap[$size].fontSize,\n fontFamily: theme.typography.fontFamily,\n color: $disabled ? theme.palette.action.disabled : theme.palette.text.primary,\n ...(!$disabled && {\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n }),\n }),\n);\n\nconst DEFAULT_PLACEHOLDER = 'Wybierz…';\n\nexport const BaseSelectInput = ({\n options,\n value,\n placeholder = DEFAULT_PLACEHOLDER,\n onSelect,\n renderTrigger,\n renderOption,\n isSelected,\n open: controlledOpen,\n onOpenChange,\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n id,\n}: BaseSelectInputProps) => {\n const checkSelected = isSelected ?? ((option: SelectOption) => option.value === value);\n const autoId = useId();\n const inputId = id ?? autoId;\n const listboxId = `${inputId}-listbox`;\n\n const [internalOpen, setInternalOpen] = useState(false);\n const isOpen = controlledOpen ?? internalOpen;\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => {\n setInternalOpen(false);\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n const toggle = () => {\n const next = !isOpen;\n setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (!option.disabled) {\n onSelect?.(option, close);\n }\n };\n\n useEffect(() => {\n if (!isOpen) return;\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n close();\n }\n };\n document.addEventListener('mousedown', handleMouseDown);\n return () => document.removeEventListener('mousedown', handleMouseDown);\n }, [isOpen, close]);\n\n const selectedLabel = options.find((o) => o.value === value)?.label;\n\n const defaultTriggerContent = (\n <span style={{ opacity: selectedLabel ? 1 : 0.5 }}>{selectedLabel ?? placeholder}</span>\n );\n\n return (\n <Root $fullWidth={fullWidth} ref={rootRef}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <Trigger\n type=\"button\"\n id={inputId}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? listboxId : undefined}\n onClick={toggle}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $open={isOpen}\n >\n <TriggerContent>{renderTrigger ? renderTrigger() : defaultTriggerContent}</TriggerContent>\n <ChevronWrapper $open={isOpen}>\n <Chevron />\n </ChevronWrapper>\n </Trigger>\n {isOpen && (\n <DropdownPanel id={listboxId} role=\"listbox\">\n {options.map((option) => (\n <OptionItem\n key={option.value}\n role=\"option\"\n aria-selected={checkSelected(option)}\n aria-disabled={option.disabled}\n $disabled={!!option.disabled}\n $size={size}\n onClick={() => handleSelect(option)}\n onKeyDown={(e) => e.key === 'Enter' && handleSelect(option)}\n tabIndex={option.disabled ? -1 : 0}\n >\n {renderOption ? renderOption(option) : option.label}\n </OptionItem>\n ))}\n </DropdownPanel>\n )}\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n};\n\nBaseSelectInput.displayName = 'BaseSelectInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { NumberInputProps } from '@/components';\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (props, ref) => <BaseInput ref={ref} type=\"number\" {...props} />,\n);\n\nNumberInput.displayName = 'NumberInput';\n","import { styled } from '@mui/material/styles';\nimport { BaseSelectInput } from '@/components';\nimport type { SelectOption } from '@/components';\nimport type { MultiSelectInputProps } from './MultiSelectInput.types';\n\nconst ChipList = styled('span')({\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.25rem',\n overflow: 'hidden',\n});\n\nconst Chip = styled('span')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n padding: '0.125rem 0.375rem',\n borderRadius: '0.25rem',\n backgroundColor: theme.palette.primary.main + '22',\n color: theme.palette.primary.main,\n fontSize: '0.75em',\n fontWeight: 500,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n}));\n\nconst OptionRow = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n});\n\nconst CheckboxBox = styled('span')<{ $checked: boolean }>(({ theme, $checked }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1rem',\n height: '1rem',\n border: `2px solid ${$checked ? theme.palette.primary.main : theme.palette.divider}`,\n borderRadius: '2px',\n backgroundColor: $checked ? theme.palette.primary.main : 'transparent',\n color: theme.palette.primary.contrastText,\n flexShrink: 0,\n transition: 'background-color 150ms ease, border-color 150ms ease',\n}));\n\nconst CheckmarkIcon = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"0.65rem\"\n height=\"0.65rem\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={3}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\nconst renderTrigger = (value: string[], options: SelectOption[], placeholder: string) => {\n const MultiSelectTrigger = () => {\n if (value.length === 0) {\n return <span style={{ opacity: 0.5 }}>{placeholder}</span>;\n }\n return (\n <ChipList>\n {value.map((v) => {\n const label = options.find((o) => o.value === v)?.label ?? v;\n return <Chip key={v}>{label}</Chip>;\n })}\n </ChipList>\n );\n };\n MultiSelectTrigger.displayName = 'MultiSelectTrigger';\n return MultiSelectTrigger;\n};\n\nconst renderOption = (value: string[]) => {\n const MultiSelectOption = (option: SelectOption) => (\n <OptionRow>\n <CheckboxBox $checked={value.includes(option.value)}>\n {value.includes(option.value) && <CheckmarkIcon />}\n </CheckboxBox>\n {option.label}\n </OptionRow>\n );\n MultiSelectOption.displayName = 'MultiSelectOption';\n return MultiSelectOption;\n};\n\nexport const MultiSelectInput = ({\n value = [],\n onChange,\n options,\n placeholder = 'Wybierz…',\n ...rest\n}: MultiSelectInputProps) => (\n <BaseSelectInput\n options={options}\n placeholder={placeholder}\n onSelect={(option) => {\n const next = value.includes(option.value)\n ? value.filter((v) => v !== option.value)\n : [...value, option.value];\n onChange?.(next);\n }}\n isSelected={(option) => value.includes(option.value)}\n renderTrigger={renderTrigger(value, options, placeholder)}\n renderOption={renderOption(value)}\n {...rest}\n />\n);\n\nMultiSelectInput.displayName = 'MultiSelectInput';\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { BaseInput } from '@/components';\nimport type { PasswordInputProps } from './PasswordInput.types';\n\nconst ToggleButton = styled('button')(({ theme }) => ({\n background: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n '&:hover': {\n color: theme.palette.text.primary,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst EyeIcon = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n);\n\nconst EyeOffIcon = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n);\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n ({\n disabled,\n showPasswordLabel = 'Pokaż hasło',\n hidePasswordLabel = 'Ukryj hasło',\n ...props\n }, ref) => {\n const [show, setShow] = useState(false);\n\n return (\n <BaseInput\n ref={ref}\n type={show ? 'text' : 'password'}\n disabled={disabled}\n endAdornment={\n <ToggleButton\n type=\"button\"\n aria-label={show ? hidePasswordLabel : showPasswordLabel}\n onClick={() => setShow((s) => !s)}\n disabled={disabled}\n tabIndex={-1}\n >\n {show ? <EyeOffIcon /> : <EyeIcon />}\n </ToggleButton>\n }\n {...props}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n","import { forwardRef, useRef, useState, useCallback } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { BaseInput } from '@/components';\nimport type { SearchInputProps } from './SearchInput.types';\n\nconst ClearButton = styled('button')(({ theme }) => ({\n background: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n borderRadius: '50%',\n '&:hover': {\n color: theme.palette.text.primary,\n },\n}));\n\nconst SearchIcon = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst XIcon = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\nexport const SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\n ({ value, onChange, onClear, clearAriaLabel = 'Wyczyść', ...props }, forwardedRef) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n const attachRef = useCallback(\n (el: HTMLInputElement | null) => {\n (innerRef as React.MutableRefObject<HTMLInputElement | null>).current = el;\n if (typeof forwardedRef === 'function') forwardedRef(el);\n else if (forwardedRef)\n (forwardedRef as React.MutableRefObject<HTMLInputElement | null>).current = el;\n },\n [forwardedRef],\n );\n\n const isControlled = value !== undefined;\n const [localValue, setLocalValue] = useState('');\n const hasValue = isControlled ? !!value : !!localValue;\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (!isControlled) setLocalValue(e.target.value);\n onChange?.(e);\n };\n\n const handleClear = () => {\n if (!isControlled) {\n setLocalValue('');\n if (innerRef.current) {\n const setter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value',\n )?.set;\n setter?.call(innerRef.current, '');\n innerRef.current.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n onClear?.();\n innerRef.current?.focus();\n };\n\n return (\n <BaseInput\n ref={attachRef}\n type=\"search\"\n value={value}\n onChange={handleChange}\n startAdornment={<SearchIcon />}\n endAdornment={\n hasValue ? (\n <ClearButton type=\"button\" aria-label={clearAriaLabel} onClick={handleClear}>\n <XIcon />\n </ClearButton>\n ) : undefined\n }\n {...props}\n />\n );\n },\n);\n\nSearchInput.displayName = 'SearchInput';\n","import { BaseSelectInput } from '@/components';\nimport type { SelectOption } from '@/components';\nimport type { SelectInputProps } from './SelectInput.types';\n\nconst Checkmark = () => (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"1em\"\n height=\"1em\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\nconst renderOption = (selected: string | undefined) => {\n const SelectOption = (option: SelectOption) => (\n <span style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '0.5rem' }}>\n {option.label}\n {option.value === selected && <Checkmark />}\n </span>\n );\n SelectOption.displayName = 'SelectOption';\n return SelectOption;\n};\n\nexport const SelectInput = ({ onChange, value, ...rest }: SelectInputProps) => (\n <BaseSelectInput\n value={value}\n onSelect={(option, close) => {\n onChange?.(option.value);\n close();\n }}\n renderOption={renderOption(value)}\n {...rest}\n />\n);\n\nSelectInput.displayName = 'SelectInput';\n","import { forwardRef, useId } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { Label, HelperText, inputSizeMap } from '@/components/atoms/inputs/elements';\nimport type { TextareaInputProps } from '@/components';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\n\nconst borderColors = (theme: Theme, error: boolean) => ({\n borderColor: error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within):not([data-disabled])': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`,\n },\n});\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst StyledTextarea = styled('textarea')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'block',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n color: $disabled ? theme.palette.action.disabled : theme.palette.text.primary,\n resize: 'vertical',\n outline: 'none',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n cursor: $disabled ? 'not-allowed' : 'text',\n boxSizing: 'border-box',\n ...inputSizeMap[$size],\n ...borderColors(theme, $error),\n ...($disabled && {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }),\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n}));\n\nexport const TextareaInput = forwardRef<HTMLTextAreaElement, TextareaInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n rows = 4,\n disabled = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <StyledTextarea\n ref={ref}\n id={inputId}\n rows={rows}\n disabled={disabled}\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n {...rest}\n />\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nTextareaInput.displayName = 'TextareaInput';\n","import type { CountryFlagProps } from './CountryFlag.types';\n\nconst sizeMap = { sm: '1em', md: '1.25em', lg: '1.75em' };\n\nconst toFlagEmoji = (code: string): string =>\n code\n .toUpperCase()\n .replace(/[A-Z]/g, (char) => String.fromCodePoint(0x1f1e6 + char.charCodeAt(0) - 65));\n\nexport const CountryFlag = ({ countryCode, size = 'md', style, ...rest }: CountryFlagProps) => (\n <span\n role=\"img\"\n aria-label={`Flag: ${countryCode}`}\n style={{ fontSize: sizeMap[size], lineHeight: 1, display: 'inline-flex', ...style }}\n {...rest}\n >\n {toFlagEmoji(countryCode)}\n </span>\n);\n\nCountryFlag.displayName = 'CountryFlag';\n","{\n \"countries\": [\n {\n \"flagCode\": \"AU\",\n \"country\": \"Australia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 15,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 15\"\n },\n {\n \"flagCode\": \"DE\",\n \"country\": \"Niemcy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 13\"\n },\n {\n \"flagCode\": \"SE\",\n \"country\": \"Szwecja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 13\"\n },\n {\n \"flagCode\": \"AT\",\n \"country\": \"Austria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 13\"\n },\n {\n \"flagCode\": \"CN\",\n \"country\": \"Chiny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 12\"\n },\n {\n \"flagCode\": \"CZ\",\n \"country\": \"Czechy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"CH\",\n \"country\": \"Szwajcaria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"RS\",\n \"country\": \"Serbia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"SG\",\n \"country\": \"Singapur\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 12\"\n },\n {\n \"flagCode\": \"FI\",\n \"country\": \"Finlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 12\"\n },\n {\n \"flagCode\": \"HR\",\n \"country\": \"Chorwacja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 12\"\n },\n {\n \"flagCode\": \"ME\",\n \"country\": \"Czarnogóra\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"PK\",\n \"country\": \"Pakistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"IT\",\n \"country\": \"Włochy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": null,\n \"phoneNumberLengthByCountry_phLength\": \"up to 11\"\n },\n {\n \"flagCode\": \"KR\",\n \"country\": \"Korea Południowa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"PE\",\n \"country\": \"Peru\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"PG\",\n \"country\": \"Papua Nowa Gwinea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"PT\",\n \"country\": \"Portugalia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 or 11\"\n },\n {\n \"flagCode\": \"SV\",\n \"country\": \"Salwador\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7, 8 or 11\"\n },\n {\n \"flagCode\": \"IE\",\n \"country\": \"Irlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 11\"\n },\n {\n \"flagCode\": \"UY\",\n \"country\": \"Urugwaj\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"CY\",\n \"country\": \"Cypr\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 11\"\n },\n {\n \"flagCode\": \"LU\",\n \"country\": \"Luksemburg\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"VA\",\n \"country\": \"Watykan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": null,\n \"phoneNumberLengthByCountry_phLength\": \"up to 11\"\n },\n {\n \"flagCode\": \"IN\",\n \"country\": \"Indie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"US\",\n \"country\": \"Stany Zjednoczone\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"ID\",\n \"country\": \"Indonezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 10\"\n },\n {\n \"flagCode\": \"NG\",\n \"country\": \"Nigeria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"BR\",\n \"country\": \"Brazylia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"BD\",\n \"country\": \"Bangladesz\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"RU\",\n \"country\": \"Rosja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"MX\",\n \"country\": \"Meksyk\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"JP\",\n \"country\": \"Japonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"PH\",\n \"country\": \"Filipiny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"VN\",\n \"country\": \"Wietnam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"IR\",\n \"country\": \"Iran\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"TR\",\n \"country\": \"Turcja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"GB\",\n \"country\": \"Wielka Brytania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"KE\",\n \"country\": \"Kenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"CO\",\n \"country\": \"Kolumbia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 10\"\n },\n {\n \"flagCode\": \"IQ\",\n \"country\": \"Irak\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"AR\",\n \"country\": \"Argentyna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"CA\",\n \"country\": \"Kanada\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"MG\",\n \"country\": \"Madagaskar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"VE\",\n \"country\": \"Wenezuela\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"KP\",\n \"country\": \"Korea Północna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 10\"\n },\n {\n \"flagCode\": \"SY\",\n \"country\": \"Syria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"KZ\",\n \"country\": \"Kazachstan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"DO\",\n \"country\": \"Dominikana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(809/829) + 7\"\n },\n {\n \"flagCode\": \"GR\",\n \"country\": \"Grecja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"BY\",\n \"country\": \"Białoruś\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"NZ\",\n \"country\": \"Nowa Zelandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 10\"\n },\n {\n \"flagCode\": \"PR\",\n \"country\": \"Portoryko\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(787/939) + 7\"\n },\n {\n \"flagCode\": \"QA\",\n \"country\": \"Katar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6, 7, 10\"\n },\n {\n \"flagCode\": \"NA\",\n \"country\": \"Namibia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"JM\",\n \"country\": \"Jamajka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(876) + 7\"\n },\n {\n \"flagCode\": \"TT\",\n \"country\": \"Trynidad i Tobago\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(868) + 7\"\n },\n {\n \"flagCode\": \"EE\",\n \"country\": \"Estonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"BS\",\n \"country\": \"Bahamy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(242) + 7\"\n },\n {\n \"flagCode\": \"BB\",\n \"country\": \"Barbados\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(246) + 7\"\n },\n {\n \"flagCode\": \"LC\",\n \"country\": \"Saint Lucia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(758) + 7\"\n },\n {\n \"flagCode\": \"GU\",\n \"country\": \"Guam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(671) + 7\"\n },\n {\n \"flagCode\": \"GD\",\n \"country\": \"Grenada\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(473) + 7\"\n },\n {\n \"flagCode\": \"VC\",\n \"country\": \"Saint Vincent i Grenadyny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(784) + 7\"\n },\n {\n \"flagCode\": \"AG\",\n \"country\": \"Antigua i Barbuda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(268) + 7\"\n },\n {\n \"flagCode\": \"VI\",\n \"country\": \"Wyspy Dziewicze Stanów Zjednoczonych\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(340) + 7\"\n },\n {\n \"flagCode\": \"KY\",\n \"country\": \"Kajmany\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(345) + 7\"\n },\n {\n \"flagCode\": \"DM\",\n \"country\": \"Dominika\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(767) + 7\"\n },\n {\n \"flagCode\": \"BM\",\n \"country\": \"Bermudy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(441) + 7\"\n },\n {\n \"flagCode\": \"TC\",\n \"country\": \"Turks i Caicos\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(649) + 7\"\n },\n {\n \"flagCode\": \"KN\",\n \"country\": \"Saint Kitts i Nevis\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(869) + 7\"\n },\n {\n \"flagCode\": \"AS\",\n \"country\": \"Samoa Amerykańskie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(684) + 7\"\n },\n {\n \"flagCode\": \"SX\",\n \"country\": \"Sint Maarten\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(721) + 7\"\n },\n {\n \"flagCode\": \"VG\",\n \"country\": \"Brytyjskie Wyspy Dziewicze\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(284) + 7\"\n },\n {\n \"flagCode\": \"SM\",\n \"country\": \"San Marino\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"AI\",\n \"country\": \"Anguilla\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(264) + 7\"\n },\n {\n \"flagCode\": \"MS\",\n \"country\": \"Montserrat\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(664) + 7\"\n },\n {\n \"flagCode\": \"ET\",\n \"country\": \"Etiopia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"EG\",\n \"country\": \"Egipt\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"CD\",\n \"country\": \"Demokratyczna Republika Konga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"TZ\",\n \"country\": \"Tanzania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"TH\",\n \"country\": \"Tajlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 9\"\n },\n {\n \"flagCode\": \"FR\",\n \"country\": \"Francja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"ZA\",\n \"country\": \"Republika Południowej Afryki\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MM\",\n \"country\": \"Mjanma\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"SD\",\n \"country\": \"Sudan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"UG\",\n \"country\": \"Uganda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"DZ\",\n \"country\": \"Algieria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 9\"\n },\n {\n \"flagCode\": \"ES\",\n \"country\": \"Hiszpania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AF\",\n \"country\": \"Afganistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"YE\",\n \"country\": \"Jemen\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 9\"\n },\n {\n \"flagCode\": \"AO\",\n \"country\": \"Angola\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"UA\",\n \"country\": \"Ukraina\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MA\",\n \"country\": \"Maroko\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"PL\",\n \"country\": \"Polska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 9\"\n },\n {\n \"flagCode\": \"UZ\",\n \"country\": \"Uzbekistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MZ\",\n \"country\": \"Mozambik\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"MY\",\n \"country\": \"Malezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"GH\",\n \"country\": \"Ghana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"SA\",\n \"country\": \"Arabia Saudyjska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"NP\",\n \"country\": \"Nepal\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LK\",\n \"country\": \"Sri Lanka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"TW\",\n \"country\": \"Tajwan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"ZM\",\n \"country\": \"Zambia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"CL\",\n \"country\": \"Chile\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"SN\",\n \"country\": \"Senegal\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"RO\",\n \"country\": \"Rumunia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"NL\",\n \"country\": \"Holandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"ZW\",\n \"country\": \"Zimbabwe\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"RW\",\n \"country\": \"Rwanda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"BE\",\n \"country\": \"Belgia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"JO\",\n \"country\": \"Jordania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"AE\",\n \"country\": \"Zjednoczone Emiraty Arabskie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"TJ\",\n \"country\": \"Tadżykistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AZ\",\n \"country\": \"Azerbejdżan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"IL\",\n \"country\": \"Izrael\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"HU\",\n \"country\": \"Węgry\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LA\",\n \"country\": \"Laos\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LY\",\n \"country\": \"Libia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"KG\",\n \"country\": \"Kirgistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"HK\",\n \"country\": \"Hongkong\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4, 8 to 9\"\n },\n {\n \"flagCode\": \"PY\",\n \"country\": \"Paragwaj\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"BG\",\n \"country\": \"Bułgaria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"SK\",\n \"country\": \"Słowacja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 9\"\n },\n {\n \"flagCode\": \"AL\",\n \"country\": \"Albania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 9\"\n },\n {\n \"flagCode\": \"IS\",\n \"country\": \"Islandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 9\"\n },\n {\n \"flagCode\": \"GP\",\n \"country\": \"Gwadelupa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MQ\",\n \"country\": \"Martynika\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"GF\",\n \"country\": \"Gujana Francuska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AD\",\n \"country\": \"Andora\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6, 8 or 9\"\n },\n {\n \"flagCode\": \"LI\",\n \"country\": \"Liechtenstein\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"MC\",\n \"country\": \"Monako\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"CI\",\n \"country\": \"Wybrzeże Kości Słoniowej\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"CM\",\n \"country\": \"Kamerun\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"NE\",\n \"country\": \"Niger\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"ML\",\n \"country\": \"Mali\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BF\",\n \"country\": \"Burkina Faso\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MW\",\n \"country\": \"Malawi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"SO\",\n \"country\": \"Somalia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 8\"\n },\n {\n \"flagCode\": \"GT\",\n \"country\": \"Gwatemala\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"EC\",\n \"country\": \"Ekwador\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"KH\",\n \"country\": \"Kambodża\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"GN\",\n \"country\": \"Gwinea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BJ\",\n \"country\": \"Benin\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BI\",\n \"country\": \"Burundi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BO\",\n \"country\": \"Boliwia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TN\",\n \"country\": \"Tunezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"HT\",\n \"country\": \"Haiti\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"HN\",\n \"country\": \"Honduras\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"CU\",\n \"country\": \"Kuba\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 8\"\n },\n {\n \"flagCode\": \"SL\",\n \"country\": \"Sierra Leone\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TM\",\n \"country\": \"Turkmenistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"NI\",\n \"country\": \"Nikaragua\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"DK\",\n \"country\": \"Dania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LB\",\n \"country\": \"Liban\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"LR\",\n \"country\": \"Liberia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"CF\",\n \"country\": \"Republika Środkowoafrykańska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"OM\",\n \"country\": \"Oman\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"NO\",\n \"country\": \"Norwegia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 8\"\n },\n {\n \"flagCode\": \"CR\",\n \"country\": \"Kostaryka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"KW\",\n \"country\": \"Kuwejt\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"PA\",\n \"country\": \"Panama\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"GE\",\n \"country\": \"Gruzja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MN\",\n \"country\": \"Mongolia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"BA\",\n \"country\": \"Bośnia i Hercegowina\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MD\",\n \"country\": \"Mołdawia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"AM\",\n \"country\": \"Armenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LT\",\n \"country\": \"Litwa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BW\",\n \"country\": \"Botswana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"LS\",\n \"country\": \"Lesotho\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"SI\",\n \"country\": \"Słowenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LV\",\n \"country\": \"Łotwa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"MK\",\n \"country\": \"Macedonia Północna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BH\",\n \"country\": \"Bahrajn\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"SZ\",\n \"country\": \"Eswatini\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"BT\",\n \"country\": \"Bhutan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"MO\",\n \"country\": \"Makao\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"MT\",\n \"country\": \"Malta\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"CW\",\n \"country\": \"Curaçao\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"GI\",\n \"country\": \"Gibraltar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TD\",\n \"country\": \"Czad\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"TG\",\n \"country\": \"Togo\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"CG\",\n \"country\": \"Republika Konga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"MR\",\n \"country\": \"Mauretania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"ER\",\n \"country\": \"Erytrea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GM\",\n \"country\": \"Gambia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GA\",\n \"country\": \"Gabon\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 or 7\"\n },\n {\n \"flagCode\": \"GW\",\n \"country\": \"Gwinea Bissau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"TL\",\n \"country\": \"Timor Wschodni\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"MU\",\n \"country\": \"Mauritius\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"FJ\",\n \"country\": \"Fidżi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"KM\",\n \"country\": \"Komory\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GY\",\n \"country\": \"Gujana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"SR\",\n \"country\": \"Surinam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"MV\",\n \"country\": \"Malediwy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"CV\",\n \"country\": \"Wyspy Zielonego Przylądka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"BN\",\n \"country\": \"Brunei\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"BZ\",\n \"country\": \"Belize\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"VU\",\n \"country\": \"Vanuatu\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 7\"\n },\n {\n \"flagCode\": \"ST\",\n \"country\": \"Wyspy Świętego Tomasza i Książęca\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"WS\",\n \"country\": \"Samoa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 7\"\n },\n {\n \"flagCode\": \"FM\",\n \"country\": \"Mikronezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"AW\",\n \"country\": \"Aruba\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"TO\",\n \"country\": \"Tonga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 7\"\n },\n {\n \"flagCode\": \"MH\",\n \"country\": \"Wyspy Marshalla\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"PW\",\n \"country\": \"Palau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"NR\",\n \"country\": \"Nauru\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 or 7\"\n },\n {\n \"flagCode\": \"GQ\",\n \"country\": \"Gwinea Równikowa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"DJ\",\n \"country\": \"Dżibuti\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"NC\",\n \"country\": \"Nowa Kaledonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"PF\",\n \"country\": \"Polinezja Francuska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"SC\",\n \"country\": \"Seszele\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"FO\",\n \"country\": \"Wyspy Owcze\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"GL\",\n \"country\": \"Grenlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"WF\",\n \"country\": \"Wallis i Futuna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"TV\",\n \"country\": \"Tuvalu\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 6\"\n },\n {\n \"flagCode\": \"PM\",\n \"country\": \"Saint-Pierre i Miquelon\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"SB\",\n \"country\": \"Wyspy Salomona\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"KI\",\n \"country\": \"Kiribati\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"CK\",\n \"country\": \"Wyspy Cooka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"FK\",\n \"country\": \"Falklandy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"TK\",\n \"country\": \"Tokelau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 4,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": 4\n },\n {\n \"flagCode\": \"NU\",\n \"country\": \"Niue\",\n \"phoneNumberLengthByCountry_phLengthMax\": 4,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": 4\n }\n ]\n}\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useCallback,\n useEffect,\n useMemo,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { getCountryCallingCode, type CountryCode } from 'libphonenumber-js';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n DropdownPanel as BaseDropdownPanel,\n Chevron,\n} from '@/components/atoms/inputs/elements';\nimport { CountryFlag } from '@/components/atoms/CountryFlag';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { PhoneInputProps, PhoneCountry } from '@/components';\nimport phoneData from '@/data/countries.json';\n\nconst COUNTRIES: PhoneCountry[] = phoneData.countries\n .map((c) => {\n let dialCode = '';\n try {\n dialCode = '+' + getCountryCallingCode(c.flagCode as CountryCode);\n } catch {\n dialCode = '';\n }\n return {\n flagCode: c.flagCode,\n country: c.country,\n dialCode,\n maxLength: c.phoneNumberLengthByCountry_phLengthMax,\n minLength: c.phoneNumberLengthByCountry_phLengthMin ?? 1,\n };\n })\n .sort((a, b) => a.country.localeCompare(b.country, 'pl'));\n\nconst DEFAULT_COUNTRY = COUNTRIES.find((c) => c.flagCode === 'US') ?? COUNTRIES[0];\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst wrapperColors = (theme: Theme, error: boolean, focused: boolean) => ({\n borderColor: focused\n ? error\n ? theme.palette.error.main\n : theme.palette.primary.main\n : error\n ? theme.palette.error.main\n : theme.palette.divider,\n boxShadow: focused\n ? `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`\n : 'none',\n '&:hover': {\n borderColor: !focused\n ? error\n ? theme.palette.error.dark\n : theme.palette.text.secondary\n : undefined,\n },\n});\n\ninterface WrapperProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $focused: boolean;\n $disabled: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst InputWrapper = styled('div')<WrapperProps>(\n ({ theme, $size, $fullWidth, $error, $focused, $disabled }) => ({\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n height: inputHeightMap[$size],\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n fontSize: inputSizeMap[$size].fontSize,\n overflow: 'visible',\n ...($disabled\n ? {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }\n : wrapperColors(theme, $error, $focused)),\n }),\n);\n\nconst CountryTrigger = styled('button')<{ $size: InputSize }>(({ theme, $size }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n alignSelf: 'stretch',\n gap: '0.375rem',\n flexShrink: 0,\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n background: 'none',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst DialCode = styled('span')({\n fontVariantNumeric: 'tabular-nums',\n whiteSpace: 'nowrap',\n});\n\nconst ChevronIcon = styled('span')<{ $open: boolean }>(({ $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n transition: 'transform 150ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst Divider = styled('span')(({ theme }) => ({\n width: '1px',\n alignSelf: 'stretch',\n backgroundColor: theme.palette.divider,\n flexShrink: 0,\n margin: '4px 0',\n}));\n\nconst StyledInput = styled('input')<{ $size: InputSize }>(({ theme, $size }) => ({\n flex: 1,\n minWidth: 0,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: theme.palette.text.primary,\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst DropdownPanel = styled(BaseDropdownPanel)({\n minWidth: '280px',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n});\n\nconst SearchBox = styled('div')(({ theme }) => ({\n padding: '0.5rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n}));\n\nconst SearchInput = styled('input')(({ theme }) => ({\n width: '100%',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n padding: '0.25rem 0.5rem',\n fontSize: '0.875rem',\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n background: theme.palette.background.paper,\n outline: 'none',\n '&:focus': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 2px ${theme.palette.primary.main}33`,\n },\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n}));\n\nconst OptionList = styled('ul')({\n listStyle: 'none',\n margin: 0,\n padding: '0.25rem 0',\n overflowY: 'auto',\n maxHeight: '220px',\n});\n\nconst OptionItem = styled('li')<{ $selected: boolean }>(({ theme, $selected }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n padding: '0.375rem 0.75rem',\n cursor: 'pointer',\n fontSize: '0.875rem',\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n backgroundColor: $selected ? theme.palette.action.selected : 'transparent',\n '&:hover': {\n backgroundColor: $selected ? theme.palette.action.selected : theme.palette.action.hover,\n },\n}));\n\nconst CountryName = styled('span')({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n});\n\nconst OptionDialCode = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary,\n flexShrink: 0,\n fontVariantNumeric: 'tabular-nums',\n}));\n\nconst EmptyMessage = styled('p')(({ theme }) => ({\n margin: 0,\n padding: '0.75rem',\n textAlign: 'center',\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const PhoneInput = forwardRef<HTMLInputElement, PhoneInputProps>(\n (\n {\n value,\n defaultValue = '',\n defaultCountry,\n onChange,\n onCountryChange,\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n placeholder,\n id,\n countrySelectAriaLabel = (country, dialCode) => `Wybierz kraj, aktualny: ${country} (${dialCode})`,\n phoneAriaLabel = 'Numer telefonu',\n countryListAriaLabel = 'Wybierz kraj',\n countrySearchPlaceholder = 'Szukaj kraju…',\n countrySearchAriaLabel = 'Szukaj kraju',\n digitsLabel = 'cyfr',\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const listboxId = `${inputId}-listbox`;\n\n const initialCountry = useMemo(\n () => COUNTRIES.find((c) => c.flagCode === defaultCountry) ?? DEFAULT_COUNTRY,\n [defaultCountry],\n );\n\n const [selectedCountry, setSelectedCountry] = useState<PhoneCountry>(initialCountry);\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [focused, setFocused] = useState(false);\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue);\n const phoneValue = isControlled ? value : internalValue;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const filteredCountries = useMemo(() => {\n const q = searchQuery.toLowerCase().trim();\n if (!q) return COUNTRIES;\n return COUNTRIES.filter(\n (c) =>\n c.country.toLowerCase().includes(q) ||\n c.flagCode.toLowerCase().includes(q) ||\n c.dialCode.includes(q),\n );\n }, [searchQuery]);\n\n const close = useCallback(() => {\n setIsOpen(false);\n setSearchQuery('');\n }, []);\n\n const openDropdown = () => {\n if (disabled) return;\n setIsOpen((prev) => !prev);\n if (!isOpen) {\n setTimeout(() => searchRef.current?.focus(), 0);\n }\n };\n\n const selectCountry = (country: PhoneCountry) => {\n setSelectedCountry(country);\n onCountryChange?.(country);\n close();\n if (!isControlled) setInternalValue('');\n onChange?.('', { country, dialCode: country.dialCode, fullNumber: country.dialCode });\n };\n\n const handlePhoneChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value.replace(/\\D/g, '');\n const clamped = raw.slice(0, selectedCountry.maxLength);\n if (!isControlled) setInternalValue(clamped);\n onChange?.(clamped, {\n country: selectedCountry,\n dialCode: selectedCountry.dialCode,\n fullNumber: selectedCountry.dialCode + clamped,\n });\n };\n\n const handlePhoneKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;\n if (!/^\\d$/.test(e.key)) e.preventDefault();\n };\n\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [isOpen, close]);\n\n const derivedPlaceholder =\n placeholder ??\n (selectedCountry.minLength === selectedCountry.maxLength\n ? `${selectedCountry.maxLength} ${digitsLabel}`\n : `${selectedCountry.minLength}–${selectedCountry.maxLength} ${digitsLabel}`);\n\n return (\n <Root $fullWidth={fullWidth} ref={rootRef}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <InputWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $focused={focused || isOpen}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n >\n <CountryTrigger\n type=\"button\"\n $size={size}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? listboxId : undefined}\n aria-label={countrySelectAriaLabel(selectedCountry.country, selectedCountry.dialCode)}\n onClick={openDropdown}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <CountryFlag countryCode={selectedCountry.flagCode} size={size} />\n <DialCode>{selectedCountry.dialCode}</DialCode>\n <ChevronIcon $open={isOpen}>\n <Chevron />\n </ChevronIcon>\n </CountryTrigger>\n\n <Divider aria-hidden />\n\n <StyledInput\n ref={ref}\n id={inputId}\n $size={size}\n type=\"tel\"\n inputMode=\"numeric\"\n value={phoneValue}\n onChange={handlePhoneChange}\n onKeyDown={handlePhoneKeyDown}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n disabled={disabled}\n placeholder={derivedPlaceholder}\n maxLength={selectedCountry.maxLength}\n aria-label={label ? undefined : phoneAriaLabel}\n />\n\n {isOpen && (\n <DropdownPanel id={listboxId} role=\"listbox\" aria-label={countryListAriaLabel}>\n <SearchBox>\n <SearchInput\n ref={searchRef}\n type=\"search\"\n placeholder={countrySearchPlaceholder}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n aria-label={countrySearchAriaLabel}\n />\n </SearchBox>\n <OptionList>\n {filteredCountries.length === 0 ? (\n <EmptyMessage>Nie znaleziono kraju</EmptyMessage>\n ) : (\n filteredCountries.map((country) => {\n const isSelected = country.flagCode === selectedCountry.flagCode;\n return (\n <OptionItem\n key={country.flagCode}\n role=\"option\"\n aria-selected={isSelected}\n $selected={isSelected}\n onClick={() => selectCountry(country)}\n onKeyDown={(e) => e.key === 'Enter' && selectCountry(country)}\n tabIndex={0}\n >\n <CountryFlag countryCode={country.flagCode} size=\"sm\" />\n <CountryName>{country.country}</CountryName>\n <OptionDialCode>{country.dialCode}</OptionDialCode>\n </OptionItem>\n );\n })\n )}\n </OptionList>\n </DropdownPanel>\n )}\n </InputWrapper>\n\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nPhoneInput.displayName = 'PhoneInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { TextInputProps } from '@/components';\n\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n ({ type = 'text', ...rest }, ref) => <BaseInput ref={ref} type={type} {...rest} />,\n);\n\nTextInput.displayName = 'TextInput';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { CSSObject } from '@emotion/react';\nimport type { BoxProps, Breakpoint, GapValue, GridValue, ResponsiveValue } from './Box.types';\n\ntype MuiBreakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst BREAKPOINT_MAP: Record<Breakpoint, MuiBreakpoint> = {\n base: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n '2xl': 'xl',\n};\n\nconst GAP_MAP: Record<GapValue, string> = {\n 0: '0',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n};\n\nconst COLS_MAP: Record<GridValue, string> = {\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n};\n\ninterface StyledBoxProps {\n $isGrid: boolean;\n $direction?: ResponsiveValue<'row' | 'col'>;\n $wrap?: ResponsiveValue<'wrap' | 'nowrap'>;\n $gap?: ResponsiveValue<GapValue>;\n $cols?: ResponsiveValue<GridValue>;\n $rows?: ResponsiveValue<GridValue>;\n}\n\nconst StyledBox = styled('div')<StyledBoxProps>(\n ({ theme, $isGrid, $direction, $wrap, $gap, $cols, $rows }) => {\n const css: CSSObject = { display: $isGrid ? 'grid' : 'flex' };\n\n function apply<T>(\n value: ResponsiveValue<T> | undefined,\n toCss: (v: T) => CSSObject,\n ): void {\n if (value === undefined || value === null) return;\n if (typeof value !== 'object') {\n Object.assign(css, toCss(value as T));\n return;\n }\n for (const [bp, val] of Object.entries(value as Record<string, T>)) {\n if (val === undefined) continue;\n const muiBp = BREAKPOINT_MAP[bp as Breakpoint];\n if (muiBp === 'xs') {\n Object.assign(css, toCss(val));\n } else {\n const mq = theme.breakpoints.up(muiBp);\n css[mq] = { ...(css[mq] as CSSObject), ...toCss(val) };\n }\n }\n }\n\n apply($direction, (v) => ({ flexDirection: v === 'col' ? 'column' : 'row' }));\n apply($wrap, (v) => ({ flexWrap: v }));\n apply($gap, (v) => ({ gap: GAP_MAP[v] }));\n\n if ($isGrid) {\n apply($cols, (v) => ({ gridTemplateColumns: COLS_MAP[v] }));\n apply($rows, (v) => ({ gridTemplateRows: COLS_MAP[v] }));\n }\n\n return css;\n },\n);\n\nexport const Box = forwardRef<HTMLDivElement, BoxProps>(\n ({ direction = 'row', wrap = 'nowrap', gap = 0, cols, rows, children, ...rest }, ref) => (\n <StyledBox\n ref={ref}\n $isGrid={!!(cols || rows)}\n $direction={direction}\n $wrap={wrap}\n $gap={gap}\n $cols={cols}\n $rows={rows}\n {...rest}\n >\n {children}\n </StyledBox>\n ),\n);\n\nBox.displayName = 'Box';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { ContainerProps, ContainerMaxWidth } from './Container.types';\n\nconst MAX_WIDTH_MAP: Record<ContainerMaxWidth, string> = {\n sm: '40rem',\n md: '48rem',\n lg: '64rem',\n xl: '80rem',\n '2xl': '96rem',\n full: '100%',\n};\n\ninterface StyledContainerProps {\n $maxWidth: ContainerMaxWidth;\n}\n\nconst StyledContainer = styled('div')<StyledContainerProps>(({ theme, $maxWidth }) => ({\n maxWidth: MAX_WIDTH_MAP[$maxWidth],\n marginLeft: 'auto',\n marginRight: 'auto',\n paddingLeft: '1.5rem',\n paddingRight: '1.5rem',\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n paddingLeft: '2rem',\n paddingRight: '2rem',\n },\n}));\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n ({ maxWidth = 'xl', children, ...rest }, ref) => (\n <StyledContainer ref={ref} $maxWidth={maxWidth} {...rest}>\n {children}\n </StyledContainer>\n ),\n);\n\nContainer.displayName = 'Container';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { SectionProps } from './Section.types';\n\nconst StyledSection = styled('section')(({ theme }) => ({\n paddingTop: '2rem',\n paddingBottom: '2rem',\n [theme.breakpoints.up('md')]: {\n paddingTop: '3rem',\n paddingBottom: '3rem',\n },\n}));\n\nexport const Section = forwardRef<HTMLElement, SectionProps>(({ children, ...rest }, ref) => (\n <StyledSection ref={ref} {...rest}>\n {children}\n </StyledSection>\n));\n\nSection.displayName = 'Section';\n","import { alpha, type Theme } from '@mui/material/styles';\nimport type { CSSObject } from '@emotion/react';\n\nexport const getTypographyStyles = (theme: Theme): CSSObject => ({\n fontFamily: theme.typography.fontFamily,\n\n '& h1': { fontSize: '2.25rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h2': { fontSize: '1.875rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h3': { fontSize: '1.5rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h4': { fontSize: '1.25rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h5': { fontSize: '1.125rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h6': { fontSize: '1rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& p': { fontSize: '1rem', lineHeight: 1.75, marginBottom: '1rem' },\n '& strong': { fontWeight: 600 },\n '& em': { fontStyle: 'italic' },\n '& del': { textDecoration: 'line-through' },\n '& small': { fontSize: '0.875rem', fontWeight: 500, lineHeight: 1 },\n '& sub, & sup': { fontSize: '0.875rem' },\n\n '& a': {\n textDecoration: 'underline',\n textUnderlineOffset: '4px',\n textDecorationColor: alpha(theme.palette.primary.main, 0.5),\n transition: 'color 150ms ease, text-decoration-color 150ms ease',\n '&:hover': {\n color: theme.palette.primary.main,\n textDecorationColor: theme.palette.primary.main,\n },\n },\n\n '& ul': {\n paddingLeft: 0,\n listStyle: 'none',\n '& > li': { position: 'relative', paddingLeft: '1.5rem', marginBottom: '0.5rem' },\n '& > li::before': {\n content: '\"\"',\n position: 'absolute',\n left: '0.25rem',\n top: '0.6875em',\n height: '0.375rem',\n width: '0.375rem',\n borderRadius: '50%',\n backgroundColor: alpha(theme.palette.text.primary, 0.8),\n },\n },\n '& ol': {\n paddingLeft: '1.5rem',\n listStyleType: 'decimal',\n '& > li': { paddingLeft: '0.5rem', marginBottom: '0.5rem' },\n '& ol': { listStyleType: 'lower-alpha', paddingLeft: '1.5rem' },\n '& ol ol': { listStyleType: 'lower-roman' },\n },\n\n '& code': {\n position: 'relative',\n borderRadius: '0.25rem',\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '0.2rem 0.3rem',\n fontFamily: 'monospace',\n fontSize: '0.875rem',\n fontWeight: 500,\n },\n '& pre': {\n overflowX: 'auto',\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '1rem',\n margin: '1rem 0',\n '& code': {\n background: 'transparent',\n padding: 0,\n fontSize: '0.875rem',\n display: 'block',\n width: '100%',\n },\n },\n\n '& table': {\n width: '100%',\n margin: '1rem 0',\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n borderCollapse: 'collapse',\n overflow: 'hidden',\n },\n '& thead': { backgroundColor: alpha(theme.palette.grey[500], 0.1) },\n '& tr': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderBottom: 'none' },\n },\n '& th': {\n padding: '0.5rem 1rem',\n textAlign: 'left',\n fontWeight: 600,\n borderRight: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderRight: 'none' },\n },\n '& td': {\n padding: '0.5rem 1rem',\n borderRight: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderRight: 'none' },\n },\n\n '& img': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n margin: '1rem 0',\n maxWidth: '100%',\n height: 'auto',\n },\n '& video': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n margin: '1rem 0',\n },\n '& figure': { margin: '1rem 0', '& img': { margin: 0 } },\n '& figcaption': {\n fontSize: '0.875rem',\n marginTop: '0.5rem',\n color: theme.palette.text.secondary,\n },\n\n '& blockquote': {\n borderLeft: `4px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n paddingLeft: '1rem',\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem',\n margin: '1rem 0',\n color: theme.palette.text.secondary,\n },\n '& hr': {\n margin: '2rem 0',\n borderTop: `2px solid ${theme.palette.divider}`,\n borderBottom: 'none',\n },\n '& abbr': { cursor: 'help', textDecoration: 'underline dotted', textUnderlineOffset: '4px' },\n '& kbd': {\n borderRadius: '0.375rem',\n border: `1px solid ${theme.palette.divider}`,\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '0.125rem 0.375rem',\n fontSize: '0.875rem',\n fontFamily: 'monospace',\n },\n '& mark': { backgroundColor: alpha(theme.palette.primary.main, 0.1), padding: '0 0.25rem' },\n '& details': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n padding: '0.5rem 1rem',\n margin: '1rem 0',\n },\n '& summary': { cursor: 'pointer', fontWeight: 600 },\n});\n\nexport const getHeaderSpacingStyles = (): CSSObject => ({\n '& h1': { marginTop: '2rem', marginBottom: '1rem' },\n '& h2': { marginTop: '2rem', marginBottom: '1rem' },\n '& h3': { marginTop: '1.5rem', marginBottom: '0.75rem' },\n '& h4': { marginTop: '1.5rem', marginBottom: '0.75rem' },\n '& h5': { marginTop: '1rem', marginBottom: '0.5rem' },\n '& h6': { marginTop: '1rem', marginBottom: '0.5rem' },\n});\n\nexport const spacingStyles: CSSObject = {\n '& > * + *': { marginTop: '1.5rem' },\n};\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles } from '../typography';\nimport type { MainProps } from './Main.types';\n\nconst StyledMain = styled('main')(({ theme }) => ({\n ...getTypographyStyles(theme),\n}));\n\nexport const Main = forwardRef<HTMLElement, MainProps>(({ children, ...rest }, ref) => (\n <StyledMain ref={ref} {...rest}>\n {children}\n </StyledMain>\n));\n\nMain.displayName = 'Main';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles, spacingStyles } from '../typography';\nimport type { ProseProps } from './Prose.types';\n\nconst StyledProse = styled('div')(({ theme }) => ({\n ...getTypographyStyles(theme),\n ...spacingStyles,\n}));\n\nexport const Prose = forwardRef<HTMLDivElement, ProseProps>(({ children, ...rest }, ref) => (\n <StyledProse ref={ref} {...rest}>\n {children}\n </StyledProse>\n));\n\nProse.displayName = 'Prose';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles, getHeaderSpacingStyles, spacingStyles } from '../typography';\nimport type { ArticleProps } from './Article.types';\n\nconst StyledArticle = styled('article')(({ theme }) => ({\n maxWidth: '56rem',\n marginLeft: 'auto',\n marginRight: 'auto',\n ...getTypographyStyles(theme),\n ...getHeaderSpacingStyles(),\n ...spacingStyles,\n}));\n\nexport const Article = forwardRef<HTMLElement, ArticleProps>(({ children, ...rest }, ref) => (\n <StyledArticle ref={ref} {...rest}>\n {children}\n </StyledArticle>\n));\n\nArticle.displayName = 'Article';\n","import { forwardRef } from 'react';\nimport { styled, alpha, type Theme } from '@mui/material/styles';\nimport type { PaginationButtonProps, PaginationButtonSize } from './PaginationButton.types';\n\nconst sizeMap: Record<PaginationButtonSize, { minWidth: string; height: string; fontSize: string }> = {\n sm: { minWidth: '1.75rem', height: '1.75rem', fontSize: '0.75rem' },\n md: { minWidth: '2rem', height: '2rem', fontSize: '0.875rem' },\n lg: { minWidth: '2.5rem', height: '2.5rem', fontSize: '1rem' },\n};\n\ninterface StyledProps {\n $isActive: boolean;\n $size: PaginationButtonSize;\n}\n\nconst activeStyles = (theme: Theme) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.primary.dark },\n});\n\nconst idleStyles = (theme: Theme) => ({\n backgroundColor: 'transparent',\n color: theme.palette.text.primary,\n '&:hover:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.08) },\n '&:active:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.16) },\n});\n\nconst StyledButton = styled('button')<StyledProps>(({ theme, $isActive, $size }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontWeight: $isActive ? 700 : 400,\n lineHeight: 1,\n padding: '0 0.25rem',\n transition: 'background-color 150ms ease',\n ...sizeMap[$size],\n ...($isActive ? activeStyles(theme) : idleStyles(theme)),\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n}));\n\nexport const PaginationButton = forwardRef<HTMLButtonElement, PaginationButtonProps>(\n ({ onClick, isActive = false, disabled = false, size = 'md', children, 'aria-label': ariaLabel }, ref) => (\n <StyledButton\n ref={ref}\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n $isActive={isActive}\n $size={size}\n aria-label={ariaLabel}\n aria-current={isActive ? 'page' : undefined}\n >\n {children}\n </StyledButton>\n ),\n);\n\nPaginationButton.displayName = 'PaginationButton';\n","import { styled } from '@mui/material/styles';\nimport type { PaginationButtonSize } from '../PaginationButton';\n\ninterface Props {\n size?: PaginationButtonSize;\n}\n\nconst sizeMap: Record<PaginationButtonSize, { minWidth: string; height: string; fontSize: string }> = {\n sm: { minWidth: '1.75rem', height: '1.75rem', fontSize: '0.75rem' },\n md: { minWidth: '2rem', height: '2rem', fontSize: '0.875rem' },\n lg: { minWidth: '2.5rem', height: '2.5rem', fontSize: '1rem' },\n};\n\ninterface StyledProps {\n $size: PaginationButtonSize;\n}\n\nconst StyledEllipsis = styled('span')<StyledProps>(({ theme, $size }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.text.secondary,\n userSelect: 'none',\n ...sizeMap[$size],\n}));\n\nexport const PaginationEllipsis = ({ size = 'md' }: Props) => (\n <StyledEllipsis $size={size} aria-hidden=\"true\">\n …\n </StyledEllipsis>\n);\n\nPaginationEllipsis.displayName = 'PaginationEllipsis';\n","import { styled } from '@mui/material/styles';\nimport { PaginationButton, PaginationEllipsis } from './elements';\nimport type { PaginationBarProps } from './PaginationBar.types';\n\nconst Nav = styled('nav')({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.25rem',\n});\n\nconst DOTS = 'DOTS' as const;\ntype PageItem = number | typeof DOTS;\n\nfunction buildPageItems(currentPage: number, totalPages: number, siblingCount: number): PageItem[] {\n const totalSlots = siblingCount * 2 + 5; // first + last + current + 2×siblings + 2×dots\n\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblingCount, 1);\n const rightSibling = Math.min(currentPage + siblingCount, totalPages);\n\n const showLeftDots = leftSibling > 2;\n const showRightDots = rightSibling < totalPages - 1;\n\n if (!showLeftDots && showRightDots) {\n const leftRange = Array.from({ length: 3 + siblingCount * 2 }, (_, i) => i + 1);\n return [...leftRange, DOTS, totalPages];\n }\n\n if (showLeftDots && !showRightDots) {\n const rightRange = Array.from(\n { length: 3 + siblingCount * 2 },\n (_, i) => totalPages - (3 + siblingCount * 2) + 1 + i,\n );\n return [1, DOTS, ...rightRange];\n }\n\n const middleRange = Array.from(\n { length: rightSibling - leftSibling + 1 },\n (_, i) => leftSibling + i,\n );\n return [1, DOTS, ...middleRange, DOTS, totalPages];\n}\n\nconst ChevronLeft = () => (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRight = () => (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nconst ChevronsLeft = () => (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n);\n\nconst ChevronsRight = () => (\n <svg width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n);\n\nexport const PaginationBar = ({\n currentPage,\n totalPages,\n onPageChange,\n siblingCount = 1,\n showFirstLast = true,\n size = 'md',\n disabled = false,\n}: PaginationBarProps) => {\n const pageItems = buildPageItems(currentPage, totalPages, siblingCount);\n\n const isFirst = currentPage === 1;\n const isLast = currentPage === totalPages;\n\n return (\n <Nav aria-label=\"Pagination\">\n {showFirstLast && (\n <PaginationButton\n size={size}\n disabled={disabled || isFirst}\n onClick={() => onPageChange(1)}\n aria-label=\"First page\"\n >\n <ChevronsLeft />\n </PaginationButton>\n )}\n\n <PaginationButton\n size={size}\n disabled={disabled || isFirst}\n onClick={() => onPageChange(currentPage - 1)}\n aria-label=\"Previous page\"\n >\n <ChevronLeft />\n </PaginationButton>\n\n {pageItems.map((item, index) =>\n item === DOTS ? (\n <PaginationEllipsis key={`dots-${index}`} size={size} />\n ) : (\n <PaginationButton\n key={item}\n size={size}\n isActive={item === currentPage}\n disabled={disabled}\n onClick={() => onPageChange(item)}\n aria-label={`Page ${item}`}\n >\n {item}\n </PaginationButton>\n ),\n )}\n\n <PaginationButton\n size={size}\n disabled={disabled || isLast}\n onClick={() => onPageChange(currentPage + 1)}\n aria-label=\"Next page\"\n >\n <ChevronRight />\n </PaginationButton>\n\n {showFirstLast && (\n <PaginationButton\n size={size}\n disabled={disabled || isLast}\n onClick={() => onPageChange(totalPages)}\n aria-label=\"Last page\"\n >\n <ChevronsRight />\n </PaginationButton>\n )}\n </Nav>\n );\n};\n\nPaginationBar.displayName = 'PaginationBar';\n","import { createTheme } from '@mui/material/styles';\n\ndeclare module '@mui/material/styles' {\n interface PaletteColor {\n contrast?: string;\n focus?: string;\n }\n interface SimplePaletteColorOptions {\n contrast?: string;\n focus?: string;\n }\n interface TypeBackground {\n [key: string]: unknown;\n }\n interface TypeText {\n [key: string]: unknown;\n }\n interface Palette {\n [key: string]: unknown;\n }\n interface PaletteOptions {\n [key: string]: unknown;\n }\n interface Theme {\n [key: string]: unknown;\n }\n interface ThemeOptions {\n [key: string]: unknown;\n }\n}\n\nconst ss = 'sans-serif';\n\nconst typographyOptions = {\n fontFamily: [\"'Lato'\", ss].join(','),\n h1: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.75rem',\n },\n h2: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.375rem',\n },\n h3: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.125rem',\n },\n h4: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1rem',\n },\n h5: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '0.875rem',\n },\n h6: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '0.75rem',\n },\n};\n\nexport const themeLight = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'light',\n primary: { main: '#1976d2', dark: '#1565c0', light: '#42a5f5', contrastText: '#ffffff' },\n secondary: { main: '#6b7280', dark: '#4b5563', light: '#9ca3af', contrastText: '#ffffff' },\n error: { main: '#d32f2f', dark: '#b71c1c', light: '#ef5350', contrastText: '#ffffff' },\n action: { disabled: 'rgba(0,0,0,0.38)', disabledBackground: 'rgba(0,0,0,0.12)' },\n background: { default: '#ffffff', paper: '#f5f5f5' },\n },\n});\n\nexport const themeDark = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'dark',\n primary: { main: '#90caf9', dark: '#42a5f5', light: '#bbdefb', contrastText: '#0d1b2a' },\n secondary: { main: '#9ca3af', dark: '#6b7280', light: '#d1d5db', contrastText: '#111827' },\n error: { main: '#f48fb1', dark: '#f06292', light: '#fce4ec', contrastText: '#1a0010' },\n action: { disabled: 'rgba(255,255,255,0.30)', disabledBackground: 'rgba(255,255,255,0.12)' },\n background: { default: '#121212', paper: '#1e1e1e' },\n },\n});\n\nexport const themeHighContrast = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'dark',\n primary: { main: '#ffffff', dark: '#e0e0e0', light: '#ffffff', contrastText: '#000000' },\n secondary: { main: '#ffff00', dark: '#cccc00', light: '#ffff66', contrastText: '#000000' },\n error: { main: '#ff6b6b', dark: '#ff3333', light: '#ffaaaa', contrastText: '#000000' },\n action: { disabled: 'rgba(255,255,255,0.38)', disabledBackground: 'rgba(255,255,255,0.12)' },\n background: { default: '#000000', paper: '#1a1a1a' },\n },\n});\n","import { createTheme, type Theme, type ThemeOptions } from '@mui/material/styles';\nimport { themeLight, themeDark, themeHighContrast } from './theme';\n\nexport interface CreateMyThemeOptions {\n mode?: 'light' | 'dark' | 'highContrast';\n overrides?: ThemeOptions;\n}\n\nconst pickBaseTheme = (mode: 'light' | 'dark' | 'highContrast'): Theme => {\n switch (mode) {\n case 'dark':\n return themeDark;\n case 'highContrast':\n return themeHighContrast;\n case 'light':\n default:\n return themeLight;\n }\n};\n\nexport const createMyTheme = (options: CreateMyThemeOptions = {}): Theme => {\n const { mode = 'light', overrides } = options;\n const baseTheme = pickBaseTheme(mode);\n if (!overrides) return baseTheme;\n return createTheme(baseTheme as ThemeOptions, overrides);\n};\n\nexport const myTheme: Theme = createMyTheme();\n","import { type ReactNode, useMemo } from 'react';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { ThemeProvider, type Theme } from '@mui/material/styles';\nimport { themeLight, themeDark, themeHighContrast } from '@/theme';\n\nexport type MyThemeMode = 'light' | 'dark' | 'highContrast';\n\nexport interface MyThemeProviderProps {\n mode?: MyThemeMode;\n theme?: Theme;\n disableCssBaseline?: boolean;\n children: ReactNode;\n}\n\nexport const MyThemeProvider = ({\n mode = 'light',\n theme,\n disableCssBaseline = false,\n children,\n}: MyThemeProviderProps): JSX.Element => {\n const resolvedTheme = useMemo(() => {\n if (theme) return theme;\n switch (mode) {\n case 'dark':\n return themeDark;\n case 'highContrast':\n return themeHighContrast;\n case 'light':\n default:\n return themeLight;\n }\n }, [theme, mode]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/atoms/buttons/Button/Button.tsx","../src/components/atoms/inputs/elements/HelperText/HelperText.tsx","../src/components/atoms/inputs/elements/Label/Label.tsx","../src/components/atoms/inputs/elements/sizeMap.ts","../src/components/atoms/inputs/elements/dropdown.tsx","../src/components/atoms/inputs/BaseInput/BaseInput.tsx","../src/components/atoms/inputs/CheckboxInput/CheckboxInput.tsx","../src/components/atoms/inputs/FileInput/FileInput.tsx","../src/components/atoms/inputs/EmailInput/EmailInput.tsx","../src/components/atoms/inputs/BaseSelectInput/BaseSelectInput.tsx","../src/components/atoms/inputs/NumberInput/NumberInput.tsx","../src/components/atoms/inputs/MultiSelectInput/MultiSelectInput.tsx","../src/components/atoms/inputs/PasswordInput/PasswordInput.tsx","../src/components/atoms/inputs/SearchInput/SearchInput.tsx","../src/components/atoms/inputs/SelectInput/SelectInput.tsx","../src/components/atoms/inputs/TextareaInput/TextareaInput.tsx","../src/components/atoms/CountryFlag/CountryFlag.tsx","../src/data/countries.json","../src/components/atoms/inputs/PhoneInput/PhoneInput.tsx","../src/components/atoms/inputs/TextInput/TextInput.tsx","../src/components/atoms/inputs/SwitchInput/SwitchInput.tsx","../src/components/atoms/inputs/RangeSlider/RangeSlider.tsx","../src/components/atoms/inputs/DateTimePicker/DateTimePicker.tsx","../src/components/atoms/inputs/DateTimePicker/DateTimePicker.types.ts","../src/components/atoms/cards/Card/Card.tsx","../src/components/atoms/badges/Badge/Badge.tsx","../src/components/atoms/avatars/Avatar/Avatar.tsx","../src/components/atoms/SectionHeading/SectionHeading.tsx","../src/components/atoms/Loaders/Skeleton/Skeleton.tsx","../src/components/atoms/Loaders/Spinner/Spinner.tsx","../src/components/atoms/Loaders/ProgressBar/ProgressBar.tsx","../src/components/atoms/Loaders/ProgressCircle/ProgressCircle.tsx","../src/components/layout/Box/Box.tsx","../src/components/layout/Container/Container.tsx","../src/components/layout/Section/Section.tsx","../src/components/layout/typography.ts","../src/components/layout/Main/Main.tsx","../src/components/layout/Prose/Prose.tsx","../src/components/layout/Article/Article.tsx","../src/components/molecules/content/Rating/Rating.tsx","../src/components/molecules/media/AspectRatio/AspectRatio.tsx","../src/components/molecules/commerce/Price/Price.tsx","../src/components/molecules/cards/ProductCard/ProductCard.tsx","../src/components/molecules/cards/PostCard/elements/PostCardImage.tsx","../src/components/molecules/cards/PostCard/elements/PostCardMeta.tsx","../src/components/molecules/cards/PostCard/PostCard.tsx","../src/components/molecules/cards/PostCard/PostCard.types.tsx","../src/components/molecules/cards/PricingCard/PricingCard.tsx","../src/components/molecules/cards/StatCard/StatCard.tsx","../src/components/molecules/cards/TestimonialCard/TestimonialCard.tsx","../src/components/molecules/cards/TeamMemberCard/TeamMemberCard.tsx","../src/components/molecules/commerce/CompareTool/CompareTool.tsx","../src/components/molecules/commerce/CouponInput/CouponInput.tsx","../src/components/molecules/commerce/ProductGallery/ProductGallery.tsx","../src/components/molecules/commerce/PromoStrip/PromoStrip.tsx","../src/components/molecules/commerce/QuantitySelector/QuantitySelector.tsx","../src/components/molecules/commerce/StockStatus/StockStatus.tsx","../src/components/molecules/content/FaqItem/FaqItem.tsx","../src/components/molecules/content/FeatureItem/FeatureItem.tsx","../src/components/molecules/content/ProcessStep/ProcessStep.tsx","../src/components/molecules/content/LogoTile/LogoTile.tsx","../src/components/molecules/content/Timeline/Timeline.tsx","../src/components/molecules/media/Carousel/Carousel.tsx","../src/components/molecules/media/VideoPlayer/VideoPlayer.tsx","../src/components/molecules/media/Lightbox/Lightbox.tsx","../src/components/molecules/navigation/Breadcrumbs/Breadcrumbs.tsx","../src/components/molecules/navigation/PaginationBar/elements/PaginationButton/PaginationButton.tsx","../src/components/molecules/navigation/PaginationBar/elements/PaginationEllipsis/PaginationEllipsis.tsx","../src/components/molecules/navigation/PaginationBar/PaginationBar.tsx","../src/components/molecules/ui/Accordion/Accordion.tsx","../src/components/molecules/ui/BackToTop/BackToTop.tsx","../src/components/molecules/ui/ContextMenu/ContextMenu.tsx","../src/components/molecules/ui/List/List.tsx","../src/components/molecules/ui/Marquee/Marquee.tsx","../src/components/molecules/ui/Modal/Modal.tsx","../src/components/molecules/ui/Tabs/Tabs.tsx","../src/components/organisms/commerce/CartDrawer/CartDrawer.tsx","../src/components/organisms/commerce/FilterSidebar/FilterSidebar.tsx","../src/components/organisms/commerce/OrderSummary/OrderSummary.tsx","../src/components/organisms/sections/FaqSection/FaqSection.tsx","../src/components/organisms/sections/FeatureGrid/FeatureGrid.tsx","../src/components/organisms/sections/LogoCloud/LogoCloud.tsx","../src/components/organisms/sections/NewsletterSection/NewsletterSection.tsx","../src/components/organisms/sections/NewsletterSection/NewsletterSection.types.tsx","../src/components/organisms/sections/PricingSection/PricingSection.tsx","../src/components/organisms/sections/ProcessSection/ProcessSection.tsx","../src/components/organisms/sections/StatsSection/StatsSection.tsx","../src/components/organisms/sections/TeamSection/TeamSection.tsx","../src/components/organisms/sections/TestimonialsSection/TestimonialsSection.tsx","../src/components/organisms/ui/CommandPalette/CommandPalette.tsx","../src/components/organisms/ui/CookieConsent/CookieConsent.tsx","../src/components/organisms/ui/Footer/Footer.tsx","../src/components/organisms/ui/Navbar/Navbar.tsx","../src/theme/theme.ts","../src/theme/myTheme.ts","../src/theme/MyThemeProvider.tsx","../src/ssr/EmotionRegistry.tsx"],"names":["alpha","styled","forwardRef","jsxs","jsx","CircularProgress","ExpandMoreIcon","useId","Root","useRef","useEffect","FileUploadIcon","CloudUploadMuiIcon","InsertDriveFileIcon","DeleteOutlinedIcon","CloseIcon","HiddenInput","useState","Fragment","DropdownPanel","renderTrigger","renderOption","useCallback","CheckIcon","VisibilityIcon","VisibilityOffIcon","SearchMuiIcon","XIcon","sizeMap","getCountryCallingCode","InputWrapper","StyledInput","SearchInput","OptionItem","useMemo","Row","LabelText","TRACK_H","THUMB_S","Track","formatValue","dv","clamp","inputColors","Adornment","keyframes","Spinner","CalendarMonthIcon","AccessTimeIcon","ChevronLeftIcon","ChevronRightIcon","KeyboardArrowUpIcon","KeyboardArrowDownIcon","getVariantStyles","Inner","Fill","Wrapper","LabelRow","pct","Label","useTheme","Box","Placeholder","ArticleIcon","Name","PriceRow","Price","Description","Divider","CheckCircleOutlinedIcon","HighlightOffIcon","Footer","AvatarImage","spin","Value","Dot","Trigger","ChevronIcon","TextGroup","Title","FeatureItem","IconWrapper","Content","Date","Dots","Thumb","Overlay","createPortal","List","Link","Current","Separator","StyledButton","Nav","KeyboardDoubleArrowLeftIcon","KeyboardDoubleArrowRightIcon","PanelInner","fadeIn","variantStyles","FONT_SIZE","Item","SIZE_MAP","CloseButton","Panel","Header","RemoveButton","NumberInput","ItemImage","ItemInfo","ItemName","ItemMeta","Grid","InputRow","EmailInput","Section","ArrowForwardIcon","Backdrop","Dialog","SearchIcon","slideUp","Bar","TopRow","MenuIcon","createTheme","ThemeProvider","CssBaseline","React","createCache","useServerInsertedHTML","CacheProvider"],"mappings":"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","file":"index.cjs","sourcesContent":["import { forwardRef } from 'react';\nimport { styled, alpha, type Theme } from '@mui/material/styles';\nimport { type CSSObject } from '@emotion/react';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport type { ButtonProps, ButtonVariant, ButtonSize } from '@/components';\n\nconst sizeMap: Record<ButtonSize, { padding: string; fontSize: string; gap: string }> = {\n sm: { padding: '0.25rem 0.75rem', fontSize: '0.75rem', gap: '0.25rem' },\n md: { padding: '0.5rem 1.25rem', fontSize: '0.875rem', gap: '0.375rem' },\n lg: { padding: '0.75rem 1.75rem', fontSize: '1rem', gap: '0.5rem' },\n};\n\nconst variantStyles: Record<ButtonVariant, (theme: Theme) => CSSObject> = {\n primary: (theme) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.primary.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n secondary: (theme) => ({\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.secondary.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n ghost: (theme) => ({\n backgroundColor: 'transparent',\n color: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n '&:hover:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.08) },\n '&:active:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.16) },\n }),\n danger: (theme) => ({\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.error.dark },\n '&:active:not(:disabled)': { filter: 'brightness(0.92)' },\n }),\n};\n\ninterface StyledButtonProps {\n $variant: ButtonVariant;\n $size: ButtonSize;\n $fullWidth: boolean;\n}\n\nconst StyledButton = styled('button')<StyledButtonProps>(\n ({ theme, $variant, $size, $fullWidth }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n lineHeight: 1.5,\n textDecoration: 'none',\n transition: 'background-color 150ms ease, box-shadow 150ms ease, border-color 150ms ease',\n width: $fullWidth ? '100%' : 'auto',\n ...sizeMap[$size],\n ...variantStyles[$variant](theme),\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n backgroundColor:\n $variant === 'ghost' ? 'transparent' : theme.palette.action.disabledBackground,\n borderColor: $variant === 'ghost' ? theme.palette.action.disabled : 'transparent',\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n);\n\nconst IconSlot = styled('span')({\n display: 'inline-flex',\n alignItems: 'center',\n});\n\nconst Spinner = styled('span')({\n display: 'inline-flex',\n});\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n disabled = false,\n loading = false,\n fullWidth = false,\n startIcon,\n endIcon,\n onClick,\n type = 'button',\n children,\n className,\n 'aria-label': ariaLabel,\n 'aria-current': ariaCurrent,\n },\n ref,\n ) => (\n <StyledButton\n ref={ref}\n type={type}\n disabled={disabled || loading}\n onClick={onClick}\n $variant={variant}\n $size={size}\n $fullWidth={fullWidth}\n aria-busy={loading || undefined}\n className={className}\n aria-label={ariaLabel}\n aria-current={ariaCurrent}\n >\n {loading ? (\n <Spinner aria-hidden=\"true\">\n <CircularProgress size=\"1em\" color=\"inherit\" thickness={5} />\n </Spinner>\n ) : (\n startIcon && <IconSlot>{startIcon}</IconSlot>\n )}\n <span>{children}</span>\n {endIcon && <IconSlot>{endIcon}</IconSlot>}\n </StyledButton>\n ),\n);\n\nButton.displayName = 'Button';\n","import { styled } from '@mui/material/styles';\nimport type { HelperTextProps } from './HelperText.types';\n\nconst StyledHelperText = styled('p')<{ $error: boolean }>(({ theme, $error }) => ({\n margin: '0.25rem 0 0',\n fontSize: '0.75rem',\n fontFamily: theme.typography.fontFamily,\n color: $error ? theme.palette.error.main : theme.palette.text.secondary,\n}));\n\nexport const HelperText = ({ error = false, children, ...rest }: HelperTextProps) => (\n <StyledHelperText $error={error} {...rest}>\n {children}\n </StyledHelperText>\n);\n\nHelperText.displayName = 'HelperText';\n","import { styled } from '@mui/material/styles';\nimport type { InputSize } from '../types';\nimport type { LabelProps } from './Label.types';\n\nconst labelSizeMap: Record<InputSize, string> = {\n sm: '0.625rem',\n md: '0.75rem',\n lg: '0.875rem',\n};\n\ninterface StyledLabelProps {\n $error: boolean;\n $size: InputSize;\n}\n\nconst StyledLabel = styled('label')<StyledLabelProps>(({ theme, $error, $size }) => ({\n display: 'block',\n marginBottom: '0.25rem',\n fontSize: labelSizeMap[$size],\n fontWeight: 500,\n fontFamily: theme.typography.fontFamily,\n color: $error ? theme.palette.error.main : theme.palette.text.primary,\n}));\n\nexport const Label = ({ error = false, size = 'md', children, ...rest }: LabelProps) => (\n <StyledLabel $error={error} $size={size} {...rest}>\n {children}\n </StyledLabel>\n);\n\nLabel.displayName = 'Label';\n","import type { InputSize } from './types';\n\nexport interface SizeTokens {\n padding: string;\n fontSize: string;\n gap: string;\n}\n\nexport const inputSizeMap: Record<InputSize, SizeTokens> = {\n sm: { padding: '0.25rem 0.5rem', fontSize: '0.75rem', gap: '0.25rem' },\n md: { padding: '0.375rem 0.75rem', fontSize: '0.875rem', gap: '0.375rem' },\n lg: { padding: '0.5rem 1rem', fontSize: '1rem', gap: '0.5rem' },\n};\n\nexport const inputHeightMap: Record<InputSize, string> = {\n sm: '26px',\n md: '32px',\n lg: '38.5px',\n};\n","import { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nexport const DropdownPanel = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(100% + 4px)',\n left: 0,\n zIndex: theme.zIndex.modal,\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n}));\n\nexport const Chevron = () => <ExpandMoreIcon aria-hidden sx={{ fontSize: '1em' }} />;\n","import { forwardRef, useId } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport type { BaseInputProps } from '@/components';\nimport { Label, HelperText, inputSizeMap, inputHeightMap } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\n\nconst inputColors = (theme: Theme, error: boolean) => ({\n borderColor: error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within):not([data-disabled])': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`,\n },\n});\n\ninterface StyledWrapperProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst InputWrapper = styled('div')<StyledWrapperProps>(\n ({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n cursor: $disabled ? 'not-allowed' : 'text',\n ...inputSizeMap[$size],\n height: inputHeightMap[$size],\n paddingBlock: 0,\n ...inputColors(theme, $error),\n ...($disabled && {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }),\n }),\n);\n\nconst StyledInput = styled('input')(({ theme }) => ({\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: theme.palette.text.primary,\n width: '100%',\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n '&[type=\"search\"]::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n}));\n\nconst Adornment = styled('span')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n}));\n\nexport const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n startAdornment,\n endAdornment,\n disabled = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <InputWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n >\n {startAdornment && <Adornment>{startAdornment}</Adornment>}\n <StyledInput ref={ref} id={inputId} disabled={disabled} {...rest} />\n {endAdornment && <Adornment>{endAdornment}</Adornment>}\n </InputWrapper>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nBaseInput.displayName = 'BaseInput';\n","import { forwardRef, useEffect, useId, useRef } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { HelperText } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { CheckboxInputProps } from '@/components';\n\nconst checkboxSizeMap: Record<InputSize, string> = {\n sm: '14px',\n md: '16px',\n lg: '20px',\n};\n\nconst labelFontSizeMap: Record<InputSize, string> = {\n sm: '0.75rem',\n md: '0.875rem',\n lg: '1rem',\n};\n\ninterface BoxProps {\n $size: InputSize;\n $error: boolean;\n $disabled: boolean;\n}\n\nconst checkedColor = (theme: Theme, error: boolean) =>\n error ? theme.palette.error.main : theme.palette.primary.main;\n\nconst Box = styled('span')<BoxProps>(({ theme, $size, $error, $disabled }) => ({\n position: 'relative',\n flexShrink: 0,\n width: checkboxSizeMap[$size],\n height: checkboxSizeMap[$size],\n borderRadius: (theme.shape.borderRadius as number) / 2,\n border: '1px solid',\n borderColor: $disabled\n ? theme.palette.action.disabled\n : $error\n ? theme.palette.error.main\n : theme.palette.divider,\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...(!$disabled && {\n 'label:hover &': {\n borderColor: $error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n 'label:has(input:checked) &, label:has(input:indeterminate) &': {\n backgroundColor: checkedColor(theme, $error),\n borderColor: checkedColor(theme, $error),\n },\n 'label:has(input:focus-visible) &': {\n boxShadow: `0 0 0 3px ${checkedColor(theme, $error)}33`,\n },\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n display: 'none',\n },\n 'label:has(input:checked) &::after': {\n display: 'block',\n width: '30%',\n height: '55%',\n borderRight: `2px solid #fff`,\n borderBottom: `2px solid #fff`,\n transform: 'rotate(45deg) translate(-10%, -15%)',\n },\n 'label:has(input:indeterminate) &::after': {\n display: 'block',\n width: '55%',\n height: '2px',\n backgroundColor: '#fff',\n borderRadius: '1px',\n },\n}));\n\nconst HiddenInput = styled('input')({\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n});\n\nconst Row = styled('label')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n cursor: 'inherit',\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst LabelText = styled('span')<{ $size: InputSize; $disabled: boolean; $error: boolean }>(\n ({ theme, $size, $disabled, $error }) => ({\n fontSize: labelFontSizeMap[$size],\n fontWeight: 400,\n color: $disabled\n ? theme.palette.action.disabled\n : $error\n ? theme.palette.error.main\n : theme.palette.text.primary,\n userSelect: 'none',\n }),\n);\n\nconst Root = styled('span')<{ $disabled: boolean }>(({ $disabled }) => ({\n display: 'inline-flex',\n flexDirection: 'column',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n}));\n\nexport const CheckboxInput = forwardRef<HTMLInputElement, CheckboxInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n disabled = false,\n indeterminate = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n const innerRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Root $disabled={disabled}>\n <Row htmlFor={inputId}>\n <Box $size={size} $error={error} $disabled={disabled}>\n <HiddenInput\n ref={(node) => {\n innerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref)\n (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }}\n id={inputId}\n type=\"checkbox\"\n disabled={disabled}\n {...rest}\n />\n </Box>\n {label && (\n <LabelText $size={size} $disabled={disabled} $error={error}>\n {label}\n </LabelText>\n )}\n </Row>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nCheckboxInput.displayName = 'CheckboxInput';\n","import { forwardRef, useId, useRef, useState } from 'react';\nimport { styled, alpha } from '@mui/material/styles';\nimport FileUploadIcon from '@mui/icons-material/FileUpload';\nimport CloudUploadMuiIcon from '@mui/icons-material/CloudUpload';\nimport InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';\nimport DeleteOutlinedIcon from '@mui/icons-material/DeleteOutlined';\nimport CloseIcon from '@mui/icons-material/Close';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n} from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { FileInputProps } from '@/components';\n\n// ─── helpers ──────────────────────────────────────────────────────────────────\n\nconst formatSize = (bytes: number): string => {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 ** 2) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / 1024 ** 2).toFixed(1)} MB`;\n};\n\n// ─── icons ────────────────────────────────────────────────────────────────────\n\nconst UploadArrowIcon = ({ size = 13 }: { size?: number }) => (\n <FileUploadIcon aria-hidden style={{ fontSize: size }} />\n);\n\nconst CloudUploadIcon = ({ size }: { size: number }) => (\n <CloudUploadMuiIcon aria-hidden style={{ fontSize: size }} />\n);\n\nconst FileDocIcon = ({ size }: { size: number }) => (\n <InsertDriveFileIcon aria-hidden style={{ fontSize: size }} />\n);\n\nconst TrashIcon = ({ size = 12 }: { size?: number }) => (\n <DeleteOutlinedIcon aria-hidden style={{ fontSize: size }} />\n);\n\nconst XIcon = () => <CloseIcon aria-hidden style={{ fontSize: 11 }} />;\n\n// ─── shared ───────────────────────────────────────────────────────────────────\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst HiddenInput = styled('input')({\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n});\n\n// ─── compact variant ──────────────────────────────────────────────────────────\n\nconst CompactWrapper = styled('div')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n height: inputHeightMap[$size],\n fontSize: inputSizeMap[$size].fontSize,\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n overflow: 'hidden',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n ...($disabled\n ? { borderColor: theme.palette.action.disabled, pointerEvents: 'none' }\n : {\n borderColor: $error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within)': {\n borderColor: $error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${alpha(\n $error ? theme.palette.error.main : theme.palette.primary.main,\n 0.2,\n )}`,\n },\n }),\n}));\n\nconst BrowseBtn = styled('button')<{ $size: InputSize; $error: boolean }>(\n ({ theme, $size, $error }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.35rem',\n height: '100%',\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n border: 'none',\n borderRight: `1px solid ${alpha('#fff', 0.25)}`,\n backgroundColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n color: '#fff',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n fontWeight: 600,\n letterSpacing: '0.01em',\n cursor: 'pointer',\n transition: 'background-color 150ms ease',\n whiteSpace: 'nowrap',\n '&:hover:not(:disabled)': {\n backgroundColor: $error ? theme.palette.error.dark : theme.palette.primary.dark,\n },\n '&:active:not(:disabled)': { filter: 'brightness(0.9)' },\n '&:disabled': {\n backgroundColor: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n }),\n);\n\nconst CompactFileName = styled('span')<{ $hasFile: boolean }>(({ theme, $hasFile }) => ({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n padding: '0 0.5rem 0 0.75rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: $hasFile ? theme.palette.text.primary : theme.palette.text.disabled,\n}));\n\nconst ClearBtn = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1.5rem',\n height: '1.5rem',\n marginRight: '0.25rem',\n border: 'none',\n background: 'none',\n color: theme.palette.text.secondary,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.08),\n },\n}));\n\n// ─── compact — file chips (multiple) ─────────────────────────────────────────\n\nconst FileChipList = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.3rem',\n marginTop: '0.375rem',\n});\n\nconst FileChip = styled('div')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.25rem',\n maxWidth: '220px',\n padding: '0.1875rem 0.3125rem 0.1875rem 0.5rem',\n borderRadius: '100px',\n backgroundColor: alpha(theme.palette.primary.main, 0.07),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.18)}`,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.primary,\n}));\n\nconst FileChipName = styled('span')({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n flex: 1,\n});\n\nconst FileChipRemove = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1rem',\n height: '1rem',\n padding: 0,\n border: 'none',\n background: 'none',\n borderRadius: '50%',\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.1),\n },\n}));\n\n// ─── dropzone variant ─────────────────────────────────────────────────────────\n\nconst dropzoneSizes: Record<\n InputSize,\n {\n minHeight: string;\n padding: string;\n iconSize: number;\n circleSize: string;\n fontSize: string;\n subFontSize: string;\n gap: string;\n }\n> = {\n sm: {\n minHeight: '100px',\n padding: '1.125rem',\n iconSize: 16,\n circleSize: '2.25rem',\n fontSize: '0.75rem',\n subFontSize: '0.6875rem',\n gap: '0.375rem',\n },\n md: {\n minHeight: '140px',\n padding: '1.5rem',\n iconSize: 20,\n circleSize: '2.875rem',\n fontSize: '0.875rem',\n subFontSize: '0.75rem',\n gap: '0.5rem',\n },\n lg: {\n minHeight: '180px',\n padding: '2rem',\n iconSize: 26,\n circleSize: '3.5rem',\n fontSize: '1rem',\n subFontSize: '0.875rem',\n gap: '0.625rem',\n },\n};\n\nconst DropzoneArea = styled('div')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n $isDragging: boolean;\n $hasFile: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled, $isDragging, $hasFile }) => {\n const ds = dropzoneSizes[$size];\n const mainColor = $error ? theme.palette.error.main : theme.palette.primary.main;\n const mainDark = $error ? theme.palette.error.dark : theme.palette.primary.dark;\n return {\n position: 'relative',\n display: $fullWidth ? 'flex' : 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n width: $fullWidth ? '100%' : 'auto',\n minWidth: $fullWidth ? undefined : '240px',\n minHeight: ds.minHeight,\n padding: ds.padding,\n gap: ds.gap,\n borderRadius: (theme.shape.borderRadius as number) * 2,\n border: '2px dashed',\n transition:\n 'border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease, transform 200ms ease',\n ...($disabled\n ? {\n borderColor: theme.palette.action.disabled,\n backgroundColor: theme.palette.action.disabledBackground,\n color: theme.palette.action.disabled,\n }\n : $isDragging\n ? {\n borderStyle: 'solid',\n borderColor: mainColor,\n backgroundColor: alpha(mainColor, 0.06),\n color: mainColor,\n transform: 'scale(1.01)',\n boxShadow: `0 0 0 3px ${alpha(mainColor, 0.2)}`,\n }\n : $hasFile\n ? {\n borderStyle: 'solid',\n borderColor: $error ? theme.palette.error.main : theme.palette.primary.main,\n backgroundColor: alpha(mainColor, 0.03),\n color: theme.palette.text.secondary,\n }\n : {\n borderColor: $error ? theme.palette.error.main : theme.palette.divider,\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.secondary,\n '&:hover': {\n borderColor: $error ? mainDark : theme.palette.text.secondary,\n backgroundColor: alpha(mainColor, 0.04),\n },\n }),\n };\n});\n\nconst DropzoneClickBtn = styled('button')<{ $size: InputSize }>(({ theme, $size }) => {\n const ds = dropzoneSizes[$size];\n return {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: ds.gap,\n width: '100%',\n padding: 0,\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n color: 'inherit',\n fontFamily: theme.typography.fontFamily,\n borderRadius: theme.shape.borderRadius,\n transition: 'box-shadow 150ms ease',\n '&:focus-visible': {\n boxShadow: `0 0 0 2px ${theme.palette.primary.main}`,\n outline: 'none',\n },\n '&:disabled': { cursor: 'not-allowed' },\n };\n});\n\nconst DropzoneIconWrap = styled('span')<{ $isDragging: boolean }>(({ $isDragging }) => ({\n display: 'inline-flex',\n transition: 'transform 200ms ease',\n transform: $isDragging ? 'translateY(-3px)' : 'translateY(0)',\n}));\n\nconst DropzoneText = styled('p')<{ $sub?: boolean }>(({ theme, $sub }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: $sub ? 400 : 500,\n color: 'inherit',\n}));\n\n// FIX: primary.dark (contrast ~5.2:1 on #f5f5f5) vs primary.main (~4.2:1)\nconst BrowseLink = styled('span')(({ theme }) => ({\n color: theme.palette.primary.dark,\n fontWeight: 700,\n textDecoration: 'underline',\n textDecorationThickness: '1px',\n textUnderlineOffset: '2px',\n}));\n\n// ─── dropzone — single file display ──────────────────────────────────────────\n\nconst FileIconCircle = styled('div')<{ $size: InputSize }>(({ theme, $size }) => ({\n width: dropzoneSizes[$size].circleSize,\n height: dropzoneSizes[$size].circleSize,\n borderRadius: '50%',\n backgroundColor: alpha(theme.palette.primary.main, 0.1),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.primary.main,\n flexShrink: 0,\n}));\n\nconst FileDisplayName = styled('p')<{ $size: InputSize }>(({ theme, $size }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: dropzoneSizes[$size].fontSize,\n color: theme.palette.text.primary,\n maxWidth: '260px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst FileDisplayMeta = styled('p')<{ $size: InputSize }>(({ theme, $size }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 400,\n fontSize: dropzoneSizes[$size].subFontSize,\n color: theme.palette.text.secondary,\n}));\n\n// ─── dropzone — multiple files list ──────────────────────────────────────────\n\nconst FileListContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.3rem',\n width: '100%',\n maxWidth: '340px',\n maxHeight: '160px',\n overflowY: 'auto',\n});\n\nconst FileListRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n padding: '0.3125rem 0.5rem',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: alpha(theme.palette.primary.main, 0.05),\n border: `1px solid ${alpha(theme.palette.primary.main, 0.14)}`,\n textAlign: 'left',\n}));\n\nconst FileListRowIcon = styled('span')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n color: theme.palette.primary.main,\n}));\n\nconst FileListRowBody = styled('span')({\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n gap: '0.05rem',\n});\n\nconst FileListRowName = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n fontWeight: 500,\n color: theme.palette.text.primary,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst FileListRowSize = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.6875rem',\n color: theme.palette.text.secondary,\n}));\n\nconst FileListRowRemove = styled('button')(({ theme }) => ({\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1.25rem',\n height: '1.25rem',\n border: 'none',\n background: 'none',\n borderRadius: '50%',\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.error.main, 0.1),\n },\n}));\n\n// ─── shared action row ────────────────────────────────────────────────────────\n\nconst FileActionsRow = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n marginTop: '0.25rem',\n});\n\nconst FileActionBtn = styled('button')<{ $variant: 'remove' | 'replace' }>(({\n theme,\n $variant,\n}) => {\n const isRemove = $variant === 'remove';\n return {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.3rem',\n padding: '0.25rem 0.75rem',\n border: '1px solid',\n borderColor: isRemove ? theme.palette.error.main : theme.palette.divider,\n borderRadius: '100px',\n background: 'none',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n fontWeight: 500,\n color: isRemove ? theme.palette.error.main : theme.palette.text.secondary,\n cursor: 'pointer',\n transition: 'background-color 150ms ease, border-color 150ms ease, color 150ms ease',\n whiteSpace: 'nowrap',\n '&:hover': isRemove\n ? {\n backgroundColor: alpha(theme.palette.error.main, 0.06),\n borderColor: theme.palette.error.dark,\n color: theme.palette.error.dark,\n }\n : {\n backgroundColor: theme.palette.action.hover,\n borderColor: theme.palette.text.secondary,\n color: theme.palette.text.primary,\n },\n '&:active': { filter: 'brightness(0.93)' },\n '&:disabled': { opacity: 0.5, cursor: 'not-allowed' },\n };\n});\n\n// ─── component ────────────────────────────────────────────────────────────────\n\nexport const FileInput = forwardRef<HTMLInputElement, FileInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n variant = 'compact',\n browseLabel = 'Przeglądaj',\n noFileLabel = 'Nie wybrano pliku',\n dropzoneLabel,\n dropzoneSublabel,\n dropToUploadLabel = 'Upuść, by wgrać',\n filesSelectedLabel = (n) => `Wybrano ${n} pliki/plików`,\n removeLabel = 'Usuń',\n removeAllLabel = 'Usuń wszystkie',\n changeLabel = 'Zmień',\n clearAriaLabel = 'Wyczyść wybór pliku',\n removeFileAriaLabel = (name) => `Usuń ${name}`,\n removeAllAriaLabel = 'Usuń wszystkie pliki',\n changeAriaLabel = 'Zmień plik',\n chooseFileAriaLabel = 'Wybierz plik',\n id,\n multiple,\n onChange,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const innerRef = useRef<HTMLInputElement | null>(null);\n const [files, setFiles] = useState<File[]>([]);\n const [isDragging, setIsDragging] = useState(false);\n\n const assignRef = (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n };\n\n const openPicker = () => {\n if (!disabled) innerRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const list = e.target.files;\n setFiles(list && list.length > 0 ? Array.from(list) : []);\n onChange?.(e);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n setFiles([]);\n if (innerRef.current) innerRef.current.value = '';\n };\n\n const handleRemoveFile = (index: number) => (e: React.MouseEvent) => {\n e.stopPropagation();\n setFiles((prev) => {\n const next = prev.filter((_, i) => i !== index);\n if (innerRef.current && next.length === 0) innerRef.current.value = '';\n return next;\n });\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n if (!disabled) setIsDragging(true);\n };\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (disabled || !innerRef.current) return;\n const dropped = Array.from(e.dataTransfer.files);\n const picked = multiple ? dropped : [dropped[0]].filter(Boolean);\n if (picked.length === 0) return;\n // Set state directly — dispatching a change event would cause handleChange to\n // read e.target.files which is empty (input.files is read-only in browsers),\n // then call setFiles([]) and wipe out the dragged files.\n setFiles(picked);\n try {\n const dt = new DataTransfer();\n picked.forEach((f) => dt.items.add(f));\n innerRef.current.files = dt.files;\n } catch {\n // best-effort native sync for form submission\n }\n };\n\n const hasFiles = files.length > 0;\n const isMultiFile = files.length > 1;\n const ds = dropzoneSizes[size];\n\n const compactLabel = hasFiles\n ? files.length === 1\n ? files[0].name\n : filesSelectedLabel(files.length)\n : noFileLabel;\n\n const hiddenInput = (\n <HiddenInput\n ref={assignRef}\n id={inputId}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n onChange={handleChange}\n {...rest}\n />\n );\n\n // ── dropzone ──────────────────────────────────────────────────────────────\n if (variant === 'dropzone') {\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <DropzoneArea\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n $isDragging={isDragging}\n $hasFile={hasFiles}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {hiddenInput}\n\n {hasFiles ? (\n isMultiFile ? (\n // ── multiple files: scrollable list ──\n <>\n <FileListContainer>\n {files.map((file, i) => (\n <FileListRow key={`${file.name}-${i}`}>\n <FileListRowIcon>\n <FileDocIcon size={14} />\n </FileListRowIcon>\n <FileListRowBody>\n <FileListRowName title={file.name}>{file.name}</FileListRowName>\n <FileListRowSize>{formatSize(file.size)}</FileListRowSize>\n </FileListRowBody>\n <FileListRowRemove\n type=\"button\"\n onClick={handleRemoveFile(i)}\n aria-label={removeFileAriaLabel(file.name)}\n >\n <XIcon />\n </FileListRowRemove>\n </FileListRow>\n ))}\n </FileListContainer>\n <FileActionsRow>\n <FileActionBtn\n type=\"button\"\n $variant=\"remove\"\n onClick={handleClear}\n aria-label={removeAllAriaLabel}\n >\n <TrashIcon />\n {removeAllLabel}\n </FileActionBtn>\n <FileActionBtn\n type=\"button\"\n $variant=\"replace\"\n onClick={openPicker}\n disabled={disabled}\n aria-label={changeAriaLabel}\n >\n <UploadArrowIcon size={11} />\n {changeLabel}\n </FileActionBtn>\n </FileActionsRow>\n </>\n ) : (\n // ── single file: icon card ──\n <>\n <FileIconCircle $size={size}>\n <FileDocIcon size={dropzoneSizes[size].iconSize} />\n </FileIconCircle>\n <FileDisplayName $size={size} title={files[0].name}>\n {files[0].name}\n </FileDisplayName>\n <FileDisplayMeta $size={size}>{formatSize(files[0].size)}</FileDisplayMeta>\n <FileActionsRow>\n <FileActionBtn\n type=\"button\"\n $variant=\"remove\"\n onClick={handleClear}\n aria-label={removeLabel}\n >\n <TrashIcon />\n {removeLabel}\n </FileActionBtn>\n <FileActionBtn\n type=\"button\"\n $variant=\"replace\"\n onClick={openPicker}\n disabled={disabled}\n aria-label={changeAriaLabel}\n >\n <UploadArrowIcon size={11} />\n {changeLabel}\n </FileActionBtn>\n </FileActionsRow>\n </>\n )\n ) : (\n // ── empty: click-to-browse ──\n <DropzoneClickBtn\n type=\"button\"\n $size={size}\n disabled={disabled}\n onClick={openPicker}\n aria-label={label ? undefined : chooseFileAriaLabel}\n >\n <DropzoneIconWrap $isDragging={isDragging}>\n <CloudUploadIcon size={ds.iconSize + 8} />\n </DropzoneIconWrap>\n <DropzoneText style={{ fontSize: ds.fontSize }}>\n {isDragging\n ? dropToUploadLabel\n : (dropzoneLabel ?? (\n <>\n Upuść pliki lub <BrowseLink>przeglądaj</BrowseLink>\n </>\n ))}\n </DropzoneText>\n {dropzoneSublabel && (\n <DropzoneText $sub style={{ fontSize: ds.subFontSize }}>\n {dropzoneSublabel}\n </DropzoneText>\n )}\n </DropzoneClickBtn>\n )}\n </DropzoneArea>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n }\n\n // ── compact ───────────────────────────────────────────────────────────────\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <CompactWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {hiddenInput}\n <BrowseBtn\n type=\"button\"\n $size={size}\n $error={error}\n disabled={disabled}\n onClick={openPicker}\n >\n <UploadArrowIcon />\n {browseLabel}\n </BrowseBtn>\n <CompactFileName $hasFile={hasFiles}>{compactLabel}</CompactFileName>\n {hasFiles && (\n <ClearBtn type=\"button\" onClick={handleClear} aria-label={clearAriaLabel} tabIndex={-1}>\n <XIcon />\n </ClearBtn>\n )}\n </CompactWrapper>\n\n {/* chips appear below the wrapper when multiple files are selected */}\n {hasFiles && isMultiFile && (\n <FileChipList>\n {files.map((file, i) => (\n <FileChip key={`${file.name}-${i}`}>\n <FileChipName title={file.name}>{file.name}</FileChipName>\n <FileChipRemove\n type=\"button\"\n onClick={handleRemoveFile(i)}\n aria-label={removeFileAriaLabel(file.name)}\n >\n <XIcon />\n </FileChipRemove>\n </FileChip>\n ))}\n </FileChipList>\n )}\n\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nFileInput.displayName = 'FileInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { EmailInputProps } from '@/components';\n\n/** Characters allowed before the @ sign */\nconst LOCAL_CHAR = /^[a-zA-Z0-9._+-]$/;\n/** Characters allowed after the @ sign */\nconst DOMAIN_CHAR = /^[a-zA-Z0-9.-]$/;\n\n/**\n * Strips characters that are invalid for email addresses.\n * Enforces a single @ and applies separate character sets for local/domain parts.\n */\nconst filterEmailString = (value: string): string => {\n const atIdx = value.indexOf('@');\n if (atIdx === -1) {\n return value.replace(/[^a-zA-Z0-9._+-]/g, '');\n }\n const local = value.slice(0, atIdx).replace(/[^a-zA-Z0-9._+-]/g, '');\n const domain = value\n .slice(atIdx + 1)\n .replace(/@/g, '')\n .replace(/[^a-zA-Z0-9.-]/g, '');\n return `${local}@${domain}`;\n};\n\nexport const EmailInput = forwardRef<HTMLInputElement, EmailInputProps>(\n ({ onKeyDown, onPaste, ...props }, ref) => {\n const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n // Pass through control keys and key combos\n if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;\n\n const input = e.currentTarget;\n const { value } = input;\n const atIdx = value.indexOf('@');\n const hasAt = atIdx !== -1;\n const cursor = input.selectionStart ?? value.length;\n\n if (e.key === '@') {\n if (hasAt) e.preventDefault();\n return;\n }\n\n const inDomain = hasAt && cursor > atIdx;\n if (!(inDomain ? DOMAIN_CHAR : LOCAL_CHAR).test(e.key)) {\n e.preventDefault();\n }\n };\n\n const handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (e) => {\n onPaste?.(e);\n if (e.defaultPrevented) return;\n\n e.preventDefault();\n const input = e.currentTarget;\n const pasted = e.clipboardData.getData('text');\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n const merged = input.value.slice(0, start) + pasted + input.value.slice(end);\n const filtered = filterEmailString(merged);\n\n // Use native setter so React picks up the change via the dispatched input event\n const setter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value',\n )?.set;\n setter?.call(input, filtered);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n };\n\n return (\n <BaseInput\n ref={ref}\n type=\"email\"\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n {...props}\n />\n );\n },\n);\n\nEmailInput.displayName = 'EmailInput';\n","import { useId, useRef, useState, useEffect, useCallback } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n DropdownPanel as BaseDropdownPanel,\n Chevron,\n} from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { BaseSelectInputProps, SelectOption } from '@/components';\n\nconst triggerColors = (theme: Theme, error: boolean, open: boolean) => ({\n borderColor: open\n ? error\n ? theme.palette.error.main\n : theme.palette.primary.main\n : error\n ? theme.palette.error.main\n : theme.palette.divider,\n boxShadow: open\n ? `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`\n : 'none',\n '&:hover:not(:disabled)': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n});\n\ninterface StyledTriggerProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $open: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n position: 'relative',\n}));\n\nconst Trigger = styled('button')<StyledTriggerProps>(\n ({ theme, $size, $fullWidth, $error, $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n cursor: 'pointer',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n outline: 'none',\n textAlign: 'left',\n ...inputSizeMap[$size],\n height: inputHeightMap[$size],\n paddingBlock: 0,\n ...triggerColors(theme, $error, $open),\n '&:disabled': {\n backgroundColor: theme.palette.action.disabledBackground,\n borderColor: theme.palette.action.disabled,\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n);\n\nconst TriggerContent = styled('span')({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n});\n\nconst ChevronWrapper = styled('span')<{ $open: boolean }>(({ $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n marginLeft: '0.5rem',\n transition: 'transform 150ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst DropdownPanel = styled(BaseDropdownPanel)({\n right: 0,\n maxHeight: '240px',\n overflowY: 'auto',\n});\n\nconst OptionItem = styled('div')<{ $disabled: boolean; $size: InputSize }>(\n ({ theme, $disabled, $size }) => ({\n padding: '0.5rem 0.75rem',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n fontSize: inputSizeMap[$size].fontSize,\n fontFamily: theme.typography.fontFamily,\n color: $disabled ? theme.palette.action.disabled : theme.palette.text.primary,\n ...(!$disabled && {\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n }),\n }),\n);\n\nconst DEFAULT_PLACEHOLDER = 'Wybierz…';\n\nexport const BaseSelectInput = ({\n options,\n value,\n placeholder = DEFAULT_PLACEHOLDER,\n onSelect,\n renderTrigger,\n renderOption,\n isSelected,\n open: controlledOpen,\n onOpenChange,\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n id,\n}: BaseSelectInputProps) => {\n const checkSelected = isSelected ?? ((option: SelectOption) => option.value === value);\n const autoId = useId();\n const inputId = id ?? autoId;\n const listboxId = `${inputId}-listbox`;\n\n const [internalOpen, setInternalOpen] = useState(false);\n const isOpen = controlledOpen ?? internalOpen;\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => {\n setInternalOpen(false);\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n const toggle = () => {\n const next = !isOpen;\n setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (!option.disabled) {\n onSelect?.(option, close);\n }\n };\n\n useEffect(() => {\n if (!isOpen) return;\n const handleMouseDown = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) {\n close();\n }\n };\n document.addEventListener('mousedown', handleMouseDown);\n return () => document.removeEventListener('mousedown', handleMouseDown);\n }, [isOpen, close]);\n\n const selectedLabel = options.find((o) => o.value === value)?.label;\n\n const defaultTriggerContent = (\n <span style={{ opacity: selectedLabel ? 1 : 0.5 }}>{selectedLabel ?? placeholder}</span>\n );\n\n return (\n <Root $fullWidth={fullWidth} ref={rootRef}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <Trigger\n type=\"button\"\n id={inputId}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? listboxId : undefined}\n onClick={toggle}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $open={isOpen}\n >\n <TriggerContent>{renderTrigger ? renderTrigger() : defaultTriggerContent}</TriggerContent>\n <ChevronWrapper $open={isOpen}>\n <Chevron />\n </ChevronWrapper>\n </Trigger>\n {isOpen && (\n <DropdownPanel id={listboxId} role=\"listbox\">\n {options.map((option) => (\n <OptionItem\n key={option.value}\n role=\"option\"\n aria-selected={checkSelected(option)}\n aria-disabled={option.disabled}\n $disabled={!!option.disabled}\n $size={size}\n onClick={() => handleSelect(option)}\n onKeyDown={(e) => e.key === 'Enter' && handleSelect(option)}\n tabIndex={option.disabled ? -1 : 0}\n >\n {renderOption ? renderOption(option) : option.label}\n </OptionItem>\n ))}\n </DropdownPanel>\n )}\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n};\n\nBaseSelectInput.displayName = 'BaseSelectInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { NumberInputProps } from '@/components';\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n (props, ref) => <BaseInput ref={ref} type=\"number\" {...props} />,\n);\n\nNumberInput.displayName = 'NumberInput';\n","import { styled } from '@mui/material/styles';\nimport CheckIcon from '@mui/icons-material/Check';\nimport { BaseSelectInput } from '@/components';\nimport type { SelectOption } from '@/components';\nimport type { MultiSelectInputProps } from '@/components';\n\nconst ChipList = styled('span')({\n display: 'flex',\n flexWrap: 'wrap',\n gap: '0.25rem',\n overflow: 'hidden',\n});\n\nconst Chip = styled('span')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n padding: '0.125rem 0.375rem',\n borderRadius: '0.25rem',\n backgroundColor: theme.palette.primary.main + '22',\n color: theme.palette.primary.main,\n fontSize: '0.75em',\n fontWeight: 500,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n}));\n\nconst OptionRow = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n});\n\nconst CheckboxBox = styled('span')<{ $checked: boolean }>(({ theme, $checked }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '1rem',\n height: '1rem',\n border: `2px solid ${$checked ? theme.palette.primary.main : theme.palette.divider}`,\n borderRadius: '2px',\n backgroundColor: $checked ? theme.palette.primary.main : 'transparent',\n color: theme.palette.primary.contrastText,\n flexShrink: 0,\n transition: 'background-color 150ms ease, border-color 150ms ease',\n}));\n\nconst CheckmarkIcon = () => (\n <CheckIcon aria-hidden style={{ width: '0.65rem', height: '0.65rem' }} />\n);\n\nconst renderTrigger = (value: string[], options: SelectOption[], placeholder: string) => {\n const MultiSelectTrigger = () => {\n if (value.length === 0) {\n return <span style={{ opacity: 0.5 }}>{placeholder}</span>;\n }\n return (\n <ChipList>\n {value.map((v) => {\n const label = options.find((o) => o.value === v)?.label ?? v;\n return <Chip key={v}>{label}</Chip>;\n })}\n </ChipList>\n );\n };\n MultiSelectTrigger.displayName = 'MultiSelectTrigger';\n return MultiSelectTrigger;\n};\n\nconst renderOption = (value: string[]) => {\n const MultiSelectOption = (option: SelectOption) => (\n <OptionRow>\n <CheckboxBox $checked={value.includes(option.value)}>\n {value.includes(option.value) && <CheckmarkIcon />}\n </CheckboxBox>\n {option.label}\n </OptionRow>\n );\n MultiSelectOption.displayName = 'MultiSelectOption';\n return MultiSelectOption;\n};\n\nexport const MultiSelectInput = ({\n value = [],\n onChange,\n options,\n placeholder = 'Wybierz…',\n ...rest\n}: MultiSelectInputProps) => (\n <BaseSelectInput\n options={options}\n placeholder={placeholder}\n onSelect={(option) => {\n const next = value.includes(option.value)\n ? value.filter((v) => v !== option.value)\n : [...value, option.value];\n onChange?.(next);\n }}\n isSelected={(option) => value.includes(option.value)}\n renderTrigger={renderTrigger(value, options, placeholder)}\n renderOption={renderOption(value)}\n {...rest}\n />\n);\n\nMultiSelectInput.displayName = 'MultiSelectInput';\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport { BaseInput } from '@/components';\nimport type { PasswordInputProps } from '@/components';\n\nconst ToggleButton = styled('button')(({ theme }) => ({\n background: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n '&:hover': {\n color: theme.palette.text.primary,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst EyeIcon = () => <VisibilityIcon aria-hidden sx={{ fontSize: '1em' }} />;\nconst EyeOffIcon = () => <VisibilityOffIcon aria-hidden sx={{ fontSize: '1em' }} />;\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n { disabled, showPasswordLabel = 'Pokaż hasło', hidePasswordLabel = 'Ukryj hasło', ...props },\n ref,\n ) => {\n const [show, setShow] = useState(false);\n\n return (\n <BaseInput\n ref={ref}\n type={show ? 'text' : 'password'}\n disabled={disabled}\n endAdornment={\n <ToggleButton\n type=\"button\"\n aria-label={show ? hidePasswordLabel : showPasswordLabel}\n onClick={() => setShow((s) => !s)}\n disabled={disabled}\n tabIndex={-1}\n >\n {show ? <EyeOffIcon /> : <EyeIcon />}\n </ToggleButton>\n }\n {...props}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n","import { forwardRef, useRef, useState, useCallback } from 'react';\nimport { styled } from '@mui/material/styles';\nimport SearchMuiIcon from '@mui/icons-material/Search';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { BaseInput } from '@/components';\nimport type { SearchInputProps } from '@/components';\n\nconst ClearButton = styled('button')(({ theme }) => ({\n background: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n borderRadius: '50%',\n '&:hover': {\n color: theme.palette.text.primary,\n },\n}));\n\nconst SearchIcon = () => <SearchMuiIcon aria-hidden sx={{ fontSize: '1em' }} />;\nconst XIcon = () => <CloseIcon aria-hidden sx={{ fontSize: '1em' }} />;\n\nexport const SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\n ({ value, onChange, onClear, clearAriaLabel = 'Wyczyść', ...props }, forwardedRef) => {\n const innerRef = useRef<HTMLInputElement>(null);\n\n const attachRef = useCallback(\n (el: HTMLInputElement | null) => {\n (innerRef as React.MutableRefObject<HTMLInputElement | null>).current = el;\n if (typeof forwardedRef === 'function') forwardedRef(el);\n else if (forwardedRef)\n (forwardedRef as React.MutableRefObject<HTMLInputElement | null>).current = el;\n },\n [forwardedRef],\n );\n\n const isControlled = value !== undefined;\n const [localValue, setLocalValue] = useState('');\n const hasValue = isControlled ? !!value : !!localValue;\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n if (!isControlled) setLocalValue(e.target.value);\n onChange?.(e);\n };\n\n const handleClear = () => {\n if (!isControlled) {\n setLocalValue('');\n if (innerRef.current) {\n const setter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n 'value',\n )?.set;\n setter?.call(innerRef.current, '');\n innerRef.current.dispatchEvent(new Event('input', { bubbles: true }));\n }\n }\n onClear?.();\n innerRef.current?.focus();\n };\n\n return (\n <BaseInput\n ref={attachRef}\n type=\"search\"\n value={value}\n onChange={handleChange}\n startAdornment={<SearchIcon />}\n endAdornment={\n hasValue ? (\n <ClearButton type=\"button\" aria-label={clearAriaLabel} onClick={handleClear}>\n <XIcon />\n </ClearButton>\n ) : undefined\n }\n {...props}\n />\n );\n },\n);\n\nSearchInput.displayName = 'SearchInput';\n","import CheckIcon from '@mui/icons-material/Check';\nimport { BaseSelectInput } from '@/components';\nimport type { SelectOption } from '@/components';\nimport type { SelectInputProps } from '@/components';\n\nconst Checkmark = () => <CheckIcon aria-hidden sx={{ fontSize: '1em' }} />;\n\nconst renderOption = (selected: string | undefined) => {\n const SelectOption = (option: SelectOption) => (\n <span\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '0.5rem',\n }}\n >\n {option.label}\n {option.value === selected && <Checkmark />}\n </span>\n );\n SelectOption.displayName = 'SelectOption';\n return SelectOption;\n};\n\nexport const SelectInput = ({ onChange, value, ...rest }: SelectInputProps) => (\n <BaseSelectInput\n value={value}\n onSelect={(option, close) => {\n onChange?.(option.value);\n close();\n }}\n renderOption={renderOption(value)}\n {...rest}\n />\n);\n\nSelectInput.displayName = 'SelectInput';\n","import { forwardRef, useId } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { Label, HelperText, inputSizeMap } from '@/components/atoms/inputs/elements';\nimport type { TextareaInputProps } from '@/components';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\n\nconst borderColors = (theme: Theme, error: boolean) => ({\n borderColor: error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within):not([data-disabled])': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`,\n },\n});\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst StyledTextarea = styled('textarea')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'block',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n color: $disabled ? theme.palette.action.disabled : theme.palette.text.primary,\n resize: 'vertical',\n outline: 'none',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n cursor: $disabled ? 'not-allowed' : 'text',\n boxSizing: 'border-box',\n ...inputSizeMap[$size],\n ...borderColors(theme, $error),\n ...($disabled && {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }),\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n}));\n\nexport const TextareaInput = forwardRef<HTMLTextAreaElement, TextareaInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n rows = 4,\n disabled = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n return (\n <Root $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <StyledTextarea\n ref={ref}\n id={inputId}\n rows={rows}\n disabled={disabled}\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n {...rest}\n />\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nTextareaInput.displayName = 'TextareaInput';\n","import type { CountryFlagProps } from '@/components';\n\nconst sizeMap = { sm: '1em', md: '1.25em', lg: '1.75em' };\n\nconst toFlagEmoji = (code: string): string =>\n code\n .toUpperCase()\n .replace(/[A-Z]/g, (char) => String.fromCodePoint(0x1f1e6 + char.charCodeAt(0) - 65));\n\nexport const CountryFlag = ({ countryCode, size = 'md', style, ...rest }: CountryFlagProps) => (\n <span\n role=\"img\"\n aria-label={`Flag: ${countryCode}`}\n style={{ fontSize: sizeMap[size], lineHeight: 1, display: 'inline-flex', ...style }}\n {...rest}\n >\n {toFlagEmoji(countryCode)}\n </span>\n);\n\nCountryFlag.displayName = 'CountryFlag';\n","{\n \"countries\": [\n {\n \"flagCode\": \"AU\",\n \"country\": \"Australia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 15,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 15\"\n },\n {\n \"flagCode\": \"DE\",\n \"country\": \"Niemcy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 13\"\n },\n {\n \"flagCode\": \"SE\",\n \"country\": \"Szwecja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 13\"\n },\n {\n \"flagCode\": \"AT\",\n \"country\": \"Austria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 13,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 13\"\n },\n {\n \"flagCode\": \"CN\",\n \"country\": \"Chiny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 12\"\n },\n {\n \"flagCode\": \"CZ\",\n \"country\": \"Czechy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"CH\",\n \"country\": \"Szwajcaria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"RS\",\n \"country\": \"Serbia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"SG\",\n \"country\": \"Singapur\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 12\"\n },\n {\n \"flagCode\": \"FI\",\n \"country\": \"Finlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 12\"\n },\n {\n \"flagCode\": \"HR\",\n \"country\": \"Chorwacja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 12\"\n },\n {\n \"flagCode\": \"ME\",\n \"country\": \"Czarnogóra\",\n \"phoneNumberLengthByCountry_phLengthMax\": 12,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 12\"\n },\n {\n \"flagCode\": \"PK\",\n \"country\": \"Pakistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"IT\",\n \"country\": \"Włochy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": null,\n \"phoneNumberLengthByCountry_phLength\": \"up to 11\"\n },\n {\n \"flagCode\": \"KR\",\n \"country\": \"Korea Południowa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"PE\",\n \"country\": \"Peru\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 11\"\n },\n {\n \"flagCode\": \"PG\",\n \"country\": \"Papua Nowa Gwinea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"PT\",\n \"country\": \"Portugalia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 or 11\"\n },\n {\n \"flagCode\": \"SV\",\n \"country\": \"Salwador\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7, 8 or 11\"\n },\n {\n \"flagCode\": \"IE\",\n \"country\": \"Irlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 11\"\n },\n {\n \"flagCode\": \"UY\",\n \"country\": \"Urugwaj\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"CY\",\n \"country\": \"Cypr\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 11\"\n },\n {\n \"flagCode\": \"LU\",\n \"country\": \"Luksemburg\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 11\"\n },\n {\n \"flagCode\": \"VA\",\n \"country\": \"Watykan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 11,\n \"phoneNumberLengthByCountry_phLengthMin\": null,\n \"phoneNumberLengthByCountry_phLength\": \"up to 11\"\n },\n {\n \"flagCode\": \"IN\",\n \"country\": \"Indie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"US\",\n \"country\": \"Stany Zjednoczone\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"ID\",\n \"country\": \"Indonezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 10\"\n },\n {\n \"flagCode\": \"NG\",\n \"country\": \"Nigeria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"BR\",\n \"country\": \"Brazylia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"BD\",\n \"country\": \"Bangladesz\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"RU\",\n \"country\": \"Rosja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"MX\",\n \"country\": \"Meksyk\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"JP\",\n \"country\": \"Japonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"PH\",\n \"country\": \"Filipiny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"VN\",\n \"country\": \"Wietnam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"IR\",\n \"country\": \"Iran\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"TR\",\n \"country\": \"Turcja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"GB\",\n \"country\": \"Wielka Brytania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"KE\",\n \"country\": \"Kenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"CO\",\n \"country\": \"Kolumbia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 10\"\n },\n {\n \"flagCode\": \"IQ\",\n \"country\": \"Irak\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"AR\",\n \"country\": \"Argentyna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"CA\",\n \"country\": \"Kanada\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"MG\",\n \"country\": \"Madagaskar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"VE\",\n \"country\": \"Wenezuela\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"KP\",\n \"country\": \"Korea Północna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 10\"\n },\n {\n \"flagCode\": \"SY\",\n \"country\": \"Syria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 10\"\n },\n {\n \"flagCode\": \"KZ\",\n \"country\": \"Kazachstan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"DO\",\n \"country\": \"Dominikana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(809/829) + 7\"\n },\n {\n \"flagCode\": \"GR\",\n \"country\": \"Grecja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": 10\n },\n {\n \"flagCode\": \"BY\",\n \"country\": \"Białoruś\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": \"9 to 10\"\n },\n {\n \"flagCode\": \"NZ\",\n \"country\": \"Nowa Zelandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 10\"\n },\n {\n \"flagCode\": \"PR\",\n \"country\": \"Portoryko\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(787/939) + 7\"\n },\n {\n \"flagCode\": \"QA\",\n \"country\": \"Katar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6, 7, 10\"\n },\n {\n \"flagCode\": \"NA\",\n \"country\": \"Namibia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"JM\",\n \"country\": \"Jamajka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(876) + 7\"\n },\n {\n \"flagCode\": \"TT\",\n \"country\": \"Trynidad i Tobago\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(868) + 7\"\n },\n {\n \"flagCode\": \"EE\",\n \"country\": \"Estonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 10\"\n },\n {\n \"flagCode\": \"BS\",\n \"country\": \"Bahamy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(242) + 7\"\n },\n {\n \"flagCode\": \"BB\",\n \"country\": \"Barbados\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(246) + 7\"\n },\n {\n \"flagCode\": \"LC\",\n \"country\": \"Saint Lucia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(758) + 7\"\n },\n {\n \"flagCode\": \"GU\",\n \"country\": \"Guam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(671) + 7\"\n },\n {\n \"flagCode\": \"GD\",\n \"country\": \"Grenada\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(473) + 7\"\n },\n {\n \"flagCode\": \"VC\",\n \"country\": \"Saint Vincent i Grenadyny\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(784) + 7\"\n },\n {\n \"flagCode\": \"AG\",\n \"country\": \"Antigua i Barbuda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(268) + 7\"\n },\n {\n \"flagCode\": \"VI\",\n \"country\": \"Wyspy Dziewicze Stanów Zjednoczonych\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(340) + 7\"\n },\n {\n \"flagCode\": \"KY\",\n \"country\": \"Kajmany\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(345) + 7\"\n },\n {\n \"flagCode\": \"DM\",\n \"country\": \"Dominika\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(767) + 7\"\n },\n {\n \"flagCode\": \"BM\",\n \"country\": \"Bermudy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(441) + 7\"\n },\n {\n \"flagCode\": \"TC\",\n \"country\": \"Turks i Caicos\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(649) + 7\"\n },\n {\n \"flagCode\": \"KN\",\n \"country\": \"Saint Kitts i Nevis\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(869) + 7\"\n },\n {\n \"flagCode\": \"AS\",\n \"country\": \"Samoa Amerykańskie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(684) + 7\"\n },\n {\n \"flagCode\": \"SX\",\n \"country\": \"Sint Maarten\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(721) + 7\"\n },\n {\n \"flagCode\": \"VG\",\n \"country\": \"Brytyjskie Wyspy Dziewicze\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(284) + 7\"\n },\n {\n \"flagCode\": \"SM\",\n \"country\": \"San Marino\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 10\"\n },\n {\n \"flagCode\": \"AI\",\n \"country\": \"Anguilla\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(264) + 7\"\n },\n {\n \"flagCode\": \"MS\",\n \"country\": \"Montserrat\",\n \"phoneNumberLengthByCountry_phLengthMax\": 10,\n \"phoneNumberLengthByCountry_phLengthMin\": 10,\n \"phoneNumberLengthByCountry_phLength\": \"(664) + 7\"\n },\n {\n \"flagCode\": \"ET\",\n \"country\": \"Etiopia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"EG\",\n \"country\": \"Egipt\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"CD\",\n \"country\": \"Demokratyczna Republika Konga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"TZ\",\n \"country\": \"Tanzania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"TH\",\n \"country\": \"Tajlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 9\"\n },\n {\n \"flagCode\": \"FR\",\n \"country\": \"Francja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"ZA\",\n \"country\": \"Republika Południowej Afryki\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MM\",\n \"country\": \"Mjanma\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"SD\",\n \"country\": \"Sudan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"UG\",\n \"country\": \"Uganda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"DZ\",\n \"country\": \"Algieria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 or 9\"\n },\n {\n \"flagCode\": \"ES\",\n \"country\": \"Hiszpania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AF\",\n \"country\": \"Afganistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"YE\",\n \"country\": \"Jemen\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 9\"\n },\n {\n \"flagCode\": \"AO\",\n \"country\": \"Angola\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"UA\",\n \"country\": \"Ukraina\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MA\",\n \"country\": \"Maroko\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"PL\",\n \"country\": \"Polska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 9\"\n },\n {\n \"flagCode\": \"UZ\",\n \"country\": \"Uzbekistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MZ\",\n \"country\": \"Mozambik\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"MY\",\n \"country\": \"Malezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"GH\",\n \"country\": \"Ghana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"SA\",\n \"country\": \"Arabia Saudyjska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"NP\",\n \"country\": \"Nepal\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LK\",\n \"country\": \"Sri Lanka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"TW\",\n \"country\": \"Tajwan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"ZM\",\n \"country\": \"Zambia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"CL\",\n \"country\": \"Chile\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"SN\",\n \"country\": \"Senegal\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"RO\",\n \"country\": \"Rumunia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"NL\",\n \"country\": \"Holandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"ZW\",\n \"country\": \"Zimbabwe\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"RW\",\n \"country\": \"Rwanda\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"BE\",\n \"country\": \"Belgia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"JO\",\n \"country\": \"Jordania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"AE\",\n \"country\": \"Zjednoczone Emiraty Arabskie\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"TJ\",\n \"country\": \"Tadżykistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AZ\",\n \"country\": \"Azerbejdżan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"IL\",\n \"country\": \"Izrael\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"HU\",\n \"country\": \"Węgry\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LA\",\n \"country\": \"Laos\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"LY\",\n \"country\": \"Libia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": \"8 to 9\"\n },\n {\n \"flagCode\": \"KG\",\n \"country\": \"Kirgistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"HK\",\n \"country\": \"Hongkong\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4, 8 to 9\"\n },\n {\n \"flagCode\": \"PY\",\n \"country\": \"Paragwaj\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"BG\",\n \"country\": \"Bułgaria\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"SK\",\n \"country\": \"Słowacja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 to 9\"\n },\n {\n \"flagCode\": \"AL\",\n \"country\": \"Albania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 9\"\n },\n {\n \"flagCode\": \"IS\",\n \"country\": \"Islandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 9\"\n },\n {\n \"flagCode\": \"GP\",\n \"country\": \"Gwadelupa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"MQ\",\n \"country\": \"Martynika\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"GF\",\n \"country\": \"Gujana Francuska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 9,\n \"phoneNumberLengthByCountry_phLength\": 9\n },\n {\n \"flagCode\": \"AD\",\n \"country\": \"Andora\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6, 8 or 9\"\n },\n {\n \"flagCode\": \"LI\",\n \"country\": \"Liechtenstein\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 9\"\n },\n {\n \"flagCode\": \"MC\",\n \"country\": \"Monako\",\n \"phoneNumberLengthByCountry_phLengthMax\": 9,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 9\"\n },\n {\n \"flagCode\": \"CI\",\n \"country\": \"Wybrzeże Kości Słoniowej\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"CM\",\n \"country\": \"Kamerun\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"NE\",\n \"country\": \"Niger\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"ML\",\n \"country\": \"Mali\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BF\",\n \"country\": \"Burkina Faso\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MW\",\n \"country\": \"Malawi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"SO\",\n \"country\": \"Somalia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 to 8\"\n },\n {\n \"flagCode\": \"GT\",\n \"country\": \"Gwatemala\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"EC\",\n \"country\": \"Ekwador\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"KH\",\n \"country\": \"Kambodża\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"GN\",\n \"country\": \"Gwinea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BJ\",\n \"country\": \"Benin\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BI\",\n \"country\": \"Burundi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BO\",\n \"country\": \"Boliwia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TN\",\n \"country\": \"Tunezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"HT\",\n \"country\": \"Haiti\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"HN\",\n \"country\": \"Honduras\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"CU\",\n \"country\": \"Kuba\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 8\"\n },\n {\n \"flagCode\": \"SL\",\n \"country\": \"Sierra Leone\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TM\",\n \"country\": \"Turkmenistan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"NI\",\n \"country\": \"Nikaragua\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"DK\",\n \"country\": \"Dania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LB\",\n \"country\": \"Liban\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"LR\",\n \"country\": \"Liberia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"CF\",\n \"country\": \"Republika Środkowoafrykańska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"OM\",\n \"country\": \"Oman\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"NO\",\n \"country\": \"Norwegia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 8\"\n },\n {\n \"flagCode\": \"CR\",\n \"country\": \"Kostaryka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"KW\",\n \"country\": \"Kuwejt\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"PA\",\n \"country\": \"Panama\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"GE\",\n \"country\": \"Gruzja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MN\",\n \"country\": \"Mongolia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"BA\",\n \"country\": \"Bośnia i Hercegowina\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"MD\",\n \"country\": \"Mołdawia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"AM\",\n \"country\": \"Armenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LT\",\n \"country\": \"Litwa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BW\",\n \"country\": \"Botswana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"LS\",\n \"country\": \"Lesotho\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"SI\",\n \"country\": \"Słowenia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"LV\",\n \"country\": \"Łotwa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 or 8\"\n },\n {\n \"flagCode\": \"MK\",\n \"country\": \"Macedonia Północna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"BH\",\n \"country\": \"Bahrajn\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"SZ\",\n \"country\": \"Eswatini\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"BT\",\n \"country\": \"Bhutan\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"MO\",\n \"country\": \"Makao\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"MT\",\n \"country\": \"Malta\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"CW\",\n \"country\": \"Curaçao\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": \"7 to 8\"\n },\n {\n \"flagCode\": \"GI\",\n \"country\": \"Gibraltar\",\n \"phoneNumberLengthByCountry_phLengthMax\": 8,\n \"phoneNumberLengthByCountry_phLengthMin\": 8,\n \"phoneNumberLengthByCountry_phLength\": 8\n },\n {\n \"flagCode\": \"TD\",\n \"country\": \"Czad\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"TG\",\n \"country\": \"Togo\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"CG\",\n \"country\": \"Republika Konga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"MR\",\n \"country\": \"Mauretania\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"ER\",\n \"country\": \"Erytrea\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GM\",\n \"country\": \"Gambia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GA\",\n \"country\": \"Gabon\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 or 7\"\n },\n {\n \"flagCode\": \"GW\",\n \"country\": \"Gwinea Bissau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"TL\",\n \"country\": \"Timor Wschodni\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"MU\",\n \"country\": \"Mauritius\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"FJ\",\n \"country\": \"Fidżi\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"KM\",\n \"country\": \"Komory\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"GY\",\n \"country\": \"Gujana\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"SR\",\n \"country\": \"Surinam\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": \"6 to 7\"\n },\n {\n \"flagCode\": \"MV\",\n \"country\": \"Malediwy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"CV\",\n \"country\": \"Wyspy Zielonego Przylądka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"BN\",\n \"country\": \"Brunei\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"BZ\",\n \"country\": \"Belize\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"VU\",\n \"country\": \"Vanuatu\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 7\"\n },\n {\n \"flagCode\": \"ST\",\n \"country\": \"Wyspy Świętego Tomasza i Książęca\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"WS\",\n \"country\": \"Samoa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 3,\n \"phoneNumberLengthByCountry_phLength\": \"3 to 7\"\n },\n {\n \"flagCode\": \"FM\",\n \"country\": \"Mikronezja\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"AW\",\n \"country\": \"Aruba\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"TO\",\n \"country\": \"Tonga\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 7\"\n },\n {\n \"flagCode\": \"MH\",\n \"country\": \"Wyspy Marshalla\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"PW\",\n \"country\": \"Palau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 7,\n \"phoneNumberLengthByCountry_phLength\": 7\n },\n {\n \"flagCode\": \"NR\",\n \"country\": \"Nauru\",\n \"phoneNumberLengthByCountry_phLengthMax\": 7,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": \"4 or 7\"\n },\n {\n \"flagCode\": \"GQ\",\n \"country\": \"Gwinea Równikowa\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"DJ\",\n \"country\": \"Dżibuti\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"NC\",\n \"country\": \"Nowa Kaledonia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"PF\",\n \"country\": \"Polinezja Francuska\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"SC\",\n \"country\": \"Seszele\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"FO\",\n \"country\": \"Wyspy Owcze\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"GL\",\n \"country\": \"Grenlandia\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"WF\",\n \"country\": \"Wallis i Futuna\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"TV\",\n \"country\": \"Tuvalu\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": \"5 or 6\"\n },\n {\n \"flagCode\": \"PM\",\n \"country\": \"Saint-Pierre i Miquelon\",\n \"phoneNumberLengthByCountry_phLengthMax\": 6,\n \"phoneNumberLengthByCountry_phLengthMin\": 6,\n \"phoneNumberLengthByCountry_phLength\": 6\n },\n {\n \"flagCode\": \"SB\",\n \"country\": \"Wyspy Salomona\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"KI\",\n \"country\": \"Kiribati\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"CK\",\n \"country\": \"Wyspy Cooka\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"FK\",\n \"country\": \"Falklandy\",\n \"phoneNumberLengthByCountry_phLengthMax\": 5,\n \"phoneNumberLengthByCountry_phLengthMin\": 5,\n \"phoneNumberLengthByCountry_phLength\": 5\n },\n {\n \"flagCode\": \"TK\",\n \"country\": \"Tokelau\",\n \"phoneNumberLengthByCountry_phLengthMax\": 4,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": 4\n },\n {\n \"flagCode\": \"NU\",\n \"country\": \"Niue\",\n \"phoneNumberLengthByCountry_phLengthMax\": 4,\n \"phoneNumberLengthByCountry_phLengthMin\": 4,\n \"phoneNumberLengthByCountry_phLength\": 4\n }\n ]\n}\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useCallback,\n useEffect,\n useMemo,\n type ChangeEvent,\n type KeyboardEvent,\n} from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { getCountryCallingCode, type CountryCode } from 'libphonenumber-js';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n DropdownPanel as BaseDropdownPanel,\n Chevron,\n} from '@/components/atoms/inputs/elements';\nimport { CountryFlag } from '@/components/atoms/CountryFlag';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { PhoneInputProps, PhoneCountry } from '@/components';\nimport phoneData from '@/data/countries.json';\n\nconst COUNTRIES: PhoneCountry[] = phoneData.countries\n .map((c) => {\n let dialCode = '';\n try {\n dialCode = '+' + getCountryCallingCode(c.flagCode as CountryCode);\n } catch {\n dialCode = '';\n }\n return {\n flagCode: c.flagCode,\n country: c.country,\n dialCode,\n maxLength: c.phoneNumberLengthByCountry_phLengthMax,\n minLength: c.phoneNumberLengthByCountry_phLengthMin ?? 1,\n };\n })\n .sort((a, b) => a.country.localeCompare(b.country, 'pl'));\n\nconst DEFAULT_COUNTRY = COUNTRIES.find((c) => c.flagCode === 'US') ?? COUNTRIES[0];\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst wrapperColors = (theme: Theme, error: boolean, focused: boolean) => ({\n borderColor: focused\n ? error\n ? theme.palette.error.main\n : theme.palette.primary.main\n : error\n ? theme.palette.error.main\n : theme.palette.divider,\n boxShadow: focused\n ? `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`\n : 'none',\n '&:hover': {\n borderColor: !focused\n ? error\n ? theme.palette.error.dark\n : theme.palette.text.secondary\n : undefined,\n },\n});\n\ninterface WrapperProps {\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $focused: boolean;\n $disabled: boolean;\n}\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n}));\n\nconst InputWrapper = styled('div')<WrapperProps>(\n ({ theme, $size, $fullWidth, $error, $focused, $disabled }) => ({\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n height: inputHeightMap[$size],\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n fontSize: inputSizeMap[$size].fontSize,\n overflow: 'visible',\n ...($disabled\n ? {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }\n : wrapperColors(theme, $error, $focused)),\n }),\n);\n\nconst CountryTrigger = styled('button')<{ $size: InputSize }>(({ theme, $size }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n alignSelf: 'stretch',\n gap: '0.375rem',\n flexShrink: 0,\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n background: 'none',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst DialCode = styled('span')({\n fontVariantNumeric: 'tabular-nums',\n whiteSpace: 'nowrap',\n});\n\nconst ChevronIcon = styled('span')<{ $open: boolean }>(({ $open }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n transition: 'transform 150ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst Divider = styled('span')(({ theme }) => ({\n width: '1px',\n alignSelf: 'stretch',\n backgroundColor: theme.palette.divider,\n flexShrink: 0,\n margin: '4px 0',\n}));\n\nconst StyledInput = styled('input')<{ $size: InputSize }>(({ theme, $size }) => ({\n flex: 1,\n minWidth: 0,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: theme.palette.text.primary,\n padding: inputSizeMap[$size].padding,\n paddingBlock: 0,\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst DropdownPanel = styled(BaseDropdownPanel)({\n minWidth: '280px',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n});\n\nconst SearchBox = styled('div')(({ theme }) => ({\n padding: '0.5rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n}));\n\nconst SearchInput = styled('input')(({ theme }) => ({\n width: '100%',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n padding: '0.25rem 0.5rem',\n fontSize: '0.875rem',\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n background: theme.palette.background.paper,\n outline: 'none',\n '&:focus': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 2px ${theme.palette.primary.main}33`,\n },\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n}));\n\nconst OptionList = styled('ul')({\n listStyle: 'none',\n margin: 0,\n padding: '0.25rem 0',\n overflowY: 'auto',\n maxHeight: '220px',\n});\n\nconst OptionItem = styled('li')<{ $selected: boolean }>(({ theme, $selected }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n padding: '0.375rem 0.75rem',\n cursor: 'pointer',\n fontSize: '0.875rem',\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n backgroundColor: $selected ? theme.palette.action.selected : 'transparent',\n '&:hover': {\n backgroundColor: $selected ? theme.palette.action.selected : theme.palette.action.hover,\n },\n}));\n\nconst CountryName = styled('span')({\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n});\n\nconst OptionDialCode = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary,\n flexShrink: 0,\n fontVariantNumeric: 'tabular-nums',\n}));\n\nconst EmptyMessage = styled('p')(({ theme }) => ({\n margin: 0,\n padding: '0.75rem',\n textAlign: 'center',\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const PhoneInput = forwardRef<HTMLInputElement, PhoneInputProps>(\n (\n {\n value,\n defaultValue = '',\n defaultCountry,\n onChange,\n onCountryChange,\n label,\n helperText,\n error = false,\n size = 'md',\n fullWidth = false,\n disabled = false,\n placeholder,\n id,\n countrySelectAriaLabel = (country, dialCode) => `Wybierz kraj, aktualny: ${country} (${dialCode})`,\n phoneAriaLabel = 'Numer telefonu',\n countryListAriaLabel = 'Wybierz kraj',\n countrySearchPlaceholder = 'Szukaj kraju…',\n countrySearchAriaLabel = 'Szukaj kraju',\n digitsLabel = 'cyfr',\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const listboxId = `${inputId}-listbox`;\n\n const initialCountry = useMemo(\n () => COUNTRIES.find((c) => c.flagCode === defaultCountry) ?? DEFAULT_COUNTRY,\n [defaultCountry],\n );\n\n const [selectedCountry, setSelectedCountry] = useState<PhoneCountry>(initialCountry);\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [focused, setFocused] = useState(false);\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue);\n const phoneValue = isControlled ? value : internalValue;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const filteredCountries = useMemo(() => {\n const q = searchQuery.toLowerCase().trim();\n if (!q) return COUNTRIES;\n return COUNTRIES.filter(\n (c) =>\n c.country.toLowerCase().includes(q) ||\n c.flagCode.toLowerCase().includes(q) ||\n c.dialCode.includes(q),\n );\n }, [searchQuery]);\n\n const close = useCallback(() => {\n setIsOpen(false);\n setSearchQuery('');\n }, []);\n\n const openDropdown = () => {\n if (disabled) return;\n setIsOpen((prev) => !prev);\n if (!isOpen) {\n setTimeout(() => searchRef.current?.focus(), 0);\n }\n };\n\n const selectCountry = (country: PhoneCountry) => {\n setSelectedCountry(country);\n onCountryChange?.(country);\n close();\n if (!isControlled) setInternalValue('');\n onChange?.('', { country, dialCode: country.dialCode, fullNumber: country.dialCode });\n };\n\n const handlePhoneChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value.replace(/\\D/g, '');\n const clamped = raw.slice(0, selectedCountry.maxLength);\n if (!isControlled) setInternalValue(clamped);\n onChange?.(clamped, {\n country: selectedCountry,\n dialCode: selectedCountry.dialCode,\n fullNumber: selectedCountry.dialCode + clamped,\n });\n };\n\n const handlePhoneKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;\n if (!/^\\d$/.test(e.key)) e.preventDefault();\n };\n\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) close();\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [isOpen, close]);\n\n const derivedPlaceholder =\n placeholder ??\n (selectedCountry.minLength === selectedCountry.maxLength\n ? `${selectedCountry.maxLength} ${digitsLabel}`\n : `${selectedCountry.minLength}–${selectedCountry.maxLength} ${digitsLabel}`);\n\n return (\n <Root $fullWidth={fullWidth} ref={rootRef}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <InputWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $focused={focused || isOpen}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n >\n <CountryTrigger\n type=\"button\"\n $size={size}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? listboxId : undefined}\n aria-label={countrySelectAriaLabel(selectedCountry.country, selectedCountry.dialCode)}\n onClick={openDropdown}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <CountryFlag countryCode={selectedCountry.flagCode} size={size} />\n <DialCode>{selectedCountry.dialCode}</DialCode>\n <ChevronIcon $open={isOpen}>\n <Chevron />\n </ChevronIcon>\n </CountryTrigger>\n\n <Divider aria-hidden />\n\n <StyledInput\n ref={ref}\n id={inputId}\n $size={size}\n type=\"tel\"\n inputMode=\"numeric\"\n value={phoneValue}\n onChange={handlePhoneChange}\n onKeyDown={handlePhoneKeyDown}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n disabled={disabled}\n placeholder={derivedPlaceholder}\n maxLength={selectedCountry.maxLength}\n aria-label={label ? undefined : phoneAriaLabel}\n />\n\n {isOpen && (\n <DropdownPanel id={listboxId} role=\"listbox\" aria-label={countryListAriaLabel}>\n <SearchBox>\n <SearchInput\n ref={searchRef}\n type=\"search\"\n placeholder={countrySearchPlaceholder}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onKeyDown={(e) => e.key === 'Escape' && close()}\n aria-label={countrySearchAriaLabel}\n />\n </SearchBox>\n <OptionList>\n {filteredCountries.length === 0 ? (\n <EmptyMessage>Nie znaleziono kraju</EmptyMessage>\n ) : (\n filteredCountries.map((country) => {\n const isSelected = country.flagCode === selectedCountry.flagCode;\n return (\n <OptionItem\n key={country.flagCode}\n role=\"option\"\n aria-selected={isSelected}\n $selected={isSelected}\n onClick={() => selectCountry(country)}\n onKeyDown={(e) => e.key === 'Enter' && selectCountry(country)}\n tabIndex={0}\n >\n <CountryFlag countryCode={country.flagCode} size=\"sm\" />\n <CountryName>{country.country}</CountryName>\n <OptionDialCode>{country.dialCode}</OptionDialCode>\n </OptionItem>\n );\n })\n )}\n </OptionList>\n </DropdownPanel>\n )}\n </InputWrapper>\n\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nPhoneInput.displayName = 'PhoneInput';\n","import { forwardRef } from 'react';\nimport { BaseInput } from '@/components';\nimport type { TextInputProps } from '@/components';\n\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n ({ type = 'text', ...rest }, ref) => <BaseInput ref={ref} type={type} {...rest} />,\n);\n\nTextInput.displayName = 'TextInput';\n","import { forwardRef, useId } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport { HelperText } from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { SwitchColor, SwitchInputProps } from '@/components';\n\nconst TRACK_W: Record<InputSize, string> = { sm: '1.75rem', md: '2.25rem', lg: '2.75rem' };\nconst TRACK_H: Record<InputSize, string> = { sm: '1rem', md: '1.25rem', lg: '1.5rem' };\nconst THUMB_S: Record<InputSize, string> = { sm: '0.75rem', md: '1rem', lg: '1.25rem' };\nconst FONT_S: Record<InputSize, string> = { sm: '0.75rem', md: '0.875rem', lg: '1rem' };\n\nfunction getActiveColor(color: SwitchColor, theme: Theme): string {\n switch (color) {\n case 'secondary':\n return theme.palette.secondary.main;\n case 'success':\n return theme.palette.success?.main ?? '#22c55e';\n case 'danger':\n return theme.palette.error.main;\n default:\n return theme.palette.primary.main;\n }\n}\n\nconst Root = styled('span')<{ $disabled: boolean }>(({ $disabled }) => ({\n display: 'inline-flex',\n flexDirection: 'column',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n}));\n\nconst Row = styled('label')<{ $placement: 'end' | 'start' }>(({ $placement }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n flexDirection: $placement === 'start' ? 'row-reverse' : 'row',\n gap: '0.5rem',\n cursor: 'inherit',\n}));\n\nconst HiddenInput = styled('input')({\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n});\n\ninterface TrackProps {\n $size: InputSize;\n $color: SwitchColor;\n $error: boolean;\n $disabled: boolean;\n}\n\nconst Track = styled('span', {\n shouldForwardProp: (p) => !['$size', '$color', '$error', '$disabled'].includes(p as string),\n})<TrackProps>(({ theme, $size, $color, $error, $disabled }) => {\n const active = $error ? theme.palette.error.main : getActiveColor($color, theme);\n return {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: TRACK_W[$size],\n height: TRACK_H[$size],\n borderRadius: '9999px',\n flexShrink: 0,\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.mode === 'dark'\n ? 'rgba(255,255,255,0.2)'\n : 'rgba(0,0,0,0.2)',\n transition: 'background-color 200ms ease',\n 'label:has(input:checked) &': {\n backgroundColor: $disabled ? theme.palette.action.disabledBackground : active,\n },\n 'label:has(input:focus-visible) &': {\n outline: `3px solid ${active}`,\n outlineOffset: '2px',\n },\n };\n});\n\ninterface ThumbProps {\n $size: InputSize;\n}\n\nconst Thumb = styled('span', {\n shouldForwardProp: (p) => p !== '$size',\n})<ThumbProps>(({ theme, $size }) => ({\n position: 'absolute',\n left: '0.125rem',\n width: THUMB_S[$size],\n height: THUMB_S[$size],\n borderRadius: '50%',\n backgroundColor: '#fff',\n boxShadow: theme.shadows[1],\n transition: 'left 200ms ease, transform 200ms ease',\n 'label:has(input:checked) &': {\n left: `calc(100% - ${THUMB_S[$size]} - 0.125rem)`,\n },\n 'label:has(input:focus-visible) &': {\n transform: 'scale(1.1)',\n },\n}));\n\nconst LabelText = styled('span')<{ $size: InputSize; $disabled: boolean; $error: boolean }>(\n ({ theme, $size, $disabled, $error }) => ({\n fontSize: FONT_S[$size],\n color: $disabled\n ? theme.palette.action.disabled\n : $error\n ? theme.palette.error.main\n : theme.palette.text.primary,\n userSelect: 'none',\n fontFamily: theme.typography.fontFamily,\n }),\n);\n\nexport const SwitchInput = forwardRef<HTMLInputElement, SwitchInputProps>(\n (\n {\n label,\n helperText,\n error = false,\n size = 'md',\n color = 'primary',\n disabled = false,\n labelPlacement = 'end',\n id,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n return (\n <Root $disabled={disabled}>\n <Row htmlFor={inputId} $placement={labelPlacement}>\n <Track $size={size} $color={color} $error={error} $disabled={disabled}>\n <HiddenInput\n ref={ref}\n id={inputId}\n type=\"checkbox\"\n role=\"switch\"\n disabled={disabled}\n {...rest}\n />\n <Thumb $size={size} />\n </Track>\n {label && (\n <LabelText $size={size} $disabled={disabled} $error={error}>\n {label}\n </LabelText>\n )}\n </Row>\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n </Root>\n );\n },\n);\n\nSwitchInput.displayName = 'SwitchInput';\n\nexport const switchColors: SwitchColor[] = ['primary', 'secondary', 'success', 'danger'];\n","import { type ChangeEvent, forwardRef, useCallback, useId, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { RangeSliderProps, RangeSliderSize } from '@/components';\n\nconst TRACK_H: Record<RangeSliderSize, string> = { sm: '0.25rem', md: '0.375rem', lg: '0.5rem' };\nconst THUMB_S: Record<RangeSliderSize, string> = { sm: '0.875rem', md: '1.125rem', lg: '1.375rem' };\n\nconst Root = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n width: '100%',\n});\n\nconst LabelRow = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n}));\n\nconst TrackWrapper = styled('div')({ position: 'relative', display: 'flex', alignItems: 'center' });\n\nconst Track = styled('div', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: RangeSliderSize }>(({ theme, $size }) => ({\n position: 'relative',\n width: '100%',\n height: TRACK_H[$size],\n borderRadius: '9999px',\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.15)' : 'rgba(0,0,0,0.1)',\n}));\n\nconst Fill = styled('div')<{ $left: number; $width: number }>(({ theme, $left, $width }) => ({\n position: 'absolute',\n height: '100%',\n borderRadius: '9999px',\n backgroundColor: theme.palette.primary.main,\n left: `${$left}%`,\n width: `${$width}%`,\n pointerEvents: 'none',\n}));\n\nconst HiddenInput = styled('input', {\n shouldForwardProp: (p) => !['$size', '$disabled'].includes(p as string),\n})<{ $disabled: boolean }>(({ theme, $disabled }) => ({\n position: 'absolute',\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n margin: 0,\n padding: 0,\n cursor: $disabled ? 'not-allowed' : 'pointer',\n zIndex: 1,\n '&:focus-visible + span': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '3px',\n },\n}));\n\nconst ThumbVisual = styled('span', {\n shouldForwardProp: (p) => !['$size', '$pct', '$disabled'].includes(p as string),\n})<{ $size: RangeSliderSize; $pct: number; $disabled: boolean }>(\n ({ theme, $size, $pct, $disabled }) => ({\n position: 'absolute',\n width: THUMB_S[$size],\n height: THUMB_S[$size],\n borderRadius: '50%',\n backgroundColor: theme.palette.background.paper,\n border: `2px solid ${$disabled ? theme.palette.action.disabled : theme.palette.primary.main}`,\n boxShadow: theme.shadows[2],\n cursor: $disabled ? 'not-allowed' : 'pointer',\n pointerEvents: 'none',\n top: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n left: `${$pct}%`,\n transition: 'left 0ms',\n zIndex: 0,\n }),\n);\n\nfunction pct(value: number, min: number, max: number) {\n return ((value - min) / (max - min)) * 100;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(max, Math.max(min, v));\n}\n\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n min = 0,\n max = 100,\n step = 1,\n value: controlledValue,\n defaultValue,\n onChange,\n size = 'md',\n disabled = false,\n label,\n showValue = false,\n formatValue = (v) => String(v),\n range = false,\n id,\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n\n const getInitial = useCallback((): [number, number] => {\n if (range) {\n const dv = (defaultValue ?? controlledValue) as [number, number] | undefined;\n return dv ?? [min, max];\n }\n const dv = (defaultValue ?? controlledValue) as number | undefined;\n return [dv ?? min, max];\n }, [range, defaultValue, controlledValue, min, max]);\n\n const [internal, setInternal] = useState<[number, number]>(getInitial);\n\n const [lo, hi] =\n controlledValue !== undefined\n ? range\n ? (controlledValue as [number, number])\n : [controlledValue as number, max]\n : internal;\n\n const emit = (next: [number, number]) => {\n setInternal(next);\n onChange?.(range ? next : next[0]);\n };\n\n const handleLo = (e: ChangeEvent<HTMLInputElement>) => {\n const v = clamp(Number(e.target.value), min, hi - step);\n emit([v, hi]);\n };\n\n const handleHi = (e: ChangeEvent<HTMLInputElement>) => {\n const v = clamp(Number(e.target.value), lo + step, max);\n emit([lo, v]);\n };\n\n const handleSingle = (e: ChangeEvent<HTMLInputElement>) => {\n emit([Number(e.target.value), max]);\n };\n\n const loP = pct(lo, min, max);\n const hiP = pct(hi, min, max);\n\n const valueLabel = range ? `${formatValue(lo)} – ${formatValue(hi)}` : formatValue(lo);\n\n return (\n <Root ref={ref} {...props}>\n {(label || showValue) && (\n <LabelRow>\n {label && <span>{label}</span>}\n {showValue && <span>{valueLabel}</span>}\n </LabelRow>\n )}\n\n <TrackWrapper>\n <Track $size={size}>\n <Fill $left={range ? loP : 0} $width={range ? hiP - loP : loP} />\n\n {range ? (\n <>\n <HiddenInput\n id={`${inputId}-lo`}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={lo}\n disabled={disabled}\n $disabled={disabled}\n onChange={handleLo}\n aria-label={label ? `${label} — minimum` : 'Minimum'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={lo}\n />\n <ThumbVisual $size={size} $pct={loP} $disabled={disabled} />\n <HiddenInput\n id={`${inputId}-hi`}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={hi}\n disabled={disabled}\n $disabled={disabled}\n onChange={handleHi}\n aria-label={label ? `${label} — maksimum` : 'Maksimum'}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={hi}\n />\n <ThumbVisual $size={size} $pct={hiP} $disabled={disabled} />\n </>\n ) : (\n <>\n <HiddenInput\n id={inputId}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={lo}\n disabled={disabled}\n $disabled={disabled}\n onChange={handleSingle}\n aria-label={label}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={lo}\n />\n <ThumbVisual $size={size} $pct={loP} $disabled={disabled} />\n </>\n )}\n </Track>\n </TrackWrapper>\n\n {range && (\n <LabelRow aria-hidden=\"true\">\n <span>{formatValue(min)}</span>\n <span>{formatValue(max)}</span>\n </LabelRow>\n )}\n </Root>\n );\n },\n);\n\nRangeSlider.displayName = 'RangeSlider';\n\nexport const rangeSliderSizes: RangeSliderSize[] = ['sm', 'md', 'lg'];\n","import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';\nimport { keyframes, styled, type Theme } from '@mui/material/styles';\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport CloseIcon from '@mui/icons-material/Close';\nimport {\n Label,\n HelperText,\n inputSizeMap,\n inputHeightMap,\n} from '@/components/atoms/inputs/elements';\nimport type { InputSize } from '@/components/atoms/inputs/elements/types';\nimport type { DateTimePickerProps, DateTimePickerMode } from '@/components';\n\n// ─── helpers ────────────────────────────────────────────────────────────────\n\nconst DAY_LABELS = ['Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So', 'Nd'];\nconst MONTH_NAMES = [\n 'Styczeń',\n 'Luty',\n 'Marzec',\n 'Kwiecień',\n 'Maj',\n 'Czerwiec',\n 'Lipiec',\n 'Sierpień',\n 'Wrzesień',\n 'Październik',\n 'Listopad',\n 'Grudzień',\n];\n\nfunction weekdayMon(d: Date): number {\n return (d.getDay() + 6) % 7;\n}\n\nfunction buildCalendarDays(year: number, month: number): Date[] {\n const first = new Date(year, month, 1);\n const offset = weekdayMon(first);\n return Array.from({ length: 42 }, (_, i) => new Date(year, month, 1 - offset + i));\n}\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction isToday(d: Date): boolean {\n return isSameDay(d, new Date());\n}\n\nfunction clamp(val: number, lo: number, hi: number): number {\n return Math.max(lo, Math.min(hi, val));\n}\n\nfunction formatDisplay(date: Date | null, mode: DateTimePickerMode): string {\n if (!date) return '';\n const dd = String(date.getDate()).padStart(2, '0');\n const mm = String(date.getMonth() + 1).padStart(2, '0');\n const yyyy = date.getFullYear();\n const hh = String(date.getHours()).padStart(2, '0');\n const min = String(date.getMinutes()).padStart(2, '0');\n if (mode === 'date') return `${dd}.${mm}.${yyyy}`;\n if (mode === 'time') return `${hh}:${min}`;\n return `${dd}.${mm}.${yyyy} ${hh}:${min}`;\n}\n\n// ─── styled — reuse the same tokens as BaseInput ────────────────────────────\n\nconst inputColors = (theme: Theme, error: boolean) => ({\n borderColor: error ? theme.palette.error.main : theme.palette.divider,\n '&:hover:not(:focus-within):not([data-disabled])': {\n borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary,\n },\n '&:focus-within': {\n borderColor: error ? theme.palette.error.main : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`,\n },\n});\n\nconst Root = styled('div')<{ $fullWidth: boolean }>(({ $fullWidth }) => ({\n display: $fullWidth ? 'block' : 'inline-block',\n width: $fullWidth ? '100%' : 'auto',\n position: 'relative',\n}));\n\n/** Identical look to BaseInput's InputWrapper */\nconst InputWrapper = styled('div')<{\n $size: InputSize;\n $fullWidth: boolean;\n $error: boolean;\n $disabled: boolean;\n}>(({ theme, $size, $fullWidth, $error, $disabled }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n width: $fullWidth ? '100%' : 'auto',\n borderRadius: theme.shape.borderRadius,\n border: '1px solid',\n backgroundColor: $disabled\n ? theme.palette.action.disabledBackground\n : theme.palette.background.paper,\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n cursor: $disabled ? 'not-allowed' : 'text',\n ...inputSizeMap[$size],\n height: inputHeightMap[$size],\n paddingBlock: 0,\n ...inputColors(theme, $error),\n ...($disabled && {\n borderColor: theme.palette.action.disabled,\n pointerEvents: 'none',\n }),\n}));\n\n/** Mimics StyledInput from BaseInput — fills available space, transparent bg */\nconst TriggerButton = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'transparent',\n outline: 'none',\n flex: 1,\n textAlign: 'left',\n cursor: 'inherit',\n fontFamily: theme.typography.fontFamily,\n fontSize: 'inherit',\n color: theme.palette.text.primary,\n padding: 0,\n minWidth: 0,\n '&:focus-visible': { outline: 'none' },\n}));\n\nconst Placeholder = styled('span')(({ theme }) => ({\n color: theme.palette.text.disabled,\n}));\n\nconst adornmentStyles = ({ theme }: { theme: Theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n cursor: 'pointer',\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n borderRadius: '0.25rem',\n },\n});\n\n/** Same Adornment as BaseInput */\nconst Adornment = styled('span')(adornmentStyles);\nconst AdornmentButton = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'transparent',\n padding: 0,\n ...adornmentStyles({ theme }),\n}));\n\nconst popIn = keyframes`\n from { opacity: 0; transform: translateY(4px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n`;\n\nconst Popover = styled('div')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(100% + 4px)',\n left: 0,\n zIndex: 1400,\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n animation: `${popIn} 150ms ease`,\n userSelect: 'none',\n minWidth: '16rem',\n}));\n\nconst CalHeader = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0.625rem 0.75rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n}));\n\nconst NavBtn = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '2rem',\n borderRadius: '0.375rem',\n color: theme.palette.text.secondary,\n transition: 'background-color 150ms ease, color 150ms ease',\n '&:hover': { backgroundColor: theme.palette.action.hover, color: theme.palette.text.primary },\n '&:focus-visible': { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: '1px' },\n}));\n\nconst MonthLabel = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: '0.875rem',\n color: theme.palette.text.primary,\n}));\n\nconst CalGrid = styled('div')({\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n padding: '0.5rem 0.75rem',\n gap: '2px',\n});\n\nconst DayLabelCell = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '2rem',\n fontSize: '0.7rem',\n fontWeight: 600,\n color: theme.palette.text.disabled,\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst DayCell = styled('button')<{\n $today: boolean;\n $selected: boolean;\n $otherMonth: boolean;\n $disabled: boolean;\n}>(({ theme, $today, $selected, $otherMonth, $disabled }) => ({\n appearance: 'none',\n border: 'none',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '2rem',\n borderRadius: '50%',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n transition: 'background-color 120ms ease',\n backgroundColor: $selected ? theme.palette.primary.main : 'transparent',\n color: $selected\n ? theme.palette.primary.contrastText\n : $disabled\n ? theme.palette.action.disabled\n : $otherMonth\n ? theme.palette.text.disabled\n : theme.palette.text.primary,\n fontWeight: $today && !$selected ? 700 : 400,\n outline: $today && !$selected ? `2px solid ${theme.palette.primary.main}` : 'none',\n outlineOffset: '-2px',\n pointerEvents: $disabled ? 'none' : 'auto',\n '&:hover': {\n backgroundColor: $selected ? theme.palette.primary.dark : theme.palette.action.hover,\n },\n '&:focus-visible': { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: '1px' },\n}));\n\nconst TimeRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '0.25rem',\n padding: '0.625rem 0.75rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nconst Spinner = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '0.25rem',\n});\n\nconst SpinBtn = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '1.5rem',\n borderRadius: '0.25rem',\n color: theme.palette.text.secondary,\n '&:hover': { backgroundColor: theme.palette.action.hover, color: theme.palette.text.primary },\n '&:focus-visible': { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: '1px' },\n}));\n\nconst TimeInput = styled('input')(({ theme }) => ({\n width: '2.5rem',\n textAlign: 'center',\n fontFamily: theme.typography.fontFamily,\n fontSize: '1.125rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: 'transparent',\n padding: '0.125rem 0',\n outline: 'none',\n '&:focus': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 2px ${theme.palette.primary.main}33`,\n },\n}));\n\nconst TimeSep = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '1.125rem',\n fontWeight: 700,\n color: theme.palette.text.secondary,\n alignSelf: 'center',\n}));\n\nconst PopoverActions = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '0.5rem',\n padding: '0.5rem 0.75rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nconst ActionBtn = styled('button')<{ $primary?: boolean }>(({ theme, $primary }) => ({\n appearance: 'none',\n border: $primary ? 'none' : `1px solid ${theme.palette.divider}`,\n background: $primary ? theme.palette.primary.main : 'none',\n color: $primary ? theme.palette.primary.contrastText : theme.palette.text.primary,\n cursor: 'pointer',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n fontWeight: 500,\n padding: '0.25rem 0.75rem',\n borderRadius: theme.shape.borderRadius,\n transition: 'background-color 150ms ease',\n '&:hover': {\n backgroundColor: $primary ? theme.palette.primary.dark : theme.palette.action.hover,\n },\n '&:focus-visible': { outline: `2px solid ${theme.palette.primary.main}`, outlineOffset: '1px' },\n}));\n\n// ─── icons ───────────────────────────────────────────────────────────────────\n\nfunction IconCalendar() {\n return <CalendarMonthIcon aria-hidden=\"true\" style={{ fontSize: 16 }} />;\n}\n\nfunction IconClock() {\n return <AccessTimeIcon aria-hidden=\"true\" style={{ fontSize: 16 }} />;\n}\n\nfunction IconChevronLeft() {\n return <ChevronLeftIcon aria-hidden=\"true\" style={{ fontSize: 16 }} />;\n}\n\nfunction IconChevronRight() {\n return <ChevronRightIcon aria-hidden=\"true\" style={{ fontSize: 16 }} />;\n}\n\nfunction IconChevronUp() {\n return <KeyboardArrowUpIcon aria-hidden=\"true\" style={{ fontSize: 12 }} />;\n}\n\nfunction IconChevronDown() {\n return <KeyboardArrowDownIcon aria-hidden=\"true\" style={{ fontSize: 12 }} />;\n}\n\nfunction IconX() {\n return <CloseIcon aria-hidden=\"true\" style={{ fontSize: 14 }} />;\n}\n\n// ─── component ───────────────────────────────────────────────────────────────\n\nexport const DateTimePicker = forwardRef<HTMLButtonElement, DateTimePickerProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n mode = 'date',\n label,\n helperText,\n error = false,\n disabled = false,\n fullWidth = false,\n size = 'md',\n placeholder,\n min,\n max,\n id,\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const rootRef = useRef<HTMLDivElement>(null);\n\n const isControlled = value !== undefined;\n const [internalDate, setInternalDate] = useState<Date | null>(defaultValue ?? null);\n const selectedDate: Date | null = isControlled ? (value ?? null) : internalDate;\n\n const [open, setOpen] = useState(false);\n\n const today = new Date();\n const [viewYear, setViewYear] = useState(selectedDate?.getFullYear() ?? today.getFullYear());\n const [viewMonth, setViewMonth] = useState(selectedDate?.getMonth() ?? today.getMonth());\n\n const [hours, setHours] = useState(selectedDate?.getHours() ?? 12);\n const [minutes, setMinutes] = useState(selectedDate?.getMinutes() ?? 0);\n const [hourInput, setHourInput] = useState(\n String(selectedDate?.getHours() ?? 12).padStart(2, '0'),\n );\n const [minInput, setMinInput] = useState(\n String(selectedDate?.getMinutes() ?? 0).padStart(2, '0'),\n );\n\n // draft holds the pending day selection while popover is open (datetime mode)\n const [draftDate, setDraftDate] = useState<Date | null>(null);\n\n const calendarDays = useMemo(\n () => buildCalendarDays(viewYear, viewMonth),\n [viewYear, viewMonth],\n );\n\n const handleOpen = () => {\n const base = selectedDate;\n setDraftDate(base);\n if (base) {\n setViewYear(base.getFullYear());\n setViewMonth(base.getMonth());\n const h = base.getHours();\n const m = base.getMinutes();\n setHours(h);\n setMinutes(m);\n setHourInput(String(h).padStart(2, '0'));\n setMinInput(String(m).padStart(2, '0'));\n }\n setOpen(true);\n };\n\n const commit = useCallback(\n (d: Date | null) => {\n if (!isControlled) setInternalDate(d);\n onChange?.(d);\n setOpen(false);\n },\n [isControlled, onChange],\n );\n\n const handleDayClick = (day: Date) => {\n const h = mode !== 'date' ? hours : 0;\n const m = mode !== 'date' ? minutes : 0;\n const next = new Date(day.getFullYear(), day.getMonth(), day.getDate(), h, m);\n if (mode === 'date') {\n commit(next);\n } else {\n setDraftDate(next);\n }\n };\n\n const handleConfirm = () => {\n if (mode === 'time') {\n const base = selectedDate ?? new Date();\n commit(new Date(base.getFullYear(), base.getMonth(), base.getDate(), hours, minutes));\n } else if (draftDate) {\n commit(\n new Date(\n draftDate.getFullYear(),\n draftDate.getMonth(),\n draftDate.getDate(),\n hours,\n minutes,\n ),\n );\n }\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n commit(null);\n };\n\n const isDayDisabled = (d: Date) => {\n if (min && d < new Date(min.getFullYear(), min.getMonth(), min.getDate())) return true;\n if (max && d > new Date(max.getFullYear(), max.getMonth(), max.getDate())) return true;\n return false;\n };\n\n const prevMonth = () => {\n if (viewMonth === 0) {\n setViewMonth(11);\n setViewYear((y) => y - 1);\n } else setViewMonth((m) => m - 1);\n };\n\n const nextMonth = () => {\n if (viewMonth === 11) {\n setViewMonth(0);\n setViewYear((y) => y + 1);\n } else setViewMonth((m) => m + 1);\n };\n\n const adjustHours = (delta: number) => {\n const next = (hours + delta + 24) % 24;\n setHours(next);\n setHourInput(String(next).padStart(2, '0'));\n };\n\n const adjustMinutes = (delta: number) => {\n const next = (minutes + delta + 60) % 60;\n setMinutes(next);\n setMinInput(String(next).padStart(2, '0'));\n };\n\n const commitHourInput = () => {\n const val = clamp(parseInt(hourInput, 10) || 0, 0, 23);\n setHours(val);\n setHourInput(String(val).padStart(2, '0'));\n };\n\n const commitMinInput = () => {\n const val = clamp(parseInt(minInput, 10) || 0, 0, 59);\n setMinutes(val);\n setMinInput(String(val).padStart(2, '0'));\n };\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(e.target as Node)) setOpen(false);\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setOpen(false);\n };\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [open]);\n\n const placeholderText =\n placeholder ??\n (mode === 'date' ? 'dd.mm.rrrr' : mode === 'time' ? 'hh:mm' : 'dd.mm.rrrr hh:mm');\n const displayText = formatDisplay(selectedDate, mode);\n const showCalendar = mode !== 'time';\n const showTime = mode !== 'date';\n const needsConfirm = mode !== 'date';\n\n return (\n <Root ref={rootRef} $fullWidth={fullWidth}>\n {label && (\n <Label htmlFor={inputId} error={error} size={size}>\n {label}\n </Label>\n )}\n <InputWrapper\n $size={size}\n $fullWidth={fullWidth}\n $error={error}\n $disabled={disabled}\n data-disabled={disabled || undefined}\n >\n <TriggerButton\n ref={ref}\n id={inputId}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-label={label ?? 'Wybierz datę'}\n onClick={handleOpen}\n disabled={disabled}\n >\n {displayText ? displayText : <Placeholder>{placeholderText}</Placeholder>}\n </TriggerButton>\n\n {selectedDate && !disabled && (\n <AdornmentButton type=\"button\" aria-label=\"Wyczyść\" onClick={handleClear}>\n <IconX />\n </AdornmentButton>\n )}\n <Adornment aria-hidden=\"true\" onClick={handleOpen}>\n {showCalendar ? <IconCalendar /> : <IconClock />}\n </Adornment>\n </InputWrapper>\n\n {helperText && <HelperText error={error}>{helperText}</HelperText>}\n\n {open && (\n <Popover role=\"dialog\" aria-label=\"Wybór daty i godziny\" aria-modal=\"true\">\n {showCalendar && (\n <>\n <CalHeader>\n <NavBtn type=\"button\" onClick={prevMonth} aria-label=\"Poprzedni miesiąc\">\n <IconChevronLeft />\n </NavBtn>\n <MonthLabel>\n {MONTH_NAMES[viewMonth]} {viewYear}\n </MonthLabel>\n <NavBtn type=\"button\" onClick={nextMonth} aria-label=\"Następny miesiąc\">\n <IconChevronRight />\n </NavBtn>\n </CalHeader>\n <CalGrid>\n {DAY_LABELS.map((d) => (\n <DayLabelCell key={d}>{d}</DayLabelCell>\n ))}\n {calendarDays.map((day) => {\n const selected = draftDate\n ? isSameDay(day, draftDate)\n : selectedDate\n ? isSameDay(day, selectedDate)\n : false;\n const dis = isDayDisabled(day);\n return (\n <DayCell\n key={day.toISOString()}\n type=\"button\"\n $today={isToday(day)}\n $selected={selected}\n $otherMonth={day.getMonth() !== viewMonth}\n $disabled={dis}\n aria-label={`${day.getDate()} ${MONTH_NAMES[day.getMonth()]} ${day.getFullYear()}`}\n aria-pressed={selected}\n aria-disabled={dis}\n onClick={() => handleDayClick(day)}\n >\n {day.getDate()}\n </DayCell>\n );\n })}\n </CalGrid>\n </>\n )}\n\n {showTime && (\n <TimeRow>\n <Spinner>\n <SpinBtn\n type=\"button\"\n onClick={() => adjustHours(1)}\n aria-label=\"Zwiększ godzinę\"\n >\n <IconChevronUp />\n </SpinBtn>\n <TimeInput\n aria-label=\"Wartość godzin\"\n value={hourInput}\n onChange={(e) => setHourInput(e.target.value)}\n onBlur={commitHourInput}\n onKeyDown={(e) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n adjustHours(1);\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n adjustHours(-1);\n }\n if (e.key === 'Enter') commitHourInput();\n }}\n inputMode=\"numeric\"\n />\n <SpinBtn\n type=\"button\"\n onClick={() => adjustHours(-1)}\n aria-label=\"Zmniejsz godzinę\"\n >\n <IconChevronDown />\n </SpinBtn>\n </Spinner>\n <TimeSep>:</TimeSep>\n <Spinner>\n <SpinBtn\n type=\"button\"\n onClick={() => adjustMinutes(1)}\n aria-label=\"Zwiększ minuty\"\n >\n <IconChevronUp />\n </SpinBtn>\n <TimeInput\n aria-label=\"Wartość minut\"\n value={minInput}\n onChange={(e) => setMinInput(e.target.value)}\n onBlur={commitMinInput}\n onKeyDown={(e) => {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n adjustMinutes(1);\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n adjustMinutes(-1);\n }\n if (e.key === 'Enter') commitMinInput();\n }}\n inputMode=\"numeric\"\n />\n <SpinBtn\n type=\"button\"\n onClick={() => adjustMinutes(-1)}\n aria-label=\"Zmniejsz minuty\"\n >\n <IconChevronDown />\n </SpinBtn>\n </Spinner>\n </TimeRow>\n )}\n\n {needsConfirm && (\n <PopoverActions>\n <ActionBtn type=\"button\" onClick={() => setOpen(false)}>\n Anuluj\n </ActionBtn>\n <ActionBtn type=\"button\" $primary onClick={handleConfirm}>\n Zatwierdź\n </ActionBtn>\n </PopoverActions>\n )}\n </Popover>\n )}\n </Root>\n );\n },\n);\n\nDateTimePicker.displayName = 'DateTimePicker';\n","import type { InputSize } from '@/components/atoms/inputs/elements/types';\n\nexport type DateTimePickerMode = 'date' | 'time' | 'datetime';\n\nexport interface DateTimePickerProps {\n value?: Date | null;\n defaultValue?: Date | null;\n onChange?: (date: Date | null) => void;\n mode?: DateTimePickerMode;\n label?: string;\n helperText?: string;\n error?: boolean;\n disabled?: boolean;\n fullWidth?: boolean;\n size?: InputSize;\n placeholder?: string;\n min?: Date;\n max?: Date;\n id?: string;\n}\n\nexport const dateTimePickerModes: DateTimePickerMode[] = ['date', 'time', 'datetime'];\n","import { forwardRef } from 'react';\nimport { styled, type Theme, type CSSObject } from '@mui/material/styles';\nimport type { CardProps, CardVariant, CardPadding, CardRounded } from './Card.types';\n\nconst paddingMap: Record<CardPadding, string> = {\n none: '0',\n sm: '1rem',\n md: '1.5rem',\n lg: '2rem',\n xl: '3rem',\n};\n\nconst roundedMap: Record<CardRounded, string> = {\n none: '0',\n sm: '0.375rem',\n md: '0.75rem',\n lg: '1rem',\n full: '1.5rem',\n};\n\nconst noiseLight =\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E\\\")\";\nconst noiseDark =\n \"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.12'/%3E%3C/svg%3E\\\")\";\n\nfunction getVariantStyles(variant: CardVariant, theme: Theme): CSSObject {\n const dark = theme.palette.mode === 'dark';\n const bg = theme.palette.background.paper;\n const border = theme.palette.divider;\n const primary = theme.palette.primary.main;\n\n switch (variant) {\n case 'default':\n return { backgroundColor: bg, border: `1px solid ${border}` };\n case 'muted':\n return {\n backgroundColor: dark ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.04)',\n border: `1px solid ${border}`,\n };\n case 'accent':\n return {\n backgroundColor: `${primary}14`,\n border: `1px solid ${primary}33`,\n };\n case 'primary':\n return {\n backgroundColor: `${primary}1a`,\n border: `1px solid ${primary}33`,\n };\n case 'ghost':\n return { backgroundColor: 'transparent', border: `1px solid ${border}` };\n case 'elevated':\n return {\n backgroundColor: bg,\n border: `1px solid ${border}`,\n boxShadow: theme.shadows[3],\n };\n case 'glass':\n return {\n backgroundColor: dark ? 'rgba(255,255,255,0.06)' : 'rgba(255,255,255,0.60)',\n backdropFilter: 'blur(12px)',\n border: `1px solid ${dark ? 'rgba(255,255,255,0.12)' : 'rgba(0,0,0,0.10)'}`,\n };\n case 'gradient':\n return {\n background: dark\n ? `linear-gradient(135deg, ${bg}, rgba(255,255,255,0.03))`\n : `linear-gradient(135deg, ${bg}, rgba(0,0,0,0.03))`,\n border: `1px solid ${border}`,\n };\n case 'gradient-primary':\n return {\n background: `linear-gradient(135deg, ${primary}0d, ${primary}26)`,\n border: `1px solid ${primary}40`,\n };\n case 'outline':\n return { backgroundColor: 'transparent', border: `1px solid ${border}` };\n case 'outline-primary':\n return { backgroundColor: 'transparent', border: `1px solid ${primary}66` };\n case 'flat':\n return {\n backgroundColor: dark ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.04)',\n border: '1px solid transparent',\n };\n\n // Decorative variants\n case 'dots':\n return {\n backgroundColor: bg,\n backgroundImage: dark\n ? 'radial-gradient(circle, #374151 1px, transparent 1px)'\n : 'radial-gradient(circle, #d1d5db 1px, transparent 1px)',\n backgroundSize: '20px 20px',\n border: `1px solid ${border}`,\n };\n case 'grid':\n return {\n backgroundColor: bg,\n backgroundImage: dark\n ? 'linear-gradient(#1f2937 1px, transparent 1px), linear-gradient(90deg, #1f2937 1px, transparent 1px)'\n : 'linear-gradient(#e5e7eb 1px, transparent 1px), linear-gradient(90deg, #e5e7eb 1px, transparent 1px)',\n backgroundSize: '28px 28px',\n border: `1px solid ${border}`,\n };\n case 'mesh':\n return dark\n ? {\n backgroundColor: bg,\n backgroundImage:\n 'radial-gradient(at 20% 20%, rgba(25,118,210,0.25) 0px, transparent 60%), radial-gradient(at 85% 15%, rgba(25,118,210,0.12) 0px, transparent 50%), radial-gradient(at 80% 85%, rgba(255,255,255,0.03) 0px, transparent 50%), radial-gradient(at 15% 85%, rgba(25,118,210,0.08) 0px, transparent 50%)',\n border: `1px solid ${border}`,\n }\n : {\n backgroundColor: theme.palette.background.default,\n backgroundImage:\n 'radial-gradient(at 20% 20%, rgba(25,118,210,0.12) 0px, transparent 60%), radial-gradient(at 85% 15%, rgba(25,118,210,0.06) 0px, transparent 50%), radial-gradient(at 80% 85%, rgba(0,0,0,0.03) 0px, transparent 50%), radial-gradient(at 15% 85%, rgba(25,118,210,0.04) 0px, transparent 50%)',\n border: `1px solid ${border}`,\n };\n case 'aurora':\n return {\n backgroundColor: dark ? '#050a14' : '#ffffff',\n backgroundImage:\n 'radial-gradient(ellipse at top left, rgba(251,191,36,0.20) 0%, transparent 55%), radial-gradient(ellipse at top right, rgba(139,92,246,0.18) 0%, transparent 55%), radial-gradient(ellipse at bottom, rgba(25,118,210,0.15) 0%, transparent 55%)',\n border: `1px solid ${border}`,\n };\n case 'spotlight':\n return dark\n ? {\n background: `radial-gradient(ellipse 80% 55% at 50% 0%, ${primary}2e 0%, ${bg} 100%)`,\n border: `1px solid ${border}`,\n borderTopColor: `${primary}99`,\n }\n : {\n background: `radial-gradient(ellipse 80% 55% at 50% 0%, ${primary}14 0%, ${bg} 100%)`,\n border: `1px solid ${border}`,\n borderTopColor: `${primary}66`,\n };\n case 'neon':\n return {\n backgroundColor: '#030712',\n border: `1px solid ${primary}`,\n boxShadow: `0 0 18px ${primary}4d, inset 0 0 18px ${primary}0d`,\n };\n case 'diagonal':\n return {\n backgroundColor: bg,\n backgroundImage: dark\n ? 'repeating-linear-gradient(-45deg, transparent, transparent 9px, #1f2937 9px, #1f2937 10px)'\n : 'repeating-linear-gradient(-45deg, transparent, transparent 9px, #f3f4f6 9px, #f3f4f6 10px)',\n border: `1px solid ${border}`,\n };\n case 'blueprint':\n return {\n backgroundColor: '#1b3a5c',\n backgroundImage:\n 'linear-gradient(rgba(100,160,240,0.3) 1px, transparent 1px), linear-gradient(90deg, rgba(100,160,240,0.3) 1px, transparent 1px), linear-gradient(rgba(100,160,240,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(100,160,240,0.08) 1px, transparent 1px)',\n backgroundSize: '70px 70px, 70px 70px, 14px 14px, 14px 14px',\n border: '1px solid rgba(100,160,240,0.45)',\n };\n case 'noise':\n return {\n backgroundColor: bg,\n backgroundImage: dark ? noiseDark : noiseLight,\n border: `1px solid ${border}`,\n };\n case 'crosshatch':\n return {\n backgroundColor: bg,\n backgroundImage: dark\n ? 'repeating-linear-gradient(45deg, transparent, transparent 9px, #374151 9px, #374151 10px), repeating-linear-gradient(-45deg, transparent, transparent 9px, #374151 9px, #374151 10px)'\n : 'repeating-linear-gradient(45deg, transparent, transparent 9px, #e5e7eb 9px, #e5e7eb 10px), repeating-linear-gradient(-45deg, transparent, transparent 9px, #e5e7eb 9px, #e5e7eb 10px)',\n border: `1px solid ${border}`,\n };\n }\n}\n\ninterface StyledCardProps {\n $variant: CardVariant;\n $padding: CardPadding;\n $rounded: CardRounded;\n}\n\nconst StyledCard = styled('div', {\n shouldForwardProp: (prop) => !['$variant', '$padding', '$rounded'].includes(prop as string),\n})<StyledCardProps>(({ theme, $variant, $padding, $rounded }) => ({\n padding: paddingMap[$padding],\n borderRadius: roundedMap[$rounded],\n ...getVariantStyles($variant, theme),\n}));\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ variant = 'default', padding = 'md', rounded = 'lg', ...props }, ref) => (\n <StyledCard ref={ref} $variant={variant} $padding={padding} $rounded={rounded} {...props} />\n ),\n);\n\nCard.displayName = 'Card';\n\nexport const cardVariants: CardVariant[] = [\n 'default', 'muted', 'accent', 'primary', 'ghost', 'elevated', 'glass',\n 'gradient', 'gradient-primary', 'outline', 'outline-primary', 'flat',\n 'dots', 'grid', 'mesh', 'aurora', 'spotlight', 'neon', 'diagonal',\n 'blueprint', 'noise', 'crosshatch',\n];\nexport const cardPaddings: CardPadding[] = ['none', 'sm', 'md', 'lg', 'xl'];\nexport const cardRoundeds: CardRounded[] = ['none', 'sm', 'md', 'lg', 'full'];\n","import { styled, type Theme, type CSSObject } from '@mui/material/styles';\nimport type { BadgeProps, BadgeVariant } from '@/components';\n\nfunction getVariantStyles(variant: BadgeVariant, theme: Theme): CSSObject {\n const primary = theme.palette.primary.main;\n const secondary = theme.palette.secondary.main;\n const error = theme.palette.error.main;\n\n switch (variant) {\n case 'default':\n return {\n backgroundColor: `${primary}26`,\n color: primary,\n border: '1px solid transparent',\n };\n case 'secondary':\n return {\n backgroundColor: `${secondary}26`,\n color: secondary,\n border: '1px solid transparent',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n border: `1px solid ${theme.palette.divider}`,\n color: theme.palette.text.primary,\n };\n case 'destructive':\n return {\n backgroundColor: `${error}26`,\n color: error,\n border: '1px solid transparent',\n };\n case 'success':\n return {\n backgroundColor: 'rgba(34,197,94,0.15)',\n color: theme.palette.mode === 'dark' ? 'rgb(134,239,172)' : 'rgb(22,163,74)',\n border: '1px solid transparent',\n };\n case 'ghost':\n return {\n backgroundColor: 'rgba(255,255,255,0.15)',\n color: theme.palette.common.white,\n border: '1px solid rgba(255,255,255,0.4)',\n };\n case 'promo':\n return {\n backgroundColor: theme.palette.mode === 'dark' ? 'rgb(22,163,74)' : 'rgb(22,163,74)',\n color: '#ffffff',\n border: '1px solid transparent',\n };\n }\n}\n\ninterface StyledBadgeProps {\n $variant: BadgeVariant;\n}\n\nconst StyledBadge = styled('span', {\n shouldForwardProp: (prop) => prop !== '$variant',\n})<StyledBadgeProps>(({ theme, $variant }) => ({\n display: 'inline-block',\n borderRadius: '9999px',\n padding: '0.375rem 1rem',\n fontSize: '0.875rem',\n fontWeight: 500,\n lineHeight: 1,\n fontFamily: theme.typography.fontFamily,\n ...getVariantStyles($variant, theme),\n}));\n\nexport function Badge({ variant = 'default', ...props }: BadgeProps) {\n return <StyledBadge $variant={variant} {...props} />;\n}\n\nexport const badgeVariants: BadgeVariant[] = [\n 'default',\n 'secondary',\n 'outline',\n 'destructive',\n 'success',\n 'ghost',\n 'promo',\n];\n","import { styled, type Theme, type CSSObject } from '@mui/material/styles';\nimport type { AvatarProps, AvatarSize, AvatarColor } from '@/components';\n\nconst sizeMap: Record<AvatarSize, CSSObject> = {\n sm: { width: '2rem', height: '2rem', fontSize: '0.75rem' },\n md: { width: '2.5rem', height: '2.5rem', fontSize: '0.875rem' },\n lg: { width: '3rem', height: '3rem', fontSize: '1rem' },\n xl: { width: '4rem', height: '4rem', fontSize: '1.125rem' },\n};\n\nfunction getColorStyles(color: AvatarColor, theme: Theme): CSSObject {\n switch (color) {\n case 'primary':\n return {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n };\n case 'secondary':\n return {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText,\n };\n case 'muted':\n return {\n backgroundColor:\n theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.12)' : 'rgba(0,0,0,0.08)',\n color: theme.palette.text.secondary,\n };\n }\n}\n\ninterface StyledAvatarProps {\n $size: AvatarSize;\n $color: AvatarColor;\n}\n\nconst StyledAvatar = styled('div', {\n shouldForwardProp: (prop) => !['$size', '$color'].includes(prop as string),\n})<StyledAvatarProps>(({ theme, $size, $color }) => ({\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '50%',\n fontWeight: 600,\n fontFamily: theme.typography.fontFamily,\n userSelect: 'none',\n ...sizeMap[$size],\n ...getColorStyles($color, theme),\n}));\n\nexport function Avatar({ initials, size = 'md', color = 'primary', ...props }: AvatarProps) {\n return (\n <StyledAvatar $size={size} $color={color} {...props}>\n {initials}\n </StyledAvatar>\n );\n}\n\nexport const avatarSizes: AvatarSize[] = ['sm', 'md', 'lg', 'xl'];\nexport const avatarColors: AvatarColor[] = ['primary', 'secondary', 'muted'];\n","import { styled, type CSSObject } from '@mui/material/styles';\nimport type { SectionHeadingProps, SectionHeadingAlign } from '@/components';\n\nconst alignMap: Record<SectionHeadingAlign, CSSObject> = {\n center: { marginLeft: 'auto', marginRight: 'auto', textAlign: 'center' },\n left: { textAlign: 'left' },\n right: { marginLeft: 'auto', textAlign: 'right' },\n};\n\ninterface StyledWrapperProps {\n $align: SectionHeadingAlign;\n}\n\nconst Wrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== '$align',\n})<StyledWrapperProps>(({ $align }) => ({\n maxWidth: '42rem',\n ...alignMap[$align],\n}));\n\nconst Title = styled('h2')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '1.875rem',\n fontWeight: 700,\n letterSpacing: '-0.025em',\n color: theme.palette.text.primary,\n margin: 0,\n [theme.breakpoints.up('md')]: {\n fontSize: '2.25rem',\n },\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n marginTop: '1rem',\n marginBottom: 0,\n fontSize: '1.125rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n}));\n\nexport function SectionHeading({\n title,\n description,\n align = 'center',\n as = 'h2',\n ...props\n}: SectionHeadingProps) {\n return (\n <Wrapper $align={align} {...props}>\n <Title as={as}>{title}</Title>\n {description && <Description>{description}</Description>}\n </Wrapper>\n );\n}\n\nexport const sectionHeadingAligns: SectionHeadingAlign[] = ['center', 'left', 'right'];\n","import { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport type { SkeletonProps, SkeletonVariant } from '@/components';\n\nconst shimmer = keyframes`\n 0% { background-position: -200% 0; }\n 100% { background-position: 200% 0; }\n`;\n\ninterface StyledProps {\n $variant: SkeletonVariant;\n $width?: string | number;\n $height?: string | number;\n}\n\nconst StyledSkeleton = styled('span', {\n shouldForwardProp: (prop) => !['$variant', '$width', '$height'].includes(prop as string),\n})<StyledProps>(({ theme, $variant, $width, $height }) => {\n const base = theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)';\n const highlight = theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.16)' : 'rgba(0,0,0,0.15)';\n\n return {\n display: 'block',\n backgroundImage: `linear-gradient(90deg, ${base} 25%, ${highlight} 50%, ${base} 75%)`,\n backgroundSize: '200% 100%',\n animation: `${shimmer} 1.6s ease-in-out infinite`,\n borderRadius: $variant === 'circular' ? '50%' : $variant === 'text' ? '0.25rem' : '0.5rem',\n width: $width !== undefined ? (typeof $width === 'number' ? `${$width}px` : $width) : '100%',\n height:\n $height !== undefined\n ? typeof $height === 'number'\n ? `${$height}px`\n : $height\n : $variant === 'text'\n ? '1em'\n : $variant === 'circular'\n ? '2.5rem'\n : '1rem',\n ...($variant === 'circular' && !$width && { width: '2.5rem' }),\n };\n});\n\nconst TextGroup = styled('span')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n width: '100%',\n});\n\nexport function Skeleton({ variant = 'text', width, height, lines = 1, ...props }: SkeletonProps) {\n if (variant === 'text' && lines > 1) {\n return (\n <TextGroup aria-hidden=\"true\">\n {Array.from({ length: lines }, (_, i) => (\n <StyledSkeleton\n key={i}\n $variant=\"text\"\n $width={i === lines - 1 ? '70%' : width}\n $height={height}\n {...props}\n />\n ))}\n </TextGroup>\n );\n }\n\n return (\n <StyledSkeleton\n aria-hidden=\"true\"\n $variant={variant}\n $width={width}\n $height={height}\n {...props}\n />\n );\n}\n\nexport const skeletonVariants: SkeletonVariant[] = ['text', 'rectangular', 'circular'];\n","import { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport type { SpinnerProps, SpinnerVariant, SpinnerSize, SpinnerColor } from '@/components';\n\nconst SIZE_MAP: Record<SpinnerSize, string> = {\n xs: '0.75rem',\n sm: '1rem',\n md: '1.5rem',\n lg: '2rem',\n xl: '3rem',\n};\n\nconst spin = keyframes`to { transform: rotate(360deg); }`;\nconst fade = keyframes`0%,100%{opacity:.15} 50%{opacity:1}`;\nconst scalePulse = keyframes`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;\nconst barAnim = keyframes`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;\n\ninterface RootProps {\n $size: SpinnerSize;\n $color: SpinnerColor;\n}\n\nconst Root = styled('span', {\n shouldForwardProp: (p) => !['$size', '$color'].includes(p as string),\n})<RootProps>(({ theme, $size, $color }) => {\n const colorMap: Record<SpinnerColor, string> = {\n primary: theme.palette.primary.main,\n secondary: theme.palette.secondary.main,\n white: '#ffffff',\n current: 'currentColor',\n };\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: SIZE_MAP[$size],\n height: SIZE_MAP[$size],\n color: colorMap[$color],\n flexShrink: 0,\n };\n});\n\n// ── Ring ──────────────────────────────────────────────────────────────────────\nconst RingSvg = styled('svg')({ animation: `${spin} 700ms linear infinite` });\n\nfunction Ring() {\n return (\n <RingSvg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"3\" strokeOpacity=\"0.25\" />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </RingSvg>\n );\n}\n\n// ── Dots ──────────────────────────────────────────────────────────────────────\nconst DotsRow = styled('span')({ display: 'inline-flex', alignItems: 'center', gap: '0.2em' });\nconst Dot = styled('span')<{ $delay: number }>(({ $delay }) => ({\n display: 'block',\n width: '0.28em',\n height: '0.28em',\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n animation: `${scalePulse} 1.2s ease-in-out ${$delay}s infinite`,\n}));\n\nfunction Dots() {\n return (\n <DotsRow aria-hidden=\"true\">\n {[0, 0.2, 0.4].map((d) => (\n <Dot key={d} $delay={d} />\n ))}\n </DotsRow>\n );\n}\n\n// ── Pulse ─────────────────────────────────────────────────────────────────────\nconst PulseCircle = styled('span')({\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n animation: `${fade} 1.4s ease-in-out infinite`,\n});\n\nfunction Pulse() {\n return <PulseCircle aria-hidden=\"true\" />;\n}\n\n// ── Bars ──────────────────────────────────────────────────────────────────────\nconst BarsRow = styled('span')({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.15em',\n height: '1em',\n});\nconst Bar = styled('span')<{ $delay: number }>(({ $delay }) => ({\n display: 'block',\n width: '0.18em',\n height: '100%',\n borderRadius: '2px',\n backgroundColor: 'currentColor',\n transformOrigin: 'center bottom',\n animation: `${barAnim} 1s ease-in-out ${$delay}s infinite`,\n}));\n\nfunction Bars() {\n return (\n <BarsRow aria-hidden=\"true\">\n {[0, 0.15, 0.3, 0.15].map((d, i) => (\n <Bar key={i} $delay={d} />\n ))}\n </BarsRow>\n );\n}\n\nconst VARIANTS: Record<SpinnerVariant, () => JSX.Element> = {\n ring: Ring,\n dots: Dots,\n pulse: Pulse,\n bars: Bars,\n};\n\nexport function Spinner({\n variant = 'ring',\n size = 'md',\n color = 'primary',\n label = 'Ładowanie…',\n ...props\n}: SpinnerProps) {\n const Inner = VARIANTS[variant];\n return (\n <Root $size={size} $color={color} role=\"status\" aria-label={label} {...props}>\n <Inner />\n </Root>\n );\n}\n\nexport const spinnerVariants: SpinnerVariant[] = ['ring', 'dots', 'pulse', 'bars'];\nexport const spinnerSizes: SpinnerSize[] = ['xs', 'sm', 'md', 'lg', 'xl'];\nexport const spinnerColors: SpinnerColor[] = ['primary', 'secondary', 'white', 'current'];\n","import { keyframes } from '@emotion/react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport type { ProgressBarProps, ProgressBarSize, ProgressBarVariant } from '@/components';\n\nconst HEIGHT_MAP: Record<ProgressBarSize, string> = {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '0.75rem',\n lg: '1.25rem',\n};\n\nconst stripeAnim = keyframes`from{background-position:1rem 0}to{background-position:0 0}`;\n\nfunction getFillColor(variant: ProgressBarVariant, theme: Theme): string {\n switch (variant) {\n case 'success':\n return theme.palette.success?.main ?? '#22c55e';\n case 'warning':\n return '#f59e0b';\n case 'danger':\n return theme.palette.error.main;\n case 'gradient':\n return `linear-gradient(90deg, ${theme.palette.primary.main}, #8b5cf6)`;\n default:\n return theme.palette.primary.main;\n }\n}\n\nconst Track = styled('div', {\n shouldForwardProp: (p) => !['$size'].includes(p as string),\n})<{ $size: ProgressBarSize }>(({ theme, $size }) => ({\n width: '100%',\n height: HEIGHT_MAP[$size],\n borderRadius: '9999px',\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.08)',\n overflow: 'hidden',\n}));\n\ninterface FillProps {\n $pct: number;\n $variant: ProgressBarVariant;\n $animated: boolean;\n $striped: boolean;\n}\n\nconst Fill = styled('div', {\n shouldForwardProp: (p) => !['$pct', '$variant', '$animated', '$striped'].includes(p as string),\n})<FillProps>(({ theme, $pct, $variant, $animated, $striped }) => {\n const color = getFillColor($variant, theme);\n const isGradient = $variant === 'gradient';\n\n return {\n height: '100%',\n width: `${$pct}%`,\n borderRadius: '9999px',\n transition: 'width 400ms ease',\n background: isGradient ? color : color,\n ...(!isGradient && { backgroundColor: color }),\n ...($striped && {\n backgroundImage: `linear-gradient(\n 45deg,\n rgba(255,255,255,.15) 25%, transparent 25%,\n transparent 50%, rgba(255,255,255,.15) 50%,\n rgba(255,255,255,.15) 75%, transparent 75%, transparent\n )`,\n backgroundSize: '1rem 1rem',\n ...($animated && { animation: `${stripeAnim} 600ms linear infinite` }),\n }),\n };\n});\n\nconst Wrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.375rem',\n width: '100%',\n});\n\nconst LabelRow = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n}));\n\nexport function ProgressBar({\n value,\n max = 100,\n size = 'md',\n variant = 'default',\n label,\n showValue = false,\n animated = false,\n striped = false,\n ...props\n}: ProgressBarProps) {\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n\n return (\n <Wrapper {...props}>\n {(label || showValue) && (\n <LabelRow>\n {label && <span>{label}</span>}\n {showValue && <span>{Math.round(pct)}%</span>}\n </LabelRow>\n )}\n <Track\n $size={size}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label ?? 'Postęp'}\n >\n <Fill $pct={pct} $variant={variant} $animated={animated} $striped={striped} />\n </Track>\n </Wrapper>\n );\n}\n\nexport const progressBarSizes: ProgressBarSize[] = ['xs', 'sm', 'md', 'lg'];\nexport const progressBarVariants: ProgressBarVariant[] = [\n 'default',\n 'success',\n 'warning',\n 'danger',\n 'gradient',\n];\n","import { useId } from 'react';\nimport { styled, useTheme } from '@mui/material/styles';\nimport type { ProgressCircleProps, ProgressCircleSize, ProgressCircleVariant } from '@/components';\n\nconst PX_MAP: Record<ProgressCircleSize, number> = {\n sm: 48,\n md: 72,\n lg: 96,\n xl: 128,\n};\n\nconst FONT_MAP: Record<ProgressCircleSize, string> = {\n sm: '0.625rem',\n md: '0.875rem',\n lg: '1.125rem',\n xl: '1.5rem',\n};\n\nconst Root = styled('div')({ position: 'relative', display: 'inline-flex', flexShrink: 0 });\n\nconst Label = styled('div', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: ProgressCircleSize }>(({ theme, $size }) => ({\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: theme.typography.fontFamily,\n fontSize: FONT_MAP[$size],\n fontWeight: 700,\n color: theme.palette.text.primary,\n}));\n\nfunction useStrokeColor(variant: ProgressCircleVariant, gradientId: string) {\n const theme = useTheme();\n switch (variant) {\n case 'success':\n return { color: theme.palette.success?.main ?? '#22c55e', gradient: null };\n case 'warning':\n return { color: '#f59e0b', gradient: null };\n case 'danger':\n return { color: theme.palette.error.main, gradient: null };\n case 'gradient':\n return {\n color: `url(#${gradientId})`,\n gradient: { from: theme.palette.primary.main, to: '#8b5cf6' },\n };\n default:\n return { color: theme.palette.primary.main, gradient: null };\n }\n}\n\nexport function ProgressCircle({\n value,\n max = 100,\n size = 'md',\n variant = 'default',\n thickness,\n label,\n showValue = false,\n children,\n ...props\n}: ProgressCircleProps) {\n const gradientId = useId().replace(/:/g, '');\n const px = PX_MAP[size];\n const stroke = thickness ?? Math.max(3, px * 0.09);\n const r = (px - stroke) / 2;\n const circ = 2 * Math.PI * r;\n const pct = Math.min(100, Math.max(0, (value / max) * 100));\n const offset = circ - (pct / 100) * circ;\n const theme = useTheme();\n const { color, gradient } = useStrokeColor(variant, gradientId);\n const trackColor = theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.08)';\n\n return (\n <Root\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label ?? 'Postęp'}\n {...props}\n >\n <svg width={px} height={px} viewBox={`0 0 ${px} ${px}`} aria-hidden=\"true\">\n {gradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" stopColor={gradient.from} />\n <stop offset=\"100%\" stopColor={gradient.to} />\n </linearGradient>\n </defs>\n )}\n {/* Track */}\n <circle\n cx={px / 2}\n cy={px / 2}\n r={r}\n fill=\"none\"\n stroke={trackColor}\n strokeWidth={stroke}\n />\n {/* Fill */}\n <circle\n cx={px / 2}\n cy={px / 2}\n r={r}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circ}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${px / 2} ${px / 2})`}\n style={{ transition: 'stroke-dashoffset 400ms ease' }}\n />\n </svg>\n <Label $size={size}>{children ?? (showValue && <span>{Math.round(pct)}%</span>)}</Label>\n </Root>\n );\n}\n\nexport const progressCircleSizes: ProgressCircleSize[] = ['sm', 'md', 'lg', 'xl'];\nexport const progressCircleVariants: ProgressCircleVariant[] = [\n 'default',\n 'success',\n 'warning',\n 'danger',\n 'gradient',\n];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { CSSObject } from '@emotion/react';\nimport type { BoxProps, Breakpoint, GapValue, GridValue, ResponsiveValue } from './Box.types';\n\ntype MuiBreakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst BREAKPOINT_MAP: Record<Breakpoint, MuiBreakpoint> = {\n base: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n '2xl': 'xl',\n};\n\nconst GAP_MAP: Record<GapValue, string> = {\n 0: '0',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n};\n\nconst COLS_MAP: Record<GridValue, string> = {\n 1: 'repeat(1, minmax(0, 1fr))',\n 2: 'repeat(2, minmax(0, 1fr))',\n 3: 'repeat(3, minmax(0, 1fr))',\n 4: 'repeat(4, minmax(0, 1fr))',\n 5: 'repeat(5, minmax(0, 1fr))',\n 6: 'repeat(6, minmax(0, 1fr))',\n 7: 'repeat(7, minmax(0, 1fr))',\n 8: 'repeat(8, minmax(0, 1fr))',\n 9: 'repeat(9, minmax(0, 1fr))',\n 10: 'repeat(10, minmax(0, 1fr))',\n 11: 'repeat(11, minmax(0, 1fr))',\n 12: 'repeat(12, minmax(0, 1fr))',\n};\n\ninterface StyledBoxProps {\n $isGrid: boolean;\n $direction?: ResponsiveValue<'row' | 'col'>;\n $wrap?: ResponsiveValue<'wrap' | 'nowrap'>;\n $gap?: ResponsiveValue<GapValue>;\n $cols?: ResponsiveValue<GridValue>;\n $rows?: ResponsiveValue<GridValue>;\n}\n\nconst StyledBox = styled('div')<StyledBoxProps>(\n ({ theme, $isGrid, $direction, $wrap, $gap, $cols, $rows }) => {\n const css: CSSObject = { display: $isGrid ? 'grid' : 'flex' };\n\n function apply<T>(\n value: ResponsiveValue<T> | undefined,\n toCss: (v: T) => CSSObject,\n ): void {\n if (value === undefined || value === null) return;\n if (typeof value !== 'object') {\n Object.assign(css, toCss(value as T));\n return;\n }\n for (const [bp, val] of Object.entries(value as Record<string, T>)) {\n if (val === undefined) continue;\n const muiBp = BREAKPOINT_MAP[bp as Breakpoint];\n if (muiBp === 'xs') {\n Object.assign(css, toCss(val));\n } else {\n const mq = theme.breakpoints.up(muiBp);\n css[mq] = { ...(css[mq] as CSSObject), ...toCss(val) };\n }\n }\n }\n\n apply($direction, (v) => ({ flexDirection: v === 'col' ? 'column' : 'row' }));\n apply($wrap, (v) => ({ flexWrap: v }));\n apply($gap, (v) => ({ gap: GAP_MAP[v] }));\n\n if ($isGrid) {\n apply($cols, (v) => ({ gridTemplateColumns: COLS_MAP[v] }));\n apply($rows, (v) => ({ gridTemplateRows: COLS_MAP[v] }));\n }\n\n return css;\n },\n);\n\nexport const Box = forwardRef<HTMLDivElement, BoxProps>(\n ({ direction = 'row', wrap = 'nowrap', gap = 0, cols, rows, children, ...rest }, ref) => (\n <StyledBox\n ref={ref}\n $isGrid={!!(cols || rows)}\n $direction={direction}\n $wrap={wrap}\n $gap={gap}\n $cols={cols}\n $rows={rows}\n {...rest}\n >\n {children}\n </StyledBox>\n ),\n);\n\nBox.displayName = 'Box';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { ContainerProps, ContainerMaxWidth } from '@/components';\n\nconst MAX_WIDTH_MAP: Record<ContainerMaxWidth, string> = {\n sm: '40rem',\n md: '48rem',\n lg: '64rem',\n xl: '80rem',\n '2xl': '96rem',\n full: '100%',\n};\n\ninterface StyledContainerProps {\n $maxWidth: ContainerMaxWidth;\n}\n\nconst StyledContainer = styled('div')<StyledContainerProps>(({ theme, $maxWidth }) => ({\n maxWidth: MAX_WIDTH_MAP[$maxWidth],\n marginLeft: 'auto',\n marginRight: 'auto',\n paddingLeft: '1.5rem',\n paddingRight: '1.5rem',\n width: '100%',\n [theme.breakpoints.up('sm')]: {\n paddingLeft: '2rem',\n paddingRight: '2rem',\n },\n}));\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n ({ maxWidth = 'xl', children, ...rest }, ref) => (\n <StyledContainer ref={ref} $maxWidth={maxWidth} {...rest}>\n {children}\n </StyledContainer>\n ),\n);\n\nContainer.displayName = 'Container';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { SectionProps } from '@/components';\n\nconst StyledSection = styled('section')(({ theme }) => ({\n paddingTop: '2rem',\n paddingBottom: '2rem',\n [theme.breakpoints.up('md')]: {\n paddingTop: '3rem',\n paddingBottom: '3rem',\n },\n}));\n\nexport const Section = forwardRef<HTMLElement, SectionProps>(({ children, ...rest }, ref) => (\n <StyledSection ref={ref} {...rest}>\n {children}\n </StyledSection>\n));\n\nSection.displayName = 'Section';\n","import { alpha, type Theme } from '@mui/material/styles';\nimport type { CSSObject } from '@emotion/react';\n\nexport const getTypographyStyles = (theme: Theme): CSSObject => ({\n fontFamily: theme.typography.fontFamily,\n\n '& h1': { fontSize: '2.25rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h2': { fontSize: '1.875rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h3': { fontSize: '1.5rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h4': { fontSize: '1.25rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h5': { fontSize: '1.125rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& h6': { fontSize: '1rem', fontWeight: 500, letterSpacing: '-0.025em' },\n '& p': { fontSize: '1rem', lineHeight: 1.75, marginBottom: '1rem' },\n '& strong': { fontWeight: 600 },\n '& em': { fontStyle: 'italic' },\n '& del': { textDecoration: 'line-through' },\n '& small': { fontSize: '0.875rem', fontWeight: 500, lineHeight: 1 },\n '& sub, & sup': { fontSize: '0.875rem' },\n\n '& a': {\n textDecoration: 'underline',\n textUnderlineOffset: '4px',\n textDecorationColor: alpha(theme.palette.primary.main, 0.5),\n transition: 'color 150ms ease, text-decoration-color 150ms ease',\n '&:hover': {\n color: theme.palette.primary.main,\n textDecorationColor: theme.palette.primary.main,\n },\n },\n\n '& ul': {\n paddingLeft: 0,\n listStyle: 'none',\n '& > li': { position: 'relative', paddingLeft: '1.5rem', marginBottom: '0.5rem' },\n '& > li::before': {\n content: '\"\"',\n position: 'absolute',\n left: '0.25rem',\n top: '0.6875em',\n height: '0.375rem',\n width: '0.375rem',\n borderRadius: '50%',\n backgroundColor: alpha(theme.palette.text.primary, 0.8),\n },\n },\n '& ol': {\n paddingLeft: '1.5rem',\n listStyleType: 'decimal',\n '& > li': { paddingLeft: '0.5rem', marginBottom: '0.5rem' },\n '& ol': { listStyleType: 'lower-alpha', paddingLeft: '1.5rem' },\n '& ol ol': { listStyleType: 'lower-roman' },\n },\n\n '& code': {\n position: 'relative',\n borderRadius: '0.25rem',\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '0.2rem 0.3rem',\n fontFamily: 'monospace',\n fontSize: '0.875rem',\n fontWeight: 500,\n },\n '& pre': {\n overflowX: 'auto',\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '1rem',\n margin: '1rem 0',\n '& code': {\n background: 'transparent',\n padding: 0,\n fontSize: '0.875rem',\n display: 'block',\n width: '100%',\n },\n },\n\n '& table': {\n width: '100%',\n margin: '1rem 0',\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n borderCollapse: 'collapse',\n overflow: 'hidden',\n },\n '& thead': { backgroundColor: alpha(theme.palette.grey[500], 0.1) },\n '& tr': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderBottom: 'none' },\n },\n '& th': {\n padding: '0.5rem 1rem',\n textAlign: 'left',\n fontWeight: 600,\n borderRight: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderRight: 'none' },\n },\n '& td': {\n padding: '0.5rem 1rem',\n borderRight: `1px solid ${theme.palette.divider}`,\n '&:last-child': { borderRight: 'none' },\n },\n\n '& img': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n margin: '1rem 0',\n maxWidth: '100%',\n height: 'auto',\n },\n '& video': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n margin: '1rem 0',\n },\n '& figure': { margin: '1rem 0', '& img': { margin: 0 } },\n '& figcaption': {\n fontSize: '0.875rem',\n marginTop: '0.5rem',\n color: theme.palette.text.secondary,\n },\n\n '& blockquote': {\n borderLeft: `4px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n paddingLeft: '1rem',\n paddingTop: '0.25rem',\n paddingBottom: '0.25rem',\n margin: '1rem 0',\n color: theme.palette.text.secondary,\n },\n '& hr': {\n margin: '2rem 0',\n borderTop: `2px solid ${theme.palette.divider}`,\n borderBottom: 'none',\n },\n '& abbr': { cursor: 'help', textDecoration: 'underline dotted', textUnderlineOffset: '4px' },\n '& kbd': {\n borderRadius: '0.375rem',\n border: `1px solid ${theme.palette.divider}`,\n backgroundColor: alpha(theme.palette.grey[500], 0.1),\n padding: '0.125rem 0.375rem',\n fontSize: '0.875rem',\n fontFamily: 'monospace',\n },\n '& mark': { backgroundColor: alpha(theme.palette.primary.main, 0.1), padding: '0 0.25rem' },\n '& details': {\n borderRadius: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n padding: '0.5rem 1rem',\n margin: '1rem 0',\n },\n '& summary': { cursor: 'pointer', fontWeight: 600 },\n});\n\nexport const getHeaderSpacingStyles = (): CSSObject => ({\n '& h1': { marginTop: '2rem', marginBottom: '1rem' },\n '& h2': { marginTop: '2rem', marginBottom: '1rem' },\n '& h3': { marginTop: '1.5rem', marginBottom: '0.75rem' },\n '& h4': { marginTop: '1.5rem', marginBottom: '0.75rem' },\n '& h5': { marginTop: '1rem', marginBottom: '0.5rem' },\n '& h6': { marginTop: '1rem', marginBottom: '0.5rem' },\n});\n\nexport const spacingStyles: CSSObject = {\n '& > * + *': { marginTop: '1.5rem' },\n};\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles } from '../typography';\nimport type { MainProps } from './Main.types';\n\nconst StyledMain = styled('main')(({ theme }) => ({\n ...getTypographyStyles(theme),\n}));\n\nexport const Main = forwardRef<HTMLElement, MainProps>(({ children, ...rest }, ref) => (\n <StyledMain ref={ref} {...rest}>\n {children}\n </StyledMain>\n));\n\nMain.displayName = 'Main';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles, spacingStyles } from '../typography';\nimport type { ProseProps } from '@/components';\n\nconst StyledProse = styled('div')(({ theme }) => ({\n ...getTypographyStyles(theme),\n ...spacingStyles,\n}));\n\nexport const Prose = forwardRef<HTMLDivElement, ProseProps>(({ children, ...rest }, ref) => (\n <StyledProse ref={ref} {...rest}>\n {children}\n </StyledProse>\n));\n\nProse.displayName = 'Prose';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { getTypographyStyles, getHeaderSpacingStyles, spacingStyles } from '../typography';\nimport type { ArticleProps } from '@/components';\n\nconst StyledArticle = styled('article')(({ theme }) => ({\n maxWidth: '56rem',\n marginLeft: 'auto',\n marginRight: 'auto',\n ...getTypographyStyles(theme),\n ...getHeaderSpacingStyles(),\n ...spacingStyles,\n}));\n\nexport const Article = forwardRef<HTMLElement, ArticleProps>(({ children, ...rest }, ref) => (\n <StyledArticle ref={ref} {...rest}>\n {children}\n </StyledArticle>\n));\n\nArticle.displayName = 'Article';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { RatingProps } from '@/components';\n\nconst sizeMap = {\n sm: '1rem',\n md: '1.25rem',\n lg: '1.5rem',\n};\n\nconst Root = styled('div')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Stars = styled('div')({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.125rem',\n});\n\nconst StarButton = styled('button')<{ $size: keyof typeof sizeMap; $active: boolean }>(\n ({ theme, $size, $active }) => ({\n appearance: 'none',\n border: 0,\n background: 'transparent',\n padding: 0,\n color: $active ? '#f59e0b' : theme.palette.action.disabled,\n cursor: 'pointer',\n fontSize: sizeMap[$size],\n lineHeight: 1,\n '&:disabled': {\n cursor: 'default',\n },\n }),\n);\n\nconst Meta = styled('span')(({ theme }) => ({\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\nexport const Rating = forwardRef<HTMLDivElement, RatingProps>(\n ({ value, max = 5, readonly = true, size = 'md', label, count, onChange, ...props }, ref) => {\n const roundedValue = Math.round(value);\n const meta = label ?? (count !== undefined ? `(${count})` : undefined);\n\n return (\n <Root ref={ref} aria-label={`Ocena ${value} z ${max}`} {...props}>\n <Stars\n role={readonly ? 'img' : 'radiogroup'}\n aria-label={readonly ? undefined : 'Wybierz ocenę'}\n >\n {Array.from({ length: max }, (_, index) => {\n const starValue = index + 1;\n return (\n <StarButton\n key={starValue}\n type=\"button\"\n $size={size}\n $active={starValue <= roundedValue}\n disabled={readonly}\n aria-label={`${starValue} z ${max}`}\n aria-checked={readonly ? undefined : starValue === roundedValue}\n role={readonly ? undefined : 'radio'}\n onClick={() => onChange?.(starValue)}\n >\n ★\n </StarButton>\n );\n })}\n </Stars>\n {meta && <Meta>{meta}</Meta>}\n </Root>\n );\n },\n);\n\nRating.displayName = 'Rating';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { AspectRatioProps } from '@/components';\n\nconst PRESET_MAP: Record<string, number> = {\n '1/1': 1,\n '4/3': 4 / 3,\n '3/2': 3 / 2,\n '16/9': 16 / 9,\n '21/9': 21 / 9,\n '9/16': 9 / 16,\n '3/4': 3 / 4,\n '2/3': 2 / 3,\n};\n\nconst Root = styled('div')({\n position: 'relative',\n width: '100%',\n '& > *': {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n});\n\nexport const AspectRatio = forwardRef<HTMLDivElement, AspectRatioProps>(\n ({ ratio = '16/9', children, style, ...props }, ref) => {\n const numericRatio = typeof ratio === 'string' ? (PRESET_MAP[ratio] ?? 16 / 9) : ratio;\n const paddingBottom = `${(1 / numericRatio) * 100}%`;\n\n return (\n <Root ref={ref} style={{ paddingBottom, ...style }} {...props}>\n {children}\n </Root>\n );\n },\n);\n\nAspectRatio.displayName = 'AspectRatio';\n\nexport const aspectRatioPresets = Object.keys(PRESET_MAP) as Array<keyof typeof PRESET_MAP>;\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { PriceProps, PriceSize } from '@/components';\n\nconst DEFAULT_OMNIBUS_LABEL = 'Najniższa cena z ostatnich 30 dni';\n\nconst FONT_SIZE: Record<PriceSize, string> = {\n sm: '0.875rem',\n md: '1.125rem',\n lg: '1.5rem',\n xl: '2rem',\n};\n\nconst Root = styled('div')({\n display: 'inline-flex',\n flexDirection: 'column',\n gap: '0.25rem',\n});\n\nconst PriceRow = styled('div')({\n display: 'inline-flex',\n alignItems: 'baseline',\n gap: '0.5rem',\n flexWrap: 'wrap',\n});\n\nconst OmnibusNotice = styled('p', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: PriceSize }>(({ theme, $size }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: `calc(${FONT_SIZE[$size]} * 0.65)`,\n color: theme.palette.text.secondary,\n lineHeight: 1.4,\n}));\n\nconst Current = styled('span', {\n shouldForwardProp: (p) => p !== '$size' && p !== '$onSale',\n})<{ $size: PriceSize; $onSale: boolean }>(({ theme, $size, $onSale }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: FONT_SIZE[$size],\n fontWeight: 800,\n lineHeight: 1.2,\n color: $onSale ? theme.palette.error.main : theme.palette.text.primary,\n letterSpacing: '-0.01em',\n}));\n\nconst Original = styled('span', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: PriceSize }>(({ theme, $size }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: `calc(${FONT_SIZE[$size]} * 0.8)`,\n fontWeight: 500,\n color: theme.palette.text.disabled,\n textDecoration: 'line-through',\n lineHeight: 1.2,\n}));\n\nconst DiscountBadge = styled('span', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: PriceSize }>(({ theme, $size }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n padding: '0.125rem 0.375rem',\n borderRadius: '0.375rem',\n backgroundColor: theme.palette.error.main,\n color: theme.palette.error.contrastText,\n fontFamily: theme.typography.fontFamily,\n fontSize: `calc(${FONT_SIZE[$size]} * 0.65)`,\n fontWeight: 700,\n lineHeight: 1.4,\n alignSelf: 'center',\n}));\n\nfunction formatPrice(amount: number, currency: string, locale: string): string {\n return new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n minimumFractionDigits: amount % 1 === 0 ? 0 : 2,\n maximumFractionDigits: 2,\n }).format(amount);\n}\n\nfunction calcDiscount(price: number, original: number): number {\n return Math.round((1 - price / original) * 100);\n}\n\nexport const Price = forwardRef<HTMLDivElement, PriceProps>(\n (\n {\n price,\n originalPrice,\n currency = 'PLN',\n locale = 'pl-PL',\n size = 'md',\n showDiscountBadge = true,\n lowestPrice,\n omnibusLabel = DEFAULT_OMNIBUS_LABEL,\n ...props\n },\n ref,\n ) => {\n const onSale = originalPrice !== undefined && originalPrice > price;\n const discount = onSale ? calcDiscount(price, originalPrice!) : 0;\n\n const showOmnibus = lowestPrice !== undefined;\n\n return (\n <Root ref={ref} {...props}>\n <PriceRow>\n <Current\n $size={size}\n $onSale={onSale}\n aria-label={`Cena: ${formatPrice(price, currency, locale)}`}\n >\n {formatPrice(price, currency, locale)}\n </Current>\n {onSale && (\n <>\n <Original\n $size={size}\n aria-label={`Cena przed promocją: ${formatPrice(originalPrice!, currency, locale)}`}\n >\n {formatPrice(originalPrice!, currency, locale)}\n </Original>\n {showDiscountBadge && discount > 0 && (\n <DiscountBadge $size={size} aria-label={`Rabat ${discount}%`}>\n -{discount}%\n </DiscountBadge>\n )}\n </>\n )}\n </PriceRow>\n {showOmnibus && (\n <OmnibusNotice\n $size={size}\n aria-label={`${omnibusLabel}: ${formatPrice(lowestPrice!, currency, locale)}`}\n >\n {omnibusLabel}: {formatPrice(lowestPrice!, currency, locale)}\n </OmnibusNotice>\n )}\n </Root>\n );\n },\n);\n\nPrice.displayName = 'Price';\n\nexport const priceSizes: PriceSize[] = ['sm', 'md', 'lg', 'xl'];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Badge } from '@/components/atoms/badges/Badge/Badge';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport { Rating } from '@/components/molecules/content/Rating/Rating';\nimport { AspectRatio } from '@/components/molecules/media/AspectRatio/AspectRatio';\nimport { Price } from '@/components/molecules/commerce/Price/Price';\nimport type { ProductCardProps } from '@/components';\n\nconst Root = styled(Card)({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n overflow: 'hidden',\n});\n\nconst ImageWrap = styled('div')({\n position: 'relative',\n margin: '-1.5rem -1.5rem 1rem',\n});\n\nconst Image = styled('img')(({ theme }) => ({\n objectFit: 'cover',\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst BadgeSlot = styled('div')({\n position: 'absolute',\n left: '0.75rem',\n top: '0.75rem',\n});\n\nconst Name = styled('h3')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 700,\n lineHeight: 1.4,\n}));\n\nconst Footer = styled('div')({\n display: 'grid',\n gap: '1rem',\n marginTop: 'auto',\n paddingTop: '1rem',\n});\n\nexport const ProductCard = forwardRef<HTMLDivElement, ProductCardProps>(\n (\n {\n name,\n imageUrl,\n imageAlt,\n price,\n originalPrice,\n currency,\n locale,\n lowestPrice,\n badge,\n badgeVariant = 'success',\n rating,\n reviewCount,\n ctaLabel = 'Dodaj do koszyka',\n onAddToCart,\n ...props\n },\n ref,\n ) => (\n <Root ref={ref} variant=\"default\" padding=\"md\" rounded=\"lg\" {...props}>\n <ImageWrap>\n <AspectRatio ratio=\"4/3\">\n <Image src={imageUrl} alt={imageAlt ?? name} />\n {badge && (\n <BadgeSlot>\n <Badge variant={badgeVariant}>{badge}</Badge>\n </BadgeSlot>\n )}\n </AspectRatio>\n </ImageWrap>\n <Name>{name}</Name>\n {rating !== undefined && <Rating value={rating} count={reviewCount} size=\"sm\" />}\n <Price\n price={price}\n originalPrice={originalPrice}\n currency={currency}\n locale={locale}\n lowestPrice={lowestPrice}\n style={{ marginTop: '0.5rem' }}\n />\n <Footer>\n <Button fullWidth onClick={onAddToCart}>\n {ctaLabel}\n </Button>\n </Footer>\n </Root>\n ),\n);\n\nProductCard.displayName = 'ProductCard';\n","import { useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport ArticleIcon from '@mui/icons-material/Article';\nimport type { PostCardImageProps } from '@/components';\n\nconst ImageWrapper = styled('div', {\n shouldForwardProp: (prop) => prop !== '$ar',\n})<{ $ar: string }>(({ $ar }) => ({\n position: 'relative',\n width: '100%',\n aspectRatio: $ar,\n overflow: 'hidden',\n flexShrink: 0,\n}));\n\nconst Img = styled('img')({\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n});\n\nconst Placeholder = styled('div')(({ theme }) => ({\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst Overlay = styled('div')({\n position: 'absolute',\n inset: 0,\n background: 'linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 50%)',\n pointerEvents: 'none',\n});\n\nconst FileTextIcon = () => (\n <ArticleIcon aria-hidden=\"true\" style={{ fontSize: 32, opacity: 0.3 }} />\n);\n\nfunction toAspectRatioCss(ratio: NonNullable<PostCardImageProps['aspectRatio']>): string {\n if (typeof ratio === 'number') return String(ratio);\n return ratio.replace('/', ' / ');\n}\n\nexport const PostCardImage = ({\n src,\n alt = '',\n aspectRatio = '4/3',\n overlay = false,\n className,\n style,\n}: PostCardImageProps) => {\n const [imgError, setImgError] = useState(false);\n const showPlaceholder = !src || imgError;\n\n return (\n <ImageWrapper $ar={toAspectRatioCss(aspectRatio)} className={className} style={style}>\n {showPlaceholder ? (\n <Placeholder>\n <FileTextIcon />\n </Placeholder>\n ) : (\n <Img src={src} alt={alt} onError={() => setImgError(true)} />\n )}\n {overlay && !showPlaceholder && <Overlay />}\n </ImageWrapper>\n );\n};\n\nPostCardImage.displayName = 'PostCardImage';\n","import { styled } from '@mui/material/styles';\nimport type { PostCardMetaProps } from '@/components';\n\nfunction formatDate(iso: string, locale: string): string {\n return new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(new Date(iso));\n}\n\nconst MetaRow = styled('div', {\n shouldForwardProp: (prop) => prop !== '$inverted',\n})<{ $inverted: boolean }>(({ theme, $inverted }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '0.375rem',\n fontSize: '0.75rem',\n color: $inverted ? 'rgba(255,255,255,0.75)' : theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Separator = styled('span')({\n userSelect: 'none',\n});\n\nexport const PostCardMeta = ({\n date,\n author,\n locale = 'pl-PL',\n inverted = false,\n}: PostCardMetaProps) => {\n if (!date && !author) return null;\n\n return (\n <MetaRow $inverted={inverted}>\n {date && <span>{formatDate(date, locale)}</span>}\n {date && author && <Separator>·</Separator>}\n {author && <span>{author}</span>}\n </MetaRow>\n );\n};\n\nPostCardMeta.displayName = 'PostCardMeta';\n","import { forwardRef } from 'react';\nimport { styled, type CSSObject } from '@mui/material/styles';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport { Badge } from '@/components/atoms/badges/Badge/Badge';\nimport { PostCardImage, PostCardMeta } from './elements';\nimport type { PostCardProps, PostCardVariant } from '@/components';\n\nfunction getLayoutStyles(variant: PostCardVariant): CSSObject {\n switch (variant) {\n case 'vertical':\n return { display: 'flex', flexDirection: 'column' };\n case 'horizontal':\n return {\n display: 'flex',\n flexDirection: 'row',\n '@container (max-width: 480px)': { flexDirection: 'column' },\n };\n case 'featured':\n return {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n minHeight: '400px',\n overflow: 'hidden',\n };\n case 'compact':\n return { display: 'flex', flexDirection: 'column' };\n }\n}\n\ninterface StyledInnerProps {\n $variant: PostCardVariant;\n}\n\nconst StyledRoot = styled('div')({\n containerType: 'inline-size',\n width: '100%',\n height: '100%',\n});\n\nconst StyledInner = styled('div', {\n shouldForwardProp: (prop) => prop !== '$variant',\n})<StyledInnerProps>(({ $variant }) => ({\n width: '100%',\n height: '100%',\n ...getLayoutStyles($variant),\n}));\n\nconst CardLink = styled('a')(({ theme }) => ({\n display: 'block',\n textDecoration: 'none',\n color: 'inherit',\n height: '100%',\n '&:hover .post-card-title': {\n color: theme.palette.primary.main,\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: 'inherit',\n },\n}));\n\ninterface StyledContentProps {\n $variant: PostCardVariant;\n}\n\nconst StyledContent = styled('div', {\n shouldForwardProp: (prop) => prop !== '$variant',\n})<StyledContentProps>(({ theme, $variant }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n padding: $variant === 'compact' ? '1rem' : '1rem 1.25rem 1.25rem',\n flex: 1,\n ...($variant === 'featured' && {\n position: 'relative',\n zIndex: 1,\n padding: '1.25rem 1.5rem 1.5rem',\n color: theme.palette.common.white,\n background: 'linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.5) 100%)',\n backdropFilter: 'blur(2px)',\n }),\n}));\n\nconst StyledTitle = styled('h3', {\n shouldForwardProp: (prop) => prop !== '$featured',\n})<{ $featured: boolean }>(({ theme, $featured }) => ({\n margin: 0,\n fontSize: '1rem',\n fontWeight: 700,\n fontFamily: theme.typography.fontFamily,\n color: $featured ? theme.palette.common.white : theme.palette.text.primary,\n lineHeight: 1.4,\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n transition: 'color 0.2s ease',\n ...($featured && { textShadow: '0 1px 4px rgba(0,0,0,0.6)' }),\n}));\n\nconst StyledExcerpt = styled('p')(({ theme }) => ({\n margin: 0,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst HorizontalImageWrapper = styled('div')({\n flexShrink: 0,\n width: '40%',\n alignSelf: 'stretch',\n '& > div': {\n height: '100%',\n aspectRatio: 'auto',\n },\n '@container (max-width: 480px)': {\n width: '100%',\n alignSelf: 'auto',\n '& > div': {\n height: 'auto',\n aspectRatio: '4 / 3',\n },\n },\n});\n\nconst FeaturedImageWrapper = styled('div')({\n position: 'absolute',\n inset: 0,\n '& > div': {\n position: 'absolute',\n inset: 0,\n height: '100%',\n aspectRatio: 'auto',\n },\n});\n\nexport const PostCard = forwardRef<HTMLDivElement, PostCardProps>(\n (\n {\n title,\n excerpt,\n imageUrl,\n imageAlt,\n date,\n author,\n href,\n category,\n variant = 'vertical',\n cardVariant = 'default',\n ...rest\n },\n ref,\n ) => {\n const showImage = variant !== 'compact';\n const isFeatured = variant === 'featured';\n const isHorizontal = variant === 'horizontal';\n\n const inner = (\n <StyledInner $variant={variant}>\n {isFeatured && showImage && (\n <FeaturedImageWrapper>\n <PostCardImage src={imageUrl} alt={imageAlt} aspectRatio=\"16/9\" overlay />\n </FeaturedImageWrapper>\n )}\n\n {!isFeatured &&\n showImage &&\n (isHorizontal ? (\n <HorizontalImageWrapper>\n <PostCardImage src={imageUrl} alt={imageAlt} aspectRatio=\"4/3\" />\n </HorizontalImageWrapper>\n ) : (\n <PostCardImage src={imageUrl} alt={imageAlt} aspectRatio=\"16/9\" />\n ))}\n\n <StyledContent $variant={variant}>\n {category && (\n <div>\n <Badge variant={isFeatured ? 'ghost' : 'default'}>{category}</Badge>\n </div>\n )}\n <StyledTitle className=\"post-card-title\" $featured={isFeatured}>\n {title}\n </StyledTitle>\n {excerpt && variant !== 'compact' && !isFeatured && (\n <StyledExcerpt>{excerpt}</StyledExcerpt>\n )}\n {(date || author) && <PostCardMeta date={date} author={author} inverted={isFeatured} />}\n </StyledContent>\n </StyledInner>\n );\n\n return (\n <Card ref={ref} variant={cardVariant} padding=\"none\" rounded=\"lg\" {...rest}>\n <StyledRoot>\n {href ? (\n <CardLink href={href} aria-label={title}>\n {inner}\n </CardLink>\n ) : (\n inner\n )}\n </StyledRoot>\n </Card>\n );\n },\n);\n\nPostCard.displayName = 'PostCard';\n","import type { HTMLAttributes } from 'react';\nimport type { CardVariant } from '@/components/atoms/cards/Card/Card.types';\n\nexport type PostCardVariant = 'vertical' | 'horizontal' | 'featured' | 'compact';\n\nexport const postCardVariants: PostCardVariant[] = [\n 'vertical',\n 'horizontal',\n 'featured',\n 'compact',\n];\n\nexport interface PostCardProps extends HTMLAttributes<HTMLDivElement> {\n title: string;\n excerpt?: string;\n imageUrl?: string;\n imageAlt?: string;\n date?: string;\n author?: string;\n href?: string;\n category?: string;\n variant?: PostCardVariant;\n cardVariant?: CardVariant;\n}\n","import { forwardRef } from 'react';\nimport { styled, alpha } from '@mui/material/styles';\nimport CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined';\nimport HighlightOffIcon from '@mui/icons-material/HighlightOff';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport { Badge } from '@/components/atoms/badges/Badge/Badge';\nimport type { PricingCardProps } from '@/components';\nimport type { ButtonVariant } from '@/components/atoms/buttons/Button/Button.types';\n\nconst Root = styled(Card)({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n});\n\nconst NameRow = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: '0.75rem',\n});\n\nconst Name = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: '1rem',\n color: theme.palette.text.primary,\n}));\n\nconst PriceRow = styled('div')({\n display: 'flex',\n alignItems: 'baseline',\n gap: '0.25rem',\n});\n\nconst Currency = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: '1.25rem',\n color: theme.palette.text.secondary,\n alignSelf: 'flex-start',\n paddingTop: '0.375rem',\n}));\n\nconst Price = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontWeight: 700,\n fontSize: '3rem',\n lineHeight: 1,\n color: theme.palette.text.primary,\n}));\n\nconst Period = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n margin: '0.75rem 0 0',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n}));\n\nconst Divider = styled('hr')(({ theme }) => ({\n border: 'none',\n borderTop: `1px solid ${theme.palette.divider}`,\n margin: '1.25rem 0',\n}));\n\nconst FeatureList = styled('ul')({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '0.625rem',\n flex: 1,\n});\n\ninterface StyledFeatureItemProps {\n $included: boolean;\n}\n\nconst FeatureItem = styled('li', {\n shouldForwardProp: (prop) => prop !== '$included',\n})<StyledFeatureItemProps>(({ theme, $included }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: $included ? theme.palette.text.primary : theme.palette.text.disabled,\n}));\n\ninterface StyledCtaLinkProps {\n $variant: ButtonVariant;\n}\n\nconst CtaLink = styled('a', {\n shouldForwardProp: (prop) => prop !== '$variant',\n})<StyledCtaLinkProps>(({ theme, $variant }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n padding: '0.5rem 1.25rem',\n fontSize: '0.875rem',\n fontWeight: 600,\n fontFamily: theme.typography.fontFamily,\n lineHeight: 1.5,\n borderRadius: theme.shape.borderRadius,\n textDecoration: 'none',\n transition: 'background-color 150ms ease, border-color 150ms ease',\n cursor: 'pointer',\n ...($variant === 'primary' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n border: 'none',\n '&:hover': { backgroundColor: theme.palette.primary.dark },\n }),\n ...($variant === 'ghost' && {\n backgroundColor: 'transparent',\n color: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n '&:hover': { backgroundColor: alpha(theme.palette.primary.main, 0.08) },\n }),\n}));\n\nconst CtaWrapper = styled('div')({\n marginTop: '1.5rem',\n});\n\nfunction CheckIcon() {\n return <CheckCircleOutlinedIcon aria-hidden=\"true\" style={{ fontSize: 16, flexShrink: 0 }} />;\n}\n\nfunction XIcon() {\n return <HighlightOffIcon aria-hidden=\"true\" style={{ fontSize: 16, flexShrink: 0 }} />;\n}\n\nexport const PricingCard = forwardRef<HTMLDivElement, PricingCardProps>(\n (\n {\n name,\n price,\n currency,\n period,\n description,\n features = [],\n ctaLabel = 'Wybierz plan',\n ctaVariant,\n onCtaClick,\n href,\n popular = false,\n popularLabel = 'Najpopularniejszy',\n cardVariant,\n ...props\n },\n ref,\n ) => {\n const resolvedCardVariant = cardVariant ?? (popular ? 'gradient-primary' : 'default');\n const resolvedCtaVariant = ctaVariant ?? (popular ? 'primary' : 'ghost');\n\n return (\n <Root ref={ref} variant={resolvedCardVariant} padding=\"lg\" rounded=\"lg\" {...props}>\n <NameRow>\n <Name>{name}</Name>\n {popular && <Badge variant=\"default\">{popularLabel}</Badge>}\n </NameRow>\n\n <PriceRow>\n {currency && <Currency>{currency}</Currency>}\n <Price>{price}</Price>\n {period && <Period>{period}</Period>}\n </PriceRow>\n\n {description && <Description>{description}</Description>}\n\n {features.length > 0 && (\n <>\n <Divider />\n <FeatureList>\n {features.map((feature, i) => {\n const included = feature.included !== false;\n return (\n <FeatureItem key={i} $included={included}>\n {included ? <CheckIcon /> : <XIcon />}\n {feature.text}\n </FeatureItem>\n );\n })}\n </FeatureList>\n </>\n )}\n\n <CtaWrapper>\n {href ? (\n <CtaLink href={href} $variant={resolvedCtaVariant}>\n {ctaLabel}\n </CtaLink>\n ) : (\n <Button variant={resolvedCtaVariant} fullWidth onClick={onCtaClick}>\n {ctaLabel}\n </Button>\n )}\n </CtaWrapper>\n </Root>\n );\n },\n);\n\nPricingCard.displayName = 'PricingCard';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport type { StatCardProps } from '@/components';\n\ninterface RootProps {\n $align: 'left' | 'center';\n}\n\nconst Root = styled(Card, {\n shouldForwardProp: (prop) => prop !== '$align',\n})<RootProps>(({ $align }) => ({\n textAlign: $align,\n height: '100%',\n}));\n\nconst Value = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '2.5rem',\n fontWeight: 800,\n letterSpacing: '-0.03em',\n color: theme.palette.primary.main,\n lineHeight: 1.1,\n}));\n\nconst Label = styled('p')(({ theme }) => ({\n margin: '0.5rem 0 0',\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n margin: '0.375rem 0 0',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.5,\n}));\n\nexport const StatCard = forwardRef<HTMLDivElement, StatCardProps>(\n ({ stat, cardVariant = 'default', align = 'center', ...props }, ref) => (\n <Root ref={ref} variant={cardVariant} padding=\"lg\" rounded=\"lg\" $align={align} {...props}>\n <Value>{stat.value}</Value>\n <Label>{stat.label}</Label>\n {stat.description && <Description>{stat.description}</Description>}\n </Root>\n ),\n);\n\nStatCard.displayName = 'StatCard';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Avatar } from '@/components/atoms/avatars/Avatar/Avatar';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport { Rating } from '@/components/molecules/content/Rating/Rating';\nimport type { TestimonialCardProps } from '@/components';\n\nconst Root = styled(Card)({\n display: 'flex',\n flexDirection: 'column',\n gap: '1.25rem',\n height: '100%',\n});\n\nconst Quote = styled('blockquote')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.7,\n flex: 1,\n '&::before': {\n content: '\"“\"',\n color: theme.palette.primary.main,\n fontWeight: 700,\n marginRight: '0.125rem',\n },\n '&::after': {\n content: '\"”\"',\n color: theme.palette.primary.main,\n fontWeight: 700,\n marginLeft: '0.125rem',\n },\n}));\n\nconst Footer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n});\n\nconst AvatarImage = styled('img')({\n width: '2.5rem',\n height: '2.5rem',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n});\n\nconst AuthorInfo = styled('div')({\n minWidth: 0,\n});\n\nconst AuthorName = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n}));\n\nconst AuthorRole = styled('p')(({ theme }) => ({\n margin: '0.125rem 0 0',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n}));\n\nexport const TestimonialCard = forwardRef<HTMLDivElement, TestimonialCardProps>(\n ({ testimonial, cardVariant = 'default', ...props }, ref) => {\n const initials =\n testimonial.authorInitials ??\n testimonial.authorName\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map((p) => p[0])\n .join('')\n .toUpperCase();\n\n return (\n <Root ref={ref} variant={cardVariant} padding=\"lg\" rounded=\"lg\" {...props}>\n {testimonial.rating && <Rating value={testimonial.rating} readonly size=\"sm\" />}\n <Quote>{testimonial.quote}</Quote>\n <Footer>\n {testimonial.authorAvatarUrl ? (\n <AvatarImage src={testimonial.authorAvatarUrl} alt={testimonial.authorName} />\n ) : (\n <Avatar initials={initials} size=\"md\" color=\"primary\" />\n )}\n <AuthorInfo>\n <AuthorName>{testimonial.authorName}</AuthorName>\n {testimonial.authorRole && <AuthorRole>{testimonial.authorRole}</AuthorRole>}\n </AuthorInfo>\n </Footer>\n </Root>\n );\n },\n);\n\nTestimonialCard.displayName = 'TestimonialCard';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Avatar } from '@/components/atoms/avatars/Avatar/Avatar';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport type { TeamMember, TeamMemberCardProps } from '@/components';\n\nconst Root = styled(Card)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '1rem',\n height: '100%',\n transition: 'border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease',\n '&:hover': {\n borderColor: theme.palette.primary.main,\n boxShadow: theme.shadows[2],\n transform: 'translateY(-2px)',\n },\n}));\n\nconst AvatarImage = styled('img')({\n width: '4rem',\n height: '4rem',\n flexShrink: 0,\n borderRadius: '50%',\n objectFit: 'cover',\n});\n\nconst Content = styled('div')({\n minWidth: 0,\n});\n\nconst Name = styled('h3')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 700,\n lineHeight: 1.4,\n}));\n\nconst Role = styled('p')(({ theme }) => ({\n margin: '0.25rem 0 0',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n lineHeight: 1.5,\n}));\n\nfunction getInitials(member: TeamMember) {\n if (member.initials) {\n return member.initials;\n }\n\n return member.name\n .split(' ')\n .filter(Boolean)\n .slice(0, 2)\n .map((part) => part[0])\n .join('')\n .toUpperCase();\n}\n\nexport const TeamMemberCard = forwardRef<HTMLDivElement, TeamMemberCardProps>(\n ({ member, cardVariant = 'default', ...props }, ref) => (\n <Root ref={ref} variant={cardVariant} padding=\"lg\" rounded=\"lg\" {...props}>\n {member.avatarUrl ? (\n <AvatarImage src={member.avatarUrl} alt={member.avatarAlt ?? member.name} />\n ) : (\n <Avatar initials={getInitials(member)} size=\"xl\" color={member.avatarColor ?? 'primary'} />\n )}\n\n <Content>\n <Name>{member.name}</Name>\n <Role>{member.role}</Role>\n </Content>\n </Root>\n ),\n);\n\nTeamMemberCard.displayName = 'TeamMemberCard';\n","import { styled } from '@mui/material/styles';\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport type { CompareProduct, CompareSpecValue, CompareToolProps } from '@/components';\n\nconst Wrapper = styled('div')({\n width: '100%',\n overflowX: 'auto',\n WebkitOverflowScrolling: 'touch',\n});\n\nconst Table = styled('table')(({ theme }) => ({\n borderCollapse: 'collapse',\n width: '100%',\n minWidth: '480px',\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Thead = styled('thead')(({ theme }) => ({\n backgroundColor: theme.palette.background.paper,\n position: 'sticky',\n top: 0,\n zIndex: 2,\n boxShadow: `0 1px 0 ${theme.palette.divider}`,\n}));\n\nconst HeaderCell = styled('th', {\n shouldForwardProp: (p) => p !== '$isLabel',\n})<{ $isLabel?: boolean }>(({ theme, $isLabel }) => ({\n padding: '1rem',\n textAlign: $isLabel ? 'left' : 'center',\n fontWeight: $isLabel ? 700 : 600,\n fontSize: $isLabel ? '0.75rem' : '0.9375rem',\n color: $isLabel ? theme.palette.text.secondary : theme.palette.text.primary,\n textTransform: $isLabel ? 'uppercase' : 'none',\n letterSpacing: $isLabel ? '0.05em' : 'normal',\n borderBottom: `2px solid ${theme.palette.divider}`,\n whiteSpace: 'nowrap',\n minWidth: $isLabel ? '140px' : '180px',\n verticalAlign: 'bottom',\n}));\n\nconst ProductImage = styled('img')({\n width: '100%',\n maxWidth: '120px',\n aspectRatio: '1 / 1',\n objectFit: 'contain',\n display: 'block',\n margin: '0 auto 0.5rem',\n borderRadius: '0.5rem',\n});\n\nconst ProductImagePlaceholder = styled('div')(({ theme }) => ({\n width: '80px',\n height: '80px',\n borderRadius: '0.5rem',\n backgroundColor: theme.palette.action.hover,\n margin: '0 auto 0.5rem',\n}));\n\nconst ProductName = styled('p')(({ theme }) => ({\n margin: '0 0 0.25rem',\n fontSize: '0.9375rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n}));\n\nconst ProductPrice = styled('p')(({ theme }) => ({\n margin: '0 0 0.5rem',\n fontSize: '1rem',\n fontWeight: 800,\n color: theme.palette.primary.main,\n}));\n\nconst RemoveBtn = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: `1px solid ${theme.palette.divider}`,\n background: 'none',\n borderRadius: '0.375rem',\n cursor: 'pointer',\n padding: '0.25rem 0.625rem',\n fontSize: '0.8125rem',\n fontFamily: theme.typography.fontFamily,\n fontWeight: 500,\n color: theme.palette.text.secondary,\n transition: 'border-color 150ms, color 150ms',\n '&:hover': {\n borderColor: theme.palette.error.main,\n color: theme.palette.error.main,\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst Tbody = styled('tbody')({});\n\nconst Row = styled('tr', {\n shouldForwardProp: (p) => p !== '$diff',\n})<{ $diff: boolean }>(({ theme, $diff }) => ({\n backgroundColor: $diff\n ? theme.palette.mode === 'dark'\n ? 'rgba(255,255,255,0.03)'\n : 'rgba(0,0,0,0.02)'\n : 'transparent',\n '&:nth-of-type(even)': {\n backgroundColor: $diff\n ? theme.palette.mode === 'dark'\n ? 'rgba(255,255,255,0.05)'\n : 'rgba(0,0,0,0.03)'\n : theme.palette.mode === 'dark'\n ? 'rgba(255,255,255,0.02)'\n : 'rgba(0,0,0,0.015)',\n },\n}));\n\nconst LabelCell = styled('td')(({ theme }) => ({\n padding: '0.75rem 1rem',\n fontSize: '0.875rem',\n fontWeight: 600,\n color: theme.palette.text.secondary,\n borderBottom: `1px solid ${theme.palette.divider}`,\n whiteSpace: 'nowrap',\n}));\n\nconst ValueCell = styled('td', {\n shouldForwardProp: (p) => p !== '$highlight',\n})<{ $highlight: boolean }>(({ theme, $highlight }) => ({\n padding: '0.75rem 1rem',\n textAlign: 'center',\n fontSize: '0.9375rem',\n color: theme.palette.text.primary,\n borderBottom: `1px solid ${theme.palette.divider}`,\n fontWeight: $highlight ? 700 : 400,\n backgroundColor: $highlight\n ? theme.palette.mode === 'dark'\n ? 'rgba(99,102,241,0.08)'\n : 'rgba(99,102,241,0.06)'\n : 'transparent',\n}));\n\nconst BoolIcon = ({ value }: { value: boolean }) => (\n <span aria-label={value ? 'Tak' : 'Nie'} style={{ display: 'inline-flex', fontSize: '1.125rem' }}>\n {value ? <CheckIcon /> : <CloseIcon />}\n </span>\n);\n\nfunction formatValue(v: CompareSpecValue) {\n if (typeof v === 'boolean') return <BoolIcon value={v} />;\n return String(v);\n}\n\nfunction isDiff(specKey: string, products: CompareProduct[]): boolean {\n const values = products.map((p) => p.specs[specKey]);\n return values.some((v) => String(v) !== String(values[0]));\n}\n\nfunction getSpecKeys(products: CompareProduct[]): string[] {\n const keys = new Set<string>();\n products.forEach((p) => Object.keys(p.specs).forEach((k) => keys.add(k)));\n return Array.from(keys);\n}\n\nexport function CompareTool({\n products,\n specLabels = {},\n onRemove,\n highlightDifferences = true,\n className,\n}: CompareToolProps) {\n if (!products.length) return null;\n\n const specKeys = getSpecKeys(products);\n\n const bestValues: Record<string, CompareSpecValue> = {};\n specKeys.forEach((key) => {\n const nums = products.map((p) => p.specs[key]).filter((v) => typeof v === 'number') as number[];\n if (nums.length === products.length) {\n bestValues[key] = Math.max(...nums);\n }\n });\n\n return (\n <Wrapper className={className}>\n <Table role=\"table\" aria-label=\"Porównanie produktów\">\n <Thead>\n <tr>\n <HeaderCell $isLabel as=\"th\" scope=\"col\">\n Parametr\n </HeaderCell>\n {products.map((p) => (\n <HeaderCell key={p.id} as=\"th\" scope=\"col\">\n {p.imageUrl ? (\n <ProductImage src={p.imageUrl} alt={p.name} />\n ) : (\n <ProductImagePlaceholder aria-hidden=\"true\" />\n )}\n <ProductName>{p.name}</ProductName>\n <ProductPrice>{p.price}</ProductPrice>\n {onRemove && (\n <RemoveBtn\n type=\"button\"\n aria-label={`Usuń ${p.name} z porównania`}\n onClick={() => onRemove(p.id)}\n >\n Usuń\n </RemoveBtn>\n )}\n </HeaderCell>\n ))}\n </tr>\n </Thead>\n <Tbody>\n {specKeys.map((key) => {\n const diff = highlightDifferences && isDiff(key, products);\n return (\n <Row key={key} $diff={diff}>\n <LabelCell as=\"th\" scope=\"row\">\n {specLabels[key] ?? key}\n </LabelCell>\n {products.map((p) => {\n const val = p.specs[key];\n const isHighlighted =\n highlightDifferences &&\n key in bestValues &&\n typeof val === 'number' &&\n val === bestValues[key];\n return (\n <ValueCell key={p.id} $highlight={isHighlighted}>\n {val !== undefined ? (\n formatValue(val)\n ) : (\n <span aria-label=\"Brak danych\">—</span>\n )}\n </ValueCell>\n );\n })}\n </Row>\n );\n })}\n </Tbody>\n </Table>\n </Wrapper>\n );\n}\n","import { useId } from 'react';\nimport { keyframes, styled } from '@mui/material/styles';\nimport type { CouponInputProps } from '@/components';\n\nconst spin = keyframes`to { transform: rotate(360deg); }`;\n\nconst Root = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n});\n\nconst InputRow = styled('div', {\n shouldForwardProp: (p) => p !== '$hasError' && p !== '$applied',\n})<{ $hasError: boolean; $applied: boolean }>(({ theme, $hasError, $applied }) => ({\n display: 'flex',\n border: `1.5px solid ${\n $hasError\n ? theme.palette.error.main\n : $applied\n ? theme.palette.success.main\n : theme.palette.divider\n }`,\n borderRadius: '0.5rem',\n overflow: 'hidden',\n transition: 'border-color 150ms ease',\n '&:focus-within': {\n borderColor: $hasError\n ? theme.palette.error.main\n : $applied\n ? theme.palette.success.main\n : theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${\n $hasError\n ? `${theme.palette.error.main}22`\n : $applied\n ? `${theme.palette.success.main}22`\n : `${theme.palette.primary.main}22`\n }`,\n },\n}));\n\nconst Input = styled('input')(({ theme }) => ({\n flex: 1,\n border: 'none',\n outline: 'none',\n padding: '0.625rem 0.875rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.primary,\n backgroundColor: 'transparent',\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n '&::placeholder': {\n color: theme.palette.text.disabled,\n textTransform: 'none',\n letterSpacing: 'normal',\n },\n '&:disabled': {\n cursor: 'not-allowed',\n color: theme.palette.text.disabled,\n },\n}));\n\nconst ApplyButton = styled('button', {\n shouldForwardProp: (p) => p !== '$applied',\n})<{ $applied: boolean }>(({ theme, $applied }) => ({\n appearance: 'none',\n border: 'none',\n borderLeft: `1.5px solid ${theme.palette.divider}`,\n padding: '0 1rem',\n cursor: 'pointer',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 700,\n whiteSpace: 'nowrap',\n backgroundColor: $applied ? theme.palette.success.main : theme.palette.primary.main,\n color: $applied ? theme.palette.success.contrastText : theme.palette.primary.contrastText,\n transition: 'background-color 150ms ease, opacity 150ms ease',\n '&:hover:not(:disabled)': {\n opacity: 0.88,\n },\n '&:disabled': {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '-3px',\n },\n}));\n\nconst Spinner = styled('span')({\n display: 'inline-block',\n width: '0.875rem',\n height: '0.875rem',\n border: '2px solid rgba(255,255,255,0.3)',\n borderTopColor: '#fff',\n borderRadius: '50%',\n animation: `${spin} 600ms linear infinite`,\n verticalAlign: 'middle',\n});\n\nconst Message = styled('p', {\n shouldForwardProp: (p) => p !== '$type',\n})<{ $type: 'error' | 'success' }>(({ theme, $type }) => ({\n margin: 0,\n fontSize: '0.8125rem',\n fontFamily: theme.typography.fontFamily,\n color: $type === 'error' ? theme.palette.error.main : theme.palette.success.main,\n display: 'flex',\n alignItems: 'center',\n gap: '0.25rem',\n}));\n\nconst AppliedRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0.5rem 0.875rem',\n borderRadius: '0.5rem',\n backgroundColor: `${theme.palette.success.main}14`,\n border: `1.5px solid ${theme.palette.success.main}`,\n}));\n\nconst AppliedCode = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n fontWeight: 700,\n color: theme.palette.success.dark,\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n}));\n\nconst RemoveButton = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n fontWeight: 600,\n color: theme.palette.error.main,\n padding: '0.25rem',\n '&:hover': { textDecoration: 'underline' },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.error.main}`,\n outlineOffset: '2px',\n borderRadius: '3px',\n },\n}));\n\nexport function CouponInput({\n value,\n onChange,\n onApply,\n onRemove,\n appliedCode,\n placeholder = 'Wpisz kod rabatowy',\n applyLabel = 'Zastosuj',\n removeLabel = 'Usuń',\n loading = false,\n disabled = false,\n error,\n successMessage,\n className,\n}: CouponInputProps) {\n const id = useId();\n const errorId = `${id}-error`;\n const successId = `${id}-success`;\n const isDisabled = disabled || loading;\n\n const handleApply = () => {\n if (value.trim()) onApply(value.trim());\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') handleApply();\n };\n\n if (appliedCode) {\n return (\n <Root className={className}>\n <AppliedRow role=\"status\" aria-label={`Kod rabatowy ${appliedCode} zastosowany`}>\n <AppliedCode>{appliedCode}</AppliedCode>\n {onRemove && (\n <RemoveButton\n type=\"button\"\n aria-label={`${removeLabel} kod ${appliedCode}`}\n onClick={onRemove}\n >\n {removeLabel}\n </RemoveButton>\n )}\n </AppliedRow>\n {successMessage && (\n <Message $type=\"success\" id={successId} role=\"status\">\n ✓ {successMessage}\n </Message>\n )}\n </Root>\n );\n }\n\n return (\n <Root className={className}>\n <InputRow $hasError={Boolean(error)} $applied={false}>\n <Input\n id={id}\n type=\"text\"\n value={value}\n placeholder={placeholder}\n disabled={isDisabled}\n aria-label=\"Kod rabatowy\"\n aria-invalid={Boolean(error)}\n aria-describedby={error ? errorId : undefined}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n />\n <ApplyButton\n type=\"button\"\n $applied={false}\n disabled={isDisabled || !value.trim()}\n aria-label={applyLabel}\n onClick={handleApply}\n >\n {loading ? <Spinner aria-hidden=\"true\" /> : applyLabel}\n </ApplyButton>\n </InputRow>\n {error && (\n <Message $type=\"error\" id={errorId} role=\"alert\">\n {error}\n </Message>\n )}\n </Root>\n );\n}\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { AspectRatio } from '@/components/molecules/media/AspectRatio/AspectRatio';\nimport type { ProductGalleryProps } from '@/components';\n\nconst Root = styled('div')({\n display: 'grid',\n gap: '0.75rem',\n});\n\nconst MainImage = styled('img')(({ theme }) => ({\n objectFit: 'cover',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst Thumbnails = styled('div')({\n display: 'grid',\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\n gap: '0.5rem',\n});\n\nconst ThumbnailButton = styled('button')<{ $active: boolean }>(({ theme, $active }) => ({\n appearance: 'none',\n padding: 0,\n border: `2px solid ${$active ? theme.palette.primary.main : 'transparent'}`,\n borderRadius: theme.shape.borderRadius,\n background: 'transparent',\n cursor: 'pointer',\n overflow: 'hidden',\n}));\n\nconst ThumbnailImage = styled('img')({\n objectFit: 'cover',\n});\n\nexport const ProductGallery = forwardRef<HTMLDivElement, ProductGalleryProps>(\n ({ images, selectedIndex, onSelect, ...props }, ref) => {\n const [internalIndex, setInternalIndex] = useState(0);\n const activeIndex = selectedIndex ?? internalIndex;\n const activeImage = images[activeIndex] ?? images[0];\n\n const handleSelect = (index: number) => {\n setInternalIndex(index);\n onSelect?.(index);\n };\n\n if (!activeImage) {\n return null;\n }\n\n return (\n <Root ref={ref} {...props}>\n <AspectRatio ratio=\"4/3\">\n <MainImage src={activeImage.src} alt={activeImage.alt} />\n </AspectRatio>\n {images.length > 1 && (\n <Thumbnails>\n {images.map((image, index) => (\n <ThumbnailButton\n key={`${image.src}-${index}`}\n type=\"button\"\n $active={index === activeIndex}\n aria-label={`Pokaż zdjęcie ${index + 1}`}\n aria-pressed={index === activeIndex}\n onClick={() => handleSelect(index)}\n >\n <AspectRatio ratio=\"1/1\">\n <ThumbnailImage src={image.src} alt=\"\" aria-hidden=\"true\" />\n </AspectRatio>\n </ThumbnailButton>\n ))}\n </Thumbnails>\n )}\n </Root>\n );\n },\n);\n\nProductGallery.displayName = 'ProductGallery';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { PromoStripProps, PromoStripVariant } from '@/components';\n\nconst Root = styled('div')<{ $variant: PromoStripVariant }>(({ theme, $variant }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexWrap: 'wrap',\n gap: '0 1rem',\n width: '100%',\n padding: '0.75rem 1rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n backgroundColor:\n $variant === 'success'\n ? 'rgba(34,197,94,0.14)'\n : $variant === 'warning'\n ? 'rgba(245,158,11,0.16)'\n : `${theme.palette.primary.main}14`,\n}));\n\nconst Link = styled('a')(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'underline',\n textUnderlineOffset: '0.2em',\n}));\n\nexport const PromoStrip = forwardRef<HTMLDivElement, PromoStripProps>(\n ({ message, actionLabel, href, variant = 'info', ...props }, ref) => (\n <Root ref={ref} $variant={variant} {...props}>\n <span>{message}</span>\n {actionLabel && href && <Link href={href}>{actionLabel}</Link>}\n </Root>\n ),\n);\n\nPromoStrip.displayName = 'PromoStrip';\n\nexport const promoStripVariants: PromoStripVariant[] = ['info', 'success', 'warning'];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { QuantitySelectorProps } from '@/components';\n\nconst Root = styled('div')(({ theme }) => ({\n display: 'inline-grid',\n gridTemplateColumns: '2.25rem 3rem 2.25rem',\n alignItems: 'center',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n overflow: 'hidden',\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Control = styled('button')(({ theme }) => ({\n width: '2.25rem',\n height: '2.25rem',\n border: 0,\n background: theme.palette.background.paper,\n color: theme.palette.text.primary,\n cursor: 'pointer',\n fontSize: '1.125rem',\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n },\n}));\n\nconst Value = styled('span')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '3rem',\n height: '2.25rem',\n borderLeft: `1px solid ${theme.palette.divider}`,\n borderRight: `1px solid ${theme.palette.divider}`,\n fontWeight: 600,\n}));\n\nexport const QuantitySelector = forwardRef<HTMLDivElement, QuantitySelectorProps>(\n ({ value, min = 1, max = 99, step = 1, disabled = false, onChange, ...props }, ref) => {\n const decrease = Math.max(min, value - step);\n const increase = Math.min(max, value + step);\n\n return (\n <Root ref={ref} aria-label=\"Wybierz ilość\" {...props}>\n <Control\n type=\"button\"\n aria-label=\"Zmniejsz ilość\"\n disabled={disabled || value <= min}\n onClick={() => onChange?.(decrease)}\n >\n −\n </Control>\n <Value aria-live=\"polite\">{value}</Value>\n <Control\n type=\"button\"\n aria-label=\"Zwiększ ilość\"\n disabled={disabled || value >= max}\n onClick={() => onChange?.(increase)}\n >\n +\n </Control>\n </Root>\n );\n },\n);\n\nQuantitySelector.displayName = 'QuantitySelector';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { StockStatusProps, StockStatusValue } from '@/components';\n\ntype ColorKey = 'success' | 'warning' | 'error' | 'info';\n\nconst COLOR_MAP: Record<StockStatusValue, ColorKey> = {\n 'in-stock': 'success',\n 'low-stock': 'warning',\n 'out-of-stock': 'error',\n preorder: 'info',\n backorder: 'info',\n};\n\nfunction getDefaultLabel(status: StockStatusValue, count?: number): string {\n switch (status) {\n case 'in-stock':\n return 'Dostępny';\n case 'low-stock':\n return count !== undefined\n ? `Ostatni${count === 1 ? 'a' : 'e'} ${count} ${count === 1 ? 'sztuka' : 'sztuki'}`\n : 'Ostatnie sztuki';\n case 'out-of-stock':\n return 'Brak w magazynie';\n case 'preorder':\n return 'Dostępny w przedsprzedaży';\n case 'backorder':\n return 'Dostępny na zamówienie';\n }\n}\n\nconst Root = styled('div', {\n shouldForwardProp: (p) => p !== '$color' && p !== '$size',\n})<{ $color: ColorKey; $size: 'sm' | 'md' }>(({ theme, $color, $size }) => {\n const colorMap = {\n success: theme.palette.success.main,\n warning: theme.palette.warning.main,\n error: theme.palette.error.main,\n info: theme.palette.info.main,\n };\n return {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.375rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: $size === 'sm' ? '0.8125rem' : '0.9375rem',\n fontWeight: 600,\n color: colorMap[$color],\n lineHeight: 1.4,\n };\n});\n\nconst Dot = styled('span', {\n shouldForwardProp: (p) => p !== '$color',\n})<{ $color: ColorKey }>(({ theme, $color }) => {\n const colorMap = {\n success: theme.palette.success.main,\n warning: theme.palette.warning.main,\n error: theme.palette.error.main,\n info: theme.palette.info.main,\n };\n return {\n width: '0.5rem',\n height: '0.5rem',\n borderRadius: '50%',\n backgroundColor: colorMap[$color],\n flexShrink: 0,\n };\n});\n\nexport const StockStatus = forwardRef<HTMLDivElement, StockStatusProps>(\n ({ status, count, label, showIcon = true, size = 'md', ...props }, ref) => {\n const color = COLOR_MAP[status];\n const text = label ?? getDefaultLabel(status, count);\n\n return (\n <Root ref={ref} $color={color} $size={size} role=\"status\" aria-label={text} {...props}>\n {showIcon && <Dot $color={color} aria-hidden=\"true\" />}\n <span>{text}</span>\n </Root>\n );\n },\n);\n\nStockStatus.displayName = 'StockStatus';\n\nexport const stockStatusValues: StockStatusValue[] = [\n 'in-stock',\n 'low-stock',\n 'out-of-stock',\n 'preorder',\n 'backorder',\n];\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport type { FaqItemProps } from '@/components';\n\nconst Root = styled('div')(({ theme }) => ({\n borderBottom: `1px solid ${theme.palette.divider}`,\n}));\n\nconst Trigger = styled('button')(({ theme }) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '1rem',\n padding: '1.25rem 0',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n textAlign: 'left',\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n lineHeight: 1.5,\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: '2px',\n },\n}));\n\ninterface IconProps {\n $open: boolean;\n}\n\nconst ChevronIcon = styled(ExpandMoreIcon, {\n shouldForwardProp: (prop) => prop !== '$open',\n})<IconProps>(({ $open }) => ({\n width: '1.25rem',\n height: '1.25rem',\n flexShrink: 0,\n transition: 'transform 200ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst Panel = styled('div')({\n overflow: 'hidden',\n});\n\nconst PanelInner = styled('p')(({ theme }) => ({\n margin: 0,\n paddingBottom: '1.25rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n lineHeight: 1.7,\n}));\n\nexport const FaqItem = forwardRef<HTMLDivElement, FaqItemProps>(\n ({ item, defaultOpen = false, ...props }, ref) => {\n const [open, setOpen] = useState(defaultOpen);\n\n return (\n <Root ref={ref} {...props}>\n <Trigger type=\"button\" aria-expanded={open} onClick={() => setOpen((prev) => !prev)}>\n {item.question}\n <ChevronIcon $open={open} aria-hidden=\"true\" />\n </Trigger>\n {open && (\n <Panel role=\"region\">\n <PanelInner>{item.answer}</PanelInner>\n </Panel>\n )}\n </Root>\n );\n },\n);\n\nFaqItem.displayName = 'FaqItem';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport type { FeatureItemProps } from '@/components';\n\nconst CardRoot = styled(Card)({\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n height: '100%',\n});\n\nconst IconLeftRoot = styled('div')({\n display: 'flex',\n alignItems: 'flex-start',\n gap: '1rem',\n});\n\nconst IconWrapper = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2.75rem',\n height: '2.75rem',\n borderRadius: '0.625rem',\n backgroundColor: `${theme.palette.primary.main}18`,\n color: theme.palette.primary.main,\n flexShrink: 0,\n '& svg': {\n width: '1.375rem',\n height: '1.375rem',\n },\n}));\n\nconst TextGroup = styled('div')({\n flex: 1,\n minWidth: 0,\n});\n\nconst Title = styled('h3')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n margin: '0.375rem 0 0',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n}));\n\nexport const FeatureItem = forwardRef<HTMLDivElement, FeatureItemProps>(\n ({ feature, cardVariant = 'default', layout = 'card', ...props }, ref) => {\n if (layout === 'icon-left') {\n return (\n <IconLeftRoot ref={ref} {...props}>\n {feature.icon && <IconWrapper>{feature.icon}</IconWrapper>}\n <TextGroup>\n <Title>{feature.title}</Title>\n <Description>{feature.description}</Description>\n </TextGroup>\n </IconLeftRoot>\n );\n }\n\n return (\n <CardRoot ref={ref} variant={cardVariant} padding=\"lg\" rounded=\"lg\" {...props}>\n {feature.icon && <IconWrapper>{feature.icon}</IconWrapper>}\n <TextGroup>\n <Title>{feature.title}</Title>\n <Description>{feature.description}</Description>\n </TextGroup>\n </CardRoot>\n );\n },\n);\n\nFeatureItem.displayName = 'FeatureItem';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { ProcessStepProps } from '@/components';\n\nconst Root = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n});\n\nconst StepBadge = styled('div')(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '3.5rem',\n height: '3.5rem',\n borderRadius: '9999px',\n backgroundColor: `${theme.palette.primary.main}1a`,\n border: `2px solid ${theme.palette.primary.main}33`,\n marginBottom: '1.25rem',\n flexShrink: 0,\n}));\n\nconst StepNumber = styled('span')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontWeight: 700,\n fontSize: '1.125rem',\n color: theme.palette.primary.main,\n lineHeight: 1,\n}));\n\nconst IconWrapper = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.primary.main,\n}));\n\nconst Title = styled('h3')(({ theme }) => ({\n margin: '0 0 0.5rem',\n fontFamily: theme.typography.fontFamily,\n fontWeight: 600,\n fontSize: '1rem',\n color: theme.palette.text.primary,\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n maxWidth: '18rem',\n}));\n\nexport const ProcessStep = forwardRef<HTMLDivElement, ProcessStepProps>(\n ({ step, title, description, icon, ...props }, ref) => (\n <Root ref={ref} {...props}>\n <StepBadge aria-hidden=\"true\">\n {icon ? <IconWrapper>{icon}</IconWrapper> : <StepNumber>{step}</StepNumber>}\n </StepBadge>\n <Title>{title}</Title>\n {description && <Description>{description}</Description>}\n </Root>\n ),\n);\n\nProcessStep.displayName = 'ProcessStep';\n","import { forwardRef, type ForwardedRef } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport type { LogoTileItem, LogoTileProps, LogoTileVariant } from '@/components';\n\ninterface TileProps {\n $variant: LogoTileVariant;\n $interactive: boolean;\n}\n\ninterface TileStyleProps extends TileProps {\n theme: Theme;\n}\n\nconst tileStyles = ({ theme, $variant, $interactive }: TileStyleProps) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '6rem',\n padding: '1.25rem',\n borderRadius: theme.shape.borderRadius,\n textDecoration: 'none',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n fontWeight: 700,\n textAlign: 'center' as const,\n transition:\n 'border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease, filter 0.2s ease',\n ...($variant === 'plain' && {\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n }),\n ...($variant === 'boxed' && {\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n }),\n ...($interactive && {\n cursor: 'pointer',\n '&:hover': {\n borderColor: theme.palette.primary.main,\n backgroundColor: $variant === 'boxed' ? theme.palette.background.default : 'transparent',\n transform: 'translateY(-2px)',\n },\n }),\n});\n\nconst Tile = styled('div', {\n shouldForwardProp: (prop) => !['$variant', '$interactive'].includes(prop as string),\n})<TileProps>(tileStyles);\n\nconst TileLink = styled('a', {\n shouldForwardProp: (prop) => !['$variant', '$interactive'].includes(prop as string),\n})<TileProps>(tileStyles);\n\ninterface LogoImageProps {\n $monochrome: boolean;\n $logoHeight: number | string;\n}\n\nconst LogoImage = styled('img', {\n shouldForwardProp: (prop) => !['$monochrome', '$logoHeight'].includes(prop as string),\n})<LogoImageProps>(({ theme, $monochrome, $logoHeight }) => ({\n display: 'block',\n maxWidth: '100%',\n width: 'auto',\n height: typeof $logoHeight === 'number' ? `${$logoHeight}px` : $logoHeight,\n objectFit: 'contain',\n filter: $monochrome\n ? theme.palette.mode === 'dark'\n ? 'brightness(0) invert(1)'\n : 'brightness(0)'\n : 'none',\n opacity: $monochrome ? 0.75 : 1,\n transition: 'opacity 0.2s ease',\n 'a:hover &, div:hover &': {\n opacity: 1,\n },\n}));\n\nfunction getSizeValue(value: number | string | undefined) {\n if (typeof value === 'number') {\n return `${value}px`;\n }\n\n return value;\n}\n\nfunction renderLogo(logo: LogoTileItem, monochrome: boolean, logoHeight: number | string) {\n if (!logo.logoUrl) {\n return logo.name;\n }\n\n return (\n <LogoImage\n src={logo.logoUrl}\n alt={logo.logoAlt ?? logo.name}\n $monochrome={monochrome}\n $logoHeight={logo.height ?? logoHeight}\n style={{\n width: getSizeValue(logo.width),\n height: getSizeValue(logo.height) ?? getSizeValue(logoHeight),\n }}\n />\n );\n}\n\nexport const LogoTile = forwardRef<HTMLElement, LogoTileProps>(\n ({ logo, variant = 'plain', monochrome = true, logoHeight = 40, ...props }, ref) => {\n const content = renderLogo(logo, monochrome, logoHeight);\n\n if (logo.href) {\n return (\n <TileLink\n ref={ref as ForwardedRef<HTMLAnchorElement>}\n href={logo.href}\n aria-label={logo.name}\n $variant={variant}\n $interactive\n {...props}\n >\n {content}\n </TileLink>\n );\n }\n\n return (\n <Tile\n ref={ref as ForwardedRef<HTMLDivElement>}\n $variant={variant}\n $interactive={false}\n {...props}\n >\n {content}\n </Tile>\n );\n },\n);\n\nLogoTile.displayName = 'LogoTile';\n\nexport const logoTileVariants: LogoTileVariant[] = ['plain', 'boxed'];\n","import { forwardRef } from 'react';\nimport { styled, type Theme } from '@mui/material/styles';\nimport CloseIcon from '@mui/icons-material/Close';\nimport type {\n TimelineItem,\n TimelineItemStatus,\n TimelineProps,\n TimelineVariant,\n} from '@/components';\n\nfunction getDotColor(status: TimelineItemStatus, theme: Theme): string {\n switch (status) {\n case 'completed':\n return theme.palette.success?.main ?? '#22c55e';\n case 'active':\n return theme.palette.primary.main;\n case 'error':\n return theme.palette.error.main;\n default:\n return theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.2)' : 'rgba(0,0,0,0.15)';\n }\n}\n\nconst List = styled('ol')({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n});\n\ninterface ItemRowProps {\n $compact: boolean;\n $last: boolean;\n}\n\nconst ItemRow = styled('li', {\n shouldForwardProp: (p) => !['$compact', '$last'].includes(p as string),\n})<ItemRowProps>(({ $compact, $last }) => ({\n display: 'flex',\n gap: $compact ? '0.75rem' : '1rem',\n paddingBottom: $last ? 0 : $compact ? '1rem' : '1.5rem',\n position: 'relative',\n}));\n\ninterface DotColProps {\n $last: boolean;\n}\n\nconst DotCol = styled('div', {\n shouldForwardProp: (p) => p !== '$last',\n})<DotColProps>(({ theme, $last }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n flexShrink: 0,\n '&::after': $last\n ? {}\n : {\n content: '\"\"',\n flex: 1,\n width: '2px',\n marginTop: '0.375rem',\n backgroundColor: theme.palette.divider,\n borderRadius: '1px',\n minHeight: '1.5rem',\n },\n}));\n\ninterface DotProps {\n $status: TimelineItemStatus;\n $hasIcon: boolean;\n}\n\nconst Dot = styled('span', {\n shouldForwardProp: (p) => !['$status', '$hasIcon'].includes(p as string),\n})<DotProps>(({ theme, $status, $hasIcon }) => ({\n width: $hasIcon ? '2rem' : '0.75rem',\n height: $hasIcon ? '2rem' : '0.75rem',\n borderRadius: '50%',\n backgroundColor: getDotColor($status, theme),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: '#fff',\n fontSize: '0.75rem',\n zIndex: 1,\n ...($status === 'active' && {\n boxShadow: `0 0 0 4px ${theme.palette.primary.main}33`,\n }),\n ...($status === 'completed' &&\n !$hasIcon && {\n '&::after': {\n content: '\"\"',\n display: 'block',\n width: '35%',\n height: '55%',\n borderRight: '1.5px solid #fff',\n borderBottom: '1.5px solid #fff',\n transform: 'rotate(45deg) translate(-10%, -15%)',\n },\n }),\n}));\n\nconst Content = styled('div')({ flex: 1, minWidth: 0, paddingTop: '0.0625rem' });\n\nconst TitleRow = styled('div')({\n display: 'flex',\n alignItems: 'baseline',\n gap: '0.5rem',\n flexWrap: 'wrap',\n});\n\nconst Title = styled('p', {\n shouldForwardProp: (p) => p !== '$compact',\n})<{ $compact: boolean }>(({ theme, $compact }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: $compact ? '0.875rem' : '1rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n}));\n\nconst Date = styled('time')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n}));\n\nconst Description = styled('div')(({ theme }) => ({\n marginTop: '0.25rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n}));\n\nfunction StatusIcon({ status }: { status: TimelineItemStatus }) {\n if (status === 'error') {\n return <CloseIcon aria-hidden=\"true\" style={{ fontSize: 10 }} />;\n }\n return null;\n}\n\nfunction TimelineItemComponent({\n item,\n compact,\n last,\n}: {\n item: TimelineItem;\n compact: boolean;\n last: boolean;\n}) {\n const status = item.status ?? 'pending';\n const hasIcon = Boolean(item.icon);\n\n return (\n <ItemRow $compact={compact} $last={last}>\n <DotCol $last={last}>\n <Dot $status={status} $hasIcon={hasIcon}>\n {item.icon ?? <StatusIcon status={status} />}\n </Dot>\n </DotCol>\n <Content>\n <TitleRow>\n <Title $compact={compact}>{item.title}</Title>\n {item.date && <Date dateTime={item.date}>{item.date}</Date>}\n </TitleRow>\n {item.description && <Description>{item.description}</Description>}\n </Content>\n </ItemRow>\n );\n}\n\nexport const Timeline = forwardRef<HTMLOListElement, TimelineProps>(\n ({ items, variant = 'default', align: _align = 'left', ...props }, ref) => {\n const compact = variant === 'compact';\n return (\n <List ref={ref} aria-label=\"Oś czasu\" {...props}>\n {items.map((item, i) => (\n <TimelineItemComponent\n key={item.id}\n item={item}\n compact={compact}\n last={i === items.length - 1}\n />\n ))}\n </List>\n );\n },\n);\n\nTimeline.displayName = 'Timeline';\n\nexport const timelineVariants: TimelineVariant[] = ['default', 'compact'];\nexport const timelineItemStatuses: TimelineItemStatus[] = [\n 'completed',\n 'active',\n 'pending',\n 'error',\n];\n","import { useState, useEffect, useCallback, useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport type { CarouselProps } from '@/components';\n\nconst Root = styled('div')({\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n userSelect: 'none',\n});\n\nconst Track = styled('div', {\n shouldForwardProp: (prop) => prop !== '$index',\n})<{ $index: number }>(({ $index }) => ({\n display: 'flex',\n transition: 'transform 400ms ease',\n transform: `translateX(-${$index * 100}%)`,\n willChange: 'transform',\n}));\n\nconst Slide = styled('div')({\n flex: '0 0 100%',\n minWidth: 0,\n});\n\nconst ArrowButton = styled('button', {\n shouldForwardProp: (prop) => prop !== '$side',\n})<{ $side: 'left' | 'right' }>(({ theme, $side }) => ({\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n ...($side === 'left' ? { left: '0.75rem' } : { right: '0.75rem' }),\n zIndex: 10,\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n width: '2.5rem',\n height: '2.5rem',\n borderRadius: '50%',\n backgroundColor:\n theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.15)' : 'rgba(255,255,255,0.85)',\n backdropFilter: 'blur(4px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.text.primary,\n boxShadow: theme.shadows[2],\n transition: 'background-color 150ms ease, opacity 150ms ease',\n '&:hover': {\n backgroundColor:\n theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.25)' : 'rgba(255,255,255,1)',\n },\n '&:disabled': {\n opacity: 0.35,\n cursor: 'default',\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst Dots = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n gap: '0.5rem',\n padding: '0.75rem 0 0.25rem',\n});\n\nconst Dot = styled('button', {\n shouldForwardProp: (prop) => prop !== '$active',\n})<{ $active: boolean }>(({ theme, $active }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n width: $active ? '1.5rem' : '0.5rem',\n height: '0.5rem',\n borderRadius: '0.25rem',\n backgroundColor: $active ? theme.palette.primary.main : theme.palette.action.disabled,\n transition: 'width 250ms ease, background-color 250ms ease',\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nexport function Carousel({\n slides,\n autoPlay = false,\n autoPlayInterval = 4000,\n showDots = true,\n showArrows = true,\n loop = true,\n className,\n}: CarouselProps) {\n const [index, setIndex] = useState(0);\n const timerRef = useRef<ReturnType<typeof setInterval> | null>(null);\n const count = slides.length;\n\n const prev = useCallback(() => {\n setIndex((i) => (loop ? (i - 1 + count) % count : Math.max(0, i - 1)));\n }, [count, loop]);\n\n const next = useCallback(() => {\n setIndex((i) => (loop ? (i + 1) % count : Math.min(count - 1, i + 1)));\n }, [count, loop]);\n\n useEffect(() => {\n if (!autoPlay) return;\n timerRef.current = setInterval(next, autoPlayInterval);\n return () => {\n if (timerRef.current) clearInterval(timerRef.current);\n };\n }, [autoPlay, autoPlayInterval, next]);\n\n useEffect(() => {\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'ArrowLeft') prev();\n if (e.key === 'ArrowRight') next();\n };\n document.addEventListener('keydown', handleKey);\n return () => document.removeEventListener('keydown', handleKey);\n }, [prev, next]);\n\n if (!count) return null;\n\n return (\n <div className={className}>\n <Root aria-roledescription=\"carousel\">\n <Track $index={index} aria-live=\"polite\">\n {slides.map((slide, i) => (\n <Slide\n key={slide.id}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`Slajd ${i + 1} z ${count}`}\n >\n {slide.content}\n </Slide>\n ))}\n </Track>\n\n {showArrows && (\n <>\n <ArrowButton\n $side=\"left\"\n aria-label=\"Poprzedni slajd\"\n onClick={prev}\n disabled={!loop && index === 0}\n >\n <ChevronLeftIcon aria-hidden style={{ fontSize: 16 }} />\n </ArrowButton>\n <ArrowButton\n $side=\"right\"\n aria-label=\"Następny slajd\"\n onClick={next}\n disabled={!loop && index === count - 1}\n >\n <ChevronRightIcon aria-hidden style={{ fontSize: 16 }} />\n </ArrowButton>\n </>\n )}\n </Root>\n\n {showDots && count > 1 && (\n <Dots role=\"tablist\" aria-label=\"Nawigacja slajdów\">\n {slides.map((slide, i) => (\n <Dot\n key={slide.id}\n role=\"tab\"\n aria-label={`Przejdź do slajdu ${i + 1}`}\n aria-selected={i === index}\n $active={i === index}\n onClick={() => setIndex(i)}\n />\n ))}\n </Dots>\n )}\n </div>\n );\n}\n","import { styled } from '@mui/material/styles';\nimport { AspectRatio } from '@/components';\nimport type { VideoPlayerProps, VideoPlayerProvider } from '@/components';\n\nconst Wrapper = styled('div')(({ theme }) => ({\n borderRadius: '0.75rem',\n overflow: 'hidden',\n backgroundColor: '#000',\n boxShadow: theme.shadows[4],\n}));\n\nconst StyledIframe = styled('iframe')({\n border: 'none',\n display: 'block',\n});\n\nconst StyledVideo = styled('video')({\n display: 'block',\n objectFit: 'contain',\n});\n\nfunction detectProvider(src: string): Exclude<VideoPlayerProvider, 'auto'> {\n if (/youtube\\.com|youtu\\.be/.test(src)) return 'youtube';\n if (/vimeo\\.com/.test(src)) return 'vimeo';\n return 'local';\n}\n\nfunction buildEmbedUrl(\n src: string,\n provider: Exclude<VideoPlayerProvider, 'auto'>,\n autoPlay: boolean,\n): string {\n if (provider === 'youtube') {\n const id = src.match(/(?:v=|youtu\\.be\\/)([^&?/]+)/)?.[1] ?? src;\n return `https://www.youtube.com/embed/${id}?rel=0${autoPlay ? '&autoplay=1' : ''}`;\n }\n if (provider === 'vimeo') {\n const id = src.match(/vimeo\\.com\\/(\\d+)/)?.[1] ?? src;\n return `https://player.vimeo.com/video/${id}?${autoPlay ? 'autoplay=1' : ''}`;\n }\n return src;\n}\n\nexport function VideoPlayer({\n src,\n provider = 'auto',\n title = 'Video',\n poster,\n ratio = '16/9',\n autoPlay = false,\n muted = false,\n loop = false,\n controls = true,\n className,\n}: VideoPlayerProps) {\n const resolved: Exclude<VideoPlayerProvider, 'auto'> =\n provider === 'auto' ? detectProvider(src) : provider;\n\n return (\n <Wrapper className={className}>\n <AspectRatio ratio={ratio}>\n {resolved === 'local' ? (\n <StyledVideo\n src={src}\n poster={poster}\n autoPlay={autoPlay}\n muted={muted}\n loop={loop}\n controls={controls}\n playsInline\n />\n ) : (\n <StyledIframe\n src={buildEmbedUrl(src, resolved, autoPlay)}\n title={title}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n </AspectRatio>\n </Wrapper>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport CloseIcon from '@mui/icons-material/Close';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport type { LightboxProps } from '@/components';\n\nconst fadeIn = keyframes`from { opacity: 0; } to { opacity: 1; }`;\nconst zoomIn = keyframes`from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); }`;\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$gap'].includes(prop as string),\n})<{ $columns: number; $gap: number }>(({ $columns, $gap }) => ({\n display: 'grid',\n gridTemplateColumns: `repeat(${$columns}, 1fr)`,\n gap: `${$gap}px`,\n}));\n\nconst Thumb = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n padding: 0,\n cursor: 'pointer',\n overflow: 'hidden',\n borderRadius: '0.5rem',\n position: 'relative',\n aspectRatio: '1 / 1',\n '& img': {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n transition: 'transform 300ms ease',\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundColor: 'rgba(0,0,0,0)',\n transition: 'background-color 200ms ease',\n borderRadius: 'inherit',\n },\n '&:hover img': {\n transform: 'scale(1.05)',\n },\n '&:hover::after': {\n backgroundColor: 'rgba(0,0,0,0.1)',\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst Overlay = styled('div')(({ theme }) => ({\n position: 'fixed',\n inset: 0,\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(0,0,0,0.92)' : 'rgba(0,0,0,0.88)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 1400,\n animation: `${fadeIn} 200ms ease`,\n}));\n\nconst LightboxImage = styled('img')({\n maxWidth: 'min(90vw, 1200px)',\n maxHeight: '85vh',\n objectFit: 'contain',\n borderRadius: '0.5rem',\n animation: `${zoomIn} 220ms ease`,\n userSelect: 'none',\n display: 'block',\n});\n\nconst Caption = styled('p')(({ theme }) => ({\n position: 'absolute',\n bottom: '1.5rem',\n left: '50%',\n transform: 'translateX(-50%)',\n margin: 0,\n color: 'rgba(255,255,255,0.85)',\n fontSize: '0.9375rem',\n textAlign: 'center',\n fontFamily: theme.typography.fontFamily,\n textShadow: '0 1px 4px rgba(0,0,0,0.6)',\n pointerEvents: 'none',\n whiteSpace: 'nowrap',\n maxWidth: '90vw',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}));\n\nconst NavButton = styled('button', {\n shouldForwardProp: (prop) => prop !== '$side',\n})<{ $side: 'left' | 'right' }>(({ $side }) => ({\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)',\n ...($side === 'left' ? { left: '1rem' } : { right: '1rem' }),\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n width: '3rem',\n height: '3rem',\n borderRadius: '50%',\n backgroundColor: 'rgba(255,255,255,0.12)',\n backdropFilter: 'blur(6px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n transition: 'background-color 150ms ease',\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,0.22)',\n },\n '&:focus-visible': {\n outline: '3px solid rgba(255,255,255,0.7)',\n outlineOffset: '2px',\n },\n}));\n\nconst CloseButton = styled('button')({\n position: 'absolute',\n top: '1rem',\n right: '1rem',\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n width: '2.5rem',\n height: '2.5rem',\n borderRadius: '50%',\n backgroundColor: 'rgba(255,255,255,0.12)',\n backdropFilter: 'blur(6px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n transition: 'background-color 150ms ease',\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,0.22)',\n },\n '&:focus-visible': {\n outline: '3px solid rgba(255,255,255,0.7)',\n outlineOffset: '2px',\n },\n});\n\nconst Counter = styled('span')({\n position: 'absolute',\n top: '1.25rem',\n left: '50%',\n transform: 'translateX(-50%)',\n color: 'rgba(255,255,255,0.6)',\n fontSize: '0.875rem',\n fontVariantNumeric: 'tabular-nums',\n pointerEvents: 'none',\n});\n\nexport function Lightbox({ images, columns = 3, gap = 8, className }: LightboxProps) {\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n const isOpen = activeIndex !== null;\n const count = images.length;\n\n const close = useCallback(() => setActiveIndex(null), []);\n\n const prev = useCallback(\n () => setActiveIndex((i) => (i === null ? null : (i - 1 + count) % count)),\n [count],\n );\n\n const next = useCallback(\n () => setActiveIndex((i) => (i === null ? null : (i + 1) % count)),\n [count],\n );\n\n useEffect(() => {\n if (!isOpen) return;\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') close();\n if (e.key === 'ArrowLeft') prev();\n if (e.key === 'ArrowRight') next();\n };\n document.addEventListener('keydown', handler);\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handler);\n document.body.style.overflow = prevOverflow;\n };\n }, [isOpen, close, prev, next]);\n\n const active = activeIndex !== null ? images[activeIndex] : null;\n\n return (\n <>\n <Grid className={className} $columns={columns} $gap={gap} role=\"list\">\n {images.map((img, i) => (\n <Thumb\n key={img.id}\n role=\"listitem\"\n aria-label={`Otwórz zdjęcie: ${img.alt ?? img.id}`}\n onClick={() => setActiveIndex(i)}\n >\n <img src={img.thumb ?? img.src} alt={img.alt ?? ''} loading=\"lazy\" />\n </Thumb>\n ))}\n </Grid>\n\n {isOpen &&\n active &&\n createPortal(\n <Overlay role=\"dialog\" aria-modal=\"true\" aria-label=\"Przeglądarka zdjęć\" onClick={close}>\n <Counter aria-live=\"polite\">\n {(activeIndex ?? 0) + 1} / {count}\n </Counter>\n\n <CloseButton aria-label=\"Zamknij\" onClick={close}>\n <CloseIcon aria-hidden style={{ fontSize: 18 }} />\n </CloseButton>\n\n <LightboxImage\n key={active.id}\n src={active.src}\n alt={active.alt ?? ''}\n onClick={(e) => e.stopPropagation()}\n />\n\n {active.caption && <Caption>{active.caption}</Caption>}\n\n {count > 1 && (\n <>\n <NavButton\n $side=\"left\"\n aria-label=\"Poprzednie zdjęcie\"\n onClick={(e) => {\n e.stopPropagation();\n prev();\n }}\n >\n <ChevronLeftIcon aria-hidden style={{ fontSize: 20 }} />\n </NavButton>\n <NavButton\n $side=\"right\"\n aria-label=\"Następne zdjęcie\"\n onClick={(e) => {\n e.stopPropagation();\n next();\n }}\n >\n <ChevronRightIcon aria-hidden style={{ fontSize: 20 }} />\n </NavButton>\n </>\n )}\n </Overlay>,\n document.body,\n )}\n </>\n );\n}\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { BreadcrumbsProps } from '@/components';\n\nconst Nav = styled('nav')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\nconst List = styled('ol')({\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '0.5rem',\n padding: 0,\n margin: 0,\n listStyle: 'none',\n});\n\nconst Link = styled('a')(({ theme }) => ({\n color: theme.palette.text.secondary,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n}));\n\nconst Current = styled('span')(({ theme }) => ({\n color: theme.palette.text.primary,\n fontWeight: 600,\n}));\n\nconst Separator = styled('span')(({ theme }) => ({\n color: theme.palette.text.disabled,\n}));\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n ({ items, separator = '/', ...props }, ref) => (\n <Nav ref={ref} aria-label=\"Ścieżka nawigacji\" {...props}>\n <List>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n <li key={index}>\n {item.href && !isLast ? (\n <Link href={item.href}>{item.label}</Link>\n ) : (\n <Current aria-current={isLast ? 'page' : undefined}>{item.label}</Current>\n )}\n {!isLast && <Separator aria-hidden=\"true\"> {separator}</Separator>}\n </li>\n );\n })}\n </List>\n </Nav>\n ),\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n","import { forwardRef } from 'react';\nimport { styled, alpha, type Theme } from '@mui/material/styles';\nimport type { PaginationButtonProps, PaginationButtonSize } from '@/components';\n\nconst sizeMap: Record<\n PaginationButtonSize,\n { minWidth: string; height: string; fontSize: string }\n> = {\n sm: { minWidth: '1.75rem', height: '1.75rem', fontSize: '0.75rem' },\n md: { minWidth: '2rem', height: '2rem', fontSize: '0.875rem' },\n lg: { minWidth: '2.5rem', height: '2.5rem', fontSize: '1rem' },\n};\n\ninterface StyledProps {\n $isActive: boolean;\n $size: PaginationButtonSize;\n}\n\nconst activeStyles = (theme: Theme) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover:not(:disabled)': { backgroundColor: theme.palette.primary.dark },\n});\n\nconst idleStyles = (theme: Theme) => ({\n backgroundColor: 'transparent',\n color: theme.palette.text.primary,\n '&:hover:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.08) },\n '&:active:not(:disabled)': { backgroundColor: alpha(theme.palette.primary.main, 0.16) },\n});\n\nconst StyledButton = styled('button')<StyledProps>(({ theme, $isActive, $size }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontWeight: $isActive ? 700 : 400,\n lineHeight: 1,\n padding: '0 0.25rem',\n transition: 'background-color 150ms ease',\n ...sizeMap[$size],\n ...($isActive ? activeStyles(theme) : idleStyles(theme)),\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n '&:disabled': {\n color: theme.palette.action.disabled,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n}));\n\nexport const PaginationButton = forwardRef<HTMLButtonElement, PaginationButtonProps>(\n (\n { onClick, isActive = false, disabled = false, size = 'md', children, 'aria-label': ariaLabel },\n ref,\n ) => (\n <StyledButton\n ref={ref}\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n $isActive={isActive}\n $size={size}\n aria-label={ariaLabel}\n aria-current={isActive ? 'page' : undefined}\n >\n {children}\n </StyledButton>\n ),\n);\n\nPaginationButton.displayName = 'PaginationButton';\n","import { styled } from '@mui/material/styles';\nimport type { PaginationButtonSize } from '@/components';\n\ninterface Props {\n size?: PaginationButtonSize;\n}\n\nconst sizeMap: Record<\n PaginationButtonSize,\n { minWidth: string; height: string; fontSize: string }\n> = {\n sm: { minWidth: '1.75rem', height: '1.75rem', fontSize: '0.75rem' },\n md: { minWidth: '2rem', height: '2rem', fontSize: '0.875rem' },\n lg: { minWidth: '2.5rem', height: '2.5rem', fontSize: '1rem' },\n};\n\ninterface StyledProps {\n $size: PaginationButtonSize;\n}\n\nconst StyledEllipsis = styled('span')<StyledProps>(({ theme, $size }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.text.secondary,\n userSelect: 'none',\n ...sizeMap[$size],\n}));\n\nexport const PaginationEllipsis = ({ size = 'md' }: Props) => (\n <StyledEllipsis $size={size} aria-hidden=\"true\">\n …\n </StyledEllipsis>\n);\n\nPaginationEllipsis.displayName = 'PaginationEllipsis';\n","import { styled } from '@mui/material/styles';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft';\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';\nimport { PaginationButton, PaginationEllipsis } from './elements';\nimport type { PaginationBarProps } from '@/components';\n\nconst Nav = styled('nav')({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.25rem',\n});\n\nconst DOTS = 'DOTS' as const;\ntype PageItem = number | typeof DOTS;\n\nfunction buildPageItems(currentPage: number, totalPages: number, siblingCount: number): PageItem[] {\n const totalSlots = siblingCount * 2 + 5; // first + last + current + 2×siblings + 2×dots\n\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblingCount, 1);\n const rightSibling = Math.min(currentPage + siblingCount, totalPages);\n\n const showLeftDots = leftSibling > 2;\n const showRightDots = rightSibling < totalPages - 1;\n\n if (!showLeftDots && showRightDots) {\n const leftRange = Array.from({ length: 3 + siblingCount * 2 }, (_, i) => i + 1);\n return [...leftRange, DOTS, totalPages];\n }\n\n if (showLeftDots && !showRightDots) {\n const rightRange = Array.from(\n { length: 3 + siblingCount * 2 },\n (_, i) => totalPages - (3 + siblingCount * 2) + 1 + i,\n );\n return [1, DOTS, ...rightRange];\n }\n\n const middleRange = Array.from(\n { length: rightSibling - leftSibling + 1 },\n (_, i) => leftSibling + i,\n );\n return [1, DOTS, ...middleRange, DOTS, totalPages];\n}\n\nconst ChevronLeft = () => <ChevronLeftIcon aria-hidden=\"true\" sx={{ fontSize: '1em' }} />;\nconst ChevronRight = () => <ChevronRightIcon aria-hidden=\"true\" sx={{ fontSize: '1em' }} />;\nconst ChevronsLeft = () => (\n <KeyboardDoubleArrowLeftIcon aria-hidden=\"true\" sx={{ fontSize: '1em' }} />\n);\nconst ChevronsRight = () => (\n <KeyboardDoubleArrowRightIcon aria-hidden=\"true\" sx={{ fontSize: '1em' }} />\n);\n\nexport const PaginationBar = ({\n currentPage,\n totalPages,\n onPageChange,\n siblingCount = 1,\n showFirstLast = true,\n size = 'md',\n disabled = false,\n}: PaginationBarProps) => {\n const pageItems = buildPageItems(currentPage, totalPages, siblingCount);\n\n const isFirst = currentPage === 1;\n const isLast = currentPage === totalPages;\n\n return (\n <Nav aria-label=\"Pagination\">\n {showFirstLast && (\n <PaginationButton\n size={size}\n disabled={disabled || isFirst}\n onClick={() => onPageChange(1)}\n aria-label=\"First page\"\n >\n <ChevronsLeft />\n </PaginationButton>\n )}\n\n <PaginationButton\n size={size}\n disabled={disabled || isFirst}\n onClick={() => onPageChange(currentPage - 1)}\n aria-label=\"Previous page\"\n >\n <ChevronLeft />\n </PaginationButton>\n\n {pageItems.map((item, index) =>\n item === DOTS ? (\n <PaginationEllipsis key={`dots-${index}`} size={size} />\n ) : (\n <PaginationButton\n key={item}\n size={size}\n isActive={item === currentPage}\n disabled={disabled}\n onClick={() => onPageChange(item)}\n aria-label={`Page ${item}`}\n >\n {item}\n </PaginationButton>\n ),\n )}\n\n <PaginationButton\n size={size}\n disabled={disabled || isLast}\n onClick={() => onPageChange(currentPage + 1)}\n aria-label=\"Next page\"\n >\n <ChevronRight />\n </PaginationButton>\n\n {showFirstLast && (\n <PaginationButton\n size={size}\n disabled={disabled || isLast}\n onClick={() => onPageChange(totalPages)}\n aria-label=\"Last page\"\n >\n <ChevronsRight />\n </PaginationButton>\n )}\n </Nav>\n );\n};\n\nPaginationBar.displayName = 'PaginationBar';\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport type { AccordionProps, AccordionVariant } from '@/components';\n\ninterface RootProps {\n $variant: AccordionVariant;\n}\ninterface ItemProps {\n $variant: AccordionVariant;\n $disabled: boolean;\n}\ninterface TriggerProps {\n $open: boolean;\n $disabled: boolean;\n}\ninterface PanelWrapProps {\n $open: boolean;\n}\ninterface IconProps {\n $open: boolean;\n}\n\nconst Root = styled('div', {\n shouldForwardProp: (p) => p !== '$variant',\n})<RootProps>(({ theme, $variant }) => ({\n width: '100%',\n ...($variant === 'bordered' && {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n overflow: 'hidden',\n }),\n ...($variant === 'separated' && {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n }),\n}));\n\nconst Item = styled('div', {\n shouldForwardProp: (p) => !['$variant', '$disabled'].includes(p as string),\n})<ItemProps>(({ theme, $variant, $disabled }) => ({\n opacity: $disabled ? 0.5 : 1,\n ...($variant === 'default' && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:first-of-type': { borderTop: `1px solid ${theme.palette.divider}` },\n }),\n ...($variant === 'bordered' && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:last-of-type': { borderBottom: 'none' },\n }),\n ...($variant === 'separated' && {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n overflow: 'hidden',\n }),\n}));\n\nconst Trigger = styled('button', {\n shouldForwardProp: (p) => !['$open', '$disabled'].includes(p as string),\n})<TriggerProps>(({ theme, $disabled }) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '1rem',\n padding: '1rem 1.25rem',\n background: 'none',\n border: 'none',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n textAlign: 'left',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n lineHeight: 1.5,\n transition: 'background-color 150ms ease',\n '&:hover:not(:disabled)': {\n backgroundColor: theme.palette.action.hover,\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '-2px',\n },\n}));\n\nconst ChevronIcon = styled(ExpandMoreIcon, {\n shouldForwardProp: (p) => p !== '$open',\n})<IconProps>(({ $open }) => ({\n width: '1.125rem',\n height: '1.125rem',\n flexShrink: 0,\n transition: 'transform 250ms ease',\n transform: $open ? 'rotate(180deg)' : 'rotate(0deg)',\n}));\n\nconst PanelWrap = styled('div', {\n shouldForwardProp: (p) => p !== '$open',\n})<PanelWrapProps>(({ $open }) => ({\n display: 'grid',\n gridTemplateRows: $open ? '1fr' : '0fr',\n transition: 'grid-template-rows 250ms ease',\n}));\n\nconst PanelInner = styled('div')({\n overflow: 'hidden',\n});\n\nconst PanelContent = styled('div')(({ theme }) => ({\n padding: '0 1.25rem 1rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n lineHeight: 1.7,\n}));\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n items,\n defaultOpenKeys = [],\n openKeys: controlledKeys,\n onChange,\n multiple = false,\n variant = 'default',\n ...props\n },\n ref,\n ) => {\n const [internalKeys, setInternalKeys] = useState<string[]>(defaultOpenKeys);\n const openKeys = controlledKeys ?? internalKeys;\n\n const toggle = (key: string, disabled?: boolean) => {\n if (disabled) return;\n const isOpen = openKeys.includes(key);\n let next: string[];\n if (isOpen) {\n next = openKeys.filter((k) => k !== key);\n } else {\n next = multiple ? [...openKeys, key] : [key];\n }\n if (controlledKeys === undefined) setInternalKeys(next);\n onChange?.(next);\n };\n\n return (\n <Root ref={ref} $variant={variant} {...props}>\n {items.map((item) => {\n const isOpen = openKeys.includes(item.key);\n const panelId = `accordion-panel-${item.key}`;\n const triggerId = `accordion-trigger-${item.key}`;\n\n return (\n <Item key={item.key} $variant={variant} $disabled={Boolean(item.disabled)}>\n <Trigger\n id={triggerId}\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={panelId}\n $open={isOpen}\n $disabled={Boolean(item.disabled)}\n disabled={item.disabled}\n onClick={() => toggle(item.key, item.disabled)}\n >\n {item.header}\n <ChevronIcon $open={isOpen} aria-hidden=\"true\" />\n </Trigger>\n <PanelWrap $open={isOpen} id={panelId} role=\"region\" aria-labelledby={triggerId}>\n <PanelInner>\n <PanelContent>{item.content}</PanelContent>\n </PanelInner>\n </PanelWrap>\n </Item>\n );\n })}\n </Root>\n );\n },\n);\n\nAccordion.displayName = 'Accordion';\n\nexport const accordionVariants: AccordionVariant[] = ['default', 'bordered', 'separated'];\n","import { useState, useEffect, useCallback } from 'react';\nimport { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\nimport type { BackToTopProps, BackToTopVariant, BackToTopPosition } from '@/components';\n\nconst fadeIn = keyframes`from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}`;\nconst fadeOut = keyframes`from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0.5rem)}`;\n\nconst POSITION_MAP: Record<BackToTopPosition, object> = {\n 'bottom-right': { right: '1.5rem', bottom: '1.5rem' },\n 'bottom-left': { left: '1.5rem', bottom: '1.5rem' },\n 'bottom-center': { left: '50%', transform: 'translateX(-50%)', bottom: '1.5rem' },\n};\n\ninterface BtnProps {\n $variant: BackToTopVariant;\n $visible: boolean;\n $position: BackToTopPosition;\n}\n\nconst Btn = styled('button', {\n shouldForwardProp: (p) => !['$variant', '$visible', '$position'].includes(p as string),\n})<BtnProps>(({ theme, $variant, $visible, $position }) => {\n const variantStyles = {\n default: {\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n color: theme.palette.text.primary,\n boxShadow: theme.shadows[4],\n '&:hover': { backgroundColor: theme.palette.action.hover },\n },\n primary: {\n backgroundColor: theme.palette.primary.main,\n border: '1px solid transparent',\n color: theme.palette.primary.contrastText,\n boxShadow: theme.shadows[4],\n '&:hover': { backgroundColor: theme.palette.primary.dark },\n },\n ghost: {\n backgroundColor: 'rgba(0,0,0,0.45)',\n border: '1px solid rgba(255,255,255,0.2)',\n color: '#fff',\n backdropFilter: 'blur(6px)',\n '&:hover': { backgroundColor: 'rgba(0,0,0,0.65)' },\n },\n }[$variant];\n\n return {\n position: 'fixed',\n zIndex: 1200,\n width: '2.75rem',\n height: '2.75rem',\n borderRadius: '50%',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 150ms ease, box-shadow 150ms ease',\n animation: $visible ? `${fadeIn} 200ms ease forwards` : `${fadeOut} 200ms ease forwards`,\n pointerEvents: $visible ? 'auto' : 'none',\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '3px',\n },\n ...POSITION_MAP[$position],\n ...variantStyles,\n };\n});\n\nexport function BackToTop({\n threshold = 300,\n variant = 'default',\n position = 'bottom-right',\n label = 'Wróć na górę',\n scrollTarget,\n}: BackToTopProps) {\n const [visible, setVisible] = useState(false);\n\n const getTarget = useCallback(() => (scrollTarget ? scrollTarget() : window), [scrollTarget]);\n\n useEffect(() => {\n const target = getTarget();\n const onScroll = () => {\n const scrollY = target instanceof Window ? target.scrollY : (target as Element).scrollTop;\n setVisible(scrollY > threshold);\n };\n target.addEventListener('scroll', onScroll, { passive: true });\n return () => target.removeEventListener('scroll', onScroll);\n }, [threshold, getTarget]);\n\n const scrollToTop = () => {\n const target = getTarget();\n target.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n return (\n <Btn\n type=\"button\"\n aria-label={label}\n $variant={variant}\n $visible={visible}\n $position={position}\n onClick={scrollToTop}\n >\n <KeyboardArrowUpIcon aria-hidden=\"true\" style={{ fontSize: 18 }} />\n </Btn>\n );\n}\n\nexport const backToTopVariants: BackToTopVariant[] = ['default', 'primary', 'ghost'];\nexport const backToTopPositions: BackToTopPosition[] = [\n 'bottom-right',\n 'bottom-left',\n 'bottom-center',\n];\n","import { forwardRef, useState, useEffect, useCallback, useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { ContextMenuProps, ContextMenuItemData } from '@/components';\n\ninterface MenuProps {\n $x: number;\n $y: number;\n}\n\nconst Wrapper = styled('div')({\n position: 'relative',\n display: 'contents',\n});\n\nconst Menu = styled('div', {\n shouldForwardProp: (p) => p !== '$x' && p !== '$y',\n})<MenuProps>(({ theme, $x, $y }) => ({\n position: 'fixed',\n top: $y,\n left: $x,\n zIndex: theme.zIndex.tooltip,\n minWidth: '10rem',\n backgroundColor: theme.palette.background.paper,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n boxShadow: theme.shadows[8],\n padding: '0.25rem',\n outline: 'none',\n}));\n\nconst MenuItem = styled('button', {\n shouldForwardProp: (p) => p !== '$disabled',\n})<{ $disabled: boolean }>(({ theme, $disabled }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n width: '100%',\n padding: '0.5rem 0.75rem',\n background: 'none',\n border: 'none',\n borderRadius: '0.25rem',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n textAlign: 'left',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: $disabled ? theme.palette.text.disabled : theme.palette.text.primary,\n opacity: $disabled ? 0.6 : 1,\n transition: 'background-color 120ms ease',\n '&:hover:not(:disabled)': {\n backgroundColor: theme.palette.action.hover,\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '-1px',\n },\n}));\n\nconst MenuItemIcon = styled('span')({\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n width: '1rem',\n height: '1rem',\n});\n\nconst Separator = styled('hr')(({ theme }) => ({\n margin: '0.25rem 0',\n border: 'none',\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\ninterface MenuState {\n x: number;\n y: number;\n}\n\nconst MENU_MARGIN = 8;\n\nfunction clampToViewport(x: number, y: number, el: HTMLElement | null): MenuState {\n if (!el || typeof window === 'undefined') return { x, y };\n const { offsetWidth: w, offsetHeight: h } = el;\n return {\n x: Math.min(x, window.innerWidth - w - MENU_MARGIN),\n y: Math.min(y, window.innerHeight - h - MENU_MARGIN),\n };\n}\n\nexport const ContextMenu = forwardRef<HTMLDivElement, ContextMenuProps>(\n ({ items, children, disabled = false, ...props }, ref) => {\n const [pos, setPos] = useState<MenuState | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const close = useCallback(() => setPos(null), []);\n\n const handleContextMenu = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n e.preventDefault();\n setPos({ x: e.clientX, y: e.clientY });\n },\n [disabled],\n );\n\n useEffect(() => {\n if (!pos) return;\n\n if (menuRef.current) {\n const clamped = clampToViewport(pos.x, pos.y, menuRef.current);\n if (clamped.x !== pos.x || clamped.y !== pos.y) {\n setPos(clamped);\n }\n }\n\n const onPointerDown = (e: PointerEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n close();\n }\n };\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') close();\n };\n const onScroll = () => close();\n\n document.addEventListener('pointerdown', onPointerDown);\n document.addEventListener('keydown', onKeyDown);\n document.addEventListener('scroll', onScroll, { capture: true });\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown);\n document.removeEventListener('keydown', onKeyDown);\n document.removeEventListener('scroll', onScroll, { capture: true });\n };\n }, [pos, close]);\n\n const handleItemClick = (item: ContextMenuItemData) => {\n if (item.disabled) return;\n item.onClick?.();\n close();\n };\n\n return (\n <Wrapper ref={ref} onContextMenu={handleContextMenu} {...props}>\n {children}\n {pos && (\n <Menu\n ref={menuRef}\n role=\"menu\"\n aria-label=\"Context menu\"\n tabIndex={-1}\n $x={pos.x}\n $y={pos.y}\n >\n {items.map((item) =>\n item.separator ? (\n <Separator key={item.key} role=\"separator\" />\n ) : (\n <MenuItem\n key={item.key}\n role=\"menuitem\"\n type=\"button\"\n disabled={item.disabled}\n $disabled={Boolean(item.disabled)}\n onClick={() => handleItemClick(item)}\n >\n {item.icon && <MenuItemIcon aria-hidden=\"true\">{item.icon}</MenuItemIcon>}\n {item.label}\n </MenuItem>\n ),\n )}\n </Menu>\n )}\n </Wrapper>\n );\n },\n);\n\nContextMenu.displayName = 'ContextMenu';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { ListProps, ListSize, ListVariant } from './List.types';\n\ninterface RootProps { $variant: ListVariant; }\ninterface ItemProps { $size: ListSize; $variant: ListVariant; $clickable: boolean; $disabled: boolean; }\n\nconst PADDING: Record<ListSize, string> = {\n sm: '0.5rem 0.75rem',\n md: '0.75rem 1rem',\n lg: '1rem 1.25rem',\n};\n\nconst FONT_SIZE: Record<ListSize, string> = {\n sm: '0.875rem',\n md: '0.9375rem',\n lg: '1rem',\n};\n\nconst Root = styled('ul', {\n shouldForwardProp: (p) => p !== '$variant',\n})<RootProps>(({ theme, $variant }) => ({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n width: '100%',\n ...($variant === 'bordered' && {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n overflow: 'hidden',\n }),\n ...($variant === 'separated' && {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.375rem',\n }),\n}));\n\nconst Item = styled('li', {\n shouldForwardProp: (p) => !['$size', '$variant', '$clickable', '$disabled'].includes(p as string),\n})<ItemProps>(({ theme, $size, $variant, $clickable, $disabled }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n padding: PADDING[$size],\n opacity: $disabled ? 0.5 : 1,\n cursor: $clickable && !$disabled ? 'pointer' : 'default',\n transition: 'background-color 150ms ease',\n\n ...($variant === 'default' && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:last-of-type': { borderBottom: 'none' },\n }),\n ...($variant === 'bordered' && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n '&:last-of-type': { borderBottom: 'none' },\n }),\n ...($variant === 'separated' && {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n }),\n\n ...($clickable && !$disabled && {\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '&:active': {\n backgroundColor: theme.palette.action.selected,\n },\n }),\n}));\n\nconst PrefixIconWrap = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: theme.palette.text.secondary,\n '& svg': { width: '1.25rem', height: '1.25rem' },\n}));\n\nconst TextWrap = styled('span')({\n flex: 1,\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '0.125rem',\n});\n\nconst Primary = styled('span', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: ListSize }>(({ theme, $size }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: FONT_SIZE[$size],\n fontWeight: 500,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst Secondary = styled('span', {\n shouldForwardProp: (p) => p !== '$size',\n})<{ $size: ListSize }>(({ theme, $size }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: $size === 'sm' ? '0.75rem' : '0.8125rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.4,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}));\n\nconst SuffixWrap = styled('span')({\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n});\n\nexport const List = forwardRef<HTMLUListElement, ListProps>(\n ({ items, size = 'md', variant = 'default', dividers = true, ...props }, ref) => {\n const effectiveVariant = !dividers && variant === 'default' ? 'default' : variant;\n\n return (\n <Root ref={ref} $variant={effectiveVariant} role=\"list\" {...props}>\n {items.map((item) => (\n <Item\n key={item.key}\n role=\"listitem\"\n $size={size}\n $variant={effectiveVariant}\n $clickable={Boolean(item.onClick)}\n $disabled={Boolean(item.disabled)}\n onClick={!item.disabled ? item.onClick : undefined}\n style={!dividers && effectiveVariant === 'default' ? { borderBottom: 'none' } : undefined}\n >\n {item.prefixIcon && <PrefixIconWrap aria-hidden=\"true\">{item.prefixIcon}</PrefixIconWrap>}\n <TextWrap>\n <Primary $size={size}>{item.primary}</Primary>\n {item.secondary && <Secondary $size={size}>{item.secondary}</Secondary>}\n </TextWrap>\n {item.suffixAction && <SuffixWrap>{item.suffixAction}</SuffixWrap>}\n </Item>\n ))}\n </Root>\n );\n },\n);\n\nList.displayName = 'List';\n\nexport const listVariants: ListVariant[] = ['default', 'bordered', 'separated'];\nexport const listSizes: ListSize[] = ['sm', 'md', 'lg'];\n","import { forwardRef } from 'react';\nimport { styled, keyframes } from '@mui/material/styles';\nimport type { MarqueeProps, MarqueeDirection, MarqueeSpeed } from '@/components';\n\nconst scrollLeft = keyframes`\n from { transform: translateX(0); }\n to { transform: translateX(-50%); }\n`;\n\nconst scrollRight = keyframes`\n from { transform: translateX(-50%); }\n to { transform: translateX(0); }\n`;\n\nconst speedDuration: Record<MarqueeSpeed, string> = {\n slow: '40s',\n normal: '20s',\n fast: '10s',\n};\n\ninterface TrackProps {\n $direction: MarqueeDirection;\n $speed: MarqueeSpeed;\n $pauseOnHover: boolean;\n $gap: string;\n}\n\nconst Root = styled('div')({\n overflow: 'hidden',\n width: '100%',\n userSelect: 'none',\n});\n\nconst Track = styled('div', {\n shouldForwardProp: (p) =>\n !['$direction', '$speed', '$pauseOnHover', '$gap'].includes(p as string),\n})<TrackProps>(({ $direction, $speed, $pauseOnHover, $gap }) => ({\n display: 'flex',\n width: 'max-content',\n gap: $gap,\n animation: `${$direction === 'left' ? scrollLeft : scrollRight} ${speedDuration[$speed]} linear infinite`,\n ...($pauseOnHover && {\n '&:hover': { animationPlayState: 'paused' },\n }),\n}));\n\nconst ItemWrap = styled('div', {\n shouldForwardProp: (p) => p !== '$gap',\n})<{ $gap: string }>(({ $gap }) => ({\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n gap: $gap,\n}));\n\nexport const Marquee = forwardRef<HTMLDivElement, MarqueeProps>(\n (\n { children, direction = 'left', speed = 'normal', pauseOnHover = true, gap = '2rem', ...props },\n ref,\n ) => {\n const gapValue = typeof gap === 'number' ? `${gap}px` : gap;\n\n const content = (\n <>\n <ItemWrap $gap={gapValue} aria-hidden=\"false\">\n {children}\n </ItemWrap>\n <ItemWrap $gap={gapValue} aria-hidden=\"true\">\n {children}\n </ItemWrap>\n </>\n );\n\n return (\n <Root ref={ref} {...props}>\n <Track $direction={direction} $speed={speed} $pauseOnHover={pauseOnHover} $gap={gapValue}>\n {content}\n </Track>\n </Root>\n );\n },\n);\n\nMarquee.displayName = 'Marquee';\n\nexport const marqueeDirections: MarqueeDirection[] = ['left', 'right'];\nexport const marqueeSpeeds: MarqueeSpeed[] = ['slow', 'normal', 'fast'];\n","import { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport CloseIcon from '@mui/icons-material/Close';\nimport type { ModalProps, ModalSize } from '@/components';\n\nconst fadeIn = keyframes`from { opacity: 0; } to { opacity: 1; }`;\nconst slideUp = keyframes`from { opacity: 0; transform: translateY(1rem) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); }`;\n\nconst SIZE_MAP: Record<ModalSize, string> = {\n sm: '24rem',\n md: '32rem',\n lg: '48rem',\n xl: '64rem',\n full: '100%',\n};\n\nconst Backdrop = styled('div')(({ theme }) => ({\n position: 'fixed',\n inset: 0,\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(0,0,0,0.7)' : 'rgba(0,0,0,0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '1rem',\n zIndex: 1300,\n animation: `${fadeIn} 200ms ease`,\n}));\n\nconst Dialog = styled('div', {\n shouldForwardProp: (prop) => prop !== '$size',\n})<{ $size: ModalSize }>(({ theme, $size }) => ({\n position: 'relative',\n backgroundColor: theme.palette.background.paper,\n borderRadius: '0.75rem',\n border: `1px solid ${theme.palette.divider}`,\n boxShadow: theme.shadows[8],\n width: '100%',\n maxWidth: SIZE_MAP[$size],\n maxHeight: 'calc(100vh - 2rem)',\n display: 'flex',\n flexDirection: 'column',\n animation: `${slideUp} 200ms ease`,\n ...($size === 'full' && {\n maxHeight: '100vh',\n borderRadius: 0,\n margin: 0,\n }),\n}));\n\nconst Header = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1.25rem 1.5rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n}));\n\nconst Title = styled('h2')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1.125rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n}));\n\nconst CloseButton = styled('button')(({ theme }) => ({\n appearance: 'none',\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '2rem',\n borderRadius: '0.375rem',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n transition: 'background-color 150ms ease, color 150ms ease',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n color: theme.palette.text.primary,\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst Body = styled('div')(({ theme }) => ({\n padding: '1.5rem',\n overflowY: 'auto',\n flex: 1,\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n}));\n\nconst Footer = styled('div')(({ theme }) => ({\n padding: '1rem 1.5rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '0.75rem',\n flexShrink: 0,\n}));\n\nexport function Modal({\n open,\n onClose,\n title,\n children,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n hideCloseButton = false,\n}: ModalProps) {\n const dialogRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const prev = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = prev;\n };\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handleKey);\n return () => document.removeEventListener('keydown', handleKey);\n }, [open, onClose]);\n\n useEffect(() => {\n if (open) dialogRef.current?.focus();\n }, [open]);\n\n if (!open) return null;\n\n return createPortal(\n <Backdrop aria-hidden=\"false\" onClick={closeOnBackdrop ? onClose : undefined}>\n <Dialog\n ref={dialogRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? 'modal-title' : undefined}\n $size={size}\n tabIndex={-1}\n onClick={(e) => e.stopPropagation()}\n >\n {(title || !hideCloseButton) && (\n <Header>\n {title ? <Title id=\"modal-title\">{title}</Title> : <span />}\n {!hideCloseButton && (\n <CloseButton aria-label=\"Zamknij\" onClick={onClose}>\n <CloseIcon aria-hidden style={{ fontSize: 16 }} />\n </CloseButton>\n )}\n </Header>\n )}\n {children && <Body>{children}</Body>}\n {footer && <Footer>{footer}</Footer>}\n </Dialog>\n </Backdrop>,\n document.body,\n );\n}\n\nexport const modalSizes: ModalSize[] = ['sm', 'md', 'lg', 'xl', 'full'];\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport type { TabsProps, TabsVariant } from './Tabs.types';\n\ninterface TabListProps { $variant: TabsVariant; }\ninterface TabButtonProps { $variant: TabsVariant; $active: boolean; $disabled: boolean; }\n\nconst Root = styled('div')({ width: '100%' });\n\nconst TabList = styled('div', {\n shouldForwardProp: (prop) => prop !== '$variant',\n})<TabListProps>(({ theme, $variant }) => ({\n display: 'flex',\n gap: $variant === 'pills' ? '0.25rem' : 0,\n ...($variant === 'underline' && {\n borderBottom: `2px solid ${theme.palette.divider}`,\n }),\n ...($variant === 'bordered' && {\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '0.5rem',\n padding: '0.25rem',\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.04)',\n }),\n ...($variant === 'pills' && {\n padding: '0',\n }),\n}));\n\nconst TabButton = styled('button', {\n shouldForwardProp: (prop) => !['$variant', '$active', '$disabled'].includes(prop as string),\n})<TabButtonProps>(({ theme, $variant, $active, $disabled }) => ({\n appearance: 'none',\n border: 'none',\n background: 'none',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n fontWeight: $active ? 600 : 500,\n lineHeight: 1.5,\n padding: '0.625rem 1rem',\n color: $disabled\n ? theme.palette.action.disabled\n : $active\n ? theme.palette.primary.main\n : theme.palette.text.secondary,\n transition: 'color 150ms ease, background-color 150ms ease',\n whiteSpace: 'nowrap',\n outline: 'none',\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: '4px',\n },\n\n ...($variant === 'underline' && {\n borderBottom: `2px solid ${$active ? theme.palette.primary.main : 'transparent'}`,\n marginBottom: '-2px',\n borderRadius: 0,\n '&:hover:not(:disabled)': {\n color: $active ? theme.palette.primary.main : theme.palette.text.primary,\n },\n }),\n\n ...($variant === 'pills' && {\n borderRadius: '0.5rem',\n backgroundColor: $active\n ? theme.palette.primary.main\n : 'transparent',\n color: $active\n ? theme.palette.primary.contrastText\n : $disabled\n ? theme.palette.action.disabled\n : theme.palette.text.secondary,\n '&:hover:not(:disabled)': {\n backgroundColor: $active\n ? theme.palette.primary.main\n : 'rgba(0,0,0,0.06)',\n },\n }),\n\n ...($variant === 'bordered' && {\n borderRadius: '0.375rem',\n backgroundColor: $active\n ? theme.palette.background.paper\n : 'transparent',\n boxShadow: $active ? theme.shadows[1] : 'none',\n color: $active ? theme.palette.text.primary : theme.palette.text.secondary,\n '&:hover:not(:disabled)': {\n color: theme.palette.text.primary,\n },\n }),\n}));\n\nconst Panel = styled('div')(({ theme }) => ({\n paddingTop: '1.25rem',\n fontFamily: theme.typography.fontFamily,\n color: theme.palette.text.primary,\n}));\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(\n ({ tabs, defaultActiveKey, activeKey: controlledKey, onChange, variant = 'underline', ...props }, ref) => {\n const [internalKey, setInternalKey] = useState(defaultActiveKey ?? tabs[0]?.key ?? '');\n const activeKey = controlledKey ?? internalKey;\n\n const handleSelect = (key: string) => {\n if (controlledKey === undefined) setInternalKey(key);\n onChange?.(key);\n };\n\n const activeTab = tabs.find((t) => t.key === activeKey);\n\n return (\n <Root ref={ref} {...props}>\n <TabList role=\"tablist\" $variant={variant}>\n {tabs.map((tab) => (\n <TabButton\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.key === activeKey}\n aria-controls={`tabpanel-${tab.key}`}\n id={`tab-${tab.key}`}\n $variant={variant}\n $active={tab.key === activeKey}\n $disabled={Boolean(tab.disabled)}\n disabled={tab.disabled}\n onClick={() => !tab.disabled && handleSelect(tab.key)}\n >\n {tab.label}\n </TabButton>\n ))}\n </TabList>\n {activeTab && (\n <Panel\n role=\"tabpanel\"\n id={`tabpanel-${activeTab.key}`}\n aria-labelledby={`tab-${activeTab.key}`}\n >\n {activeTab.content}\n </Panel>\n )}\n </Root>\n );\n },\n);\n\nTabs.displayName = 'Tabs';\n\nexport const tabsVariants: TabsVariant[] = ['underline', 'pills', 'bordered'];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport { QuantitySelector } from '@/components/molecules/commerce/QuantitySelector/QuantitySelector';\nimport type { CartDrawerProps } from '@/components';\n\nconst Overlay = styled('div')<{ $open: boolean }>(({ $open }) => ({\n position: 'fixed',\n inset: 0,\n display: $open ? 'block' : 'none',\n backgroundColor: 'rgba(0,0,0,0.36)',\n zIndex: 1200,\n}));\n\nconst Panel = styled('aside')(({ theme }) => ({\n position: 'absolute',\n top: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n width: 'min(100vw, 28rem)',\n height: '100%',\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Header = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '1rem 1.25rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n}));\n\nconst Title = styled('h2')(({ theme }) => ({\n margin: 0,\n fontSize: '1.125rem',\n color: theme.palette.text.primary,\n}));\n\nconst IconButton = styled('button')(({ theme }) => ({\n border: 0,\n background: 'transparent',\n color: theme.palette.text.primary,\n cursor: 'pointer',\n fontSize: '1.5rem',\n}));\n\nconst Items = styled('div')({\n display: 'grid',\n gap: '1rem',\n padding: '1rem 1.25rem',\n overflow: 'auto',\n});\n\nconst Item = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '4.5rem 1fr',\n gap: '0.875rem',\n paddingBottom: '1rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n}));\n\nconst ItemImage = styled('img')(({ theme }) => ({\n width: '4.5rem',\n height: '4.5rem',\n borderRadius: theme.shape.borderRadius,\n objectFit: 'cover',\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst PlaceholderImage = styled('div')(({ theme }) => ({\n width: '4.5rem',\n height: '4.5rem',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst ItemInfo = styled('div')({ display: 'grid', gap: '0.5rem' });\n\nconst ItemName = styled('p')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.primary,\n fontWeight: 700,\n}));\n\nconst ItemMeta = styled('p')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.secondary,\n fontSize: '0.875rem',\n}));\n\nconst Row = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '0.75rem',\n});\n\nconst RemoveButton = styled('button')(({ theme }) => ({\n border: 0,\n background: 'transparent',\n color: theme.palette.error.main,\n cursor: 'pointer',\n padding: 0,\n fontSize: '0.875rem',\n}));\n\nconst Footer = styled('div')(({ theme }) => ({\n display: 'grid',\n gap: '1rem',\n marginTop: 'auto',\n padding: '1rem 1.25rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nexport const CartDrawer = forwardRef<HTMLDivElement, CartDrawerProps>(\n (\n {\n open,\n title = 'Koszyk',\n items,\n subtotal,\n checkoutLabel = 'Przejdź do kasy',\n closeLabel = 'Zamknij koszyk',\n onClose,\n onCheckout,\n onQuantityChange,\n onRemove,\n ...props\n },\n ref,\n ) => (\n <Overlay $open={open}>\n <Panel ref={ref} aria-hidden={!open} aria-label={title} {...props}>\n <Header>\n <Title>{title}</Title>\n <IconButton type=\"button\" aria-label={closeLabel} onClick={onClose}>\n ×\n </IconButton>\n </Header>\n <Items>\n {items.map((item) => (\n <Item key={item.id}>\n {item.imageUrl ? (\n <ItemImage src={item.imageUrl} alt={item.imageAlt ?? item.name} />\n ) : (\n <PlaceholderImage />\n )}\n <ItemInfo>\n <Row>\n <ItemName>{item.name}</ItemName>\n <ItemMeta>{item.price}</ItemMeta>\n </Row>\n <Row>\n <QuantitySelector\n value={item.quantity}\n min={1}\n onChange={(quantity) => onQuantityChange?.(item.id, quantity)}\n />\n <RemoveButton type=\"button\" onClick={() => onRemove?.(item.id)}>\n Usuń\n </RemoveButton>\n </Row>\n </ItemInfo>\n </Item>\n ))}\n </Items>\n <Footer>\n <Row>\n <strong>Suma</strong>\n <strong>{subtotal}</strong>\n </Row>\n <Button fullWidth onClick={onCheckout}>\n {checkoutLabel}\n </Button>\n </Footer>\n </Panel>\n </Overlay>\n ),\n);\n\nCartDrawer.displayName = 'CartDrawer';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport type { FilterOption, FilterSidebarProps } from '@/components';\n\nconst Root = styled('aside')(({ theme }) => ({\n display: 'grid',\n gap: '1.5rem',\n width: '100%',\n maxWidth: '20rem',\n padding: '1.25rem',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n}));\n\nconst Header = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '1rem',\n});\n\nconst Title = styled('h2')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.primary,\n fontSize: '1.125rem',\n}));\n\nconst Group = styled('fieldset')(({ theme }) => ({\n display: 'grid',\n gap: '0.75rem',\n padding: 0,\n margin: 0,\n border: 0,\n color: theme.palette.text.primary,\n}));\n\nconst Legend = styled('legend')({\n padding: 0,\n marginBottom: '0.75rem',\n fontWeight: 800,\n});\n\nconst OptionLabel = styled('label')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '0.75rem',\n color: theme.palette.text.secondary,\n fontSize: '0.875rem',\n}));\n\nconst OptionText = styled('span')({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.5rem',\n});\n\nconst Inputs = styled('div')({\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: '0.75rem',\n});\n\nconst NumberInput = styled('input')(({ theme }) => ({\n minWidth: 0,\n width: '100%',\n padding: '0.5rem',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n}));\n\nfunction renderOptions(\n options: FilterOption[],\n selected: string[],\n onToggle: ((value: string) => void) | undefined,\n) {\n return options.map((option) => (\n <OptionLabel key={option.value}>\n <OptionText>\n <input\n type=\"checkbox\"\n checked={selected.includes(option.value)}\n onChange={() => onToggle?.(option.value)}\n />\n {option.label}\n </OptionText>\n {option.count !== undefined && <span>{option.count}</span>}\n </OptionLabel>\n ));\n}\n\nexport const FilterSidebar = forwardRef<HTMLDivElement, FilterSidebarProps>(\n (\n {\n categories = [],\n colors = [],\n sizes = [],\n selectedCategories = [],\n selectedColors = [],\n selectedSizes = [],\n priceRange,\n onToggleCategory,\n onToggleColor,\n onToggleSize,\n onPriceRangeChange,\n onClear,\n ...props\n },\n ref,\n ) => (\n <Root ref={ref} aria-label=\"Filtry produktów\" {...props}>\n <Header>\n <Title>Filtry</Title>\n {onClear && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onClear}>\n Wyczyść\n </Button>\n )}\n </Header>\n {priceRange && (\n <Group>\n <Legend>Cena</Legend>\n <Inputs>\n <NumberInput\n aria-label=\"Cena minimalna\"\n type=\"number\"\n value={priceRange.min}\n onChange={(event) =>\n onPriceRangeChange?.({ ...priceRange, min: Number(event.target.value) })\n }\n />\n <NumberInput\n aria-label=\"Cena maksymalna\"\n type=\"number\"\n value={priceRange.max}\n onChange={(event) =>\n onPriceRangeChange?.({ ...priceRange, max: Number(event.target.value) })\n }\n />\n </Inputs>\n </Group>\n )}\n {categories.length > 0 && (\n <Group>\n <Legend>Kategorie</Legend>\n {renderOptions(categories, selectedCategories, onToggleCategory)}\n </Group>\n )}\n {colors.length > 0 && (\n <Group>\n <Legend>Kolory</Legend>\n {renderOptions(colors, selectedColors, onToggleColor)}\n </Group>\n )}\n {sizes.length > 0 && (\n <Group>\n <Legend>Rozmiary</Legend>\n {renderOptions(sizes, selectedSizes, onToggleSize)}\n </Group>\n )}\n </Root>\n ),\n);\n\nFilterSidebar.displayName = 'FilterSidebar';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport type { OrderSummaryProps } from '@/components';\n\nconst Root = styled(Card)({ display: 'grid', gap: '1rem' });\n\nconst Title = styled('h2')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1.125rem',\n fontWeight: 800,\n color: theme.palette.text.primary,\n}));\n\nconst Rows = styled('dl')({ display: 'grid', gap: '0.75rem', margin: 0 });\n\nconst SectionTitle = styled('h3')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 800,\n color: theme.palette.text.primary,\n}));\n\nconst ItemList = styled('ul')({\n display: 'grid',\n gap: '0.875rem',\n padding: 0,\n margin: 0,\n listStyle: 'none',\n});\n\nconst Item = styled('li')({\n display: 'grid',\n gridTemplateColumns: '3.5rem 1fr auto',\n alignItems: 'center',\n gap: '0.75rem',\n});\n\nconst ItemImage = styled('img')(({ theme }) => ({\n width: '3.5rem',\n height: '3.5rem',\n borderRadius: theme.shape.borderRadius,\n objectFit: 'cover',\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst ItemImagePlaceholder = styled('div')(({ theme }) => ({\n width: '3.5rem',\n height: '3.5rem',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst ItemInfo = styled('div')({\n minWidth: 0,\n});\n\nconst ItemName = styled('p')(({ theme }) => ({\n margin: 0,\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 700,\n lineHeight: 1.4,\n}));\n\nconst ItemMeta = styled('p')(({ theme }) => ({\n margin: '0.25rem 0 0',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n lineHeight: 1.4,\n}));\n\nconst ItemPrice = styled('span')(({ theme }) => ({\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 800,\n whiteSpace: 'nowrap',\n}));\n\nconst Row = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n gap: '1rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n '& dt, & dd': { margin: 0 },\n}));\n\nconst Divider = styled('hr')(({ theme }) => ({\n width: '100%',\n border: 0,\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nconst TotalRow = styled(Row)(({ theme }) => ({\n color: theme.palette.text.primary,\n fontSize: '1rem',\n fontWeight: 800,\n}));\n\nexport const OrderSummary = forwardRef<HTMLDivElement, OrderSummaryProps>(\n (\n {\n title = 'Podsumowanie zamówienia',\n items = [],\n itemsTitle = 'Produkty w koszyku',\n subtotal,\n shipping,\n tax,\n discount,\n total,\n lines = [],\n ctaLabel = 'Przejdź do kasy',\n onCheckout,\n ...props\n },\n ref,\n ) => (\n <Root ref={ref} variant=\"default\" padding=\"lg\" rounded=\"lg\" {...props}>\n <Title>{title}</Title>\n {items.length > 0 && (\n <>\n <SectionTitle>{itemsTitle}</SectionTitle>\n <ItemList>\n {items.map((item) => (\n <Item key={item.id}>\n {item.imageUrl ? (\n <ItemImage src={item.imageUrl} alt={item.imageAlt ?? String(item.name)} />\n ) : (\n <ItemImagePlaceholder aria-hidden=\"true\" />\n )}\n <ItemInfo>\n <ItemName>{item.name}</ItemName>\n {(item.quantity !== undefined || item.meta) && (\n <ItemMeta>\n {item.quantity !== undefined && <>Ilość: {item.quantity}</>}\n {item.quantity !== undefined && item.meta && ' · '}\n {item.meta}\n </ItemMeta>\n )}\n </ItemInfo>\n <ItemPrice>{item.price}</ItemPrice>\n </Item>\n ))}\n </ItemList>\n <Divider />\n </>\n )}\n <Rows>\n <Row>\n <dt>Wartość produktów</dt>\n <dd>{subtotal}</dd>\n </Row>\n {shipping !== undefined && (\n <Row>\n <dt>Dostawa</dt>\n <dd>{shipping}</dd>\n </Row>\n )}\n {tax !== undefined && (\n <Row>\n <dt>Podatek</dt>\n <dd>{tax}</dd>\n </Row>\n )}\n {discount !== undefined && (\n <Row>\n <dt>Rabat</dt>\n <dd>{discount}</dd>\n </Row>\n )}\n {lines.map((line, index) => (\n <Row key={index}>\n <dt>{line.label}</dt>\n <dd>{line.value}</dd>\n </Row>\n ))}\n </Rows>\n <Divider />\n <Rows>\n <TotalRow>\n <dt>Razem</dt>\n <dd>{total}</dd>\n </TotalRow>\n </Rows>\n <Button fullWidth onClick={onCheckout}>\n {ctaLabel}\n </Button>\n </Root>\n ),\n);\n\nOrderSummary.displayName = 'OrderSummary';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { FaqItem } from '@/components/molecules/content/FaqItem/FaqItem';\nimport type { FaqSectionProps } from '@/components';\n\nconst List = styled('div')<{ $hasHeading: boolean }>(({ $hasHeading }) => ({\n marginTop: $hasHeading ? '2.5rem' : 0,\n}));\n\nexport const FaqSection = forwardRef<HTMLElement, FaqSectionProps>(\n (\n {\n title = 'Najczęściej zadawane pytania',\n description,\n items,\n headingAlign = 'center',\n maxWidth = 'xl',\n defaultOpenIndex,\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && (\n <SectionHeading title={title ?? ''} description={description} align={headingAlign} />\n )}\n <List $hasHeading={hasHeading}>\n {items.map((item, index) => (\n <FaqItem\n key={`${item.question}-${index}`}\n item={item}\n defaultOpen={index === defaultOpenIndex}\n />\n ))}\n </List>\n </Container>\n </Section>\n );\n },\n);\n\nFaqSection.displayName = 'FaqSection';\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { FeatureItem } from '@/components/molecules/content/FeatureItem/FeatureItem';\nimport type { FeatureGridColumns, FeatureGridProps } from '@/components';\n\ninterface GridProps {\n $columns: FeatureGridColumns;\n $hasHeading: boolean;\n $iconLeft: boolean;\n}\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$hasHeading', '$iconLeft'].includes(prop as string),\n})<GridProps>(({ theme, $columns, $hasHeading, $iconLeft }) => ({\n display: 'grid',\n gap: $iconLeft ? '2rem' : '1.5rem',\n marginTop: $hasHeading ? '2.5rem' : 0,\n gridTemplateColumns: '1fr',\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`,\n },\n}));\n\nexport const FeatureGrid = forwardRef<HTMLElement, FeatureGridProps>(\n (\n {\n title,\n description,\n features,\n headingAlign = 'center',\n columns = 3,\n cardVariant = 'default',\n itemLayout = 'card',\n maxWidth = 'xl',\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && (\n <SectionHeading title={title ?? ''} description={description} align={headingAlign} />\n )}\n <Grid $columns={columns} $hasHeading={hasHeading} $iconLeft={itemLayout === 'icon-left'}>\n {features.map((feature, index) => (\n <FeatureItem\n key={`${feature.title}-${index}`}\n feature={feature}\n cardVariant={cardVariant}\n layout={itemLayout}\n />\n ))}\n </Grid>\n </Container>\n </Section>\n );\n },\n);\n\nFeatureGrid.displayName = 'FeatureGrid';\n\nexport const featureGridColumns: FeatureGridColumns[] = [2, 3, 4];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { LogoTile } from '@/components/molecules/content/LogoTile/LogoTile';\nimport type { LogoCloudColumns, LogoCloudProps, LogoCloudVariant } from '@/components';\n\ninterface GridProps {\n $columns: LogoCloudColumns;\n $hasHeading: boolean;\n}\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$hasHeading'].includes(prop as string),\n})<GridProps>(({ theme, $columns, $hasHeading }) => ({\n display: 'grid',\n alignItems: 'stretch',\n gap: '0.75rem',\n marginTop: $hasHeading ? '2.5rem' : 0,\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: 'repeat(3, minmax(0, 1fr))',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`,\n },\n}));\n\nexport const LogoCloud = forwardRef<HTMLElement, LogoCloudProps>(\n (\n {\n title = 'Zaufali nam',\n description,\n logos,\n headingAlign = 'center',\n columns = 5,\n variant = 'plain',\n monochrome = true,\n logoHeight = 40,\n maxWidth = 'xl',\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && title && (\n <SectionHeading title={title} description={description} align={headingAlign} />\n )}\n\n {hasHeading && !title && description && (\n <SectionHeading title={description} align={headingAlign} as=\"h2\" />\n )}\n\n <Grid $columns={columns} $hasHeading={hasHeading}>\n {logos.map((logo) => {\n const key = `${logo.name}-${logo.href ?? logo.logoUrl ?? 'text'}`;\n return (\n <LogoTile\n key={key}\n logo={logo}\n variant={variant}\n monochrome={monochrome}\n logoHeight={logoHeight}\n />\n );\n })}\n </Grid>\n </Container>\n </Section>\n );\n },\n);\n\nLogoCloud.displayName = 'LogoCloud';\n\nexport const Partners = LogoCloud;\nexport const logoCloudColumns: LogoCloudColumns[] = [3, 4, 5, 6];\nexport const logoCloudVariants: LogoCloudVariant[] = ['plain', 'boxed'];\n","import { forwardRef, useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Button } from '@/components/atoms/buttons/Button/Button';\nimport { Card } from '@/components/atoms/cards/Card/Card';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport type { NewsletterSectionProps } from '@/components';\n\nconst CenteredInner = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '2rem',\n});\n\nconst SplitInner = styled('div')(({ theme }) => ({\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '2.5rem',\n [theme.breakpoints.up('md')]: {\n gridTemplateColumns: '1fr 1fr',\n alignItems: 'center',\n },\n}));\n\nconst Form = styled('form')<{ $centered: boolean }>(({ $centered }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.75rem',\n width: '100%',\n maxWidth: $centered ? '28rem' : '100%',\n}));\n\nconst InputRow = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem',\n [theme.breakpoints.up('sm')]: {\n flexDirection: 'row',\n },\n}));\n\nconst EmailInput = styled('input')(({ theme }) => ({\n flex: 1,\n padding: '0.625rem 1rem',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.primary,\n outline: 'none',\n transition: 'border-color 150ms ease, box-shadow 150ms ease',\n '&::placeholder': {\n color: theme.palette.text.disabled,\n },\n '&:focus': {\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 3px ${theme.palette.primary.main}33`,\n },\n}));\n\nconst PrivacyNote = styled('p')(({ theme }) => ({\n margin: 0,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n textAlign: 'center',\n}));\n\nconst SuccessMessage = styled('p')(({ theme }) => ({\n margin: 0,\n fontSize: '0.9375rem',\n fontWeight: 600,\n color: theme.palette.success?.main ?? '#22c55e',\n fontFamily: theme.typography.fontFamily,\n textAlign: 'center',\n}));\n\nexport const NewsletterSection = forwardRef<HTMLElement, NewsletterSectionProps>(\n (\n {\n title = 'Bądź na bieżąco',\n description = 'Zapisz się do newslettera i otrzymuj najnowsze informacje prosto na swoją skrzynkę.',\n inputPlaceholder = 'Twój adres e-mail',\n submitLabel = 'Zapisz się',\n successMessage = 'Dziękujemy! Sprawdź swoją skrzynkę e-mail.',\n privacyNote,\n headingAlign = 'center',\n layout = 'centered',\n cardVariant = 'default',\n maxWidth = 'xl',\n onSubmit,\n ...rest\n },\n ref,\n ) => {\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n if (!email) return;\n onSubmit?.(email, e);\n setSubmitted(true);\n setEmail('');\n };\n\n const isCentered = layout === 'centered';\n\n const formNode = submitted ? (\n <SuccessMessage role=\"status\">{successMessage}</SuccessMessage>\n ) : (\n <Form $centered={isCentered} onSubmit={handleSubmit} noValidate>\n <InputRow>\n <EmailInput\n type=\"email\"\n required\n placeholder={inputPlaceholder}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n aria-label={inputPlaceholder}\n />\n <Button type=\"submit\" variant=\"primary\" size=\"md\">\n {submitLabel}\n </Button>\n </InputRow>\n {privacyNote && <PrivacyNote>{privacyNote}</PrivacyNote>}\n </Form>\n );\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n <Card variant={cardVariant} padding=\"xl\" rounded=\"lg\">\n {isCentered ? (\n <CenteredInner>\n <SectionHeading\n title={title ?? ''}\n description={description}\n align={headingAlign}\n />\n {formNode}\n </CenteredInner>\n ) : (\n <SplitInner>\n <SectionHeading title={title ?? ''} description={description} align=\"left\" />\n {formNode}\n </SplitInner>\n )}\n </Card>\n </Container>\n </Section>\n );\n },\n);\n\nNewsletterSection.displayName = 'NewsletterSection';\n","import type { HTMLAttributes, FormEvent } from 'react';\nimport type { CardVariant } from '@/components/atoms/cards/Card/Card.types';\nimport type { SectionHeadingAlign } from '@/components/atoms/SectionHeading/SectionHeading.types';\nimport type { ContainerMaxWidth } from '@/components/layout/Container/Container.types';\n\nexport type NewsletterLayout = 'centered' | 'split';\n\nexport interface NewsletterSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'onSubmit'> {\n title?: string;\n description?: string;\n inputPlaceholder?: string;\n submitLabel?: string;\n successMessage?: string;\n privacyNote?: string;\n headingAlign?: SectionHeadingAlign;\n layout?: NewsletterLayout;\n cardVariant?: CardVariant;\n maxWidth?: ContainerMaxWidth;\n onSubmit?: (email: string, event: FormEvent<HTMLFormElement>) => void;\n}\n\nexport const newsletterLayouts: NewsletterLayout[] = ['centered', 'split'];\n","import { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { PricingCard } from '@/components/molecules/cards/PricingCard/PricingCard';\nimport type { PricingSectionProps } from '@/components';\n\nconst Section = styled('section')(({ theme }) => ({\n padding: '5rem 1rem',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst Inner = styled('div')({\n maxWidth: '80rem',\n marginLeft: 'auto',\n marginRight: 'auto',\n});\n\nconst Grid = styled('div')(({ theme }) => ({\n marginTop: '3rem',\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '1.5rem',\n [theme.breakpoints.up('md')]: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: 'repeat(3, 1fr)',\n },\n}));\n\nexport function PricingSection({ title, description, plans, ...props }: PricingSectionProps) {\n return (\n <Section {...props}>\n <Inner>\n {(title || description) && (\n <SectionHeading title={title ?? ''} description={description} align=\"center\" />\n )}\n <Grid>\n {plans.map((plan, i) => (\n <PricingCard key={i} {...plan} />\n ))}\n </Grid>\n </Inner>\n </Section>\n );\n}\n","import { Fragment } from 'react';\nimport { styled } from '@mui/material/styles';\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { ProcessStep } from '@/components/molecules/content/ProcessStep/ProcessStep';\nimport type { ProcessSectionProps } from '@/components';\n\nconst Section = styled('section')(({ theme }) => ({\n padding: '5rem 1rem',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst Inner = styled('div')({\n maxWidth: '80rem',\n marginLeft: 'auto',\n marginRight: 'auto',\n});\n\nconst StepsRow = styled('div')(({ theme }) => ({\n marginTop: '3rem',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '2.5rem',\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n },\n}));\n\nconst StepWrapper = styled('div')({\n flex: 1,\n maxWidth: '240px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n});\n\nconst Connector = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.up('md')]: {\n display: 'flex',\n alignItems: 'center',\n paddingBottom: '3.5rem',\n color: theme.palette.divider,\n flexShrink: 0,\n },\n}));\n\nfunction ArrowIcon() {\n return <ArrowForwardIcon aria-hidden=\"true\" style={{ fontSize: 24 }} />;\n}\n\nexport function ProcessSection({ title, description, steps, ...props }: ProcessSectionProps) {\n return (\n <Section {...props}>\n <Inner>\n {(title || description) && (\n <SectionHeading title={title ?? ''} description={description} align=\"center\" />\n )}\n <StepsRow>\n {steps.map((step, i) => (\n <Fragment key={i}>\n <StepWrapper>\n <ProcessStep\n step={i + 1}\n title={step.title}\n description={step.description}\n icon={step.icon}\n />\n </StepWrapper>\n {i < steps.length - 1 && (\n <Connector aria-hidden=\"true\">\n <ArrowIcon />\n </Connector>\n )}\n </Fragment>\n ))}\n </StepsRow>\n </Inner>\n </Section>\n );\n}\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { StatCard } from '@/components/molecules/cards/StatCard/StatCard';\nimport type { StatsSectionColumns, StatsSectionProps } from '@/components';\n\ninterface GridProps {\n $columns: StatsSectionColumns;\n $hasHeading: boolean;\n}\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$hasHeading'].includes(prop as string),\n})<GridProps>(({ theme, $columns, $hasHeading }) => ({\n display: 'grid',\n gap: '1.5rem',\n marginTop: $hasHeading ? '2.5rem' : 0,\n gridTemplateColumns: '1fr',\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`,\n },\n}));\n\nexport const StatsSection = forwardRef<HTMLElement, StatsSectionProps>(\n (\n {\n title,\n description,\n stats,\n headingAlign = 'center',\n columns = 3,\n cardVariant = 'default',\n statAlign = 'center',\n maxWidth = 'xl',\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && (\n <SectionHeading title={title ?? ''} description={description} align={headingAlign} />\n )}\n <Grid $columns={columns} $hasHeading={hasHeading}>\n {stats.map((stat, index) => (\n <StatCard\n key={`${stat.label}-${index}`}\n stat={stat}\n cardVariant={cardVariant}\n align={statAlign}\n />\n ))}\n </Grid>\n </Container>\n </Section>\n );\n },\n);\n\nStatsSection.displayName = 'StatsSection';\n\nexport const statsSectionColumns: StatsSectionColumns[] = [2, 3, 4];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { TeamMemberCard } from '@/components/molecules/cards/TeamMemberCard/TeamMemberCard';\nimport type { TeamSectionColumns, TeamSectionProps } from '@/components';\n\ninterface GridProps {\n $columns: TeamSectionColumns;\n $hasHeading: boolean;\n}\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$hasHeading'].includes(prop as string),\n})<GridProps>(({ theme, $columns, $hasHeading }) => ({\n display: 'grid',\n gap: '1rem',\n marginTop: $hasHeading ? '2.5rem' : 0,\n gridTemplateColumns: '1fr',\n [theme.breakpoints.up('sm')]: {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`,\n },\n}));\n\nexport const TeamSection = forwardRef<HTMLElement, TeamSectionProps>(\n (\n {\n title = 'Nasz zespół',\n description,\n members,\n headingAlign = 'center',\n columns = 3,\n cardVariant = 'default',\n maxWidth = 'xl',\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && title && (\n <SectionHeading title={title} description={description} align={headingAlign} />\n )}\n\n {hasHeading && !title && description && (\n <SectionHeading title={description} align={headingAlign} as=\"h2\" />\n )}\n\n <Grid $columns={columns} $hasHeading={hasHeading}>\n {members.map((member) => (\n <TeamMemberCard\n key={`${member.name}-${member.role}`}\n member={member}\n cardVariant={cardVariant}\n />\n ))}\n </Grid>\n </Container>\n </Section>\n );\n },\n);\n\nTeamSection.displayName = 'TeamSection';\n\nexport const teamSectionColumns: TeamSectionColumns[] = [2, 3, 4];\n","import { forwardRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { SectionHeading } from '@/components/atoms/SectionHeading/SectionHeading';\nimport { Container } from '@/components/layout/Container/Container';\nimport { Section } from '@/components/layout/Section/Section';\nimport { TestimonialCard } from '@/components/molecules/cards/TestimonialCard/TestimonialCard';\nimport type { TestimonialsSectionColumns, TestimonialsSectionProps } from '@/components';\n\ninterface GridProps {\n $columns: TestimonialsSectionColumns;\n $hasHeading: boolean;\n}\n\nconst Grid = styled('div', {\n shouldForwardProp: (prop) => !['$columns', '$hasHeading'].includes(prop as string),\n})<GridProps>(({ theme, $columns, $hasHeading }) => ({\n display: 'grid',\n gap: '1.5rem',\n marginTop: $hasHeading ? '2.5rem' : 0,\n gridTemplateColumns: '1fr',\n [theme.breakpoints.up('md')]: {\n gridTemplateColumns: $columns === 1 ? '1fr' : 'repeat(2, minmax(0, 1fr))',\n },\n [theme.breakpoints.up('lg')]: {\n gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`,\n },\n}));\n\nexport const TestimonialsSection = forwardRef<HTMLElement, TestimonialsSectionProps>(\n (\n {\n title = 'Co mówią nasi klienci',\n description,\n testimonials,\n headingAlign = 'center',\n columns = 3,\n cardVariant = 'default',\n maxWidth = 'xl',\n ...rest\n },\n ref,\n ) => {\n const hasHeading = Boolean(title || description);\n\n return (\n <Section ref={ref} {...rest}>\n <Container maxWidth={maxWidth}>\n {hasHeading && (\n <SectionHeading title={title ?? ''} description={description} align={headingAlign} />\n )}\n <Grid $columns={columns} $hasHeading={hasHeading}>\n {testimonials.map((testimonial, index) => (\n <TestimonialCard\n key={`${testimonial.authorName}-${index}`}\n testimonial={testimonial}\n cardVariant={cardVariant}\n />\n ))}\n </Grid>\n </Container>\n </Section>\n );\n },\n);\n\nTestimonialsSection.displayName = 'TestimonialsSection';\n\nexport const testimonialsSectionColumns: TestimonialsSectionColumns[] = [1, 2, 3];\n","import { useState, useEffect, useRef, useCallback, useId } from 'react';\nimport { createPortal } from 'react-dom';\nimport { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport SearchIcon from '@mui/icons-material/Search';\nimport type { CommandPaletteProps, CommandItem, CommandGroup } from '@/components';\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\nconst slideDown = keyframes`\n from { opacity: 0; transform: translateY(-8px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n`;\n\nconst Backdrop = styled('div')({\n position: 'fixed',\n inset: 0,\n zIndex: 1500,\n backgroundColor: 'rgba(0,0,0,0.45)',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'center',\n padding: '8vh 1rem 1rem',\n animation: `${fadeIn} 150ms ease`,\n});\n\nconst Dialog = styled('div')(({ theme }) => ({\n width: '100%',\n maxWidth: '36rem',\n backgroundColor: theme.palette.background.paper,\n borderRadius: Number(theme.shape.borderRadius) * 2,\n boxShadow: '0 25px 60px rgba(0,0,0,0.25)',\n overflow: 'hidden',\n animation: `${slideDown} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\n display: 'flex',\n flexDirection: 'column',\n maxHeight: '70vh',\n}));\n\nconst SearchRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n padding: '0.875rem 1rem',\n borderBottom: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n}));\n\nconst SearchIconWrap = styled('div')(({ theme }) => ({\n flexShrink: 0,\n color: theme.palette.text.secondary,\n display: 'flex',\n}));\n\nconst SearchInput = styled('input')(({ theme }) => ({\n flex: 1,\n border: 'none',\n outline: 'none',\n background: 'transparent',\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n color: theme.palette.text.primary,\n '&::placeholder': {\n color: theme.palette.text.secondary,\n },\n}));\n\nconst KbdHint = styled('kbd')(({ theme }) => ({\n flexShrink: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n padding: '0.125rem 0.375rem',\n backgroundColor: theme.palette.action.hover,\n lineHeight: 1.6,\n}));\n\nconst ResultsScroll = styled('div')({\n overflowY: 'auto',\n flex: 1,\n padding: '0.375rem 0',\n});\n\nconst GroupLabel = styled('div')(({ theme }) => ({\n padding: '0.5rem 1rem 0.25rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n fontWeight: 700,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n letterSpacing: '0.06em',\n}));\n\nconst Item = styled('div', {\n shouldForwardProp: (p) => p !== '$active',\n})<{ $active: boolean }>(({ theme, $active }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n padding: '0.5rem 1rem',\n cursor: 'pointer',\n backgroundColor: $active ? theme.palette.action.selected : 'transparent',\n transition: 'background-color 80ms ease',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n}));\n\nconst ItemIconSlot = styled('div')(({ theme }) => ({\n flexShrink: 0,\n width: '1.75rem',\n height: '1.75rem',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.action.hover,\n color: theme.palette.text.secondary,\n}));\n\nconst ItemText = styled('div')({ flex: 1, minWidth: 0 });\n\nconst ItemLabel = styled('span')(({ theme }) => ({\n display: 'block',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}));\n\nconst ItemDescription = styled('span')(({ theme }) => ({\n display: 'block',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}));\n\nconst ShortcutRow = styled('div')({\n flexShrink: 0,\n display: 'flex',\n gap: '0.25rem',\n});\n\nconst Kbd = styled('kbd')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: theme.shape.borderRadius,\n padding: '0.0625rem 0.3125rem',\n backgroundColor: theme.palette.action.hover,\n lineHeight: 1.6,\n}));\n\nconst EmptyState = styled('div')(({ theme }) => ({\n padding: '2.5rem 1rem',\n textAlign: 'center',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.secondary,\n}));\n\nconst Footer = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: '1.25rem',\n padding: '0.5rem 1rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n}));\n\nconst FooterHint = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: '0.375rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.75rem',\n color: theme.palette.text.secondary,\n}));\n\nfunction filterGroups(groups: CommandGroup[], query: string): CommandGroup[] {\n if (!query.trim()) return groups;\n const q = query.toLowerCase();\n return groups\n .map((g) => ({\n ...g,\n items: g.items.filter(\n (item) =>\n item.label.toLowerCase().includes(q) ||\n item.description?.toLowerCase().includes(q) ||\n item.keywords?.some((k) => k.toLowerCase().includes(q)),\n ),\n }))\n .filter((g) => g.items.length > 0);\n}\n\nfunction flatItems(groups: CommandGroup[]): CommandItem[] {\n return groups.flatMap((g) => g.items);\n}\n\nexport function CommandPalette({\n open,\n onClose,\n groups = [],\n placeholder = 'Wyszukaj akcję lub przejdź do...',\n emptyLabel = 'Brak wyników dla podanej frazy.',\n onSelect,\n}: CommandPaletteProps) {\n const id = useId();\n const [query, setQuery] = useState('');\n const [activeIndex, setActiveIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const activeItemRef = useRef<HTMLDivElement>(null);\n\n const filtered = filterGroups(groups, query);\n const flat = flatItems(filtered);\n\n const handleSelect = useCallback(\n (item: CommandItem) => {\n item.onSelect?.();\n onSelect?.(item);\n onClose();\n },\n [onSelect, onClose],\n );\n\n useEffect(() => {\n if (open) {\n setQuery('');\n setActiveIndex(0);\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n }, [open]);\n\n useEffect(() => {\n setActiveIndex(0);\n }, [query]);\n\n useEffect(() => {\n activeItemRef.current?.scrollIntoView?.({ block: 'nearest' });\n }, [activeIndex]);\n\n useEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if (!open) return;\n if (e.key === 'Escape') {\n onClose();\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setActiveIndex((i) => Math.min(i + 1, flat.length - 1));\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n return;\n }\n if (e.key === 'Enter' && flat[activeIndex]) {\n e.preventDefault();\n handleSelect(flat[activeIndex]);\n }\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [open, flat, activeIndex, handleSelect, onClose]);\n\n if (!open) return null;\n\n let globalIndex = 0;\n\n return createPortal(\n <Backdrop\n role=\"presentation\"\n onClick={(e) => {\n if (e.target === e.currentTarget) onClose();\n }}\n >\n <Dialog\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Paleta poleceń\"\n aria-describedby={`${id}-hint`}\n >\n <SearchRow>\n <SearchIconWrap aria-hidden=\"true\">\n <SearchIcon style={{ fontSize: 18 }} />\n </SearchIconWrap>\n <SearchInput\n ref={inputRef}\n role=\"combobox\"\n aria-expanded={filtered.length > 0}\n aria-controls={`${id}-listbox`}\n aria-activedescendant={\n flat[activeIndex] ? `${id}-item-${flat[activeIndex].id}` : undefined\n }\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n spellCheck={false}\n placeholder={placeholder}\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n />\n <KbdHint>esc</KbdHint>\n </SearchRow>\n\n <ResultsScroll id={`${id}-listbox`} role=\"listbox\" aria-label=\"Wyniki\">\n {flat.length === 0 ? (\n <EmptyState>{emptyLabel}</EmptyState>\n ) : (\n filtered.map((group) => (\n <div key={group.id} role=\"group\" aria-labelledby={`${id}-group-${group.id}`}>\n <GroupLabel id={`${id}-group-${group.id}`}>{group.label}</GroupLabel>\n {group.items.map((item) => {\n const idx = globalIndex++;\n const isActive = idx === activeIndex;\n return (\n <Item\n key={item.id}\n id={`${id}-item-${item.id}`}\n role=\"option\"\n aria-selected={isActive}\n $active={isActive}\n ref={isActive ? activeItemRef : undefined}\n onClick={() => handleSelect(item)}\n onMouseEnter={() => setActiveIndex(idx)}\n >\n {item.icon && <ItemIconSlot aria-hidden=\"true\">{item.icon}</ItemIconSlot>}\n <ItemText>\n <ItemLabel>{item.label}</ItemLabel>\n {item.description && <ItemDescription>{item.description}</ItemDescription>}\n </ItemText>\n {item.shortcut && (\n <ShortcutRow aria-label={`Skrót: ${item.shortcut.join('+')}`}>\n {item.shortcut.map((key, i) => (\n <Kbd key={i}>{key}</Kbd>\n ))}\n </ShortcutRow>\n )}\n </Item>\n );\n })}\n </div>\n ))\n )}\n </ResultsScroll>\n\n <Footer id={`${id}-hint`} aria-hidden=\"true\">\n <FooterHint>\n <Kbd>↑</Kbd>\n <Kbd>↓</Kbd> nawigacja\n </FooterHint>\n <FooterHint>\n <Kbd>↵</Kbd> wybierz\n </FooterHint>\n <FooterHint>\n <Kbd>esc</Kbd> zamknij\n </FooterHint>\n </Footer>\n </Dialog>\n </Backdrop>,\n document.body,\n );\n}\n","import { useState, useId } from 'react';\nimport { createPortal } from 'react-dom';\nimport { keyframes } from '@emotion/react';\nimport { styled } from '@mui/material/styles';\nimport type { CookieConsentProps, CookieCategory, CookiePreferences } from '@/components';\n\nconst DEFAULT_CATEGORIES: CookieCategory[] = [\n {\n id: 'necessary',\n label: 'Niezbędne',\n description: 'Wymagane do prawidłowego działania strony. Nie można ich wyłączyć.',\n required: true,\n defaultEnabled: true,\n },\n {\n id: 'analytics',\n label: 'Analityczne',\n description:\n 'Pomagają nam zrozumieć, jak odwiedzający korzystają ze strony (np. Google Analytics).',\n defaultEnabled: false,\n },\n {\n id: 'marketing',\n label: 'Marketingowe',\n description: 'Używane do śledzenia odwiedzających w celu wyświetlania trafnych reklam.',\n defaultEnabled: false,\n },\n];\n\nconst slideUp = keyframes`\n from { opacity: 0; transform: translateY(100%); }\n to { opacity: 1; transform: translateY(0); }\n`;\n\nconst Bar = styled('div')(({ theme }) => ({\n position: 'fixed',\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 1400,\n backgroundColor: theme.palette.background.paper,\n borderTop: `1px solid ${theme.palette.divider}`,\n boxShadow: '0 -4px 24px rgba(0,0,0,0.12)',\n animation: `${slideUp} 300ms cubic-bezier(0.16, 1, 0.3, 1)`,\n}));\n\nconst Inner = styled('div')({\n maxWidth: '72rem',\n margin: '0 auto',\n padding: '1.25rem 1.5rem',\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n});\n\nconst TopRow = styled('div')({\n display: 'flex',\n alignItems: 'flex-start',\n gap: '1rem',\n flexWrap: 'wrap',\n});\n\nconst TextBlock = styled('div')({ flex: 1, minWidth: '16rem' });\n\nconst Title = styled('p')(({ theme }) => ({\n margin: '0 0 0.25rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n lineHeight: 1.4,\n}));\n\nconst Description = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.6,\n}));\n\nconst Link = styled('a')(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'underline',\n '&:hover': { opacity: 0.8 },\n}));\n\nconst Actions = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.625rem',\n flexShrink: 0,\n flexWrap: 'wrap',\n});\n\nconst BaseButton = styled('button')(({ theme }) => ({\n appearance: 'none',\n cursor: 'pointer',\n border: 'none',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 600,\n lineHeight: 1,\n padding: '0.5625rem 1.125rem',\n transition: 'background-color 150ms ease, color 150ms ease, border-color 150ms ease',\n whiteSpace: 'nowrap',\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst PrimaryButton = styled(BaseButton)(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': { backgroundColor: theme.palette.primary.dark },\n}));\n\nconst GhostButton = styled(BaseButton)(({ theme }) => ({\n backgroundColor: 'transparent',\n color: theme.palette.primary.main,\n border: `1px solid ${theme.palette.primary.main}`,\n '&:hover': { backgroundColor: theme.palette.action.hover },\n}));\n\nconst TextButton = styled(BaseButton)(({ theme }) => ({\n backgroundColor: 'transparent',\n color: theme.palette.text.secondary,\n padding: '0.5625rem 0.5rem',\n '&:hover': { color: theme.palette.text.primary },\n}));\n\nconst Panel = styled('div')(({ theme }) => ({\n borderTop: `1px solid ${theme.palette.divider}`,\n paddingTop: '1rem',\n display: 'flex',\n flexDirection: 'column',\n gap: '0.75rem',\n}));\n\nconst CategoryRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: '1rem',\n padding: '0.75rem',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.action.hover,\n}));\n\nconst CategoryText = styled('div')({ flex: 1 });\n\nconst CategoryLabel = styled('span')(({ theme }) => ({\n display: 'block',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 600,\n color: theme.palette.text.primary,\n marginBottom: '0.25rem',\n}));\n\nconst CategoryDescription = styled('span')(({ theme }) => ({\n display: 'block',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.8125rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.5,\n}));\n\nconst Toggle = styled('button', {\n shouldForwardProp: (p) => p !== '$checked' && p !== '$disabled',\n})<{ $checked: boolean; $disabled: boolean }>(({ theme, $checked, $disabled }) => ({\n appearance: 'none',\n border: 'none',\n cursor: $disabled ? 'not-allowed' : 'pointer',\n flexShrink: 0,\n width: '2.75rem',\n height: '1.5rem',\n borderRadius: '9999px',\n backgroundColor: $checked ? theme.palette.primary.main : theme.palette.action.disabledBackground,\n position: 'relative',\n transition: 'background-color 200ms ease',\n opacity: $disabled ? 0.6 : 1,\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '0.1875rem',\n left: $checked ? 'calc(100% - 1.1875rem)' : '0.1875rem',\n width: '1.125rem',\n height: '1.125rem',\n borderRadius: '50%',\n backgroundColor: '#fff',\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\n transition: 'left 200ms ease',\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst SaveRow = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n});\n\nexport function CookieConsent({\n open,\n title = 'Używamy plików cookie',\n description = 'Ta strona używa plików cookie, aby zapewnić lepsze doświadczenie użytkownika. Możesz zaakceptować wszystkie lub dostosować swoje preferencje.',\n categories = DEFAULT_CATEGORIES,\n acceptAllLabel = 'Akceptuj wszystkie',\n rejectLabel = 'Tylko niezbędne',\n manageLabel = 'Zarządzaj preferencjami',\n saveLabel = 'Zapisz preferencje',\n onAcceptAll,\n onRejectAll,\n onSave,\n privacyPolicyLabel,\n privacyPolicyHref,\n}: CookieConsentProps) {\n const id = useId();\n const [expanded, setExpanded] = useState(false);\n const [prefs, setPrefs] = useState<CookiePreferences>(() =>\n Object.fromEntries(categories.map((c) => [c.id, c.defaultEnabled ?? false])),\n );\n\n if (!open) return null;\n\n const toggle = (categoryId: string) => {\n setPrefs((p) => ({ ...p, [categoryId]: !p[categoryId] }));\n };\n\n const handleAcceptAll = () => {\n onAcceptAll?.();\n };\n\n const handleRejectAll = () => {\n onRejectAll?.();\n };\n\n const handleSave = () => {\n onSave?.(prefs);\n };\n\n return createPortal(\n <Bar role=\"region\" aria-label=\"Zgoda na pliki cookie\" aria-live=\"polite\">\n <Inner>\n <TopRow>\n <TextBlock>\n <Title>{title}</Title>\n <Description>\n {description}\n {privacyPolicyLabel && privacyPolicyHref && (\n <>\n {' '}\n <Link href={privacyPolicyHref} target=\"_blank\" rel=\"noopener noreferrer\">\n {privacyPolicyLabel}\n </Link>\n </>\n )}\n </Description>\n </TextBlock>\n <Actions>\n <TextButton\n type=\"button\"\n aria-expanded={expanded}\n aria-controls={`${id}-panel`}\n onClick={() => setExpanded((v) => !v)}\n >\n {manageLabel}\n </TextButton>\n <GhostButton type=\"button\" onClick={handleRejectAll}>\n {rejectLabel}\n </GhostButton>\n <PrimaryButton type=\"button\" onClick={handleAcceptAll}>\n {acceptAllLabel}\n </PrimaryButton>\n </Actions>\n </TopRow>\n\n {expanded && (\n <Panel id={`${id}-panel`} role=\"group\" aria-label=\"Kategorie plików cookie\">\n {categories.map((cat) => (\n <CategoryRow key={cat.id}>\n <CategoryText>\n <CategoryLabel>{cat.label}</CategoryLabel>\n <CategoryDescription>{cat.description}</CategoryDescription>\n </CategoryText>\n <Toggle\n type=\"button\"\n role=\"switch\"\n aria-checked={prefs[cat.id] ?? false}\n aria-label={cat.label}\n aria-disabled={cat.required}\n $checked={prefs[cat.id] ?? false}\n $disabled={!!cat.required}\n onClick={() => !cat.required && toggle(cat.id)}\n />\n </CategoryRow>\n ))}\n <SaveRow>\n <PrimaryButton type=\"button\" onClick={handleSave}>\n {saveLabel}\n </PrimaryButton>\n </SaveRow>\n </Panel>\n )}\n </Inner>\n </Bar>,\n document.body,\n );\n}\n\nexport const defaultCookieCategories = DEFAULT_CATEGORIES;\n","import { styled } from '@mui/material/styles';\nimport type { FooterProps, SocialPlatform } from '@/components';\n\nconst Root = styled('footer')(({ theme }) => ({\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nconst Inner = styled('div')({\n maxWidth: '72rem',\n margin: '0 auto',\n padding: '3rem 1.5rem 2rem',\n});\n\nconst TopRow = styled('div')({\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '2.5rem',\n marginBottom: '2.5rem',\n '@media (min-width: 640px)': {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n '@media (min-width: 1024px)': {\n gridTemplateColumns: '1fr repeat(var(--col-count, 3), 1fr)',\n },\n});\n\nconst BrandBlock = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.75rem',\n});\n\nconst Description = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n lineHeight: 1.7,\n maxWidth: '22rem',\n}));\n\nconst Column = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.625rem',\n});\n\nconst ColumnTitle = styled('h3')(({ theme }) => ({\n margin: '0 0 0.25rem',\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: 700,\n color: theme.palette.text.primary,\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n}));\n\nconst FooterLink = styled('a')(({ theme }) => ({\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n color: theme.palette.text.secondary,\n textDecoration: 'none',\n transition: 'color 150ms ease',\n '&:hover': {\n color: theme.palette.primary.main,\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: '2px',\n },\n}));\n\nconst BottomRow = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n gap: '1rem',\n paddingTop: '1.5rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n}));\n\nconst Copyright = styled('p')(({ theme }) => ({\n margin: 0,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n color: theme.palette.text.secondary,\n}));\n\nconst SocialList = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: '0.75rem',\n});\n\nconst SocialAnchor = styled('a')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '2rem',\n height: '2rem',\n borderRadius: '50%',\n color: theme.palette.text.secondary,\n transition: 'color 150ms ease, background-color 150ms ease',\n '&:hover': {\n color: theme.palette.primary.main,\n backgroundColor: theme.palette.action.hover,\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst SOCIAL_ICONS: Record<SocialPlatform, JSX.Element> = {\n facebook: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\" />\n </svg>\n ),\n twitter: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\" />\n </svg>\n ),\n instagram: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" />\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <circle cx=\"17.5\" cy=\"6.5\" r=\"0.5\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n ),\n linkedin: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z\" />\n <circle cx=\"4\" cy=\"4\" r=\"2\" />\n </svg>\n ),\n youtube: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58A2.78 2.78 0 0 0 3.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.46a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58z\" />\n <polygon fill=\"white\" points=\"9.75 15.02 15.5 12 9.75 8.98 9.75 15.02\" />\n </svg>\n ),\n};\n\nexport function Footer({\n logo,\n description,\n columns = [],\n socialLinks = [],\n copyright,\n}: FooterProps) {\n const colCount = columns.length;\n\n return (\n <Root>\n <Inner>\n {(logo || description || colCount > 0) && (\n <TopRow style={{ '--col-count': colCount } as React.CSSProperties}>\n {(logo || description) && (\n <BrandBlock>\n {logo}\n {description && <Description>{description}</Description>}\n </BrandBlock>\n )}\n {columns.map((col) => (\n <Column key={col.title}>\n <ColumnTitle>{col.title}</ColumnTitle>\n {col.links.map((link) => (\n <FooterLink key={link.href} href={link.href}>\n {link.label}\n </FooterLink>\n ))}\n </Column>\n ))}\n </TopRow>\n )}\n <BottomRow>\n {copyright && <Copyright>{copyright}</Copyright>}\n {socialLinks.length > 0 && (\n <SocialList aria-label=\"Media społecznościowe\">\n {socialLinks.map((s) => (\n <SocialAnchor\n key={s.href}\n href={s.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={s.label}\n >\n {SOCIAL_ICONS[s.platform]}\n </SocialAnchor>\n ))}\n </SocialList>\n )}\n </BottomRow>\n </Inner>\n </Root>\n );\n}\n","import { useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport CloseIcon from '@mui/icons-material/Close';\nimport type { NavbarProps } from '@/components';\n\nconst Root = styled('header', {\n shouldForwardProp: (p) => p !== '$sticky' && p !== '$variant',\n})<{ $sticky: boolean; $variant: 'filled' | 'transparent' }>(({ theme, $sticky, $variant }) => ({\n position: $sticky ? 'sticky' : 'relative',\n top: 0,\n zIndex: 1100,\n width: '100%',\n backgroundColor: $variant === 'transparent' ? 'transparent' : theme.palette.background.paper,\n borderBottom: $variant === 'transparent' ? 'none' : `1px solid ${theme.palette.divider}`,\n boxShadow: $variant === 'transparent' ? 'none' : '0 1px 4px rgba(0,0,0,0.08)',\n}));\n\nconst Inner = styled('div')({\n maxWidth: '72rem',\n margin: '0 auto',\n padding: '0 1.5rem',\n height: '3.75rem',\n display: 'flex',\n alignItems: 'center',\n gap: '1.5rem',\n});\n\nconst LogoSlot = styled('div')({\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n});\n\nconst Nav = styled('nav')({\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n gap: '0.25rem',\n '@media (max-width: 767px)': {\n display: 'none',\n },\n});\n\nconst NavLink = styled('a', {\n shouldForwardProp: (p) => p !== '$active',\n})<{ $active: boolean }>(({ theme, $active }) => ({\n padding: '0.375rem 0.75rem',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.9375rem',\n fontWeight: $active ? 600 : 400,\n color: $active ? theme.palette.primary.main : theme.palette.text.primary,\n textDecoration: 'none',\n transition: 'background-color 150ms ease, color 150ms ease',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n color: theme.palette.primary.main,\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst RightSlot = styled('div')({\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n});\n\nconst HamburgerButton = styled('button')(({ theme }) => ({\n display: 'none',\n appearance: 'none',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n padding: '0.5rem',\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.text.primary,\n '@media (max-width: 767px)': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n '&:focus-visible': {\n outline: `3px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n },\n}));\n\nconst MobileDrawer = styled('div', {\n shouldForwardProp: (p) => p !== '$open',\n})<{ $open: boolean }>(({ theme, $open }) => ({\n display: $open ? 'flex' : 'none',\n flexDirection: 'column',\n gap: '0.25rem',\n padding: '0.75rem 1.5rem 1rem',\n borderTop: `1px solid ${theme.palette.divider}`,\n backgroundColor: theme.palette.background.paper,\n '@media (min-width: 768px)': {\n display: 'none',\n },\n}));\n\nconst MobileNavLink = styled('a', {\n shouldForwardProp: (p) => p !== '$active',\n})<{ $active: boolean }>(({ theme, $active }) => ({\n padding: '0.625rem 0.75rem',\n borderRadius: theme.shape.borderRadius,\n fontFamily: theme.typography.fontFamily,\n fontSize: '1rem',\n fontWeight: $active ? 600 : 400,\n color: $active ? theme.palette.primary.main : theme.palette.text.primary,\n textDecoration: 'none',\n transition: 'background-color 150ms ease',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n}));\n\nfunction HamburgerIcon({ open }: { open: boolean }) {\n return open ? (\n <CloseIcon aria-hidden=\"true\" style={{ fontSize: 24 }} />\n ) : (\n <MenuIcon aria-hidden=\"true\" style={{ fontSize: 24 }} />\n );\n}\n\nexport function Navbar({\n logo,\n navItems = [],\n actions,\n sticky = false,\n variant = 'filled',\n}: NavbarProps) {\n const [mobileOpen, setMobileOpen] = useState(false);\n\n return (\n <Root $sticky={sticky} $variant={variant}>\n <Inner>\n {logo && <LogoSlot>{logo}</LogoSlot>}\n <Nav aria-label=\"Nawigacja główna\">\n {navItems.map((item) => (\n <NavLink key={item.href} href={item.href} $active={!!item.active}>\n {item.label}\n </NavLink>\n ))}\n </Nav>\n {(actions || navItems.length > 0) && (\n <RightSlot>\n {actions}\n {navItems.length > 0 && (\n <HamburgerButton\n type=\"button\"\n aria-label={mobileOpen ? 'Zamknij menu' : 'Otwórz menu'}\n aria-expanded={mobileOpen}\n onClick={() => setMobileOpen((v) => !v)}\n >\n <HamburgerIcon open={mobileOpen} />\n </HamburgerButton>\n )}\n </RightSlot>\n )}\n </Inner>\n {navItems.length > 0 && (\n <MobileDrawer $open={mobileOpen} aria-label=\"Menu mobilne\">\n {navItems.map((item) => (\n <MobileNavLink key={item.href} href={item.href} $active={!!item.active}>\n {item.label}\n </MobileNavLink>\n ))}\n </MobileDrawer>\n )}\n </Root>\n );\n}\n","import { createTheme } from '@mui/material/styles';\n\ndeclare module '@mui/material/styles' {\n interface PaletteColor {\n contrast?: string;\n focus?: string;\n }\n interface SimplePaletteColorOptions {\n contrast?: string;\n focus?: string;\n }\n interface TypeBackground {\n [key: string]: unknown;\n }\n interface TypeText {\n [key: string]: unknown;\n }\n interface Palette {\n [key: string]: unknown;\n }\n interface PaletteOptions {\n [key: string]: unknown;\n }\n interface Theme {\n [key: string]: unknown;\n }\n interface ThemeOptions {\n [key: string]: unknown;\n }\n}\n\nconst ss = 'sans-serif';\n\nconst typographyOptions = {\n fontFamily: [\"'Lato'\", ss].join(','),\n h1: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.75rem',\n },\n h2: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.375rem',\n },\n h3: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1.125rem',\n },\n h4: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '1rem',\n },\n h5: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '0.875rem',\n },\n h6: {\n fontFamily: [\"'Lato'\", ss].join(','),\n fontSize: '0.75rem',\n },\n};\n\nexport const themeLight = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'light',\n primary: { main: '#1976d2', dark: '#1565c0', light: '#42a5f5', contrastText: '#ffffff' },\n secondary: { main: '#6b7280', dark: '#4b5563', light: '#9ca3af', contrastText: '#ffffff' },\n error: { main: '#d32f2f', dark: '#b71c1c', light: '#ef5350', contrastText: '#ffffff' },\n action: { disabled: 'rgba(0,0,0,0.38)', disabledBackground: 'rgba(0,0,0,0.12)' },\n background: { default: '#ffffff', paper: '#f5f5f5' },\n },\n});\n\nexport const themeDark = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'dark',\n primary: { main: '#90caf9', dark: '#42a5f5', light: '#bbdefb', contrastText: '#0d1b2a' },\n secondary: { main: '#9ca3af', dark: '#6b7280', light: '#d1d5db', contrastText: '#111827' },\n error: { main: '#f48fb1', dark: '#f06292', light: '#fce4ec', contrastText: '#1a0010' },\n action: { disabled: 'rgba(255,255,255,0.30)', disabledBackground: 'rgba(255,255,255,0.12)' },\n background: { default: '#121212', paper: '#1e1e1e' },\n },\n});\n\nexport const themeHighContrast = createTheme({\n typography: typographyOptions,\n palette: {\n mode: 'dark',\n primary: { main: '#ffffff', dark: '#e0e0e0', light: '#ffffff', contrastText: '#000000' },\n secondary: { main: '#ffff00', dark: '#cccc00', light: '#ffff66', contrastText: '#000000' },\n error: { main: '#ff6b6b', dark: '#ff3333', light: '#ffaaaa', contrastText: '#000000' },\n action: { disabled: 'rgba(255,255,255,0.38)', disabledBackground: 'rgba(255,255,255,0.12)' },\n background: { default: '#000000', paper: '#1a1a1a' },\n },\n});\n","import { createTheme, type Theme, type ThemeOptions } from '@mui/material/styles';\nimport { themeLight, themeDark, themeHighContrast } from './theme';\n\nexport interface CreateMyThemeOptions {\n mode?: 'light' | 'dark' | 'highContrast';\n overrides?: ThemeOptions;\n}\n\nconst pickBaseTheme = (mode: 'light' | 'dark' | 'highContrast'): Theme => {\n switch (mode) {\n case 'dark':\n return themeDark;\n case 'highContrast':\n return themeHighContrast;\n case 'light':\n default:\n return themeLight;\n }\n};\n\nexport const createMyTheme = (options: CreateMyThemeOptions = {}): Theme => {\n const { mode = 'light', overrides } = options;\n const baseTheme = pickBaseTheme(mode);\n if (!overrides) return baseTheme;\n return createTheme(baseTheme as ThemeOptions, overrides);\n};\n\nexport const myTheme: Theme = createMyTheme();\n","import { type ReactNode, useMemo } from 'react';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { ThemeProvider, type Theme } from '@mui/material/styles';\nimport { themeLight, themeDark, themeHighContrast } from '@/theme';\n\nexport type MyThemeMode = 'light' | 'dark' | 'highContrast';\n\nexport interface MyThemeProviderProps {\n mode?: MyThemeMode;\n theme?: Theme;\n disableCssBaseline?: boolean;\n children: ReactNode;\n}\n\nexport const MyThemeProvider = ({\n mode = 'light',\n theme,\n disableCssBaseline = false,\n children,\n}: MyThemeProviderProps): JSX.Element => {\n const resolvedTheme = useMemo(() => {\n if (theme) return theme;\n switch (mode) {\n case 'dark':\n return themeDark;\n case 'highContrast':\n return themeHighContrast;\n case 'light':\n default:\n return themeLight;\n }\n }, [theme, mode]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n};\n","'use client';\nimport * as React from 'react';\nimport { useServerInsertedHTML } from 'next/navigation';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\nexport function EmotionRegistry({ children }: { children: React.ReactNode }) {\n const [{ cache, flush }] = React.useState(() => {\n const c = createCache({ key: 'css', prepend: true });\n c.compat = true;\n const prevInsert = c.insert.bind(c);\n let inserted: string[] = [];\n c.insert = (...args: Parameters<typeof c.insert>) => {\n const serialized = args[1];\n if (c.inserted[serialized.name] === undefined) {\n inserted.push(serialized.name);\n }\n return prevInsert(...args);\n };\n return {\n cache: c,\n flush: () => {\n const s = inserted;\n inserted = [];\n return s;\n },\n };\n });\n\n useServerInsertedHTML(() => {\n const names = flush();\n if (!names.length) return null;\n return (\n <style\n data-emotion={`${cache.key} ${names.join(' ')}`}\n dangerouslySetInnerHTML={{ __html: names.map((n) => cache.inserted[n]).join('') }}\n />\n );\n });\n\n return <CacheProvider value={cache}>{children}</CacheProvider>;\n}\n"]}
|