@trail-ui/react
Version:
21 lines (19 loc) • 815 B
JavaScript
// src/listbox/listbox.tsx
import { clsx } from "@trail-ui/shared-utils";
import { menu } from "@trail-ui/theme";
import { createContext, useMemo } from "react";
import { ListBox as AriaListBox } from "react-aria-components";
import { jsx } from "react/jsx-runtime";
var InternalListBoxContext = createContext(
{}
);
function ListBox(props) {
const { children, className, classNames, itemClasses, ...otherProps } = props;
const slots = useMemo(() => menu(), []);
const baseStyles = clsx(classNames == null ? void 0 : classNames.base, className);
return /* @__PURE__ */ jsx(InternalListBoxContext.Provider, { value: { itemClasses }, children: /* @__PURE__ */ jsx(AriaListBox, { className: slots.base({ class: baseStyles }), ...otherProps, children }) });
}
export {
InternalListBoxContext,
ListBox
};