{"version":3,"file":"/Users/anthonygubler/development/dojo-org/widgets/src/icon/index.tsx","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,6BAA6B,CAAC;AAenD,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAkB,CAAC;AAE/D,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE;IAC9E,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC;IAExD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,IAAI,OAAO,CAAC,IAA4B,CAAC,CAAC;IAEhE,OAAO,CACN,yBACC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAChF,IAAI,EAAC,KAAK,iBACG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,gBAC3B,OAAO,IACf,oBAAoB,CAAC,IAAI,CAAC,EAC7B,CACF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC","sourcesContent":["import { create, tsx } from '@dojo/framework/core/vdom';\nimport theme from '../middleware/theme';\nimport { formatAriaProperties } from '../common/util';\nimport * as css from '../theme/default/icon.m.css';\n\nexport type IconType = keyof typeof css;\n\nexport interface IconProperties {\n\t/** An optional, visually hidden label for the icon */\n\taltText?: string;\n\t/** Custom aria attributes */\n\taria?: { [key: string]: string | null };\n\t/** Icon type, e.g. downIcon, searchIcon, etc. */\n\ttype: IconType;\n\t/** Size modifier for the icon; small, medium or large */\n\tsize?: 'small' | 'medium' | 'large';\n}\n\nconst factory = create({ theme }).properties<IconProperties>();\n\nexport const Icon = factory(function Icon({ properties, middleware: { theme } }) {\n\tconst { aria = {}, type, altText, size } = properties();\n\n\tconst classes = theme.classes(css);\n\tconst sizeClass = size && classes[size as keyof typeof classes];\n\n\treturn (\n\t\t<i\n\t\t\tclasses={[theme.variant(), classes.root, classes.icon, classes[type], sizeClass]}\n\t\t\trole=\"img\"\n\t\t\taria-hidden={altText ? 'false' : 'true'}\n\t\t\taria-label={altText}\n\t\t\t{...formatAriaProperties(aria)}\n\t\t/>\n\t);\n});\n\nexport default Icon;\n"]}