@anoki/fse-ui
Version:
FSE UI components library
211 lines (210 loc) • 7.36 kB
JavaScript
import * as p from "react";
import { composeEventHandlers as m } from "./index.es479.js";
import { composeRefs as E } from "./index.es478.js";
import { createContextScope as S } from "./index.es477.js";
import { useControllableState as P } from "./index.es482.js";
import { Primitive as y } from "./index.es487.js";
import { createMenuScope as v, Root as O, Anchor as T, Portal as j, Content as G, Group as k, Item as L, Label as K, CheckboxItem as U, RadioGroup as B, RadioItem as F, ItemIndicator as H, Separator as W, Arrow as $, SubTrigger as X, SubContent as q } from "./index.es520.js";
import { useId as g } from "./index.es481.js";
import { j as a } from "./index.es237.js";
var f = "DropdownMenu", [z] = S(
f,
[v]
), s = v(), [J, D] = z(f), _ = (o) => {
const {
__scopeDropdownMenu: n,
children: e,
dir: r,
open: t,
defaultOpen: i,
onOpenChange: c,
modal: d = !0
} = o, u = s(n), M = p.useRef(null), [l, w] = P({
prop: t,
defaultProp: i ?? !1,
onChange: c,
caller: f
});
return /* @__PURE__ */ a.jsx(
J,
{
scope: n,
triggerId: g(),
triggerRef: M,
contentId: g(),
open: l,
onOpenChange: w,
onOpenToggle: p.useCallback(() => w((C) => !C), [w]),
modal: d,
children: /* @__PURE__ */ a.jsx(O, { ...u, open: l, onOpenChange: w, dir: r, modal: d, children: e })
}
);
};
_.displayName = f;
var x = "DropdownMenuTrigger", R = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, disabled: r = !1, ...t } = o, i = D(x, e), c = s(e);
return /* @__PURE__ */ a.jsx(T, { asChild: !0, ...c, children: /* @__PURE__ */ a.jsx(
y.button,
{
type: "button",
id: i.triggerId,
"aria-haspopup": "menu",
"aria-expanded": i.open,
"aria-controls": i.open ? i.contentId : void 0,
"data-state": i.open ? "open" : "closed",
"data-disabled": r ? "" : void 0,
disabled: r,
...t,
ref: E(n, i.triggerRef),
onPointerDown: m(o.onPointerDown, (d) => {
!r && d.button === 0 && d.ctrlKey === !1 && (i.onOpenToggle(), i.open || d.preventDefault());
}),
onKeyDown: m(o.onKeyDown, (d) => {
r || (["Enter", " "].includes(d.key) && i.onOpenToggle(), d.key === "ArrowDown" && i.onOpenChange(!0), ["Enter", " ", "ArrowDown"].includes(d.key) && d.preventDefault());
})
}
) });
}
);
R.displayName = x;
var Q = "DropdownMenuPortal", h = (o) => {
const { __scopeDropdownMenu: n, ...e } = o, r = s(n);
return /* @__PURE__ */ a.jsx(j, { ...r, ...e });
};
h.displayName = Q;
var I = "DropdownMenuContent", N = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = D(I, e), i = s(e), c = p.useRef(!1);
return /* @__PURE__ */ a.jsx(
G,
{
id: t.contentId,
"aria-labelledby": t.triggerId,
...i,
...r,
ref: n,
onCloseAutoFocus: m(o.onCloseAutoFocus, (d) => {
var u;
c.current || (u = t.triggerRef.current) == null || u.focus(), c.current = !1, d.preventDefault();
}),
onInteractOutside: m(o.onInteractOutside, (d) => {
const u = d.detail.originalEvent, M = u.button === 0 && u.ctrlKey === !0, l = u.button === 2 || M;
(!t.modal || l) && (c.current = !0);
}),
style: {
...o.style,
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
}
}
);
}
);
N.displayName = I;
var V = "DropdownMenuGroup", b = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(k, { ...t, ...r, ref: n });
}
);
b.displayName = V;
var Y = "DropdownMenuLabel", Z = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(K, { ...t, ...r, ref: n });
}
);
Z.displayName = Y;
var oo = "DropdownMenuItem", A = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(L, { ...t, ...r, ref: n });
}
);
A.displayName = oo;
var ro = "DropdownMenuCheckboxItem", eo = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(U, { ...t, ...r, ref: n });
});
eo.displayName = ro;
var no = "DropdownMenuRadioGroup", to = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(B, { ...t, ...r, ref: n });
});
to.displayName = no;
var ao = "DropdownMenuRadioItem", po = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(F, { ...t, ...r, ref: n });
});
po.displayName = ao;
var so = "DropdownMenuItemIndicator", io = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(H, { ...t, ...r, ref: n });
});
io.displayName = so;
var uo = "DropdownMenuSeparator", co = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(W, { ...t, ...r, ref: n });
});
co.displayName = uo;
var lo = "DropdownMenuArrow", wo = p.forwardRef(
(o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx($, { ...t, ...r, ref: n });
}
);
wo.displayName = lo;
var mo = "DropdownMenuSubTrigger", fo = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(X, { ...t, ...r, ref: n });
});
fo.displayName = mo;
var Mo = "DropdownMenuSubContent", go = p.forwardRef((o, n) => {
const { __scopeDropdownMenu: e, ...r } = o, t = s(e);
return /* @__PURE__ */ a.jsx(
q,
{
...t,
...r,
ref: n,
style: {
...o.style,
"--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
"--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
"--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
"--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
"--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
}
}
);
});
go.displayName = Mo;
var bo = _, Ao = R, Co = h, Eo = N, So = b, Po = A;
export {
Eo as Content,
_ as DropdownMenu,
wo as DropdownMenuArrow,
eo as DropdownMenuCheckboxItem,
N as DropdownMenuContent,
b as DropdownMenuGroup,
A as DropdownMenuItem,
io as DropdownMenuItemIndicator,
Z as DropdownMenuLabel,
h as DropdownMenuPortal,
to as DropdownMenuRadioGroup,
po as DropdownMenuRadioItem,
co as DropdownMenuSeparator,
go as DropdownMenuSubContent,
fo as DropdownMenuSubTrigger,
R as DropdownMenuTrigger,
So as Group,
Po as Item,
Co as Portal,
bo as Root,
Ao as Trigger
};
//# sourceMappingURL=index.es388.js.map