@radui/ui 0.6.0 → 1.0.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/dist/components/Accordion.d.ts +1 -1
- package/dist/components/Accordion.js +1 -1
- package/dist/components/AlertDialog.d.ts +44 -1
- package/dist/components/AlertDialog.js +1 -1
- package/dist/components/AspectRatio.js +1 -1
- package/dist/components/Avatar.d.ts +4 -1
- package/dist/components/Avatar.js +1 -1
- package/dist/components/AvatarGroup.d.ts +9 -1
- package/dist/components/AvatarGroup.js +1 -1
- package/dist/components/AvatarPrimitiveFallback-C1siRii4.js +1 -0
- package/dist/components/Badge.d.ts +3 -3
- package/dist/components/Badge.js +1 -1
- package/dist/components/BlockQuote.js +1 -1
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Callout.d.ts +4 -1
- package/dist/components/Callout.js +1 -1
- package/dist/components/Card.d.ts +1 -1
- package/dist/components/Card.js +1 -1
- package/dist/components/Checkbox.d.ts +29 -3
- package/dist/components/Checkbox.js +8 -1
- package/dist/components/CheckboxCards.d.ts +31 -4
- package/dist/components/CheckboxCards.js +1 -1
- package/dist/components/CheckboxGroup.d.ts +29 -2
- package/dist/components/CheckboxGroup.js +1 -1
- package/dist/components/CheckboxGroupPrimitive-DfHQYkep.js +1 -0
- package/dist/components/Code.js +1 -1
- package/dist/components/Collapsible.d.ts +10 -1
- package/dist/components/Collapsible.js +1 -1
- package/dist/components/Combobox.d.ts +1 -1
- package/dist/components/Combobox.js +1 -1
- package/dist/components/ComboboxPrimitive-DQcJ8pzQ.js +1 -0
- package/dist/components/Command.d.ts +6 -1
- package/dist/components/Command.js +1 -1
- package/dist/components/ContextMenu.d.ts +19 -19
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/DataList.d.ts +10 -4
- package/dist/components/DataList.js +1 -1
- package/dist/components/Dialog.d.ts +6 -1
- package/dist/components/Dialog.js +1 -1
- package/dist/components/Disclosure.d.ts +15 -7
- package/dist/components/Disclosure.js +1 -1
- package/dist/components/Drawer.d.ts +1 -1
- package/dist/components/Drawer.js +1 -1
- package/dist/components/DropdownMenu.d.ts +19 -19
- package/dist/components/DropdownMenu.js +1 -1
- package/dist/components/Em.js +1 -1
- package/dist/components/Fieldset.d.ts +1 -1
- package/dist/components/Fieldset.js +1 -1
- package/dist/components/Heading.js +1 -1
- package/dist/components/HoverCard.d.ts +3 -1
- package/dist/components/HoverCard.js +1 -1
- package/dist/components/Kbd.js +1 -1
- package/dist/components/Link.js +1 -1
- package/dist/components/LiveRegion.js +1 -1
- package/dist/components/MenuPrimitive-D9VMz2TZ.js +1 -0
- package/dist/components/Menubar.d.ts +113 -23
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Minimap.d.ts +16 -12
- package/dist/components/Minimap.js +1 -1
- package/dist/components/NavigationMenu.d.ts +8 -3
- package/dist/components/NavigationMenu.js +1 -1
- package/dist/components/NumberField.d.ts +23 -2
- package/dist/components/NumberField.js +1 -1
- package/dist/components/Popover.d.ts +17 -2
- package/dist/components/Popover.js +1 -1
- package/dist/components/Progress.d.ts +5 -4
- package/dist/components/Progress.js +1 -1
- package/dist/components/Quote.js +1 -1
- package/dist/components/Radio.js +1 -1
- package/dist/components/RadioCards.d.ts +1 -1
- package/dist/components/RadioCards.js +1 -1
- package/dist/components/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup.js +1 -1
- package/dist/components/RadioGroupPrimitive-D1PP4y2M.js +1 -0
- package/dist/components/ScrollArea.d.ts +1 -9
- package/dist/components/ScrollArea.js +1 -1
- package/dist/components/Select.d.ts +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Separator.js +1 -1
- package/dist/components/Skeleton.d.ts +12 -6
- package/dist/components/Skeleton.js +1 -1
- package/dist/components/Slider.d.ts +1 -1
- package/dist/components/Slider.js +1 -1
- package/dist/components/Spinner.js +1 -1
- package/dist/components/Splitter.d.ts +7 -1
- package/dist/components/Splitter.js +1 -1
- package/dist/components/Steps.d.ts +25 -10
- package/dist/components/Steps.js +1 -1
- package/dist/components/Strong.js +1 -1
- package/dist/components/Switch.d.ts +23 -1
- package/dist/components/Switch.js +1 -1
- package/dist/components/TabNav.d.ts +34 -9
- package/dist/components/TabNav.js +1 -1
- package/dist/components/Table.d.ts +2 -1
- package/dist/components/Table.js +1 -1
- package/dist/components/Tabs.d.ts +1 -1
- package/dist/components/Tabs.js +1 -1
- package/dist/components/Text.d.ts +2 -2
- package/dist/components/Text.js +1 -1
- package/dist/components/TextArea.d.ts +4 -4
- package/dist/components/TextArea.js +1 -1
- package/dist/components/TextField.d.ts +1 -1
- package/dist/components/TextField.js +1 -1
- package/dist/components/Toast.d.ts +7 -4
- package/dist/components/Toast.js +1 -1
- package/dist/components/Toggle.d.ts +1 -1
- package/dist/components/Toggle.js +1 -1
- package/dist/components/ToggleGroup.d.ts +1 -1
- package/dist/components/ToggleGroup.js +1 -1
- package/dist/components/Toolbar.d.ts +1 -1
- package/dist/components/Toolbar.js +1 -1
- package/dist/components/Tooltip.d.ts +12 -1
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/Tree.d.ts +1 -1
- package/dist/components/Tree.js +1 -1
- package/dist/components/VisuallyHidden.js +1 -1
- package/dist/components/{check-DujVUWP-.js → check-ctUdF4Q3.js} +4 -4
- package/dist/components/{floating-ui.react-Byzse64h.js → floating-ui.react-2kiGB4sW.js} +1 -1
- package/dist/components/index-C7dBo_Ry.js +1 -0
- package/dist/components/index-CBcSLg6O.js +1 -0
- package/dist/components/index-CbNq68zs.js +1 -0
- package/dist/components/index-D8I-rMwz.js +1 -0
- package/dist/components/index-DMX7gpdp.js +1 -0
- package/dist/components/index-FITGoHty.js +1 -0
- package/dist/components/{index-C09ZQH_q.js → index-nYRBURkR.js} +1 -1
- package/dist/components/index-xlB--dex.js +1 -0
- package/dist/components/useComponentClass-C0isGl1z.js +1 -0
- package/dist/themes/baremetal.css +1 -1
- package/dist/themes/default.css +1 -1
- package/package.json +1 -1
- package/dist/components/AvatarPrimitiveFallback-B1u295x6.js +0 -1
- package/dist/components/CheckboxGroupPrimitive-BWGRST9p.js +0 -1
- package/dist/components/ComboboxPrimitive-C2sksm48.js +0 -1
- package/dist/components/MenuPrimitive-COEgTo6S.js +0 -1
- package/dist/components/RadioGroupPrimitive-BWUU-0Qh.js +0 -1
- package/dist/components/clsx-BaVHROc5.js +0 -1
- package/dist/components/index-CD_nZA9X.js +0 -1
- package/dist/components/index-CfC8-kd8.js +0 -1
- package/dist/components/index-Db-tduwt.js +0 -1
- package/dist/components/index-UODM4mVT.js +0 -1
- package/dist/components/index-YhJvxumL.js +0 -1
- package/dist/components/index-m8Mhi26u.js +0 -1
- package/dist/components/useComponentClass-QwNivz0h.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{createContext as e,useContext as t,forwardRef as n,useMemo as r,useState as i,useRef as o,useEffect as s,useCallback as a}from"react";import{jsx as l}from"react/jsx-runtime";import{c}from"./clsx-BaVHROc5.js";import{u}from"./index-UODM4mVT.js";import{u as d}from"./useComponentClass-QwNivz0h.js";import{D as p,a as m}from"./index-CD_nZA9X.js";import{F as f}from"./index-Db-tduwt.js";import{P as h}from"./index-XF8itt-H.js";import"./documentOverlayOpen-coyGmcyL.js";import"./ThemeContext-Sm-iNANd.js";import"./index-wRElCyvx.js";import"./index-CfC8-kd8.js";import"./floating-ui.react-Byzse64h.js";import"react-dom";import"./mergeProps-0RucjqeH.js";const g=e({rootClass:"",side:"right",dismissDirection:"right",isOpen:!1,onOpen:()=>{},snapPoints:[],activeSnapPoint:null,setActiveSnapPoint:()=>{},snapToSequentialPoints:!1,modal:!0,disablePointerDismissal:!1,shouldKeepMounted:!1,requestClose:()=>{},markIntentionalClose:()=>{},setTitleId:()=>{},setDescriptionId:()=>{},popupHeight:0,setPopupHeight:()=>{},registerContentElement:()=>{},childOpenCount:0,nestedSwiping:!1,setNestedSwiping:()=>{},depth:0}),v={movementX:"--rad-ui-drawer-swipe-movement-x",movementY:"--rad-ui-drawer-swipe-movement-y",snapPointOffset:"--rad-ui-drawer-snap-point-offset",progress:"--rad-ui-drawer-swipe-progress",strength:"--rad-ui-drawer-swipe-strength",height:"--rad-ui-drawer-height",nestedDrawers:"--rad-ui-nested-drawers"},y="[data-swipe-ignore],[data-rad-ui-swipe-ignore]";function w(e,t,n){return Math.min(Math.max(e,t),n)}function P(e,t,n){switch(e){case"up":return-n;case"down":return n;case"left":return-t;default:return t}}function C(e,t){return"left"===t||"right"===t?e.offsetWidth:e.offsetHeight}function x(e,t,n){if(!Number.isFinite(t)||t<=0)return null;if("number"==typeof e)return Number.isFinite(e)?e<=1?w(e,0,1)*t:e:null;const r=e.trim();if(r.endsWith("px")){const e=Number.parseFloat(r);return Number.isFinite(e)?e:null}if(r.endsWith("rem")){const e=Number.parseFloat(r);return Number.isFinite(e)?e*n:null}return null}function b(e,t){let n=-1,r=1/0;for(let i=0;i<e.length;i+=1){const o=Math.abs(e[i].offset-t);o<r&&(r=o,n=i)}return n}function S({snapPoints:e,currentOffset:t,popupHeight:n,dragDelta:r,directionalVelocity:i,snapToSequentialPoints:o}){if(!e.length||n<=0)return{type:"stay"};const s=Math.sign(r),a=w(t+r,0,n),l=Math.abs(i)>=.5?300*w(i,-4,4):0,c=o?a:w(a+l,0,n),u=[...e].sort(((e,t)=>e.offset-t.offset));let d=function(e,t){const n=b(e,t);return-1===n?null:e[n]}(u,c),p=c;if(o){const e=b(u,t);if(0!==s&&Math.sign(i)===s&&Math.abs(i)>=.5){const t=w(e+s,0,u.length-1);if(t!==e){const e=u[t];(s>0?c<e.offset:c>e.offset)&&(d=e,p=e.offset)}else if(s>0)return{type:"close",snapPoint:d}}}else if(i>=.5&&r>0)return{type:"close",snapPoint:d};return Math.abs(p-n)<(d?Math.abs(p-d.offset):1/0)?{type:"close",snapPoint:d}:{type:"settle",snapPoint:d}}const D=e({depth:0,onChildOpenChange:()=>{},onChildSwipingChange:()=>{}});function O(e,t){const n="open"===t?500:400;if(!e||"undefined"==typeof window||!window.getComputedStyle)return n;const r="open"===t?"--rad-ui-drawer-open-duration":"--rad-ui-drawer-close-duration";return function(e){if(!e)return null;const t=e.trim();if(!t||"auto"===t||"normal"===t)return null;const n=Number.parseFloat(t);return Number.isFinite(n)?t.endsWith("ms")?n:t.endsWith("s")?1e3*n:n:null}(window.getComputedStyle(e).getPropertyValue(r))??n}function N(e,t,n){return new Promise((r=>{if(n?.aborted||!e)return void r();let i,o,s,a=!1;const l=()=>{a||(a=!0,void 0!==i&&clearTimeout(i),void 0!==o&&cancelAnimationFrame(o),n&&s&&n.removeEventListener("abort",s),r())},c=e;if("function"!=typeof c.getAnimations)i=setTimeout(l,t);else{let e=[];try{e=c.getAnimations()}catch{e=[]}i=setTimeout(l,t),e.length?Promise.all(e.map((e=>e.finished.catch((()=>{}))))).then(l):o=requestAnimationFrame(l)}n&&(s=l,n.addEventListener("abort",s))}))}const T="Drawer",M=n((({children:e,customRootClass:n="",className:m="",defaultOpen:f=!1,open:h,onOpenChange:v,onOpenChangeComplete:y,snapPoints:w=[],defaultSnapPoint:P=null,snapPoint:C,onSnapPointChange:x,snapToSequentialPoints:b=!1,modal:S=!0,disablePointerDismissal:M=!1,swipeDirection:F="right",triggerId:E,defaultTriggerId:I,actionsRef:Y},A)=>{const H=d(n,T),X=r((()=>function(e){switch(e){case"up":return"top";case"down":return"bottom";default:return e}}(F)),[F]),q=r((()=>function(e){switch(e){case"top":return"up";case"bottom":return"down";default:return e}}(X)),[X]),$=t(D),k=void 0!==h,[L,j]=i(f),R=k?h:L;u(R);const z=o(R);z.current=R;const W=o(null),V=o(!1),K=o(M);s((()=>{K.current=M}),[M]);const[B,U]=i(!1),Z=a(((e="close-press")=>{V.current=!0,W.current=e}),[]),G=a(((e,t)=>{const n=W.current??(e?"trigger-press":"none");W.current=null;const r=V.current;if(V.current=!1,!e&&K.current&&!r)return;let i=!1,o=!1;const s={reason:n,cancel:()=>{i=!0},get isCanceled(){return i},preventUnmountOnClose:()=>{o=!0},event:t};v&&(v.length<=1?v(e):v(e,s)),i||(o&&U(!0),k||j(e))}),[k,v]);s((()=>{R&&U(!1)}),[R]);const J=void 0!==C,[Q,_]=i(P??(w.length>0?w[0]:null)),ee=J?C:Q,te=a((e=>{J||_(e),x?.(e)}),[J,x]),[ne,re]=i(0),ie=a((e=>{re((t=>t===e?t:e))}),[]),oe=a((e=>{Y&&"current"in Y&&(Y.current=e)}),[Y]);s((()=>{if(!Y)return;oe({close:()=>{Z("imperative-action"),G(!1)},unmount:()=>{U(!1),z.current&&!k&&(Z("imperative-action"),G(!1)),_(P??w[0]??null)}})}),[Y,P,G,k,Z,oe,w]);const se=o(null),ae=a((e=>{se.current=e}),[]),le=o(y);le.current=y,s((()=>{const e=new AbortController,t=R,n=requestAnimationFrame((()=>{const n=se.current;le.current&&N(n,O(n,t?"open":"close"),e.signal).then((()=>{e.signal.aborted||le.current?.(z.current)}))}));return()=>{e.abort(),cancelAnimationFrame(n)}}),[R]);const ce=o(!1);s((()=>{R&&!ce.current?(ce.current=!0,$.onChildOpenChange(!0)):!R&&ce.current&&(ce.current=!1,$.onChildOpenChange(!1))}),[R,$]),s((()=>()=>{ce.current&&($.onChildOpenChange(!1),ce.current=!1)}),[]);const[ue,de]=i(0),pe=a((e=>{de((t=>Math.max(0,t+(e?1:-1)))),$.onChildOpenChange(e)}),[$]),[me,fe]=i(!1),he=a((e=>{fe(e),$.onChildSwipingChange(e)}),[$]);s((()=>{ue||fe(!1)}),[ue]);const ge=he,ve=r((()=>({depth:$.depth+1,onChildOpenChange:pe,onChildSwipingChange:he})),[pe,he,$.depth]),ye=a(((e,t)=>{Z(e),G(!1,t)}),[G,Z]),[we,Pe]=i(void 0),[Ce,xe]=i(void 0),be=a((e=>{Pe((t=>t===e?t:e))}),[]),Se=a((e=>{xe((t=>t===e?t:e))}),[]),De=r((()=>({rootClass:H,side:X,dismissDirection:q,isOpen:R,onOpen:()=>G(!0),snapPoints:w,activeSnapPoint:ee,setActiveSnapPoint:te,snapToSequentialPoints:b,popupHeight:ne,setPopupHeight:ie,modal:S,disablePointerDismissal:M,registerContentElement:ae,shouldKeepMounted:B,requestClose:ye,markIntentionalClose:Z,childOpenCount:ue,nestedSwiping:me,setNestedSwiping:ge,titleId:we,descriptionId:Ce,setTitleId:be,setDescriptionId:Se,depth:$.depth})),[ee,ue,Ce,q,M,G,B,R,Z,S,$.depth,ne,ae,ye,H,te,Se,ge,ie,be,X,w,b,me,we]);return l(D.Provider,{value:ve,children:l(p.Root,{ref:A,open:R,onOpenChange:G,className:c(H,m),disablePointerDismissal:M,children:l(g.Provider,{value:De,children:e})})})}));M.displayName=T;const F=n((({children:e,asChild:n,className:r="",...i},o)=>{const{rootClass:s}=t(g);return l(p.Trigger,{ref:o,className:c(s&&`${s}-trigger`,r),asChild:n,...i,children:e})}));F.displayName="DrawerTrigger";const E=n((({children:e,...t},n)=>l(p.Portal,{...t,children:e})));E.displayName="DrawerPortal";const I=n((({className:e="",forceMount:n=!1,...r},a)=>{const{rootClass:u,modal:d,disablePointerDismissal:p,markIntentionalClose:h}=t(g),{isOpen:v,handleOverlayClick:y}=t(m),[w,P]=i(v),[C,x]=i(v?"open":"closed"),b=o(null);if(s((()=>(b.current&&clearTimeout(b.current),v?(P(!0),requestAnimationFrame((()=>{requestAnimationFrame((()=>x("open")))}))):(x("closed"),b.current=setTimeout((()=>{P(!1)}),400)),()=>{b.current&&clearTimeout(b.current)})),[v]),!w&&!n)return null;const S=p?void 0:()=>{h(),y()},D=!0===d;return l(f.Overlay,{lockScroll:v&&D,ref:a,onClick:S,"data-state":C,style:!1===d?{pointerEvents:"none",background:"transparent"}:void 0,className:c(u&&`${u}-overlay`,e),...r})}));I.displayName="DrawerOverlay";const Y=e({element:null,height:0,resolvedSnapPoints:[],activeSnapPointOffset:0,activeSnapPoint:null,setActiveSnapPoint:()=>{},expanded:!1,dismissDirection:"right",pointerProps:{onPointerDown:()=>{}},touchProps:{onTouchStart:()=>{},onTouchMove:()=>{},onTouchEnd:()=>{},onTouchCancel:()=>{}}});function A(){return"undefined"==typeof window?0:window.innerHeight||document.documentElement.clientHeight||0}function H(){if("undefined"==typeof window)return 16;const e=Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize);return Number.isFinite(e)&&e>0?e:16}function X(e,t,n,o){const a="up"===t||"down"===t,[l,c]=i(0),[u,d]=i(16);s((()=>{if(!a||!e.length)return;c(A()),d(H());const t=()=>{c(A()),d(H())};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)}),[e.length,a]);const p=r((()=>a&&e.length?function(e,t,n,r){if(!e.length||n<=0)return[];const i=Math.min(n,t||n),o=e.map((e=>{const o=x(e,t,r);if(null===o)return null;const s=w(o,0,i);return{value:e,height:s,offset:Math.max(0,n-s)}})).filter((e=>null!==e));if(o.length<2)return o;const s=[];for(let e=o.length-1;e>=0;e-=1){const t=o[e];s.some((e=>Math.abs(e.height-t.height)<=1))||s.push(t)}return s.reverse()}(e,l||n,n,u):[]),[n,u,e,a,l]);return r((()=>{if(!p.length||null===o)return{resolved:p,active:null,activeOffset:0,expanded:!1};const e=p.find((e=>Object.is(e.value,o)));if(e)return{resolved:p,active:e,activeOffset:e.offset,expanded:1===o};const t=x(o,l||n,u);if(null===t)return{resolved:p,active:null,activeOffset:0,expanded:!1};const r=w(t,0,n||l||t),i=Math.max(0,(n||r)-r);return{resolved:p,active:null,activeOffset:i,expanded:1===o}}),[o,n,p,u,l])}function q(e){return e.timeStamp>0?e.timeStamp:performance.now()}function $(e,t){let n=e;for(;n&&n!==t;){const e=window.getComputedStyle(n),t=("auto"===e.overflowY||"scroll"===e.overflowY)&&n.scrollHeight>n.clientHeight,r=("auto"===e.overflowX||"scroll"===e.overflowX)&&n.scrollWidth>n.clientWidth;if(t||r)return{element:n,axis:t?"y":"x"};n=n.parentElement}return null}function k(e,t,n){return"y"===t?"down"===n?e.scrollTop<=0:e.scrollTop>=e.scrollHeight-e.clientHeight:"right"===n?e.scrollLeft<=0:e.scrollLeft>=e.scrollWidth-e.clientWidth}let L=!1;function j(e){const{elementRef:t,dismissDirection:n,axis:r,enabled:l,disabledByNestedDrawer:c=!1,snapPoints:u,popupHeight:d=0,activeSnapPointOffset:p=0,snapToSequentialPoints:m=!1,onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x}=e,[b,D]=i(!1),[O,N]=i(!1),T=o(null),M=o(0),F=o(null),E=o(null),I=o(null),Y=o(null),A=o({onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x});A.current={onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x};const H=l&&!c,X=Boolean(u?.length)&&!("left"===(j=n)||"right"===j);var j;s((()=>{if(!u||u.length<2)return void(Y.current=null);const e=u.map((e=>e.offset)).sort(((e,t)=>e-t)),t=e[1]-e[0];Y.current=t>0?{min:e[0],range:t}:null}),[u]);const R=a((e=>{D(e),A.current.onSwipingChange?.(e)}),[]),z=a((e=>{const n=t.current;n&&(X?n.style.setProperty(v.movementY,`${function(e,t){const n=e+t;return n>=0?t:-Math.sqrt(-n)-e}(p,e)}px`):"x"===r?n.style.setProperty(v.movementX,`${e}px`):n.style.setProperty(v.movementY,`${e}px`))}),[p,r,t,X]),W=a((e=>{const r=t.current;if(!r)return;const i=Y.current;let o;if(i){const t=w((p||i.min)+e,0,d||p+i.range);o=w((t-i.min)/i.range,0,1)}else{const t=C(r,n);o=t>0?w(1-Math.max(0,e)/t,0,1):1}r.style.setProperty(v.progress,String(o)),A.current.onProgress?.(o)}),[p,n,t,d]),V=a((()=>{const e=t.current;e&&(e.style.removeProperty(v.movementX),e.style.removeProperty(v.movementY),e.style.removeProperty(v.strength),e.style.setProperty(v.progress,"1"))}),[t]),K=a(((e,t,r)=>{const i=F.current;if(F.current={x:e,y:t,time:r},!i)return 0;const o=Math.max(r-i.time,16);return P(n,(e-i.x)/o,(t-i.y)/o)}),[n]),B=a((()=>{const e=t.current;if(M.current=0,R(!1),!e)return void N(!1);I.current&&clearTimeout(I.current),N(!0),V(),A.current.onProgress?.(1);const n=()=>{e.removeEventListener("transitionend",n),N(!1)};e.addEventListener("transitionend",n),I.current=setTimeout(n,400)}),[V,t,R]),U=a(((e,r)=>{const i=t.current;if(R(!1),!i)return;const o=function({element:e,direction:t,displacement:n,velocity:r,snapPointOffset:i=0}){const o=C(e,t);if(o<=0)return null;const s=Math.max(0,o-(i+n));if(s<=0)return null;if(r<=.2)return null;const a=w(r,.2,4);return.1+(w(s/a,80,360)-80)/280*.9}({element:i,direction:n,displacement:r,velocity:e,snapPointOffset:X?p:0});null!==o&&i.style.setProperty(v.strength,String(o))}),[p,n,t,R,X]),Z=a(((e,t)=>{T.current={start:e,startDisplacement:M.current,startTime:t,axis:null,dragging:!1},M.current=0,F.current={...e,time:t},R(!0)}),[R]),G=a(((e,t)=>{const r=P(n,e,t),i=(X?p:0)+r;let o;var s;i<0?(s=i,o=Math.sign(s)*Math.sqrt(Math.abs(s))):o=r<0?.2*- -r:r,M.current=o,z(o),W(o)}),[p,n,X,z,W]),J=a(((e,r)=>{const i=T.current;if(T.current=null,E.current=null,!i)return void R(!1);if(!i.dragging)return M.current=0,void R(!1);const o=M.current;M.current=0;const s=e.x-i.start.x,a=e.y-i.start.y,l=P(n,s,a),c=r-i.startTime,f=c>0?P(n,s/Math.max(c,50),a/Math.max(c,50)):0;let h=0;const g=F.current;if(g){const t=r-g.time;if(t<=80){const r=Math.max(t,16);h=P(n,(e.x-g.x)/r,(e.y-g.y)/r)}}const v=0!==h?h:f;if(u?.length){const e=S({snapPoints:u,currentOffset:p,popupHeight:d,dragDelta:l,directionalVelocity:v,snapToSequentialPoints:m});if("close"===e.type)return A.current.onSettle?.(e.snapPoint),U(v,o),void A.current.onDismiss();if("settle"===e.type)return A.current.onSettle?.(e.snapPoint),void B()}const y=t.current,w=y?function(e,t){return Math.max(.5*C(e,t),10)}(y,n):0;h>0&&h>=.5||l>=w?(U(v,o),A.current.onDismiss()):B()}),[p,U,n,t,d,B,u,m,R]),Q=a((e=>{if(!H||0!==e.button)return;if("touch"===e.pointerType)return;const r=e.target;if(r?.closest?.(y))return;if(r?.closest?.('button,a,input,select,textarea,label,summary,[role="button"],[role="slider"],[contenteditable="true"],[data-no-drag]'))return;const i=t.current;if(!i)return;const o=$(r,i);o&&!k(o.element,o.axis,n)||(e.currentTarget.setPointerCapture?.(e.pointerId),E.current=!0,Z({x:e.clientX,y:e.clientY},q(e)))}),[H,n,t,Z]);s((()=>{const e=t.current;if(!e||!H)return;L||(L=!0,"undefined"!=typeof CSS&&"function"==typeof CSS.registerProperty&&[{name:v.movementX,syntax:"<length>",initialValue:"0px"},{name:v.movementY,syntax:"<length>",initialValue:"0px"},{name:v.snapPointOffset,syntax:"<length>",initialValue:"0px"},{name:v.progress,syntax:"<number>",initialValue:"1"},{name:v.strength,syntax:"<number>",initialValue:"1"}].forEach((e=>{try{CSS.registerProperty({...e,inherits:!1})}catch{}})));let n=null;const i=e=>{const t=T.current;if(!t||null!==n&&e.pointerId!==n)return;if("touch"===e.pointerType)return;null===n&&(n=e.pointerId);const i=e.clientX-t.start.x,o=e.clientY-t.start.y,s="x"===r?Math.abs(i):Math.abs(o),a="x"===r?Math.abs(o):Math.abs(i);if(null===t.axis){if(s<6)return;if(a>s)return T.current=null,E.current=null,void R(!1);t.axis=r}t.dragging=!0,K(e.clientX,e.clientY,q(e)),G(i,o)},o=e=>{null!==n&&e.pointerId!==n||(n=null,J({x:e.clientX,y:e.clientY},q(e)))},s=()=>{n=null,T.current=null,M.current=0,B()};return e.addEventListener("pointermove",i),e.addEventListener("pointerup",o),e.addEventListener("pointercancel",s),()=>{e.removeEventListener("pointermove",i),e.removeEventListener("pointerup",o),e.removeEventListener("pointercancel",s)}}),[H,G,r,t,J,K,R,B]);const _=a((e=>{const r=e.touches[0];if(!H||!r)return void(E.current=!1);const i=e.target;if(i?.closest?.(y))return void(E.current=!1);const o=t.current;if(!o)return void(E.current=!1);const s=$(i,o);E.current=!(s&&!k(s.element,s.axis,n))&&null,!1!==E.current&&Z({x:r.clientX,y:r.clientY},q(e))}),[H,n,t,Z]),ee=a((e=>{const t=T.current;if(!1===E.current)return;if(!t)return;const i=e.touches[0];if(!i)return;const o=i.clientX-t.start.x,s=i.clientY-t.start.y,a="x"===r?o:s,l="x"===r?s:o;if(null===t.axis){if(Math.abs(a)<6)return;if(Math.abs(l)>Math.abs(a))return E.current=!1,T.current=null,void R(!1);t.axis=r}if(P(n,o,s)<0)return E.current=!1,T.current=null,void R(!1);E.current=!0,t.dragging=!0,e.cancelable&&e.preventDefault(),K(i.clientX,i.clientY,q(e)),G(o,s)}),[G,r,n,K,R]),te=a((e=>{const t=e.changedTouches[0];if(!t)return T.current=null,void B();J({x:t.clientX,y:t.clientY},q(e))}),[J,B]),ne=a((()=>{E.current=!1,T.current=null,M.current=0,B()}),[B]);return s((()=>()=>{I.current&&clearTimeout(I.current)}),[]),s((()=>{H||(T.current=null,E.current=null,M.current=0,F.current=null,R(!1))}),[H,R]),s((()=>{if(l)return;t.current&&V()}),[V,t,l]),{swiping:b,isSnapping:O,pointerProps:{onPointerDown:Q},touchProps:{onTouchStart:_,onTouchMove:ee,onTouchEnd:te,onTouchCancel:ne}}}const R=n((({children:e,className:n="",asChild:u=!1,forceMount:d=!1,role:p="dialog","aria-modal":y,"aria-labelledby":w,"aria-describedby":P,initialFocus:C=0,finalFocus:x,disableSwipeDismiss:b=!1,style:S,...D},T)=>{const{rootClass:M,side:F,dismissDirection:E,isOpen:I,modal:A,snapPoints:H,activeSnapPoint:q,setActiveSnapPoint:$,snapToSequentialPoints:k,setPopupHeight:L,registerContentElement:R,shouldKeepMounted:z,requestClose:W,childOpenCount:V,nestedSwiping:K,setNestedSwiping:B,titleId:U,descriptionId:Z}=t(g),{getFloatingProps:G,refs:J,floaterContext:Q}=t(m),_=o(null),[ee,te]=i(null),[ne,re]=i(I?"open":"closed"),ie=a((e=>{_.current=e,te(e),R(e)}),[R]),oe=f.useMergeRefs([J.setFloating,ie,T]);s((()=>{if(!ee)return;const e=()=>L(ee.offsetHeight);if(e(),"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e);return t.observe(ee),()=>t.disconnect()}),[ee,L]);const se=ee?.offsetHeight??0,{resolved:ae,activeOffset:le,expanded:ce}=X(H,E,se,q),ue=function(e){return"left"===e||"right"===e?"x":"y"}(F),de=a((()=>{W("swipe")}),[W]),pe=a((e=>{$(e?e.value:null)}),[$]),{swiping:me,isSnapping:fe,pointerProps:he,touchProps:ge}=j({elementRef:_,dismissDirection:E,axis:ue,enabled:I&&!b,disabledByNestedDrawer:V>0,snapPoints:ae,popupHeight:se,activeSnapPointOffset:le,snapToSequentialPoints:k,onDismiss:de,onSettle:pe,onSwipingChange:B}),ve=I||d||z,[ye,we]=i(I);s((()=>{if(ve)return void we(!0);const e=new AbortController;return N(ee,O(ee,"close"),e.signal).then((()=>{e.signal.aborted||we(!1)})),()=>e.abort()}),[ee,ve]),s((()=>{if(!ye)return void re("closed");if(!I)return void re("closed");const e=requestAnimationFrame((()=>re("open")));return()=>cancelAnimationFrame(e)}),[I,ye]),s((()=>{if(I||!x?.current)return;const e=requestAnimationFrame((()=>{x.current?.focus()}));return()=>cancelAnimationFrame(e)}),[x,I]);const Pe=y??!1!==A,Ce=w??U,xe=P??Z,be={outline:"none",[v.nestedDrawers]:String(V),[v.height]:se>0?`${se}px`:void 0,[v.snapPointOffset]:`${le}px`,...V>0?{"--drawer-peek-offset":20*V+"px"}:{},...S},Se=r((()=>({element:ee,height:se,resolvedSnapPoints:ae,activeSnapPointOffset:le,activeSnapPoint:q,setActiveSnapPoint:$,expanded:ce,dismissDirection:E,pointerProps:he,touchProps:ge})),[q,le,E,ee,ce,he,se,ae,$,ge]),{style:De,...Oe}=G()??{};if(!ye)return null;const Ne=!1!==A;return l(Y.Provider,{value:Se,children:l(f.FocusManager,{context:Q,modal:Ne,initialFocus:C,returnFocus:!x,children:l(h.div,{ref:oe,asChild:u,...Oe,...he,...ge,style:be,role:p,"aria-modal":Pe,"aria-hidden":I?void 0:"true","aria-labelledby":I?Ce:void 0,"aria-describedby":I?xe:void 0,"data-state":ne,"data-swipe-direction":F,"data-swiping":me?"true":void 0,"data-snapping":fe?"true":void 0,"data-swipe-dismiss":b?void 0:"","data-expanded":ae.length>0?ce?"true":"false":void 0,"data-child-open":V>0?"true":void 0,"data-nested-drawer-open":V>0?"true":void 0,"data-nested-drawer-swiping":K?"true":void 0,className:c(M&&`${M}-content`,n),...D,children:l("div",{className:c(M&&`${M}-content-inner`),children:e})})})})}));R.displayName="DrawerContent";const z=n((({children:e,className:n="",id:r,...i},o)=>{const{rootClass:a,setTitleId:u}=t(g),d=f.useId(),p=i.id??r??d;return s((()=>(u(p),()=>u(void 0))),[u,p]),l(h.h2,{ref:o,id:p,className:c(a&&`${a}-title`,n),...i,children:e})}));z.displayName="DrawerTitle";const W=n((({children:e,className:n="",id:r,...i},o)=>{const{rootClass:a,setDescriptionId:u}=t(g),d=f.useId(),p=i.id??r??d;return s((()=>(u(p),()=>u(void 0))),[u,p]),l(h.p,{ref:o,id:p,className:c(a&&`${a}-description`,n),...i,children:e})}));W.displayName="DrawerDescription";const V=n((({children:e,asChild:n,className:r="",onClick:i,...o},s)=>{const{rootClass:a,markIntentionalClose:u}=t(g);return l(p.Cancel,{ref:s,className:c(a&&`${a}-close`,r),asChild:n,onClick:e=>{u(),i?.(e)},...o,children:e})}));V.displayName="DrawerClose";const K=n((({className:e=""},n)=>{const{rootClass:r}=t(g),{pointerProps:i,touchProps:o,dismissDirection:s}=t(Y),u=a((e=>{"Escape"!==e.key&&"Enter"!==e.key&&" "!==e.key||e.preventDefault()}),[]);return l("div",{ref:n,"aria-hidden":"true","data-direction":s,onKeyDown:u,className:c(r&&`${r}-handle`,e),...i,...o,children:l("div",{className:`${r}-handle-grip`,"aria-hidden":"true"})})}));K.displayName="DrawerHandle";const B=n((({className:e="",openThreshold:n=48,size:r=20,children:i,style:s,disabled:u=!1,...d},p)=>{const{rootClass:m,side:f,isOpen:h,onOpen:v}=t(g),y=o(null),w=o(0),P=o(null),C=a(((e,t)=>{switch(f){case"right":return-e;case"left":return e;case"bottom":return-t;case"top":return t}}),[f]),x=a((e=>{const t=P.current;if(!t)return;const n=8*e;switch(f){case"right":t.style.transform=`translateX(${-n}px)`;break;case"left":t.style.transform=`translateX(${n}px)`;break;case"bottom":t.style.transform=`translateY(${-n}px)`;break;case"top":t.style.transform=`translateY(${n}px)`}t.style.setProperty("--swipe-progress",String(e))}),[f]),b=a((e=>{const t=P.current;if(t&&(e&&(t.style.transition="transform var(--rad-ui-motion-duration-normal) var(--rad-ui-motion-easing-standard)"),t.style.transform="",t.style.removeProperty("--swipe-progress"),e)){const e=()=>{t.style.transition="",t.removeEventListener("transitionend",e)};t.addEventListener("transitionend",e)}}),[]),S=a((e=>{if(0!==e.button||h)return;e.currentTarget.setPointerCapture(e.pointerId),y.current={startX:e.clientX,startY:e.clientY},w.current=0;const t=P.current;t&&(t.style.transition="none")}),[h]),D=a((e=>{if(!y.current)return;const t=e.clientX-y.current.startX,r=e.clientY-y.current.startY,i=Math.max(0,C(t,r)),o=Math.min(i/n,1);w.current=o,x(o)}),[C,n,x]),O=a((()=>{y.current&&(y.current=null,w.current>=1?(b(!1),v()):b(!0),w.current=0)}),[v,b]),N=a((()=>{y.current&&(y.current=null,w.current=0,b(!0))}),[b]),T=(()=>{const e={position:"fixed",zIndex:"var(--rad-ui-z-index-overlay)",touchAction:"none",userSelect:"none"};switch(f){case"right":return{...e,top:0,right:0,bottom:0,width:r};case"left":return{...e,top:0,left:0,bottom:0,width:r};case"bottom":return{...e,left:0,bottom:0,right:0,height:r};case"top":return{...e,left:0,top:0,right:0,height:r}}})();return u||h?null:l("div",{ref:e=>{P.current=e,"function"==typeof p?p(e):p&&(p.current=e)},"aria-hidden":"true","data-direction":f,onPointerDown:S,onPointerMove:D,onPointerUp:O,onPointerCancel:N,style:{...T,...s},className:c(m&&`${m}-swipe-zone`,e),...d,children:i})}));B.displayName="DrawerSwipeZone";const U=n(((e,t)=>(console.warn("Direct usage of Drawer is not supported. Please use Drawer.Root, Drawer.Content, etc. instead."),null)));U.displayName="Drawer";const Z=U;Z.Root=M,Z.Trigger=F,Z.Portal=E,Z.Overlay=I,Z.Content=R,Z.Title=z,Z.Description=W,Z.Close=V,Z.Handle=K,Z.SwipeZone=B;export{Z as default};
|
|
1
|
+
'use client';import{createContext as e,useContext as t,forwardRef as n,useMemo as r,useState as i,useRef as o,useEffect as s,useCallback as a}from"react";import{jsx as l}from"react/jsx-runtime";import{u as c,c as u}from"./useComponentClass-C0isGl1z.js";import{u as d}from"./index-CBcSLg6O.js";import{D as p,a as m}from"./index-xlB--dex.js";import{F as f}from"./index-D8I-rMwz.js";import{P as h}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./index-CbNq68zs.js";import"./documentOverlayOpen-coyGmcyL.js";import"./index-wRElCyvx.js";import"./index-FITGoHty.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./mergeProps-0RucjqeH.js";const g=e({rootClass:"",side:"right",dismissDirection:"right",isOpen:!1,onOpen:()=>{},snapPoints:[],activeSnapPoint:null,setActiveSnapPoint:()=>{},snapToSequentialPoints:!1,modal:!0,disablePointerDismissal:!1,shouldKeepMounted:!1,requestClose:()=>{},markIntentionalClose:()=>{},setTitleId:()=>{},setDescriptionId:()=>{},popupHeight:0,setPopupHeight:()=>{},registerContentElement:()=>{},childOpenCount:0,nestedSwiping:!1,setNestedSwiping:()=>{},depth:0}),v={movementX:"--rad-ui-drawer-swipe-movement-x",movementY:"--rad-ui-drawer-swipe-movement-y",snapPointOffset:"--rad-ui-drawer-snap-point-offset",progress:"--rad-ui-drawer-swipe-progress",strength:"--rad-ui-drawer-swipe-strength",height:"--rad-ui-drawer-height",nestedDrawers:"--rad-ui-nested-drawers"},y="[data-swipe-ignore],[data-rad-ui-swipe-ignore]";function w(e,t,n){return Math.min(Math.max(e,t),n)}function P(e,t,n){switch(e){case"up":return-n;case"down":return n;case"left":return-t;default:return t}}function C(e,t){return"left"===t||"right"===t?e.offsetWidth:e.offsetHeight}function x(e,t,n){if(!Number.isFinite(t)||t<=0)return null;if("number"==typeof e)return Number.isFinite(e)?e<=1?w(e,0,1)*t:e:null;const r=e.trim();if(r.endsWith("px")){const e=Number.parseFloat(r);return Number.isFinite(e)?e:null}if(r.endsWith("rem")){const e=Number.parseFloat(r);return Number.isFinite(e)?e*n:null}return null}function b(e,t){let n=-1,r=1/0;for(let i=0;i<e.length;i+=1){const o=Math.abs(e[i].offset-t);o<r&&(r=o,n=i)}return n}function S({snapPoints:e,currentOffset:t,popupHeight:n,dragDelta:r,directionalVelocity:i,snapToSequentialPoints:o}){if(!e.length||n<=0)return{type:"stay"};const s=Math.sign(r),a=w(t+r,0,n),l=Math.abs(i)>=.5?300*w(i,-4,4):0,c=o?a:w(a+l,0,n),u=[...e].sort(((e,t)=>e.offset-t.offset));let d=function(e,t){const n=b(e,t);return-1===n?null:e[n]}(u,c),p=c;if(o){const e=b(u,t);if(0!==s&&Math.sign(i)===s&&Math.abs(i)>=.5){const t=w(e+s,0,u.length-1);if(t!==e){const e=u[t];(s>0?c<e.offset:c>e.offset)&&(d=e,p=e.offset)}else if(s>0)return{type:"close",snapPoint:d}}}else if(i>=.5&&r>0)return{type:"close",snapPoint:d};return Math.abs(p-n)<(d?Math.abs(p-d.offset):1/0)?{type:"close",snapPoint:d}:{type:"settle",snapPoint:d}}const D=e({depth:0,onChildOpenChange:()=>{},onChildSwipingChange:()=>{}});function O(e,t){const n="open"===t?500:400;if(!e||"undefined"==typeof window||!window.getComputedStyle)return n;const r="open"===t?"--rad-ui-drawer-open-duration":"--rad-ui-drawer-close-duration";return function(e){if(!e)return null;const t=e.trim();if(!t||"auto"===t||"normal"===t)return null;const n=Number.parseFloat(t);return Number.isFinite(n)?t.endsWith("ms")?n:t.endsWith("s")?1e3*n:n:null}(window.getComputedStyle(e).getPropertyValue(r))??n}function T(e,t,n){return new Promise((r=>{if(n?.aborted||!e)return void r();let i,o,s,a=!1;const l=()=>{a||(a=!0,void 0!==i&&clearTimeout(i),void 0!==o&&cancelAnimationFrame(o),n&&s&&n.removeEventListener("abort",s),r())},c=e;if("function"!=typeof c.getAnimations)i=setTimeout(l,t);else{let e=[];try{e=c.getAnimations()}catch{e=[]}i=setTimeout(l,t),e.length?Promise.all(e.map((e=>e.finished.catch((()=>{}))))).then(l):o=requestAnimationFrame(l)}n&&(s=l,n.addEventListener("abort",s))}))}const N="Drawer",M=n((({children:e,customRootClass:n="",className:m="",defaultOpen:f=!1,open:h,onOpenChange:v,onOpenChangeComplete:y,snapPoints:w=[],defaultSnapPoint:P=null,snapPoint:C,onSnapPointChange:x,snapToSequentialPoints:b=!1,modal:S=!0,disablePointerDismissal:M=!1,swipeDirection:F="right",triggerId:E,defaultTriggerId:I,actionsRef:H},Y)=>{const A=c(n,N),X=r((()=>function(e){switch(e){case"up":return"top";case"down":return"bottom";default:return e}}(F)),[F]),q=r((()=>function(e){switch(e){case"top":return"up";case"bottom":return"down";default:return e}}(X)),[X]),$=t(D),k=void 0!==h,[L,j]=i(f),R=k?h:L;d(R);const z=o(R);z.current=R;const W=o(null),V=o(!1),K=o(M);s((()=>{K.current=M}),[M]);const[B,Z]=i(!1),U=a(((e="close-press")=>{V.current=!0,W.current=e}),[]),G=a(((e,t)=>{const n=W.current??(e?"trigger-press":"none");W.current=null;const r=V.current;if(V.current=!1,!e&&K.current&&!r)return;let i=!1,o=!1;const s={reason:n,cancel:()=>{i=!0},get isCanceled(){return i},preventUnmountOnClose:()=>{o=!0},event:t};v&&(v.length<=1?v(e):v(e,s)),i||(o&&Z(!0),k||j(e))}),[k,v]);s((()=>{R&&Z(!1)}),[R]);const J=void 0!==C,[Q,_]=i(P??(w.length>0?w[0]:null)),ee=J?C:Q,te=a((e=>{J||_(e),x?.(e)}),[J,x]),[ne,re]=i(0),ie=a((e=>{re((t=>t===e?t:e))}),[]),oe=a((e=>{H&&"current"in H&&(H.current=e)}),[H]);s((()=>{if(!H)return;oe({close:()=>{U("imperative-action"),G(!1)},unmount:()=>{Z(!1),z.current&&!k&&(U("imperative-action"),G(!1)),_(P??w[0]??null)}})}),[H,P,G,k,U,oe,w]);const se=o(null),ae=a((e=>{se.current=e}),[]),le=o(y);le.current=y,s((()=>{const e=new AbortController,t=R,n=requestAnimationFrame((()=>{const n=se.current;le.current&&T(n,O(n,t?"open":"close"),e.signal).then((()=>{e.signal.aborted||le.current?.(z.current)}))}));return()=>{e.abort(),cancelAnimationFrame(n)}}),[R]);const ce=o(!1);s((()=>{R&&!ce.current?(ce.current=!0,$.onChildOpenChange(!0)):!R&&ce.current&&(ce.current=!1,$.onChildOpenChange(!1))}),[R,$]),s((()=>()=>{ce.current&&($.onChildOpenChange(!1),ce.current=!1)}),[]);const[ue,de]=i(0),pe=a((e=>{de((t=>Math.max(0,t+(e?1:-1)))),$.onChildOpenChange(e)}),[$]),[me,fe]=i(!1),he=a((e=>{fe(e),$.onChildSwipingChange(e)}),[$]);s((()=>{ue||fe(!1)}),[ue]);const ge=he,ve=r((()=>({depth:$.depth+1,onChildOpenChange:pe,onChildSwipingChange:he})),[pe,he,$.depth]),ye=a(((e,t)=>{U(e),G(!1,t)}),[G,U]),[we,Pe]=i(void 0),[Ce,xe]=i(void 0),be=a((e=>{Pe((t=>t===e?t:e))}),[]),Se=a((e=>{xe((t=>t===e?t:e))}),[]),De=r((()=>({rootClass:A,side:X,dismissDirection:q,isOpen:R,onOpen:()=>G(!0),snapPoints:w,activeSnapPoint:ee,setActiveSnapPoint:te,snapToSequentialPoints:b,popupHeight:ne,setPopupHeight:ie,modal:S,disablePointerDismissal:M,registerContentElement:ae,shouldKeepMounted:B,requestClose:ye,markIntentionalClose:U,childOpenCount:ue,nestedSwiping:me,setNestedSwiping:ge,titleId:we,descriptionId:Ce,setTitleId:be,setDescriptionId:Se,depth:$.depth})),[ee,ue,Ce,q,M,G,B,R,U,S,$.depth,ne,ae,ye,A,te,Se,ge,ie,be,X,w,b,me,we]);return l(D.Provider,{value:ve,children:l(p.Root,{ref:Y,open:R,onOpenChange:G,className:u(A,m),disablePointerDismissal:M,children:l(g.Provider,{value:De,children:e})})})}));M.displayName=N;const F=n((({children:e,asChild:n,className:r="",...i},o)=>{const{rootClass:s}=t(g);return l(p.Trigger,{ref:o,className:u(s&&`${s}-trigger`,r),asChild:n,...i,children:e})}));F.displayName="DrawerTrigger";const E=n((({children:e,...t},n)=>l(p.Portal,{...t,children:e})));E.displayName="DrawerPortal";const I=n((({className:e="",forceMount:n=!1,...r},a)=>{const{rootClass:c,modal:d,disablePointerDismissal:p,markIntentionalClose:h}=t(g),{isOpen:v,handleOverlayClick:y}=t(m),[w,P]=i(v),[C,x]=i(v?"open":"closed"),b=o(null);if(s((()=>(b.current&&clearTimeout(b.current),v?(P(!0),requestAnimationFrame((()=>{requestAnimationFrame((()=>x("open")))}))):(x("closed"),b.current=setTimeout((()=>{P(!1)}),400)),()=>{b.current&&clearTimeout(b.current)})),[v]),!w&&!n)return null;const S=p?void 0:()=>{h(),y()},D=!0===d;return l(f.Overlay,{lockScroll:v&&D,ref:a,onClick:S,"data-state":C,style:!1===d?{pointerEvents:"none",background:"transparent"}:void 0,className:u(c&&`${c}-overlay`,e),...r})}));I.displayName="DrawerOverlay";const H=e({element:null,height:0,resolvedSnapPoints:[],activeSnapPointOffset:0,activeSnapPoint:null,setActiveSnapPoint:()=>{},expanded:!1,dismissDirection:"right",pointerProps:{onPointerDown:()=>{}},touchProps:{onTouchStart:()=>{},onTouchMove:()=>{},onTouchEnd:()=>{},onTouchCancel:()=>{}}});function Y(){return"undefined"==typeof window?0:window.innerHeight||document.documentElement.clientHeight||0}function A(){if("undefined"==typeof window)return 16;const e=Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize);return Number.isFinite(e)&&e>0?e:16}function X(e,t,n,o){const a="up"===t||"down"===t,[l,c]=i(0),[u,d]=i(16);s((()=>{if(!a||!e.length)return;c(Y()),d(A());const t=()=>{c(Y()),d(A())};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)}),[e.length,a]);const p=r((()=>a&&e.length?function(e,t,n,r){if(!e.length||n<=0)return[];const i=Math.min(n,t||n),o=e.map((e=>{const o=x(e,t,r);if(null===o)return null;const s=w(o,0,i);return{value:e,height:s,offset:Math.max(0,n-s)}})).filter((e=>null!==e));if(o.length<2)return o;const s=[];for(let e=o.length-1;e>=0;e-=1){const t=o[e];s.some((e=>Math.abs(e.height-t.height)<=1))||s.push(t)}return s.reverse()}(e,l||n,n,u):[]),[n,u,e,a,l]);return r((()=>{if(!p.length||null===o)return{resolved:p,active:null,activeOffset:0,expanded:!1};const e=p.find((e=>Object.is(e.value,o)));if(e)return{resolved:p,active:e,activeOffset:e.offset,expanded:1===o};const t=x(o,l||n,u);if(null===t)return{resolved:p,active:null,activeOffset:0,expanded:!1};const r=w(t,0,n||l||t),i=Math.max(0,(n||r)-r);return{resolved:p,active:null,activeOffset:i,expanded:1===o}}),[o,n,p,u,l])}function q(e){return e.timeStamp>0?e.timeStamp:performance.now()}function $(e,t){let n=e;for(;n&&n!==t;){const e=window.getComputedStyle(n),t=("auto"===e.overflowY||"scroll"===e.overflowY)&&n.scrollHeight>n.clientHeight,r=("auto"===e.overflowX||"scroll"===e.overflowX)&&n.scrollWidth>n.clientWidth;if(t||r)return{element:n,axis:t?"y":"x"};n=n.parentElement}return null}function k(e,t,n){return"y"===t?"down"===n?e.scrollTop<=0:e.scrollTop>=e.scrollHeight-e.clientHeight:"right"===n?e.scrollLeft<=0:e.scrollLeft>=e.scrollWidth-e.clientWidth}let L=!1;function j(e){const{elementRef:t,dismissDirection:n,axis:r,enabled:l,disabledByNestedDrawer:c=!1,snapPoints:u,popupHeight:d=0,activeSnapPointOffset:p=0,snapToSequentialPoints:m=!1,onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x}=e,[b,D]=i(!1),[O,T]=i(!1),N=o(null),M=o(0),F=o(null),E=o(null),I=o(null),H=o(null),Y=o({onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x});Y.current={onDismiss:f,onSettle:h,onSwipingChange:g,onProgress:x};const A=l&&!c,X=Boolean(u?.length)&&!("left"===(j=n)||"right"===j);var j;s((()=>{if(!u||u.length<2)return void(H.current=null);const e=u.map((e=>e.offset)).sort(((e,t)=>e-t)),t=e[1]-e[0];H.current=t>0?{min:e[0],range:t}:null}),[u]);const R=a((e=>{D(e),Y.current.onSwipingChange?.(e)}),[]),z=a((e=>{const n=t.current;n&&(X?n.style.setProperty(v.movementY,`${function(e,t){const n=e+t;return n>=0?t:-Math.sqrt(-n)-e}(p,e)}px`):"x"===r?n.style.setProperty(v.movementX,`${e}px`):n.style.setProperty(v.movementY,`${e}px`))}),[p,r,t,X]),W=a((e=>{const r=t.current;if(!r)return;const i=H.current;let o;if(i){const t=w((p||i.min)+e,0,d||p+i.range);o=w((t-i.min)/i.range,0,1)}else{const t=C(r,n);o=t>0?w(1-Math.max(0,e)/t,0,1):1}r.style.setProperty(v.progress,String(o)),Y.current.onProgress?.(o)}),[p,n,t,d]),V=a((()=>{const e=t.current;e&&(e.style.removeProperty(v.movementX),e.style.removeProperty(v.movementY),e.style.removeProperty(v.strength),e.style.setProperty(v.progress,"1"))}),[t]),K=a(((e,t,r)=>{const i=F.current;if(F.current={x:e,y:t,time:r},!i)return 0;const o=Math.max(r-i.time,16);return P(n,(e-i.x)/o,(t-i.y)/o)}),[n]),B=a((()=>{const e=t.current;if(M.current=0,R(!1),!e)return void T(!1);I.current&&clearTimeout(I.current),T(!0),V(),Y.current.onProgress?.(1);const n=()=>{e.removeEventListener("transitionend",n),T(!1)};e.addEventListener("transitionend",n),I.current=setTimeout(n,400)}),[V,t,R]),Z=a(((e,r)=>{const i=t.current;if(R(!1),!i)return;const o=function({element:e,direction:t,displacement:n,velocity:r,snapPointOffset:i=0}){const o=C(e,t);if(o<=0)return null;const s=Math.max(0,o-(i+n));if(s<=0)return null;if(r<=.2)return null;const a=w(r,.2,4);return.1+(w(s/a,80,360)-80)/280*.9}({element:i,direction:n,displacement:r,velocity:e,snapPointOffset:X?p:0});null!==o&&i.style.setProperty(v.strength,String(o))}),[p,n,t,R,X]),U=a(((e,t)=>{N.current={start:e,startDisplacement:M.current,startTime:t,axis:null,dragging:!1},M.current=0,F.current={...e,time:t},R(!0)}),[R]),G=a(((e,t)=>{const r=P(n,e,t),i=(X?p:0)+r;let o;var s;i<0?(s=i,o=Math.sign(s)*Math.sqrt(Math.abs(s))):o=r<0?.2*- -r:r,M.current=o,z(o),W(o)}),[p,n,X,z,W]),J=a(((e,r)=>{const i=N.current;if(N.current=null,E.current=null,!i)return void R(!1);if(!i.dragging)return M.current=0,void R(!1);const o=M.current;M.current=0;const s=e.x-i.start.x,a=e.y-i.start.y,l=P(n,s,a),c=r-i.startTime,f=c>0?P(n,s/Math.max(c,50),a/Math.max(c,50)):0;let h=0;const g=F.current;if(g){const t=r-g.time;if(t<=80){const r=Math.max(t,16);h=P(n,(e.x-g.x)/r,(e.y-g.y)/r)}}const v=0!==h?h:f;if(u?.length){const e=S({snapPoints:u,currentOffset:p,popupHeight:d,dragDelta:l,directionalVelocity:v,snapToSequentialPoints:m});if("close"===e.type)return Y.current.onSettle?.(e.snapPoint),Z(v,o),void Y.current.onDismiss();if("settle"===e.type)return Y.current.onSettle?.(e.snapPoint),void B()}const y=t.current,w=y?function(e,t){return Math.max(.5*C(e,t),10)}(y,n):0;h>0&&h>=.5||l>=w?(Z(v,o),Y.current.onDismiss()):B()}),[p,Z,n,t,d,B,u,m,R]),Q=a((e=>{if(!A||0!==e.button)return;if("touch"===e.pointerType)return;const r=e.target;if(r?.closest?.(y))return;if(r?.closest?.('button,a,input,select,textarea,label,summary,[role="button"],[role="slider"],[contenteditable="true"],[data-no-drag]'))return;const i=t.current;if(!i)return;const o=$(r,i);o&&!k(o.element,o.axis,n)||(e.currentTarget.setPointerCapture?.(e.pointerId),E.current=!0,U({x:e.clientX,y:e.clientY},q(e)))}),[A,n,t,U]);s((()=>{const e=t.current;if(!e||!A)return;L||(L=!0,"undefined"!=typeof CSS&&"function"==typeof CSS.registerProperty&&[{name:v.movementX,syntax:"<length>",initialValue:"0px"},{name:v.movementY,syntax:"<length>",initialValue:"0px"},{name:v.snapPointOffset,syntax:"<length>",initialValue:"0px"},{name:v.progress,syntax:"<number>",initialValue:"1"},{name:v.strength,syntax:"<number>",initialValue:"1"}].forEach((e=>{try{CSS.registerProperty({...e,inherits:!1})}catch{}})));let n=null;const i=e=>{const t=N.current;if(!t||null!==n&&e.pointerId!==n)return;if("touch"===e.pointerType)return;null===n&&(n=e.pointerId);const i=e.clientX-t.start.x,o=e.clientY-t.start.y,s="x"===r?Math.abs(i):Math.abs(o),a="x"===r?Math.abs(o):Math.abs(i);if(null===t.axis){if(s<6)return;if(a>s)return N.current=null,E.current=null,void R(!1);t.axis=r}t.dragging=!0,K(e.clientX,e.clientY,q(e)),G(i,o)},o=e=>{null!==n&&e.pointerId!==n||(n=null,J({x:e.clientX,y:e.clientY},q(e)))},s=()=>{n=null,N.current=null,M.current=0,B()};return e.addEventListener("pointermove",i),e.addEventListener("pointerup",o),e.addEventListener("pointercancel",s),()=>{e.removeEventListener("pointermove",i),e.removeEventListener("pointerup",o),e.removeEventListener("pointercancel",s)}}),[A,G,r,t,J,K,R,B]);const _=a((e=>{const r=e.touches[0];if(!A||!r)return void(E.current=!1);const i=e.target;if(i?.closest?.(y))return void(E.current=!1);const o=t.current;if(!o)return void(E.current=!1);const s=$(i,o);E.current=!(s&&!k(s.element,s.axis,n))&&null,!1!==E.current&&U({x:r.clientX,y:r.clientY},q(e))}),[A,n,t,U]),ee=a((e=>{const t=N.current;if(!1===E.current)return;if(!t)return;const i=e.touches[0];if(!i)return;const o=i.clientX-t.start.x,s=i.clientY-t.start.y,a="x"===r?o:s,l="x"===r?s:o;if(null===t.axis){if(Math.abs(a)<6)return;if(Math.abs(l)>Math.abs(a))return E.current=!1,N.current=null,void R(!1);t.axis=r}if(P(n,o,s)<0)return E.current=!1,N.current=null,void R(!1);E.current=!0,t.dragging=!0,e.cancelable&&e.preventDefault(),K(i.clientX,i.clientY,q(e)),G(o,s)}),[G,r,n,K,R]),te=a((e=>{const t=e.changedTouches[0];if(!t)return N.current=null,void B();J({x:t.clientX,y:t.clientY},q(e))}),[J,B]),ne=a((()=>{E.current=!1,N.current=null,M.current=0,B()}),[B]);return s((()=>()=>{I.current&&clearTimeout(I.current)}),[]),s((()=>{A||(N.current=null,E.current=null,M.current=0,F.current=null,R(!1))}),[A,R]),s((()=>{if(l)return;t.current&&V()}),[V,t,l]),{swiping:b,isSnapping:O,pointerProps:{onPointerDown:Q},touchProps:{onTouchStart:_,onTouchMove:ee,onTouchEnd:te,onTouchCancel:ne}}}const R=n((({children:e,className:n="",asChild:c=!1,forceMount:d=!1,role:p="dialog","aria-modal":y,"aria-labelledby":w,"aria-describedby":P,initialFocus:C=0,finalFocus:x,disableSwipeDismiss:b=!1,style:S,...D},N)=>{const{rootClass:M,side:F,dismissDirection:E,isOpen:I,modal:Y,snapPoints:A,activeSnapPoint:q,setActiveSnapPoint:$,snapToSequentialPoints:k,setPopupHeight:L,registerContentElement:R,shouldKeepMounted:z,requestClose:W,childOpenCount:V,nestedSwiping:K,setNestedSwiping:B,titleId:Z,descriptionId:U}=t(g),{getFloatingProps:G,refs:J,floaterContext:Q}=t(m),_=o(null),[ee,te]=i(null),[ne,re]=i(I?"open":"closed"),ie=a((e=>{_.current=e,te(e),R(e)}),[R]),oe=f.useMergeRefs([J.setFloating,ie,N]);s((()=>{if(!ee)return;const e=()=>L(ee.offsetHeight);if(e(),"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e);return t.observe(ee),()=>t.disconnect()}),[ee,L]);const se=ee?.offsetHeight??0,{resolved:ae,activeOffset:le,expanded:ce}=X(A,E,se,q),ue=function(e){return"left"===e||"right"===e?"x":"y"}(F),de=a((()=>{W("swipe")}),[W]),pe=a((e=>{$(e?e.value:null)}),[$]),{swiping:me,isSnapping:fe,pointerProps:he,touchProps:ge}=j({elementRef:_,dismissDirection:E,axis:ue,enabled:I&&!b,disabledByNestedDrawer:V>0,snapPoints:ae,popupHeight:se,activeSnapPointOffset:le,snapToSequentialPoints:k,onDismiss:de,onSettle:pe,onSwipingChange:B}),ve=I||d||z,[ye,we]=i(I);s((()=>{if(ve)return void we(!0);const e=new AbortController;return T(ee,O(ee,"close"),e.signal).then((()=>{e.signal.aborted||we(!1)})),()=>e.abort()}),[ee,ve]),s((()=>{if(!ye)return void re("closed");if(!I)return void re("closed");const e=requestAnimationFrame((()=>re("open")));return()=>cancelAnimationFrame(e)}),[I,ye]),s((()=>{if(I||!x?.current)return;const e=requestAnimationFrame((()=>{x.current?.focus()}));return()=>cancelAnimationFrame(e)}),[x,I]);const Pe=y??!1!==Y,Ce=w??Z,xe=P??U,be={outline:"none",[v.nestedDrawers]:String(V),[v.height]:se>0?`${se}px`:void 0,[v.snapPointOffset]:`${le}px`,...V>0?{"--drawer-peek-offset":20*V+"px"}:{},...S},Se=r((()=>({element:ee,height:se,resolvedSnapPoints:ae,activeSnapPointOffset:le,activeSnapPoint:q,setActiveSnapPoint:$,expanded:ce,dismissDirection:E,pointerProps:he,touchProps:ge})),[q,le,E,ee,ce,he,se,ae,$,ge]),{style:De,...Oe}=G()??{};if(!ye)return null;const Te=!1!==Y;return l(H.Provider,{value:Se,children:l(f.FocusManager,{context:Q,disabled:!I||"open"!==ne,modal:Te,initialFocus:C,returnFocus:!x,children:l(h.div,{ref:oe,asChild:c,...Oe,...he,...ge,style:be,role:p,"aria-modal":Pe,"aria-hidden":I?void 0:"true","aria-labelledby":I?Ce:void 0,"aria-describedby":I?xe:void 0,"data-state":ne,"data-swipe-direction":F,"data-swiping":me?"true":void 0,"data-snapping":fe?"true":void 0,"data-swipe-dismiss":b?void 0:"","data-expanded":ae.length>0?ce?"true":"false":void 0,"data-child-open":V>0?"true":void 0,"data-nested-drawer-open":V>0?"true":void 0,"data-nested-drawer-swiping":K?"true":void 0,className:u(M&&`${M}-content`,n),...D,children:l("div",{className:u(M&&`${M}-content-inner`),children:e})})})})}));R.displayName="DrawerContent";const z=n((({children:e,className:n="",id:r,...i},o)=>{const{rootClass:a,setTitleId:c}=t(g),d=f.useId(),p=i.id??r??d;return s((()=>(c(p),()=>c(void 0))),[c,p]),l(h.h2,{ref:o,id:p,className:u(a&&`${a}-title`,n),...i,children:e})}));z.displayName="DrawerTitle";const W=n((({children:e,className:n="",id:r,...i},o)=>{const{rootClass:a,setDescriptionId:c}=t(g),d=f.useId(),p=i.id??r??d;return s((()=>(c(p),()=>c(void 0))),[c,p]),l(h.p,{ref:o,id:p,className:u(a&&`${a}-description`,n),...i,children:e})}));W.displayName="DrawerDescription";const V=n((({children:e,asChild:n,className:r="",onClick:i,...o},s)=>{const{rootClass:a,markIntentionalClose:c}=t(g);return l(p.Cancel,{ref:s,className:u(a&&`${a}-close`,r),asChild:n,onClick:e=>{c(),i?.(e)},...o,children:e})}));V.displayName="DrawerClose";const K=n((({className:e=""},n)=>{const{rootClass:r}=t(g),{pointerProps:i,touchProps:o,dismissDirection:s}=t(H),c=a((e=>{"Escape"!==e.key&&"Enter"!==e.key&&" "!==e.key||e.preventDefault()}),[]);return l("div",{ref:n,"aria-hidden":"true","data-direction":s,onKeyDown:c,className:u(r&&`${r}-handle`,e),...i,...o,children:l("div",{className:`${r}-handle-grip`,"aria-hidden":"true"})})}));K.displayName="DrawerHandle";const B=n((({className:e="",openThreshold:n=48,size:r=20,children:i,style:s,disabled:c=!1,...d},p)=>{const{rootClass:m,side:f,isOpen:h,onOpen:v}=t(g),y=o(null),w=o(0),P=o(null),C=a(((e,t)=>{switch(f){case"right":return-e;case"left":return e;case"bottom":return-t;case"top":return t}}),[f]),x=a((e=>{const t=P.current;if(!t)return;const n=8*e;switch(f){case"right":t.style.transform=`translateX(${-n}px)`;break;case"left":t.style.transform=`translateX(${n}px)`;break;case"bottom":t.style.transform=`translateY(${-n}px)`;break;case"top":t.style.transform=`translateY(${n}px)`}t.style.setProperty("--swipe-progress",String(e))}),[f]),b=a((e=>{const t=P.current;if(t&&(e&&(t.style.transition="transform var(--rad-ui-motion-duration-normal) var(--rad-ui-motion-easing-standard)"),t.style.transform="",t.style.removeProperty("--swipe-progress"),e)){const e=()=>{t.style.transition="",t.removeEventListener("transitionend",e)};t.addEventListener("transitionend",e)}}),[]),S=a((e=>{if(0!==e.button||h)return;e.currentTarget.setPointerCapture(e.pointerId),y.current={startX:e.clientX,startY:e.clientY},w.current=0;const t=P.current;t&&(t.style.transition="none")}),[h]),D=a((e=>{if(!y.current)return;const t=e.clientX-y.current.startX,r=e.clientY-y.current.startY,i=Math.max(0,C(t,r)),o=Math.min(i/n,1);w.current=o,x(o)}),[C,n,x]),O=a((()=>{y.current&&(y.current=null,w.current>=1?(b(!1),v()):b(!0),w.current=0)}),[v,b]),T=a((()=>{y.current&&(y.current=null,w.current=0,b(!0))}),[b]),N=(()=>{const e={position:"fixed",zIndex:"var(--rad-ui-z-index-overlay)",touchAction:"none",userSelect:"none"};switch(f){case"right":return{...e,top:0,right:0,bottom:0,width:r};case"left":return{...e,top:0,left:0,bottom:0,width:r};case"bottom":return{...e,left:0,bottom:0,right:0,height:r};case"top":return{...e,left:0,top:0,right:0,height:r}}})();return c||h?null:l("div",{ref:e=>{P.current=e,"function"==typeof p?p(e):p&&(p.current=e)},"aria-hidden":"true","data-direction":f,onPointerDown:S,onPointerMove:D,onPointerUp:O,onPointerCancel:T,style:{...N,...s},className:u(m&&`${m}-swipe-zone`,e),...d,children:i})}));B.displayName="DrawerSwipeZone";const Z=n(((e,t)=>(console.warn("Direct usage of Drawer is not supported. Please use Drawer.Root, Drawer.Content, etc. instead."),null)));Z.displayName="Drawer";const U=Z;U.Root=M,U.Trigger=F,U.Portal=E,U.Overlay=I,U.Content=R,U.Title=z,U.Description=W,U.Close=V,U.Handle=K,U.SwipeZone=B;export{V as Close,R as Content,W as Description,K as Handle,I as Overlay,E as Portal,M as Root,B as SwipeZone,z as Title,F as Trigger,U as default};
|
|
@@ -28,12 +28,6 @@ declare const DropdownMenuRoot: React.ForwardRefExoticComponent<{
|
|
|
28
28
|
rtl?: boolean;
|
|
29
29
|
} & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
30
|
|
|
31
|
-
type MenuPrimitiveTriggerProps = {
|
|
32
|
-
children: React.ReactNode;
|
|
33
|
-
className?: string;
|
|
34
|
-
asChild?: boolean;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
31
|
type DropdownMenuTriggerProps = {
|
|
38
32
|
children: React.ReactNode;
|
|
39
33
|
className?: string;
|
|
@@ -41,7 +35,11 @@ type DropdownMenuTriggerProps = {
|
|
|
41
35
|
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<{
|
|
42
36
|
children: React.ReactNode;
|
|
43
37
|
className?: string;
|
|
44
|
-
} & Omit<
|
|
38
|
+
} & Omit<{
|
|
39
|
+
children: React.ReactNode;
|
|
40
|
+
className?: string;
|
|
41
|
+
asChild?: boolean;
|
|
42
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
45
43
|
|
|
46
44
|
type DropdownMenuContentProps = {
|
|
47
45
|
children: React.ReactNode;
|
|
@@ -66,15 +64,6 @@ declare const DropdownMenuPortal: React.ForwardRefExoticComponent<{
|
|
|
66
64
|
children: React.ReactNode;
|
|
67
65
|
} & _floating_ui_react.FloatingPortalProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
68
66
|
|
|
69
|
-
type MenuPrimitiveItemProps = {
|
|
70
|
-
children: React.ReactNode;
|
|
71
|
-
className?: string;
|
|
72
|
-
label?: string;
|
|
73
|
-
disabled?: boolean;
|
|
74
|
-
asChild?: boolean;
|
|
75
|
-
onSelect?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
67
|
type DropdownMenuItemProps = {
|
|
79
68
|
children: React.ReactNode;
|
|
80
69
|
className?: string;
|
|
@@ -84,7 +73,14 @@ declare const DropdownMenuItem: React.ForwardRefExoticComponent<{
|
|
|
84
73
|
children: React.ReactNode;
|
|
85
74
|
className?: string;
|
|
86
75
|
label?: string;
|
|
87
|
-
} & Omit<
|
|
76
|
+
} & Omit<{
|
|
77
|
+
children: React.ReactNode;
|
|
78
|
+
className?: string;
|
|
79
|
+
label?: string;
|
|
80
|
+
disabled?: boolean;
|
|
81
|
+
asChild?: boolean;
|
|
82
|
+
onSelect?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
83
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children" | "onSelect" | "disabled"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
88
84
|
|
|
89
85
|
type DropdownMenuSubProps = {
|
|
90
86
|
children: React.ReactNode;
|
|
@@ -122,7 +118,11 @@ type DropdownMenuSubTriggerProps = {
|
|
|
122
118
|
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<{
|
|
123
119
|
children: React.ReactNode;
|
|
124
120
|
className?: string;
|
|
125
|
-
} & Omit<
|
|
121
|
+
} & Omit<{
|
|
122
|
+
children: React.ReactNode;
|
|
123
|
+
className?: string;
|
|
124
|
+
asChild?: boolean;
|
|
125
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
126
126
|
|
|
127
127
|
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
128
128
|
type SeparatorProps = {
|
|
@@ -152,5 +152,5 @@ type DropdownMenuComponent = React.ForwardRefExoticComponent<DropdownMenuProps &
|
|
|
152
152
|
};
|
|
153
153
|
declare const DropdownMenu: DropdownMenuComponent;
|
|
154
154
|
|
|
155
|
-
export { DropdownMenu as default };
|
|
155
|
+
export { DropdownMenuContent as Content, DropdownMenuItem as Item, DropdownMenuPortal as Portal, DropdownMenuRoot as Root, DropdownMenuSeparator as Separator, DropdownMenuSub as Sub, DropdownMenuSubTrigger as SubTrigger, DropdownMenuTrigger as Trigger, DropdownMenu as default };
|
|
156
156
|
export type { DropdownMenuContentProps, DropdownMenuElement, DropdownMenuItemProps, DropdownMenuPortalProps, DropdownMenuProps, DropdownMenuRootProps, DropdownMenuSeparatorProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuTriggerProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import o,{forwardRef as e}from"react";import{jsx as n}from"react/jsx-runtime";import{M as r}from"./MenuPrimitive-
|
|
1
|
+
'use client';import o,{forwardRef as e}from"react";import{jsx as n}from"react/jsx-runtime";import{M as r}from"./MenuPrimitive-D9VMz2TZ.js";import{u as t,c as s}from"./useComponentClass-C0isGl1z.js";import a from"./Separator.js";import"./index-D8I-rMwz.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./index-wRElCyvx.js";import"./index-CBcSLg6O.js";import"./index-CbNq68zs.js";import"./documentOverlayOpen-coyGmcyL.js";import"./index-XF8itt-H.js";import"./mergeProps-0RucjqeH.js";import"./index-FITGoHty.js";import"./ThemeContext-Sm-iNANd.js";const l=o.createContext(null),u="DropdownMenu",i=e((({children:o,customRootClass:e,className:a,...i},d)=>{const c=t(e,u);return n(l.Provider,{value:{rootClass:c},children:n(r.Root,{ref:d,className:s(c&&`${c}-root`,a),...i,children:o})})}));i.displayName=u;const d=e((({children:e,className:t,...a},u)=>{const i=o.useContext(l);if(!i)return console.warn("DropdownMenuTrigger should be used in the DropdownMenuRoot"),null;const{rootClass:d}=i;return n(r.Trigger,{ref:u,className:s(d&&`${d}-trigger`,t),...a,children:e})}));d.displayName="DropdownMenuTrigger";const c=e((({children:e,className:t,...a},u)=>{const i=o.useContext(l);if(!i)return console.warn("DropdownMenuContent should be used in the DropdownMenuRoot"),null;const{rootClass:d}=i;return n(r.Content,{ref:u,className:s(d&&`${d}-content`,t),...a,children:e})}));c.displayName="DropdownMenuContent";const p=e((({children:e,...t},s)=>{const a=o.useContext(l);if(!a)return console.warn("DropdownMenuPortal should be used in the DropdownMenuRoot"),null;const{rootClass:u}=a;return n(r.Portal,{ref:s,...t,children:e})}));p.displayName="DropdownMenuPortal";const m=e((({children:e,className:t,label:a,...u},i)=>{const d=o.useContext(l);if(!d)return console.warn("DropdownMenuItem should be used in the DropdownMenuRoot"),null;const{rootClass:c}=d;return n(r.Item,{ref:i,className:s(c&&`${c}-item`,t),label:a,...u,children:e})}));m.displayName="DropdownMenuItem";const w=e((({children:e,className:t,...a},u)=>{const i=o.useContext(l);if(!i)return console.warn("DropdownMenuSub should be used in the DropdownMenuRoot"),null;const{rootClass:d}=i;return n(r.Sub,{ref:u,className:s(d&&`${d}-sub`,t),...a,children:e})}));w.displayName="DropdownMenuSub";const h=e((({children:e,className:t,...a},u)=>{const i=o.useContext(l);if(!i)return console.warn("DropdownMenuSubTrigger should be used in the DropdownMenuRoot"),null;const{rootClass:d}=i;return n(r.Trigger,{ref:u,className:s(d&&`${d}-sub-trigger`,t),...a,children:e})}));h.displayName="DropdownMenuSubTrigger";const g=e((({className:e,...r},t)=>{const s=o.useContext(l);if(!s)return console.warn("DropdownMenuSeparator should be used within DropdownMenuRoot"),null;const{rootClass:u}=s;return n(a,{ref:t,customRootClass:u,className:e,...r})}));g.displayName="DropdownMenuSeparator";const M=e(((o,e)=>(console.warn("Direct usage of DropdownMenu is not supported. Please use DropdownMenu.Root, DropdownMenu.Item instead."),null)));M.displayName="DropdownMenu",M.Root=i,M.Trigger=d,M.Content=c,M.Portal=p,M.Item=m,M.Sub=w,M.SubTrigger=h,M.Separator=g;export{c as Content,m as Item,p as Portal,i as Root,g as Separator,w as Sub,h as SubTrigger,d as Trigger,M as default};
|
package/dist/components/Em.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as
|
|
1
|
+
'use client';import{jsx as e}from"react/jsx-runtime";import s from"react";import{u as r,c as m}from"./useComponentClass-C0isGl1z.js";import"./ThemeContext-Sm-iNANd.js";const o=s.forwardRef((({children:s,customRootClass:o,className:t,...a},c)=>{const n=r(o,"Em");return e("em",{ref:c,className:m(n,t),...a,children:s})}));o.displayName="Em";export{o as default};
|
|
@@ -39,5 +39,5 @@ type FieldsetComponent = React.ForwardRefExoticComponent<FieldsetProps & React.R
|
|
|
39
39
|
};
|
|
40
40
|
declare const Fieldset: FieldsetComponent;
|
|
41
41
|
|
|
42
|
-
export { COMPONENT_NAME, Fieldset as default };
|
|
42
|
+
export { COMPONENT_NAME, FieldsetDescription as Description, FieldsetLegend as Legend, FieldsetMessage as Message, FieldsetRoot as Root, Fieldset as default };
|
|
43
43
|
export type { FieldsetDescriptionProps, FieldsetLegendProps, FieldsetMessageProps, FieldsetProps, FieldsetRootProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e}from"react/jsx-runtime";import{forwardRef as
|
|
1
|
+
'use client';import{jsx as e}from"react/jsx-runtime";import s,{forwardRef as a,useContext as i}from"react";import{u as t,c as d}from"./useComponentClass-C0isGl1z.js";import{c as l,a as o,b as r}from"./index-eAZUMNef.js";import"./ThemeContext-Sm-iNANd.js";const n=s.createContext({rootClass:"",invalid:!1}),c=e=>{const{registerDescription:a}=s.useContext(n);s.useEffect((()=>{if(a&&e)return a(e)}),[a,e])},m="Fieldset",f=a((({children:a,className:i="",customRootClass:c="",color:f="",disabled:p=!1,invalid:u=!1,size:v="",variant:g="","aria-describedby":N,...C},h)=>{const b=t(c,m),[y,x]=s.useState([]),j=s.useCallback((e=>(x((s=>s.includes(e)?s:[...s,e])),()=>x((s=>s.filter((s=>s!==e)))))),[]),D=[N,...y].filter(Boolean).join(" ")||void 0,F=s.useMemo((()=>({rootClass:b,invalid:u,registerDescription:j})),[b,u,j]),M=l("fieldset",{disabled:p,invalid:u,size:v,variant:g}),L=r(f),R=o(M,L,{"aria-invalid":u||void 0,"aria-describedby":D,"data-slot":"fieldset-root"});return e(n.Provider,{value:F,children:e("fieldset",{ref:h,className:d(b,i),...C,disabled:p,...R,children:a})})}));f.displayName=m;const p=a((({children:s,className:a,...t},l)=>{const{rootClass:o}=i(n);return e("legend",{ref:l,className:d(o&&`${o}-legend`,a),...t,"data-slot":"fieldset-legend",children:s})}));p.displayName="FieldsetLegend";const u=a((({children:a,className:t,id:l,...o},r)=>{const m=s.useId(),f=l??m;c(f);const{rootClass:p}=i(n);return e("p",{ref:r,id:f,className:d(p&&`${p}-description`,t),...o,"data-slot":"fieldset-description",children:a})}));u.displayName="FieldsetDescription";const v=a((({children:a,className:t,id:l,invalid:o,role:r,...m},f)=>{const p=s.useId(),u=l??p;c(u);const{rootClass:v,invalid:g}=i(n),N=o??g;return e("p",{ref:f,id:u,className:d(v&&`${v}-message`,t),...m,role:r??(N?"alert":void 0),"data-invalid":N?"":void 0,"data-slot":"fieldset-message",children:a})}));v.displayName="FieldsetMessage";const g="Fieldset",N=a(((s,a)=>e(f,{ref:a,...s})));N.displayName=g,N.Root=f,N.Legend=p,N.Description=u,N.Message=v;export{g as COMPONENT_NAME,u as Description,p as Legend,v as Message,f as Root,N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import
|
|
1
|
+
'use client';import e from"react";import{u as s,c as a}from"./useComponentClass-C0isGl1z.js";import"./ThemeContext-Sm-iNANd.js";const t=["h1","h2","h3","h4","h5","h6"],o=e.forwardRef((({children:o,as:r="h1",customRootClass:m="",className:c="",...h},n)=>{const l=t.includes(r)?r:"h1",i=s(m,l);return e.createElement(l,{className:a(i,c),ref:n,...h},o)}));o.displayName="Heading";export{o as default};
|
|
@@ -5,6 +5,7 @@ import Floater from '~/core/primitives/Floater';
|
|
|
5
5
|
|
|
6
6
|
type HoverCardRootProps = ComponentPropsWithoutRef<'div'> & {
|
|
7
7
|
open?: boolean;
|
|
8
|
+
defaultOpen?: boolean;
|
|
8
9
|
onOpenChange?: (open: boolean) => void;
|
|
9
10
|
customRootClass?: string;
|
|
10
11
|
openDelay?: number;
|
|
@@ -14,6 +15,7 @@ type HoverCardRootProps = ComponentPropsWithoutRef<'div'> & {
|
|
|
14
15
|
};
|
|
15
16
|
declare const HoverCardRoot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
16
17
|
open?: boolean;
|
|
18
|
+
defaultOpen?: boolean;
|
|
17
19
|
onOpenChange?: (open: boolean) => void;
|
|
18
20
|
customRootClass?: string;
|
|
19
21
|
openDelay?: number;
|
|
@@ -53,5 +55,5 @@ type HoverCardComponent = React.ForwardRefExoticComponent<HoverCardProps & React
|
|
|
53
55
|
};
|
|
54
56
|
declare const HoverCard: HoverCardComponent;
|
|
55
57
|
|
|
56
|
-
export { HoverCard as default };
|
|
58
|
+
export { HoverCardArrow as Arrow, HoverCardContent as Content, HoverCardPortal as Portal, HoverCardRoot as Root, HoverCardTrigger as Trigger, HoverCard as default };
|
|
57
59
|
export type { HoverCardArrowProps, HoverCardContentProps, HoverCardElement, HoverCardPortalProps, HoverCardProps, HoverCardRootProps, HoverCardTriggerProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{createContext as e,forwardRef as r,useRef as o,
|
|
1
|
+
'use client';import{createContext as e,forwardRef as r,useRef as o,useEffect as t,useContext as n,useState as s}from"react";import{jsx as a}from"react/jsx-runtime";import{F as l}from"./index-D8I-rMwz.js";import{u as i,c}from"./useComponentClass-C0isGl1z.js";import{u}from"./index-wRElCyvx.js";import{P as d}from"./index-XF8itt-H.js";import{T as m}from"./ThemeContext-Sm-iNANd.js";import{c as g}from"./index-eAZUMNef.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./mergeProps-0RucjqeH.js";const f=e({}),p="HoverCard",h=r((({children:e,open:r,defaultOpen:n=!1,onOpenChange:s,customRootClass:d="",className:m="",openDelay:g=100,closeDelay:h=200,collisionBoundary:y=null,collisionPadding:C=4,...v},R)=>{const P=i(d,p),w=i(d,`${p}-trigger`),x=o(null),N=(Array.isArray(y)?y:[y]).filter((e=>null!=e)),D={padding:C,boundary:N,altBoundary:N.length>0},[T,j]=u(r,n,s),H=o(T);H.current=T;const F=e=>{H.current!==e&&(H.current=e,j(e))},{refs:W,floatingStyles:A,context:E}=l.useFloating({open:T,onOpenChange:F,placement:"bottom",strategy:"fixed",middleware:[l.arrow({element:x}),l.offset(10),l.flip({mainAxis:!0,...D}),l.shift({...D})],whileElementsMounted:l.autoUpdate}),M=o(!1),O=o(null),B=o(null),L=l.useRole(E,{role:"dialog"}),b=l.useDismiss(E),{getReferenceProps:S}=l.useInteractions([b]),{getFloatingProps:$}=l.useInteractions([L,b]),z=()=>{O.current&&(clearTimeout(O.current),O.current=null),B.current&&(clearTimeout(B.current),B.current=null)};t((()=>z),[]);const I={isOpen:T,handleOpenChange:F,floatingRefs:W,floatingStyles:A,floatingContext:E,arrowRef:x,getReferenceProps:S,getFloatingProps:$,rootClass:P,rootTriggerClass:w,closeWithDelay:()=>{M.current=!0,z(),h<=0?F(!1):B.current=setTimeout((()=>{B.current=null,M.current&&F(!1)}),h)},closeWithoutDelay:()=>{z(),F(!1)},openWithDelay:()=>{M.current=!1,z(),g<=0?F(!0):O.current=setTimeout((()=>{O.current=null,F(!0)}),g)}};return a(f.Provider,{value:I,children:a("div",{ref:R,className:c(P&&`${P}-root`,m),"data-slot":"hover-card-root",...v,children:e})})}));h.displayName=p;const y=r((({children:e,className:r="",...o},t)=>{const{floatingRefs:s,getReferenceProps:i,closeWithDelay:u,openWithDelay:m,rootTriggerClass:g}=n(f),p=l.useMergeRefs([s.setReference,t]);return a(d.span,{ref:p,className:c(g,r),...i({"data-slot":"hover-card-trigger",onMouseEnter:m,onMouseLeave:u,onFocus:m,onBlur:u,...o}),children:e})}));y.displayName="HoverCardTrigger";const C=r((({children:e,rootElement:r,...o},i)=>{const c=n(m),[u,d]=s(null);return t((()=>{const e=(r&&"current"in r?r.current:r)||c?.portalRootRef.current||c?.containerRef.current||document.body;d(e)}),[r,c]),u?a(l.Portal,{root:u,...o,children:e}):null}));C.displayName="HoverCardPortal";const v=r((({children:e,className:r,size:o="",...s},i)=>{const{isOpen:u,floatingRefs:d,floatingStyles:m,getFloatingProps:p,rootClass:h,closeWithDelay:y,openWithDelay:C,closeWithoutDelay:v}=n(f);t((()=>{if(!u)return;const e=()=>v();return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}}),[v,u]);const R=l.useMergeRefs([d.setFloating,i]),P=g("hover-card",{size:o});return u?a("div",{className:c(h,r),ref:R,style:m,...P,...p({"data-slot":"hover-card-content",onPointerEnter:C,onPointerLeave:y,onFocus:C,onBlur:y,...s}),children:e}):null}));v.displayName="HoverCardContent";const R=r(((e,r)=>{const{floatingContext:o,arrowRef:t,rootClass:s}=n(f),i=l.useMergeRefs([t,r]);return a(l.Arrow,{className:c(s&&`${s}-arrow`),"data-slot":"hover-card-arrow",...e,context:o,ref:i})}));R.displayName="HoverCardArrow";const P=r(((e,r)=>(console.warn("Direct usage of HoverCard is not supported. Please use HoverCard.Root, HoverCard.Trigger, etc. instead."),null)));P.displayName="HoverCard",P.Root=h,P.Trigger=y,P.Portal=C,P.Content=v,P.Arrow=R;export{R as Arrow,v as Content,C as Portal,h as Root,y as Trigger,P as default};
|
package/dist/components/Kbd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{u as o
|
|
1
|
+
'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{u as o,c as r}from"./useComponentClass-C0isGl1z.js";import{c as t}from"./index-eAZUMNef.js";import"./ThemeContext-Sm-iNANd.js";const a=e((({children:e,customRootClass:a,className:m,size:i="",...c},n)=>{const d=o(a,"Kbd"),l=t("kbd",{size:i});return s("kbd",{ref:n,className:r(d,m),...l,...c,children:e})}));a.displayName="Kbd";export{a as default};
|
package/dist/components/Link.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as s}from"react/jsx-runtime";import r from"react";import{
|
|
1
|
+
'use client';import{jsx as s}from"react/jsx-runtime";import r from"react";import{u as e,c as o}from"./useComponentClass-C0isGl1z.js";import{a,b as i,c as m}from"./index-eAZUMNef.js";import{P as t}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-0RucjqeH.js";const n="Link",c=r.forwardRef((({children:r,href:c="#",customRootClass:l,className:f,size:p="",color:d="",asChild:h=!1,...j},u)=>{const C=e(l,n),x=a(m("link",{size:p}),i(d)),N=t.a;return s(N,{ref:u,asChild:h,href:c,className:o(C,f),...x,...j,children:r})}));c.displayName=n;export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e}from"react/jsx-runtime";import{forwardRef as t}from"react";import{c as o}from"./
|
|
1
|
+
'use client';import{jsx as e}from"react/jsx-runtime";import{forwardRef as t}from"react";import{u as i,c as o}from"./useComponentClass-C0isGl1z.js";import{P as a}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-0RucjqeH.js";const r="LiveRegion",s={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",whiteSpace:"nowrap",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",overflow:"hidden",pointerEvents:"none",userSelect:"none"},n=t((({children:t,customRootClass:n,className:l,politeness:p="polite",role:m=("assertive"===p?"alert":"status"),atomic:c=!0,relevant:d="additions text",busy:u,visuallyHidden:v=!0,style:h,...x},f)=>{const g=i(n,r),y=v?{...s,...h}:h;return e(a.div,{ref:f,role:m,"aria-live":p,"aria-atomic":c,"aria-relevant":d,"aria-busy":u,"data-slot":"live-region-root",className:o(g,l),style:y,...x,children:t})}));n.displayName=r;export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';import{jsx as e,Fragment as t}from"react/jsx-runtime";import n,{forwardRef as i,useState as o,useRef as s,useContext as l,useEffect as r}from"react";import{F as a}from"./index-D8I-rMwz.js";import{u as d}from"./index-wRElCyvx.js";import{u as c}from"./index-CBcSLg6O.js";import{P as u}from"./index-XF8itt-H.js";import{B as f}from"./index-FITGoHty.js";import{flushSync as m}from"react-dom";import{g}from"./floating-ui.react-2kiGB4sW.js";import{T as p}from"./ThemeContext-Sm-iNANd.js";const h=n.createContext(null),v=i((({children:t,className:i,open:r,onOpenChange:u,defaultOpen:f=!1,crossAxisOffset:m,mainAxisOffset:g,collisionBoundary:p=null,collisionPadding:v=4,loop:x=!0,placement:y="bottom-start",avoidCollision:P=!0,rtl:b=!1,isSubmenu:R=!1,...N},C)=>{const[I,O]=d(r,f,u);c(I);const[M,F]=o(null),[T,A]=o(void 0),k=s([]),w=s([]),S=s([]),j=s(null),D=a.useFloatingNodeId(),H=a.useFloatingParentNodeId(),B=R,L=m??0,E=void 0!==g?g:B?14:4,K=(Array.isArray(p)?p:[p]).filter((e=>null!=e)),$=K.length>0?{boundary:K,altBoundary:!0}:{},q={mainAxis:P,crossAxis:P&&!B,padding:v,...$},z={padding:v,crossAxis:!B,...$},U={padding:v,...$},{refs:W,floatingStyles:X,context:Y}=a.useFloating({open:I,nodeId:D,onOpenChange:O,strategy:"fixed",transform:!1,placement:B?"right-start":y,middleware:[a.offset({mainAxis:E,crossAxis:L}),...P?[a.flip(q),a.shift(z)]:[],...B?[]:[a.size({...U,apply({availableHeight:e,elements:t}){A(e),t.floating.style.maxHeight=`${e}px`}})]],whileElementsMounted:a.autoUpdate}),G=a.useListNavigation(Y,{listRef:w,activeIndex:M,nested:B,rtl:b,loop:x,onNavigate:F}),J=a.useClick(Y,{}),Q=a.useHover(Y,{enabled:B,delay:{open:75},handleClose:a.safePolygon({blockPointerEvents:!0})}),V=a.useDismiss(Y,{bubbles:B}),Z=a.useTypeahead(Y,{listRef:S,onMatch:I?F:void 0,activeIndex:M}),_=a.useRole(Y,{role:"menu"}),{getReferenceProps:ee,getFloatingProps:te,getItemProps:ne}=a.useInteractions([V,J,G,Q,Z,_]),ie=l(h),oe=n.useCallback((()=>B&&ie?ie.getRootTrigger():W.domReference.current),[B,ie,W.domReference]),se={isOpen:I,setIsOpen:O,refs:W,floatingStyles:X,maxHeight:T,getReferenceProps:ee,getFloatingProps:te,getItemProps:ne,activeIndex:M,setActiveIndex:F,listRef:k,elementsRef:w,labelsRef:S,virtualItemRef:j,nodeId:D,isNested:B,floatingContext:Y,rtl:b,getRootTrigger:oe},le=a.useFloatingTree();return n.useEffect((()=>{if(le)return le.events.on("click",e),()=>{le.events.off("click",e)};function e(){O(!1)}}),[le,D,H]),e("div",{ref:C,className:i,"data-tree":"true",...N,children:e(h.Provider,{value:se,children:e(a.FloatingNode,{id:D,children:t})})})}));v.displayName="MenuComponentRoot";const x=i((({children:t,className:n,open:i,onOpenChange:o,defaultOpen:s=!1,crossAxisOffset:l,mainAxisOffset:r,collisionBoundary:d,collisionPadding:c,...u},f)=>{const m=a.useFloatingTree(),g=e(v,{ref:f,className:n,open:i,onOpenChange:o,defaultOpen:s,crossAxisOffset:l,mainAxisOffset:r,collisionBoundary:d,collisionPadding:c,...u,children:t});return m?g:e(a.FloatingTree,{children:g})}));x.displayName="MenuPrimitiveRoot";const y=i((({children:t,className:i,label:o,disabled:s,asChild:l=!1,onSelect:r,...d},c)=>{const f=n.useContext(h),m=s?null:o,{ref:g,index:p}=a.useListItem({label:m}),v=a.useFloatingTree(),x=n.useCallback((e=>{"function"==typeof g?g(e):g&&(g.current=e),"function"==typeof c?c(e):c&&(c.current=e)}),[g,c]);if(!f)return null;const{activeIndex:y,getItemProps:P}=f,b=y===p,{onClick:R,onKeyDown:N,...C}=d;return e(u.button,{ref:x,tabIndex:b?0:-1,className:i,role:"menuitem","aria-disabled":!!s||void 0,"data-disabled":s?"":void 0,"data-highlighted":b&&!s?"":void 0,...P({...C,disabled:s,onClick(e){s||(R?.(e),e.defaultPrevented||(r?.(e),e.defaultPrevented||v?.events.emit("click")))},onKeyDown(e){N?.(e)}}),asChild:l,children:t})}));y.displayName="MenuPrimitiveItem";const P=i((({children:t,className:n,asChild:i,...o},s)=>{const r=l(h),{ref:d,index:c}=a.useListItem(),u=a.useMergeRefs([r?.refs.setReference,d,s]);if(!r)return null;const{activeIndex:m,getReferenceProps:g,isNested:p,isOpen:v}=r;return e(f,{ref:u,...g({...o,className:n,"data-state":v?"open":"closed",role:o.role??(p?"menuitem":void 0),tabIndex:p?m===c?0:-1:o.tabIndex}),asChild:i,children:t})}));P.displayName="MenuPrimitiveTrigger";const b=i((({children:n,className:i,initialFocus:o,focusManagerDisabled:s=!1,...r},d)=>{const c=l(h),u=a.useFloatingTree(),f=a.useMergeRefs([c?.refs.setFloating,d]);if(!c||!c.isOpen)return null;const{floatingStyles:p,getFloatingProps:v,elementsRef:x,labelsRef:y,isNested:P,floatingContext:b,maxHeight:R,getRootTrigger:N}=c,C=r.style,I={...r};delete I.style;const O={overflowY:"auto",overflowX:"hidden",maxHeight:void 0!==R?`${R}px`:void 0,WebkitOverflowScrolling:"touch",overscrollBehavior:"contain"};return e(t,{children:e(a.FloatingList,{elementsRef:x,labelsRef:y,children:e(a.FocusManager,{context:b,disabled:s,modal:!1,initialFocus:o??(P?-1:0),returnFocus:!P,children:e("div",{ref:f,...v({...I,className:i,"data-state":"open",onKeyDown:e=>{I.onKeyDown?.(e),(e=>{if("Tab"!==e.key||e.defaultPrevented)return;const t=N();if(!(t instanceof HTMLElement))return;e.preventDefault(),m((()=>{u?.events.emit("click")}));const n=!e.shiftKey;queueMicrotask((()=>{if(t.focus(),!n)return;const e=g(t);e instanceof HTMLElement&&e!==t&&e.focus()}))})(e)},style:{...C,...p}}),children:e("div",{style:O,children:n})})})})})}));b.displayName="MenuPrimitiveContent";const R=i((({children:t,className:n,open:i,onOpenChange:o,defaultOpen:s=!1,...r},a)=>{const d=l(h);return e(v,{ref:a,className:n,open:i,onOpenChange:o,defaultOpen:s,rtl:d&&d.rtl||!1,...r,isSubmenu:!0,children:t})}));R.displayName="MenuPrimitiveSub";const N=i((({children:t,...n},i)=>{const s=l(h),d=l(p),[c,u]=o(null);if(r((()=>{u(d?.portalRootRef.current??d?.containerRef.current??document.body)}),[d]),!s)return null;const{isOpen:f}=s;return f&&c?e(a.Portal,{root:c,...n,children:e("div",{ref:i,children:t})}):null}));N.displayName="MenuPrimitivePortal";const C=()=>(console.warn("Direct usage of MenuPrimitive is not supported. Please use MenuPrimitive.Root, MenuPrimitive.Item instead."),null);C.Root=x,C.Item=y,C.Trigger=P,C.Content=b,C.Sub=R,C.Portal=N;export{C as M,h as a};
|
|
@@ -1,65 +1,139 @@
|
|
|
1
|
+
import * as _floating_ui_react from '@floating-ui/react';
|
|
1
2
|
import * as React$1 from 'react';
|
|
2
3
|
import React__default, { ComponentPropsWithoutRef } from 'react';
|
|
3
|
-
import * as _floating_ui_react from '@floating-ui/react';
|
|
4
4
|
import Floater from '~/core/primitives/Floater';
|
|
5
5
|
import MenuPrimitive from '~/core/primitives/Menu/MenuPrimitive';
|
|
6
6
|
import Primitive from '~/core/primitives/Primitive';
|
|
7
7
|
|
|
8
|
-
type MenuPrimitiveItemProps = {
|
|
9
|
-
children: React__default.ReactNode;
|
|
10
|
-
className?: string;
|
|
11
|
-
label?: string;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
asChild?: boolean;
|
|
14
|
-
onSelect?: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type MenuPrimitiveTriggerProps = {
|
|
18
|
-
children: React__default.ReactNode;
|
|
19
|
-
className?: string;
|
|
20
|
-
asChild?: boolean;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
8
|
type MenubarRootProps = {
|
|
24
9
|
children: React__default.ReactNode;
|
|
25
10
|
customRootClass?: string;
|
|
26
11
|
className?: string;
|
|
27
12
|
} & ComponentPropsWithoutRef<typeof Floater.Composite>;
|
|
28
|
-
|
|
29
|
-
type MenubarMenuProps = {
|
|
13
|
+
declare const MenubarRoot: React__default.ForwardRefExoticComponent<{
|
|
30
14
|
children: React__default.ReactNode;
|
|
15
|
+
customRootClass?: string;
|
|
31
16
|
className?: string;
|
|
32
|
-
} &
|
|
17
|
+
} & Omit<Omit<React__default.HTMLProps<HTMLElement> & _floating_ui_react.CompositeProps, "ref"> & React__default.RefAttributes<HTMLElement>, "ref"> & React__default.RefAttributes<HTMLElement>>;
|
|
33
18
|
|
|
34
19
|
type MenubarTriggerProps = {
|
|
35
20
|
children: React__default.ReactNode;
|
|
36
21
|
className?: string;
|
|
37
22
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Trigger>;
|
|
23
|
+
declare const MenubarTrigger: React__default.ForwardRefExoticComponent<{
|
|
24
|
+
children: React__default.ReactNode;
|
|
25
|
+
className?: string;
|
|
26
|
+
} & Omit<{
|
|
27
|
+
children: React__default.ReactNode;
|
|
28
|
+
className?: string;
|
|
29
|
+
asChild?: boolean;
|
|
30
|
+
} & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
|
|
38
31
|
|
|
39
32
|
type MenubarContentProps = {
|
|
40
33
|
children: React__default.ReactNode;
|
|
41
34
|
className?: string;
|
|
42
35
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;
|
|
36
|
+
declare const MenubarContent: React__default.ForwardRefExoticComponent<{
|
|
37
|
+
children: React__default.ReactNode;
|
|
38
|
+
className?: string;
|
|
39
|
+
} & Omit<{
|
|
40
|
+
children: React__default.ReactNode;
|
|
41
|
+
className?: string;
|
|
42
|
+
initialFocus?: number;
|
|
43
|
+
focusManagerDisabled?: boolean;
|
|
44
|
+
} & React__default.HTMLAttributes<HTMLDivElement> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
|
|
43
45
|
|
|
44
46
|
type MenubarPortalProps = {
|
|
45
47
|
children: React__default.ReactNode;
|
|
46
48
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
|
|
49
|
+
declare const MenubarPortal: React__default.ForwardRefExoticComponent<{
|
|
50
|
+
children: React__default.ReactNode;
|
|
51
|
+
} & Omit<{
|
|
52
|
+
children: React__default.ReactNode;
|
|
53
|
+
} & _floating_ui_react.FloatingPortalProps & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
|
|
47
54
|
|
|
48
55
|
type MenubarItemProps = {
|
|
49
56
|
children: React__default.ReactNode;
|
|
50
57
|
className?: string;
|
|
51
58
|
label?: string;
|
|
52
59
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;
|
|
60
|
+
declare const MenubarItem: React__default.ForwardRefExoticComponent<{
|
|
61
|
+
children: React__default.ReactNode;
|
|
62
|
+
className?: string;
|
|
63
|
+
label?: string;
|
|
64
|
+
} & Omit<{
|
|
65
|
+
children: React__default.ReactNode;
|
|
66
|
+
className?: string;
|
|
67
|
+
label?: string;
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
asChild?: boolean;
|
|
70
|
+
onSelect?: (event: React__default.MouseEvent<HTMLButtonElement>) => void;
|
|
71
|
+
} & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children" | "onSelect" | "disabled"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
|
|
53
72
|
|
|
54
73
|
type MenubarSubProps = {
|
|
55
74
|
children: React__default.ReactNode;
|
|
56
75
|
className?: string;
|
|
57
76
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Sub>;
|
|
77
|
+
declare const MenubarSub: React__default.ForwardRefExoticComponent<{
|
|
78
|
+
children: React__default.ReactNode;
|
|
79
|
+
className?: string;
|
|
80
|
+
} & Omit<{
|
|
81
|
+
children: React__default.ReactNode;
|
|
82
|
+
className?: string;
|
|
83
|
+
open?: boolean;
|
|
84
|
+
onOpenChange?: (open: boolean) => void;
|
|
85
|
+
defaultOpen?: boolean;
|
|
86
|
+
} & {
|
|
87
|
+
children: React__default.ReactNode;
|
|
88
|
+
className?: string;
|
|
89
|
+
open?: boolean;
|
|
90
|
+
onOpenChange?: (open: boolean) => void;
|
|
91
|
+
defaultOpen?: boolean;
|
|
92
|
+
crossAxisOffset?: number;
|
|
93
|
+
mainAxisOffset?: number;
|
|
94
|
+
collisionBoundary?: Element | null | Array<Element | null>;
|
|
95
|
+
collisionPadding?: number;
|
|
96
|
+
loop?: boolean;
|
|
97
|
+
placement?: "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
|
|
98
|
+
avoidCollision?: boolean;
|
|
99
|
+
rtl?: boolean;
|
|
100
|
+
} & Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
|
|
58
101
|
|
|
59
102
|
type MenubarSubTriggerProps = {
|
|
60
103
|
children: React__default.ReactNode;
|
|
61
104
|
className?: string;
|
|
62
105
|
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Trigger>;
|
|
106
|
+
declare const MenubarSubTrigger: React__default.ForwardRefExoticComponent<{
|
|
107
|
+
children: React__default.ReactNode;
|
|
108
|
+
className?: string;
|
|
109
|
+
} & Omit<{
|
|
110
|
+
children: React__default.ReactNode;
|
|
111
|
+
className?: string;
|
|
112
|
+
asChild?: boolean;
|
|
113
|
+
} & Omit<Omit<React__default.DetailedHTMLProps<React__default.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React__default.RefAttributes<HTMLButtonElement>, "ref"> & React__default.RefAttributes<HTMLButtonElement>>;
|
|
114
|
+
|
|
115
|
+
type MenubarMenuProps = {
|
|
116
|
+
children: React__default.ReactNode;
|
|
117
|
+
className?: string;
|
|
118
|
+
} & ComponentPropsWithoutRef<typeof MenuPrimitive.Root>;
|
|
119
|
+
declare const MenubarMenu: React__default.ForwardRefExoticComponent<{
|
|
120
|
+
children: React__default.ReactNode;
|
|
121
|
+
className?: string;
|
|
122
|
+
} & Omit<{
|
|
123
|
+
children: React__default.ReactNode;
|
|
124
|
+
className?: string;
|
|
125
|
+
open?: boolean;
|
|
126
|
+
onOpenChange?: (open: boolean) => void;
|
|
127
|
+
defaultOpen?: boolean;
|
|
128
|
+
crossAxisOffset?: number;
|
|
129
|
+
mainAxisOffset?: number;
|
|
130
|
+
collisionBoundary?: Element | null | Array<Element | null>;
|
|
131
|
+
collisionPadding?: number;
|
|
132
|
+
loop?: boolean;
|
|
133
|
+
placement?: "top" | "top-start" | "top-end" | "right" | "right-start" | "right-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end";
|
|
134
|
+
avoidCollision?: boolean;
|
|
135
|
+
rtl?: boolean;
|
|
136
|
+
} & Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
|
|
63
137
|
|
|
64
138
|
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
65
139
|
type SeparatorProps = {
|
|
@@ -73,6 +147,7 @@ declare const Separator: React__default.ForwardRefExoticComponent<SeparatorProps
|
|
|
73
147
|
type MenubarSeparatorProps = {
|
|
74
148
|
className?: string;
|
|
75
149
|
} & ComponentPropsWithoutRef<typeof Separator>;
|
|
150
|
+
declare const MenubarSeparator: React__default.ForwardRefExoticComponent<MenubarSeparatorProps & React__default.RefAttributes<HTMLElement>>;
|
|
76
151
|
|
|
77
152
|
declare const Menubar: {
|
|
78
153
|
(): null;
|
|
@@ -102,7 +177,11 @@ declare const Menubar: {
|
|
|
102
177
|
Trigger: React$1.ForwardRefExoticComponent<{
|
|
103
178
|
children: React.ReactNode;
|
|
104
179
|
className?: string;
|
|
105
|
-
} & Omit<
|
|
180
|
+
} & Omit<{
|
|
181
|
+
children: React.ReactNode;
|
|
182
|
+
className?: string;
|
|
183
|
+
asChild?: boolean;
|
|
184
|
+
} & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
106
185
|
Content: React$1.ForwardRefExoticComponent<{
|
|
107
186
|
children: React.ReactNode;
|
|
108
187
|
className?: string;
|
|
@@ -121,7 +200,14 @@ declare const Menubar: {
|
|
|
121
200
|
children: React.ReactNode;
|
|
122
201
|
className?: string;
|
|
123
202
|
label?: string;
|
|
124
|
-
} & Omit<
|
|
203
|
+
} & Omit<{
|
|
204
|
+
children: React.ReactNode;
|
|
205
|
+
className?: string;
|
|
206
|
+
label?: string;
|
|
207
|
+
disabled?: boolean;
|
|
208
|
+
asChild?: boolean;
|
|
209
|
+
onSelect?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
210
|
+
} & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children" | "onSelect" | "disabled"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
125
211
|
Sub: React$1.ForwardRefExoticComponent<{
|
|
126
212
|
children: React.ReactNode;
|
|
127
213
|
className?: string;
|
|
@@ -149,9 +235,13 @@ declare const Menubar: {
|
|
|
149
235
|
SubTrigger: React$1.ForwardRefExoticComponent<{
|
|
150
236
|
children: React.ReactNode;
|
|
151
237
|
className?: string;
|
|
152
|
-
} & Omit<
|
|
238
|
+
} & Omit<{
|
|
239
|
+
children: React.ReactNode;
|
|
240
|
+
className?: string;
|
|
241
|
+
asChild?: boolean;
|
|
242
|
+
} & Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "children"> & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
153
243
|
Separator: React$1.ForwardRefExoticComponent<MenubarSeparatorProps & React$1.RefAttributes<HTMLElement>>;
|
|
154
244
|
};
|
|
155
245
|
|
|
156
|
-
export { Menubar as default };
|
|
246
|
+
export { MenubarContent as Content, MenubarItem as Item, MenubarMenu as Menu, MenubarPortal as Portal, MenubarRoot as Root, MenubarSeparator as Separator, MenubarSub as Sub, MenubarSubTrigger as SubTrigger, MenubarTrigger as Trigger, Menubar as default };
|
|
157
247
|
export type { MenubarContentProps, MenubarItemProps, MenubarMenuProps, MenubarPortalProps, MenubarRootProps, MenubarSeparatorProps, MenubarSubProps, MenubarSubTriggerProps, MenubarTriggerProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e}from"react/jsx-runtime";import t,{forwardRef as n}from"react";import{u as r
|
|
1
|
+
'use client';import{jsx as e}from"react/jsx-runtime";import t,{forwardRef as n}from"react";import{u as r,c as o}from"./useComponentClass-C0isGl1z.js";import{F as a}from"./index-D8I-rMwz.js";import{M as s}from"./MenuPrimitive-D9VMz2TZ.js";import u from"./Separator.js";import"./ThemeContext-Sm-iNANd.js";import"./floating-ui.react-2kiGB4sW.js";import"react-dom";import"./index-wRElCyvx.js";import"./index-CBcSLg6O.js";import"./index-CbNq68zs.js";import"./documentOverlayOpen-coyGmcyL.js";import"./index-XF8itt-H.js";import"./mergeProps-0RucjqeH.js";import"./index-FITGoHty.js";const i=t.createContext(null),l=n((({children:n,customRootClass:s,className:u,dir:l,loop:c,rtl:d,onKeyDown:m,...p},b)=>{const f=r(s,"Menubar"),[g,h]=t.useState([]),[C,M]=t.useState(0),[I,N]=t.useState(),v=t.useRef({}),x=t.useCallback((e=>[...e].sort(((e,t)=>{const n=v.current[e.id],r=v.current[t.id];if(!n||!r)return 0;const o=n.compareDocumentPosition(r);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0}))),[]),w=t.useCallback(((e,t="closed")=>{h((n=>{const r=n.find((t=>t.id===e));return r?r.state===t?n:n.map((n=>n.id===e?{...n,state:t}:n)):x([...n,{id:e,state:t}])}))}),[x]),y=t.useCallback((e=>{h((t=>t.some((t=>t.id===e))?t.filter((t=>t.id!==e)):t))}),[]),S=t.useCallback(((e,t)=>{"open"===t&&N(void 0),h((n=>n.map((n=>n.id===e?{...n,state:t}:n))))}),[]),P=t.useCallback(((e,t)=>{t?v.current[e]=t:delete v.current[e]}),[]),k=t.useCallback((e=>{if(e===C)return;const t=g[C],n=g[e];if(t&&S(t.id,"closed"),n){const e="open"===t?.state;S(n.id,e?"open":"closed"),e&&N(-1)}M(e)}),[C,g,S]),R=t.useCallback((e=>{const t=g[e];t&&(N(-1),h((t=>t.map(((t,n)=>({...t,state:n===e?"open":"closed"}))))),M(e),v.current[t.id]?.focus())}),[g]),T=t.useCallback((e=>{if(0===g.length)return;const t=C>=0?C:g.findIndex((e=>"open"===e.state));-1!==t&&R((t+e+g.length)%g.length)}),[C,g,R]),O=t.useCallback((e=>{const t=g.findIndex((t=>t.id===e));if(-1===t)return;g.some((t=>t.id!==e&&"open"===t.state))&&"open"!==g[t].state&&R(t)}),[g,R]),j=t.useCallback((e=>{const t=g.findIndex((t=>t.id===e));-1!==t&&M(t)}),[g]),D=t.useCallback((e=>{if(m?.(e),e.defaultPrevented)return;if("Home"!==e.key&&"End"!==e.key)return;if(!Object.values(v.current).includes(e.target))return;const t="Home"===e.key?0:g.length-1,n=g[t];n&&(e.preventDefault(),k(t),v.current[n.id]?.focus())}),[k,g,m]),A=t.useMemo((()=>({rootClass:f,registerItem:w,unregisterItem:y,items:g,updateItemState:S,updateItemTrigger:P,navigateMenu:T,openMenuOnHover:O,activeIndex:C,setActiveItem:j,contentInitialFocus:I})),[f,w,y,g,S,P,T,O,C,j,I]);return e(i.Provider,{value:A,children:e(a.Composite,{ref:b,role:"menubar",className:o(f&&`${f}-root`,u),dir:l,loop:c,rtl:d??"rtl"===l,orientation:"horizontal",...p,activeIndex:C,onNavigate:k,onKeyDown:D,children:n})})}));l.displayName="MenubarRoot";const c=t.createContext(null),d=n((({children:n,className:r,onFocus:u,onPointerEnter:l,...d},m)=>{const p=t.useContext(i),b=t.useContext(c);if(!p)return console.warn("MenubarTrigger should be used in the MenubarRoot"),null;const{rootClass:f,updateItemTrigger:g,items:h,activeIndex:C,setActiveItem:M,openMenuOnHover:I}=p;if(!b)return console.warn("MenubarTrigger should be used in the MenubarMenu"),null;const{id:N,isOpen:v}=b,x=t.useCallback((e=>{g(N,e),"function"==typeof m?m(e):m&&(m.current=e)}),[N,m,g]),w=h.findIndex((e=>e.id===N)),y=w===C||0===w&&(C<0||C>=h.length),S=e=>{u?.(e),M(N)},P=e=>{l?.(e),e.defaultPrevented||"touch"===e.pointerType||I(N)};return e(a.CompositeItem,{render:()=>e(s.Trigger,{ref:x,className:o(f&&`${f}-trigger`,r),role:"menuitem","aria-haspopup":"menu","aria-expanded":v,tabIndex:y?0:-1,"data-state":v?"open":"closed","data-active":v,onFocus:S,onPointerEnter:P,...d,children:n})})}));d.displayName="MenubarTrigger";const m=new Set(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"]),p=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarContent should be used in the MenubarRoot"),null;const{rootClass:c,navigateMenu:d,contentInitialFocus:p}=l,{onKeyDown:b,...f}=a,g=t.useCallback((e=>{"function"==typeof u?u(e):u&&(u.current=e)}),[u]);return e(s.Content,{ref:g,role:"menu","aria-orientation":"vertical",className:o(c&&`${c}-content`,r),initialFocus:p,onKeyDown:e=>{if(b?.(e),m.has(e.key)&&e.stopPropagation(),!e.defaultPrevented)return"ArrowLeft"===e.key?(e.preventDefault(),void d(-1)):void("ArrowRight"===e.key&&(e.preventDefault(),d(1)))},...f,children:n})}));p.displayName="MenubarContent";const b=n((({children:n,...r},o)=>t.useContext(i)?e(s.Portal,{ref:o,...r,children:n}):(console.warn("MenubarPortal should be used in the MenubarRoot"),null)));b.displayName="MenubarPortal";const f=n((({children:n,className:r,label:a,...u},l)=>{const c=t.useContext(i);if(!c)return console.warn("MenubarItem should be used in the MenubarRoot"),null;const{rootClass:d}=c;return e(s.Item,{ref:l,role:"menuitem",className:o(d&&`${d}-item`,r),label:a,...u,children:n})}));f.displayName="MenubarItem";const g=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarSub should be used in the MenubarRoot"),null;const{rootClass:c}=l;return e(s.Sub,{ref:u,role:"none",className:o(c&&`${c}-sub`,r),...a,children:n})}));g.displayName="MenubarSub";const h=n((({children:n,className:r,...a},u)=>{const l=t.useContext(i);if(!l)return console.warn("MenubarSubTrigger should be used in the MenubarRoot"),null;const{rootClass:c}=l;return e(s.Trigger,{ref:u,role:"menuitem","aria-haspopup":"menu",className:o(c&&`${c}-sub-trigger`,r),...a,children:n})}));h.displayName="MenubarSubTrigger";const C=n((({children:n,className:r,onOpenChange:u,...l},d)=>{const m=t.useContext(i),p=a.useId(),b=t.useId(),f=p??b;if(!m)return console.warn("MenubarMenu should be used in the MenubarRoot"),null;const{rootClass:g,registerItem:h,unregisterItem:C,items:M,updateItemState:I}=m;t.useEffect((()=>{if(f)return h(f),()=>C(f)}),[f]);const N="open"===M.find((e=>e.id===f))?.state;return e(s.Root,{ref:d,role:"none",className:o(g&&`${g}-menu`,r),"data-id":f,"data-active":N,open:N,onOpenChange:e=>{f&&I(f,e?"open":"closed"),u?.(e)},...l,children:e(c.Provider,{value:{id:f,isOpen:N},children:n})})}));C.displayName="MenubarMenu";const M=n((({className:n,...r},o)=>{const a=t.useContext(i);if(!a)return console.warn("MenubarSeparator should be used within MenubarRoot"),null;const{rootClass:s}=a;return e(u,{ref:o,customRootClass:s,className:n,...r})}));M.displayName="MenubarSeparator";const I=()=>(console.warn("Direct usage of Menubar is not supported. Please use Menubar.Root, Menubar.Item instead."),null);I.Root=l,I.Menu=C,I.Trigger=d,I.Content=p,I.Portal=b,I.Item=f,I.Sub=g,I.SubTrigger=h,I.Separator=M;export{p as Content,f as Item,C as Menu,b as Portal,l as Root,M as Separator,g as Sub,h as SubTrigger,d as Trigger,I as default};
|