welcome-ui
Version:
Customizable design system with react, typescript, tailwindcss and ariakit.
38 lines (37 loc) • 1.39 kB
JavaScript
"use client";
import { c as p } from "./WLZ6H5FH-CuTcX7sR.js";
import { u as P } from "./HMKTUWOU-NkVXWCyR.js";
import { f as g, c as C, a as x, i as k, m as S, K as b, u as N, q as R } from "./U6HHPQDW-CzxyP5H7.js";
import { useRef as w, useState as y, useEffect as B } from "react";
var M = "button", O = Symbol("disclosure"), T = C(
function({ store: e, toggleOnClick: o = !0, ...t }) {
const i = p();
e = e || i, k(
e,
process.env.NODE_ENV !== "production" && "Disclosure must receive a `store` prop or be wrapped in a DisclosureProvider component."
);
const r = w(null), [d, m] = y(!1), s = e.useState("disclosureElement"), u = e.useState("open");
B(() => {
let n = s === r.current;
s != null && s.isConnected || (e == null || e.setDisclosureElement(r.current), n = !0), m(u && n);
}, [s, e, u]);
const l = t.onClick, f = S(o), [v, D] = b(t, O, !0), E = N((n) => {
l == null || l(n), !n.defaultPrevented && (v || f(n) && (e == null || e.setDisclosureElement(n.currentTarget), e == null || e.toggle()));
}), a = e.useState("contentElement");
return t = {
"aria-expanded": d,
"aria-controls": a == null ? void 0 : a.id,
...D,
...t,
ref: R(r, t.ref),
onClick: E
}, t = P(t), t;
}
), V = g(function(e) {
const o = T(e);
return x(M, o);
});
export {
V as D,
T as u
};