{"version":3,"file":"VIcon.mjs","names":["useTextColor","makeComponentProps","IconValue","useIcon","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","computed","ref","Text","toRef","convertToUnit","flattenFragments","genericComponent","propsFactory","useRender","makeVIconProps","color","String","disabled","Boolean","start","end","icon","tag","VIcon","name","props","setup","_ref","attrs","slots","slotIcon","themeClasses","iconData","value","sizeClasses","textColorClasses","textColorStyles","slotValue","default","filter","node","type","children","hasClick","onClick","onClickOnce","_createVNode","component","class","fontSize","size","height","width","undefined","style"],"sources":["../../../src/components/VIcon/VIcon.tsx"],"sourcesContent":["// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce)\n\n return (\n \n { slotValue }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType\n"],"mappings":"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","ignoreList":[]}