
"use client";
import { PropsWithChildren } from "react";
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
import { MenuProviderProps as MenuProviderProps$1 } from "@ariakit/react/menu";

//#region src/components/client/Menu/Menu.Provider.d.ts
/** Valid vertical placement values for the menu */
type VerticalPlacement = 'top' | 'bottom';
/** Valid horizontal placement values for the menu */
type HorizontalPlacement = 'start' | 'end';
/** Combined placement values for menu positioning */
type MenuPlacement = VerticalPlacement | HorizontalPlacement | `${VerticalPlacement}-${HorizontalPlacement}` | `${HorizontalPlacement}-${VerticalPlacement}`;
type MenuProviderProps = PropsWithChildren<{
  /**
   * A callback that gets called when the
   * [`values`](https://ariakit.org/reference/menu-provider#values) state
   * changes.
   *
   * Live examples:
   * - [`MenuItemCheckbox`](https://uds.build/docs/components/menu-item-checkbox).
   */
  setValues?: (values: Record<string, boolean>) => void | MenuProviderProps$1['setValues'];
  /**
   * A map of names and values that will be used by the
   * [`MenuItemCheckbox`](https://uds.build/docs/components/menu-item-checkbox).
   *
   * Live examples:
   * - [MenuItemCheckbox](https://uds.build/docs/components/menu-item-checkbox)
   */
  values?: MenuProviderProps$1['values'];
  /**
   * The placement of the Menu.Content.
   *
   * @default 'bottom'
   */
  placement?: MenuPlacement;
  /**
   * Object returned by the [`useMenuStore`](https://ariakit.org/reference/use-menu-store) hook.
   * If not provided, the closest [`Menu.Content`](https://uds.build/docs/components/menu#menu-content) or
   * [`Menu.Provider`](https://uds.build/docs/components/menu#menu-provider) context will be used.
   */
  store?: MenuProviderProps$1['store'];
  /**
   * Whether the menu should be rendered in RTL direction.
   *
   * This only affects the some component behavior behavior. You still need to set
   * `dir="rtl"` on HTML/CSS.
   * @default false
   */
  rtl?: MenuProviderProps$1['rtl'];
  /**
   * Whether the content is visible.
   * @default false
   */
  open?: MenuProviderProps$1['open'];
  /**
   * A callback that gets called when the
   * [`open`](https://ariakit.org/reference/disclosure-provider#open) state
   * changes.
   * @example
   * const [open, setOpen] = useState(false);
   * const disclosure = useDisclosureStore({ open, setOpen });
   */
  setOpen?: MenuProviderProps$1['setOpen'];
  /**
   * Whether the content should be visible by default.
   * @default false
   */
  defaultOpen?: MenuProviderProps$1['defaultOpen'];
  /**
   * Determines how the focus behaves when the user reaches the end of the
   * composite widget.
   *
   * Live examples:
   * - [Command Menu](https://uds.build/docs/components/menu)
   * @default false
   */
  focusLoop?: MenuProviderProps$1['focusLoop'];
  /**
   * If enabled, moving to the next item from the last one in a row or column
   * will focus on the first item in the next row or column and vice-versa.
   * `true` wraps between rows and columns, `horizontal` wraps only between rows, and `vertical` wraps only between columns.
   *
   * @default false
   */
  focusWrap?: MenuProviderProps$1['focusWrap'];
}>;
/**
 * **🏗️ A Menu Provider component**
 *
 * @componentType Server component
 *
 * @description
 * A provider component for the menu, which is used to provide the menu context to the menu items.
 *
 * @see The {@link https://uds.build/docs/components/menu-provider Menu.Provider Docs} for more info
 *
 * @example
 * ```tsx
 * 'use client'; // Next.js client component
 *
 * import { Menu, Button } from "@yahoo/uds";
 * import { Calendar, Clipboard } from "@yahoo/uds-icons";
 *
 * export function MenuProviderExample() {
 *   return (
 *     <Menu.Provider>
 *       <Menu.Trigger asChild>
 *         <Button>Menu Options</Button>
 *       </Menu.Trigger>
 *       <Menu.Content>
 *         <Menu.Item startIcon={Calendar}>Calendar</Menu.Item>
 *         <Menu.Item startIcon={Clipboard} endIcon={DiagonalRightUp}>
 *           Clipboard
 *         </Menu.Item>
 *         <Menu.Item active>Active Item</Menu.Item>
 *       </Menu.Content>
 *     </Menu.Provider>
 *   )
 * }
 * ```
 *
 * @usage
 * Use MenuItem for standard menu options that trigger actions or navigate to other parts of the application.
 * The active prop can be used to highlight the currently selected item.
 *
 * @related [Menu](https://uds.build/docs/components/menu), [Menu.ItemCheckbox](https://uds.build/docs/components/menu-item-checkbox)
 **/
declare const MenuProvider: {
  ({
    placement,
    rtl: explicitRtl,
    ...props
  }: MenuProviderProps): _$react_jsx_runtime0.JSX.Element;
  displayName: string;
};
//#endregion
export { type MenuPlacement, MenuProvider, type MenuProviderProps };