
"use client";
import { UniversalMenuItemProps } from "../../../types/dist/index.js";
import { PressableProps } from "../Pressable.js";
import * as _$react from "react";
import { HTMLAttributes } from "react";
import { MenuItemCheckboxProps as MenuItemCheckboxProps$1 } from "@ariakit/react/menu";

//#region src/components/client/Menu/Menu.ItemCheckbox.d.ts
type HtmlButtonProps = HTMLAttributes<HTMLButtonElement>;
interface MenuItemCheckboxProps extends Omit<PressableProps, 'asChild'>, HtmlButtonProps, UniversalMenuItemProps {
  /**
   * The name of the field in the
   * [`values`](https://ariakit.org/reference/menu-provider#values) state.
   *
   * Live examples at [MenuItemCheckbox](https://ariakit.org/examples/menu-item-checkbox)
   */
  name: string;
  /**
   * The controlled checked state of the element. It will set the menu
   * [`values`](https://ariakit.org/reference/menu-provider#values) state if
   * provided.
   */
  checked?: boolean;
  /**
   * The default checked state of the element. It will set the default value in
   * the menu [`values`](https://ariakit.org/reference/menu-provider#values)
   * state if provided.
   */
  defaultChecked?: boolean;
  /**
   * 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?: MenuItemCheckboxProps$1['store'];
  /**
   * Determines if the menu should hide when this item is clicked.
   *
   * **Note**: This behavior isn't triggered if this menu item is rendered as a
   * link and modifier keys are used to either open the link in a new tab or
   * download it.
   *
   * @default undefined
   */
  hideOnClick?: MenuItemCheckboxProps$1['hideOnClick'];
  /**
   * Determines if the menu item should be _focused_ when hovered over.
   *
   * Note that the actual DOM focus will stay on the composite element. This
   * item will get the
   * [`data-active-item`](https://ariakit.org/guide/styling#data-active-item)
   * attribute so it can be styled as if it's focused.
   *
   * @default true
   */
  focusOnHover?: MenuItemCheckboxProps$1['focusOnHover'];
  /**
   * Determines if the menu item should lose focus when the mouse leaves. By
   * default, this is set to `true` if
   * [`focusOnHover`](https://ariakit.org/reference/composite-hover#focusonhover)
   * is `true`.
   */
  blurOnHoverEnd?: MenuItemCheckboxProps$1['blurOnHoverEnd'];
  /**
   * When set to `true`, the [roving
   * tabindex](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex)
   * method is partially disabled for this element. This means that the
   * `tabIndex` prop won't be assigned `-1` when the item is inactive. In
   * addition to using arrow keys, users will be able to tab to this element,
   * leading to the menu no longer existing as a single tab stop.
   *
   * **Note**: This prop has no effect when the
   * [`virtualFocus`](https://ariakit.org/reference/menu-provider#virtualfocus)
   * option is enabled.
   */
  tabbable?: MenuItemCheckboxProps$1['tabbable'];
  /**
   * Determines if [Focusable](https://ariakit.org/reference/focusable)
   * features should be active on non-native focusable elements.
   *
   * **Note**: This prop only turns off the additional features provided by
   * the [`Focusable`](https://ariakit.org/reference/focusable) component.
   * Non-native focusable elements will lose their focusability entirely.
   * However, native focusable elements will retain their inherent
   * focusability.
   *
   * @default true
   */
  focusable?: MenuItemCheckboxProps$1['focusable'];
}
/**
 * **✅ A Menu Item Checkbox component**
 *
 * @componentType Client component
 *
 * @description
 * A checkable menu item that toggles between selected and unselected states. Menu item checkboxes
 * allow users to select multiple options from a menu, displaying a checkmark when active. They maintain
 * their state even when the menu is closed and reopened.
 *
 * @see The {@link https://uds.build/docs/components/menu-item-checkbox Menu.ItemCheckbox Docs} for more info
 *
 * @example
 * ```tsx
 * 'use client'; // Next.js client component
 *
 * import { Menu, Button } from "@yahoo/uds";
 *
 * export function MenuItemCheckboxExample() {
 *   return (
 *     <Menu.Provider>
 *       <Menu.Trigger asChild>
 *         <Button>Filter Options</Button>
 *       </Menu.Trigger>
 *       <Menu.Content>
 *         <Menu.ItemCheckbox name="showArchived" defaultChecked={false}>
 *           Show Archived
 *         </Menu.ItemCheckbox>
 *         <Menu.ItemCheckbox name="includeComments" defaultChecked={true}>
 *           Include Comments
 *         </Menu.ItemCheckbox>
 *       </Menu.Content>
 *     </Menu.Provider>
 *   )
 * }
 * ```
 *
 * @usage
 * Use MenuItemCheckbox when you need to provide users with multiple selectable options within a menu.
 * Unlike radio options, checkboxes allow for multiple simultaneous selections.
 *
 * @related [Menu](https://uds.build/docs/components/menu), [Menu.Item](https://uds.build/docs/components/menu-item)
 **/
declare const MenuItemCheckbox: _$react.ForwardRefExoticComponent<Omit<MenuItemCheckboxProps, "active" | "hideEndIcon" | "rootProps"> & _$react.RefAttributes<HTMLDivElement>>;
//#endregion
export { MenuItemCheckbox, type MenuItemCheckboxProps };