UNPKG

@loke/ui

Version:
2 lines (1 loc) 12.5 kB
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var exports_dropdown_menu={};__export(exports_dropdown_menu,{createDropdownMenuScope:()=>createDropdownMenuScope,Trigger:()=>Trigger,SubTrigger:()=>SubTrigger2,SubContent:()=>SubContent2,Sub:()=>Sub2,Separator:()=>Separator2,Root:()=>Root2,RadioItem:()=>RadioItem2,RadioGroup:()=>RadioGroup2,Portal:()=>Portal2,Label:()=>Label2,ItemIndicator:()=>ItemIndicator2,Item:()=>Item2,Group:()=>Group2,DropdownMenuTrigger:()=>DropdownMenuTrigger,DropdownMenuSubTrigger:()=>DropdownMenuSubTrigger,DropdownMenuSubContent:()=>DropdownMenuSubContent,DropdownMenuSub:()=>DropdownMenuSub,DropdownMenuSeparator:()=>DropdownMenuSeparator,DropdownMenuRadioItem:()=>DropdownMenuRadioItem,DropdownMenuRadioGroup:()=>DropdownMenuRadioGroup,DropdownMenuPortal:()=>DropdownMenuPortal,DropdownMenuLabel:()=>DropdownMenuLabel,DropdownMenuItemIndicator:()=>DropdownMenuItemIndicator,DropdownMenuItem:()=>DropdownMenuItem,DropdownMenuGroup:()=>DropdownMenuGroup,DropdownMenuContent:()=>DropdownMenuContent,DropdownMenuCheckboxItem:()=>DropdownMenuCheckboxItem,DropdownMenuArrow:()=>DropdownMenuArrow,DropdownMenu:()=>DropdownMenu,Content:()=>Content2,CheckboxItem:()=>CheckboxItem2,Arrow:()=>Arrow2});module.exports=__toCommonJS(exports_dropdown_menu);var import_compose_events=require("@loke/ui/compose-events"),import_compose_refs=require("@loke/ui/compose-refs"),import_context=require("@loke/ui/context"),MenuPrimitive=__toESM(require("@loke/ui/menu")),import_menu=require("@loke/ui/menu"),import_primitive=require("@loke/ui/primitive"),import_use_controllable_state=require("@loke/ui/use-controllable-state"),import_use_id=require("@loke/ui/use-id"),import_react=require("react"),jsx_runtime=require("react/jsx-runtime"),DROPDOWN_MENU_NAME="DropdownMenu",[createDropdownMenuContext,createDropdownMenuScope]=import_context.createContextScope(DROPDOWN_MENU_NAME,[import_menu.createMenuScope]),useMenuScope=import_menu.createMenuScope(),[DropdownMenuProvider,useDropdownMenuContext]=createDropdownMenuContext(DROPDOWN_MENU_NAME),DropdownMenu=(props)=>{let{__scopeDropdownMenu,children,dir,open:openProp,defaultOpen,onOpenChange,modal=!0}=props,menuScope=useMenuScope(__scopeDropdownMenu),triggerRef=import_react.useRef(null),[open,setOpen]=import_use_controllable_state.useControllableState({caller:DROPDOWN_MENU_NAME,defaultProp:defaultOpen??!1,onChange:onOpenChange,prop:openProp});return jsx_runtime.jsx(DropdownMenuProvider,{contentId:import_use_id.useId(),modal,onOpenChange:setOpen,onOpenToggle:import_react.useCallback(()=>setOpen((prevOpen)=>!prevOpen),[setOpen]),open,scope:__scopeDropdownMenu,triggerId:import_use_id.useId(),triggerRef,children:jsx_runtime.jsx(MenuPrimitive.Root,{...menuScope,dir,modal,onOpenChange:setOpen,open,children})})};DropdownMenu.displayName=DROPDOWN_MENU_NAME;var TRIGGER_NAME="DropdownMenuTrigger",DropdownMenuTrigger=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,disabled=!1,...triggerProps}=props,context=useDropdownMenuContext(TRIGGER_NAME,__scopeDropdownMenu),menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Anchor,{asChild:!0,...menuScope,children:jsx_runtime.jsx(import_primitive.Primitive.button,{"aria-controls":context.open?context.contentId:void 0,"aria-expanded":context.open,"aria-haspopup":"menu","data-disabled":disabled?"":void 0,"data-state":context.open?"open":"closed",disabled,id:context.triggerId,type:"button",...triggerProps,onKeyDown:import_compose_events.composeEventHandlers(props.onKeyDown,(event)=>{if(disabled)return;if(["Enter"," "].includes(event.key))context.onOpenToggle();if(event.key==="ArrowDown")context.onOpenChange(!0);if(["Enter"," ","ArrowDown"].includes(event.key))event.preventDefault()}),onPointerDown:import_compose_events.composeEventHandlers(props.onPointerDown,(event)=>{if(!disabled&&event.button===0&&event.ctrlKey===!1){if(context.onOpenToggle(),!context.open)event.preventDefault()}}),ref:import_compose_refs.composeRefs(forwardedRef,context.triggerRef)})})});DropdownMenuTrigger.displayName=TRIGGER_NAME;var PORTAL_NAME="DropdownMenuPortal",DropdownMenuPortal=(props)=>{let{__scopeDropdownMenu,...portalProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Portal,{...menuScope,...portalProps})};DropdownMenuPortal.displayName=PORTAL_NAME;var CONTENT_NAME="DropdownMenuContent",DropdownMenuContent=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...contentProps}=props,context=useDropdownMenuContext(CONTENT_NAME,__scopeDropdownMenu),menuScope=useMenuScope(__scopeDropdownMenu),hasInteractedOutsideRef=import_react.useRef(!1);return jsx_runtime.jsx(MenuPrimitive.Content,{"aria-labelledby":context.triggerId,id:context.contentId,...menuScope,...contentProps,onCloseAutoFocus:import_compose_events.composeEventHandlers(props.onCloseAutoFocus,(event)=>{if(!hasInteractedOutsideRef.current)context.triggerRef.current?.focus();hasInteractedOutsideRef.current=!1,event.preventDefault()}),onInteractOutside:import_compose_events.composeEventHandlers(props.onInteractOutside,(event)=>{let originalEvent=event.detail.originalEvent,ctrlLeftClick=originalEvent.button===0&&originalEvent.ctrlKey===!0,isRightClick=originalEvent.button===2||ctrlLeftClick;if(!context.modal||isRightClick)hasInteractedOutsideRef.current=!0}),ref:forwardedRef,style:{...props.style,...{"--loke-dropdown-menu-content-available-height":"var(--loke-popper-available-height)","--loke-dropdown-menu-content-available-width":"var(--loke-popper-available-width)","--loke-dropdown-menu-content-transform-origin":"var(--loke-popper-transform-origin)","--loke-dropdown-menu-trigger-height":"var(--loke-popper-anchor-height)","--loke-dropdown-menu-trigger-width":"var(--loke-popper-anchor-width)"}}})});DropdownMenuContent.displayName=CONTENT_NAME;var GROUP_NAME="DropdownMenuGroup",DropdownMenuGroup=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...groupProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Group,{...menuScope,...groupProps,ref:forwardedRef})});DropdownMenuGroup.displayName=GROUP_NAME;var LABEL_NAME="DropdownMenuLabel",DropdownMenuLabel=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...labelProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Label,{...menuScope,...labelProps,ref:forwardedRef})});DropdownMenuLabel.displayName=LABEL_NAME;var ITEM_NAME="DropdownMenuItem",DropdownMenuItem=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...itemProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Item,{...menuScope,...itemProps,ref:forwardedRef})});DropdownMenuItem.displayName=ITEM_NAME;var CHECKBOX_ITEM_NAME="DropdownMenuCheckboxItem",DropdownMenuCheckboxItem=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...checkboxItemProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.CheckboxItem,{...menuScope,...checkboxItemProps,ref:forwardedRef})});DropdownMenuCheckboxItem.displayName=CHECKBOX_ITEM_NAME;var RADIO_GROUP_NAME="DropdownMenuRadioGroup",DropdownMenuRadioGroup=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...radioGroupProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.RadioGroup,{...menuScope,...radioGroupProps,ref:forwardedRef})});DropdownMenuRadioGroup.displayName=RADIO_GROUP_NAME;var RADIO_ITEM_NAME="DropdownMenuRadioItem",DropdownMenuRadioItem=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...radioItemProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.RadioItem,{...menuScope,...radioItemProps,ref:forwardedRef})});DropdownMenuRadioItem.displayName=RADIO_ITEM_NAME;var INDICATOR_NAME="DropdownMenuItemIndicator",DropdownMenuItemIndicator=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...itemIndicatorProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.ItemIndicator,{...menuScope,...itemIndicatorProps,ref:forwardedRef})});DropdownMenuItemIndicator.displayName=INDICATOR_NAME;var SEPARATOR_NAME="DropdownMenuSeparator",DropdownMenuSeparator=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...separatorProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Separator,{...menuScope,...separatorProps,ref:forwardedRef})});DropdownMenuSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="DropdownMenuArrow",DropdownMenuArrow=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...arrowProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.Arrow,{...menuScope,...arrowProps,ref:forwardedRef})});DropdownMenuArrow.displayName=ARROW_NAME;var DropdownMenuSub=(props)=>{let{__scopeDropdownMenu,children,open:openProp,onOpenChange,defaultOpen}=props,menuScope=useMenuScope(__scopeDropdownMenu),[open,setOpen]=import_use_controllable_state.useControllableState({caller:"DropdownMenuSub",defaultProp:defaultOpen??!1,onChange:onOpenChange,prop:openProp});return jsx_runtime.jsx(MenuPrimitive.Sub,{...menuScope,onOpenChange:setOpen,open,children})},SUB_TRIGGER_NAME="DropdownMenuSubTrigger",DropdownMenuSubTrigger=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...subTriggerProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.SubTrigger,{...menuScope,...subTriggerProps,ref:forwardedRef})});DropdownMenuSubTrigger.displayName=SUB_TRIGGER_NAME;var SUB_CONTENT_NAME="DropdownMenuSubContent",DropdownMenuSubContent=import_react.forwardRef((props,forwardedRef)=>{let{__scopeDropdownMenu,...subContentProps}=props,menuScope=useMenuScope(__scopeDropdownMenu);return jsx_runtime.jsx(MenuPrimitive.SubContent,{...menuScope,...subContentProps,ref:forwardedRef,style:{...props.style,...{"--loke-dropdown-menu-content-available-height":"var(--loke-popper-available-height)","--loke-dropdown-menu-content-available-width":"var(--loke-popper-available-width)","--loke-dropdown-menu-content-transform-origin":"var(--loke-popper-transform-origin)","--loke-dropdown-menu-trigger-height":"var(--loke-popper-anchor-height)","--loke-dropdown-menu-trigger-width":"var(--loke-popper-anchor-width)"}}})});DropdownMenuSubContent.displayName=SUB_CONTENT_NAME;var Root2=DropdownMenu,Trigger=DropdownMenuTrigger,Portal2=DropdownMenuPortal,Content2=DropdownMenuContent,Group2=DropdownMenuGroup,Label2=DropdownMenuLabel,Item2=DropdownMenuItem,CheckboxItem2=DropdownMenuCheckboxItem,RadioGroup2=DropdownMenuRadioGroup,RadioItem2=DropdownMenuRadioItem,ItemIndicator2=DropdownMenuItemIndicator,Separator2=DropdownMenuSeparator,Arrow2=DropdownMenuArrow,Sub2=DropdownMenuSub,SubTrigger2=DropdownMenuSubTrigger,SubContent2=DropdownMenuSubContent;