{"version":3,"file":"VIcon-485339e9.js","sources":["../../../node_modules/vuetify/lib/composables/size.mjs","../../../node_modules/vuetify/lib/components/VIcon/VIcon.mjs"],"sourcesContent":["// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": attrs.onClick ? 'button' : undefined,\n \"aria-hidden\": !attrs.onClick\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map"],"names":["predefinedSizes","makeSizeProps","propsFactory","useSize","props","name","getCurrentInstanceName","destructComputed","sizeClasses","sizeStyles","includes","convertToUnit","makeVIconProps","IconValue","makeComponentProps","makeTagProps","makeThemeProps","VIcon","genericComponent","_ref","attrs","slots","slotIcon","ref","themeClasses","provideTheme","iconData","useIcon","computed","textColorClasses","textColorStyles","useTextColor","toRef","useRender","slotValue","_a","_b","flattenFragments","node","Text","_createVNode"],"mappings":"6LAEA,MAAMA,EAAkB,CAAC,UAAW,QAAS,UAAW,QAAS,SAAS,EAE7DC,EAAgBC,EAAa,CACxC,KAAM,CACJ,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,SACV,CACH,EAAG,MAAM,EACF,SAASC,EAAQC,EAAO,CAC7B,IAAIC,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIC,EAAsB,EACrG,OAAOC,EAAiB,IAAM,CAC5B,IAAIC,EACAC,EACJ,OAAIC,EAASV,EAAiBI,EAAM,IAAI,EACtCI,EAAc,GAAGH,WAAcD,EAAM,OAC5BA,EAAM,OACfK,EAAa,CACX,MAAOE,EAAcP,EAAM,IAAI,EAC/B,OAAQO,EAAcP,EAAM,IAAI,CACxC,GAEW,CACL,YAAAI,EACA,WAAAC,CACN,CACA,CAAG,CACH,CCfO,MAAMG,EAAiBV,EAAa,CACzC,MAAO,OACP,MAAO,QACP,IAAK,QACL,KAAMW,EACN,GAAGC,EAAoB,EACvB,GAAGb,EAAe,EAClB,GAAGc,EAAa,CACd,IAAK,GACT,CAAG,EACD,GAAGC,EAAgB,CACrB,EAAG,OAAO,EACGC,EAAQC,EAAgB,EAAG,CACtC,KAAM,QACN,MAAON,EAAgB,EACvB,MAAMR,EAAOe,EAAM,CACjB,GAAI,CACF,MAAAC,EACA,MAAAC,CACD,EAAGF,EACJ,MAAMG,EAAWC,IACX,CACJ,aAAAC,CACN,EAAQC,EAAarB,CAAK,EAChB,CACJ,SAAAsB,CACN,EAAQC,EAAQC,EAAS,IAAMN,EAAS,OAASlB,EAAM,IAAI,CAAC,EAClD,CACJ,YAAAI,CACN,EAAQL,EAAQC,CAAK,EACX,CACJ,iBAAAyB,EACA,gBAAAC,CACD,EAAGC,EAAaC,EAAM5B,EAAO,OAAO,CAAC,EACtC,OAAA6B,EAAU,IAAM,SACd,MAAMC,GAAYC,EAAAd,EAAM,UAAN,YAAAc,EAAA,KAAAd,GAClB,OAAIa,IACFZ,EAAS,OAAQc,EAAAC,EAAiBH,CAAS,EAAE,OAAOI,GAAQA,EAAK,OAASC,GAAQD,EAAK,UAAY,OAAOA,EAAK,UAAa,QAAQ,EAAE,CAAC,IAAtH,YAAAF,EAAyH,UAErII,EAAad,EAAS,MAAM,UAAW,CAC5C,IAAOtB,EAAM,IACb,KAAQsB,EAAS,MAAM,KACvB,MAAS,CAAC,SAAU,cAAeF,EAAa,MAAOhB,EAAY,MAAOqB,EAAiB,MAAO,CAChG,oBAAqB,CAAC,CAACT,EAAM,QAC7B,gBAAiBhB,EAAM,MACvB,cAAeA,EAAM,GAC/B,EAAWA,EAAM,KAAK,EACd,MAAS,CAAEI,EAAY,MAInB,OAJ2B,CAC7B,SAAUG,EAAcP,EAAM,IAAI,EAClC,OAAQO,EAAcP,EAAM,IAAI,EAChC,MAAOO,EAAcP,EAAM,IAAI,CAChC,EAAc0B,EAAgB,MAAO1B,EAAM,KAAK,EACjD,KAAQgB,EAAM,QAAU,SAAW,OACnC,cAAe,CAACA,EAAM,OAC9B,EAAS,CACD,QAAS,IAAM,CAACc,CAAS,CACjC,CAAO,CACP,CAAK,EACM,EACR,CACH,CAAC","x_google_ignoreList":[0,1]}