@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.
Files changed (42) hide show
  1. package/build/Code.component-CIzbcpEn.js +1 -0
  2. package/build/Code.js +1 -1
  3. package/build/ComboBox.component-Bv_9h8jb.js +1 -0
  4. package/build/ComboBox.js +1 -1
  5. package/build/ComboBoxOption.js +1 -1
  6. package/build/{ContextMenu.component-DyB2n7er.js → ContextMenu.component-DH-m8O-z.js} +1 -1
  7. package/build/ContextMenu.js +1 -1
  8. package/build/{DateTimePicker.component-C2tX_eji.js → DateTimePicker.component-BMkIzxY0.js} +3 -3
  9. package/build/DateTimePicker.js +1 -1
  10. package/build/{Pagination.component-6CTFGCb-.js → Pagination.component-D7vw3gPl.js} +1 -1
  11. package/build/Pagination.js +1 -1
  12. package/build/{Select.component-BfgCOLpX.js → Select.component-DNPTrdQs.js} +1 -1
  13. package/build/{Select.component-BpoPsXOT.js → Select.component-zF_9SDqa.js} +1 -1
  14. package/build/Select.js +1 -1
  15. package/build/SelectOption.js +1 -1
  16. package/build/{SelectRow.component-D3y6s-A2.js → SelectRow.component-D0F2VY1t.js} +1 -1
  17. package/build/SelectRow.js +1 -1
  18. package/build/{Tooltip.component-D23JdNpf.js → Tooltip.component-pZQW88UK.js} +1 -1
  19. package/build/Tooltip.js +1 -1
  20. package/build/{TooltipContent.component-A3crwGIj.js → TooltipContent.component-Cfo0dBzg.js} +1 -1
  21. package/build/TooltipContent.js +1 -1
  22. package/build/{TooltipTrigger.component-D5levpwF.js → TooltipTrigger.component-Cp9J4Mh7.js} +1 -1
  23. package/build/TooltipTrigger.js +1 -1
  24. package/build/{ComboBox.component-BpssbOYC.js → combobox-JmdrroKh.js} +2 -116
  25. package/build/components/Code/Code.component.d.ts +11 -0
  26. package/build/components/Code/Code.component.d.ts.map +1 -0
  27. package/build/components/Code/index.d.ts +2 -0
  28. package/build/components/Code/index.d.ts.map +1 -0
  29. package/build/components/ComboBox/ComboBox.component.d.ts +69 -0
  30. package/build/components/ComboBox/ComboBox.component.d.ts.map +1 -0
  31. package/build/components/ComboBox/index.d.ts +2 -0
  32. package/build/components/ComboBox/index.d.ts.map +1 -0
  33. package/build/components/ComboBoxOption/ComboBoxOption.component.d.ts +15 -0
  34. package/build/components/ComboBoxOption/ComboBoxOption.component.d.ts.map +1 -0
  35. package/build/components/ComboBoxOption/index.d.ts +2 -0
  36. package/build/components/ComboBoxOption/index.d.ts.map +1 -0
  37. package/build/{floating-ui.react-dom-DmTNS6Kr.js → floating-ui.react-dom-Bx8TUz-v.js} +1 -1
  38. package/build/{headlessui-float-lyiwAWIX.js → headlessui-float-BQHnLFxQ.js} +1 -1
  39. package/build/index.js +154 -2
  40. package/package.json +1 -1
  41. package/build/Code.component-w7x4oiMK.js +0 -4
  42. 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-D23JdNpf.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./floating-ui.react-dom-DmTNS6Kr.js";import"react-dom";
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-D23JdNpf.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};
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};
@@ -1 +1 @@
1
- export{T as TooltipContent}from"./TooltipContent.component-A3crwGIj.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./Tooltip.component-D23JdNpf.js";import"./floating-ui.react-dom-DmTNS6Kr.js";import"react-dom";import"./Icon.component-7-ap-6Ys.js";import"./widgets-njngpHa5.js";
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-D23JdNpf.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};
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};
@@ -1 +1 @@
1
- export{T as TooltipTrigger}from"./TooltipTrigger.component-D5levpwF.js";import"./tslib.es6-bjGg6Bxl.js";import"react";import"./Tooltip.component-D23JdNpf.js";import"./floating-ui.react-dom-DmTNS6Kr.js";import"react-dom";
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{_ as _extends}from"./_rollupPluginBabelHelpers-B5fk9IVe.js";import*as React from"react";import React__default,{useRef,useEffect,createContext,useReducer,createRef,useCallback,useMemo,useContext,useState,Fragment,useId}from"react";import PropTypes from"prop-types";import{p as pr}from"./headlessui-float-lyiwAWIX.js";import{L as Label,F as FormHint}from"./FormHint.component-BPhoMz7f.js";import{I as Icon}from"./Icon.component-BVkaZqpA.js";import{S as Spinner}from"./Spinner.component-3BfGSLKB.js";import{o as offset,b as shift,f as flip,s as size}from"./floating-ui.react-dom-DmTNS6Kr.js";import{u as usePortalRef}from"./PortalProvider.component-B2hXHP-c.js";import{flushSync,createPortal}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`,`
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,2 @@
1
+ export { Code } from "./Code.component";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { ComboBox } from "./ComboBox.component";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { ComboBoxOption } from "./ComboBoxOption.component";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}