@memori.ai/ui 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/memori-ai-ui.cjs.js +1 -1
- package/dist/memori-ai-ui.cjs.js.map +1 -1
- package/dist/memori-ai-ui.css +1 -1
- package/dist/memori-ai-ui.es.js +25 -23
- package/dist/memori-ai-ui.es.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [1.4.0](https://github.com/memori-ai/ui/compare/v1.3.0...v1.4.0) (2026-02-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add displayValue prop to SelectBox component for custom rendering ([120c2ed](https://github.com/memori-ai/ui/commit/120c2ed58d0cef2e0cdb2a06f9bc48db0473c7b9))
|
|
9
|
+
|
|
3
10
|
## [1.3.0](https://github.com/memori-ai/ui/compare/v1.2.0...v1.3.0) (2026-02-04)
|
|
4
11
|
|
|
5
12
|
|
package/dist/index.d.ts
CHANGED
package/dist/memori-ai-ui.cjs.js
CHANGED
|
@@ -53,5 +53,5 @@ Avoid returning a new reference inside your input selector, e.g.
|
|
|
53
53
|
${c.right}px ${c.top}px,
|
|
54
54
|
${c.left}px ${c.top}px
|
|
55
55
|
)`}return T.jsx("div",{ref:n,role:"presentation","data-base-ui-inert":"",...o,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:s}})});process.env.NODE_ENV!=="production"&&(go.displayName="InternalBackdrop");const Qi=l.forwardRef(function(t,n){const{keepMounted:r=!1,...o}=t,{store:s}=Ot(),c=s.useState("mounted"),i=s.useState("modal");return c||r?T.jsx(mo.Provider,{value:r,children:T.jsxs(ro,{ref:n,...o,children:[c&&i===!0&&T.jsx(go,{ref:s.context.internalBackdropRef,inert:Gr(!open)}),t.children]})}):null});process.env.NODE_ENV!=="production"&&(Qi.displayName="DialogPortal");let ps={},ms={},gs="";function ld(e){if(typeof document>"u")return!1;const t=Ye(e);return Ae(t).innerWidth-t.documentElement.clientWidth>0}function ud(e){const t=Ye(e),n=t.documentElement,r=t.body,o=_t(n)?n:r,s=o.style.overflow;return o.style.overflow="hidden",()=>{o.style.overflow=s}}function fd(e){const t=Ye(e),n=t.documentElement,r=t.body,o=Ae(n);let s=0,c=0;const i=Ie.create(),u=typeof CSS<"u"&&CSS.supports?.("scrollbar-gutter","stable");if(la&&(o.visualViewport?.scale??1)!==1)return()=>{};function a(){const p=o.getComputedStyle(n),m=o.getComputedStyle(r),x=(p.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";s=n.scrollTop,c=n.scrollLeft,ps={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},gs=n.style.scrollBehavior,ms={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};const y=n.scrollHeight>n.clientHeight,v=n.scrollWidth>n.clientWidth,w=p.overflowY==="scroll"||m.overflowY==="scroll",E=p.overflowX==="scroll"||m.overflowX==="scroll",b=Math.max(0,o.innerWidth-n.clientWidth),R=Math.max(0,o.innerHeight-n.clientHeight),C=parseFloat(m.marginTop)+parseFloat(m.marginBottom),N=parseFloat(m.marginLeft)+parseFloat(m.marginRight),_=_t(n)?n:r;if(u){n.style.scrollbarGutter=x,_.style.overflowY="hidden",_.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:x,overflowY:"hidden",overflowX:"hidden"}),(y||w)&&(n.style.overflowY="scroll"),(v||E)&&(n.style.overflowX="scroll"),Object.assign(r.style,{position:"relative",height:C||R?`calc(100dvh - ${C+R}px)`:"100dvh",width:N||b?`calc(100vw - ${N+b}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),r.scrollTop=s,r.scrollLeft=c,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function d(){Object.assign(n.style,ps),Object.assign(r.style,ms),u||(n.scrollTop=s,n.scrollLeft=c,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=gs)}function f(){d(),i.request(a)}return a(),o.addEventListener("resize",f),()=>{i.cancel(),d(),typeof o.removeEventListener=="function"&&o.removeEventListener("resize",f)}}class dd{constructor(){Ce(this,"lockCount",0);Ce(this,"restore",null);Ce(this,"timeoutLock",pt.create());Ce(this,"timeoutUnlock",pt.create());Ce(this,"release",()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)});Ce(this,"unlock",()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)})}acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}lock(t){if(this.lockCount===0||this.restore!==null)return;const r=Ye(t).documentElement,o=Ae(r).getComputedStyle(r).overflowY;if(o==="hidden"||o==="clip"){this.restore=Xe;return}const s=ua||!ld(t);this.restore=s?ud(t):fd(t)}}const pd=new dd;function ec(e=!0,t=null){J(()=>{if(e)return pd.acquire(t)},[e,t])}function md(e){const t=l.useRef(""),n=l.useCallback(o=>{o.defaultPrevented||(t.current=o.pointerType,e(o,o.pointerType))},[e]);return{onClick:l.useCallback(o=>{if(o.detail===0){e(o,"keyboard");return}"pointerType"in o&&e(o,o.pointerType),e(o,t.current),t.current=""},[e]),onPointerDown:n}}function tc(e){const[t,n]=l.useState(null),r=X((i,u)=>{e||n(u)}),o=l.useCallback(()=>{n(null)},[]),{onClick:s,onPointerDown:c}=md(r);return l.useMemo(()=>({openMethod:t,reset:o,triggerProps:{onClick:s,onPointerDown:c}}),[t,o,s,c])}function gd(e){const{store:t,parentContext:n,actionsRef:r}=e,o=t.useState("open"),s=t.useState("disablePointerDismissal"),c=t.useState("modal"),i=t.useState("popupElement"),{openMethod:u,triggerProps:a,reset:d}=tc(o);vi(t);const{forceUnmount:f}=Ei(o,t,()=>{d()}),p=X(L=>{const j=ve(L);return j.preventUnmountOnClose=()=>{t.set("preventUnmountingOnClose",!0)},j}),m=l.useCallback(()=>{t.setOpen(!1,p(ri))},[t,p]);l.useImperativeHandle(r,()=>({unmount:f,close:m}),[f,m]);const g=Ri({popupStore:t,onOpenChange:t.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[h,x]=l.useState(0),y=h===0,v=Ci(g),w=gi(g,{outsidePressEvent(){return t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:c==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(L){if("button"in L&&L.button!==0||"touches"in L&&L.touches.length!==1)return!1;const j=Le(L);if(y&&!s){const I=j;return c&&(t.context.internalBackdropRef.current||t.context.backdropRef.current)?t.context.internalBackdropRef.current===I||t.context.backdropRef.current===I||me(I,i)&&!I?.hasAttribute("data-base-ui-portal"):!0}return!1},escapeKey:y});ec(o&&c===!0,i);const{getReferenceProps:E,getFloatingProps:b,getTriggerProps:R}=lo([v,w]);t.useContextCallback("onNestedDialogOpen",L=>{x(L+1)}),t.useContextCallback("onNestedDialogClose",()=>{x(0)}),l.useEffect(()=>(n?.onNestedDialogOpen&&o&&n.onNestedDialogOpen(h),n?.onNestedDialogClose&&!o&&n.onNestedDialogClose(),()=>{n?.onNestedDialogClose&&o&&n.onNestedDialogClose()}),[o,n,h]);const C=l.useMemo(()=>E(a),[E,a]),N=l.useMemo(()=>R(a),[R,a]),_=l.useMemo(()=>b(),[b]);t.useSyncedValues({openMethod:u,activeTriggerProps:C,inactiveTriggerProps:N,popupProps:_,floatingRootContext:g,nestedOpenDialogCount:h})}const hd={...wi,modal:ce(e=>e.modal),nested:ce(e=>e.nested),nestedOpenDialogCount:ce(e=>e.nestedOpenDialogCount),disablePointerDismissal:ce(e=>e.disablePointerDismissal),openMethod:ce(e=>e.openMethod),descriptionElementId:ce(e=>e.descriptionElementId),titleElementId:ce(e=>e.titleElementId),viewportElement:ce(e=>e.viewportElement),role:ce(e=>e.role)};class bd extends co{constructor(n){super(yd(n),{popupRef:l.createRef(),backdropRef:l.createRef(),internalBackdropRef:l.createRef(),triggerElements:new qn,onOpenChange:void 0,onOpenChangeComplete:void 0},hd);Ce(this,"setOpen",(n,r)=>{if(r.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!n&&r.trigger==null&&this.state.activeTriggerId!=null&&(r.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(n,r),r.isCanceled)return;const o={open:n,nativeEvent:r.event,reason:r.reason,nested:this.state.nested};this.state.floatingRootContext.context.events?.emit("openchange",o);const s={open:n},c=r.trigger?.id??null;(c||n)&&(s.activeTriggerId=c,s.activeTriggerElement=r.trigger??null),this.update(s)})}}function yd(e={}){return{...xi(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:"dialog",...e}}function vd(e){const{children:t,open:n,defaultOpen:r=!1,onOpenChange:o,onOpenChangeComplete:s,disablePointerDismissal:c=!1,modal:i=!0,actionsRef:u,handle:a,triggerId:d,defaultTriggerId:f=null}=e,p=Ot(!0),m=!!p,g=et(()=>a?.store??new bd({open:n??r,activeTriggerId:d!==void 0?d:f,modal:i,disablePointerDismissal:c,nested:m})).current;g.useControlledProp("open",n,r),g.useControlledProp("activeTriggerId",d,f),g.useSyncedValues({disablePointerDismissal:c,nested:m,modal:i}),g.useContextCallback("onOpenChange",o),g.useContextCallback("onOpenChangeComplete",s);const h=g.useState("payload");gd({store:g,actionsRef:u,parentContext:p?.store.context});const x=l.useMemo(()=>({store:g}),[g]);return T.jsx(po.Provider,{value:x,children:typeof t=="function"?t({payload:h}):t})}let hs=(function(e){return e[e.open=it.open]="open",e[e.closed=it.closed]="closed",e[e.startingStyle=it.startingStyle]="startingStyle",e[e.endingStyle=it.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e})({});const Ed={...mn,...kt,nested(e){return e?{[hs.nested]:""}:null},nestedDialogOpen(e){return e?{[hs.nestedDialogOpen]:""}:null}},nc=l.forwardRef(function(t,n){const{className:r,render:o,children:s,...c}=t,i=Wi(),{store:u}=Ot(),a=u.useState("open"),d=u.useState("nested"),f=u.useState("transitionStatus"),p=u.useState("nestedOpenDialogCount"),m=u.useState("mounted"),g=p>0,h=l.useMemo(()=>({open:a,nested:d,transitionStatus:f,nestedDialogOpen:g}),[a,d,f,g]);return Te("div",t,{enabled:i||m,state:h,ref:[n,u.useStateSetter("viewportElement")],stateAttributesMapping:Ed,props:[{role:"presentation",hidden:!m,children:s},c]})});process.env.NODE_ENV!=="production"&&(nc.displayName="DialogViewport");const rc=l.forwardRef(function(t,n){const{render:r,className:o,id:s,...c}=t,{store:i}=Ot(),u=At(s);return i.useSyncedValueWithCleanup("titleElementId",u),Te("h2",t,{ref:n,props:[{id:u},c]})});process.env.NODE_ENV!=="production"&&(rc.displayName="DialogTitle");const ho=be.forwardRef(({open:e=!1,onOpenChange:t,onClose:n,title:r,description:o,children:s,footer:c,loading:i=!1,closable:u=!0,closeOnOverlayClick:a=!0,closeOnEsc:d=!0,size:f="md",width:p,widthMd:m,widthLg:g,centered:h=!0,modal:x=!0,disablePointerDismissal:y,initialFocus:v,finalFocus:w,onAfterOpen:E,onAfterClose:b,className:R,backdropClassName:C,contentClassName:N,titleClassName:_,descriptionClassName:L,footerClassName:j,style:I,contentStyle:S,id:D,"data-testid":M,"aria-label":P,"aria-labelledby":k,"aria-describedby":O,animated:F=!0,closeButton:V,closeIcon:U,...ee},H)=>{const ue=be.useCallback((ne,A)=>{!ne&&!d&&A?.reason&&(A.reason==="escapeKey"||String(A.reason).includes("escape"))||(t?.(ne),ne||n?.())},[t,n,d]),ge=be.useCallback(ne=>{ne?E?.():b?.()},[E,b]),te=y!==void 0?y:!a,G={...p&&{maxWidth:typeof p=="number"?`${p}px`:p},...m&&{"--memori-modal-width-md":typeof m=="number"?`${m}px`:m},...g&&{"--memori-modal-width-lg":typeof g=="number"?`${g}px`:g},...S},de=ye("memori-modal__popup",f==="sm"?"memori-modal__popup--sm":f==="md"?"memori-modal__popup--md":f==="lg"?"memori-modal__popup--lg":f==="xl"?"memori-modal__popup--xl":f==="full"?"memori-modal__popup--full":void 0,N);return T.jsx(vd,{open:e,onOpenChange:ue,onOpenChangeComplete:ge,modal:x,disablePointerDismissal:te,...ee,children:T.jsxs(Qi,{children:[F&&T.jsx($i,{className:ye("memori-modal__backdrop",C)}),T.jsx(nc,{className:ye("memori-modal__viewport",h&&"memori-modal__viewport--centered",R),children:T.jsxs(Zi,{ref:H,initialFocus:v,finalFocus:w,className:de,style:G,"data-testid":M,"aria-label":r?void 0:P,"aria-labelledby":r?void 0:k,"aria-describedby":o?void 0:O,...m&&{"data-width-md":""},...g&&{"data-width-lg":""},children:[u&&(V?T.jsx("div",{className:"memori-modal__close",children:V}):T.jsx(Hi,{className:"memori-modal__close","aria-label":"Close modal",children:U||T.jsx(Ue.X,{})})),T.jsxs(Jn,{spinning:i,children:[r&&T.jsx(rc,{className:ye("memori-modal__title",_),children:r}),o&&T.jsx(Ui,{className:ye("memori-modal__description",L),children:o}),T.jsx("div",{className:"memori-modal__content",children:s}),c&&T.jsx("div",{className:ye("memori-modal__footer",j),children:c})]})]})})]})})});ho.displayName="Modal";const xd=({isOpen:e,onClose:t,onConfirm:n,title:r,message:o,confirmText:s="Confirm",cancelText:c="Cancel",loading:i=!1})=>{const u=d=>{d||t()},a=T.jsxs(T.Fragment,{children:[T.jsx(Gt,{variant:"outline",onClick:t,disabled:i,children:c}),T.jsx(Gt,{variant:"primary",onClick:n,loading:i,children:s})]});return T.jsx(ho,{open:e,onOpenChange:u,title:r,size:"sm",footer:a,closable:!i,closeOnEsc:!i,closeOnOverlayClick:!i,children:T.jsx("div",{children:o})})},Dr=4e3,_r=300,wd=e=>{let t=e;return e.length>Dr&&(t=`${e.slice(0,Dr)}
|
|
56
|
-
<br />...`),t.split(" ").length>_r&&(t=t.split(" ").slice(0,_r).join(" ")),t},Rd=({rows:e,className:t,innerClassName:n,btnClassName:r,lineHeightMultiplier:o=1.2,defaultExpanded:s=!1,expandSymbol:c=()=>"...",collapseSymbol:i=d=>d==="it"?"Mostra meno":"Show less",children:u,mode:a="rows"})=>{const{i18n:d}=Yc.useTranslation(),f=d.language,p=i(f),m=c(f),[g,h]=be.useState(s),[x,y]=be.useState(!1),[v,w]=be.useState(16),E=be.useRef(null);be.useEffect(()=>{if(E.current){if(a==="rows"){let R=E.current.getBoundingClientRect().height,C=getComputedStyle(E.current),N=C.lineHeight,_=N==="normal"||!N?.length?o*parseInt(C.fontSize,10):parseInt(N,10);w(_),R&&e&&R>e*_&&y(!0)}else if(a==="characters"){const R=E.current.textContent||"";(R.length>Dr||R.split(" ").length>_r)&&y(!0)}}},[e,a,E.current]);const b=()=>{if(a==="characters"&&!g&&x){const R=E.current?.textContent||"";return wd(R)}return u};return T.jsxs("div",{className:ye("memori-expandable",t),children:[T.jsx("div",{ref:E,className:ye("memori-expandable__inner",n),style:{maxHeight:g||!x||a==="characters"?"9999px":`${v*(e||1)}px`},children:b()}),x&&!g&&T.jsx(Gt,{variant:"ghost",className:r,onClick:()=>h(!0),children:m}),x&&g&&T.jsx(Gt,{variant:"ghost",className:r,onClick:()=>h(!1),children:p})]})},bo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(bo.displayName="MenuPositionerContext");function oc(e){const t=l.useContext(bo);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.":Fe(33));return t}const yo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(yo.displayName="MenuRootContext");function Lt(e){const t=l.useContext(yo);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.":Fe(36));return t}const sc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(sc.displayName="ContextMenuRootContext");function Zn(e=!0){const t=l.useContext(sc);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.":Fe(25));return t}const Sd={type:"regular-item"};function Cd(e){const{closeOnClick:t,disabled:n=!1,highlighted:r,id:o,store:s,nativeButton:c,itemMetadata:i,nodeId:u}=e,a=l.useRef(null),d=Zn(!0),f=d!==void 0,{events:p}=s.useState("floatingTreeRoot"),{getButtonProps:m,buttonRef:g}=Xt({disabled:n,focusableWhenDisabled:!0,native:c}),h=l.useCallback(y=>cn({id:o,role:"menuitem",tabIndex:r?0:-1,onMouseMove(v){u&&p.emit("itemhover",{nodeId:u,target:v.currentTarget})},onMouseEnter(){i.type==="submenu-trigger"&&i.setActive()},onKeyUp(v){v.key===" "&&s.context.typingRef.current&&v.preventBaseUIHandler()},onClick(v){t&&p.emit("close",{domEvent:v,reason:ni})},onMouseUp(v){if(d){const w=d.initialCursorPointRef.current;if(d.initialCursorPointRef.current=null,f&&w&&Math.abs(v.clientX-w.x)<=1&&Math.abs(v.clientY-w.y)<=1)return}a.current&&s.context.allowMouseUpTriggerRef.current&&(!f||v.button===2)&&i.type==="regular-item"&&a.current.click()}},y,m),[o,r,m,t,p,s,f,d,i,u]),x=Pt(a,g);return l.useMemo(()=>({getItemProps:h,itemRef:x}),[h,x])}const vo=l.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});process.env.NODE_ENV!=="production"&&(vo.displayName="CompositeListContext");function Od(){return l.useContext(vo)}let Td=(function(e){return e[e.None=0]="None",e[e.GuessFromOrder=1]="GuessFromOrder",e})({});function ic(e={}){const{label:t,metadata:n,textRef:r,indexGuessBehavior:o,index:s}=e,{register:c,unregister:i,subscribeMapChange:u,elementsRef:a,labelsRef:d,nextIndexRef:f}=Od(),p=l.useRef(-1),[m,g]=l.useState(s??(o===Td.GuessFromOrder?()=>{if(p.current===-1){const y=f.current;f.current+=1,p.current=y}return p.current}:-1)),h=l.useRef(null),x=l.useCallback(y=>{if(h.current=y,m!==-1&&y!==null&&(a.current[m]=y,d)){const v=t!==void 0;d.current[m]=v?t:r?.current?.textContent??y.textContent}},[m,a,d,t,r]);return J(()=>{if(s!=null)return;const y=h.current;if(y)return c(y,n),()=>{i(y)}},[s,c,i,n]),J(()=>{if(s==null)return u(y=>{const v=h.current?y.get(h.current)?.index:null;v!=null&&g(v)})},[s,u,g]),l.useMemo(()=>({ref:x,index:m}),[m,x])}const Eo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(Eo.displayName="MenuGroupContext");function Nd(){const e=l.useContext(Eo);if(e===void 0)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.":Fe(31));return e}const cc=l.forwardRef(function(t,n){const{render:r,className:o,...s}=t,[c,i]=l.useState(void 0),u=l.useMemo(()=>({setLabelId:i}),[i]),a=Te("div",t,{ref:n,props:{role:"group","aria-labelledby":c,...s}});return T.jsx(Eo.Provider,{value:u,children:a})});process.env.NODE_ENV!=="production"&&(cc.displayName="MenuGroup");const ac=l.forwardRef(function(t,n){const{className:r,render:o,id:s,...c}=t,i=At(s),{setLabelId:u}=Nd();return J(()=>(u(i),()=>{u(void 0)}),[u,i]),Te("div",t,{ref:n,props:{id:i,role:"presentation",...c}})});process.env.NODE_ENV!=="production"&&(ac.displayName="MenuGroupLabel");const lc=l.forwardRef(function(t,n){const{render:r,className:o,id:s,label:c,nativeButton:i=!1,disabled:u=!1,closeOnClick:a=!0,...d}=t,f=ic({label:c}),p=oc(!0),m=At(s),{store:g}=Lt(),h=g.useState("isActive",f.index),x=g.useState("itemProps"),{getItemProps:y,itemRef:v}=Cd({closeOnClick:a,disabled:u,highlighted:h,id:m,store:g,nativeButton:i,nodeId:p?.nodeId,itemMetadata:Sd}),w=l.useMemo(()=>({disabled:u,highlighted:h}),[u,h]);return Te("div",t,{state:w,props:[x,d,y],ref:[v,n,f.ref]})});process.env.NODE_ENV!=="production"&&(lc.displayName="MenuItem");const uc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(uc.displayName="ToolbarRootContext");function Md(e){return l.useContext(uc)}function Id(e){return e==="starting"?fl:ke}const Pd={...mn,...kt},fc=l.forwardRef(function(t,n){const{render:r,className:o,finalFocus:s,...c}=t,{store:i}=Lt(),{side:u,align:a}=oc(),d=Md()!=null,f=i.useState("open"),p=i.useState("transitionStatus"),m=i.useState("popupProps"),g=i.useState("mounted"),h=i.useState("instantType"),x=i.useState("activeTriggerElement"),y=i.useState("parent"),v=i.useState("lastOpenChangeReason"),w=i.useState("rootId"),E=i.useState("floatingRootContext"),b=i.useState("floatingTreeRoot"),R=i.useState("closeDelay"),C=i.useState("activeTriggerElement");pn({open:f,ref:i.context.popupRef,onComplete(){f&&i.context.onOpenChangeComplete?.(!0)}}),l.useEffect(()=>{function S(D){i.setOpen(!1,ve(D.reason,D.domEvent))}return b.events.on("close",S),()=>{b.events.off("close",S)}},[b.events,i]);const N=i.useState("hoverEnabled"),_=i.useState("disabled");xf(E,{enabled:N&&!_&&y.type!=="context-menu"&&y.type!=="menubar",closeDelay:R});const L=l.useMemo(()=>({transitionStatus:p,side:u,align:a,open:f,nested:y.type==="menu",instant:h}),[p,u,a,f,y.type,h]),j=Te("div",t,{state:L,ref:[n,i.context.popupRef],stateAttributesMapping:Pd,props:[m,{onKeyDown(S){d&&Ji.has(S.key)&&S.stopPropagation()}},Id(p),c,{"data-rootownerid":w}]});let I=y.type===void 0||y.type==="context-menu";return(x||y.type==="menubar"&&v!==eo)&&(I=!0),T.jsx(ii,{context:E,modal:!1,disabled:!g,returnFocus:s===void 0?I:s,initialFocus:y.type!=="menu",restoreFocus:!0,externalTree:y.type!=="menubar"?b:void 0,previousFocusableElement:C,nextFocusableElement:y.type===void 0?i.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:y.type===void 0?i.context.beforeContentFocusGuardRef:void 0,children:j})});process.env.NODE_ENV!=="production"&&(fc.displayName="MenuPopup");const xo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(xo.displayName="MenuPortalContext");function Dd(){const e=l.useContext(xo);if(e===void 0)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: <Menu.Portal> is missing.":Fe(32));return e}const dc=l.forwardRef(function(t,n){const{keepMounted:r=!1,...o}=t,{store:s}=Lt();return s.useState("mounted")||r?T.jsx(xo.Provider,{value:r,children:T.jsx(ro,{ref:n,...o})}):null});process.env.NODE_ENV!=="production"&&(dc.displayName="MenuPortal");function _d(e){const{children:t,elementsRef:n,labelsRef:r,onMapChange:o}=e,s=X(o),c=l.useRef(0),i=et(Ad).current,u=et(kd).current,[a,d]=l.useState(0),f=l.useRef(a),p=X((y,v)=>{u.set(y,v??null),f.current+=1,d(f.current)}),m=X(y=>{u.delete(y),f.current+=1,d(f.current)}),g=l.useMemo(()=>{const y=new Map;return Array.from(u.keys()).filter(w=>w.isConnected).sort(Ld).forEach((w,E)=>{const b=u.get(w)??{};y.set(w,{...b,index:E})}),y},[u,a]);J(()=>{if(typeof MutationObserver!="function"||g.size===0)return;const y=new MutationObserver(v=>{const w=new Set,E=b=>w.has(b)?w.delete(b):w.add(b);v.forEach(b=>{b.removedNodes.forEach(E),b.addedNodes.forEach(E)}),w.size===0&&(f.current+=1,d(f.current))});return g.forEach((v,w)=>{w.parentElement&&y.observe(w.parentElement,{childList:!0})}),()=>{y.disconnect()}},[g]),J(()=>{f.current===a&&(n.current.length!==g.size&&(n.current.length=g.size),r&&r.current.length!==g.size&&(r.current.length=g.size),c.current=g.size),s(g)},[s,g,n,r,a]),J(()=>()=>{n.current=[]},[n]),J(()=>()=>{r&&(r.current=[])},[r]);const h=X(y=>(i.add(y),()=>{i.delete(y)}));J(()=>{i.forEach(y=>y(g))},[i,g]);const x=l.useMemo(()=>({register:p,unregister:m,subscribeMapChange:h,elementsRef:n,labelsRef:r,nextIndexRef:c}),[p,m,h,n,r,c]);return T.jsx(vo.Provider,{value:x,children:t})}function kd(){return new Map}function Ad(){return new Set}function Ld(e,t){const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}const pc=l.forwardRef(function(t,n){const{anchor:r,positionMethod:o="absolute",className:s,render:c,side:i,align:u,sideOffset:a=0,alignOffset:d=0,collisionBoundary:f="clipping-ancestors",collisionPadding:p=5,arrowPadding:m=5,sticky:g=!1,disableAnchorTracking:h=!1,collisionAvoidance:x=pl,...y}=t,{store:v}=Lt(),w=Dd(),E=Zn(!0),b=v.useState("parent"),R=v.useState("floatingRootContext"),C=v.useState("floatingTreeRoot"),N=v.useState("mounted"),_=v.useState("open"),L=v.useState("modal"),j=v.useState("activeTriggerElement"),I=v.useState("lastOpenChangeReason"),S=v.useState("floatingNodeId"),D=v.useState("floatingParentNodeId");let M=r,P=a,k=d,O=u,F=x;b.type==="context-menu"&&(M=r??b.context?.anchor,O=O??"start",!i&&O!=="center"&&(k=t.alignOffset??2,P=t.sideOffset??-5));let V=i,U=O;b.type==="menu"?(V=V??"inline-end",U=U??"start",F=t.collisionAvoidance??ml):b.type==="menubar"&&(V=V??"bottom",U=U??"start");const ee=b.type==="context-menu",H=Ff({anchor:M,floatingRootContext:R,positionMethod:E?"fixed":o,mounted:N,side:V,sideOffset:P,align:U,alignOffset:k,arrowPadding:ee?0:m,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:S,keepMounted:w,disableAnchorTracking:h,collisionAvoidance:F,shiftCrossAxis:ee,externalTree:C}),ue=l.useMemo(()=>{const ne={};return _||(ne.pointerEvents="none"),{role:"presentation",hidden:!N,style:{...H.positionerStyles,...ne}}},[_,N,H.positionerStyles]);l.useEffect(()=>{function ne(A){A.open?(A.parentNodeId===S&&v.set("hoverEnabled",!1),A.nodeId!==S&&A.parentNodeId===v.select("floatingParentNodeId")&&v.setOpen(!1,ve(en))):A.parentNodeId===S&&A.reason!==en&&v.set("hoverEnabled",!0)}return C.events.on("menuopenchange",ne),()=>{C.events.off("menuopenchange",ne)}},[v,C.events,S]),l.useEffect(()=>{if(v.select("floatingParentNodeId")==null)return;function ne(A){if(A.open||A.nodeId!==v.select("floatingParentNodeId"))return;const Q=A.reason??en;v.setOpen(!1,ve(Q))}return C.events.on("menuopenchange",ne),()=>{C.events.off("menuopenchange",ne)}},[C.events,v]),l.useEffect(()=>{function ne(A){!_||A.nodeId!==v.select("floatingParentNodeId")||A.target&&j&&j!==A.target&&v.setOpen(!1,ve(en))}return C.events.on("itemhover",ne),()=>{C.events.off("itemhover",ne)}},[C.events,_,j,v]),l.useEffect(()=>{const ne={open:_,nodeId:S,parentNodeId:D,reason:v.select("lastOpenChangeReason")};C.events.emit("menuopenchange",ne)},[C.events,_,v,S,D]);const ge=l.useMemo(()=>({open:_,side:H.side,align:H.align,anchorHidden:H.anchorHidden,nested:b.type==="menu"}),[_,H.side,H.align,H.anchorHidden,b.type]),te=l.useMemo(()=>({side:H.side,align:H.align,arrowRef:H.arrowRef,arrowUncentered:H.arrowUncentered,arrowStyles:H.arrowStyles,nodeId:H.context.nodeId}),[H.side,H.align,H.arrowRef,H.arrowUncentered,H.arrowStyles,H.context.nodeId]),G=Te("div",t,{state:ge,stateAttributesMapping:mn,ref:[n,v.useStateSetter("positionerElement")],props:[ue,y]}),q=N&&b.type!=="menu"&&(b.type!=="menubar"&&L&&I!==Je||b.type==="menubar"&&b.context.modal);let de=null;return b.type==="menubar"?de=b.context.contentElement:b.type===void 0&&(de=j),T.jsxs(bo.Provider,{value:te,children:[q&&T.jsx(go,{ref:b.type==="context-menu"||b.type==="nested-context-menu"?b.context.internalBackdropRef:null,inert:Gr(!_),cutout:de}),T.jsx(Dl,{id:S,children:T.jsx(_d,{elementsRef:v.context.itemDomElements,labelsRef:v.context.itemLabels,children:G})})]})});process.env.NODE_ENV!=="production"&&(pc.displayName="MenuPositioner");const mc=l.createContext(null);process.env.NODE_ENV!=="production"&&(mc.displayName="MenubarContext");function gc(e){return l.useContext(mc)}const Fd={...wi,disabled:ce(e=>e.parent.type==="menubar"&&e.parent.context.disabled||e.disabled),modal:ce(e=>(e.parent.type===void 0||e.parent.type==="context-menu")&&(e.modal??!0)),allowMouseEnter:ce(e=>e.parent.type==="menu"?e.parent.store.select("allowMouseEnter"):e.allowMouseEnter),stickIfOpen:ce(e=>e.stickIfOpen),parent:ce(e=>e.parent),rootId:ce(e=>e.parent.type==="menu"?e.parent.store.select("rootId"):e.parent.type!==void 0?e.parent.context.rootId:e.rootId),activeIndex:ce(e=>e.activeIndex),isActive:ce((e,t)=>e.activeIndex===t),hoverEnabled:ce(e=>e.hoverEnabled),instantType:ce(e=>e.instantType),lastOpenChangeReason:ce(e=>e.openChangeReason),floatingTreeRoot:ce(e=>e.parent.type==="menu"?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:ce(e=>e.floatingNodeId),floatingParentNodeId:ce(e=>e.floatingParentNodeId),itemProps:ce(e=>e.itemProps),closeDelay:ce(e=>e.closeDelay),keyboardEventRelay:ce(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type==="menu")return e.parent.store.select("keyboardEventRelay")})};class wo extends co{constructor(n){super({...Vd(),...n},{positionerRef:l.createRef(),popupRef:l.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:l.createRef(),beforeContentFocusGuardRef:l.createRef(),onOpenChangeComplete:void 0,triggerElements:new qn},Fd);Ce(this,"unsubscribeParentListener",null);this.observe(ce(r=>r.allowMouseEnter),(r,o)=>{this.state.parent.type==="menu"&&r!==o&&this.state.parent.store.set("allowMouseEnter",r)}),this.unsubscribeParentListener=this.observe("parent",r=>{if(this.unsubscribeParentListener?.(),r.type==="menu"){this.unsubscribeParentListener=r.store.subscribe(()=>{this.notifyAll()}),this.context.allowMouseUpTriggerRef=r.store.context.allowMouseUpTriggerRef;return}r.type!==void 0&&(this.context.allowMouseUpTriggerRef=r.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(n,r){this.state.floatingRootContext.context.events.emit("setOpen",{open:n,eventDetails:r})}static useStore(n,r){return et(()=>n??new wo(r)).current}}function Vd(){return{...xi(),disabled:!1,modal:!0,allowMouseEnter:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new Xr,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:ke,keyboardEventRelay:void 0,closeDelay:0}}const hc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(hc.displayName="MenuSubmenuRootContext");function jd(){return l.useContext(hc)}function Bd(e){const{children:t,open:n,onOpenChange:r,onOpenChangeComplete:o,defaultOpen:s=!1,disabled:c=!1,modal:i,loopFocus:u=!0,orientation:a="vertical",actionsRef:d,closeParentOnEsc:f=!1,handle:p,triggerId:m,defaultTriggerId:g=null,highlightItemOnHover:h=!0}=e,x=Zn(!0),y=Lt(!0),v=gc(),w=jd(),E=l.useMemo(()=>w&&y?{type:"menu",store:y.store}:v?{type:"menubar",context:v}:x&&!y?{type:"context-menu",context:x}:{type:void 0},[x,y,v,w]),b=wo.useStore(p?.store,{parent:E}),R=b.useState("floatingTreeRoot"),C=ti(R),N=ht();J(()=>{x&&!y?b.update({parent:{type:"context-menu",context:x},floatingNodeId:C,floatingParentNodeId:N}):y&&b.update({floatingNodeId:C,floatingParentNodeId:N})},[x,y,C,N,b]),b.useControlledProp("open",n,s),b.useControlledProp("activeTriggerId",m,g),b.useContextCallback("onOpenChangeComplete",o);const _=b.useState("open"),L=b.useState("activeTriggerElement"),j=b.useState("positionerElement"),I=b.useState("hoverEnabled"),S=b.useState("modal"),D=b.useState("disabled"),M=b.useState("lastOpenChangeReason"),P=b.useState("parent"),k=b.useState("activeIndex"),O=b.useState("payload"),F=b.useState("floatingParentNodeId"),V=l.useRef(null),U=F!=null;let ee;process.env.NODE_ENV!=="production"&&P.type!==void 0&&i!==void 0&&console.warn("Base UI: The `modal` prop is not supported on nested menus. It will be ignored."),b.useSyncedValues({disabled:c,modal:P.type===void 0?i:void 0,rootId:gt()});const{openMethod:H,triggerProps:ue,reset:ge}=tc(_);vi(b);const{forceUnmount:te}=Ei(_,b,()=>{b.update({allowMouseEnter:!1,stickIfOpen:!0}),ge()}),G=l.useRef(P.type!=="context-menu"),q=tt();l.useEffect(()=>{if(_||(V.current=null),P.type==="context-menu"){if(!_){q.clear(),G.current=!1;return}q.start(500,()=>{G.current=!0})}},[q,_,P.type]),ec(_&&S&&M!==Je&&H!=="touch",j),J(()=>{!_&&!I&&b.set("hoverEnabled",!0)},[_,I,b]);const de=l.useRef(!0),ne=tt(),A=X((pe,Ee)=>{const De=Ee.reason;if(_===pe&&Ee.trigger===L||(Ee.preventUnmountOnClose=()=>{b.set("preventUnmountingOnClose",!0)},!pe&&Ee.trigger==null&&(Ee.trigger=L??void 0),r?.(pe,Ee),Ee.isCanceled))return;const Oe={open:pe,nativeEvent:Ee.event,reason:Ee.reason,nested:U};ee?.emit("openchange",Oe);const Ne=Ee.event;if(pe===!1&&Ne?.type==="click"&&Ne.pointerType==="touch"&&!de.current)return;if(!pe&&k!==null){const nt=b.context.itemDomElements.current[k];queueMicrotask(()=>{nt?.setAttribute("tabindex","-1")})}pe&&De===Bn?(de.current=!1,ne.start(300,()=>{de.current=!0})):(de.current=!0,ne.clear());const Ke=(De===wt||De===ni)&&Ne.detail===0&&Ne?.isTrusted,Be=!pe&&(De===to||De==null);function ot(){const nt={open:pe,openChangeReason:De};V.current=Ee.event??null;const Tt=Ee.trigger?.id??null;(Tt||pe)&&(nt.activeTriggerId=Tt,nt.activeTriggerElement=Ee.trigger??null),b.update(nt)}De===Je?ct.flushSync(ot):ot(),P.type==="menubar"&&(De===Bn||De===Kt||De===Je||De===Tn||De===en)?b.set("instantType","group"):Ke||Be?b.set("instantType",Ke?"click":"dismiss"):b.set("instantType",void 0)}),Q=l.useCallback(pe=>{const Ee=ve(pe);return Ee.preventUnmountOnClose=()=>{b.set("preventUnmountingOnClose",!0)},Ee},[b]),Z=l.useCallback(()=>{b.setOpen(!1,Q(ri))},[b,Q]);l.useImperativeHandle(d,()=>({unmount:te,close:Z}),[te,Z]);let Re;P.type==="context-menu"&&(Re=P.context),l.useImperativeHandle(Re?.positionerRef,()=>j,[j]),l.useImperativeHandle(Re?.actionsRef,()=>({setOpen:A}),[A]);const se=Ri({popupStore:b,onOpenChange:A});ee=se.context.events,l.useEffect(()=>{const pe=({open:Ee,eventDetails:De})=>A(Ee,De);return ee.on("setOpen",pe),()=>{ee?.off("setOpen",pe)}},[ee,A]);const z=gi(se,{enabled:!D,bubbles:f&&P.type==="menu",outsidePress(){return P.type!=="context-menu"||V.current?.type==="contextmenu"?!0:G.current},externalTree:U?R:void 0}),W=Ci(se,{role:"menu"}),ie=Ti(),re=l.useCallback(pe=>{b.select("activeIndex")!==pe&&b.set("activeIndex",pe)},[b]),he=Nf(se,{enabled:!D,listRef:b.context.itemDomElements,activeIndex:k,nested:P.type!==void 0,loopFocus:u,orientation:a,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:ie==="rtl",disabledIndices:jn,onNavigate:re,openOnArrowKeyDown:P.type!=="context-menu",externalTree:U?R:void 0,focusItemOnHover:h}),K=l.useCallback(pe=>{b.context.typingRef.current=pe},[b]),ae=If(se,{listRef:b.context.itemLabels,activeIndex:k,resetMs:ll,onMatch:pe=>{_&&pe!==k&&b.set("activeIndex",pe)},onTypingChange:K}),{getReferenceProps:Y,getFloatingProps:$,getItemProps:B,getTriggerProps:oe}=lo([z,W,he,ae]),le=l.useMemo(()=>{const pe=cn(Y(),{onMouseEnter(){b.set("hoverEnabled",!0)},onMouseMove(){b.set("allowMouseEnter",!0)}},ue);return delete pe.role,pe},[Y,b,ue]),fe=l.useMemo(()=>{const pe=oe();if(!pe)return pe;const Ee=cn(pe,ue);return delete Ee.role,delete Ee["aria-controls"],Ee},[oe,ue]),xe=dn(),Se=l.useMemo(()=>$({onMouseEnter(){P.type==="menu"&&xe.request(()=>b.set("hoverEnabled",!1))},onMouseMove(){b.set("allowMouseEnter",!0)},onClick(){b.select("hoverEnabled")&&b.set("hoverEnabled",!1)},onKeyDown(pe){const Ee=b.select("keyboardEventRelay");Ee&&!pe.isPropagationStopped()&&Ee(pe)}}),[$,P.type,xe,b]),ze=l.useMemo(()=>B(),[B]);b.useSyncedValues({floatingRootContext:se,activeTriggerProps:le,inactiveTriggerProps:fe,popupProps:Se,itemProps:ze});const We=l.useMemo(()=>({store:b,parent:E}),[b,E]),Me=T.jsx(yo.Provider,{value:We,children:typeof t=="function"?t({payload:O}):t});return P.type===void 0||P.type==="context-menu"?T.jsx(_l,{externalTree:R,children:Me}):Me}function $d(e){const t=e.getBoundingClientRect();if(process.env.NODE_ENV==="test")return t;const n=window.getComputedStyle(e,"::before"),r=window.getComputedStyle(e,"::after");if(!(n.content!=="none"||r.content!=="none"))return t;const s=parseFloat(n.width)||0,c=parseFloat(n.height)||0,i=parseFloat(r.width)||0,u=parseFloat(r.height)||0,a=Math.max(t.width,s,i),d=Math.max(t.height,c,u),f=a-t.width,p=d-t.height;return{left:t.left-f/2,right:t.right+f/2,top:t.top-p/2,bottom:t.bottom+p/2}}function Hd(e={}){const{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=qr(),{ref:o,index:s}=ic(e),c=n===s,i=l.useRef(null),u=Pt(o,i);return{compositeProps:l.useMemo(()=>({tabIndex:c?0:-1,onFocus(){r(s)},onMouseMove(){const d=i.current;if(!t||!d)return;const f=d.hasAttribute("disabled")||d.ariaDisabled==="true";!c&&!f&&d.focus()}}),[c,r,s,t]),compositeRef:u,index:s}}function Ud(e){const{render:t,className:n,state:r=ke,props:o=jn,refs:s=jn,metadata:c,stateAttributesMapping:i,tag:u="div",...a}=e,{compositeProps:d,compositeRef:f}=Hd({metadata:c});return Te(u,e,{state:r,ref:[...s,f],props:[d,...o,a],stateAttributesMapping:i})}function bc(e){if(Pe(e)&&e.hasAttribute("data-rootownerid"))return e.getAttribute("data-rootownerid")??void 0;if(!at(e))return bc(ft(e))}function Wd(e){const{enabled:t=!0,mouseDownAction:n,open:r}=e,o=l.useRef(!1);return l.useMemo(()=>t?{onMouseDown:s=>{(n==="open"&&!r||n==="close"&&r)&&(o.current=!0,Ye(s.currentTarget).addEventListener("click",()=>{o.current=!1},{once:!0}))},onClick:s=>{o.current&&(o.current=!1,s.preventBaseUIHandler())}}:ke,[t,n,r])}const Cn=2,yc=l.forwardRef(function(t,n){const{render:r,className:o,disabled:s=!1,nativeButton:c=!0,id:i,openOnHover:u,delay:a=100,closeDelay:d=0,handle:f,payload:p,...m}=t,g=Lt(!0),h=f?.store??g?.store;if(!h)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.":Fe(85));const x=At(i),y=h.useState("isTriggerActive",x),v=h.useState("floatingRootContext"),w=h.useState("isOpenedByTrigger",x),E=l.useRef(null),b=zd(),R=qr(!0),C=Ct(),N=l.useMemo(()=>C??new Xr,[C]),_=ti(N),L=ht(),{registerTrigger:j,isMountedByThisTrigger:I}=pf(x,E,h,{payload:p,closeDelay:d,parent:b,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:L,keyboardEventRelay:R?.relayKeyboardEvent}),S=h.useState("disabled"),D=s||S||b.type==="menubar"&&b.context.disabled,{getButtonProps:M,buttonRef:P}=Xt({disabled:D,native:c});l.useEffect(()=>{!w&&b.type===void 0&&(h.context.allowMouseUpTriggerRef.current=!1)},[h,w,b.type]);const k=l.useRef(null),O=tt(),F=X(W=>{if(!k.current)return;O.clear(),h.context.allowMouseUpTriggerRef.current=!1;const ie=W.target;if(me(k.current,ie)||me(h.select("positionerElement"),ie)||ie===k.current||ie!=null&&bc(ie)===h.select("rootId"))return;const re=$d(k.current);W.clientX>=re.left-Cn&&W.clientX<=re.right+Cn&&W.clientY>=re.top-Cn&&W.clientY<=re.bottom+Cn||N.events.emit("close",{domEvent:W,reason:Al})});l.useEffect(()=>{w&&h.select("lastOpenChangeReason")===Je&&Ye(k.current).addEventListener("mouseup",F,{once:!0})},[w,F,h]);const V=b.type==="menubar"&&b.context.hasSubmenuOpen,ee=Sf(v,{enabled:(u??V??!1)&&!D&&b.type!=="context-menu"&&(b.type!=="menubar"||V&&!I),handleClose:Df({blockPointerEvents:b.type!=="menubar"}),mouseOnly:!0,move:!1,restMs:b.type===void 0?a:void 0,delay:{close:d},triggerElementRef:E,externalTree:N,isActiveTrigger:y}),H=Kd(w,h.select("lastOpenChangeReason")),ue=Kl(v,{enabled:!D&&b.type!=="context-menu",event:w&&b.type==="menubar"?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:b.type===void 0?H:!1}),ge=bf(v,{enabled:!D&&(b.type!=="menubar"&&w||V)}),te=Wd({open:w,enabled:b.type==="menubar",mouseDownAction:"open"}),G=lo([ue,ge]),q=b.type==="menubar",de=l.useMemo(()=>({disabled:D,open:w}),[D,w]),ne=h.useState("triggerProps",I),A=[k,n,P,j,E],Q=[G.getReferenceProps(),ee??ke,ne,{"aria-haspopup":"menu",id:x,onMouseDown:W=>{if(h.select("open"))return;O.start(200,()=>{h.context.allowMouseUpTriggerRef.current=!0}),Ye(W.currentTarget).addEventListener("mouseup",F,{once:!0})}},q?{role:"menuitem"}:{},te,m,M],Z=l.useRef(null),Re=X(W=>{ct.flushSync(()=>{h.setOpen(!1,ve(Kt,W.nativeEvent,W.currentTarget))}),Ya(Z.current)?.focus()}),se=X(W=>{const ie=h.select("positionerElement");if(ie&&Vt(W,ie))h.context.beforeContentFocusGuardRef.current?.focus();else{ct.flushSync(()=>{h.setOpen(!1,ve(Kt,W.nativeEvent,W.currentTarget))});let re=Ga(E.current);for(;re!==null&&me(ie,re)||re?.hasAttribute("aria-hidden");){const he=re;if(re=Ur(re),re===he)break}re?.focus()}}),z=Te("button",t,{enabled:!q,stateAttributesMapping:fs,state:de,ref:A,props:Q});return q?T.jsx(Ud,{tag:"button",render:r,className:o,state:de,refs:A,props:Q,stateAttributesMapping:fs}):w?T.jsxs(l.Fragment,{children:[T.jsx(ut,{ref:Z,onFocus:Re},`${x}-pre-focus-guard`),T.jsx(l.Fragment,{children:z},x),T.jsx(ut,{ref:h.context.triggerFocusTargetRef,onFocus:se},`${x}-post-focus-guard`)]}):T.jsx(l.Fragment,{children:z},x)});process.env.NODE_ENV!=="production"&&(yc.displayName="MenuTrigger");function Kd(e,t){const n=tt(),[r,o]=l.useState(!1);return J(()=>{e&&t==="trigger-hover"?(o(!0),n.start(ul,()=>{o(!1)})):e||(n.clear(),o(!1))},[e,t,n]),r}function zd(){const e=Zn(!0),t=Lt(!0),n=gc();return l.useMemo(()=>n?{type:"menubar",context:n}:e&&!t?{type:"context-menu",context:e}:{type:void 0},[e,t,n])}const vc=l.forwardRef(function(t,n){const{className:r,render:o,orientation:s="horizontal",...c}=t,i=l.useMemo(()=>({orientation:s}),[s]);return Te("div",t,{state:i,ref:n,props:[{role:"separator","aria-orientation":s},c]})});process.env.NODE_ENV!=="production"&&(vc.displayName="Separator");const Ec=be.forwardRef(({open:e,defaultOpen:t=!1,onOpenChange:n,disabled:r=!1,className:o,style:s,children:c,...i},u)=>T.jsx("div",{ref:u,className:ye("memori-dropdown",o),style:s,children:T.jsx(Bd,{open:e,defaultOpen:t,onOpenChange:n,disabled:r,...i,children:c})}));Ec.displayName="Dropdown";const xc=be.forwardRef(({children:e,showChevron:t=!0,className:n,style:r,disabled:o,"aria-label":s,...c},i)=>T.jsxs(yc,{ref:i,disabled:o,className:ye("memori-dropdown__trigger",n),style:r,"aria-label":s,...c,children:[e,t&&T.jsx("span",{className:"memori-dropdown__trigger-icon","aria-hidden":!0,children:T.jsx(Ue.ChevronDown,{size:16})})]}));xc.displayName="DropdownTrigger";function wc({children:e,sideOffset:t=8,placement:n="bottom",align:r="start",container:o,className:s,style:c}){return T.jsx(dc,{container:o??document.body,children:T.jsx(pc,{sideOffset:t,side:n,align:r,className:"memori-dropdown__positioner",children:T.jsx(fc,{className:ye("memori-dropdown__popup",s),style:c,role:"menu",children:e})})})}wc.displayName="DropdownMenu";const Rc=be.forwardRef(({children:e,disabled:t=!1,closeOnClick:n=!0,label:r,className:o,style:s,onClick:c,...i},u)=>T.jsx(lc,{ref:u,disabled:t,closeOnClick:n,label:r,className:ye("memori-dropdown__item",o),style:s,onClick:c,role:"menuitem",...i,children:e}));Rc.displayName="DropdownItem";const Sc=be.forwardRef(({className:e,style:t,...n},r)=>T.jsx(vc,{ref:r,className:ye("memori-dropdown__separator",e),style:t,role:"separator",...n}));Sc.displayName="DropdownSeparator";const Cc=be.forwardRef(({children:e,className:t,style:n,...r},o)=>T.jsx(cc,{ref:o,className:ye("memori-dropdown__group",t),style:n,role:"group",...r,children:e}));Cc.displayName="DropdownGroup";const Oc=be.forwardRef(({children:e,className:t,style:n,...r},o)=>T.jsx(ac,{ref:o,className:ye("memori-dropdown__group-label",t),style:n,...r,children:e}));Oc.displayName="DropdownGroupLabel";const Gd=Object.assign(Ec,{Trigger:xc,Menu:wc,Item:Rc,Separator:Sc,Group:Cc,GroupLabel:Oc}),Tc=l.forwardRef(({open:e,onOpenChange:t,onClose:n,anchor:r="right",size:o="sm",children:s,title:c,description:i,footer:u,loading:a,className:d,style:f,showCloseButton:p=!0,closable:m=!0,...g},h)=>{const x=(v,w)=>{t?.(v,w),v||n?.(w)},y=m!==void 0?m:p;return T.jsx(Ve.Dialog.Root,{open:e,onOpenChange:x,children:T.jsxs(Ve.Dialog.Portal,{children:[T.jsx(Ve.Dialog.Backdrop,{className:"memori-drawer__backdrop"}),T.jsxs(Ve.Dialog.Popup,{ref:h,className:ye("memori-drawer",`memori-drawer--${r}`,`memori-drawer--size-${o}`,d),style:f,...g,children:[(c||i||y)&&T.jsxs("div",{className:"memori-drawer__header",children:[T.jsxs("div",{children:[c&&T.jsx("div",{className:"memori-drawer__title",children:c}),i&&T.jsx("div",{className:"memori-drawer__description",children:i})]}),y&&T.jsx(Ve.Dialog.Close,{className:"memori-drawer__close","aria-label":"Close",children:T.jsx(Ue.X,{size:20})})]}),T.jsx("div",{className:"memori-drawer__body",children:a?T.jsx("div",{className:"memori-drawer__loading",children:T.jsx(Ue.Loader2,{className:"memori-drawer__spinner","aria-label":"Loading"})}):s}),u&&T.jsx("div",{className:"memori-drawer__footer",children:u})]})]})})});Tc.displayName="Drawer";let bs=(function(e){return e.disabled="data-disabled",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const Yd={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},qd={valid(e){return e===null?null:e?{[bs.valid]:""}:{[bs.invalid]:""}}},Nc=l.createContext({invalid:void 0,name:void 0,validityData:{state:Yd,errors:[],error:"",value:"",initialValue:null},setValidityData:Xe,disabled:void 0,touched:!1,setTouched:Xe,dirty:!1,setDirty:Xe,filled:!1,setFilled:Xe,focused:!1,setFocused:Xe,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:{disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},markedDirtyRef:{current:!1},validation:{getValidationProps:(e=ke)=>e,getInputValidationProps:(e=ke)=>e,inputRef:{current:null},commit:async()=>{}}});process.env.NODE_ENV!=="production"&&(Nc.displayName="FieldRootContext");function kr(e=!0){const t=l.useContext(Nc);if(t.setValidityData===Xe&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.":Fe(28));return t}const Mc=l.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:Xe,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});process.env.NODE_ENV!=="production"&&(Mc.displayName="FormContext");function Xd(){return l.useContext(Mc)}const Ic=l.createContext({controlId:void 0,setControlId:Xe,labelId:void 0,setLabelId:Xe,messageIds:[],setMessageIds:Xe,getDescriptionProps:e=>e});process.env.NODE_ENV!=="production"&&(Ic.displayName="LabelableContext");function Pc(){return l.useContext(Ic)}function Jd(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}function Zd(e={}){const{id:t,implicit:n=!1,controlRef:r}=e,{controlId:o,setControlId:s}=Pc(),c=At(t);return J(()=>{if(!(!n&&!t||s===Xe)){if(n){const i=r?.current;we(i)&&i.closest("label")!=null?s(t??null):s(o??c)}else t&&s(t);return()=>{t&&s(void 0)}}},[t,r,o,s,n,c]),o??c}function Qd(e){const{enabled:t=!0,value:n,id:r,name:o,controlRef:s,commit:c}=e,{formRef:i}=Xd(),{invalid:u,markedDirtyRef:a,validityData:d,setValidityData:f}=kr(),p=X(e.getValue);J(()=>{if(!t)return;let m=n;m===void 0&&(m=p()),d.initialValue===null&&m!==null&&f(g=>({...g,initialValue:m}))},[t,f,n,d.initialValue,p]),J(()=>{!t||!r||i.current.fields.set(r,{getValue:p,name:o,controlRef:s,validityData:Jd(d,u),validate(){let m=n;m===void 0&&(m=p()),a.current=!0,ct.flushSync(()=>c(m))}})},[c,s,t,i,p,r,u,a,o,d,n]),J(()=>{const m=i.current.fields;return()=>{r&&m.delete(r)}},[i,r])}const Dc=l.forwardRef(function(t,n){const{render:r,className:o,id:s,name:c,value:i,disabled:u=!1,onValueChange:a,defaultValue:d,...f}=t,{state:p,name:m,disabled:g}=kr(),h=g||u,x=m??c,y=l.useMemo(()=>({...p,disabled:h}),[p,h]),{setTouched:v,setDirty:w,validityData:E,setFocused:b,setFilled:R,validationMode:C,validation:N}=kr(),{labelId:_}=Pc(),L=Zd({id:s});J(()=>{const P=i!=null;N.inputRef.current?.value||P&&i!==""?R(!0):P&&i===""&&R(!1)},[N.inputRef,R,i]);const[j,I]=Pi({controlled:i,default:d,name:"FieldControl",state:"value"}),S=i!==void 0,D=X((P,k)=>{a?.(P,k),!k.isCanceled&&I(P)});return Qd({id:L,name:x,commit:N.commit,value:j,getValue:()=>N.inputRef.current?.value,controlRef:N.inputRef}),Te("input",t,{ref:n,state:y,props:[{id:L,disabled:h,name:x,ref:N.inputRef,"aria-labelledby":_,...S?{value:j}:{defaultValue:d},onChange(P){const k=P.currentTarget.value;D(k,ve(Qr,P.nativeEvent)),w(k!==E.initialValue),R(k!=="")},onFocus(){b(!0)},onBlur(P){v(!0),b(!1),C==="onBlur"&&N.commit(P.currentTarget.value)},onKeyDown(P){P.currentTarget.tagName==="INPUT"&&P.key==="Enter"&&(v(!0),N.commit(P.currentTarget.value))}},N.getInputValidationProps(),f],stateAttributesMapping:qd})});process.env.NODE_ENV!=="production"&&(Dc.displayName="FieldControl");const _c=l.forwardRef(function(t,n){return T.jsx(Dc,{ref:n,...t})});process.env.NODE_ENV!=="production"&&(_c.displayName="Input");const kc=be.forwardRef(({variant:e="default",size:t="md",fullWidth:n=!1,className:r,disabled:o,...s},c)=>{const i=o||e==="disabled",u=e==="error"?"memori-input--error":e==="disabled"?"memori-input--disabled":"memori-input--default",a=t==="sm"?"memori-input--sm":t==="lg"?"memori-input--lg":"memori-input--md",d=n?"memori-input--full-width":void 0,f=i?"memori-input--disabled":void 0;return T.jsx(_c,{ref:c,disabled:i,className:ye("memori-input",u,a,d,f,r),...s})});kc.displayName="Input";const Ac=be.forwardRef(({options:e,value:t,defaultValue:n,onChange:r,placeholder:o="Select an option",label:s,disabled:c,required:i,error:u,name:a,className:d,style:f},p)=>T.jsx("div",{className:ye("memori-select",d),style:f,children:T.jsxs(Ve.Select.Root,{value:t,defaultValue:n,onValueChange:m=>r?.(m),disabled:c,required:i,name:a,children:[s&&T.jsx("label",{className:"memori-select__label",children:s}),T.jsxs(Ve.Select.Trigger,{ref:p,className:ye("memori-select__trigger",u&&"memori-select__trigger--error"),children:[T.jsx(Ve.Select.Value,{className:"memori-select__value","data-placeholder":o}),T.jsx(Ve.Select.Icon,{className:"memori-select__icon",children:T.jsx(Ue.ChevronDown,{size:16})})]}),T.jsx(Ve.Select.Portal,{className:"memori-select__portal",children:T.jsx(Ve.Select.Positioner,{className:"memori-select__positioner",sideOffset:8,side:"bottom",align:"start",children:T.jsx(Ve.Select.Popup,{className:"memori-select__popup",children:e.map(m=>T.jsxs(Ve.Select.Item,{value:m.value,disabled:m.disabled,className:"memori-select__item",children:[T.jsx(Ve.Select.ItemText,{children:m.label}),T.jsx(Ve.Select.ItemIndicator,{children:T.jsx(Ue.Check,{className:"memori-select__check-icon"})})]},m.value))})})})]})}));Ac.displayName="SelectBox";const ep=({min:e=0,max:t=100,step:n=1,value:r,defaultValue:o=50,label:s,onChange:c,disabled:i=!1})=>{const[u,a]=be.useState(o),d=r!==void 0,f=d?r:u,p=R=>{d||a(R),c?.(R)},[m,g]=be.useState(!1),h=be.useRef(null),x=(f-e)/(t-e)*100,y=[];for(let R=e;R<=t;R+=(t-e)/4)y.push(Math.round(R));const v=R=>{if(!h.current)return f;const C=h.current.getBoundingClientRect(),N=R-C.left,_=C.width,L=Math.max(0,Math.min(100,N/_*100)),j=Math.round(L/100*(t-e)+e),I=Math.round(j/n)*n;return Math.min(Math.max(I,e),t)},w=R=>{if(i)return;g(!0);const C=v(R);p(C)},E=R=>{if(!m||i)return;const C=v(R);p(C)},b=()=>{g(!1)};return be.useEffect(()=>{const R=_=>{m&&(_.preventDefault(),E(_.touches[0]?.clientX??0))},C=_=>{E(_.clientX)},N=()=>{b()};return m&&(window.addEventListener("touchmove",R,{passive:!1}),window.addEventListener("mousemove",C),window.addEventListener("touchend",N),window.addEventListener("mouseup",N)),()=>{window.removeEventListener("touchmove",R),window.removeEventListener("mousemove",C),window.removeEventListener("touchend",N),window.removeEventListener("mouseup",N)}},[m]),be.useEffect(()=>{d||a(o)},[o,d]),T.jsxs("div",{className:ye("memori-slider",{"memori-slider--disabled":i}),style:{"--percentage":`${x}%`},children:[T.jsxs("div",{className:"memori-slider__header",children:[s&&T.jsx("div",{className:"memori-slider__label",children:s}),T.jsx("div",{className:"memori-slider__value",children:f})]}),T.jsxs("div",{ref:h,className:"memori-slider__track-container",onMouseDown:R=>w(R.clientX),onTouchStart:R=>w(R.touches[0]?.clientX??0),children:[T.jsx("div",{className:"memori-slider__track",children:T.jsx("div",{className:"memori-slider__track-fill"})}),T.jsx("div",{className:"memori-slider__marks",children:y.map(R=>T.jsxs("div",{className:"memori-slider__mark",children:[T.jsx("div",{className:"memori-slider__mark-line"}),T.jsx("span",{className:"memori-slider__mark-value",children:R})]},R))}),T.jsx("div",{className:"memori-slider__thumb",role:"slider","aria-valuemin":e,"aria-valuemax":t,"aria-valuenow":f,tabIndex:i?-1:0})]})]})},tp=({content:e,className:t,align:n="right",disabled:r=!1,visible:o=!1,children:s})=>T.jsxs("div",{className:ye("memori-tooltip",`memori-tooltip--align-${n}`,t,{"memori-tooltip--disabled":r,"memori-tooltip--visible":o}),children:[T.jsx("div",{className:"memori-tooltip--content",children:e}),T.jsx("div",{className:"memori-tooltip--trigger",children:s})]});function np(){const[e,t]=be.useState(()=>{if(typeof window<"u"){const o=localStorage.getItem("theme");if(o==="light"||o==="dark")return o;if(window.matchMedia("(prefers-color-scheme: dark)").matches)return"dark"}return"light"});return be.useEffect(()=>{const o=document.documentElement;o.removeAttribute("data-theme"),o.classList.remove("dark"),e==="dark"?(o.setAttribute("data-theme","dark"),o.classList.add("dark")):(o.removeAttribute("data-theme"),o.classList.remove("dark")),localStorage.setItem("theme",e)},[e]),{theme:e,setTheme:o=>{t(o)},toggleTheme:()=>{t(o=>o==="light"?"dark":"light")}}}exports.Alert=Mi;exports.AlertProvider=Wf;exports.AlertViewport=Uf;exports.Button=Gt;exports.Card=ji;exports.Checkbox=Bi;exports.Collapsible=Vi;exports.ConfirmDialog=xd;exports.Drawer=Tc;exports.Dropdown=Gd;exports.Expandable=Rd;exports.Input=kc;exports.Modal=ho;exports.SelectBox=Ac;exports.Slider=ep;exports.Spin=Jn;exports.Tooltip=tp;exports.createAlertOptions=zf;exports.useAlertManager=Kf;exports.useTheme=np;
|
|
56
|
+
<br />...`),t.split(" ").length>_r&&(t=t.split(" ").slice(0,_r).join(" ")),t},Rd=({rows:e,className:t,innerClassName:n,btnClassName:r,lineHeightMultiplier:o=1.2,defaultExpanded:s=!1,expandSymbol:c=()=>"...",collapseSymbol:i=d=>d==="it"?"Mostra meno":"Show less",children:u,mode:a="rows"})=>{const{i18n:d}=Yc.useTranslation(),f=d.language,p=i(f),m=c(f),[g,h]=be.useState(s),[x,y]=be.useState(!1),[v,w]=be.useState(16),E=be.useRef(null);be.useEffect(()=>{if(E.current){if(a==="rows"){let R=E.current.getBoundingClientRect().height,C=getComputedStyle(E.current),N=C.lineHeight,_=N==="normal"||!N?.length?o*parseInt(C.fontSize,10):parseInt(N,10);w(_),R&&e&&R>e*_&&y(!0)}else if(a==="characters"){const R=E.current.textContent||"";(R.length>Dr||R.split(" ").length>_r)&&y(!0)}}},[e,a,E.current]);const b=()=>{if(a==="characters"&&!g&&x){const R=E.current?.textContent||"";return wd(R)}return u};return T.jsxs("div",{className:ye("memori-expandable",t),children:[T.jsx("div",{ref:E,className:ye("memori-expandable__inner",n),style:{maxHeight:g||!x||a==="characters"?"9999px":`${v*(e||1)}px`},children:b()}),x&&!g&&T.jsx(Gt,{variant:"ghost",className:r,onClick:()=>h(!0),children:m}),x&&g&&T.jsx(Gt,{variant:"ghost",className:r,onClick:()=>h(!1),children:p})]})},bo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(bo.displayName="MenuPositionerContext");function oc(e){const t=l.useContext(bo);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.":Fe(33));return t}const yo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(yo.displayName="MenuRootContext");function Lt(e){const t=l.useContext(yo);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.":Fe(36));return t}const sc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(sc.displayName="ContextMenuRootContext");function Zn(e=!0){const t=l.useContext(sc);if(t===void 0&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.":Fe(25));return t}const Sd={type:"regular-item"};function Cd(e){const{closeOnClick:t,disabled:n=!1,highlighted:r,id:o,store:s,nativeButton:c,itemMetadata:i,nodeId:u}=e,a=l.useRef(null),d=Zn(!0),f=d!==void 0,{events:p}=s.useState("floatingTreeRoot"),{getButtonProps:m,buttonRef:g}=Xt({disabled:n,focusableWhenDisabled:!0,native:c}),h=l.useCallback(y=>cn({id:o,role:"menuitem",tabIndex:r?0:-1,onMouseMove(v){u&&p.emit("itemhover",{nodeId:u,target:v.currentTarget})},onMouseEnter(){i.type==="submenu-trigger"&&i.setActive()},onKeyUp(v){v.key===" "&&s.context.typingRef.current&&v.preventBaseUIHandler()},onClick(v){t&&p.emit("close",{domEvent:v,reason:ni})},onMouseUp(v){if(d){const w=d.initialCursorPointRef.current;if(d.initialCursorPointRef.current=null,f&&w&&Math.abs(v.clientX-w.x)<=1&&Math.abs(v.clientY-w.y)<=1)return}a.current&&s.context.allowMouseUpTriggerRef.current&&(!f||v.button===2)&&i.type==="regular-item"&&a.current.click()}},y,m),[o,r,m,t,p,s,f,d,i,u]),x=Pt(a,g);return l.useMemo(()=>({getItemProps:h,itemRef:x}),[h,x])}const vo=l.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});process.env.NODE_ENV!=="production"&&(vo.displayName="CompositeListContext");function Od(){return l.useContext(vo)}let Td=(function(e){return e[e.None=0]="None",e[e.GuessFromOrder=1]="GuessFromOrder",e})({});function ic(e={}){const{label:t,metadata:n,textRef:r,indexGuessBehavior:o,index:s}=e,{register:c,unregister:i,subscribeMapChange:u,elementsRef:a,labelsRef:d,nextIndexRef:f}=Od(),p=l.useRef(-1),[m,g]=l.useState(s??(o===Td.GuessFromOrder?()=>{if(p.current===-1){const y=f.current;f.current+=1,p.current=y}return p.current}:-1)),h=l.useRef(null),x=l.useCallback(y=>{if(h.current=y,m!==-1&&y!==null&&(a.current[m]=y,d)){const v=t!==void 0;d.current[m]=v?t:r?.current?.textContent??y.textContent}},[m,a,d,t,r]);return J(()=>{if(s!=null)return;const y=h.current;if(y)return c(y,n),()=>{i(y)}},[s,c,i,n]),J(()=>{if(s==null)return u(y=>{const v=h.current?y.get(h.current)?.index:null;v!=null&&g(v)})},[s,u,g]),l.useMemo(()=>({ref:x,index:m}),[m,x])}const Eo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(Eo.displayName="MenuGroupContext");function Nd(){const e=l.useContext(Eo);if(e===void 0)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.":Fe(31));return e}const cc=l.forwardRef(function(t,n){const{render:r,className:o,...s}=t,[c,i]=l.useState(void 0),u=l.useMemo(()=>({setLabelId:i}),[i]),a=Te("div",t,{ref:n,props:{role:"group","aria-labelledby":c,...s}});return T.jsx(Eo.Provider,{value:u,children:a})});process.env.NODE_ENV!=="production"&&(cc.displayName="MenuGroup");const ac=l.forwardRef(function(t,n){const{className:r,render:o,id:s,...c}=t,i=At(s),{setLabelId:u}=Nd();return J(()=>(u(i),()=>{u(void 0)}),[u,i]),Te("div",t,{ref:n,props:{id:i,role:"presentation",...c}})});process.env.NODE_ENV!=="production"&&(ac.displayName="MenuGroupLabel");const lc=l.forwardRef(function(t,n){const{render:r,className:o,id:s,label:c,nativeButton:i=!1,disabled:u=!1,closeOnClick:a=!0,...d}=t,f=ic({label:c}),p=oc(!0),m=At(s),{store:g}=Lt(),h=g.useState("isActive",f.index),x=g.useState("itemProps"),{getItemProps:y,itemRef:v}=Cd({closeOnClick:a,disabled:u,highlighted:h,id:m,store:g,nativeButton:i,nodeId:p?.nodeId,itemMetadata:Sd}),w=l.useMemo(()=>({disabled:u,highlighted:h}),[u,h]);return Te("div",t,{state:w,props:[x,d,y],ref:[v,n,f.ref]})});process.env.NODE_ENV!=="production"&&(lc.displayName="MenuItem");const uc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(uc.displayName="ToolbarRootContext");function Md(e){return l.useContext(uc)}function Id(e){return e==="starting"?fl:ke}const Pd={...mn,...kt},fc=l.forwardRef(function(t,n){const{render:r,className:o,finalFocus:s,...c}=t,{store:i}=Lt(),{side:u,align:a}=oc(),d=Md()!=null,f=i.useState("open"),p=i.useState("transitionStatus"),m=i.useState("popupProps"),g=i.useState("mounted"),h=i.useState("instantType"),x=i.useState("activeTriggerElement"),y=i.useState("parent"),v=i.useState("lastOpenChangeReason"),w=i.useState("rootId"),E=i.useState("floatingRootContext"),b=i.useState("floatingTreeRoot"),R=i.useState("closeDelay"),C=i.useState("activeTriggerElement");pn({open:f,ref:i.context.popupRef,onComplete(){f&&i.context.onOpenChangeComplete?.(!0)}}),l.useEffect(()=>{function S(D){i.setOpen(!1,ve(D.reason,D.domEvent))}return b.events.on("close",S),()=>{b.events.off("close",S)}},[b.events,i]);const N=i.useState("hoverEnabled"),_=i.useState("disabled");xf(E,{enabled:N&&!_&&y.type!=="context-menu"&&y.type!=="menubar",closeDelay:R});const L=l.useMemo(()=>({transitionStatus:p,side:u,align:a,open:f,nested:y.type==="menu",instant:h}),[p,u,a,f,y.type,h]),j=Te("div",t,{state:L,ref:[n,i.context.popupRef],stateAttributesMapping:Pd,props:[m,{onKeyDown(S){d&&Ji.has(S.key)&&S.stopPropagation()}},Id(p),c,{"data-rootownerid":w}]});let I=y.type===void 0||y.type==="context-menu";return(x||y.type==="menubar"&&v!==eo)&&(I=!0),T.jsx(ii,{context:E,modal:!1,disabled:!g,returnFocus:s===void 0?I:s,initialFocus:y.type!=="menu",restoreFocus:!0,externalTree:y.type!=="menubar"?b:void 0,previousFocusableElement:C,nextFocusableElement:y.type===void 0?i.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:y.type===void 0?i.context.beforeContentFocusGuardRef:void 0,children:j})});process.env.NODE_ENV!=="production"&&(fc.displayName="MenuPopup");const xo=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(xo.displayName="MenuPortalContext");function Dd(){const e=l.useContext(xo);if(e===void 0)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: <Menu.Portal> is missing.":Fe(32));return e}const dc=l.forwardRef(function(t,n){const{keepMounted:r=!1,...o}=t,{store:s}=Lt();return s.useState("mounted")||r?T.jsx(xo.Provider,{value:r,children:T.jsx(ro,{ref:n,...o})}):null});process.env.NODE_ENV!=="production"&&(dc.displayName="MenuPortal");function _d(e){const{children:t,elementsRef:n,labelsRef:r,onMapChange:o}=e,s=X(o),c=l.useRef(0),i=et(Ad).current,u=et(kd).current,[a,d]=l.useState(0),f=l.useRef(a),p=X((y,v)=>{u.set(y,v??null),f.current+=1,d(f.current)}),m=X(y=>{u.delete(y),f.current+=1,d(f.current)}),g=l.useMemo(()=>{const y=new Map;return Array.from(u.keys()).filter(w=>w.isConnected).sort(Ld).forEach((w,E)=>{const b=u.get(w)??{};y.set(w,{...b,index:E})}),y},[u,a]);J(()=>{if(typeof MutationObserver!="function"||g.size===0)return;const y=new MutationObserver(v=>{const w=new Set,E=b=>w.has(b)?w.delete(b):w.add(b);v.forEach(b=>{b.removedNodes.forEach(E),b.addedNodes.forEach(E)}),w.size===0&&(f.current+=1,d(f.current))});return g.forEach((v,w)=>{w.parentElement&&y.observe(w.parentElement,{childList:!0})}),()=>{y.disconnect()}},[g]),J(()=>{f.current===a&&(n.current.length!==g.size&&(n.current.length=g.size),r&&r.current.length!==g.size&&(r.current.length=g.size),c.current=g.size),s(g)},[s,g,n,r,a]),J(()=>()=>{n.current=[]},[n]),J(()=>()=>{r&&(r.current=[])},[r]);const h=X(y=>(i.add(y),()=>{i.delete(y)}));J(()=>{i.forEach(y=>y(g))},[i,g]);const x=l.useMemo(()=>({register:p,unregister:m,subscribeMapChange:h,elementsRef:n,labelsRef:r,nextIndexRef:c}),[p,m,h,n,r,c]);return T.jsx(vo.Provider,{value:x,children:t})}function kd(){return new Map}function Ad(){return new Set}function Ld(e,t){const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}const pc=l.forwardRef(function(t,n){const{anchor:r,positionMethod:o="absolute",className:s,render:c,side:i,align:u,sideOffset:a=0,alignOffset:d=0,collisionBoundary:f="clipping-ancestors",collisionPadding:p=5,arrowPadding:m=5,sticky:g=!1,disableAnchorTracking:h=!1,collisionAvoidance:x=pl,...y}=t,{store:v}=Lt(),w=Dd(),E=Zn(!0),b=v.useState("parent"),R=v.useState("floatingRootContext"),C=v.useState("floatingTreeRoot"),N=v.useState("mounted"),_=v.useState("open"),L=v.useState("modal"),j=v.useState("activeTriggerElement"),I=v.useState("lastOpenChangeReason"),S=v.useState("floatingNodeId"),D=v.useState("floatingParentNodeId");let M=r,P=a,k=d,O=u,F=x;b.type==="context-menu"&&(M=r??b.context?.anchor,O=O??"start",!i&&O!=="center"&&(k=t.alignOffset??2,P=t.sideOffset??-5));let V=i,U=O;b.type==="menu"?(V=V??"inline-end",U=U??"start",F=t.collisionAvoidance??ml):b.type==="menubar"&&(V=V??"bottom",U=U??"start");const ee=b.type==="context-menu",H=Ff({anchor:M,floatingRootContext:R,positionMethod:E?"fixed":o,mounted:N,side:V,sideOffset:P,align:U,alignOffset:k,arrowPadding:ee?0:m,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:S,keepMounted:w,disableAnchorTracking:h,collisionAvoidance:F,shiftCrossAxis:ee,externalTree:C}),ue=l.useMemo(()=>{const ne={};return _||(ne.pointerEvents="none"),{role:"presentation",hidden:!N,style:{...H.positionerStyles,...ne}}},[_,N,H.positionerStyles]);l.useEffect(()=>{function ne(A){A.open?(A.parentNodeId===S&&v.set("hoverEnabled",!1),A.nodeId!==S&&A.parentNodeId===v.select("floatingParentNodeId")&&v.setOpen(!1,ve(en))):A.parentNodeId===S&&A.reason!==en&&v.set("hoverEnabled",!0)}return C.events.on("menuopenchange",ne),()=>{C.events.off("menuopenchange",ne)}},[v,C.events,S]),l.useEffect(()=>{if(v.select("floatingParentNodeId")==null)return;function ne(A){if(A.open||A.nodeId!==v.select("floatingParentNodeId"))return;const Q=A.reason??en;v.setOpen(!1,ve(Q))}return C.events.on("menuopenchange",ne),()=>{C.events.off("menuopenchange",ne)}},[C.events,v]),l.useEffect(()=>{function ne(A){!_||A.nodeId!==v.select("floatingParentNodeId")||A.target&&j&&j!==A.target&&v.setOpen(!1,ve(en))}return C.events.on("itemhover",ne),()=>{C.events.off("itemhover",ne)}},[C.events,_,j,v]),l.useEffect(()=>{const ne={open:_,nodeId:S,parentNodeId:D,reason:v.select("lastOpenChangeReason")};C.events.emit("menuopenchange",ne)},[C.events,_,v,S,D]);const ge=l.useMemo(()=>({open:_,side:H.side,align:H.align,anchorHidden:H.anchorHidden,nested:b.type==="menu"}),[_,H.side,H.align,H.anchorHidden,b.type]),te=l.useMemo(()=>({side:H.side,align:H.align,arrowRef:H.arrowRef,arrowUncentered:H.arrowUncentered,arrowStyles:H.arrowStyles,nodeId:H.context.nodeId}),[H.side,H.align,H.arrowRef,H.arrowUncentered,H.arrowStyles,H.context.nodeId]),G=Te("div",t,{state:ge,stateAttributesMapping:mn,ref:[n,v.useStateSetter("positionerElement")],props:[ue,y]}),q=N&&b.type!=="menu"&&(b.type!=="menubar"&&L&&I!==Je||b.type==="menubar"&&b.context.modal);let de=null;return b.type==="menubar"?de=b.context.contentElement:b.type===void 0&&(de=j),T.jsxs(bo.Provider,{value:te,children:[q&&T.jsx(go,{ref:b.type==="context-menu"||b.type==="nested-context-menu"?b.context.internalBackdropRef:null,inert:Gr(!_),cutout:de}),T.jsx(Dl,{id:S,children:T.jsx(_d,{elementsRef:v.context.itemDomElements,labelsRef:v.context.itemLabels,children:G})})]})});process.env.NODE_ENV!=="production"&&(pc.displayName="MenuPositioner");const mc=l.createContext(null);process.env.NODE_ENV!=="production"&&(mc.displayName="MenubarContext");function gc(e){return l.useContext(mc)}const Fd={...wi,disabled:ce(e=>e.parent.type==="menubar"&&e.parent.context.disabled||e.disabled),modal:ce(e=>(e.parent.type===void 0||e.parent.type==="context-menu")&&(e.modal??!0)),allowMouseEnter:ce(e=>e.parent.type==="menu"?e.parent.store.select("allowMouseEnter"):e.allowMouseEnter),stickIfOpen:ce(e=>e.stickIfOpen),parent:ce(e=>e.parent),rootId:ce(e=>e.parent.type==="menu"?e.parent.store.select("rootId"):e.parent.type!==void 0?e.parent.context.rootId:e.rootId),activeIndex:ce(e=>e.activeIndex),isActive:ce((e,t)=>e.activeIndex===t),hoverEnabled:ce(e=>e.hoverEnabled),instantType:ce(e=>e.instantType),lastOpenChangeReason:ce(e=>e.openChangeReason),floatingTreeRoot:ce(e=>e.parent.type==="menu"?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:ce(e=>e.floatingNodeId),floatingParentNodeId:ce(e=>e.floatingParentNodeId),itemProps:ce(e=>e.itemProps),closeDelay:ce(e=>e.closeDelay),keyboardEventRelay:ce(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type==="menu")return e.parent.store.select("keyboardEventRelay")})};class wo extends co{constructor(n){super({...Vd(),...n},{positionerRef:l.createRef(),popupRef:l.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:l.createRef(),beforeContentFocusGuardRef:l.createRef(),onOpenChangeComplete:void 0,triggerElements:new qn},Fd);Ce(this,"unsubscribeParentListener",null);this.observe(ce(r=>r.allowMouseEnter),(r,o)=>{this.state.parent.type==="menu"&&r!==o&&this.state.parent.store.set("allowMouseEnter",r)}),this.unsubscribeParentListener=this.observe("parent",r=>{if(this.unsubscribeParentListener?.(),r.type==="menu"){this.unsubscribeParentListener=r.store.subscribe(()=>{this.notifyAll()}),this.context.allowMouseUpTriggerRef=r.store.context.allowMouseUpTriggerRef;return}r.type!==void 0&&(this.context.allowMouseUpTriggerRef=r.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(n,r){this.state.floatingRootContext.context.events.emit("setOpen",{open:n,eventDetails:r})}static useStore(n,r){return et(()=>n??new wo(r)).current}}function Vd(){return{...xi(),disabled:!1,modal:!0,allowMouseEnter:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new Xr,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:ke,keyboardEventRelay:void 0,closeDelay:0}}const hc=l.createContext(void 0);process.env.NODE_ENV!=="production"&&(hc.displayName="MenuSubmenuRootContext");function jd(){return l.useContext(hc)}function Bd(e){const{children:t,open:n,onOpenChange:r,onOpenChangeComplete:o,defaultOpen:s=!1,disabled:c=!1,modal:i,loopFocus:u=!0,orientation:a="vertical",actionsRef:d,closeParentOnEsc:f=!1,handle:p,triggerId:m,defaultTriggerId:g=null,highlightItemOnHover:h=!0}=e,x=Zn(!0),y=Lt(!0),v=gc(),w=jd(),E=l.useMemo(()=>w&&y?{type:"menu",store:y.store}:v?{type:"menubar",context:v}:x&&!y?{type:"context-menu",context:x}:{type:void 0},[x,y,v,w]),b=wo.useStore(p?.store,{parent:E}),R=b.useState("floatingTreeRoot"),C=ti(R),N=ht();J(()=>{x&&!y?b.update({parent:{type:"context-menu",context:x},floatingNodeId:C,floatingParentNodeId:N}):y&&b.update({floatingNodeId:C,floatingParentNodeId:N})},[x,y,C,N,b]),b.useControlledProp("open",n,s),b.useControlledProp("activeTriggerId",m,g),b.useContextCallback("onOpenChangeComplete",o);const _=b.useState("open"),L=b.useState("activeTriggerElement"),j=b.useState("positionerElement"),I=b.useState("hoverEnabled"),S=b.useState("modal"),D=b.useState("disabled"),M=b.useState("lastOpenChangeReason"),P=b.useState("parent"),k=b.useState("activeIndex"),O=b.useState("payload"),F=b.useState("floatingParentNodeId"),V=l.useRef(null),U=F!=null;let ee;process.env.NODE_ENV!=="production"&&P.type!==void 0&&i!==void 0&&console.warn("Base UI: The `modal` prop is not supported on nested menus. It will be ignored."),b.useSyncedValues({disabled:c,modal:P.type===void 0?i:void 0,rootId:gt()});const{openMethod:H,triggerProps:ue,reset:ge}=tc(_);vi(b);const{forceUnmount:te}=Ei(_,b,()=>{b.update({allowMouseEnter:!1,stickIfOpen:!0}),ge()}),G=l.useRef(P.type!=="context-menu"),q=tt();l.useEffect(()=>{if(_||(V.current=null),P.type==="context-menu"){if(!_){q.clear(),G.current=!1;return}q.start(500,()=>{G.current=!0})}},[q,_,P.type]),ec(_&&S&&M!==Je&&H!=="touch",j),J(()=>{!_&&!I&&b.set("hoverEnabled",!0)},[_,I,b]);const de=l.useRef(!0),ne=tt(),A=X((pe,Ee)=>{const De=Ee.reason;if(_===pe&&Ee.trigger===L||(Ee.preventUnmountOnClose=()=>{b.set("preventUnmountingOnClose",!0)},!pe&&Ee.trigger==null&&(Ee.trigger=L??void 0),r?.(pe,Ee),Ee.isCanceled))return;const Oe={open:pe,nativeEvent:Ee.event,reason:Ee.reason,nested:U};ee?.emit("openchange",Oe);const Ne=Ee.event;if(pe===!1&&Ne?.type==="click"&&Ne.pointerType==="touch"&&!de.current)return;if(!pe&&k!==null){const nt=b.context.itemDomElements.current[k];queueMicrotask(()=>{nt?.setAttribute("tabindex","-1")})}pe&&De===Bn?(de.current=!1,ne.start(300,()=>{de.current=!0})):(de.current=!0,ne.clear());const Ke=(De===wt||De===ni)&&Ne.detail===0&&Ne?.isTrusted,Be=!pe&&(De===to||De==null);function ot(){const nt={open:pe,openChangeReason:De};V.current=Ee.event??null;const Tt=Ee.trigger?.id??null;(Tt||pe)&&(nt.activeTriggerId=Tt,nt.activeTriggerElement=Ee.trigger??null),b.update(nt)}De===Je?ct.flushSync(ot):ot(),P.type==="menubar"&&(De===Bn||De===Kt||De===Je||De===Tn||De===en)?b.set("instantType","group"):Ke||Be?b.set("instantType",Ke?"click":"dismiss"):b.set("instantType",void 0)}),Q=l.useCallback(pe=>{const Ee=ve(pe);return Ee.preventUnmountOnClose=()=>{b.set("preventUnmountingOnClose",!0)},Ee},[b]),Z=l.useCallback(()=>{b.setOpen(!1,Q(ri))},[b,Q]);l.useImperativeHandle(d,()=>({unmount:te,close:Z}),[te,Z]);let Re;P.type==="context-menu"&&(Re=P.context),l.useImperativeHandle(Re?.positionerRef,()=>j,[j]),l.useImperativeHandle(Re?.actionsRef,()=>({setOpen:A}),[A]);const se=Ri({popupStore:b,onOpenChange:A});ee=se.context.events,l.useEffect(()=>{const pe=({open:Ee,eventDetails:De})=>A(Ee,De);return ee.on("setOpen",pe),()=>{ee?.off("setOpen",pe)}},[ee,A]);const z=gi(se,{enabled:!D,bubbles:f&&P.type==="menu",outsidePress(){return P.type!=="context-menu"||V.current?.type==="contextmenu"?!0:G.current},externalTree:U?R:void 0}),W=Ci(se,{role:"menu"}),ie=Ti(),re=l.useCallback(pe=>{b.select("activeIndex")!==pe&&b.set("activeIndex",pe)},[b]),he=Nf(se,{enabled:!D,listRef:b.context.itemDomElements,activeIndex:k,nested:P.type!==void 0,loopFocus:u,orientation:a,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:ie==="rtl",disabledIndices:jn,onNavigate:re,openOnArrowKeyDown:P.type!=="context-menu",externalTree:U?R:void 0,focusItemOnHover:h}),K=l.useCallback(pe=>{b.context.typingRef.current=pe},[b]),ae=If(se,{listRef:b.context.itemLabels,activeIndex:k,resetMs:ll,onMatch:pe=>{_&&pe!==k&&b.set("activeIndex",pe)},onTypingChange:K}),{getReferenceProps:Y,getFloatingProps:$,getItemProps:B,getTriggerProps:oe}=lo([z,W,he,ae]),le=l.useMemo(()=>{const pe=cn(Y(),{onMouseEnter(){b.set("hoverEnabled",!0)},onMouseMove(){b.set("allowMouseEnter",!0)}},ue);return delete pe.role,pe},[Y,b,ue]),fe=l.useMemo(()=>{const pe=oe();if(!pe)return pe;const Ee=cn(pe,ue);return delete Ee.role,delete Ee["aria-controls"],Ee},[oe,ue]),xe=dn(),Se=l.useMemo(()=>$({onMouseEnter(){P.type==="menu"&&xe.request(()=>b.set("hoverEnabled",!1))},onMouseMove(){b.set("allowMouseEnter",!0)},onClick(){b.select("hoverEnabled")&&b.set("hoverEnabled",!1)},onKeyDown(pe){const Ee=b.select("keyboardEventRelay");Ee&&!pe.isPropagationStopped()&&Ee(pe)}}),[$,P.type,xe,b]),ze=l.useMemo(()=>B(),[B]);b.useSyncedValues({floatingRootContext:se,activeTriggerProps:le,inactiveTriggerProps:fe,popupProps:Se,itemProps:ze});const We=l.useMemo(()=>({store:b,parent:E}),[b,E]),Me=T.jsx(yo.Provider,{value:We,children:typeof t=="function"?t({payload:O}):t});return P.type===void 0||P.type==="context-menu"?T.jsx(_l,{externalTree:R,children:Me}):Me}function $d(e){const t=e.getBoundingClientRect();if(process.env.NODE_ENV==="test")return t;const n=window.getComputedStyle(e,"::before"),r=window.getComputedStyle(e,"::after");if(!(n.content!=="none"||r.content!=="none"))return t;const s=parseFloat(n.width)||0,c=parseFloat(n.height)||0,i=parseFloat(r.width)||0,u=parseFloat(r.height)||0,a=Math.max(t.width,s,i),d=Math.max(t.height,c,u),f=a-t.width,p=d-t.height;return{left:t.left-f/2,right:t.right+f/2,top:t.top-p/2,bottom:t.bottom+p/2}}function Hd(e={}){const{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=qr(),{ref:o,index:s}=ic(e),c=n===s,i=l.useRef(null),u=Pt(o,i);return{compositeProps:l.useMemo(()=>({tabIndex:c?0:-1,onFocus(){r(s)},onMouseMove(){const d=i.current;if(!t||!d)return;const f=d.hasAttribute("disabled")||d.ariaDisabled==="true";!c&&!f&&d.focus()}}),[c,r,s,t]),compositeRef:u,index:s}}function Ud(e){const{render:t,className:n,state:r=ke,props:o=jn,refs:s=jn,metadata:c,stateAttributesMapping:i,tag:u="div",...a}=e,{compositeProps:d,compositeRef:f}=Hd({metadata:c});return Te(u,e,{state:r,ref:[...s,f],props:[d,...o,a],stateAttributesMapping:i})}function bc(e){if(Pe(e)&&e.hasAttribute("data-rootownerid"))return e.getAttribute("data-rootownerid")??void 0;if(!at(e))return bc(ft(e))}function Wd(e){const{enabled:t=!0,mouseDownAction:n,open:r}=e,o=l.useRef(!1);return l.useMemo(()=>t?{onMouseDown:s=>{(n==="open"&&!r||n==="close"&&r)&&(o.current=!0,Ye(s.currentTarget).addEventListener("click",()=>{o.current=!1},{once:!0}))},onClick:s=>{o.current&&(o.current=!1,s.preventBaseUIHandler())}}:ke,[t,n,r])}const Cn=2,yc=l.forwardRef(function(t,n){const{render:r,className:o,disabled:s=!1,nativeButton:c=!0,id:i,openOnHover:u,delay:a=100,closeDelay:d=0,handle:f,payload:p,...m}=t,g=Lt(!0),h=f?.store??g?.store;if(!h)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.":Fe(85));const x=At(i),y=h.useState("isTriggerActive",x),v=h.useState("floatingRootContext"),w=h.useState("isOpenedByTrigger",x),E=l.useRef(null),b=zd(),R=qr(!0),C=Ct(),N=l.useMemo(()=>C??new Xr,[C]),_=ti(N),L=ht(),{registerTrigger:j,isMountedByThisTrigger:I}=pf(x,E,h,{payload:p,closeDelay:d,parent:b,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:L,keyboardEventRelay:R?.relayKeyboardEvent}),S=h.useState("disabled"),D=s||S||b.type==="menubar"&&b.context.disabled,{getButtonProps:M,buttonRef:P}=Xt({disabled:D,native:c});l.useEffect(()=>{!w&&b.type===void 0&&(h.context.allowMouseUpTriggerRef.current=!1)},[h,w,b.type]);const k=l.useRef(null),O=tt(),F=X(W=>{if(!k.current)return;O.clear(),h.context.allowMouseUpTriggerRef.current=!1;const ie=W.target;if(me(k.current,ie)||me(h.select("positionerElement"),ie)||ie===k.current||ie!=null&&bc(ie)===h.select("rootId"))return;const re=$d(k.current);W.clientX>=re.left-Cn&&W.clientX<=re.right+Cn&&W.clientY>=re.top-Cn&&W.clientY<=re.bottom+Cn||N.events.emit("close",{domEvent:W,reason:Al})});l.useEffect(()=>{w&&h.select("lastOpenChangeReason")===Je&&Ye(k.current).addEventListener("mouseup",F,{once:!0})},[w,F,h]);const V=b.type==="menubar"&&b.context.hasSubmenuOpen,ee=Sf(v,{enabled:(u??V??!1)&&!D&&b.type!=="context-menu"&&(b.type!=="menubar"||V&&!I),handleClose:Df({blockPointerEvents:b.type!=="menubar"}),mouseOnly:!0,move:!1,restMs:b.type===void 0?a:void 0,delay:{close:d},triggerElementRef:E,externalTree:N,isActiveTrigger:y}),H=Kd(w,h.select("lastOpenChangeReason")),ue=Kl(v,{enabled:!D&&b.type!=="context-menu",event:w&&b.type==="menubar"?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:b.type===void 0?H:!1}),ge=bf(v,{enabled:!D&&(b.type!=="menubar"&&w||V)}),te=Wd({open:w,enabled:b.type==="menubar",mouseDownAction:"open"}),G=lo([ue,ge]),q=b.type==="menubar",de=l.useMemo(()=>({disabled:D,open:w}),[D,w]),ne=h.useState("triggerProps",I),A=[k,n,P,j,E],Q=[G.getReferenceProps(),ee??ke,ne,{"aria-haspopup":"menu",id:x,onMouseDown:W=>{if(h.select("open"))return;O.start(200,()=>{h.context.allowMouseUpTriggerRef.current=!0}),Ye(W.currentTarget).addEventListener("mouseup",F,{once:!0})}},q?{role:"menuitem"}:{},te,m,M],Z=l.useRef(null),Re=X(W=>{ct.flushSync(()=>{h.setOpen(!1,ve(Kt,W.nativeEvent,W.currentTarget))}),Ya(Z.current)?.focus()}),se=X(W=>{const ie=h.select("positionerElement");if(ie&&Vt(W,ie))h.context.beforeContentFocusGuardRef.current?.focus();else{ct.flushSync(()=>{h.setOpen(!1,ve(Kt,W.nativeEvent,W.currentTarget))});let re=Ga(E.current);for(;re!==null&&me(ie,re)||re?.hasAttribute("aria-hidden");){const he=re;if(re=Ur(re),re===he)break}re?.focus()}}),z=Te("button",t,{enabled:!q,stateAttributesMapping:fs,state:de,ref:A,props:Q});return q?T.jsx(Ud,{tag:"button",render:r,className:o,state:de,refs:A,props:Q,stateAttributesMapping:fs}):w?T.jsxs(l.Fragment,{children:[T.jsx(ut,{ref:Z,onFocus:Re},`${x}-pre-focus-guard`),T.jsx(l.Fragment,{children:z},x),T.jsx(ut,{ref:h.context.triggerFocusTargetRef,onFocus:se},`${x}-post-focus-guard`)]}):T.jsx(l.Fragment,{children:z},x)});process.env.NODE_ENV!=="production"&&(yc.displayName="MenuTrigger");function Kd(e,t){const n=tt(),[r,o]=l.useState(!1);return J(()=>{e&&t==="trigger-hover"?(o(!0),n.start(ul,()=>{o(!1)})):e||(n.clear(),o(!1))},[e,t,n]),r}function zd(){const e=Zn(!0),t=Lt(!0),n=gc();return l.useMemo(()=>n?{type:"menubar",context:n}:e&&!t?{type:"context-menu",context:e}:{type:void 0},[e,t,n])}const vc=l.forwardRef(function(t,n){const{className:r,render:o,orientation:s="horizontal",...c}=t,i=l.useMemo(()=>({orientation:s}),[s]);return Te("div",t,{state:i,ref:n,props:[{role:"separator","aria-orientation":s},c]})});process.env.NODE_ENV!=="production"&&(vc.displayName="Separator");const Ec=be.forwardRef(({open:e,defaultOpen:t=!1,onOpenChange:n,disabled:r=!1,className:o,style:s,children:c,...i},u)=>T.jsx("div",{ref:u,className:ye("memori-dropdown",o),style:s,children:T.jsx(Bd,{open:e,defaultOpen:t,onOpenChange:n,disabled:r,...i,children:c})}));Ec.displayName="Dropdown";const xc=be.forwardRef(({children:e,showChevron:t=!0,className:n,style:r,disabled:o,"aria-label":s,...c},i)=>T.jsxs(yc,{ref:i,disabled:o,className:ye("memori-dropdown__trigger",n),style:r,"aria-label":s,...c,children:[e,t&&T.jsx("span",{className:"memori-dropdown__trigger-icon","aria-hidden":!0,children:T.jsx(Ue.ChevronDown,{size:16})})]}));xc.displayName="DropdownTrigger";function wc({children:e,sideOffset:t=8,placement:n="bottom",align:r="start",container:o,className:s,style:c}){return T.jsx(dc,{container:o??document.body,children:T.jsx(pc,{sideOffset:t,side:n,align:r,className:"memori-dropdown__positioner",children:T.jsx(fc,{className:ye("memori-dropdown__popup",s),style:c,role:"menu",children:e})})})}wc.displayName="DropdownMenu";const Rc=be.forwardRef(({children:e,disabled:t=!1,closeOnClick:n=!0,label:r,className:o,style:s,onClick:c,...i},u)=>T.jsx(lc,{ref:u,disabled:t,closeOnClick:n,label:r,className:ye("memori-dropdown__item",o),style:s,onClick:c,role:"menuitem",...i,children:e}));Rc.displayName="DropdownItem";const Sc=be.forwardRef(({className:e,style:t,...n},r)=>T.jsx(vc,{ref:r,className:ye("memori-dropdown__separator",e),style:t,role:"separator",...n}));Sc.displayName="DropdownSeparator";const Cc=be.forwardRef(({children:e,className:t,style:n,...r},o)=>T.jsx(cc,{ref:o,className:ye("memori-dropdown__group",t),style:n,role:"group",...r,children:e}));Cc.displayName="DropdownGroup";const Oc=be.forwardRef(({children:e,className:t,style:n,...r},o)=>T.jsx(ac,{ref:o,className:ye("memori-dropdown__group-label",t),style:n,...r,children:e}));Oc.displayName="DropdownGroupLabel";const Gd=Object.assign(Ec,{Trigger:xc,Menu:wc,Item:Rc,Separator:Sc,Group:Cc,GroupLabel:Oc}),Tc=l.forwardRef(({open:e,onOpenChange:t,onClose:n,anchor:r="right",size:o="sm",children:s,title:c,description:i,footer:u,loading:a,className:d,style:f,showCloseButton:p=!0,closable:m=!0,...g},h)=>{const x=(v,w)=>{t?.(v,w),v||n?.(w)},y=m!==void 0?m:p;return T.jsx(Ve.Dialog.Root,{open:e,onOpenChange:x,children:T.jsxs(Ve.Dialog.Portal,{children:[T.jsx(Ve.Dialog.Backdrop,{className:"memori-drawer__backdrop"}),T.jsxs(Ve.Dialog.Popup,{ref:h,className:ye("memori-drawer",`memori-drawer--${r}`,`memori-drawer--size-${o}`,d),style:f,...g,children:[(c||i||y)&&T.jsxs("div",{className:"memori-drawer__header",children:[T.jsxs("div",{children:[c&&T.jsx("div",{className:"memori-drawer__title",children:c}),i&&T.jsx("div",{className:"memori-drawer__description",children:i})]}),y&&T.jsx(Ve.Dialog.Close,{className:"memori-drawer__close","aria-label":"Close",children:T.jsx(Ue.X,{size:20})})]}),T.jsx("div",{className:"memori-drawer__body",children:a?T.jsx("div",{className:"memori-drawer__loading",children:T.jsx(Ue.Loader2,{className:"memori-drawer__spinner","aria-label":"Loading"})}):s}),u&&T.jsx("div",{className:"memori-drawer__footer",children:u})]})]})})});Tc.displayName="Drawer";let bs=(function(e){return e.disabled="data-disabled",e.valid="data-valid",e.invalid="data-invalid",e.touched="data-touched",e.dirty="data-dirty",e.filled="data-filled",e.focused="data-focused",e})({});const Yd={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},qd={valid(e){return e===null?null:e?{[bs.valid]:""}:{[bs.invalid]:""}}},Nc=l.createContext({invalid:void 0,name:void 0,validityData:{state:Yd,errors:[],error:"",value:"",initialValue:null},setValidityData:Xe,disabled:void 0,touched:!1,setTouched:Xe,dirty:!1,setDirty:Xe,filled:!1,setFilled:Xe,focused:!1,setFocused:Xe,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:{disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},markedDirtyRef:{current:!1},validation:{getValidationProps:(e=ke)=>e,getInputValidationProps:(e=ke)=>e,inputRef:{current:null},commit:async()=>{}}});process.env.NODE_ENV!=="production"&&(Nc.displayName="FieldRootContext");function kr(e=!0){const t=l.useContext(Nc);if(t.setValidityData===Xe&&!e)throw new Error(process.env.NODE_ENV!=="production"?"Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.":Fe(28));return t}const Mc=l.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:Xe,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});process.env.NODE_ENV!=="production"&&(Mc.displayName="FormContext");function Xd(){return l.useContext(Mc)}const Ic=l.createContext({controlId:void 0,setControlId:Xe,labelId:void 0,setLabelId:Xe,messageIds:[],setMessageIds:Xe,getDescriptionProps:e=>e});process.env.NODE_ENV!=="production"&&(Ic.displayName="LabelableContext");function Pc(){return l.useContext(Ic)}function Jd(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}function Zd(e={}){const{id:t,implicit:n=!1,controlRef:r}=e,{controlId:o,setControlId:s}=Pc(),c=At(t);return J(()=>{if(!(!n&&!t||s===Xe)){if(n){const i=r?.current;we(i)&&i.closest("label")!=null?s(t??null):s(o??c)}else t&&s(t);return()=>{t&&s(void 0)}}},[t,r,o,s,n,c]),o??c}function Qd(e){const{enabled:t=!0,value:n,id:r,name:o,controlRef:s,commit:c}=e,{formRef:i}=Xd(),{invalid:u,markedDirtyRef:a,validityData:d,setValidityData:f}=kr(),p=X(e.getValue);J(()=>{if(!t)return;let m=n;m===void 0&&(m=p()),d.initialValue===null&&m!==null&&f(g=>({...g,initialValue:m}))},[t,f,n,d.initialValue,p]),J(()=>{!t||!r||i.current.fields.set(r,{getValue:p,name:o,controlRef:s,validityData:Jd(d,u),validate(){let m=n;m===void 0&&(m=p()),a.current=!0,ct.flushSync(()=>c(m))}})},[c,s,t,i,p,r,u,a,o,d,n]),J(()=>{const m=i.current.fields;return()=>{r&&m.delete(r)}},[i,r])}const Dc=l.forwardRef(function(t,n){const{render:r,className:o,id:s,name:c,value:i,disabled:u=!1,onValueChange:a,defaultValue:d,...f}=t,{state:p,name:m,disabled:g}=kr(),h=g||u,x=m??c,y=l.useMemo(()=>({...p,disabled:h}),[p,h]),{setTouched:v,setDirty:w,validityData:E,setFocused:b,setFilled:R,validationMode:C,validation:N}=kr(),{labelId:_}=Pc(),L=Zd({id:s});J(()=>{const P=i!=null;N.inputRef.current?.value||P&&i!==""?R(!0):P&&i===""&&R(!1)},[N.inputRef,R,i]);const[j,I]=Pi({controlled:i,default:d,name:"FieldControl",state:"value"}),S=i!==void 0,D=X((P,k)=>{a?.(P,k),!k.isCanceled&&I(P)});return Qd({id:L,name:x,commit:N.commit,value:j,getValue:()=>N.inputRef.current?.value,controlRef:N.inputRef}),Te("input",t,{ref:n,state:y,props:[{id:L,disabled:h,name:x,ref:N.inputRef,"aria-labelledby":_,...S?{value:j}:{defaultValue:d},onChange(P){const k=P.currentTarget.value;D(k,ve(Qr,P.nativeEvent)),w(k!==E.initialValue),R(k!=="")},onFocus(){b(!0)},onBlur(P){v(!0),b(!1),C==="onBlur"&&N.commit(P.currentTarget.value)},onKeyDown(P){P.currentTarget.tagName==="INPUT"&&P.key==="Enter"&&(v(!0),N.commit(P.currentTarget.value))}},N.getInputValidationProps(),f],stateAttributesMapping:qd})});process.env.NODE_ENV!=="production"&&(Dc.displayName="FieldControl");const _c=l.forwardRef(function(t,n){return T.jsx(Dc,{ref:n,...t})});process.env.NODE_ENV!=="production"&&(_c.displayName="Input");const kc=be.forwardRef(({variant:e="default",size:t="md",fullWidth:n=!1,className:r,disabled:o,...s},c)=>{const i=o||e==="disabled",u=e==="error"?"memori-input--error":e==="disabled"?"memori-input--disabled":"memori-input--default",a=t==="sm"?"memori-input--sm":t==="lg"?"memori-input--lg":"memori-input--md",d=n?"memori-input--full-width":void 0,f=i?"memori-input--disabled":void 0;return T.jsx(_c,{ref:c,disabled:i,className:ye("memori-input",u,a,d,f,r),...s})});kc.displayName="Input";const Ac=be.forwardRef(({options:e,value:t,defaultValue:n,onChange:r,placeholder:o="Select an option",displayValue:s,label:c,disabled:i,required:u,error:a,name:d,className:f,style:p},m)=>T.jsx("div",{className:ye("memori-select",f),style:p,children:T.jsxs(Ve.Select.Root,{value:t,defaultValue:n,onValueChange:g=>r?.(g),disabled:i,required:u,name:d,children:[c&&T.jsx("label",{className:"memori-select__label",children:c}),T.jsxs(Ve.Select.Trigger,{ref:m,className:ye("memori-select__trigger",a&&"memori-select__trigger--error"),children:[T.jsx(Ve.Select.Value,{className:"memori-select__value","data-placeholder":o,children:s}),T.jsx(Ve.Select.Icon,{className:"memori-select__icon",children:T.jsx(Ue.ChevronDown,{size:16})})]}),T.jsx(Ve.Select.Portal,{className:"memori-select__portal",children:T.jsx(Ve.Select.Positioner,{className:"memori-select__positioner",sideOffset:8,side:"bottom",align:"start",children:T.jsx(Ve.Select.Popup,{className:"memori-select__popup",children:e.map(g=>T.jsxs(Ve.Select.Item,{value:g.value,disabled:g.disabled,className:"memori-select__item",children:[T.jsx(Ve.Select.ItemText,{children:g.label}),T.jsx(Ve.Select.ItemIndicator,{children:T.jsx(Ue.Check,{className:"memori-select__check-icon"})})]},g.value))})})})]})}));Ac.displayName="SelectBox";const ep=({min:e=0,max:t=100,step:n=1,value:r,defaultValue:o=50,label:s,onChange:c,disabled:i=!1})=>{const[u,a]=be.useState(o),d=r!==void 0,f=d?r:u,p=R=>{d||a(R),c?.(R)},[m,g]=be.useState(!1),h=be.useRef(null),x=(f-e)/(t-e)*100,y=[];for(let R=e;R<=t;R+=(t-e)/4)y.push(Math.round(R));const v=R=>{if(!h.current)return f;const C=h.current.getBoundingClientRect(),N=R-C.left,_=C.width,L=Math.max(0,Math.min(100,N/_*100)),j=Math.round(L/100*(t-e)+e),I=Math.round(j/n)*n;return Math.min(Math.max(I,e),t)},w=R=>{if(i)return;g(!0);const C=v(R);p(C)},E=R=>{if(!m||i)return;const C=v(R);p(C)},b=()=>{g(!1)};return be.useEffect(()=>{const R=_=>{m&&(_.preventDefault(),E(_.touches[0]?.clientX??0))},C=_=>{E(_.clientX)},N=()=>{b()};return m&&(window.addEventListener("touchmove",R,{passive:!1}),window.addEventListener("mousemove",C),window.addEventListener("touchend",N),window.addEventListener("mouseup",N)),()=>{window.removeEventListener("touchmove",R),window.removeEventListener("mousemove",C),window.removeEventListener("touchend",N),window.removeEventListener("mouseup",N)}},[m]),be.useEffect(()=>{d||a(o)},[o,d]),T.jsxs("div",{className:ye("memori-slider",{"memori-slider--disabled":i}),style:{"--percentage":`${x}%`},children:[T.jsxs("div",{className:"memori-slider__header",children:[s&&T.jsx("div",{className:"memori-slider__label",children:s}),T.jsx("div",{className:"memori-slider__value",children:f})]}),T.jsxs("div",{ref:h,className:"memori-slider__track-container",onMouseDown:R=>w(R.clientX),onTouchStart:R=>w(R.touches[0]?.clientX??0),children:[T.jsx("div",{className:"memori-slider__track",children:T.jsx("div",{className:"memori-slider__track-fill"})}),T.jsx("div",{className:"memori-slider__marks",children:y.map(R=>T.jsxs("div",{className:"memori-slider__mark",children:[T.jsx("div",{className:"memori-slider__mark-line"}),T.jsx("span",{className:"memori-slider__mark-value",children:R})]},R))}),T.jsx("div",{className:"memori-slider__thumb",role:"slider","aria-valuemin":e,"aria-valuemax":t,"aria-valuenow":f,tabIndex:i?-1:0})]})]})},tp=({content:e,className:t,align:n="right",disabled:r=!1,visible:o=!1,children:s})=>T.jsxs("div",{className:ye("memori-tooltip",`memori-tooltip--align-${n}`,t,{"memori-tooltip--disabled":r,"memori-tooltip--visible":o}),children:[T.jsx("div",{className:"memori-tooltip--content",children:e}),T.jsx("div",{className:"memori-tooltip--trigger",children:s})]});function np(){const[e,t]=be.useState(()=>{if(typeof window<"u"){const o=localStorage.getItem("theme");if(o==="light"||o==="dark")return o;if(window.matchMedia("(prefers-color-scheme: dark)").matches)return"dark"}return"light"});return be.useEffect(()=>{const o=document.documentElement;o.removeAttribute("data-theme"),o.classList.remove("dark"),e==="dark"?(o.setAttribute("data-theme","dark"),o.classList.add("dark")):(o.removeAttribute("data-theme"),o.classList.remove("dark")),localStorage.setItem("theme",e)},[e]),{theme:e,setTheme:o=>{t(o)},toggleTheme:()=>{t(o=>o==="light"?"dark":"light")}}}exports.Alert=Mi;exports.AlertProvider=Wf;exports.AlertViewport=Uf;exports.Button=Gt;exports.Card=ji;exports.Checkbox=Bi;exports.Collapsible=Vi;exports.ConfirmDialog=xd;exports.Drawer=Tc;exports.Dropdown=Gd;exports.Expandable=Rd;exports.Input=kc;exports.Modal=ho;exports.SelectBox=Ac;exports.Slider=ep;exports.Spin=Jn;exports.Tooltip=tp;exports.createAlertOptions=zf;exports.useAlertManager=Kf;exports.useTheme=np;
|
|
57
57
|
//# sourceMappingURL=memori-ai-ui.cjs.js.map
|