UNPKG

@kloudlite/design-system

Version:

A design system for building ambitious products.

169 lines (168 loc) 9.29 kB
import * as React from 'react'; import { DismissableLayer } from '@radix-ui/react-dismissable-layer'; import { FocusScope } from '@radix-ui/react-focus-scope'; import * as PopperPrimitive from '@radix-ui/react-popper'; import { Portal as PortalPrimitive } from '@radix-ui/react-portal'; import { Primitive } from '@radix-ui/react-primitive'; import * as RovingFocusGroup from '@radix-ui/react-roving-focus'; import type * as Radix from '@radix-ui/react-primitive'; type Direction = 'ltr' | 'rtl'; declare const createMenuScope: import("@radix-ui/react-context").CreateScope; interface MenuProps { children?: React.ReactNode; open?: boolean; onOpenChange?(open: boolean): void; dir?: Direction; modal?: boolean; } declare const Menu: React.FC<MenuProps>; type PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>; interface MenuAnchorProps extends PopperAnchorProps { } declare const MenuAnchor: React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<HTMLDivElement>>; type PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>; interface MenuPortalProps { children?: React.ReactNode; /** * Specify a container element to portal the content into. */ container?: PortalProps['container']; /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const MenuPortal: React.FC<MenuPortalProps>; /** * We purposefully don't union MenuRootContent and MenuSubContent props here because * they have conflicting prop types. We agreed that we would allow MenuSubContent to * accept props that it would just ignore. */ interface MenuContentProps extends MenuRootContentTypeProps { /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const MenuContent: React.ForwardRefExoticComponent<MenuContentProps & React.RefAttributes<HTMLDivElement>>; interface MenuRootContentTypeProps extends Omit<MenuContentImplProps, keyof MenuContentImplPrivateProps> { } type FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>; type DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>; type RovingFocusGroupProps = Radix.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>; type PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>; type MenuContentImplPrivateProps = { onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus']; onDismiss?: DismissableLayerProps['onDismiss']; disableOutsidePointerEvents?: DismissableLayerProps['disableOutsidePointerEvents']; /** * Whether scrolling outside the `MenuContent` should be prevented * (default: `false`) */ disableOutsideScroll?: boolean; /** * Whether focus should be trapped within the `MenuContent` * (default: false) */ trapFocus?: FocusScopeProps['trapped']; }; interface MenuContentImplProps extends MenuContentImplPrivateProps, Omit<PopperContentProps, 'dir' | 'onPlaced'> { /** * Event handler called when auto-focusing on close. * Can be prevented. */ onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus']; /** * Whether keyboard navigation should loop around * @defaultValue false */ loop?: RovingFocusGroupProps['loop']; onEntryFocus?: RovingFocusGroupProps['onEntryFocus']; onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown']; onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside']; onFocusOutside?: DismissableLayerProps['onFocusOutside']; onInteractOutside?: DismissableLayerProps['onInteractOutside']; } type PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>; interface MenuGroupProps extends PrimitiveDivProps { } declare const MenuGroup: React.ForwardRefExoticComponent<MenuGroupProps & React.RefAttributes<HTMLDivElement>>; interface MenuLabelProps extends PrimitiveDivProps { } declare const MenuLabel: React.ForwardRefExoticComponent<MenuLabelProps & React.RefAttributes<HTMLDivElement>>; interface MenuItemProps extends Omit<MenuItemImplProps, 'onSelect'> { onSelect?: (event: Event) => void; } declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLDivElement>>; interface MenuItemImplProps extends PrimitiveDivProps { disabled?: boolean; textValue?: string; } type CheckedState = boolean | 'indeterminate'; interface MenuCheckboxItemProps extends MenuItemProps { checked?: CheckedState; onCheckedChange?: (checked: boolean) => void; } declare const MenuCheckboxItem: React.ForwardRefExoticComponent<MenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>; interface MenuRadioGroupProps extends MenuGroupProps { value?: string; onValueChange?: (value: string) => void; } declare const MenuRadioGroup: React.ForwardRefExoticComponent<MenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>; interface MenuRadioItemProps extends MenuItemProps { value: string; } declare const MenuRadioItem: React.ForwardRefExoticComponent<MenuRadioItemProps & React.RefAttributes<HTMLDivElement>>; type PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>; interface MenuItemIndicatorProps extends PrimitiveSpanProps { /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const MenuItemIndicator: React.ForwardRefExoticComponent<MenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>; interface MenuSeparatorProps extends PrimitiveDivProps { } declare const MenuSeparator: React.ForwardRefExoticComponent<MenuSeparatorProps & React.RefAttributes<HTMLDivElement>>; type PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>; interface MenuArrowProps extends PopperArrowProps { } declare const MenuArrow: React.ForwardRefExoticComponent<MenuArrowProps & React.RefAttributes<SVGSVGElement>>; interface MenuSubProps { children?: React.ReactNode; open?: boolean; onOpenChange?(open: boolean): void; } declare const MenuSub: React.FC<MenuSubProps>; interface MenuSubTriggerProps extends MenuItemImplProps { } declare const MenuSubTrigger: React.ForwardRefExoticComponent<MenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>; interface MenuSubContentProps extends Omit<MenuContentImplProps, keyof MenuContentImplPrivateProps | 'onCloseAutoFocus' | 'onEntryFocus' | 'side' | 'align'> { /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const MenuSubContent: React.ForwardRefExoticComponent<MenuSubContentProps & React.RefAttributes<HTMLDivElement>>; declare const Root: React.FC<MenuProps>; declare const Anchor: React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<HTMLDivElement>>; declare const Portal: React.FC<MenuPortalProps>; declare const Content: React.ForwardRefExoticComponent<MenuContentProps & React.RefAttributes<HTMLDivElement>>; declare const Group: React.ForwardRefExoticComponent<MenuGroupProps & React.RefAttributes<HTMLDivElement>>; declare const Label: React.ForwardRefExoticComponent<MenuLabelProps & React.RefAttributes<HTMLDivElement>>; declare const Item: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLDivElement>>; declare const CheckboxItem: React.ForwardRefExoticComponent<MenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>; declare const RadioGroup: React.ForwardRefExoticComponent<MenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>; declare const RadioItem: React.ForwardRefExoticComponent<MenuRadioItemProps & React.RefAttributes<HTMLDivElement>>; declare const ItemIndicator: React.ForwardRefExoticComponent<MenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>; declare const Separator: React.ForwardRefExoticComponent<MenuSeparatorProps & React.RefAttributes<HTMLDivElement>>; declare const Arrow: React.ForwardRefExoticComponent<MenuArrowProps & React.RefAttributes<SVGSVGElement>>; declare const Sub: React.FC<MenuSubProps>; declare const SubTrigger: React.ForwardRefExoticComponent<MenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>; declare const SubContent: React.ForwardRefExoticComponent<MenuSubContentProps & React.RefAttributes<HTMLDivElement>>; export { createMenuScope, Menu, MenuAnchor, MenuPortal, MenuContent, MenuGroup, MenuLabel, MenuItem, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuItemIndicator, MenuSeparator, MenuArrow, MenuSub, MenuSubTrigger, MenuSubContent, Root, Anchor, Portal, Content, Group, Label, Item, CheckboxItem, RadioGroup, RadioItem, ItemIndicator, Separator, Arrow, Sub, SubTrigger, SubContent, }; export type { MenuProps, MenuAnchorProps, MenuPortalProps, MenuContentProps, MenuGroupProps, MenuLabelProps, MenuItemProps, MenuCheckboxItemProps, MenuRadioGroupProps, MenuRadioItemProps, MenuItemIndicatorProps, MenuSeparatorProps, MenuArrowProps, MenuSubProps, MenuSubTriggerProps, MenuSubContentProps, };