@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
79 lines (78 loc) • 2.79 kB
JavaScript
import f from "./NeonLink.es.js";
import { resolveComponent as k, openBlock as i, createBlock as d, mergeProps as t, withKeys as l, withModifiers as r, withCtx as C, createElementVNode as s, renderSlot as a, createElementBlock as p, createCommentVNode as m } from "vue";
import S from "../../../_virtual/_plugin-vue_export-helper.es.js";
const c = { class: "neon-link__label" }, v = ["href"], $ = { class: "neon-link__label" }, b = { class: "neon-link__label" };
function w(n, e, K, R, z, A) {
const u = k("router-link"), y = k("neon-icon");
return n.routerUrl ? (i(), d(u, t({
key: 0,
class: [[
{ "neon-link--no-style": n.noStyle, "neon-link--active": n.activeRoute, "neon-link--exact-active": n.exactRoute },
`neon-link--outline-${n.outlineStyle}`
], "neon-link neon-link--router-link"],
to: n.routerUrl,
tabindex: "0"
}, n.sanitizedAttributes, {
onClick: n.onClick,
onKeydown: [
l(n.onClick, ["enter"]),
l(r(n.onSpace, ["prevent"]), ["space"])
]
}), {
default: C(() => [
s("span", c, [
a(n.$slots, "default")
])
]),
_: 3
}, 16, ["class", "to", "onClick", "onKeydown"])) : n.href ? (i(), p("a", t({
key: 1,
class: [[
{
"neon-link--no-style": n.noStyle,
"neon-link--with-external-indicator": n.externalIndicator,
"neon-link--active": n.activeRoute,
"neon-link--exact-active": n.exactRoute
},
`neon-link--outline-${n.outlineStyle}`
], "neon-link neon-link--external-link"],
href: n.href,
rel: "noopener",
tabindex: "0"
}, n.sanitizedAttributes, {
onClick: e[0] || (e[0] = (...o) => n.onClick && n.onClick(...o)),
onKeydown: [
e[1] || (e[1] = l((...o) => n.onClick && n.onClick(...o), ["enter"])),
e[2] || (e[2] = l(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
]
}), [
s("span", $, [
a(n.$slots, "default"),
n.externalIndicator ? (i(), d(y, {
key: 0,
class: "neon-link__external-indicator",
color: "low-contrast",
name: "link-external"
})) : m("", !0)
])
], 16, v)) : (i(), p("a", t({
key: 2,
class: [[{ "neon-link--no-style": n.noStyle }, `neon-link--outline-${n.outlineStyle}`], "neon-link"],
tabindex: "0"
}, n.sanitizedAttributes, {
onClick: e[3] || (e[3] = (...o) => n.onClick && n.onClick(...o)),
onKeydown: [
e[4] || (e[4] = l((...o) => n.onClick && n.onClick(...o), ["enter"])),
e[5] || (e[5] = l(r((...o) => n.onSpace && n.onSpace(...o), ["prevent"]), ["space"]))
]
}), [
s("span", b, [
a(n.$slots, "default")
])
], 16));
}
const I = /* @__PURE__ */ S(f, [["render", w]]);
export {
I as default
};
//# sourceMappingURL=NeonLink.vue.es.js.map