@cloudoperators/juno-ui-components 2.30.0 → 2.31.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/build/Code.component-CIzbcpEn.js +1 -0
- package/build/Code.js +1 -1
- package/build/ComboBox.component-Bv_9h8jb.js +1 -0
- package/build/ComboBox.js +1 -1
- package/build/ComboBoxOption.js +1 -1
- package/build/{ContextMenu.component-DyB2n7er.js → ContextMenu.component-DH-m8O-z.js} +1 -1
- package/build/ContextMenu.js +1 -1
- package/build/{DateTimePicker.component-C2tX_eji.js → DateTimePicker.component-BMkIzxY0.js} +3 -3
- package/build/DateTimePicker.js +1 -1
- package/build/{Pagination.component-6CTFGCb-.js → Pagination.component-D7vw3gPl.js} +1 -1
- package/build/Pagination.js +1 -1
- package/build/{Select.component-BfgCOLpX.js → Select.component-DNPTrdQs.js} +1 -1
- package/build/{Select.component-BpoPsXOT.js → Select.component-zF_9SDqa.js} +1 -1
- package/build/Select.js +1 -1
- package/build/SelectOption.js +1 -1
- package/build/{SelectRow.component-D3y6s-A2.js → SelectRow.component-D0F2VY1t.js} +1 -1
- package/build/SelectRow.js +1 -1
- package/build/{Tooltip.component-D23JdNpf.js → Tooltip.component-pZQW88UK.js} +1 -1
- package/build/Tooltip.js +1 -1
- package/build/{TooltipContent.component-A3crwGIj.js → TooltipContent.component-Cfo0dBzg.js} +1 -1
- package/build/TooltipContent.js +1 -1
- package/build/{TooltipTrigger.component-D5levpwF.js → TooltipTrigger.component-Cp9J4Mh7.js} +1 -1
- package/build/TooltipTrigger.js +1 -1
- package/build/{ComboBox.component-BpssbOYC.js → combobox-JmdrroKh.js} +2 -116
- package/build/components/Code/Code.component.d.ts +11 -0
- package/build/components/Code/Code.component.d.ts.map +1 -0
- package/build/components/Code/index.d.ts +2 -0
- package/build/components/Code/index.d.ts.map +1 -0
- package/build/components/ComboBox/ComboBox.component.d.ts +69 -0
- package/build/components/ComboBox/ComboBox.component.d.ts.map +1 -0
- package/build/components/ComboBox/index.d.ts +2 -0
- package/build/components/ComboBox/index.d.ts.map +1 -0
- package/build/components/ComboBoxOption/ComboBoxOption.component.d.ts +15 -0
- package/build/components/ComboBoxOption/ComboBoxOption.component.d.ts.map +1 -0
- package/build/components/ComboBoxOption/index.d.ts +2 -0
- package/build/components/ComboBoxOption/index.d.ts.map +1 -0
- package/build/{floating-ui.react-dom-DmTNS6Kr.js → floating-ui.react-dom-Bx8TUz-v.js} +1 -1
- package/build/{headlessui-float-lyiwAWIX.js → headlessui-float-BQHnLFxQ.js} +1 -1
- package/build/index.js +154 -2
- package/package.json +1 -1
- package/build/Code.component-w7x4oiMK.js +0 -4
- package/build/ComboBoxOption.component-D7XdDUph.js +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as __assign,_ as __rest}from"./tslib.es6-bjGg6Bxl.js";import*as React from"react";import React__default,{useLayoutEffect,useEffect,useRef,useState}from"react";import{g as getOverflowAncestors,u as useFloating$1,c as autoUpdate,o as offset,f as flip,b as shift}from"./floating-ui.react-dom-DmTNS6Kr.js";import"react-dom";function getNodeName(a){return isNode(a)?(a.nodeName||"").toLowerCase():"#document"}function getWindow(a){var b;return(null==a||null==(b=a.ownerDocument)?void 0:b.defaultView)||window}function getDocumentElement(a){var b;return null==(b=(isNode(a)?a.ownerDocument:a.document)||window.document)?void 0:b.documentElement}function isNode(a){return a instanceof Node||a instanceof getWindow(a).Node}function isElement(a){return a instanceof Element||a instanceof getWindow(a).Element}function isHTMLElement(a){return a instanceof HTMLElement||a instanceof getWindow(a).HTMLElement}function isShadowRoot(a){return"undefined"!=typeof ShadowRoot&&(a instanceof ShadowRoot||a instanceof getWindow(a).ShadowRoot)}function isLastTraversableNode(a){return["html","body","#document"].includes(getNodeName(a))}function getComputedStyle(a){return getWindow(a).getComputedStyle(a)}function getParentNode(a){if("html"===getNodeName(a))return a;const b=a.assignedSlot||a.parentNode||isShadowRoot(a)&&a.host||getDocumentElement(a);return isShadowRoot(b)?b.host:b}function activeElement(a){let b=a.activeElement;for(;null!=(null==(c=b)||null==(d=c.shadowRoot)?void 0:d.activeElement);){var c,d;b=b.shadowRoot.activeElement}return b}function contains(a,b){if(!a||!b)return!1;const c=b.getRootNode&&b.getRootNode();if(a.contains(b))return!0;if(c&&isShadowRoot(c))for(let c=b;c;){if(a===c)return!0;c=c.parentNode||c.host}return!1}function getPlatform(){const a=navigator.userAgentData;return null!=a&&a.platform?a.platform:navigator.platform}function getUserAgent(){const a=navigator.userAgentData;return a&&Array.isArray(a.brands)?a.brands.map(a=>{let{brand:b,version:c}=a;return b+"/"+c}).join(" "):navigator.userAgent}function isVirtualClick(a){if(0===a.mozInputSource&&a.isTrusted)return!0;const b=/Android/i;return(b.test(getPlatform())||b.test(getUserAgent()))&&a.pointerType?"click"===a.type&&1===a.buttons:0===a.detail&&!a.pointerType}function isVirtualPointerEvent(a){return 0===a.width&&0===a.height||1===a.width&&1===a.height&&0===a.pressure&&0===a.detail&&"mouse"!==a.pointerType||1>a.width&&1>a.height&&0===a.pressure&&0===a.detail}function isMouseLikePointerType(a,b){const c=["mouse","pen"];return b||c.push("",void 0),c.includes(a)}function isReactEvent(a){return"nativeEvent"in a}function isRootElement(a){return a.matches("html,body")}function getDocument(a){return(null==a?void 0:a.ownerDocument)||document}function isEventTargetWithin(a,b){if(null==b)return!1;if("composedPath"in a)return a.composedPath().includes(b);const c=a;return null!=c.target&&b.contains(c.target)}function getTarget(a){return"composedPath"in a?a.composedPath()[0]:a.target}const TYPEABLE_SELECTOR="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function isTypeableElement(a){return isHTMLElement(a)&&a.matches(TYPEABLE_SELECTOR)}function useMergeRefs(a){return React.useMemo(()=>a.every(a=>null==a)?null:b=>{a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})},a)}var index="undefined"==typeof document?useEffect:useLayoutEffect;let serverHandoffComplete=!1,count=0;const genId=()=>"floating-ui-"+count++;function useFloatingId(){const[a,b]=React.useState(()=>serverHandoffComplete?genId():void 0);return index(()=>{null==a&&b(genId())},[]),React.useEffect(()=>{serverHandoffComplete||(serverHandoffComplete=!0)},[]),a}const useReactId=React["useId".toString()],useId=useReactId||useFloatingId;function createPubSub(){const a=new Map;return{emit(b,c){var d;null==(d=a.get(b))?void 0:d.forEach(a=>a(c))},on(b,c){a.set(b,[...(a.get(b)||[]),c])},off(b,c){var d;a.set(b,(null==(d=a.get(b))?void 0:d.filter(a=>a!==c))||[])}}}const FloatingNodeContext=React.createContext(null),FloatingTreeContext=React.createContext(null),useFloatingParentNodeId=()=>{var a;return(null==(a=React.useContext(FloatingNodeContext))?void 0:a.id)||null},useFloatingTree=()=>React.useContext(FloatingTreeContext);function createAttribute(a){return"data-floating-ui-"+a}function useLatestRef(a){const b=useRef(a);return index(()=>{b.current=a}),b}const safePolygonIdentifier=createAttribute("safe-polygon");function getDelay(a,b,c){return c&&!isMouseLikePointerType(c)?0:"number"==typeof a?a:null==a?void 0:a[b]}function useHover(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,events:f,elements:{domReference:h,floating:i},refs:g}=a,{enabled:j=!0,delay:k=0,handleClose:l=null,mouseOnly:m=!1,restMs:n=0,move:o=!0}=b,p=useFloatingTree(),q=useFloatingParentNodeId(),r=useLatestRef(l),s=useLatestRef(k),t=React.useRef(),u=React.useRef(),v=React.useRef(),w=React.useRef(),x=React.useRef(!0),y=React.useRef(!1),z=React.useRef(()=>{}),A=React.useCallback(()=>{var a;const b=null==(a=e.current.openEvent)?void 0:a.type;return(null==b?void 0:b.includes("mouse"))&&"mousedown"!==b},[e]);React.useEffect(()=>{function a(){clearTimeout(u.current),clearTimeout(w.current),x.current=!0}if(j)return f.on("dismiss",a),()=>{f.off("dismiss",a)}},[j,f]),React.useEffect(()=>{function a(a){A()&&d(!1,a)}if(!j||!r.current||!c)return;const b=getDocument(i).documentElement;return b.addEventListener("mouseleave",a),()=>{b.removeEventListener("mouseleave",a)}},[i,c,d,j,r,e,A]);const B=React.useCallback(function(a,b){void 0===b&&(b=!0);const c=getDelay(s.current,"close",t.current);c&&!v.current?(clearTimeout(u.current),u.current=setTimeout(()=>d(!1,a),c)):b&&(clearTimeout(u.current),d(!1,a))},[s,d]),C=React.useCallback(()=>{z.current(),v.current=void 0},[]),D=React.useCallback(()=>{if(y.current){const a=getDocument(g.floating.current).body;a.style.pointerEvents="",a.removeAttribute(safePolygonIdentifier),y.current=!1}},[g]);return React.useEffect(()=>{function b(){return!!e.current.openEvent&&["click","mousedown"].includes(e.current.openEvent.type)}function f(a){if(clearTimeout(u.current),x.current=!1,!(m&&!isMouseLikePointerType(t.current)||0<n&&0===getDelay(s.current,"open"))){const b=getDelay(s.current,"open",t.current);b?u.current=setTimeout(()=>{d(!0,a)},b):d(!0,a)}}function g(d){if(b())return;z.current();const e=getDocument(i);if(clearTimeout(w.current),r.current){c||clearTimeout(u.current),v.current=r.current({...a,tree:p,x:d.clientX,y:d.clientY,onClose(){D(),C(),B(d)}});const b=v.current;return e.addEventListener("mousemove",b),void(z.current=()=>{e.removeEventListener("mousemove",b)})}const f="touch"!==t.current||!contains(i,d.relatedTarget);f&&B(d)}function k(c){b()||(null==r.current?void 0:r.current({...a,tree:p,x:c.clientX,y:c.clientY,onClose(){D(),C(),B(c)}})(c))}if(j&&isElement(h)){const a=h;return c&&a.addEventListener("mouseleave",k),null==i?void 0:i.addEventListener("mouseleave",k),o&&a.addEventListener("mousemove",f,{once:!0}),a.addEventListener("mouseenter",f),a.addEventListener("mouseleave",g),()=>{c&&a.removeEventListener("mouseleave",k),null==i?void 0:i.removeEventListener("mouseleave",k),o&&a.removeEventListener("mousemove",f),a.removeEventListener("mouseenter",f),a.removeEventListener("mouseleave",g)}}},[h,i,j,a,m,n,o,B,C,D,d,c,p,s,r,e]),index(()=>{var a;if(j&&c&&null!=(a=r.current)&&a.__options.blockPointerEvents&&A()){const a=getDocument(i).body;if(a.setAttribute(safePolygonIdentifier,""),a.style.pointerEvents="none",y.current=!0,isElement(h)&&i){var b,d;const a=h,c=null==p||null==(b=p.nodesRef.current.find(a=>a.id===q))||null==(d=b.context)?void 0:d.elements.floating;return c&&(c.style.pointerEvents=""),a.style.pointerEvents="auto",i.style.pointerEvents="auto",()=>{a.style.pointerEvents="",i.style.pointerEvents=""}}}},[j,c,q,i,h,p,r,e,A]),index(()=>{c||(t.current=void 0,C(),D())},[c,C,D]),React.useEffect(()=>()=>{C(),clearTimeout(u.current),clearTimeout(w.current),D()},[j,h,C,D]),React.useMemo(()=>{function a(a){t.current=a.pointerType}return j?{reference:{onPointerDown:a,onPointerEnter:a,onMouseMove(a){c||0===n||(clearTimeout(w.current),w.current=setTimeout(()=>{x.current||d(!0,a.nativeEvent)},n))}},floating:{onMouseEnter(){clearTimeout(u.current)},onMouseLeave(a){f.emit("dismiss",{type:"mouseLeave",data:{returnFocus:!1}}),B(a.nativeEvent,!1)}}}:{}},[f,j,n,c,d,B])}function getChildren(a,b){let c=a.filter(a=>{var c;return a.parentId===b&&(null==(c=a.context)?void 0:c.open)}),d=c;for(;d.length;)d=a.filter(a=>{var b;return null==(b=d)?void 0:b.some(b=>{var c;return a.parentId===b.id&&(null==(c=a.context)?void 0:c.open)})}),c=c.concat(d);return c}function isButtonTarget(a){return isHTMLElement(a.target)&&"BUTTON"===a.target.tagName}function isSpaceIgnored(a){return isTypeableElement(a)}function useClick(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,elements:{domReference:f}}=a,{enabled:g=!0,event:h="click",toggle:i=!0,ignoreMouse:j=!1,keyboardHandlers:k=!0}=b,l=React.useRef(),m=React.useRef(!1);return React.useMemo(()=>g?{reference:{onPointerDown(a){l.current=a.pointerType},onMouseDown(a){0!==a.button||isMouseLikePointerType(l.current,!0)&&j||"click"===h||(c&&i&&(!e.current.openEvent||"mousedown"===e.current.openEvent.type)?d(!1,a.nativeEvent):(a.preventDefault(),d(!0,a.nativeEvent)))},onClick(a){return"mousedown"===h&&l.current?void(l.current=void 0):void(isMouseLikePointerType(l.current,!0)&&j||(c&&i&&(!e.current.openEvent||"click"===e.current.openEvent.type)?d(!1,a.nativeEvent):d(!0,a.nativeEvent)))},onKeyDown(a){l.current=void 0,a.defaultPrevented||!k||isButtonTarget(a)||(" "===a.key&&!isSpaceIgnored(f)&&(a.preventDefault(),m.current=!0),"Enter"===a.key&&(c&&i?d(!1,a.nativeEvent):d(!0,a.nativeEvent)))},onKeyUp(a){a.defaultPrevented||!k||isButtonTarget(a)||isSpaceIgnored(f)||" "===a.key&&m.current&&(m.current=!1,c&&i?d(!1,a.nativeEvent):d(!0,a.nativeEvent))}}}:{},[g,e,h,j,k,f,i,c,d])}const useInsertionEffect=React["useInsertionEffect".toString()],useSafeInsertionEffect=useInsertionEffect||(a=>a());function useEffectEvent(a){const b=React.useRef(()=>{if("production"!==process.env.NODE_ENV)throw new Error("Cannot call an event handler while rendering.")});return useSafeInsertionEffect(()=>{b.current=a}),React.useCallback(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}const bubbleHandlerKeys={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},captureHandlerKeys={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},normalizeBubblesProp=a=>{var b,c;return{escapeKeyBubbles:"boolean"==typeof a?a:null!=(b=null==a?void 0:a.escapeKey)&&b,outsidePressBubbles:"boolean"==typeof a?a:!(null!=(c=null==a?void 0:a.outsidePress))||c}};function useDismiss(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,events:e,nodeId:f,elements:{reference:h,domReference:i,floating:j},dataRef:g}=a,{enabled:l=!0,escapeKey:m=!0,outsidePress:n=!0,outsidePressEvent:o="pointerdown",referencePress:p=!1,referencePressEvent:q="pointerdown",ancestorScroll:r=!1,bubbles:k}=b,s=useFloatingTree(),t=null!=useFloatingParentNodeId(),u=useEffectEvent("function"==typeof n?n:()=>!1),v="function"==typeof n?u:n,w=React.useRef(!1),{escapeKeyBubbles:x,outsidePressBubbles:y}=normalizeBubblesProp(k),z=useEffectEvent(a=>{if(c&&l&&m&&"Escape"===a.key){const b=s?getChildren(s.nodesRef.current,f):[];if(!x&&(a.stopPropagation(),0<b.length)){let a=!0;if(b.forEach(b=>{var c;if(null!=(c=b.context)&&c.open&&!b.context.dataRef.current.__escapeKeyBubbles)return void(a=!1)}),!a)return}e.emit("dismiss",{type:"escapeKey",data:{returnFocus:{preventScroll:!1}}}),d(!1,isReactEvent(a)?a.nativeEvent:a)}}),A=useEffectEvent(a=>{const b=w.current;if(w.current=!1,b)return;if("function"==typeof v&&!v(a))return;const c=getTarget(a),g="["+createAttribute("inert")+"]",h=getDocument(j).querySelectorAll(g);let k=isElement(c)?c:null;for(;k&&!isLastTraversableNode(k);){const a=getParentNode(k);if(a===getDocument(j).body||!isElement(a))break;else k=a}if(!(h.length&&isElement(c)&&!isRootElement(c)&&!contains(c,j)&&Array.from(h).every(a=>!contains(k,a)))){if(isHTMLElement(c)&&j){const b=0<c.clientWidth&&c.scrollWidth>c.clientWidth,d=0<c.clientHeight&&c.scrollHeight>c.clientHeight;let e=d&&a.offsetX>c.clientWidth;if(d){const b="rtl"===getComputedStyle(c).direction;b&&(e=a.offsetX<=c.offsetWidth-c.clientWidth)}if(e||b&&a.offsetY>c.clientHeight)return}const b=s&&getChildren(s.nodesRef.current,f).some(b=>{var c;return isEventTargetWithin(a,null==(c=b.context)?void 0:c.elements.floating)});if(!(isEventTargetWithin(a,j)||isEventTargetWithin(a,i)||b)){const b=s?getChildren(s.nodesRef.current,f):[];if(0<b.length){let a=!0;if(b.forEach(b=>{var c;if(null!=(c=b.context)&&c.open&&!b.context.dataRef.current.__outsidePressBubbles)return void(a=!1)}),!a)return}e.emit("dismiss",{type:"outsidePress",data:{returnFocus:t?{preventScroll:!0}:isVirtualClick(a)||isVirtualPointerEvent(a)}}),d(!1,a)}}});return React.useEffect(()=>{function a(a){d(!1,a)}if(!c||!l)return;g.current.__escapeKeyBubbles=x,g.current.__outsidePressBubbles=y;const b=getDocument(j);m&&b.addEventListener("keydown",z),v&&b.addEventListener(o,A);let e=[];return r&&(isElement(i)&&(e=getOverflowAncestors(i)),isElement(j)&&(e=e.concat(getOverflowAncestors(j))),!isElement(h)&&h&&h.contextElement&&(e=e.concat(getOverflowAncestors(h.contextElement)))),e=e.filter(a=>{var c;return a!==(null==(c=b.defaultView)?void 0:c.visualViewport)}),e.forEach(b=>{b.addEventListener("scroll",a,{passive:!0})}),()=>{m&&b.removeEventListener("keydown",z),v&&b.removeEventListener(o,A),e.forEach(b=>{b.removeEventListener("scroll",a)})}},[g,j,i,h,m,v,o,c,d,r,l,x,y,z,A]),React.useEffect(()=>{w.current=!1},[v,o]),React.useMemo(()=>l?{reference:{onKeyDown:z,[bubbleHandlerKeys[q]]:a=>{p&&(e.emit("dismiss",{type:"referencePress",data:{returnFocus:!1}}),d(!1,a.nativeEvent))}},floating:{onKeyDown:z,[captureHandlerKeys[o]]:()=>{w.current=!0}}}:{},[l,e,p,o,q,d,z])}let devMessageSet;"production"!==process.env.NODE_ENV&&(devMessageSet=new Set);function useFloating(a){var b;void 0===a&&(a={});const{open:e=!1,onOpenChange:c,nodeId:d}=a;if("production"!==process.env.NODE_ENV){var f;const b="Floating UI: Cannot pass a virtual element to the `elements.reference` option, as it must be a real DOM element. Use `refs.setPositionReference` instead.";if(null!=(f=a.elements)&&f.reference&&!isElement(a.elements.reference)){var g;if(!(null!=(g=devMessageSet)&&g.has(b))){var h;null==(h=devMessageSet)?void 0:h.add(b),console.error(b)}}}const[i,j]=React.useState(null),k=(null==(b=a.elements)?void 0:b.reference)||i,l=useFloating$1(a),m=useFloatingTree(),n=useEffectEvent((a,b)=>{a&&(p.current.openEvent=b),null==c?void 0:c(a,b)}),o=React.useRef(null),p=React.useRef({}),q=React.useState(()=>createPubSub())[0],r=useId(),s=React.useCallback(a=>{const b=isElement(a)?{getBoundingClientRect:()=>a.getBoundingClientRect(),contextElement:a}:a;l.refs.setReference(b)},[l.refs]),t=React.useCallback(a=>{(isElement(a)||null===a)&&(o.current=a,j(a)),(isElement(l.refs.reference.current)||null===l.refs.reference.current||null!==a&&!isElement(a))&&l.refs.setReference(a)},[l.refs]),u=React.useMemo(()=>({...l.refs,setReference:t,setPositionReference:s,domReference:o}),[l.refs,t,s]),v=React.useMemo(()=>({...l.elements,domReference:k}),[l.elements,k]),w=React.useMemo(()=>({...l,refs:u,elements:v,dataRef:p,nodeId:d,floatingId:r,events:q,open:e,onOpenChange:n}),[l,d,r,q,e,n,u,v]);return index(()=>{const a=null==m?void 0:m.nodesRef.current.find(a=>a.id===d);a&&(a.context=w)}),React.useMemo(()=>({...l,context:w,refs:u,elements:v}),[l,u,v,w])}function useFocus(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,events:f,refs:g,elements:{floating:h,domReference:i}}=a,{enabled:j=!0,keyboardOnly:k=!0}=b,l=React.useRef(""),m=React.useRef(!1),n=React.useRef();return React.useEffect(()=>{function a(){!c&&isHTMLElement(i)&&i===activeElement(getDocument(i))&&(m.current=!0)}if(!j)return;const b=getDocument(h),d=b.defaultView||window;return d.addEventListener("blur",a),()=>{d.removeEventListener("blur",a)}},[h,i,c,j]),React.useEffect(()=>{function a(a){("referencePress"===a.type||"escapeKey"===a.type)&&(m.current=!0)}if(j)return f.on("dismiss",a),()=>{f.off("dismiss",a)}},[f,j]),React.useEffect(()=>()=>{clearTimeout(n.current)},[]),React.useMemo(()=>j?{reference:{onPointerDown(a){let{pointerType:b}=a;l.current=b,m.current=!!(b&&k)},onMouseLeave(){m.current=!1},onFocus(a){var b;m.current||"focus"===a.type&&"mousedown"===(null==(b=e.current.openEvent)?void 0:b.type)&&isEventTargetWithin(e.current.openEvent,i)||d(!0,a.nativeEvent)},onBlur(a){m.current=!1;const b=a.relatedTarget,c=isElement(b)&&b.hasAttribute(createAttribute("focus-guard"))&&"outside"===b.getAttribute("data-type");n.current=setTimeout(()=>{contains(g.floating.current,b)||contains(i,b)||c||d(!1,a.nativeEvent)})}}}:{},[j,k,i,g,e,d])}function mergeProps(a,b,c){const d=new Map;return{...("floating"===c&&{tabIndex:-1}),...a,...b.map(a=>a?a[c]:null).concat(a).reduce((a,b)=>b?(Object.entries(b).forEach(b=>{let[c,e]=b;if(0!==c.indexOf("on"))a[c]=e;else if(d.has(c)||d.set(c,[]),"function"==typeof e){var f;null==(f=d.get(c))?void 0:f.push(e),a[c]=function(){for(var a,b=arguments.length,e=Array(b),f=0;f<b;f++)e[f]=arguments[f];return null==(a=d.get(c))?void 0:a.map(a=>a(...e)).find(a=>void 0!==a)}}}),a):a,{})}}function useInteractions(a){void 0===a&&(a=[]);const b=a,c=React.useCallback(b=>mergeProps(b,a,"reference"),b),d=React.useCallback(b=>mergeProps(b,a,"floating"),b),e=React.useCallback(b=>mergeProps(b,a,"item"),a.map(a=>null==a?void 0:a.item));return React.useMemo(()=>({getReferenceProps:c,getFloatingProps:d,getItemProps:e}),[c,d,e])}function useRole(a,b){void 0===b&&(b={});const{open:c,floatingId:d}=a,{enabled:e=!0,role:f="dialog"}=b,g=useId();return React.useMemo(()=>{const a={id:d,role:f};return e?"tooltip"===f?{reference:{"aria-describedby":c?d:void 0},floating:a}:{reference:{"aria-expanded":c?"true":"false","aria-haspopup":"alertdialog"===f?"dialog":f,"aria-controls":c?d:void 0,...("listbox"===f&&{role:"combobox"}),...("menu"===f&&{id:g})},floating:{...a,...("menu"===f&&{"aria-labelledby":g})}}:{}},[e,f,c,d,g])}var useTooltip=function(a){var b=void 0===a?{}:a,c=b.initialOpen,d=b.variant,e=b.placement,f=void 0===e?"top":e,g=b.triggerEvent,h=void 0===g?"click":g,i=b.open,j=b.onOpenChange,k=b.disabled,l=void 0!==k&&k,m=useState(void 0!==c&&c),n=m[0],o=m[1],p=null!==i&&void 0!==i?i:n,q=null!==j&&void 0!==j?j:o,r=useFloating({placement:f,open:p,onOpenChange:q,whileElementsMounted:autoUpdate,middleware:[offset(5),flip(),shift()]}),s=r.context,t=useClick(s,{enabled:null==i&&!1===l&&"click"===h}),u=useHover(s,{move:!1,enabled:null==i&&!1===l&&"hover"===h}),v=useFocus(s,{enabled:null==i}),w=useDismiss(s),x=useRole(s,{role:"tooltip"}),y=useInteractions([t,u,v,w,x]);return React__default.useMemo(function(){return __assign(__assign({open:p,setOpen:q,variant:d,disabled:l},y),r)},[p,q,d,l,y,r])},TooltipContext=React__default.createContext(null),useTooltipState=function(){var a=React__default.useContext(TooltipContext);if(null==a)throw new Error("Tooltip components must be wrapped in <Tooltip />");return a};function Tooltip(a){var b=a.initialOpen,c=a.placement,d=void 0===c?"top":c,e=a.variant,f=a.open,g=a.triggerEvent,h=void 0===g?"click":g,i=a.disabled,j=a.children,k=void 0===j?null:j,l=__rest(a,["initialOpen","placement","variant","open","triggerEvent","disabled","children"]),m=useTooltip({initialOpen:void 0!==b&&b,placement:d,variant:e,open:f,triggerEvent:h,disabled:void 0!==i&&i,props:l});return React__default.createElement(TooltipContext.Provider,{value:m},k)}export{Tooltip as T,useMergeRefs as a,useTooltipState as u};
|
|
1
|
+
import{a as __assign,_ as __rest}from"./tslib.es6-bjGg6Bxl.js";import*as React from"react";import React__default,{useLayoutEffect,useEffect,useRef,useState}from"react";import{g as getOverflowAncestors,u as useFloating$1,c as autoUpdate,o as offset,f as flip,s as shift}from"./floating-ui.react-dom-Bx8TUz-v.js";import"react-dom";function getNodeName(a){return isNode(a)?(a.nodeName||"").toLowerCase():"#document"}function getWindow(a){var b;return(null==a||null==(b=a.ownerDocument)?void 0:b.defaultView)||window}function getDocumentElement(a){var b;return null==(b=(isNode(a)?a.ownerDocument:a.document)||window.document)?void 0:b.documentElement}function isNode(a){return a instanceof Node||a instanceof getWindow(a).Node}function isElement(a){return a instanceof Element||a instanceof getWindow(a).Element}function isHTMLElement(a){return a instanceof HTMLElement||a instanceof getWindow(a).HTMLElement}function isShadowRoot(a){return"undefined"!=typeof ShadowRoot&&(a instanceof ShadowRoot||a instanceof getWindow(a).ShadowRoot)}function isLastTraversableNode(a){return["html","body","#document"].includes(getNodeName(a))}function getComputedStyle(a){return getWindow(a).getComputedStyle(a)}function getParentNode(a){if("html"===getNodeName(a))return a;const b=a.assignedSlot||a.parentNode||isShadowRoot(a)&&a.host||getDocumentElement(a);return isShadowRoot(b)?b.host:b}function activeElement(a){let b=a.activeElement;for(;null!=(null==(c=b)||null==(d=c.shadowRoot)?void 0:d.activeElement);){var c,d;b=b.shadowRoot.activeElement}return b}function contains(a,b){if(!a||!b)return!1;const c=b.getRootNode&&b.getRootNode();if(a.contains(b))return!0;if(c&&isShadowRoot(c))for(let c=b;c;){if(a===c)return!0;c=c.parentNode||c.host}return!1}function getPlatform(){const a=navigator.userAgentData;return null!=a&&a.platform?a.platform:navigator.platform}function getUserAgent(){const a=navigator.userAgentData;return a&&Array.isArray(a.brands)?a.brands.map(a=>{let{brand:b,version:c}=a;return b+"/"+c}).join(" "):navigator.userAgent}function isVirtualClick(a){if(0===a.mozInputSource&&a.isTrusted)return!0;const b=/Android/i;return(b.test(getPlatform())||b.test(getUserAgent()))&&a.pointerType?"click"===a.type&&1===a.buttons:0===a.detail&&!a.pointerType}function isVirtualPointerEvent(a){return 0===a.width&&0===a.height||1===a.width&&1===a.height&&0===a.pressure&&0===a.detail&&"mouse"!==a.pointerType||1>a.width&&1>a.height&&0===a.pressure&&0===a.detail}function isMouseLikePointerType(a,b){const c=["mouse","pen"];return b||c.push("",void 0),c.includes(a)}function isReactEvent(a){return"nativeEvent"in a}function isRootElement(a){return a.matches("html,body")}function getDocument(a){return(null==a?void 0:a.ownerDocument)||document}function isEventTargetWithin(a,b){if(null==b)return!1;if("composedPath"in a)return a.composedPath().includes(b);const c=a;return null!=c.target&&b.contains(c.target)}function getTarget(a){return"composedPath"in a?a.composedPath()[0]:a.target}const TYPEABLE_SELECTOR="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function isTypeableElement(a){return isHTMLElement(a)&&a.matches(TYPEABLE_SELECTOR)}function useMergeRefs(a){return React.useMemo(()=>a.every(a=>null==a)?null:b=>{a.forEach(a=>{"function"==typeof a?a(b):null!=a&&(a.current=b)})},a)}var index="undefined"==typeof document?useEffect:useLayoutEffect;let serverHandoffComplete=!1,count=0;const genId=()=>"floating-ui-"+count++;function useFloatingId(){const[a,b]=React.useState(()=>serverHandoffComplete?genId():void 0);return index(()=>{null==a&&b(genId())},[]),React.useEffect(()=>{serverHandoffComplete||(serverHandoffComplete=!0)},[]),a}const useReactId=React["useId".toString()],useId=useReactId||useFloatingId;function createPubSub(){const a=new Map;return{emit(b,c){var d;null==(d=a.get(b))?void 0:d.forEach(a=>a(c))},on(b,c){a.set(b,[...(a.get(b)||[]),c])},off(b,c){var d;a.set(b,(null==(d=a.get(b))?void 0:d.filter(a=>a!==c))||[])}}}const FloatingNodeContext=React.createContext(null),FloatingTreeContext=React.createContext(null),useFloatingParentNodeId=()=>{var a;return(null==(a=React.useContext(FloatingNodeContext))?void 0:a.id)||null},useFloatingTree=()=>React.useContext(FloatingTreeContext);function createAttribute(a){return"data-floating-ui-"+a}function useLatestRef(a){const b=useRef(a);return index(()=>{b.current=a}),b}const safePolygonIdentifier=createAttribute("safe-polygon");function getDelay(a,b,c){return c&&!isMouseLikePointerType(c)?0:"number"==typeof a?a:null==a?void 0:a[b]}function useHover(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,events:f,elements:{domReference:h,floating:i},refs:g}=a,{enabled:j=!0,delay:k=0,handleClose:l=null,mouseOnly:m=!1,restMs:n=0,move:o=!0}=b,p=useFloatingTree(),q=useFloatingParentNodeId(),r=useLatestRef(l),s=useLatestRef(k),t=React.useRef(),u=React.useRef(),v=React.useRef(),w=React.useRef(),x=React.useRef(!0),y=React.useRef(!1),z=React.useRef(()=>{}),A=React.useCallback(()=>{var a;const b=null==(a=e.current.openEvent)?void 0:a.type;return(null==b?void 0:b.includes("mouse"))&&"mousedown"!==b},[e]);React.useEffect(()=>{function a(){clearTimeout(u.current),clearTimeout(w.current),x.current=!0}if(j)return f.on("dismiss",a),()=>{f.off("dismiss",a)}},[j,f]),React.useEffect(()=>{function a(a){A()&&d(!1,a)}if(!j||!r.current||!c)return;const b=getDocument(i).documentElement;return b.addEventListener("mouseleave",a),()=>{b.removeEventListener("mouseleave",a)}},[i,c,d,j,r,e,A]);const B=React.useCallback(function(a,b){void 0===b&&(b=!0);const c=getDelay(s.current,"close",t.current);c&&!v.current?(clearTimeout(u.current),u.current=setTimeout(()=>d(!1,a),c)):b&&(clearTimeout(u.current),d(!1,a))},[s,d]),C=React.useCallback(()=>{z.current(),v.current=void 0},[]),D=React.useCallback(()=>{if(y.current){const a=getDocument(g.floating.current).body;a.style.pointerEvents="",a.removeAttribute(safePolygonIdentifier),y.current=!1}},[g]);return React.useEffect(()=>{function b(){return!!e.current.openEvent&&["click","mousedown"].includes(e.current.openEvent.type)}function f(a){if(clearTimeout(u.current),x.current=!1,!(m&&!isMouseLikePointerType(t.current)||0<n&&0===getDelay(s.current,"open"))){const b=getDelay(s.current,"open",t.current);b?u.current=setTimeout(()=>{d(!0,a)},b):d(!0,a)}}function g(d){if(b())return;z.current();const e=getDocument(i);if(clearTimeout(w.current),r.current){c||clearTimeout(u.current),v.current=r.current({...a,tree:p,x:d.clientX,y:d.clientY,onClose(){D(),C(),B(d)}});const b=v.current;return e.addEventListener("mousemove",b),void(z.current=()=>{e.removeEventListener("mousemove",b)})}const f="touch"!==t.current||!contains(i,d.relatedTarget);f&&B(d)}function k(c){b()||(null==r.current?void 0:r.current({...a,tree:p,x:c.clientX,y:c.clientY,onClose(){D(),C(),B(c)}})(c))}if(j&&isElement(h)){const a=h;return c&&a.addEventListener("mouseleave",k),null==i?void 0:i.addEventListener("mouseleave",k),o&&a.addEventListener("mousemove",f,{once:!0}),a.addEventListener("mouseenter",f),a.addEventListener("mouseleave",g),()=>{c&&a.removeEventListener("mouseleave",k),null==i?void 0:i.removeEventListener("mouseleave",k),o&&a.removeEventListener("mousemove",f),a.removeEventListener("mouseenter",f),a.removeEventListener("mouseleave",g)}}},[h,i,j,a,m,n,o,B,C,D,d,c,p,s,r,e]),index(()=>{var a;if(j&&c&&null!=(a=r.current)&&a.__options.blockPointerEvents&&A()){const a=getDocument(i).body;if(a.setAttribute(safePolygonIdentifier,""),a.style.pointerEvents="none",y.current=!0,isElement(h)&&i){var b,d;const a=h,c=null==p||null==(b=p.nodesRef.current.find(a=>a.id===q))||null==(d=b.context)?void 0:d.elements.floating;return c&&(c.style.pointerEvents=""),a.style.pointerEvents="auto",i.style.pointerEvents="auto",()=>{a.style.pointerEvents="",i.style.pointerEvents=""}}}},[j,c,q,i,h,p,r,e,A]),index(()=>{c||(t.current=void 0,C(),D())},[c,C,D]),React.useEffect(()=>()=>{C(),clearTimeout(u.current),clearTimeout(w.current),D()},[j,h,C,D]),React.useMemo(()=>{function a(a){t.current=a.pointerType}return j?{reference:{onPointerDown:a,onPointerEnter:a,onMouseMove(a){c||0===n||(clearTimeout(w.current),w.current=setTimeout(()=>{x.current||d(!0,a.nativeEvent)},n))}},floating:{onMouseEnter(){clearTimeout(u.current)},onMouseLeave(a){f.emit("dismiss",{type:"mouseLeave",data:{returnFocus:!1}}),B(a.nativeEvent,!1)}}}:{}},[f,j,n,c,d,B])}function getChildren(a,b){let c=a.filter(a=>{var c;return a.parentId===b&&(null==(c=a.context)?void 0:c.open)}),d=c;for(;d.length;)d=a.filter(a=>{var b;return null==(b=d)?void 0:b.some(b=>{var c;return a.parentId===b.id&&(null==(c=a.context)?void 0:c.open)})}),c=c.concat(d);return c}function isButtonTarget(a){return isHTMLElement(a.target)&&"BUTTON"===a.target.tagName}function isSpaceIgnored(a){return isTypeableElement(a)}function useClick(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,elements:{domReference:f}}=a,{enabled:g=!0,event:h="click",toggle:i=!0,ignoreMouse:j=!1,keyboardHandlers:k=!0}=b,l=React.useRef(),m=React.useRef(!1);return React.useMemo(()=>g?{reference:{onPointerDown(a){l.current=a.pointerType},onMouseDown(a){0!==a.button||isMouseLikePointerType(l.current,!0)&&j||"click"===h||(c&&i&&(!e.current.openEvent||"mousedown"===e.current.openEvent.type)?d(!1,a.nativeEvent):(a.preventDefault(),d(!0,a.nativeEvent)))},onClick(a){return"mousedown"===h&&l.current?void(l.current=void 0):void(isMouseLikePointerType(l.current,!0)&&j||(c&&i&&(!e.current.openEvent||"click"===e.current.openEvent.type)?d(!1,a.nativeEvent):d(!0,a.nativeEvent)))},onKeyDown(a){l.current=void 0,a.defaultPrevented||!k||isButtonTarget(a)||(" "===a.key&&!isSpaceIgnored(f)&&(a.preventDefault(),m.current=!0),"Enter"===a.key&&(c&&i?d(!1,a.nativeEvent):d(!0,a.nativeEvent)))},onKeyUp(a){a.defaultPrevented||!k||isButtonTarget(a)||isSpaceIgnored(f)||" "===a.key&&m.current&&(m.current=!1,c&&i?d(!1,a.nativeEvent):d(!0,a.nativeEvent))}}}:{},[g,e,h,j,k,f,i,c,d])}const useInsertionEffect=React["useInsertionEffect".toString()],useSafeInsertionEffect=useInsertionEffect||(a=>a());function useEffectEvent(a){const b=React.useRef(()=>{if("production"!==process.env.NODE_ENV)throw new Error("Cannot call an event handler while rendering.")});return useSafeInsertionEffect(()=>{b.current=a}),React.useCallback(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}const bubbleHandlerKeys={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},captureHandlerKeys={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},normalizeBubblesProp=a=>{var b,c;return{escapeKeyBubbles:"boolean"==typeof a?a:null!=(b=null==a?void 0:a.escapeKey)&&b,outsidePressBubbles:"boolean"==typeof a?a:!(null!=(c=null==a?void 0:a.outsidePress))||c}};function useDismiss(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,events:e,nodeId:f,elements:{reference:h,domReference:i,floating:j},dataRef:g}=a,{enabled:l=!0,escapeKey:m=!0,outsidePress:n=!0,outsidePressEvent:o="pointerdown",referencePress:p=!1,referencePressEvent:q="pointerdown",ancestorScroll:r=!1,bubbles:k}=b,s=useFloatingTree(),t=null!=useFloatingParentNodeId(),u=useEffectEvent("function"==typeof n?n:()=>!1),v="function"==typeof n?u:n,w=React.useRef(!1),{escapeKeyBubbles:x,outsidePressBubbles:y}=normalizeBubblesProp(k),z=useEffectEvent(a=>{if(c&&l&&m&&"Escape"===a.key){const b=s?getChildren(s.nodesRef.current,f):[];if(!x&&(a.stopPropagation(),0<b.length)){let a=!0;if(b.forEach(b=>{var c;if(null!=(c=b.context)&&c.open&&!b.context.dataRef.current.__escapeKeyBubbles)return void(a=!1)}),!a)return}e.emit("dismiss",{type:"escapeKey",data:{returnFocus:{preventScroll:!1}}}),d(!1,isReactEvent(a)?a.nativeEvent:a)}}),A=useEffectEvent(a=>{const b=w.current;if(w.current=!1,b)return;if("function"==typeof v&&!v(a))return;const c=getTarget(a),g="["+createAttribute("inert")+"]",h=getDocument(j).querySelectorAll(g);let k=isElement(c)?c:null;for(;k&&!isLastTraversableNode(k);){const a=getParentNode(k);if(a===getDocument(j).body||!isElement(a))break;else k=a}if(!(h.length&&isElement(c)&&!isRootElement(c)&&!contains(c,j)&&Array.from(h).every(a=>!contains(k,a)))){if(isHTMLElement(c)&&j){const b=0<c.clientWidth&&c.scrollWidth>c.clientWidth,d=0<c.clientHeight&&c.scrollHeight>c.clientHeight;let e=d&&a.offsetX>c.clientWidth;if(d){const b="rtl"===getComputedStyle(c).direction;b&&(e=a.offsetX<=c.offsetWidth-c.clientWidth)}if(e||b&&a.offsetY>c.clientHeight)return}const b=s&&getChildren(s.nodesRef.current,f).some(b=>{var c;return isEventTargetWithin(a,null==(c=b.context)?void 0:c.elements.floating)});if(!(isEventTargetWithin(a,j)||isEventTargetWithin(a,i)||b)){const b=s?getChildren(s.nodesRef.current,f):[];if(0<b.length){let a=!0;if(b.forEach(b=>{var c;if(null!=(c=b.context)&&c.open&&!b.context.dataRef.current.__outsidePressBubbles)return void(a=!1)}),!a)return}e.emit("dismiss",{type:"outsidePress",data:{returnFocus:t?{preventScroll:!0}:isVirtualClick(a)||isVirtualPointerEvent(a)}}),d(!1,a)}}});return React.useEffect(()=>{function a(a){d(!1,a)}if(!c||!l)return;g.current.__escapeKeyBubbles=x,g.current.__outsidePressBubbles=y;const b=getDocument(j);m&&b.addEventListener("keydown",z),v&&b.addEventListener(o,A);let e=[];return r&&(isElement(i)&&(e=getOverflowAncestors(i)),isElement(j)&&(e=e.concat(getOverflowAncestors(j))),!isElement(h)&&h&&h.contextElement&&(e=e.concat(getOverflowAncestors(h.contextElement)))),e=e.filter(a=>{var c;return a!==(null==(c=b.defaultView)?void 0:c.visualViewport)}),e.forEach(b=>{b.addEventListener("scroll",a,{passive:!0})}),()=>{m&&b.removeEventListener("keydown",z),v&&b.removeEventListener(o,A),e.forEach(b=>{b.removeEventListener("scroll",a)})}},[g,j,i,h,m,v,o,c,d,r,l,x,y,z,A]),React.useEffect(()=>{w.current=!1},[v,o]),React.useMemo(()=>l?{reference:{onKeyDown:z,[bubbleHandlerKeys[q]]:a=>{p&&(e.emit("dismiss",{type:"referencePress",data:{returnFocus:!1}}),d(!1,a.nativeEvent))}},floating:{onKeyDown:z,[captureHandlerKeys[o]]:()=>{w.current=!0}}}:{},[l,e,p,o,q,d,z])}let devMessageSet;"production"!==process.env.NODE_ENV&&(devMessageSet=new Set);function useFloating(a){var b;void 0===a&&(a={});const{open:e=!1,onOpenChange:c,nodeId:d}=a;if("production"!==process.env.NODE_ENV){var f;const b="Floating UI: Cannot pass a virtual element to the `elements.reference` option, as it must be a real DOM element. Use `refs.setPositionReference` instead.";if(null!=(f=a.elements)&&f.reference&&!isElement(a.elements.reference)){var g;if(!(null!=(g=devMessageSet)&&g.has(b))){var h;null==(h=devMessageSet)?void 0:h.add(b),console.error(b)}}}const[i,j]=React.useState(null),k=(null==(b=a.elements)?void 0:b.reference)||i,l=useFloating$1(a),m=useFloatingTree(),n=useEffectEvent((a,b)=>{a&&(p.current.openEvent=b),null==c?void 0:c(a,b)}),o=React.useRef(null),p=React.useRef({}),q=React.useState(()=>createPubSub())[0],r=useId(),s=React.useCallback(a=>{const b=isElement(a)?{getBoundingClientRect:()=>a.getBoundingClientRect(),contextElement:a}:a;l.refs.setReference(b)},[l.refs]),t=React.useCallback(a=>{(isElement(a)||null===a)&&(o.current=a,j(a)),(isElement(l.refs.reference.current)||null===l.refs.reference.current||null!==a&&!isElement(a))&&l.refs.setReference(a)},[l.refs]),u=React.useMemo(()=>({...l.refs,setReference:t,setPositionReference:s,domReference:o}),[l.refs,t,s]),v=React.useMemo(()=>({...l.elements,domReference:k}),[l.elements,k]),w=React.useMemo(()=>({...l,refs:u,elements:v,dataRef:p,nodeId:d,floatingId:r,events:q,open:e,onOpenChange:n}),[l,d,r,q,e,n,u,v]);return index(()=>{const a=null==m?void 0:m.nodesRef.current.find(a=>a.id===d);a&&(a.context=w)}),React.useMemo(()=>({...l,context:w,refs:u,elements:v}),[l,u,v,w])}function useFocus(a,b){void 0===b&&(b={});const{open:c,onOpenChange:d,dataRef:e,events:f,refs:g,elements:{floating:h,domReference:i}}=a,{enabled:j=!0,keyboardOnly:k=!0}=b,l=React.useRef(""),m=React.useRef(!1),n=React.useRef();return React.useEffect(()=>{function a(){!c&&isHTMLElement(i)&&i===activeElement(getDocument(i))&&(m.current=!0)}if(!j)return;const b=getDocument(h),d=b.defaultView||window;return d.addEventListener("blur",a),()=>{d.removeEventListener("blur",a)}},[h,i,c,j]),React.useEffect(()=>{function a(a){("referencePress"===a.type||"escapeKey"===a.type)&&(m.current=!0)}if(j)return f.on("dismiss",a),()=>{f.off("dismiss",a)}},[f,j]),React.useEffect(()=>()=>{clearTimeout(n.current)},[]),React.useMemo(()=>j?{reference:{onPointerDown(a){let{pointerType:b}=a;l.current=b,m.current=!!(b&&k)},onMouseLeave(){m.current=!1},onFocus(a){var b;m.current||"focus"===a.type&&"mousedown"===(null==(b=e.current.openEvent)?void 0:b.type)&&isEventTargetWithin(e.current.openEvent,i)||d(!0,a.nativeEvent)},onBlur(a){m.current=!1;const b=a.relatedTarget,c=isElement(b)&&b.hasAttribute(createAttribute("focus-guard"))&&"outside"===b.getAttribute("data-type");n.current=setTimeout(()=>{contains(g.floating.current,b)||contains(i,b)||c||d(!1,a.nativeEvent)})}}}:{},[j,k,i,g,e,d])}function mergeProps(a,b,c){const d=new Map;return{...("floating"===c&&{tabIndex:-1}),...a,...b.map(a=>a?a[c]:null).concat(a).reduce((a,b)=>b?(Object.entries(b).forEach(b=>{let[c,e]=b;if(0!==c.indexOf("on"))a[c]=e;else if(d.has(c)||d.set(c,[]),"function"==typeof e){var f;null==(f=d.get(c))?void 0:f.push(e),a[c]=function(){for(var a,b=arguments.length,e=Array(b),f=0;f<b;f++)e[f]=arguments[f];return null==(a=d.get(c))?void 0:a.map(a=>a(...e)).find(a=>void 0!==a)}}}),a):a,{})}}function useInteractions(a){void 0===a&&(a=[]);const b=a,c=React.useCallback(b=>mergeProps(b,a,"reference"),b),d=React.useCallback(b=>mergeProps(b,a,"floating"),b),e=React.useCallback(b=>mergeProps(b,a,"item"),a.map(a=>null==a?void 0:a.item));return React.useMemo(()=>({getReferenceProps:c,getFloatingProps:d,getItemProps:e}),[c,d,e])}function useRole(a,b){void 0===b&&(b={});const{open:c,floatingId:d}=a,{enabled:e=!0,role:f="dialog"}=b,g=useId();return React.useMemo(()=>{const a={id:d,role:f};return e?"tooltip"===f?{reference:{"aria-describedby":c?d:void 0},floating:a}:{reference:{"aria-expanded":c?"true":"false","aria-haspopup":"alertdialog"===f?"dialog":f,"aria-controls":c?d:void 0,...("listbox"===f&&{role:"combobox"}),...("menu"===f&&{id:g})},floating:{...a,...("menu"===f&&{"aria-labelledby":g})}}:{}},[e,f,c,d,g])}var useTooltip=function(a){var b=void 0===a?{}:a,c=b.initialOpen,d=b.variant,e=b.placement,f=void 0===e?"top":e,g=b.triggerEvent,h=void 0===g?"click":g,i=b.open,j=b.onOpenChange,k=b.disabled,l=void 0!==k&&k,m=useState(void 0!==c&&c),n=m[0],o=m[1],p=null!==i&&void 0!==i?i:n,q=null!==j&&void 0!==j?j:o,r=useFloating({placement:f,open:p,onOpenChange:q,whileElementsMounted:autoUpdate,middleware:[offset(5),flip(),shift()]}),s=r.context,t=useClick(s,{enabled:null==i&&!1===l&&"click"===h}),u=useHover(s,{move:!1,enabled:null==i&&!1===l&&"hover"===h}),v=useFocus(s,{enabled:null==i}),w=useDismiss(s),x=useRole(s,{role:"tooltip"}),y=useInteractions([t,u,v,w,x]);return React__default.useMemo(function(){return __assign(__assign({open:p,setOpen:q,variant:d,disabled:l},y),r)},[p,q,d,l,y,r])},TooltipContext=React__default.createContext(null),useTooltipState=function(){var a=React__default.useContext(TooltipContext);if(null==a)throw new Error("Tooltip components must be wrapped in <Tooltip />");return a};function Tooltip(a){var b=a.initialOpen,c=a.placement,d=void 0===c?"top":c,e=a.variant,f=a.open,g=a.triggerEvent,h=void 0===g?"click":g,i=a.disabled,j=a.children,k=void 0===j?null:j,l=__rest(a,["initialOpen","placement","variant","open","triggerEvent","disabled","children"]),m=useTooltip({initialOpen:void 0!==b&&b,placement:d,variant:e,open:f,triggerEvent:h,disabled:void 0!==i&&i,props:l});return React__default.createElement(TooltipContext.Provider,{value:m},k)}export{Tooltip as T,useMergeRefs as a,useTooltipState as u};
|
package/build/Tooltip.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{T as Tooltip}from"./Tooltip.component-
|
|
1
|
+
export{T as Tooltip}from"./Tooltip.component-pZQW88UK.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./floating-ui.react-dom-Bx8TUz-v.js";import"react-dom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as __rest,a as __assign}from"./tslib.es6-bjGg6Bxl.js";import React__default from"react";import{u as useTooltipState,a as useMergeRefs}from"./Tooltip.component-
|
|
1
|
+
import{_ as __rest,a as __assign}from"./tslib.es6-bjGg6Bxl.js";import React__default from"react";import{u as useTooltipState,a as useMergeRefs}from"./Tooltip.component-pZQW88UK.js";import{I as Icon}from"./Icon.component-7-ap-6Ys.js";var popoverStyles="\n jn-bg-theme-background-lvl-1\n jn-text-theme-high \n jn-inline-flex\t\n jn-items-center\n jn-p-2\n jn-rounded\n jn-drop-shadow-[0_0_4px_rgba(0,0,0,0.15)]\n",popoverTextStyles="\n jn-mx-4\n jn-max-w-full\n",popoverIconStyles="\n jn-shrink-0\n",getIcon=function(a){return"error"===a?"dangerous":a},TooltipContent=React__default.forwardRef(function(a,b){var c=a.className,d=void 0===c?"":c,e=a.children,f=void 0===e?null:e,g=__rest(a,["className","children"]),h=useTooltipState(),i=useMergeRefs([h.refs.setFloating,b]),j=h.variant;return React__default.createElement(React__default.Fragment,null,h.open&&(React__default.createElement("div",__assign({className:"juno-tooltip juno-tooltip-".concat(j," ").concat(popoverStyles," ").concat(d),ref:i,style:__assign({},h.floatingStyles)},h.getFloatingProps(g)),j&&(React__default.createElement(Icon,{icon:getIcon(j),color:"jn-text-theme-".concat(j),className:"juno-tooltip-popover-icon ".concat(popoverIconStyles)})),React__default.createElement("p",{className:"".concat(popoverTextStyles)},f))))});export{TooltipContent as T};
|
package/build/TooltipContent.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{T as TooltipContent}from"./TooltipContent.component-
|
|
1
|
+
export{T as TooltipContent}from"./TooltipContent.component-Cfo0dBzg.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./Tooltip.component-pZQW88UK.js";import"./floating-ui.react-dom-Bx8TUz-v.js";import"react-dom";import"./Icon.component-7-ap-6Ys.js";import"./widgets-njngpHa5.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as __rest,a as __assign}from"./tslib.es6-bjGg6Bxl.js";import React__default from"react";import{u as useTooltipState,a as useMergeRefs}from"./Tooltip.component-
|
|
1
|
+
import{_ as __rest,a as __assign}from"./tslib.es6-bjGg6Bxl.js";import React__default from"react";import{u as useTooltipState,a as useMergeRefs}from"./Tooltip.component-pZQW88UK.js";var TooltipTrigger=React__default.forwardRef(function(a,b){var c=a.children,d=void 0===c?null:c,e=a.asChild,f=a.className,g=void 0===f?"":f,h=__rest(a,["children","asChild","className"]),i=useTooltipState(),j=useMergeRefs([i.refs.setReference,b]);if(void 0!==e&&e&&React__default.isValidElement(d)){var k=d.props,l=k.ref,m=useMergeRefs([i.refs.setReference,b,l]),n=__assign(__assign(__assign({ref:m},h),k),{"data-state":i.open?"open":"closed",className:k.className+"".concat(i.disabled&&" jn-cursor-default")}),o=i.getReferenceProps(n);return React__default.cloneElement(d,o)}return React__default.createElement("button",__assign({ref:j,"data-state":i.open?"open":"closed"},i.getReferenceProps(h),{className:"".concat(g," ").concat(i.disabled&&" jn-cursor-default")}),d)});export{TooltipTrigger as T};
|
package/build/TooltipTrigger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{T as TooltipTrigger}from"./TooltipTrigger.component-
|
|
1
|
+
export{T as TooltipTrigger}from"./TooltipTrigger.component-Cp9J4Mh7.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./Tooltip.component-pZQW88UK.js";import"./floating-ui.react-dom-Bx8TUz-v.js";import"react-dom";
|
|
@@ -1,118 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import*as React from"react";import React__default,{useRef,useEffect,createContext,useReducer,createRef,useCallback,useMemo,useContext,useState,Fragment}from"react";import{flushSync}from"react-dom";import{T,e,u as u$1,s as s$1,i}from"./form-DXIqO3qN.js";import{o,O,U,u,l,a as y,p,s,d,x,C,I,y as y$1,n,T as T$1,b as u$2,q as s$2,c as u$3,f as c,e as o$1,r,g as o$2,t as n$1,h as f,k as I$1}from"./keyboard-D0PLkOsr.js";import{F}from"./use-tree-walker-BOLu2dNf.js";function memo(a,b,c){var d=Math.max,e=Math.min,f=Math.round;let g,h=c.initialDeps??[];return()=>{var i,j,k,l;let m;c.key&&(null==(i=c.debug)?void 0:i.call(c))&&(m=Date.now());const n=a(),o=n.length!==h.length||n.some((a,b)=>h[b]!==a);if(!o)return g;h=n;let p;if(c.key&&(null==(j=c.debug)?void 0:j.call(c))&&(p=Date.now()),g=b(...n),c.key&&(null==(k=c.debug)?void 0:k.call(c))){const a=f(100*(Date.now()-m))/100,b=f(100*(Date.now()-p))/100,g=(a,b)=>{for(a+="";a.length<b;)a=" "+a;return a};console.info(`%c⏱ ${g(b,5)} /${g(a,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
|
-
color: hsl(${d(0,e(120-120*(b/16),120))}deg 100% 31%);`,null==c?void 0:c.key)}return null==(l=null==c?void 0:c.onChange)?void 0:l.call(c,g),g}}function notUndefined(a){if(void 0===a)throw new Error(`Unexpected undefined${""}`);else return a}const approxEqual=(c,a)=>1>Math.abs(c-a),debounce=(a,b,c)=>{let d;return function(){for(var e=arguments.length,f=Array(e),g=0;g<e;g++)f[g]=arguments[g];a.clearTimeout(d),d=a.setTimeout(()=>b.apply(this,f),c)}},defaultKeyExtractor=a=>a,defaultRangeExtractor=a=>{const b=Math.max(a.startIndex-a.overscan,0),c=Math.min(a.endIndex+a.overscan,a.count-1),d=[];for(let e=b;e<=c;e++)d.push(e);return d},observeElementRect=(a,b)=>{var c=Math.round;const d=a.scrollElement;if(!d)return;const e=a.targetWindow;if(!e)return;const f=a=>{const{width:d,height:e}=a;b({width:c(d),height:c(e)})};if(f(d.getBoundingClientRect()),!e.ResizeObserver)return()=>{};const g=new e.ResizeObserver(a=>{const b=a[0];if(null==b?void 0:b.borderBoxSize){const a=b.borderBoxSize[0];if(a)return void f({width:a.inlineSize,height:a.blockSize})}f(d.getBoundingClientRect())});return g.observe(d,{box:"border-box"}),()=>{g.unobserve(d)}},addEventListenerOptions={passive:!0},supportsScrollend=!("undefined"!=typeof window)||"onscrollend"in window,observeElementOffset=(a,b)=>{const c=a.scrollElement;if(!c)return;const d=a.targetWindow;if(!d)return;let e=0;const f=supportsScrollend?()=>void 0:debounce(d,()=>{b(e,!1)},a.options.isScrollingResetDelay),g=d=>()=>{const{horizontal:g,isRtl:h}=a.options;e=g?c.scrollLeft*(h&&-1||1):c.scrollTop,f(),b(e,d)},h=g(!0),i=g(!1);return i(),c.addEventListener("scroll",h,addEventListenerOptions),c.addEventListener("scrollend",i,addEventListenerOptions),()=>{c.removeEventListener("scroll",h),c.removeEventListener("scrollend",i)}},measureElement=(a,b,c)=>{var d=Math.round;if(null==b?void 0:b.borderBoxSize){const a=b.borderBoxSize[0];if(a){const b=d(a[c.options.horizontal?"inlineSize":"blockSize"]);return b}}return d(a.getBoundingClientRect()[c.options.horizontal?"width":"height"])},elementScroll=(a,b,c)=>{let{adjustments:e=0,behavior:d}=b;var f,g;null==(g=null==(f=c.scrollElement)?void 0:f.scrollTo)?void 0:g.call(f,{[c.options.horizontal?"left":"top"]:a+e,behavior:d})};class Virtualizer{constructor(a){var b=Math.max,c=Math.min,d=this;this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let a=null;const b=()=>a?a:this.targetWindow&&this.targetWindow.ResizeObserver?a=new this.targetWindow.ResizeObserver(a=>{a.forEach(a=>{this._measureElement(a.target,a)})}):null;return{disconnect:()=>{var c;null==(c=b())?void 0:c.disconnect(),a=null},observe:a=>{var c;return null==(c=b())?void 0:c.observe(a,{box:"border-box"})},unobserve:a=>{var c;return null==(c=b())?void 0:c.unobserve(a)}}})(),this.range=null,this.setOptions=a=>{Object.entries(a).forEach(b=>{let[c,d]=b;"undefined"==typeof d&&delete a[c]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,...a}},this.notify=a=>{var b,c;null==(c=(b=this.options).onChange)?void 0:c.call(b,this,a)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),a=>{this.notify(a)},{key:"production"!==process.env.NODE_ENV&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(a=>a()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var a;const b=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==b){if(this.cleanup(),!b)return void this.maybeNotify();this.scrollElement=b,this.targetWindow=this.scrollElement&&"ownerDocument"in this.scrollElement?this.scrollElement.ownerDocument.defaultView:(null==(a=this.scrollElement)?void 0:a.window)??null,this.elementsCache.forEach(a=>{this.observer.observe(a)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,a=>{this.scrollRect=a,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(a,b)=>{this.scrollAdjustments=0,this.scrollDirection=b?this.getScrollOffset()<a?"forward":"backward":null,this.scrollOffset=a,this.isScrolling=b,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(a,b)=>{const c=new Map,d=new Map;for(let e=b-1;0<=e;e--){const b=a[e];if(c.has(b.lane))continue;const f=d.get(b.lane);if(null==f||b.end>f.end?d.set(b.lane,b):b.end<f.end&&c.set(b.lane,!0),c.size===this.options.lanes)break}return d.size===this.options.lanes?Array.from(d.values()).sort((c,a)=>c.end===a.end?c.index-a.index:c.end-a.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(a,b,c,d,e)=>(this.pendingMeasuredCacheIndexes=[],{count:a,paddingStart:b,scrollMargin:c,getItemKey:d,enabled:e}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],(a,b)=>{let{count:d,paddingStart:e,scrollMargin:f,getItemKey:g,enabled:h}=a;if(!h)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));const j=0<this.pendingMeasuredCacheIndexes.length?c(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const k=this.measurementsCache.slice(0,j);for(let c=j;c<d;c++){const a=g(c),d=1===this.options.lanes?k[c-1]:this.getFurthestMeasurement(k,c),h=d?d.end+this.options.gap:e+f,i=b.get(a),j="number"==typeof i?i:this.options.estimateSize(c),l=d?d.lane:c%this.options.lanes;k[c]={index:c,start:h,size:j,end:h+j,key:a,lane:l}}return this.measurementsCache=k,k},{key:"production"!==process.env.NODE_ENV&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(a,b,c)=>this.range=0<a.length&&0<b?calculateRange({measurements:a,outerSize:b,scrollOffset:c}):null,{key:"production"!==process.env.NODE_ENV&&"calculateRange",debug:()=>this.options.debug}),this.getIndexes=memo(()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count],(a,b,c,d)=>null===b?[]:a({startIndex:b.startIndex,endIndex:b.endIndex,overscan:c,count:d}),{key:"production"!==process.env.NODE_ENV&&"getIndexes",debug:()=>this.options.debug}),this.indexFromElement=a=>{const b=this.options.indexAttribute,c=a.getAttribute(b);return c?parseInt(c,10):(console.warn(`Missing attribute name '${b}={index}' on measured element.`),-1)},this._measureElement=(a,b)=>{const c=this.indexFromElement(a),d=this.measurementsCache[c];if(!d)return;const e=d.key,f=this.elementsCache.get(e);f!==a&&(f&&this.observer.unobserve(f),this.observer.observe(a),this.elementsCache.set(e,a)),a.isConnected&&this.resizeItem(c,this.options.measureElement(a,b,this))},this.resizeItem=(a,b)=>{const c=this.measurementsCache[a];if(!c)return;const d=this.itemSizeCache.get(c.key)??c.size,e=b-d;0!==e&&((void 0===this.shouldAdjustScrollPositionOnItemSizeChange?c.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(c,e,this))&&("production"!==process.env.NODE_ENV&&this.options.debug&&console.info("correction",e),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(c.index),this.itemSizeCache=new Map(this.itemSizeCache.set(c.key,b)),this.notify(!1))},this.measureElement=a=>a?void this._measureElement(a,void 0):void this.elementsCache.forEach((a,b)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(b))}),this.getVirtualItems=memo(()=>[this.getIndexes(),this.getMeasurements()],(a,b)=>{const c=[];for(let d=0,e=a.length;d<e;d++){const e=a[d],f=b[e];c.push(f)}return c},{key:"production"!==process.env.NODE_ENV&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=a=>{const b=this.getMeasurements();return 0===b.length?void 0:notUndefined(b[findNearestBinarySearch(0,b.length-1,a=>notUndefined(b[a]).start,a)])},this.getOffsetForAlignment=(a,d)=>{const e=this.getSize(),f=this.getScrollOffset();"auto"===d&&(a<=f?d="start":a>=f+e?d="end":d="start"),"start"===d?a=a:"end"===d?a-=e:"center"==d&&(a-=e/2);const g=this.options.horizontal?"scrollWidth":"scrollHeight",h=this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[g]:this.scrollElement[g]:0;return b(c(h-e,a),0)},this.getOffsetForIndex=function(a){let e=1<arguments.length&&arguments[1]!==void 0?arguments[1]:"auto";a=b(0,c(a,d.options.count-1));const f=d.measurementsCache[a];if(!f)return;const g=d.getSize(),h=d.getScrollOffset();if("auto"===e)if(f.end>=h+g-d.options.scrollPaddingEnd)e="end";else if(f.start<=h+d.options.scrollPaddingStart)e="start";else return[h,e];const i="end"===e?f.end+d.options.scrollPaddingEnd:f.start-d.options.scrollPaddingStart;return[d.getOffsetForAlignment(i,e),e]},this.isDynamicMode=()=>0<this.elementsCache.size,this.cancelScrollToIndex=()=>{null!==this.scrollToIndexTimeoutId&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=function(a){let{align:c="start",behavior:b}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};d.cancelScrollToIndex(),"smooth"===b&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),d._scrollToOffset(d.getOffsetForAlignment(a,c),{adjustments:void 0,behavior:b})},this.scrollToIndex=function(a){let{align:f="auto",behavior:e}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};a=b(0,c(a,d.options.count-1)),d.cancelScrollToIndex(),"smooth"===e&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const g=d.getOffsetForIndex(a,f);if(!g)return;const[h,i]=g;d._scrollToOffset(h,{adjustments:void 0,behavior:e}),"smooth"!==e&&d.isDynamicMode()&&d.targetWindow&&(d.scrollToIndexTimeoutId=d.targetWindow.setTimeout(()=>{d.scrollToIndexTimeoutId=null;const b=d.elementsCache.has(d.options.getItemKey(a));if(b){const[b]=notUndefined(d.getOffsetForIndex(a,i));approxEqual(b,d.getScrollOffset())||d.scrollToIndex(a,{align:i,behavior:e})}else d.scrollToIndex(a,{align:i,behavior:e})}))},this.scrollBy=function(a){let{behavior:b}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};d.cancelScrollToIndex(),"smooth"===b&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),d._scrollToOffset(d.getScrollOffset()+a,{adjustments:void 0,behavior:b})},this.getTotalSize=()=>{var a;const c=this.getMeasurements();let d;return d=0===c.length?this.options.paddingStart:1===this.options.lanes?(null==(a=c[c.length-1])?void 0:a.end)??0:b(...c.slice(-this.options.lanes).map(a=>a.end)),b(d-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(a,b)=>{let{adjustments:c,behavior:d}=b;this.options.scrollToFn(a,{behavior:d,adjustments:c},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(a)}}const findNearestBinarySearch=(a,b,c,d)=>{for(;a<=b;){const e=0|(a+b)/2,f=c(e);if(f<d)a=e+1;else if(f>d)b=e-1;else return e}return 0<a?a-1:0};function calculateRange(a){let{measurements:b,outerSize:c,scrollOffset:d}=a;const e=b.length-1,f=findNearestBinarySearch(0,e,a=>b[a].start,d);let g=f;for(;g<e&&b[g].end<d+c;)g++;return{startIndex:f,endIndex:g}}const useIsomorphicLayoutEffect="undefined"==typeof document?React.useEffect:React.useLayoutEffect;function useVirtualizerBase(a){const b=React.useReducer(()=>({}),{})[1],c={...a,onChange:(c,d)=>{var e;d?flushSync(b):b(),null==(e=a.onChange)?void 0:e.call(a,c,d)}},[d]=React.useState(()=>new Virtualizer(c));return d.setOptions(c),React.useEffect(()=>d._didMount(),[]),useIsomorphicLayoutEffect(()=>d._willUpdate()),d}function useVirtualizer(a){return useVirtualizerBase({observeElementRect,observeElementOffset,scrollToFn:elementScroll,...a})}function m(a,b){let c=useRef([]),d=o(a);useEffect(()=>{let a=[...c.current];for(let[e,f]of b.entries())if(c.current[e]!==f){let e=d(b,a);return c.current=b,e}},[d,...b])}function t$1(a){function b(){"loading"!==document.readyState&&(a(),document.removeEventListener("DOMContentLoaded",b))}"undefined"!=typeof window&&"undefined"!=typeof document&&(document.addEventListener("DOMContentLoaded",b),b())}let t=[];t$1(()=>{function a(a){a.target instanceof HTMLElement&&a.target!==document.body&&t[0]!==a.target&&(t.unshift(a.target),t=t.filter(a=>null!=a&&a.isConnected),t.splice(10))}window.addEventListener("click",a,{capture:!0}),window.addEventListener("mousedown",a,{capture:!0}),window.addEventListener("focus",a,{capture:!0}),document.body.addEventListener("click",a,{capture:!0}),document.body.addEventListener("mousedown",a,{capture:!0}),document.body.addEventListener("focus",a,{capture:!0})});var $e=(a=>(a[a.Open=0]="Open",a[a.Closed=1]="Closed",a))($e||{}),qe=(a=>(a[a.Single=0]="Single",a[a.Multi=1]="Multi",a))(qe||{}),ze=(b=>(b[b.Pointer=0]="Pointer",b[b.Focus=1]="Focus",b[b.Other=2]="Other",b))(ze||{}),Ye=(a=>(a[a.OpenCombobox=0]="OpenCombobox",a[a.CloseCombobox=1]="CloseCombobox",a[a.GoToOption=2]="GoToOption",a[a.RegisterOption=3]="RegisterOption",a[a.UnregisterOption=4]="UnregisterOption",a[a.RegisterLabel=5]="RegisterLabel",a[a.SetActivationTrigger=6]="SetActivationTrigger",a[a.UpdateVirtualOptions=7]="UpdateVirtualOptions",a))(Ye||{});function de(b){let c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:a=>a,d=null===b.activeOptionIndex?null:b.options[b.activeOptionIndex],e=c(b.options.slice()),a=0<e.length&&null!==e[0].dataRef.current.order?e.sort((a,b)=>a.dataRef.current.order-b.dataRef.current.order):I$1(e,a=>a.dataRef.current.domRef.current),f=d?a.indexOf(d):null;return-1===f&&(f=null),{options:a,activeOptionIndex:f}}let Qe={[1](a){var b;return null!=(b=a.dataRef.current)&&b.disabled||1===a.comboboxState?a:{...a,activeOptionIndex:null,comboboxState:1}},[0](b){var a,c;if(null!=(a=b.dataRef.current)&&a.disabled||0===b.comboboxState)return b;if(null!=(c=b.dataRef.current)&&c.value){let c=b.dataRef.current.calculateIndex(b.dataRef.current.value);if(-1!==c)return{...b,activeOptionIndex:c,comboboxState:0}}return{...b,comboboxState:0}},[2](b,d){var g,h,j,k,m;if(null!=(g=b.dataRef.current)&&g.disabled||null!=(h=b.dataRef.current)&&h.optionsRef.current&&!(null!=(j=b.dataRef.current)&&j.optionsPropsRef.current.static)&&1===b.comboboxState)return b;if(b.virtual){let a=d.focus===c.Specific?d.idx:f(d,{resolveItems:()=>b.virtual.options,resolveActiveIndex:()=>{var a,c;return null==(c=null==(a=b.activeOptionIndex)?b.virtual.options.findIndex(a=>!b.virtual.disabled(a)):a)?null:c},resolveDisabled:b.virtual.disabled,resolveId(){throw new Error("Function not implemented.")}}),e=null==(k=d.trigger)?2:k;return b.activeOptionIndex===a&&b.activationTrigger===e?b:{...b,activeOptionIndex:a,activationTrigger:e}}let n=de(b);if(null===n.activeOptionIndex){let a=n.options.findIndex(a=>!a.dataRef.current.disabled);-1!==a&&(n.activeOptionIndex=a)}let o=d.focus===c.Specific?d.idx:f(d,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:a=>a.id,resolveDisabled:a=>a.dataRef.current.disabled}),a=null==(m=d.trigger)?2:m;return b.activeOptionIndex===o&&b.activationTrigger===a?b:{...b,...n,activeOptionIndex:o,activationTrigger:a}},[3]:(b,d)=>{var e,f,g;if(null!=(e=b.dataRef.current)&&e.virtual)return{...b,options:[...b.options,d.payload]};let h=d.payload,j=de(b,a=>(a.push(h),a));null===b.activeOptionIndex&&null!=(f=b.dataRef.current)&&f.isSelected(d.payload.dataRef.current.value)&&(j.activeOptionIndex=j.options.indexOf(h));let a={...b,...j,activationTrigger:2};return null!=(g=b.dataRef.current)&&g.__demoMode&&void 0===b.dataRef.current.value&&(a.activeOptionIndex=0),a},[4]:(b,c)=>{var d;if(null!=(d=b.dataRef.current)&&d.virtual)return{...b,options:b.options.filter(a=>a.id!==c.id)};let e=de(b,a=>{let b=a.findIndex(a=>a.id===c.id);return-1!==b&&a.splice(b,1),a});return{...b,...e,activationTrigger:2}},[5]:(a,b)=>a.labelId===b.id?a:{...a,labelId:b.id},[6]:(a,b)=>a.activationTrigger===b.trigger?a:{...a,activationTrigger:b.trigger},[7]:(b,c)=>{var d;if((null==(d=b.virtual)?void 0:d.options)===c.options)return b;let e=b.activeOptionIndex;if(null!==b.activeOptionIndex){let a=c.options.indexOf(b.virtual.options[b.activeOptionIndex]);e=-1===a?null:a}return{...b,activeOptionIndex:e,virtual:Object.assign({},b.virtual,{options:c.options})}}},be=createContext(null);be.displayName="ComboboxActionsContext";function ee(a){let b=useContext(be);if(null===b){let b=new Error(`<${a} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(b,ee),b}return b}let Ce=createContext(null);function Ze(b){var d;let f=j("VirtualProvider"),[e,g]=useMemo(()=>{let a=f.optionsRef.current;if(!a)return[0,0];let b=window.getComputedStyle(a);return[parseFloat(b.paddingBlockStart||b.paddingTop),parseFloat(b.paddingBlockEnd||b.paddingBottom)]},[f.optionsRef.current]),a=useVirtualizer({scrollPaddingStart:e,scrollPaddingEnd:g,count:f.virtual.options.length,estimateSize(){return 40},getScrollElement(){var a;return null==(a=f.optionsRef.current)?null:a},overscan:12}),[h,i]=useState(0);return l(()=>{i(a=>a+1)},[null==(d=f.virtual)?void 0:d.options]),React__default.createElement(Ce.Provider,{value:a},React__default.createElement("div",{style:{position:"relative",width:"100%",height:`${a.getTotalSize()}px`},ref:b=>{if(b){if("undefined"!=typeof process&&void 0!==process.env.JEST_WORKER_ID||0===f.activationTrigger)return;null!==f.activeOptionIndex&&f.virtual.options.length>f.activeOptionIndex&&a.scrollToIndex(f.activeOptionIndex)}}},a.getVirtualItems().map(a=>{var c;return React__default.createElement(Fragment,{key:a.key},React__default.cloneElement(null==(c=b.children)?void 0:c.call(b,{option:f.virtual.options[a.index],open:0===f.comboboxState}),{key:`${h}-${a.key}`,"data-index":a.index,"aria-setsize":f.virtual.options.length,"aria-posinset":a.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${a.start}px)`,overflowAnchor:"none"}}))})))}let ce=createContext(null);ce.displayName="ComboboxDataContext";function j(a){let b=useContext(ce);if(null===b){let b=new Error(`<${a} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(b,j),b}return b}function et(a,b){return u(b.type,Qe,a,b)}let tt=Fragment;function ot(b,j){let{value:m,defaultValue:q,onChange:a,form:i,name:r,by:w=null,disabled:B=!1,__demoMode:G=!1,nullable:H=!1,multiple:M=!1,immediate:g=!1,virtual:f=null,...t}=b,v=null,[R=M?[]:void 0,Q]=T(m,a,q),[I,S]=useReducer(et,{dataRef:createRef(),comboboxState:G?0:1,options:[],virtual:null,activeOptionIndex:null,activationTrigger:2,labelId:null}),E=useRef(!1),k=useRef({static:!1,hold:!1}),J=useRef(null),K=useRef(null),z=useRef(null),P=useRef(null),U=o("string"==typeof w?(a,c)=>{let b=w;return(null==a?void 0:a[b])===(null==c?void 0:c[b])}:null==w?(a,c)=>a===c:w),V=o(a=>I.options.findIndex(c=>U(c.dataRef.current.value,a))),O=useCallback(a=>u(W.mode,{[1]:()=>R.some(c=>U(c,a)),[0]:()=>U(R,a)}),[R]),L=o(a=>I.activeOptionIndex===V(a)),W=useMemo(()=>({...I,immediate:!1,optionsPropsRef:k,labelRef:J,inputRef:K,buttonRef:z,optionsRef:P,value:R,defaultValue:q,disabled:B,mode:M?1:0,virtual:I.virtual,get activeOptionIndex(){if(E.current&&null===I.activeOptionIndex&&0<I.options.length){let a=I.options.findIndex(a=>!a.dataRef.current.disabled);if(-1!==a)return a}return I.activeOptionIndex},calculateIndex:V,compare:U,isSelected:O,isActive:L,nullable:H,__demoMode:G}),[R,q,B,M,H,G,I,v]);l(()=>{},[v,void 0]),l(()=>{I.dataRef.current=W},[W]),y([W.buttonRef,W.inputRef,W.optionsRef],()=>$.closeCombobox(),0===W.comboboxState);let n=useMemo(()=>{var a,c,e;return{open:0===W.comboboxState,disabled:B,activeIndex:W.activeOptionIndex,activeOption:null===W.activeOptionIndex?null:W.virtual?W.virtual.options[null==(a=W.activeOptionIndex)?0:a]:null==(e=null==(c=W.options[W.activeOptionIndex])?void 0:c.dataRef.current.value)?null:e,value:R}},[W,B,R]),F=o(()=>{if(null!==W.activeOptionIndex){if(W.virtual)Y(W.virtual.options[W.activeOptionIndex]);else{let{dataRef:a}=W.options[W.activeOptionIndex];Y(a.current.value)}$.goToOption(c.Specific,W.activeOptionIndex)}}),A=o(()=>{S({type:0}),E.current=!0}),h=o(()=>{S({type:1}),E.current=!1}),X=o((a,d,b)=>(E.current=!1,a===c.Specific?S({type:2,focus:c.Specific,idx:d,trigger:b}):S({type:2,focus:a,trigger:b}))),D=o((a,c)=>(S({type:3,payload:{id:a,dataRef:c}}),()=>{W.isActive(c.current.value)&&(E.current=!0),S({type:4,id:a})})),N=o(a=>(S({type:5,id:a}),()=>S({type:5,id:null}))),Y=o(a=>u(W.mode,{[0](){return null==Q?void 0:Q(a)},[1](){let c=W.value.slice(),b=c.findIndex(b=>U(b,a));return-1===b?c.push(a):c.splice(b,1),null==Q?void 0:Q(c)}})),Z=o(a=>{S({type:6,trigger:a})}),$=useMemo(()=>({onChange:Y,registerOption:D,registerLabel:N,goToOption:X,closeCombobox:h,openCombobox:A,setActivationTrigger:Z,selectActiveOption:F}),[]),_=null===j?{}:{ref:j},aa=useRef(null),ba=p();return useEffect(()=>{aa.current&&void 0!==q&&ba.addEventListener(aa.current,"reset",()=>{null==Q||Q(q)})},[aa,Q]),React__default.createElement(be.Provider,{value:$},React__default.createElement(ce.Provider,{value:W},React__default.createElement(s,{value:u(W.comboboxState,{[0]:d.Open,[1]:d.Closed})},null!=r&&null!=R&&e({[r]:R}).map((a,c)=>{let[e,d]=a;return React__default.createElement(u$1,{features:s$1.Hidden,ref:0===c?a=>{var b;aa.current=null==(b=null==a?void 0:a.closest("form"))?null:b}:void 0,...x({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:i,disabled:B,name:e,value:d})})}),C({ourProps:_,theirProps:t,slot:n,defaultTag:tt,name:"Combobox"}))))}let nt="input";function rt(b,d){var q,r,w,y,A,h=Math.abs;let B=I(),{id:H=`headlessui-combobox-input-${B}`,onChange:D,displayValue:F,type:a="text",...G}=b,M=j("Combobox.Input"),e=ee("Combobox.Input"),l=y$1(M.inputRef,d),N=n(M.inputRef),g=useRef(!1),f=p(),v=o(()=>{e.onChange(null),M.optionsRef.current&&(M.optionsRef.current.scrollTop=0),e.goToOption(c.Nothing)}),P=function(){var a;return"function"==typeof F&&void 0!==M.value?null==(a=F(M.value))?"":a:"string"==typeof M.value?M.value:""}();m((a,b)=>{let[c,d]=a,[e,f]=b;if(g.current)return;let i=M.inputRef.current;i&&((0===f&&1===d||c!==e)&&(i.value=c),requestAnimationFrame(()=>{if(!g.current&&i&&(null==N?void 0:N.activeElement)===i){let{selectionStart:a,selectionEnd:b}=i;0===h((null==b?0:b)-(null==a?0:a))&&0===a&&i.setSelectionRange(i.value.length,i.value.length)}}))},[P,M.comboboxState,N]),m((a,b)=>{let[c]=a,[d]=b;if(0===c&&1===d){if(g.current)return;let a=M.inputRef.current;if(!a)return;let b=a.value,{selectionStart:c,selectionEnd:d,selectionDirection:e}=a;a.value="",a.value=b,null===e?a.setSelectionRange(c,d):a.setSelectionRange(c,d,e)}},[M.comboboxState]);let Q=useRef(!1),s=o(()=>{Q.current=!0}),R=o(()=>{f.nextFrame(()=>{Q.current=!1})}),S=o(a=>{switch(g.current=!0,a.key){case o$1.Enter:if(g.current=!1,0!==M.comboboxState||Q.current)return;if(a.preventDefault(),a.stopPropagation(),null===M.activeOptionIndex)return void e.closeCombobox();e.selectActiveOption(),0===M.mode&&e.closeCombobox();break;case o$1.ArrowDown:return g.current=!1,a.preventDefault(),a.stopPropagation(),u(M.comboboxState,{[0]:()=>e.goToOption(c.Next),[1]:()=>e.openCombobox()});case o$1.ArrowUp:return g.current=!1,a.preventDefault(),a.stopPropagation(),u(M.comboboxState,{[0]:()=>e.goToOption(c.Previous),[1]:()=>{e.openCombobox(),f.nextFrame(()=>{M.value||e.goToOption(c.Last)})}});case o$1.Home:if(a.shiftKey)break;return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.First);case o$1.PageUp:return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.First);case o$1.End:if(a.shiftKey)break;return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.Last);case o$1.PageDown:return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.Last);case o$1.Escape:return g.current=!1,0===M.comboboxState?(a.preventDefault(),M.optionsRef.current&&!M.optionsPropsRef.current.static&&a.stopPropagation(),M.nullable&&0===M.mode&&null===M.value&&v(),e.closeCombobox()):void 0;case o$1.Tab:if(g.current=!1,0!==M.comboboxState)return;0===M.mode&&1!==M.activationTrigger&&e.selectActiveOption(),e.closeCombobox()}}),T=o(a=>{null==D||D(a),M.nullable&&0===M.mode&&""===a.target.value&&v(),e.openCombobox()}),E=o(a=>{var b,c,d;let f=null==(b=a.relatedTarget)?t.find(b=>b!==a.currentTarget):b;if(g.current=!1,!(null!=(c=M.optionsRef.current)&&c.contains(f))&&!(null!=(d=M.buttonRef.current)&&d.contains(f))&&0===M.comboboxState)return a.preventDefault(),0===M.mode&&(M.nullable&&null===M.value?v():1!==M.activationTrigger&&e.selectActiveOption()),e.closeCombobox()}),k=o(a=>{var b,c,d;let g=null==(b=a.relatedTarget)?t.find(b=>b!==a.currentTarget):b;null!=(c=M.buttonRef.current)&&c.contains(g)||null!=(d=M.optionsRef.current)&&d.contains(g)||M.disabled||M.immediate&&0!==M.comboboxState&&(e.openCombobox(),f.nextFrame(()=>{e.setActivationTrigger(1)}))}),J=i(()=>{if(M.labelId)return[M.labelId].join(" ")},[M.labelId]),K=useMemo(()=>({open:0===M.comboboxState,disabled:M.disabled}),[M]),z={ref:l,id:H,role:"combobox",type:a,"aria-controls":null==(q=M.optionsRef.current)?void 0:q.id,"aria-expanded":0===M.comboboxState,"aria-activedescendant":null===M.activeOptionIndex?void 0:M.virtual?null==(r=M.options.find(a=>{var b;return!(null!=(b=M.virtual)&&b.disabled(a.dataRef.current.value))&&M.compare(a.dataRef.current.value,M.virtual.options[M.activeOptionIndex])}))?void 0:r.id:null==(w=M.options[M.activeOptionIndex])?void 0:w.id,"aria-labelledby":J,"aria-autocomplete":"list",defaultValue:null==(A=null==(y=b.defaultValue)?void 0===M.defaultValue?null:null==F?void 0:F(M.defaultValue):y)?M.defaultValue:A,disabled:M.disabled,onCompositionStart:s,onCompositionEnd:R,onKeyDown:S,onChange:T,onFocus:k,onBlur:E};return C({ourProps:z,theirProps:G,slot:K,defaultTag:nt,name:"Combobox.Input"})}let at="button";function lt(b,d){var h;let k=j("Combobox.Button"),m=ee("Combobox.Button"),a=y$1(k.buttonRef,d),n=I(),{id:s=`headlessui-combobox-button-${n}`,...q}=b,t=p(),e=o(a=>{switch(a.key){case o$1.ArrowDown:return a.preventDefault(),a.stopPropagation(),1===k.comboboxState&&m.openCombobox(),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})});case o$1.ArrowUp:return a.preventDefault(),a.stopPropagation(),1===k.comboboxState&&(m.openCombobox(),t.nextFrame(()=>{k.value||m.goToOption(c.Last)})),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})});case o$1.Escape:return 0===k.comboboxState?(a.preventDefault(),k.optionsRef.current&&!k.optionsPropsRef.current.static&&a.stopPropagation(),m.closeCombobox(),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})})):void 0;default:}}),l=o(a=>r(a.currentTarget)?a.preventDefault():void(0===k.comboboxState?m.closeCombobox():(a.preventDefault(),m.openCombobox()),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})}))),u=i(()=>{if(k.labelId)return[k.labelId,s].join(" ")},[k.labelId,s]),g=useMemo(()=>({open:0===k.comboboxState,disabled:k.disabled,value:k.value}),[k]),f={ref:a,id:s,type:T$1(b,k.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":null==(h=k.optionsRef.current)?void 0:h.id,"aria-expanded":0===k.comboboxState,"aria-labelledby":u,disabled:k.disabled,onClick:l,onKeyDown:e};return C({ourProps:f,theirProps:q,slot:g,defaultTag:at,name:"Combobox.Button"})}let it="label";function ut(b,d){let f=I(),{id:h=`headlessui-combobox-label-${f}`,...g}=b,a=j("Combobox.Label"),i=ee("Combobox.Label"),k=y$1(a.labelRef,d);l(()=>i.registerLabel(h),[h]);let c=o(()=>{var b;return null==(b=a.inputRef.current)?void 0:b.focus({preventScroll:!0})}),e=useMemo(()=>({open:0===a.comboboxState,disabled:a.disabled}),[a]);return C({ourProps:{ref:k,id:h,onClick:c},theirProps:g,slot:e,defaultTag:it,name:"Combobox.Label"})}let pt="ul",st=O.RenderStrategy|O.Static;function dt(b,h){let k=I(),{id:n=`headlessui-combobox-options-${k}`,hold:a=!1,...m}=b,o=j("Combobox.Options"),p=y$1(o.optionsRef,h),c=u$2(),e=(()=>null===c?0===o.comboboxState:(c&d.Open)===d.Open)();l(()=>{var a;o.optionsPropsRef.current.static=null!=(a=b.static)&&a},[o.optionsPropsRef,b.static]),l(()=>{o.optionsPropsRef.current.hold=a},[o.optionsPropsRef,a]),F({container:o.optionsRef.current,enabled:0===o.comboboxState,accept(a){return"option"===a.getAttribute("role")?NodeFilter.FILTER_REJECT:a.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(a){a.setAttribute("role","none")}});let q=i(()=>{var a,b;return null==(b=o.labelId)?null==(a=o.buttonRef.current)?void 0:a.id:b},[o.labelId,o.buttonRef.current]),r=useMemo(()=>({open:0===o.comboboxState,option:void 0}),[o]),g={"aria-labelledby":q,role:"listbox","aria-multiselectable":1===o.mode||void 0,id:n,ref:p};return o.virtual&&0===o.comboboxState&&Object.assign(m,{children:React__default.createElement(Ze,null,m.children)}),C({ourProps:g,theirProps:m,slot:r,defaultTag:pt,features:st,visible:e,name:"Combobox.Options"})}let bt="li";function ct(b,d){var h;let m=I(),{id:r=`headlessui-combobox-option-${m}`,disabled:a=!1,value:n,order:i=null,...q}=b,p=j("Combobox.Option"),e=ee("Combobox.Option"),t=p.virtual?p.activeOptionIndex===p.calculateIndex(n):null!==p.activeOptionIndex&&(null==(h=p.options[p.activeOptionIndex])?void 0:h.id)===r,u=p.isSelected(n),g=useRef(null),f=s$2({disabled:a,value:n,domRef:g,order:i}),v=useContext(Ce),w=y$1(d,g,v?v.measureElement:null),y=o(()=>e.onChange(n));l(()=>e.registerOption(r,f),[f,r]);let s=useRef(!(p.virtual||p.__demoMode));l(()=>{if(p.virtual&&p.__demoMode){let a=o$2();return a.requestAnimationFrame(()=>{s.current=!0}),a.dispose}},[p.virtual,p.__demoMode]),l(()=>{if(s.current&&0===p.comboboxState&&t&&0!==p.activationTrigger){let a=o$2();return a.requestAnimationFrame(()=>{var a,b;null==(b=null==(a=g.current)?void 0:a.scrollIntoView)||b.call(a,{block:"nearest"})}),a.dispose}},[g,t,p.comboboxState,p.activationTrigger,p.activeOptionIndex]);let x=o(b=>{var c;return a||null!=(c=p.virtual)&&c.disabled(n)?b.preventDefault():void(y(),n$1()||requestAnimationFrame(()=>{var a;return null==(a=p.inputRef.current)?void 0:a.focus({preventScroll:!0})}),0===p.mode&&requestAnimationFrame(()=>e.closeCombobox()))}),A=o(()=>{var b;if(a||null!=(b=p.virtual)&&b.disabled(n))return e.goToOption(c.Nothing);let d=p.calculateIndex(n);e.goToOption(c.Specific,d)}),B=u$3(),D=o(a=>B.update(a)),k=o(b=>{var d;if(!(!B.wasMoved(b)||a||null!=(d=p.virtual)&&d.disabled(n)||t)){let a=p.calculateIndex(n);e.goToOption(c.Specific,a,0)}}),E=o(b=>{var d;B.wasMoved(b)&&(a||null!=(d=p.virtual)&&d.disabled(n)||t&&(p.optionsPropsRef.current.hold||e.goToOption(c.Nothing)))}),F=useMemo(()=>({active:t,selected:u,disabled:a}),[t,u,a]);return C({ourProps:{id:r,ref:w,role:"option",tabIndex:!0===a?void 0:-1,"aria-disabled":!0===a||void 0,"aria-selected":u,disabled:void 0,onClick:x,onFocus:A,onPointerEnter:D,onMouseEnter:D,onPointerMove:k,onMouseMove:k,onPointerLeave:E,onMouseLeave:E},theirProps:q,slot:F,defaultTag:bt,name:"Combobox.Option"})}let ft=U(ot),mt=U(lt),Tt=U(rt),xt=U(ut),gt=U(dt),vt=U(ct),qt=Object.assign(ft,{Input:Tt,Button:mt,Label:xt,Options:gt,Option:vt});const inputWrapperStyles=`
|
|
5
|
-
jn-relative
|
|
6
|
-
`,labelStyles=`
|
|
7
|
-
jn-pointer-events-none
|
|
8
|
-
jn-top-2
|
|
9
|
-
jn-left-[0.9375rem]
|
|
10
|
-
`,inputStyles=`
|
|
11
|
-
jn-rounded-3px
|
|
12
|
-
jn-bg-theme-textinput
|
|
13
|
-
jn-text-theme-textinput
|
|
14
|
-
jn-border
|
|
15
|
-
jn-text-base
|
|
16
|
-
jn-leading-4
|
|
17
|
-
jn-w-full
|
|
18
|
-
jn-px-4
|
|
19
|
-
jn-h-textinput
|
|
20
|
-
jn-text-left
|
|
21
|
-
jn-overflow-hidden
|
|
22
|
-
jn-text-ellipsis
|
|
23
|
-
jn-whitespace-nowrap
|
|
24
|
-
focus:jn-outline-none
|
|
25
|
-
focus:jn-ring-2
|
|
26
|
-
focus:jn-ring-theme-focus
|
|
27
|
-
`,withLabelInputStyles=`
|
|
28
|
-
jn-pt-[1.125rem]
|
|
29
|
-
jn-pb-1
|
|
30
|
-
`,noLabelInputStyles=`
|
|
31
|
-
jn-py-4
|
|
32
|
-
`,disabledInputStyles=`
|
|
33
|
-
jn-cursor-not-allowed
|
|
34
|
-
jn-pointer-events-none
|
|
35
|
-
jn-opacity-50
|
|
36
|
-
`,defaultBorderStyles=`
|
|
37
|
-
jn-border-theme-textinput-default
|
|
38
|
-
`,validStyles=`
|
|
39
|
-
jn-border-theme-success
|
|
40
|
-
`,invalidStyles=`
|
|
41
|
-
jn-border-theme-error
|
|
42
|
-
`,buttonStyles=`
|
|
43
|
-
jn-absolute
|
|
44
|
-
jn-top-0
|
|
45
|
-
jn-right-0
|
|
46
|
-
jn-h-textinput
|
|
47
|
-
jn-w-6
|
|
48
|
-
jn-h-4
|
|
49
|
-
jn-border-l-0
|
|
50
|
-
jn-border-y-[1px]
|
|
51
|
-
jn-border-r-[1px]
|
|
52
|
-
jn-rounded-tr
|
|
53
|
-
jn-rounded-br
|
|
54
|
-
jn-appearance-none
|
|
55
|
-
jn-bg-theme-textinput
|
|
56
|
-
jn-text-theme-textinput
|
|
57
|
-
`,defaultButtonStyles=`
|
|
58
|
-
jn-border-theme-textinput-default
|
|
59
|
-
`,invalidButtonStyles=`
|
|
60
|
-
jn-border-theme-error
|
|
61
|
-
`,validButtonStyles=`
|
|
62
|
-
jn-border-theme-success
|
|
63
|
-
`,disabledButtonStyles=`
|
|
64
|
-
jn-cursor-not-allowed
|
|
65
|
-
jn-pointer-events-none
|
|
66
|
-
jn-bg-transparent
|
|
67
|
-
jn-opacity-50
|
|
68
|
-
`,menuStyles=`
|
|
69
|
-
jn-rounded
|
|
70
|
-
jn-bg-theme-background-lvl-1
|
|
71
|
-
jn-w-full
|
|
72
|
-
jn-overflow-y-auto
|
|
73
|
-
`,iconContainerStyles=`
|
|
74
|
-
jn-absolute
|
|
75
|
-
jn-top-[.4rem]
|
|
76
|
-
jn-right-6
|
|
77
|
-
`,centeredIconStyles=`
|
|
78
|
-
jn-absolute
|
|
79
|
-
jn-top-1/2
|
|
80
|
-
jn-left-1/2
|
|
81
|
-
jn-translate-y-[-50%]
|
|
82
|
-
jn-translate-x-[-0.75rem]
|
|
83
|
-
`,ComboBoxContext=createContext(),ComboBox=a=>{let{ariaLabel:b,children:j=null,className:k="",defaultValue:l="",disabled:m=!1,error:n=!1,errortext:o="",helptext:p="",id:q="",invalid:r=!1,loading:s=!1,label:c,name:t="",nullable:u=!0,onBlur:d,onChange:e,onFocus:f,onInputChange:g,placeholder:v="Select\u2026",required:w=!1,successtext:x="",truncateOptions:y=!1,valid:z=!1,value:A="",valueLabel:h,width:B="full",wrapperClassName:C="",...i}=a;const D=a=>"string"!=typeof a||0!==a.trim().length,E=q||"juno-combobox-"+useId(),F="juno-combobox-helptext-"+useId(),[G,H]=useState(new Map),[I,J]=useState(""),[K,L]=useState(A),[M,N]=useState(!1),[O,P]=useState(!1),[Q,R]=useState(!1),[S,T]=useState(!1),[U,V]=useState(!1),W=useMemo(()=>r||!!(o&&D(o)),[r,o]),X=useMemo(()=>z||!!(x&&D(x)),[z,x]);useEffect(()=>{L(A)},[A]),useEffect(()=>{P(n)},[n]),useEffect(()=>{N(s)},[s]),useEffect(()=>{T(W)},[W]),useEffect(()=>{V(X)},[X]);const Y=usePortalRef(),Z=[offset(4),shift(),flip(),size({boundary:"viewport",apply(a){let{availableWidth:b,availableHeight:c,elements:d}=a;Object.assign(d.floating.style,{maxWidth:`${b}px`,maxHeight:`${c}px`,overflowY:"auto"})}})],$=""===I?j:j.filter(a=>{const b=a.props.children?.toString()||a.props.label||a.props.value;return b?.toLowerCase().includes(I.toLowerCase())});return React__default.createElement(ComboBoxContext.Provider,{value:{selectedValue:K,truncateOptions:y,addOptionValueAndLabel:(a,b,c)=>{H(d=>new Map(d).set(a||c,{val:a,label:b,children:c}))}}},React__default.createElement("div",{className:`
|
|
84
|
-
juno-combobox-wrapper
|
|
85
|
-
jn-relative
|
|
86
|
-
${"auto"==B?"jn-inline-block":"jn-block"}
|
|
87
|
-
${"auto"==B?"jn-w-auto":"jn-w-full"}
|
|
88
|
-
${C}
|
|
89
|
-
`},React__default.createElement(qt,_extends({defaultValue:l,disabled:m||M||O,name:t,nullable:u,onChange:a=>{L(a),e&&e(a)},value:K||l},i),React__default.createElement(pr,{composable:!0,adaptiveWidth:!0,middleware:Z},React__default.createElement(pr.Reference,null,React__default.createElement("div",{className:`
|
|
90
|
-
juno-combobox-input-wrapper
|
|
91
|
-
${inputWrapperStyles}
|
|
92
|
-
${m?"jn-cursor-not-allowed":""}
|
|
93
|
-
`},c&&D(c)&&!M&&!O?React__default.createElement(Label,{text:c,disabled:m,required:w,htmlFor:E,className:`${labelStyles}`,floating:!0,minimized:!!(v||Q||I&&D(I)||K&&D(K))}):"",React__default.createElement(qt.Input,{autoComplete:"off","aria-label":b||c,"aria-describedby":p?F:"",disabled:m||M||O,id:E,onBlur:a=>{R(!1),d&&d(a)},onChange:a=>{J(a?.target?.value),g&&g(a)},onFocus:a=>{R(!0),f&&f(a)},placeholder:M||O?"":v,displayValue:a=>G.get(a)?.children||G.get(a)?.label||h||a,className:`
|
|
94
|
-
juno-combobox-input
|
|
95
|
-
${inputStyles}
|
|
96
|
-
${c&&D(c)?withLabelInputStyles:noLabelInputStyles}
|
|
97
|
-
${m?disabledInputStyles:""}
|
|
98
|
-
${S?"juno-combobox-invalid "+invalidStyles:""}
|
|
99
|
-
${U?"juno-combobox-valid "+validStyles:""}
|
|
100
|
-
${U||S?"":defaultBorderStyles}
|
|
101
|
-
${M?"juno-combobox-loading jn-cursor-not-allowed":""}
|
|
102
|
-
${O?"juno-combobox-error jn-cursor-not-allowed":""}
|
|
103
|
-
${k}
|
|
104
|
-
`}),M||O?React__default.createElement("span",{className:`${centeredIconStyles}`},M?React__default.createElement(Spinner,{className:"jn-cursor-not-allowed"}):React__default.createElement(Icon,{icon:"errorOutline",color:"jn-text-theme-error",className:"jn-cursor-not-allowed"})):U||S?React__default.createElement("span",{className:`
|
|
105
|
-
juno-combobox-icon-container
|
|
106
|
-
${iconContainerStyles}
|
|
107
|
-
${m?"jn-opacity-50":""}
|
|
108
|
-
`},React__default.createElement(Icon,{icon:U?"checkCircle":"dangerous",color:U?"jn-text-theme-success":"jn-text-theme-error"})):"",O||M?"":React__default.createElement(qt.Button,{disabled:m,className:`
|
|
109
|
-
juno-combobox-toggle
|
|
110
|
-
${buttonStyles}
|
|
111
|
-
${m?disabledButtonStyles:""}
|
|
112
|
-
${S?"juno-combobox-toggle-invalid "+invalidButtonStyles:""}
|
|
113
|
-
${U?"juno-combobox-toggle-valid "+validButtonStyles:""}
|
|
114
|
-
${U||S?"":defaultButtonStyles}
|
|
115
|
-
`},a=>{let{open:b}=a;return React__default.createElement(Icon,{icon:b?"expandLess":"expandMore"})}))),createPortal(React__default.createElement(pr.Content,null,React__default.createElement(qt.Options,{unmount:!1,className:`
|
|
116
|
-
juno-combobox-options
|
|
117
|
-
${menuStyles}
|
|
118
|
-
`},$)),Y?Y:document.body))),o&&D(o)?React__default.createElement(FormHint,{text:o,variant:"error"}):"",x&&D(x)?React__default.createElement(FormHint,{text:x,variant:"success"}):"",p&&D(p)?React__default.createElement(FormHint,{text:p,id:F}):""))};ComboBox.propTypes={ariaLabel:PropTypes.string,children:PropTypes.node,className:PropTypes.string,defaultValue:PropTypes.string,disabled:PropTypes.bool,error:PropTypes.bool,errortext:PropTypes.node,helptext:PropTypes.node,id:PropTypes.string,invalid:PropTypes.bool,label:PropTypes.string,loading:PropTypes.bool,name:PropTypes.string,nullable:PropTypes.bool,onBlur:PropTypes.func,onChange:PropTypes.func,onFocus:PropTypes.func,onInputChange:PropTypes.func,placeholder:PropTypes.string,required:PropTypes.bool,successtext:PropTypes.node,truncateOptions:PropTypes.bool,valid:PropTypes.bool,value:PropTypes.string,valueLabel:PropTypes.string,width:PropTypes.oneOf(["full","auto"]),wrapperClassName:PropTypes.string};export{ComboBox as C,ComboBoxContext as a,qt as q};
|
|
4
|
+
color: hsl(${d(0,e(120-120*(b/16),120))}deg 100% 31%);`,null==c?void 0:c.key)}return null==(l=null==c?void 0:c.onChange)?void 0:l.call(c,g),g}}function notUndefined(a){if(void 0===a)throw new Error(`Unexpected undefined${""}`);else return a}const approxEqual=(c,a)=>1>Math.abs(c-a),debounce=(a,b,c)=>{let d;return function(){for(var e=arguments.length,f=Array(e),g=0;g<e;g++)f[g]=arguments[g];a.clearTimeout(d),d=a.setTimeout(()=>b.apply(this,f),c)}},defaultKeyExtractor=a=>a,defaultRangeExtractor=a=>{const b=Math.max(a.startIndex-a.overscan,0),c=Math.min(a.endIndex+a.overscan,a.count-1),d=[];for(let e=b;e<=c;e++)d.push(e);return d},observeElementRect=(a,b)=>{var c=Math.round;const d=a.scrollElement;if(!d)return;const e=a.targetWindow;if(!e)return;const f=a=>{const{width:d,height:e}=a;b({width:c(d),height:c(e)})};if(f(d.getBoundingClientRect()),!e.ResizeObserver)return()=>{};const g=new e.ResizeObserver(a=>{const b=a[0];if(null==b?void 0:b.borderBoxSize){const a=b.borderBoxSize[0];if(a)return void f({width:a.inlineSize,height:a.blockSize})}f(d.getBoundingClientRect())});return g.observe(d,{box:"border-box"}),()=>{g.unobserve(d)}},addEventListenerOptions={passive:!0},supportsScrollend=!("undefined"!=typeof window)||"onscrollend"in window,observeElementOffset=(a,b)=>{const c=a.scrollElement;if(!c)return;const d=a.targetWindow;if(!d)return;let e=0;const f=supportsScrollend?()=>void 0:debounce(d,()=>{b(e,!1)},a.options.isScrollingResetDelay),g=d=>()=>{const{horizontal:g,isRtl:h}=a.options;e=g?c.scrollLeft*(h&&-1||1):c.scrollTop,f(),b(e,d)},h=g(!0),i=g(!1);return i(),c.addEventListener("scroll",h,addEventListenerOptions),c.addEventListener("scrollend",i,addEventListenerOptions),()=>{c.removeEventListener("scroll",h),c.removeEventListener("scrollend",i)}},measureElement=(a,b,c)=>{var d=Math.round;if(null==b?void 0:b.borderBoxSize){const a=b.borderBoxSize[0];if(a){const b=d(a[c.options.horizontal?"inlineSize":"blockSize"]);return b}}return d(a.getBoundingClientRect()[c.options.horizontal?"width":"height"])},elementScroll=(a,b,c)=>{let{adjustments:e=0,behavior:d}=b;var f,g;null==(g=null==(f=c.scrollElement)?void 0:f.scrollTo)?void 0:g.call(f,{[c.options.horizontal?"left":"top"]:a+e,behavior:d})};class Virtualizer{constructor(a){var b=Math.max,c=Math.min,d=this;this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let a=null;const b=()=>a?a:this.targetWindow&&this.targetWindow.ResizeObserver?a=new this.targetWindow.ResizeObserver(a=>{a.forEach(a=>{this._measureElement(a.target,a)})}):null;return{disconnect:()=>{var c;null==(c=b())?void 0:c.disconnect(),a=null},observe:a=>{var c;return null==(c=b())?void 0:c.observe(a,{box:"border-box"})},unobserve:a=>{var c;return null==(c=b())?void 0:c.unobserve(a)}}})(),this.range=null,this.setOptions=a=>{Object.entries(a).forEach(b=>{let[c,d]=b;"undefined"==typeof d&&delete a[c]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:defaultKeyExtractor,rangeExtractor:defaultRangeExtractor,onChange:()=>{},measureElement,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,...a}},this.notify=a=>{var b,c;null==(c=(b=this.options).onChange)?void 0:c.call(b,this,a)},this.maybeNotify=memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),a=>{this.notify(a)},{key:"production"!==process.env.NODE_ENV&&"maybeNotify",debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(a=>a()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var a;const b=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==b){if(this.cleanup(),!b)return void this.maybeNotify();this.scrollElement=b,this.targetWindow=this.scrollElement&&"ownerDocument"in this.scrollElement?this.scrollElement.ownerDocument.defaultView:(null==(a=this.scrollElement)?void 0:a.window)??null,this.elementsCache.forEach(a=>{this.observer.observe(a)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,a=>{this.scrollRect=a,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(a,b)=>{this.scrollAdjustments=0,this.scrollDirection=b?this.getScrollOffset()<a?"forward":"backward":null,this.scrollOffset=a,this.isScrolling=b,this.maybeNotify()}))}},this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(a,b)=>{const c=new Map,d=new Map;for(let e=b-1;0<=e;e--){const b=a[e];if(c.has(b.lane))continue;const f=d.get(b.lane);if(null==f||b.end>f.end?d.set(b.lane,b):b.end<f.end&&c.set(b.lane,!0),c.size===this.options.lanes)break}return d.size===this.options.lanes?Array.from(d.values()).sort((c,a)=>c.end===a.end?c.index-a.index:c.end-a.end)[0]:void 0},this.getMeasurementOptions=memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(a,b,c,d,e)=>(this.pendingMeasuredCacheIndexes=[],{count:a,paddingStart:b,scrollMargin:c,getItemKey:d,enabled:e}),{key:!1}),this.getMeasurements=memo(()=>[this.getMeasurementOptions(),this.itemSizeCache],(a,b)=>{let{count:d,paddingStart:e,scrollMargin:f,getItemKey:g,enabled:h}=a;if(!h)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));const j=0<this.pendingMeasuredCacheIndexes.length?c(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const k=this.measurementsCache.slice(0,j);for(let c=j;c<d;c++){const a=g(c),d=1===this.options.lanes?k[c-1]:this.getFurthestMeasurement(k,c),h=d?d.end+this.options.gap:e+f,i=b.get(a),j="number"==typeof i?i:this.options.estimateSize(c),l=d?d.lane:c%this.options.lanes;k[c]={index:c,start:h,size:j,end:h+j,key:a,lane:l}}return this.measurementsCache=k,k},{key:"production"!==process.env.NODE_ENV&&"getMeasurements",debug:()=>this.options.debug}),this.calculateRange=memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(a,b,c)=>this.range=0<a.length&&0<b?calculateRange({measurements:a,outerSize:b,scrollOffset:c}):null,{key:"production"!==process.env.NODE_ENV&&"calculateRange",debug:()=>this.options.debug}),this.getIndexes=memo(()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count],(a,b,c,d)=>null===b?[]:a({startIndex:b.startIndex,endIndex:b.endIndex,overscan:c,count:d}),{key:"production"!==process.env.NODE_ENV&&"getIndexes",debug:()=>this.options.debug}),this.indexFromElement=a=>{const b=this.options.indexAttribute,c=a.getAttribute(b);return c?parseInt(c,10):(console.warn(`Missing attribute name '${b}={index}' on measured element.`),-1)},this._measureElement=(a,b)=>{const c=this.indexFromElement(a),d=this.measurementsCache[c];if(!d)return;const e=d.key,f=this.elementsCache.get(e);f!==a&&(f&&this.observer.unobserve(f),this.observer.observe(a),this.elementsCache.set(e,a)),a.isConnected&&this.resizeItem(c,this.options.measureElement(a,b,this))},this.resizeItem=(a,b)=>{const c=this.measurementsCache[a];if(!c)return;const d=this.itemSizeCache.get(c.key)??c.size,e=b-d;0!==e&&((void 0===this.shouldAdjustScrollPositionOnItemSizeChange?c.start<this.getScrollOffset()+this.scrollAdjustments:this.shouldAdjustScrollPositionOnItemSizeChange(c,e,this))&&("production"!==process.env.NODE_ENV&&this.options.debug&&console.info("correction",e),this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:void 0})),this.pendingMeasuredCacheIndexes.push(c.index),this.itemSizeCache=new Map(this.itemSizeCache.set(c.key,b)),this.notify(!1))},this.measureElement=a=>a?void this._measureElement(a,void 0):void this.elementsCache.forEach((a,b)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(b))}),this.getVirtualItems=memo(()=>[this.getIndexes(),this.getMeasurements()],(a,b)=>{const c=[];for(let d=0,e=a.length;d<e;d++){const e=a[d],f=b[e];c.push(f)}return c},{key:"production"!==process.env.NODE_ENV&&"getVirtualItems",debug:()=>this.options.debug}),this.getVirtualItemForOffset=a=>{const b=this.getMeasurements();return 0===b.length?void 0:notUndefined(b[findNearestBinarySearch(0,b.length-1,a=>notUndefined(b[a]).start,a)])},this.getOffsetForAlignment=(a,d)=>{const e=this.getSize(),f=this.getScrollOffset();"auto"===d&&(a<=f?d="start":a>=f+e?d="end":d="start"),"start"===d?a=a:"end"===d?a-=e:"center"==d&&(a-=e/2);const g=this.options.horizontal?"scrollWidth":"scrollHeight",h=this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[g]:this.scrollElement[g]:0;return b(c(h-e,a),0)},this.getOffsetForIndex=function(a){let e=1<arguments.length&&arguments[1]!==void 0?arguments[1]:"auto";a=b(0,c(a,d.options.count-1));const f=d.measurementsCache[a];if(!f)return;const g=d.getSize(),h=d.getScrollOffset();if("auto"===e)if(f.end>=h+g-d.options.scrollPaddingEnd)e="end";else if(f.start<=h+d.options.scrollPaddingStart)e="start";else return[h,e];const i="end"===e?f.end+d.options.scrollPaddingEnd:f.start-d.options.scrollPaddingStart;return[d.getOffsetForAlignment(i,e),e]},this.isDynamicMode=()=>0<this.elementsCache.size,this.cancelScrollToIndex=()=>{null!==this.scrollToIndexTimeoutId&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=function(a){let{align:c="start",behavior:b}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};d.cancelScrollToIndex(),"smooth"===b&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),d._scrollToOffset(d.getOffsetForAlignment(a,c),{adjustments:void 0,behavior:b})},this.scrollToIndex=function(a){let{align:f="auto",behavior:e}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};a=b(0,c(a,d.options.count-1)),d.cancelScrollToIndex(),"smooth"===e&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const g=d.getOffsetForIndex(a,f);if(!g)return;const[h,i]=g;d._scrollToOffset(h,{adjustments:void 0,behavior:e}),"smooth"!==e&&d.isDynamicMode()&&d.targetWindow&&(d.scrollToIndexTimeoutId=d.targetWindow.setTimeout(()=>{d.scrollToIndexTimeoutId=null;const b=d.elementsCache.has(d.options.getItemKey(a));if(b){const[b]=notUndefined(d.getOffsetForIndex(a,i));approxEqual(b,d.getScrollOffset())||d.scrollToIndex(a,{align:i,behavior:e})}else d.scrollToIndex(a,{align:i,behavior:e})}))},this.scrollBy=function(a){let{behavior:b}=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};d.cancelScrollToIndex(),"smooth"===b&&d.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),d._scrollToOffset(d.getScrollOffset()+a,{adjustments:void 0,behavior:b})},this.getTotalSize=()=>{var a;const c=this.getMeasurements();let d;return d=0===c.length?this.options.paddingStart:1===this.options.lanes?(null==(a=c[c.length-1])?void 0:a.end)??0:b(...c.slice(-this.options.lanes).map(a=>a.end)),b(d-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(a,b)=>{let{adjustments:c,behavior:d}=b;this.options.scrollToFn(a,{behavior:d,adjustments:c},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(a)}}const findNearestBinarySearch=(a,b,c,d)=>{for(;a<=b;){const e=0|(a+b)/2,f=c(e);if(f<d)a=e+1;else if(f>d)b=e-1;else return e}return 0<a?a-1:0};function calculateRange(a){let{measurements:b,outerSize:c,scrollOffset:d}=a;const e=b.length-1,f=findNearestBinarySearch(0,e,a=>b[a].start,d);let g=f;for(;g<e&&b[g].end<d+c;)g++;return{startIndex:f,endIndex:g}}const useIsomorphicLayoutEffect="undefined"==typeof document?React.useEffect:React.useLayoutEffect;function useVirtualizerBase(a){const b=React.useReducer(()=>({}),{})[1],c={...a,onChange:(c,d)=>{var e;d?flushSync(b):b(),null==(e=a.onChange)?void 0:e.call(a,c,d)}},[d]=React.useState(()=>new Virtualizer(c));return d.setOptions(c),React.useEffect(()=>d._didMount(),[]),useIsomorphicLayoutEffect(()=>d._willUpdate()),d}function useVirtualizer(a){return useVirtualizerBase({observeElementRect,observeElementOffset,scrollToFn:elementScroll,...a})}function m(a,b){let c=useRef([]),d=o(a);useEffect(()=>{let a=[...c.current];for(let[e,f]of b.entries())if(c.current[e]!==f){let e=d(b,a);return c.current=b,e}},[d,...b])}function t$1(a){function b(){"loading"!==document.readyState&&(a(),document.removeEventListener("DOMContentLoaded",b))}"undefined"!=typeof window&&"undefined"!=typeof document&&(document.addEventListener("DOMContentLoaded",b),b())}let t=[];t$1(()=>{function a(a){a.target instanceof HTMLElement&&a.target!==document.body&&t[0]!==a.target&&(t.unshift(a.target),t=t.filter(a=>null!=a&&a.isConnected),t.splice(10))}window.addEventListener("click",a,{capture:!0}),window.addEventListener("mousedown",a,{capture:!0}),window.addEventListener("focus",a,{capture:!0}),document.body.addEventListener("click",a,{capture:!0}),document.body.addEventListener("mousedown",a,{capture:!0}),document.body.addEventListener("focus",a,{capture:!0})});var $e=(a=>(a[a.Open=0]="Open",a[a.Closed=1]="Closed",a))($e||{}),qe=(a=>(a[a.Single=0]="Single",a[a.Multi=1]="Multi",a))(qe||{}),ze=(b=>(b[b.Pointer=0]="Pointer",b[b.Focus=1]="Focus",b[b.Other=2]="Other",b))(ze||{}),Ye=(a=>(a[a.OpenCombobox=0]="OpenCombobox",a[a.CloseCombobox=1]="CloseCombobox",a[a.GoToOption=2]="GoToOption",a[a.RegisterOption=3]="RegisterOption",a[a.UnregisterOption=4]="UnregisterOption",a[a.RegisterLabel=5]="RegisterLabel",a[a.SetActivationTrigger=6]="SetActivationTrigger",a[a.UpdateVirtualOptions=7]="UpdateVirtualOptions",a))(Ye||{});function de(b){let c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:a=>a,d=null===b.activeOptionIndex?null:b.options[b.activeOptionIndex],e=c(b.options.slice()),a=0<e.length&&null!==e[0].dataRef.current.order?e.sort((a,b)=>a.dataRef.current.order-b.dataRef.current.order):I$1(e,a=>a.dataRef.current.domRef.current),f=d?a.indexOf(d):null;return-1===f&&(f=null),{options:a,activeOptionIndex:f}}let Qe={[1](a){var b;return null!=(b=a.dataRef.current)&&b.disabled||1===a.comboboxState?a:{...a,activeOptionIndex:null,comboboxState:1}},[0](b){var a,c;if(null!=(a=b.dataRef.current)&&a.disabled||0===b.comboboxState)return b;if(null!=(c=b.dataRef.current)&&c.value){let c=b.dataRef.current.calculateIndex(b.dataRef.current.value);if(-1!==c)return{...b,activeOptionIndex:c,comboboxState:0}}return{...b,comboboxState:0}},[2](b,d){var g,h,j,k,m;if(null!=(g=b.dataRef.current)&&g.disabled||null!=(h=b.dataRef.current)&&h.optionsRef.current&&!(null!=(j=b.dataRef.current)&&j.optionsPropsRef.current.static)&&1===b.comboboxState)return b;if(b.virtual){let a=d.focus===c.Specific?d.idx:f(d,{resolveItems:()=>b.virtual.options,resolveActiveIndex:()=>{var a,c;return null==(c=null==(a=b.activeOptionIndex)?b.virtual.options.findIndex(a=>!b.virtual.disabled(a)):a)?null:c},resolveDisabled:b.virtual.disabled,resolveId(){throw new Error("Function not implemented.")}}),e=null==(k=d.trigger)?2:k;return b.activeOptionIndex===a&&b.activationTrigger===e?b:{...b,activeOptionIndex:a,activationTrigger:e}}let n=de(b);if(null===n.activeOptionIndex){let a=n.options.findIndex(a=>!a.dataRef.current.disabled);-1!==a&&(n.activeOptionIndex=a)}let o=d.focus===c.Specific?d.idx:f(d,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:a=>a.id,resolveDisabled:a=>a.dataRef.current.disabled}),a=null==(m=d.trigger)?2:m;return b.activeOptionIndex===o&&b.activationTrigger===a?b:{...b,...n,activeOptionIndex:o,activationTrigger:a}},[3]:(b,d)=>{var e,f,g;if(null!=(e=b.dataRef.current)&&e.virtual)return{...b,options:[...b.options,d.payload]};let h=d.payload,j=de(b,a=>(a.push(h),a));null===b.activeOptionIndex&&null!=(f=b.dataRef.current)&&f.isSelected(d.payload.dataRef.current.value)&&(j.activeOptionIndex=j.options.indexOf(h));let a={...b,...j,activationTrigger:2};return null!=(g=b.dataRef.current)&&g.__demoMode&&void 0===b.dataRef.current.value&&(a.activeOptionIndex=0),a},[4]:(b,c)=>{var d;if(null!=(d=b.dataRef.current)&&d.virtual)return{...b,options:b.options.filter(a=>a.id!==c.id)};let e=de(b,a=>{let b=a.findIndex(a=>a.id===c.id);return-1!==b&&a.splice(b,1),a});return{...b,...e,activationTrigger:2}},[5]:(a,b)=>a.labelId===b.id?a:{...a,labelId:b.id},[6]:(a,b)=>a.activationTrigger===b.trigger?a:{...a,activationTrigger:b.trigger},[7]:(b,c)=>{var d;if((null==(d=b.virtual)?void 0:d.options)===c.options)return b;let e=b.activeOptionIndex;if(null!==b.activeOptionIndex){let a=c.options.indexOf(b.virtual.options[b.activeOptionIndex]);e=-1===a?null:a}return{...b,activeOptionIndex:e,virtual:Object.assign({},b.virtual,{options:c.options})}}},be=createContext(null);be.displayName="ComboboxActionsContext";function ee(a){let b=useContext(be);if(null===b){let b=new Error(`<${a} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(b,ee),b}return b}let Ce=createContext(null);function Ze(b){var d;let f=j("VirtualProvider"),[e,g]=useMemo(()=>{let a=f.optionsRef.current;if(!a)return[0,0];let b=window.getComputedStyle(a);return[parseFloat(b.paddingBlockStart||b.paddingTop),parseFloat(b.paddingBlockEnd||b.paddingBottom)]},[f.optionsRef.current]),a=useVirtualizer({scrollPaddingStart:e,scrollPaddingEnd:g,count:f.virtual.options.length,estimateSize(){return 40},getScrollElement(){var a;return null==(a=f.optionsRef.current)?null:a},overscan:12}),[h,i]=useState(0);return l(()=>{i(a=>a+1)},[null==(d=f.virtual)?void 0:d.options]),React__default.createElement(Ce.Provider,{value:a},React__default.createElement("div",{style:{position:"relative",width:"100%",height:`${a.getTotalSize()}px`},ref:b=>{if(b){if("undefined"!=typeof process&&void 0!==process.env.JEST_WORKER_ID||0===f.activationTrigger)return;null!==f.activeOptionIndex&&f.virtual.options.length>f.activeOptionIndex&&a.scrollToIndex(f.activeOptionIndex)}}},a.getVirtualItems().map(a=>{var c;return React__default.createElement(Fragment,{key:a.key},React__default.cloneElement(null==(c=b.children)?void 0:c.call(b,{option:f.virtual.options[a.index],open:0===f.comboboxState}),{key:`${h}-${a.key}`,"data-index":a.index,"aria-setsize":f.virtual.options.length,"aria-posinset":a.index+1,style:{position:"absolute",top:0,left:0,transform:`translateY(${a.start}px)`,overflowAnchor:"none"}}))})))}let ce=createContext(null);ce.displayName="ComboboxDataContext";function j(a){let b=useContext(ce);if(null===b){let b=new Error(`<${a} /> is missing a parent <Combobox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(b,j),b}return b}function et(a,b){return u(b.type,Qe,a,b)}let tt=Fragment;function ot(b,j){let{value:m,defaultValue:q,onChange:a,form:i,name:r,by:w=null,disabled:B=!1,__demoMode:G=!1,nullable:H=!1,multiple:M=!1,immediate:g=!1,virtual:f=null,...t}=b,v=null,[R=M?[]:void 0,Q]=T(m,a,q),[I,S]=useReducer(et,{dataRef:createRef(),comboboxState:G?0:1,options:[],virtual:null,activeOptionIndex:null,activationTrigger:2,labelId:null}),E=useRef(!1),k=useRef({static:!1,hold:!1}),J=useRef(null),K=useRef(null),z=useRef(null),P=useRef(null),U=o("string"==typeof w?(a,c)=>{let b=w;return(null==a?void 0:a[b])===(null==c?void 0:c[b])}:null==w?(a,c)=>a===c:w),V=o(a=>I.options.findIndex(c=>U(c.dataRef.current.value,a))),O=useCallback(a=>u(W.mode,{[1]:()=>R.some(c=>U(c,a)),[0]:()=>U(R,a)}),[R]),L=o(a=>I.activeOptionIndex===V(a)),W=useMemo(()=>({...I,immediate:!1,optionsPropsRef:k,labelRef:J,inputRef:K,buttonRef:z,optionsRef:P,value:R,defaultValue:q,disabled:B,mode:M?1:0,virtual:I.virtual,get activeOptionIndex(){if(E.current&&null===I.activeOptionIndex&&0<I.options.length){let a=I.options.findIndex(a=>!a.dataRef.current.disabled);if(-1!==a)return a}return I.activeOptionIndex},calculateIndex:V,compare:U,isSelected:O,isActive:L,nullable:H,__demoMode:G}),[R,q,B,M,H,G,I,v]);l(()=>{},[v,void 0]),l(()=>{I.dataRef.current=W},[W]),y([W.buttonRef,W.inputRef,W.optionsRef],()=>$.closeCombobox(),0===W.comboboxState);let n=useMemo(()=>{var a,c,e;return{open:0===W.comboboxState,disabled:B,activeIndex:W.activeOptionIndex,activeOption:null===W.activeOptionIndex?null:W.virtual?W.virtual.options[null==(a=W.activeOptionIndex)?0:a]:null==(e=null==(c=W.options[W.activeOptionIndex])?void 0:c.dataRef.current.value)?null:e,value:R}},[W,B,R]),F=o(()=>{if(null!==W.activeOptionIndex){if(W.virtual)Y(W.virtual.options[W.activeOptionIndex]);else{let{dataRef:a}=W.options[W.activeOptionIndex];Y(a.current.value)}$.goToOption(c.Specific,W.activeOptionIndex)}}),A=o(()=>{S({type:0}),E.current=!0}),h=o(()=>{S({type:1}),E.current=!1}),X=o((a,d,b)=>(E.current=!1,a===c.Specific?S({type:2,focus:c.Specific,idx:d,trigger:b}):S({type:2,focus:a,trigger:b}))),D=o((a,c)=>(S({type:3,payload:{id:a,dataRef:c}}),()=>{W.isActive(c.current.value)&&(E.current=!0),S({type:4,id:a})})),N=o(a=>(S({type:5,id:a}),()=>S({type:5,id:null}))),Y=o(a=>u(W.mode,{[0](){return null==Q?void 0:Q(a)},[1](){let c=W.value.slice(),b=c.findIndex(b=>U(b,a));return-1===b?c.push(a):c.splice(b,1),null==Q?void 0:Q(c)}})),Z=o(a=>{S({type:6,trigger:a})}),$=useMemo(()=>({onChange:Y,registerOption:D,registerLabel:N,goToOption:X,closeCombobox:h,openCombobox:A,setActivationTrigger:Z,selectActiveOption:F}),[]),_=null===j?{}:{ref:j},aa=useRef(null),ba=p();return useEffect(()=>{aa.current&&void 0!==q&&ba.addEventListener(aa.current,"reset",()=>{null==Q||Q(q)})},[aa,Q]),React__default.createElement(be.Provider,{value:$},React__default.createElement(ce.Provider,{value:W},React__default.createElement(s,{value:u(W.comboboxState,{[0]:d.Open,[1]:d.Closed})},null!=r&&null!=R&&e({[r]:R}).map((a,c)=>{let[e,d]=a;return React__default.createElement(u$1,{features:s$1.Hidden,ref:0===c?a=>{var b;aa.current=null==(b=null==a?void 0:a.closest("form"))?null:b}:void 0,...x({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:i,disabled:B,name:e,value:d})})}),C({ourProps:_,theirProps:t,slot:n,defaultTag:tt,name:"Combobox"}))))}let nt="input";function rt(b,d){var q,r,w,y,A,h=Math.abs;let B=I(),{id:H=`headlessui-combobox-input-${B}`,onChange:D,displayValue:F,type:a="text",...G}=b,M=j("Combobox.Input"),e=ee("Combobox.Input"),l=y$1(M.inputRef,d),N=n(M.inputRef),g=useRef(!1),f=p(),v=o(()=>{e.onChange(null),M.optionsRef.current&&(M.optionsRef.current.scrollTop=0),e.goToOption(c.Nothing)}),P=function(){var a;return"function"==typeof F&&void 0!==M.value?null==(a=F(M.value))?"":a:"string"==typeof M.value?M.value:""}();m((a,b)=>{let[c,d]=a,[e,f]=b;if(g.current)return;let i=M.inputRef.current;i&&((0===f&&1===d||c!==e)&&(i.value=c),requestAnimationFrame(()=>{if(!g.current&&i&&(null==N?void 0:N.activeElement)===i){let{selectionStart:a,selectionEnd:b}=i;0===h((null==b?0:b)-(null==a?0:a))&&0===a&&i.setSelectionRange(i.value.length,i.value.length)}}))},[P,M.comboboxState,N]),m((a,b)=>{let[c]=a,[d]=b;if(0===c&&1===d){if(g.current)return;let a=M.inputRef.current;if(!a)return;let b=a.value,{selectionStart:c,selectionEnd:d,selectionDirection:e}=a;a.value="",a.value=b,null===e?a.setSelectionRange(c,d):a.setSelectionRange(c,d,e)}},[M.comboboxState]);let Q=useRef(!1),s=o(()=>{Q.current=!0}),R=o(()=>{f.nextFrame(()=>{Q.current=!1})}),S=o(a=>{switch(g.current=!0,a.key){case o$1.Enter:if(g.current=!1,0!==M.comboboxState||Q.current)return;if(a.preventDefault(),a.stopPropagation(),null===M.activeOptionIndex)return void e.closeCombobox();e.selectActiveOption(),0===M.mode&&e.closeCombobox();break;case o$1.ArrowDown:return g.current=!1,a.preventDefault(),a.stopPropagation(),u(M.comboboxState,{[0]:()=>e.goToOption(c.Next),[1]:()=>e.openCombobox()});case o$1.ArrowUp:return g.current=!1,a.preventDefault(),a.stopPropagation(),u(M.comboboxState,{[0]:()=>e.goToOption(c.Previous),[1]:()=>{e.openCombobox(),f.nextFrame(()=>{M.value||e.goToOption(c.Last)})}});case o$1.Home:if(a.shiftKey)break;return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.First);case o$1.PageUp:return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.First);case o$1.End:if(a.shiftKey)break;return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.Last);case o$1.PageDown:return g.current=!1,a.preventDefault(),a.stopPropagation(),e.goToOption(c.Last);case o$1.Escape:return g.current=!1,0===M.comboboxState?(a.preventDefault(),M.optionsRef.current&&!M.optionsPropsRef.current.static&&a.stopPropagation(),M.nullable&&0===M.mode&&null===M.value&&v(),e.closeCombobox()):void 0;case o$1.Tab:if(g.current=!1,0!==M.comboboxState)return;0===M.mode&&1!==M.activationTrigger&&e.selectActiveOption(),e.closeCombobox()}}),T=o(a=>{null==D||D(a),M.nullable&&0===M.mode&&""===a.target.value&&v(),e.openCombobox()}),E=o(a=>{var b,c,d;let f=null==(b=a.relatedTarget)?t.find(b=>b!==a.currentTarget):b;if(g.current=!1,!(null!=(c=M.optionsRef.current)&&c.contains(f))&&!(null!=(d=M.buttonRef.current)&&d.contains(f))&&0===M.comboboxState)return a.preventDefault(),0===M.mode&&(M.nullable&&null===M.value?v():1!==M.activationTrigger&&e.selectActiveOption()),e.closeCombobox()}),k=o(a=>{var b,c,d;let g=null==(b=a.relatedTarget)?t.find(b=>b!==a.currentTarget):b;null!=(c=M.buttonRef.current)&&c.contains(g)||null!=(d=M.optionsRef.current)&&d.contains(g)||M.disabled||M.immediate&&0!==M.comboboxState&&(e.openCombobox(),f.nextFrame(()=>{e.setActivationTrigger(1)}))}),J=i(()=>{if(M.labelId)return[M.labelId].join(" ")},[M.labelId]),K=useMemo(()=>({open:0===M.comboboxState,disabled:M.disabled}),[M]),z={ref:l,id:H,role:"combobox",type:a,"aria-controls":null==(q=M.optionsRef.current)?void 0:q.id,"aria-expanded":0===M.comboboxState,"aria-activedescendant":null===M.activeOptionIndex?void 0:M.virtual?null==(r=M.options.find(a=>{var b;return!(null!=(b=M.virtual)&&b.disabled(a.dataRef.current.value))&&M.compare(a.dataRef.current.value,M.virtual.options[M.activeOptionIndex])}))?void 0:r.id:null==(w=M.options[M.activeOptionIndex])?void 0:w.id,"aria-labelledby":J,"aria-autocomplete":"list",defaultValue:null==(A=null==(y=b.defaultValue)?void 0===M.defaultValue?null:null==F?void 0:F(M.defaultValue):y)?M.defaultValue:A,disabled:M.disabled,onCompositionStart:s,onCompositionEnd:R,onKeyDown:S,onChange:T,onFocus:k,onBlur:E};return C({ourProps:z,theirProps:G,slot:K,defaultTag:nt,name:"Combobox.Input"})}let at="button";function lt(b,d){var h;let k=j("Combobox.Button"),m=ee("Combobox.Button"),a=y$1(k.buttonRef,d),n=I(),{id:s=`headlessui-combobox-button-${n}`,...q}=b,t=p(),e=o(a=>{switch(a.key){case o$1.ArrowDown:return a.preventDefault(),a.stopPropagation(),1===k.comboboxState&&m.openCombobox(),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})});case o$1.ArrowUp:return a.preventDefault(),a.stopPropagation(),1===k.comboboxState&&(m.openCombobox(),t.nextFrame(()=>{k.value||m.goToOption(c.Last)})),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})});case o$1.Escape:return 0===k.comboboxState?(a.preventDefault(),k.optionsRef.current&&!k.optionsPropsRef.current.static&&a.stopPropagation(),m.closeCombobox(),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})})):void 0;default:}}),l=o(a=>r(a.currentTarget)?a.preventDefault():void(0===k.comboboxState?m.closeCombobox():(a.preventDefault(),m.openCombobox()),t.nextFrame(()=>{var a;return null==(a=k.inputRef.current)?void 0:a.focus({preventScroll:!0})}))),u=i(()=>{if(k.labelId)return[k.labelId,s].join(" ")},[k.labelId,s]),g=useMemo(()=>({open:0===k.comboboxState,disabled:k.disabled,value:k.value}),[k]),f={ref:a,id:s,type:T$1(b,k.buttonRef),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":null==(h=k.optionsRef.current)?void 0:h.id,"aria-expanded":0===k.comboboxState,"aria-labelledby":u,disabled:k.disabled,onClick:l,onKeyDown:e};return C({ourProps:f,theirProps:q,slot:g,defaultTag:at,name:"Combobox.Button"})}let it="label";function ut(b,d){let f=I(),{id:h=`headlessui-combobox-label-${f}`,...g}=b,a=j("Combobox.Label"),i=ee("Combobox.Label"),k=y$1(a.labelRef,d);l(()=>i.registerLabel(h),[h]);let c=o(()=>{var b;return null==(b=a.inputRef.current)?void 0:b.focus({preventScroll:!0})}),e=useMemo(()=>({open:0===a.comboboxState,disabled:a.disabled}),[a]);return C({ourProps:{ref:k,id:h,onClick:c},theirProps:g,slot:e,defaultTag:it,name:"Combobox.Label"})}let pt="ul",st=O.RenderStrategy|O.Static;function dt(b,h){let k=I(),{id:n=`headlessui-combobox-options-${k}`,hold:a=!1,...m}=b,o=j("Combobox.Options"),p=y$1(o.optionsRef,h),c=u$2(),e=(()=>null===c?0===o.comboboxState:(c&d.Open)===d.Open)();l(()=>{var a;o.optionsPropsRef.current.static=null!=(a=b.static)&&a},[o.optionsPropsRef,b.static]),l(()=>{o.optionsPropsRef.current.hold=a},[o.optionsPropsRef,a]),F({container:o.optionsRef.current,enabled:0===o.comboboxState,accept(a){return"option"===a.getAttribute("role")?NodeFilter.FILTER_REJECT:a.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(a){a.setAttribute("role","none")}});let q=i(()=>{var a,b;return null==(b=o.labelId)?null==(a=o.buttonRef.current)?void 0:a.id:b},[o.labelId,o.buttonRef.current]),r=useMemo(()=>({open:0===o.comboboxState,option:void 0}),[o]),g={"aria-labelledby":q,role:"listbox","aria-multiselectable":1===o.mode||void 0,id:n,ref:p};return o.virtual&&0===o.comboboxState&&Object.assign(m,{children:React__default.createElement(Ze,null,m.children)}),C({ourProps:g,theirProps:m,slot:r,defaultTag:pt,features:st,visible:e,name:"Combobox.Options"})}let bt="li";function ct(b,d){var h;let m=I(),{id:r=`headlessui-combobox-option-${m}`,disabled:a=!1,value:n,order:i=null,...q}=b,p=j("Combobox.Option"),e=ee("Combobox.Option"),t=p.virtual?p.activeOptionIndex===p.calculateIndex(n):null!==p.activeOptionIndex&&(null==(h=p.options[p.activeOptionIndex])?void 0:h.id)===r,u=p.isSelected(n),g=useRef(null),f=s$2({disabled:a,value:n,domRef:g,order:i}),v=useContext(Ce),w=y$1(d,g,v?v.measureElement:null),y=o(()=>e.onChange(n));l(()=>e.registerOption(r,f),[f,r]);let s=useRef(!(p.virtual||p.__demoMode));l(()=>{if(p.virtual&&p.__demoMode){let a=o$2();return a.requestAnimationFrame(()=>{s.current=!0}),a.dispose}},[p.virtual,p.__demoMode]),l(()=>{if(s.current&&0===p.comboboxState&&t&&0!==p.activationTrigger){let a=o$2();return a.requestAnimationFrame(()=>{var a,b;null==(b=null==(a=g.current)?void 0:a.scrollIntoView)||b.call(a,{block:"nearest"})}),a.dispose}},[g,t,p.comboboxState,p.activationTrigger,p.activeOptionIndex]);let x=o(b=>{var c;return a||null!=(c=p.virtual)&&c.disabled(n)?b.preventDefault():void(y(),n$1()||requestAnimationFrame(()=>{var a;return null==(a=p.inputRef.current)?void 0:a.focus({preventScroll:!0})}),0===p.mode&&requestAnimationFrame(()=>e.closeCombobox()))}),A=o(()=>{var b;if(a||null!=(b=p.virtual)&&b.disabled(n))return e.goToOption(c.Nothing);let d=p.calculateIndex(n);e.goToOption(c.Specific,d)}),B=u$3(),D=o(a=>B.update(a)),k=o(b=>{var d;if(!(!B.wasMoved(b)||a||null!=(d=p.virtual)&&d.disabled(n)||t)){let a=p.calculateIndex(n);e.goToOption(c.Specific,a,0)}}),E=o(b=>{var d;B.wasMoved(b)&&(a||null!=(d=p.virtual)&&d.disabled(n)||t&&(p.optionsPropsRef.current.hold||e.goToOption(c.Nothing)))}),F=useMemo(()=>({active:t,selected:u,disabled:a}),[t,u,a]);return C({ourProps:{id:r,ref:w,role:"option",tabIndex:!0===a?void 0:-1,"aria-disabled":!0===a||void 0,"aria-selected":u,disabled:void 0,onClick:x,onFocus:A,onPointerEnter:D,onMouseEnter:D,onPointerMove:k,onMouseMove:k,onPointerLeave:E,onMouseLeave:E},theirProps:q,slot:F,defaultTag:bt,name:"Combobox.Option"})}let ft=U(ot),mt=U(lt),Tt=U(rt),xt=U(ut),gt=U(dt),vt=U(ct),qt=Object.assign(ft,{Input:Tt,Button:mt,Label:xt,Options:gt,Option:vt});export{qt as q};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** A basic inline <code> component.
|
|
3
|
+
* Accepts "content" prop or renders children as passed.
|
|
4
|
+
*/
|
|
5
|
+
export declare const Code: React.FC<CodeProps>;
|
|
6
|
+
export interface CodeProps extends React.ComponentPropsWithoutRef<"code"> {
|
|
7
|
+
content?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Code.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Code.component.d.ts","sourceRoot":"","sources":["../../../src/components/Code/Code.component.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAMpC,CAAA;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Code/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type AddOptionValueAndLabelFunction = (value: string, label: string | undefined, children: React.ReactNode) => void;
|
|
3
|
+
export type ComboBoxContextType = {
|
|
4
|
+
selectedValue?: string;
|
|
5
|
+
truncateOptions: boolean;
|
|
6
|
+
addOptionValueAndLabel: AddOptionValueAndLabelFunction;
|
|
7
|
+
};
|
|
8
|
+
export declare const ComboBoxContext: React.Context<ComboBoxContextType | undefined>;
|
|
9
|
+
export declare const ComboBox: React.FC<ComboBoxProps>;
|
|
10
|
+
export type ComboBoxWidth = "full" | "auto";
|
|
11
|
+
type OnChangeHandler = (value: string) => void;
|
|
12
|
+
export interface ComboBoxProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "onInput" | "children"> {
|
|
13
|
+
/** The aria-label of the ComboBox. Defaults to the label if label was passed. */
|
|
14
|
+
ariaLabel?: string;
|
|
15
|
+
/** The children to Render. Use `ComboBox.Option` elements. */
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
/** A custom className. Will be passed to the internal text input element of the ComboBox */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Pass a defaultValue to use as an uncontrolled Component that will handle its state internally */
|
|
20
|
+
defaultValue?: string;
|
|
21
|
+
/** Whether the ComboBox is disabled */
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/** Whether the ComboBox has an error. Note this refers to an internal error like failing to load options etc., to indicate failed validation use `invalid` instead. */
|
|
24
|
+
error?: boolean;
|
|
25
|
+
/** An errortext to display when the ComboBox failed validation or an internal error occurred. */
|
|
26
|
+
errortext?: React.ReactNode;
|
|
27
|
+
/** A helptext to render to explain meaning and significance of the ComboBox */
|
|
28
|
+
helptext?: React.ReactNode;
|
|
29
|
+
/** The Id of the ComboBox. Will be assigned to the text input part of the ComboBox. If not passed, an id will be auto-generated. */
|
|
30
|
+
id?: string;
|
|
31
|
+
/** Whether the ComboBox failed validation */
|
|
32
|
+
invalid?: boolean;
|
|
33
|
+
/** The label of the ComboBox */
|
|
34
|
+
label?: string;
|
|
35
|
+
/** Whether the ComboBox is busy loading options */
|
|
36
|
+
loading?: boolean;
|
|
37
|
+
/** The name attribute of the ComboBox when used as part of a form */
|
|
38
|
+
name?: string;
|
|
39
|
+
/** Whether the ComboBox can be reset to having no value selected by manually clearing the text and clicking outside of the ComboBox. Default is TRUE. When set to FALSE, the selected value can only be changed by selecting another value after the initial selection, but never back to no selected value at all. */
|
|
40
|
+
nullable?: boolean;
|
|
41
|
+
/** A handler to execute when the ComboBox looses focus */
|
|
42
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
43
|
+
/** A handler to execute when the ComboBox' selected value changes */
|
|
44
|
+
onChange?: OnChangeHandler;
|
|
45
|
+
/** A handler to execute when the ComboBox input receives focus */
|
|
46
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
47
|
+
/** Handler to execute when the ComboBox text input value changes */
|
|
48
|
+
onInputChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
49
|
+
/** A placeholder to render in the text input */
|
|
50
|
+
placeholder?: string;
|
|
51
|
+
/** Whether the ComboBox is required */
|
|
52
|
+
required?: boolean;
|
|
53
|
+
/** A text to display in case the ComboBox was successfully validated. Will set the ComboBox to `valid` when passed. */
|
|
54
|
+
successtext?: React.ReactNode;
|
|
55
|
+
/** Whether the option labels should be truncated in case they are longer/wider than the available space in an option or not. Default is FALSE. */
|
|
56
|
+
truncateOptions?: boolean;
|
|
57
|
+
/** Whether the ComboBox was successfully validated */
|
|
58
|
+
valid?: boolean;
|
|
59
|
+
/** The selected value of the ComboBox in Controlled Mode. */
|
|
60
|
+
value?: string;
|
|
61
|
+
/** The label of the passed value or defaultValue. If you want to use controlled mode or pass as defaultValue in uncontrolled mode and additionally use labels for human-readable SelectOptions, you need to also pass the matching label for the passed value/defaultValue so that the Select component can render itself properly */
|
|
62
|
+
valueLabel?: string;
|
|
63
|
+
/** The width of the text input. Either 'full' (default) or 'auto'. */
|
|
64
|
+
width?: ComboBoxWidth;
|
|
65
|
+
/** Pass a custom classname to the wrapping <div> element. This can be useful if you must add styling to the outermost wrapping element of this component, e.g. for positioning. */
|
|
66
|
+
wrapperClassName?: string;
|
|
67
|
+
}
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=ComboBox.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.component.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/ComboBox.component.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA6D,MAAM,OAAO,CAAA;AA8HjF,KAAK,8BAA8B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;AAEnH,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,sBAAsB,EAAE,8BAA8B,CAAA;CACvD,CAAA;AAED,eAAO,MAAM,eAAe,gDAA4D,CAAA;AASxF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwS5C,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAA;AAG3C,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;AAE9C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACpH,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uKAAuK;IACvK,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iGAAiG;IACjG,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,oIAAoI;IACpI,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uTAAuT;IACvT,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAClD,qEAAqE;IACrE,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,kEAAkE;IAClE,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IACnD,oEAAoE;IACpE,aAAa,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAC1D,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uHAAuH;IACvH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,kJAAkJ;IAClJ,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sUAAsU;IACtU,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,mLAAmL;IACnL,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBox/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const ComboBoxOption: React.FC<ComboBoxOptionProps>;
|
|
3
|
+
export interface ComboBoxOptionProps extends React.HTMLProps<HTMLLIElement> {
|
|
4
|
+
/** Content to render inside the ComboBoxOption. Is specified should be string. */
|
|
5
|
+
children?: string;
|
|
6
|
+
/** If option is disabled. */
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
/** Option value. */
|
|
9
|
+
value?: string;
|
|
10
|
+
/** Option label. */
|
|
11
|
+
label?: string;
|
|
12
|
+
/** CSS class for the option. */
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ComboBoxOption.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBoxOption.component.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBoxOption/ComboBoxOption.component.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAA;AA8C9D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgDxD,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;IACzE,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ComboBoxOption/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA"}
|