135 lines
3.4 KiB
JavaScript
135 lines
3.4 KiB
JavaScript
import {
|
|
useTextColor
|
|
} from "./chunk-ZZ55KHRR.js";
|
|
import {
|
|
IconValue,
|
|
useIcon
|
|
} from "./chunk-472DNWSX.js";
|
|
import {
|
|
makeTagProps
|
|
} from "./chunk-DJRL4NAD.js";
|
|
import {
|
|
makeThemeProps,
|
|
provideTheme
|
|
} from "./chunk-CYOEVGGH.js";
|
|
import {
|
|
convertToUnit,
|
|
destructComputed,
|
|
flattenFragments,
|
|
genericComponent,
|
|
getCurrentInstanceName,
|
|
includes,
|
|
makeComponentProps,
|
|
propsFactory,
|
|
useRender
|
|
} from "./chunk-I4KGD5X4.js";
|
|
import {
|
|
Text,
|
|
computed,
|
|
createVNode,
|
|
ref,
|
|
toRef
|
|
} from "./chunk-PD2AWGJV.js";
|
|
|
|
// node_modules/vuetify/lib/components/VIcon/VIcon.mjs
|
|
import "C:/Users/Jeremy/Documents/Dev/Projects.cloudsucks.net/Vulture/VApp/node_modules/vuetify/lib/components/VIcon/VIcon.css";
|
|
|
|
// node_modules/vuetify/lib/composables/size.mjs
|
|
var predefinedSizes = ["x-small", "small", "default", "large", "x-large"];
|
|
var makeSizeProps = propsFactory({
|
|
size: {
|
|
type: [String, Number],
|
|
default: "default"
|
|
}
|
|
}, "size");
|
|
function useSize(props) {
|
|
let name = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getCurrentInstanceName();
|
|
return destructComputed(() => {
|
|
let sizeClasses;
|
|
let sizeStyles;
|
|
if (includes(predefinedSizes, props.size)) {
|
|
sizeClasses = `${name}--size-${props.size}`;
|
|
} else if (props.size) {
|
|
sizeStyles = {
|
|
width: convertToUnit(props.size),
|
|
height: convertToUnit(props.size)
|
|
};
|
|
}
|
|
return {
|
|
sizeClasses,
|
|
sizeStyles
|
|
};
|
|
});
|
|
}
|
|
|
|
// node_modules/vuetify/lib/components/VIcon/VIcon.mjs
|
|
var makeVIconProps = propsFactory({
|
|
color: String,
|
|
start: Boolean,
|
|
end: Boolean,
|
|
icon: IconValue,
|
|
...makeComponentProps(),
|
|
...makeSizeProps(),
|
|
...makeTagProps({
|
|
tag: "i"
|
|
}),
|
|
...makeThemeProps()
|
|
}, "VIcon");
|
|
var VIcon = genericComponent()({
|
|
name: "VIcon",
|
|
props: makeVIconProps(),
|
|
setup(props, _ref) {
|
|
let {
|
|
attrs,
|
|
slots
|
|
} = _ref;
|
|
const slotIcon = ref();
|
|
const {
|
|
themeClasses
|
|
} = provideTheme(props);
|
|
const {
|
|
iconData
|
|
} = useIcon(computed(() => slotIcon.value || props.icon));
|
|
const {
|
|
sizeClasses
|
|
} = useSize(props);
|
|
const {
|
|
textColorClasses,
|
|
textColorStyles
|
|
} = useTextColor(toRef(props, "color"));
|
|
useRender(() => {
|
|
var _a, _b;
|
|
const slotValue = (_a = slots.default) == null ? void 0 : _a.call(slots);
|
|
if (slotValue) {
|
|
slotIcon.value = (_b = flattenFragments(slotValue).filter((node) => node.type === Text && node.children && typeof node.children === "string")[0]) == null ? void 0 : _b.children;
|
|
}
|
|
return createVNode(iconData.value.component, {
|
|
"tag": props.tag,
|
|
"icon": iconData.value.icon,
|
|
"class": ["v-icon", "notranslate", themeClasses.value, sizeClasses.value, textColorClasses.value, {
|
|
"v-icon--clickable": !!attrs.onClick,
|
|
"v-icon--start": props.start,
|
|
"v-icon--end": props.end
|
|
}, props.class],
|
|
"style": [!sizeClasses.value ? {
|
|
fontSize: convertToUnit(props.size),
|
|
height: convertToUnit(props.size),
|
|
width: convertToUnit(props.size)
|
|
} : void 0, textColorStyles.value, props.style],
|
|
"role": attrs.onClick ? "button" : void 0,
|
|
"aria-hidden": !attrs.onClick
|
|
}, {
|
|
default: () => [slotValue]
|
|
});
|
|
});
|
|
return {};
|
|
}
|
|
});
|
|
|
|
export {
|
|
makeSizeProps,
|
|
useSize,
|
|
VIcon
|
|
};
|
|
//# sourceMappingURL=chunk-IFUDBK56.js.map
|