{"version":3,"file":"Flag.cjs","sources":["../../../../src/lib/Flag/Flag.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {CountryCodes} from '@/internal/locale';\nimport {useBrowserLocale} from '@/internal/locale';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Flag.module.css';\nimport {flagsDictionary} from './flagsDictionary.ts';\n\nexport type Props = DataAttributes &\n    LibraryProps & {\n        /**\n         * Provide a two-letter ISO 3166 region code\n         * @see https://www.iso.org/iso-3166-country-codes.html\n         */\n        countryCode: keyof typeof CountryCodes;\n        /**\n         * Set the size of the flag icon in pixels. Applied to both width and height\n         */\n        size?: number;\n    };\n\nexport const Flag = forwardRef<HTMLDivElement, Props>(\n    ({className, countryCode, size = 24, ...nativeProps}, outerRef) => {\n        const {LocalRoot, ref} = useLocalTheme<HTMLDivElement>();\n        const theme = useMemo(() => ({size}), [size]);\n        useLinkRefs(outerRef, ref);\n        const flag = flagsDictionary[countryCode];\n        const userLocale = useBrowserLocale();\n        const countryName = useMemo(\n            () => new Intl.DisplayNames(userLocale, {type: 'region'}).of(countryCode),\n            [countryCode, userLocale]\n        );\n        return (\n            <LocalRoot\n                {...nativeProps}\n                theme={theme}\n                className={classNames(classes.container, className)}>\n                <span className={classes.flag} title={countryName}>\n                    {flag}\n                </span>\n            </LocalRoot>\n        );\n    }\n);\n\nFlag.displayName = 'Flag';\n"],"names":["Flag","forwardRef","className","countryCode","size","nativeProps","outerRef","LocalRoot","ref","useLocalTheme","theme","useMemo","useLinkRefs","flag","flagsDictionary","userLocale","useBrowserLocale","countryName","jsx","classNames","classes"],"mappings":"wXAyBaA,EAAOC,EAAA,WAChB,CAAC,CAAC,UAAAC,EAAW,YAAAC,EAAa,KAAAC,EAAO,GAAI,GAAGC,CAAW,EAAGC,IAAa,CAC/D,KAAM,CAAC,UAAAC,EAAW,IAAAC,CAAG,EAAIC,gBAA8B,EACjDC,EAAQC,EAAAA,QAAQ,KAAO,CAAC,KAAAP,IAAQ,CAACA,CAAI,CAAC,EAC5CQ,EAAA,YAAYN,EAAUE,CAAG,EACnB,MAAAK,EAAOC,kBAAgBX,CAAW,EAClCY,EAAaC,EAAAA,iBAAiB,EAC9BC,EAAcN,EAAA,QAChB,IAAM,IAAI,KAAK,aAAaI,EAAY,CAAC,KAAM,QAAS,CAAA,EAAE,GAAGZ,CAAW,EACxE,CAACA,EAAaY,CAAU,CAC5B,EAEI,OAAAG,EAAA,IAACX,EAAA,CACI,GAAGF,EACJ,MAAAK,EACA,UAAWS,EAAWC,UAAQ,UAAWlB,CAAS,EAClD,eAAC,OAAK,CAAA,UAAWkB,EAAAA,QAAQ,KAAM,MAAOH,EACjC,SACLJ,CAAA,CAAA,CAAA,CACJ,CAAA,CAGZ,EAEAb,EAAK,YAAc"}