import { w as withInstall } from "../badge/index2.js"; import { defineComponent, ref, computed, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, renderSlot, createCommentVNode, createElementVNode, withModifiers, createVNode } from "vue"; import { _ as _sfc_main$2E } from "../checkbox/index2.js"; import { T as TinyColor } from "../_chunks/@ctrl/index.js"; var index = /* @__PURE__ */ (() => ".layui-tag{--layui-tag-bg-color: #fafafa;--layui-tag-border-color: #f0f0f0;--layui-tag-hover-color: #FFF;--layui-tag-text-color: currentColor;display:inline-flex;align-items:baseline;vertical-align:middle;box-sizing:border-box;height:26px;line-height:26px;padding:0 8px;font-size:14px;font-weight:500;color:var(--layui-tag-text-color);background-color:var(--layui-tag-bg-color);border-width:1px;border-style:solid;border-color:transparent;border-radius:var(--global-border-radius)}.layui-tag-icon{margin-right:4px}.layui-tag-bordered{border-color:var(--layui-tag-border-color)}.layui-tag-disabled{opacity:.4;cursor:not-allowed}.layui-tag-disabled .layui-tag-close-icon .layui-icon:hover{cursor:not-allowed!important;opacity:1}.layui-tag-shap-square{border-radius:var(--global-border-radius)}.layui-tag-shap-round{border-radius:12px}.layui-tag .layui-tag-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-tag .layui-tag-close-icon{margin-left:4px;font-size:14px}.layui-tag .layui-tag-close-icon .layui-icon:hover{cursor:pointer;opacity:.5}.layui-tag-size-lg{height:30px;font-size:14px;line-height:30px}.layui-tag .layui-icon{font-size:14px}.layui-tag-size-md{height:26px;font-size:14px;line-height:26px}.layui-tag .layui-icon{font-size:14px}.layui-tag-size-sm{height:22px;font-size:12px;line-height:22px}.layui-tag-size-xs{height:18px;font-size:12px;line-height:18px}.layui-tag .layui-icon{font-size:12px}.layui-tag-primary{--layui-tag-bg-color: #009688;--layui-tag-border-color: transparent;--layui-tag-hover-color: #009688;--layui-tag-text-color: #FFF}.layui-tag-primary-bordered{--layui-tag-border-color: #009688}.layui-tag-primary.layui-tag-variant-light{--layui-tag-bg-color: #e6f5f3;--layui-tag-border-color: transparent;--layui-tag-hover-color: #e6f5f3;--layui-tag-text-color: #009688}.layui-tag-primary.layui-tag-variant-light-bordered{--layui-tag-border-color: #80cbc4}.layui-tag-primary.layui-tag-variant-plain{--layui-tag-bg-color: transparent;--layui-tag-hover-color: transparent;--layui-tag-text-color: #009688;--layui-tag-border-color: transparent}.layui-tag-primary.layui-tag-variant-plain-bordered{--layui-tag-border-color: #009688}.layui-tag-normal{--layui-tag-bg-color: #1e9fff;--layui-tag-border-color: transparent;--layui-tag-hover-color: #1e9fff;--layui-tag-text-color: #FFF}.layui-tag-normal-bordered{--layui-tag-border-color: #1e9fff}.layui-tag-normal.layui-tag-variant-light{--layui-tag-bg-color: #e9f5ff;--layui-tag-border-color: transparent;--layui-tag-hover-color: #e9f5ff;--layui-tag-text-color: #1e9fff}.layui-tag-normal.layui-tag-variant-light-bordered{--layui-tag-border-color: #8fcfff}.layui-tag-normal.layui-tag-variant-plain{--layui-tag-bg-color: transparent;--layui-tag-hover-color: transparent;--layui-tag-text-color: #1e9fff;--layui-tag-border-color: transparent}.layui-tag-normal.layui-tag-variant-plain-bordered{--layui-tag-border-color: #1e9fff}.layui-tag-warm{--layui-tag-bg-color: #ffb800;--layui-tag-border-color: transparent;--layui-tag-hover-color: #ffb800;--layui-tag-text-color: #FFF}.layui-tag-warm-bordered{--layui-tag-border-color: #ffb800}.layui-tag-warm.layui-tag-variant-light{--layui-tag-bg-color: #fff8e6;--layui-tag-border-color: transparent;--layui-tag-hover-color: #fff8e6;--layui-tag-text-color: #ffb800}.layui-tag-warm.layui-tag-variant-light-bordered{--layui-tag-border-color: #ffdc80}.layui-tag-warm.layui-tag-variant-plain{--layui-tag-bg-color: transparent;--layui-tag-hover-color: transparent;--layui-tag-text-color: #ffb800;--layui-tag-border-color: transparent}.layui-tag-warm.layui-tag-variant-plain-bordered{--layui-tag-border-color: #ffb800}.layui-tag-danger{--layui-tag-bg-color: #ff5722;--layui-tag-border-color: transparent;--layui-tag-hover-color: #ff5722;--layui-tag-text-color: #FFF}.layui-tag-danger-bordered{--layui-tag-border-color: #ff5722}.layui-tag-danger.layui-tag-variant-light{--layui-tag-bg-color: #ffeee9;--layui-tag-border-color: transparent;--layui-tag-hover-color: #ffeee9;--layui-tag-text-color: #ff5722}.layui-tag-danger.layui-tag-variant-light-bordered{--layui-tag-border-color: #ffab91}.layui-tag-danger.layui-tag-variant-plain{--layui-tag-bg-color: transparent;--layui-tag-hover-color: transparent;--layui-tag-text-color: #ff5722;--layui-tag-border-color: transparent}.layui-tag-danger.layui-tag-variant-plain-bordered{--layui-tag-border-color: #ff5722}\n")(); const _hoisted_1 = { key: 0, class: "layui-tag-icon" }; const _hoisted_2 = { class: "layui-tag-text" }; const _hoisted_3 = ["onClick"]; const __default__ = { name: "LayTag" }; const _sfc_main = defineComponent({ ...__default__, props: { type: null, color: null, closable: { type: Boolean }, size: { default: "md" }, bordered: { type: Boolean, default: true }, disabled: { type: Boolean }, shape: { default: "square" }, maxWidth: null, variant: { default: "dark" } }, emits: ["close", "check", "update:checked"], setup(__props, { emit }) { const props = __props; const visible = ref(true); const handleClose = (e) => { if (props.disabled) return; emit("close", e); }; const classTag = computed(() => [ "layui-tag", `layui-tag-size-${props.size}`, `layui-tag-shap-${props.shape}`, { [`layui-tag-variant-${props.variant}`]: props.variant, [`layui-tag-variant-${props.variant}-bordered`]: props.bordered, [`layui-tag-${props.type}-bordered`]: props.bordered, [`layui-tag-${props.type}`]: props.type, "layui-tag-bordered": props.bordered, "layui-tag-disabled": props.disabled } ]); const styleTag = computed(() => { var _a; return [ { "max-width": (_a = props.maxWidth) != null ? _a : "100%", ...useTagCustomStyle(props).value } ]; }); function useTagCustomStyle(props2) { return computed(() => { let styles = {}; const tagColor = props2.color; if (tagColor) { const color = new TinyColor(tagColor); if (props2.variant === "dark") { const isDark = color.getBrightness() < 190; const textColor = isDark ? "#FFF" : "#000000"; styles = { "--layui-tag-bg-color": tagColor, "--layui-tag-border-color": props2.bordered ? tagColor : "transparent", "--layui-tag-hover-color": tagColor, "--layui-tag-text-color": textColor }; } else if (props2.variant === "light") { styles = { "--layui-tag-bg-color": color.tint(90).toString(), "--layui-tag-border-color": props2.bordered ? color.tint(50).toString() : "transparent", "--layui-tag-hover-color": color.tint(90).toString(), "--layui-tag-text-color": tagColor }; } else if (props2.variant === "plain") { styles = { "--layui-tag-bg-color": "transparent", "--layui-tag-border-color": props2.bordered ? tagColor : "transparent", "--layui-tag-hover-color": "transparent", "--layui-tag-text-color": tagColor }; } } return styles; }); } return (_ctx, _cache) => { return visible.value ? (openBlock(), createElementBlock("span", { key: 0, class: normalizeClass(unref(classTag)), style: normalizeStyle(unref(styleTag)) }, [ _ctx.$slots.icon ? (openBlock(), createElementBlock("span", _hoisted_1, [ renderSlot(_ctx.$slots, "icon") ])) : createCommentVNode("", true), createElementVNode("span", _hoisted_2, [ renderSlot(_ctx.$slots, "default") ]), __props.closable ? (openBlock(), createElementBlock("span", { key: 1, class: "layui-tag-close-icon", onClick: withModifiers(handleClose, ["stop"]) }, [ renderSlot(_ctx.$slots, "close-icon", {}, () => [ createVNode(unref(_sfc_main$2E), { type: "layui-icon-close" }) ]) ], 8, _hoisted_3)) : createCommentVNode("", true) ], 6)) : createCommentVNode("", true); }; } }); const component = withInstall(_sfc_main); export { _sfc_main as _, component as c };