@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
97 lines (96 loc) • 3.79 kB
JavaScript
import w from "./NeonDropdownMenu.es.js";
import { resolveComponent as i, openBlock as d, createBlock as r, mergeProps as b, withCtx as u, createElementVNode as l, createElementBlock as s, Fragment as f, renderList as k, normalizeClass as y, createCommentVNode as t, toDisplayString as p } from "vue";
import g from "../../../_virtual/_plugin-vue_export-helper.es.js";
const h = {
class: "no-style neon-dropdown-menu__items",
role: "menu"
}, v = ["onMouseover"], $ = {
key: 0,
class: "neon-dropdown-menu__item-container"
}, B = { class: "neon-dropdown-menu__item-label" }, C = { class: "neon-dropdown-menu__item-label" }, V = ["onClick"], z = { class: "neon-dropdown-menu__item-label" };
function D(n, o, H, P, F, M) {
const a = i("neon-icon"), m = i("neon-link"), _ = i("neon-dropdown");
return d(), r(_, b({
ref: "dropdown",
modelValue: n.open,
"onUpdate:modelValue": o[0] || (o[0] = (e) => n.open = e),
class: [`neon-dropdown-menu--${n.color}`, "neon-dropdown-menu"],
color: n.color,
disabled: n.disabled,
openOnHover: n.openOnHover,
size: n.size
}, n.attrs, {
onBlur: o[1] || (o[1] = (e) => n.onBlur()),
onButton: o[2] || (o[2] = (e) => n.emit("button-ref", e)),
onFocus: o[3] || (o[3] = (e) => n.onFocus()),
"onUpdate:modelValue": o[4] || (o[4] = (e) => n.open = e),
onDropdownPlacement: n.onPlacement
}), {
default: u(() => [
l("ul", h, [
(d(!0), s(f, null, k(n.model, (e) => (d(), s("li", {
key: e.key,
ref_for: !0,
ref: "items",
class: y([[
{
"neon-dropdown-menu__item--disabled": e.disabled,
"neon-dropdown-menu__item--separator-before": e.separatorBefore,
"neon-dropdown-menu__item--group-title": e.isGroup,
"neon-dropdown-menu__item--grouped": e.grouped,
"neon-dropdown-menu__item--highlighted": e.key === n.highlightedKey
},
`neon-dropdown-menu__item--${n.size}`
], "neon-dropdown-menu__item"]),
onMouseover: (c) => n.changeHighlighted(e.key)
}, [
e.isGroup ? (d(), s("div", $, [
e.icon ? (d(), r(a, {
key: 0,
disabled: e.disabled,
name: e.icon,
class: "neon-dropdown-menu__item-icon"
}, null, 8, ["disabled", "name"])) : t("", !0),
l("span", B, p(e.label), 1)
])) : e.href && !e.disabled ? (d(), r(m, {
key: 1,
href: e.href,
"no-style": !0,
"outline-style": "none",
role: "menuitem"
}, {
default: u(() => [
e.icon ? (d(), r(a, {
key: 0,
disabled: e.disabled,
name: e.icon,
class: "neon-dropdown-menu__item-icon"
}, null, 8, ["disabled", "name"])) : t("", !0),
l("span", C, p(e.label), 1)
]),
_: 2
}, 1032, ["href"])) : (d(), s("div", {
key: 2,
class: "neon-dropdown-menu__item-container",
role: "menuitem",
onClick: (c) => n.clickItem(e)
}, [
e.icon ? (d(), r(a, {
key: 0,
disabled: e.disabled,
name: e.icon,
class: "neon-dropdown-menu__item-icon"
}, null, 8, ["disabled", "name"])) : t("", !0),
l("span", z, p(e.label), 1)
], 8, V))
], 42, v))), 128))
])
]),
_: 1
}, 16, ["modelValue", "class", "color", "disabled", "openOnHover", "size", "onDropdownPlacement"]);
}
const G = /* @__PURE__ */ g(w, [["render", D]]);
export {
G as default
};
//# sourceMappingURL=NeonDropdownMenu.vue.es.js.map