@konstructio/ui
Version:
A set of reusable and customizable React components built for konstruct.io
80 lines (79 loc) • 6.63 kB
JavaScript
import { jsxs as m, jsx as r } from "react/jsx-runtime";
import { useRef as v, useState as w, useCallback as x, useEffect as y } from "react";
import { cn as u } from "../../utils/index.js";
import { buttonDismissVariants as M, badgeVariants as Z } from "./Badge.variants.js";
import { c as N } from "../../createLucideIcon-Ck_e4796.js";
/**
* @license lucide-react v0.534.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const V = [
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
], I = N("x", V), L = "data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20%3e%3cpath%20d='M7.05002%201.45002C7.05002%201.17155%206.9394%200.904476%206.74249%200.707562C6.54557%200.510649%206.2785%200.400024%206.00002%200.400024C5.72155%200.400024%205.45448%200.510649%205.25756%200.707562C5.06065%200.904476%204.95002%201.17155%204.95002%201.45002C4.95002%201.7285%205.06065%201.99557%205.25756%202.19249C5.45448%202.3894%205.72155%202.50002%206.00002%202.50002C6.2785%202.50002%206.54557%202.3894%206.74249%202.19249C6.9394%201.99557%207.05002%201.7285%207.05002%201.45002ZM7.05002%2010.55C7.05002%2010.2715%206.9394%2010.0045%206.74249%209.80756C6.54557%209.61065%206.2785%209.50002%206.00002%209.50002C5.72155%209.50002%205.45448%209.61065%205.25756%209.80756C5.06065%2010.0045%204.95002%2010.2715%204.95002%2010.55C4.95002%2010.8285%205.06065%2011.0956%205.25756%2011.2925C5.45448%2011.4894%205.72155%2011.6%206.00002%2011.6C6.2785%2011.6%206.54557%2011.4894%206.74249%2011.2925C6.9394%2011.0956%207.05002%2010.8285%207.05002%2010.55ZM1.45002%207.05002C1.7285%207.05002%201.99557%206.9394%202.19249%206.74249C2.3894%206.54557%202.50002%206.2785%202.50002%206.00002C2.50002%205.72155%202.3894%205.45448%202.19249%205.25756C1.99557%205.06065%201.7285%204.95002%201.45002%204.95002C1.17155%204.95002%200.904476%205.06065%200.707562%205.25756C0.510649%205.45448%200.400024%205.72155%200.400024%206.00002C0.400024%206.2785%200.510649%206.54557%200.707562%206.74249C0.904476%206.9394%201.17155%207.05002%201.45002%207.05002ZM11.6%206.00002C11.6%205.72155%2011.4894%205.45448%2011.2925%205.25756C11.0956%205.06065%2010.8285%204.95002%2010.55%204.95002C10.2715%204.95002%2010.0045%205.06065%209.80756%205.25756C9.61065%205.45448%209.50002%205.72155%209.50002%206.00002C9.50002%206.2785%209.61065%206.54557%209.80756%206.74249C10.0045%206.9394%2010.2715%207.05002%2010.55%207.05002C10.8285%207.05002%2011.0956%206.9394%2011.2925%206.74249C11.4894%206.54557%2011.6%206.2785%2011.6%206.00002ZM3.52596%209.9594C3.62349%209.86187%203.70085%209.74609%203.75363%209.61867C3.80641%209.49124%203.83358%209.35467%203.83358%209.21674C3.83358%209.07882%203.80641%208.94225%203.75363%208.81482C3.70085%208.6874%203.62349%208.57161%203.52596%208.47409C3.42844%208.37656%203.31265%208.2992%203.18523%208.24642C3.0578%208.19364%202.92123%208.16647%202.78331%208.16647C2.50476%208.16647%202.23761%208.27712%202.04065%208.47409C1.84368%208.67105%201.73303%208.93819%201.73303%209.21674C1.73303%209.49529%201.84368%209.76243%202.04065%209.9594C2.23761%2010.1564%202.50476%2010.267%202.78331%2010.267C3.06186%2010.267%203.329%2010.1564%203.52596%209.9594ZM3.52596%203.52377C3.62833%203.42738%203.7103%203.31141%203.76701%203.18274C3.82371%203.05407%203.85399%202.91532%203.85605%202.77472C3.85812%202.63413%203.83192%202.49455%203.77902%202.36427C3.72611%202.23399%203.64758%202.11566%203.54808%202.01631C3.44858%201.91695%203.33014%201.8386%203.19978%201.78589C3.06942%201.73318%202.92981%201.70718%202.78921%201.70945C2.64862%201.71172%202.50992%201.74221%202.38133%201.7991C2.25274%201.85599%202.13689%201.93814%202.04065%202.04065C1.84368%202.23761%201.73303%202.50476%201.73303%202.78331C1.73303%203.06186%201.84368%203.329%202.04065%203.52596C2.23761%203.72293%202.50476%203.83358%202.78331%203.83358C3.06186%203.83358%203.329%203.72293%203.52596%203.52596V3.52377ZM8.47409%209.9594C8.57161%2010.0569%208.6874%2010.1343%208.81482%2010.1871C8.94225%2010.2399%209.07882%2010.267%209.21674%2010.267C9.35467%2010.267%209.49124%2010.2399%209.61867%2010.1871C9.74609%2010.1343%209.86187%2010.0569%209.9594%209.9594C10.0569%209.86187%2010.1343%209.74609%2010.1871%209.61867C10.2399%209.49124%2010.267%209.35467%2010.267%209.21674C10.267%209.07882%2010.2399%208.94225%2010.1871%208.81482C10.1343%208.6874%2010.0569%208.57161%209.9594%208.47409C9.86187%208.37656%209.74609%208.2992%209.61867%208.24642C9.49124%208.19364%209.35467%208.16647%209.21674%208.16647C9.07882%208.16647%208.94225%208.19364%208.81482%208.24642C8.6874%208.2992%208.57161%208.37656%208.47409%208.47409C8.37656%208.57161%208.2992%208.6874%208.24642%208.81482C8.19364%208.94225%208.16647%209.07882%208.16647%209.21674C8.16647%209.35467%208.19364%209.49124%208.24642%209.61867C8.2992%209.74609%208.37656%209.86187%208.47409%209.9594Z'%20fill='currentColor'%20/%3e%3c/svg%3e", _ = ({
className: p,
dismissible: b = !1,
label: s,
loading: o = !1,
size: n,
variant: l,
onClick: e,
onDismiss: C
}) => {
const t = v(null), [f, h] = w("visible"), g = x(
(a) => {
a.stopPropagation(), C == null || C(), h("hidden");
},
[C]
);
return y(() => {
var i;
const a = new AbortController();
return (i = t.current) == null || i.addEventListener(
"animationend",
() => {
var c, d;
(c = t.current) == null || c.style.setProperty("display", "none"), (d = t.current) == null || d.remove();
},
{ signal: a.signal }
), () => a.abort();
}, []), /* @__PURE__ */ m(
"span",
{
ref: t,
className: u(
Z({ variant: l, size: n, className: p }),
e && "cursor-pointer"
),
role: e ? "button" : void 0,
onClick: e,
tabIndex: e ? 0 : void 0,
"aria-label": e ? `${s} badge` : void 0,
"aria-busy": o,
"aria-live": "polite",
"data-state": f,
children: [
o && /* @__PURE__ */ r(L, { className: "h-3 w-3 animate-spin animate-duration-time-2" }),
s,
b && /* @__PURE__ */ m(
"button",
{
type: "button",
className: u(M({ size: n, variant: l })),
onClick: g,
"aria-label": "Dismiss",
children: [
/* @__PURE__ */ r(I, { className: "h-full w-full" }),
/* @__PURE__ */ r("span", { className: "sr-only", children: "Dismiss" })
]
}
)
]
}
);
};
export {
_ as Badge
};