@szymonpiatek/designsystem 0.0.2 → 0.0.3
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 +4126 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +296 -4
- package/dist/index.d.ts +296 -4
- package/dist/index.js +4107 -40
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/atoms/buttons/Button/Button.tsx","../src/theme/theme.ts","../src/theme/myTheme.ts","../src/theme/MyThemeProvider.tsx"],"names":["createTheme","jsxs","jsx"],"mappings":";;;;;;;AAKA,IAAM,IAAA,GAAO,SAAA;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,OAAA,GAAU;AAAA,EACd,IAAI,EAAE,OAAA,EAAS,mBAAmB,QAAA,EAAU,SAAA,EAAW,KAAK,SAAA,EAAU;AAAA,EACtE,IAAI,EAAE,OAAA,EAAS,kBAAkB,QAAA,EAAU,UAAA,EAAY,KAAK,UAAA,EAAW;AAAA,EACvE,IAAI,EAAE,OAAA,EAAS,mBAAmB,QAAA,EAAU,MAAA,EAAQ,KAAK,QAAA;AAC3D,CAAA;AAEA,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAc,OAAA,KAAoB;AACvD,EAAA,QAAQ,OAAA;AAAS,IACf,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,QACvC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,YAAA;AAAA,QAC7B,0BAA0B,EAAE,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAA,EAAK;AAAA,QACxE,yBAAA,EAA2B,EAAE,MAAA,EAAQ,kBAAA;AAAmB,OAC1D;AAAA,IACF,KAAK,WAAA;AACH,MAAA,OAAO;AAAA,QACL,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,SAAA,CAAU,IAAA;AAAA,QACzC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,SAAA,CAAU,YAAA;AAAA,QAC/B,0BAA0B,EAAE,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAU,IAAA,EAAK;AAAA,QAC1E,yBAAA,EAA2B,EAAE,MAAA,EAAQ,kBAAA;AAAmB,OAC1D;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO;AAAA,QACL,eAAA,EAAiB,aAAA;AAAA,QACjB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,QAC7B,MAAA,EAAQ,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,QAC/C,wBAAA,EAA0B,EAAE,eAAA,EAAiB,KAAA,CAAM,MAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,IAAI,CAAA,EAAE;AAAA,QACrF,yBAAA,EAA2B,EAAE,eAAA,EAAiB,KAAA,CAAM,MAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,IAAI,CAAA;AAAE,OACxF;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,IAAA;AAAA,QACrC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,YAAA;AAAA,QAC3B,0BAA0B,EAAE,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,MAAM,IAAA,EAAK;AAAA,QACtE,yBAAA,EAA2B,EAAE,MAAA,EAAQ,kBAAA;AAAmB,OAC1D;AAAA,IACF;AACE,MAAA,OAAO,EAAC;AAAA;AAEd,CAAA;AAQA,IAAM,YAAA,GAAe,OAAO,QAAQ,CAAA;AAAA,EAClC,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAW,MAAO;AAAA,IAC3C,UAAA,EAAY,MAAA;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,QAAA,EAAU,UAAA;AAAA,IACV,YAAA,EAAc,MAAM,KAAA,CAAM,YAAA;AAAA,IAC1B,UAAA,EAAY,MAAM,UAAA,CAAW,UAAA;AAAA,IAC7B,UAAA,EAAY,GAAA;AAAA,IACZ,UAAA,EAAY,GAAA;AAAA,IACZ,cAAA,EAAgB,MAAA;AAAA,IAChB,UAAA,EAAY,6EAAA;AAAA,IACZ,KAAA,EAAO,aAAa,MAAA,GAAS,MAAA;AAAA,IAC7B,GAAG,QAAQ,KAAK,CAAA;AAAA,IAChB,GAAG,aAAA,CAAc,KAAA,EAAO,QAAQ,CAAA;AAAA,IAChC,iBAAA,EAAmB;AAAA,MACjB,OAAA,EAAS,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,MAChD,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,iBACE,QAAA,KAAa,OAAA,GAAU,aAAA,GAAgB,KAAA,CAAM,QAAQ,MAAA,CAAO,kBAAA;AAAA,MAC9D,aAAa,QAAA,KAAa,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,QAAA,GAAW,aAAA;AAAA,MACpE,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,QAAA;AAAA,MAC5B,MAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAe;AAAA;AACjB,GACF;AACF,CAAA;AAEA,IAAM,QAAA,GAAW,MAAA,CAAO,MAAM,CAAA,CAAE;AAAA,EAC9B,OAAA,EAAS,aAAA;AAAA,EACT,UAAA,EAAY;AACd,CAAC,CAAA;AAED,IAAM,OAAA,GAAU,MAAA,CAAO,MAAM,CAAA,CAAE;AAAA,EAC7B,OAAA,EAAS,aAAA;AAAA,EACT,SAAA,EAAW,GAAG,IAAI,CAAA,sBAAA;AACpB,CAAC,CAAA;AAEM,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,KAAA;AAAA,IACV,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP;AAAA,KAEF,GAAA,qBAEA,IAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAU,QAAA,IAAY,OAAA;AAAA,MACtB,OAAA;AAAA,MACA,QAAA,EAAU,OAAA;AAAA,MACV,KAAA,EAAO,IAAA;AAAA,MACP,UAAA,EAAY,SAAA;AAAA,MACZ,aAAW,OAAA,IAAW,MAAA;AAAA,MAErB,QAAA,EAAA;AAAA,QAAA,OAAA,mBACC,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAY,MAAA,EACnB,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,KAAA;AAAA,YACN,MAAA,EAAO,KAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAO,cAAA;AAAA,YACP,WAAA,EAAY,GAAA;AAAA,YAEZ,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,QAAA,EAAA,EAAO,IAAG,IAAA,EAAK,EAAA,EAAG,MAAK,CAAA,EAAE,IAAA,EAAK,eAAc,MAAA,EAAO,CAAA;AAAA,8BACpD,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yBAAA,EAA0B;AAAA;AAAA;AAAA,SACpC,EACF,CAAA,GAEA,SAAA,oBAAa,GAAA,CAAC,YAAU,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,wBAEpC,GAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,QACf,OAAA,oBAAW,GAAA,CAAC,QAAA,EAAA,EAAU,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA;AAAA;AAGrC;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;ACvHrB,IAAM,EAAA,GAAK,YAAA;AAEX,IAAM,iBAAA,GAAoB;AAAA,EACxB,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EACnC,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAA,EAAI;AAAA,IACF,YAAY,CAAC,QAAA,EAAU,EAAE,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACnC,QAAA,EAAU;AAAA;AAEd,CAAA;AAEO,IAAM,aAAa,WAAA,CAAY;AAAA,EACpC,UAAA,EAAY,iBAAA;AAAA,EACZ,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,SAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,KAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,MAAA,EAAY,EAAE,QAAA,EAAU,kBAAA,EAAoB,oBAAoB,kBAAA,EAAmB;AAAA,IACnF,UAAA,EAAY,EAAE,OAAA,EAAS,SAAA,EAAW,OAAO,SAAA;AAAU;AAEvD,CAAC;AAEM,IAAM,YAAY,WAAA,CAAY;AAAA,EACnC,UAAA,EAAY,iBAAA;AAAA,EACZ,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,SAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,KAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,MAAA,EAAY,EAAE,QAAA,EAAU,wBAAA,EAA0B,oBAAoB,wBAAA,EAAyB;AAAA,IAC/F,UAAA,EAAY,EAAE,OAAA,EAAS,SAAA,EAAW,OAAO,SAAA;AAAU;AAEvD,CAAC;AAEM,IAAM,oBAAoB,WAAA,CAAY;AAAA,EAC3C,UAAA,EAAY,iBAAA;AAAA,EACZ,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,SAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,KAAA,EAAY,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,YAAA,EAAc,SAAA,EAAU;AAAA,IAC1F,MAAA,EAAY,EAAE,QAAA,EAAU,wBAAA,EAA0B,oBAAoB,wBAAA,EAAyB;AAAA,IAC/F,UAAA,EAAY,EAAE,OAAA,EAAS,SAAA,EAAW,OAAO,SAAA;AAAU;AAEvD,CAAC;;;ACvFD,IAAM,aAAA,GAAgB,CAAC,IAAA,KAAmD;AACxE,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,MAAA;AACH,MAAA,OAAO,SAAA;AAAA,IACT,KAAK,cAAA;AACH,MAAA,OAAO,iBAAA;AAAA,IACT,KAAK,OAAA;AAAA,IACL;AACE,MAAA,OAAO,UAAA;AAAA;AAEb,CAAA;AAEO,IAAM,aAAA,GAAgB,CAAC,OAAA,GAAgC,EAAC,KAAa;AAC1E,EAAA,MAAM,EAAE,IAAA,GAAO,OAAA,EAAS,SAAA,EAAU,GAAI,OAAA;AACtC,EAAA,MAAM,SAAA,GAAY,cAAc,IAAI,CAAA;AACpC,EAAA,IAAI,CAAC,WAAW,OAAO,SAAA;AACvB,EAAA,OAAOA,WAAAA,CAAY,WAA2B,SAAS,CAAA;AACzD;AAEO,IAAM,UAAiB,aAAA;ACbvB,IAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA,GAAO,OAAA;AAAA,EACP,KAAA;AAAA,EACA,kBAAA,GAAqB,KAAA;AAAA,EACrB;AACF,CAAA,KAAyC;AACvC,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM;AAClC,IAAA,IAAI,OAAO,OAAO,KAAA;AAClB,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,MAAA;AACH,QAAA,OAAO,SAAA;AAAA,MACT,KAAK,cAAA;AACH,QAAA,OAAO,iBAAA;AAAA,MACT,KAAK,OAAA;AAAA,MACL;AACE,QAAA,OAAO,UAAA;AAAA;AACX,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,IAAI,CAAC,CAAA;AAEhB,EAAA,uBACEC,IAAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,aAAA,EACnB,QAAA,EAAA;AAAA,IAAA,CAAC,kBAAA,oBAAsBC,GAAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA,IACpC;AAAA,GAAA,EACH,CAAA;AAEJ","file":"index.js","sourcesContent":["import { forwardRef } from 'react';\nimport { styled, alpha, type Theme } from '@mui/material/styles';\nimport { keyframes } from '@emotion/react';\nimport type { ButtonProps } from '@/components';\n\nconst spin = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n`;\n\nconst sizeMap = {\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 = (theme: Theme, variant: string) => {\n switch (variant) {\n case 'primary':\n return {\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 case 'secondary':\n return {\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 case 'ghost':\n return {\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 case 'danger':\n return {\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 default:\n return {};\n }\n};\n\ninterface StyledButtonProps {\n $variant: NonNullable<ButtonProps['variant']>;\n $size: NonNullable<ButtonProps['size']>;\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(theme, $variant),\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 },\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 >\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 { 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/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":["styled","jsx","forwardRef","jsxs","Root","useId","HiddenInput","alpha","useRef","DropdownPanel","renderTrigger","renderOption","useState","useEffect","XIcon","useCallback","sizeMap","InputWrapper","StyledInput","SearchInput","OptionItem","Box","StyledButton","createTheme","useMemo"],"mappings":"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","file":"index.js","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"]}
|