UNPKG

@trail-ui/react

Version:
21 lines (19 loc) 815 B
// 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 };