Socket
Socket
Sign inDemoInstall

@reach/listbox

Package Overview
Dependencies
Maintainers
4
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@reach/listbox - npm Package Compare versions

Comparing version 0.12.0 to 0.12.1

22

dist/listbox.cjs.development.js

@@ -706,3 +706,3 @@ 'use strict';

var stableOnChange = useStableCallback(onChange); // DOM refs
var stableOnChange = utils.useStableCallback(onChange); // DOM refs

@@ -1628,23 +1628,3 @@ var buttonRef = React.useRef(null);

}
/**
* Importing this from @reach/utils is breaking the docs site. Unsure why as of
* yet. Including here in the mean time.
*
* Converts a callback to a ref to avoid triggering re-renders when passed as a
* prop and exposed as a stable function to avoid executing effects when passed
* as a dependency.
*/
function useStableCallback(callback) {
var callbackRef = React.useRef(callback);
React.useEffect(function () {
callbackRef.current = callback;
}); // eslint-disable-next-line react-hooks/exhaustive-deps
return React.useCallback(function () {
callbackRef.current && callbackRef.current.apply(callbackRef, arguments);
}, []);
}
exports.Listbox = Listbox;

@@ -1651,0 +1631,0 @@ exports.ListboxArrow = ListboxArrow;

2

dist/listbox.cjs.production.min.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("prop-types");var t,n,a,o=require("@reach/auto-id"),i=require("@reach/popover"),r=require("@reach/descendants"),u=require("@reach/utils"),s=require("@reach/machine");function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function d(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)t.indexOf(n=i[a])>=0||(o[n]=e[n]);return o}!function(e){e.Idle="IDLE",e.Open="OPEN",e.Navigating="NAVIGATING",e.Dragging="DRAGGING",e.Interacting="INTERACTING"}(n||(n={})),function(e){e.ButtonMouseDown="BUTTON_MOUSE_DOWN",e.ButtonMouseUp="BUTTON_MOUSE_UP",e.Blur="BLUR",e.ClearNavSelection="CLEAR_NAV_SELECTION",e.ClearTypeahead="CLEAR_TYPEAHEAD",e.GetDerivedData="GET_DERIVED_DATA",e.KeyDownEscape="KEY_DOWN_ESCAPE",e.KeyDownEnter="KEY_DOWN_ENTER",e.KeyDownSpace="KEY_DOWN_SPACE",e.KeyDownNavigate="KEY_DOWN_NAVIGATE",e.KeyDownSearch="KEY_DOWN_SEARCH",e.KeyDownTab="KEY_DOWN_TAB",e.KeyDownShiftTab="KEY_DOWN_SHIFT_TAB",e.OptionTouchStart="OPTION_TOUCH_START",e.OptionMouseMove="OPTION_MOUSE_MOVE",e.OptionMouseEnter="OPTION_MOUSE_ENTER",e.OutsideMouseDown="OUTSIDE_MOUSE_DOWN",e.OutsideMouseUp="OUTSIDE_MOUSE_UP",e.ValueChange="VALUE_CHANGE",e.OptionMouseDown="OPTION_MOUSE_DOWN",e.OptionMouseUp="OPTION_MOUSE_UP",e.PopoverPointerDown="POPOVER_POINTER_DOWN",e.PopoverPointerUp="POPOVER_POINTER_UP",e.UpdateAfterTypeahead="UPDATE_AFTER_TYPEAHEAD"}(a||(a={}));var c=s.assign({navigationValue:null}),g=s.assign({typeaheadQuery:null}),v=s.assign({value:function(e,t){return t.value}}),p=s.assign({navigationValue:function(e,t){return t.value}}),f=s.assign({navigationValue:function(e){var t,n,a=(t=e.value)?e.options.find((function(e){return e.value===t})):void 0;return a&&!a.disabled?e.value:(null===(n=e.options.find((function(e){return!e.disabled})))||void 0===n?void 0:n.value)||null}});function b(e,t){if(t.type===a.Blur){var n=t.refs,o=n.list,i=n.popover,r=t.relatedTarget,s=u.getOwnerDocument(i);return!((null==s?void 0:s.activeElement)===o||!i||i.contains(r||(null==s?void 0:s.activeElement)))}return!1}function E(e,t){if(t.type===a.OutsideMouseDown||t.type===a.OutsideMouseUp){var n=t.refs,o=n.button,i=n.popover,r=t.relatedTarget;return!(r===o||!o||o.contains(r)||!i||i.contains(r))}return!1}function h(e,t){return!!e.options.find((function(t){return t.value===e.navigationValue}))}function y(e,t){var n=t.refs,a=n.popover,o=n.list,i=t.relatedTarget;return!(a&&i&&a.contains(i)&&i!==o)&&h(e)}function D(e,t){requestAnimationFrame((function(){t.refs.list&&t.refs.list.focus()}))}function w(e,t){t.refs.button&&t.refs.button.focus()}function O(e,t){return!t.disabled}function x(e,t){return t.type!==a.OptionTouchStart||!t||!t.disabled}function I(e,t){return!(t&&t.disabled||null==e.navigationValue)}function M(e,t){t.callback&&t.callback(t.value)}function N(e,t){if(t.type===a.KeyDownEnter){var n=t.refs.hiddenInput;if(n&&n.form){var o=n.form.querySelector("button,[type='submit']");o&&o.click()}}}var m=s.assign({typeaheadQuery:function(e,t){return(e.typeaheadQuery||"")+t.query}}),T=s.assign({value:function(e,t){if(t.type===a.UpdateAfterTypeahead&&t.query){var n=K(e.options,t.query);if(n&&!n.disabled)return t.callback&&t.callback(n.value),n.value}return e.value}}),R=s.assign({navigationValue:function(e,t){if(t.type===a.UpdateAfterTypeahead&&t.query){var n=K(e.options,t.query);if(n&&!n.disabled)return n.value}return e.navigationValue}}),C=((t={})[a.GetDerivedData]={actions:s.assign((function(e,t){return l({},e,t.data)}))},t[a.ValueChange]={actions:[v,M]},t);function K(e,t){return void 0===t&&(t=""),t&&e.find((function(e){return!e.disabled&&e.label&&e.label.toLowerCase().startsWith(t.toLowerCase())}))||null}var _=r.createDescendantContext("ListboxDescendantContext"),S=u.createNamedContext("ListboxContext",{}),U=u.createNamedContext("ListboxGroupContext",{}),A=u.forwardRefWithAs((function(t,i){var K,U,A=t.as,L=void 0===A?"div":A,P=t["aria-labelledby"],B=t["aria-label"],V=t.children,k=t.defaultValue,W=t.disabled,q=void 0!==W&&W,j=t.form,G=t.name,F=t.onChange,Y=t.required,H=t.value,Q=t._componentName,J=void 0===Q?"ListboxInput":Q,X=d(t,["as","aria-labelledby","aria-label","children","defaultValue","disabled","form","name","onChange","required","value","_componentName"]),Z=e.useRef(null!=H),$=r.useDescendantsInit(),ee=$[0],te=$[1],ne=(U=e.useRef(K=F),e.useEffect((function(){U.current=K})),e.useCallback((function(){U.current&&U.current.apply(U,arguments)}),[])),ae=e.useRef(null),oe=e.useRef(null),ie=e.useRef(null),re=e.useRef(null),ue=e.useRef(null),se=e.useRef(null),le=e.useRef(null),de=s.useCreateMachine(function(e){var t,o,i,r,u,s;return{id:"listbox",initial:n.Idle,context:{value:e.value,options:[],navigationValue:null,typeaheadQuery:null},states:(s={},s[n.Idle]={on:l({},C,(t={},t[a.ButtonMouseDown]={target:n.Open,actions:[f],cond:O},t[a.KeyDownSpace]={target:n.Navigating,actions:[f,D],cond:O},t[a.KeyDownSearch]={target:n.Idle,actions:m,cond:O},t[a.UpdateAfterTypeahead]={target:n.Idle,actions:[T],cond:O},t[a.ClearTypeahead]={target:n.Idle,actions:g},t[a.KeyDownNavigate]={target:n.Navigating,actions:[f,g,D],cond:O},t[a.KeyDownEnter]={actions:[N],cond:O},t))},s[n.Interacting]={entry:[c],on:l({},C,(o={},o[a.ClearNavSelection]={actions:[c,D]},o[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},o[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},o[a.ButtonMouseDown]={target:n.Idle,actions:[w]},o[a.KeyDownEscape]={target:n.Idle,actions:[w]},o[a.OptionMouseDown]={target:n.Dragging},o[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Dragging,actions:g,cond:h}],o[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],o[a.KeyDownEnter]=n.Interacting,o[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],o[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},o[a.OptionMouseEnter]={target:n.Navigating,actions:[p,g],cond:x},o[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},o))},s[n.Open]={on:l({},C,(i={},i[a.ClearNavSelection]={actions:[c]},i[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},i[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},i[a.ButtonMouseDown]={target:n.Idle,actions:[w]},i[a.KeyDownEscape]={target:n.Idle,actions:[w]},i[a.OptionMouseDown]={target:n.Dragging},i[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Dragging,cond:h},{target:n.Interacting,actions:g}],i[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],i[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],i[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},i[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},i[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},i[a.KeyDownSearch]={target:n.Navigating,actions:m},i[a.UpdateAfterTypeahead]={actions:[R]},i[a.ClearTypeahead]={actions:g},i[a.OptionMouseMove]=[{target:n.Dragging,actions:[p],cond:x},{target:n.Dragging}],i))},s[n.Dragging]={on:l({},C,(r={},r[a.ClearNavSelection]={actions:[c]},r[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},r[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},r[a.ButtonMouseDown]={target:n.Idle,actions:[w]},r[a.KeyDownEscape]={target:n.Idle,actions:[w]},r[a.OptionMouseDown]={target:n.Dragging},r[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],r[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h,actions:D},{target:n.Interacting,actions:[g,D]}],r[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],r[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},r[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},r[a.OptionMouseEnter]={target:n.Dragging,actions:[p,g],cond:x},r[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},r[a.KeyDownSearch]={target:n.Navigating,actions:m},r[a.UpdateAfterTypeahead]={actions:[R]},r[a.ClearTypeahead]={actions:g},r[a.OptionMouseMove]=[{target:n.Navigating,actions:[p],cond:x},{target:n.Navigating}],r[a.OptionMouseUp]={target:n.Idle,actions:[v,g,w,M],cond:I},r))},s[n.Navigating]={on:l({},C,(u={},u[a.ClearNavSelection]={actions:[c,D]},u[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},u[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},u[a.ButtonMouseDown]={target:n.Idle,actions:[w]},u[a.KeyDownEscape]={target:n.Idle,actions:[w]},u[a.OptionMouseDown]={target:n.Dragging},u[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],u[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],u[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],u[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},u[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},u[a.OptionMouseEnter]={target:n.Navigating,actions:[p,g],cond:x},u[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},u[a.KeyDownSearch]={target:n.Navigating,actions:m},u[a.UpdateAfterTypeahead]={actions:[R]},u[a.ClearTypeahead]={actions:g},u[a.OptionMouseMove]=[{target:n.Navigating,actions:[p],cond:x},{target:n.Navigating}],u))},s)}}({value:(Z.current?H:k)||null})),ce=s.useMachine(de,{button:ae,hiddenInput:oe,highlightedOption:ie,input:re,list:ue,popover:se,selectedOption:le},!1),ge=ce[0],ve=ce[1],pe=o.useId(X.id),fe=X.id||u.makeId("listbox-input",pe),be=u.useForkedRef(re,i),Ee=e.useMemo((function(){var e=ee.find((function(e){return e.value===ge.context.value}));return e?e.label:null}),[ee,ge.context.value]),he=function(e){return[n.Navigating,n.Open,n.Dragging,n.Interacting].includes(e)}(ge.value),ye=e.useMemo((function(){return{ariaLabel:B,ariaLabelledBy:P,disabled:q,isExpanded:he,listboxId:fe,listboxValueLabel:Ee,onValueChange:ne,buttonRef:ae,listRef:ue,popoverRef:se,selectedOptionRef:le,highlightedOptionRef:ie,send:ve,state:ge.value,stateData:ge.context}}),[B,P,ge.value,ge.context,q,fe,he,ne,ve,Ee]),De=e.useRef(!1);if(!Z.current&&null==k&&!De.current&&ee.length){De.current=!0;var we=ee.find((function(e){return!e.disabled}));we&&we.value&&ve({type:a.ValueChange,value:we.value})}return u.useControlledSwitchWarning(H,"value",J),function(t,n,a){e.useRef(null!=t).current&&t!==n&&a()}(H,ge.context.value,(function(){ve({type:a.ValueChange,value:H})})),u.useIsomorphicLayoutEffect((function(){ve({type:a.GetDerivedData,data:{options:ee}})}),[ee,ve]),e.useEffect((function(){function e(e){var t=e.target,n=e.relatedTarget;z(se.current,t)||ve({type:a.OutsideMouseDown,relatedTarget:n||t})}return he&&window.addEventListener("mousedown",e),function(){window.removeEventListener("mousedown",e)}}),[ve,he]),e.useEffect((function(){function e(e){var t=e.target,n=e.relatedTarget;z(se.current,t)||ve({type:a.OutsideMouseUp,relatedTarget:n||t})}return he&&window.addEventListener("mouseup",e),function(){window.removeEventListener("mouseup",e)}}),[ve,he]),u.useCheckStyles("listbox"),e.createElement(r.DescendantProvider,{context:_,items:ee,set:te},e.createElement(S.Provider,{value:ye},e.createElement(L,Object.assign({},X,{ref:be,"data-reach-listbox-input":"","data-state":he?"expanded":"closed","data-value":ge.context.value,id:fe}),u.isFunction(V)?V({id:fe,isExpanded:he,value:ge.context.value,selectedOptionRef:le,highlightedOptionRef:ie,valueLabel:Ee,expanded:he}):V),(j||G||Y)&&e.createElement("input",{ref:oe,"data-reach-listbox-hidden-input":"",disabled:q,form:j,name:G,readOnly:!0,required:Y,tabIndex:-1,type:"hidden",value:ge.context.value||""})))})),L=u.forwardRefWithAs((function(t,n){var a=t.arrow,o=void 0===a?"▼":a,i=t.button,r=t.children,s=t.portal,l=void 0===s||s,c=d(t,["arrow","button","children","portal"]);return e.createElement(A,Object.assign({},c,{_componentName:"Listbox",ref:n}),(function(t){var n=t.value,a=t.valueLabel;return e.createElement(e.Fragment,null,e.createElement(B,{arrow:o,children:i?u.isFunction(i)?i({value:n,label:a}):i:void 0}),e.createElement(q,{portal:l},e.createElement(j,null,r)))}))})),P=u.forwardRefWithAs((function(t,n){var o=t["aria-label"],i=t.arrow,r=void 0!==i&&i,s=t.as,l=void 0===s?"span":s,c=t.children,g=t.onKeyDown,v=t.onMouseDown,p=t.onMouseUp,f=d(t,["aria-label","arrow","as","children","onKeyDown","onMouseDown","onMouseUp"]),b=e.useContext(S),E=b.ariaLabelledBy,h=b.disabled,y=b.isExpanded,D=b.listboxId,w=b.send,O=b.listboxValueLabel,x=b.stateData.value,I=u.useForkedRef(b.buttonRef,n),M=H(),N=u.makeId("button",D),m=e.useMemo((function(){return c?u.isFunction(c)?c({isExpanded:y,label:O,value:x,expanded:y}):c:O}),[c,O,y,x]);return e.createElement(l,Object.assign({"aria-disabled":h||void 0,"aria-expanded":y||void 0,"aria-haspopup":"listbox","aria-labelledby":o?void 0:[E,N].filter(Boolean).join(" "),"aria-label":o,role:"button",tabIndex:h?-1:0},f,{ref:I,"data-reach-listbox-button":"",id:N,onKeyDown:u.wrapEvent(g,M),onMouseDown:u.wrapEvent(v,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),e.stopPropagation(),w({type:a.ButtonMouseDown,disabled:h}))})),onMouseUp:u.wrapEvent(p,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),e.stopPropagation(),w({type:a.ButtonMouseUp}))}))}),m,r&&e.createElement(k,null,u.isBoolean(r)?null:r))})),B=u.memoWithAs(P),V=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"span":a,i=t.children,r=d(t,["as","children"]),s=e.useContext(S).isExpanded;return e.createElement(o,Object.assign({"aria-hidden":!0},r,{ref:n,"data-reach-listbox-arrow":"","data-expanded":s?"":void 0}),u.isFunction(i)?i({isExpanded:s,expanded:s}):i||"▼")})),k=u.memoWithAs(V),W=u.forwardRefWithAs((function(t,n){var o=t.as,r=void 0===o?"div":o,s=t.position,c=void 0===s?i.positionMatchWidth:s,g=t.onBlur,v=t.onKeyDown,p=t.portal,f=void 0===p||p,b=t.unstable_observableRefs,E=d(t,["as","position","onBlur","onKeyDown","portal","unstable_observableRefs"]),h=e.useContext(S),y=h.buttonRef,D=h.send,w=h.isExpanded,O=u.useForkedRef(h.popoverRef,n),x=H(),I=l({hidden:!w,tabIndex:-1},E,{ref:O,"data-reach-listbox-popover":"",onBlur:u.wrapEvent(g,(function(e){var t=e.nativeEvent;requestAnimationFrame((function(){D({type:a.Blur,relatedTarget:t.relatedTarget||t.target})}))})),onKeyDown:u.wrapEvent(v,x)});return f?e.createElement(i.Popover,Object.assign({},I,{as:r,targetRef:y,position:c,unstable_observableRefs:b})):e.createElement(r,Object.assign({},I))})),q=u.memoWithAs(W),j=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"ul":a,i=d(t,["as"]),r=e.useContext(S),s=r.ariaLabel,l=r.ariaLabelledBy,c=r.isExpanded,g=r.listboxId,v=r.stateData,p=v.value,f=v.navigationValue,b=u.useForkedRef(n,r.listRef);return e.createElement(o,Object.assign({"aria-activedescendant":Q(c?f:p),"aria-labelledby":s?void 0:l,"aria-label":s,role:"listbox",tabIndex:-1},i,{ref:b,"data-reach-listbox-list":"",id:u.makeId("listbox",g)}))})),G=u.forwardRefWithAs((function(t,o){var i=t.as,s=void 0===i?"li":i,l=t.children,c=t.disabled,g=t.onMouseDown,v=t.onMouseEnter,p=t.onMouseLeave,f=t.onMouseMove,b=t.onMouseUp,E=t.onTouchStart,h=t.value,y=t.label,D=d(t,["as","children","disabled","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onTouchStart","value","label"]),w=e.useContext(S),O=w.highlightedOptionRef,x=w.isExpanded,I=w.onValueChange,M=w.selectedOptionRef,N=w.send,m=w.state,T=w.stateData,R=T.value,C=T.navigationValue,K=e.useState(y),U=K[1],A=y||K[0]||"",L=e.useRef(null);r.useDescendant({element:L.current,value:h,label:A,disabled:!!c},_);var P=e.useCallback((function(e){!y&&e&&U((function(t){return e.textContent&&t!==e.textContent?e.textContent:t||""}))}),[y]),B=!!C&&C===h,V=R===h,k=u.useForkedRef(P,o,L,V?M:null,B?O:null);return e.createElement(s,Object.assign({"aria-selected":(x?B:V)||void 0,"aria-disabled":c||void 0,role:"option"},D,{ref:k,id:Q(h),"data-reach-listbox-option":"","data-current":V?"":void 0,"data-label":A,"data-value":h,onMouseDown:u.wrapEvent(g,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),N({type:a.OptionMouseDown}))})),onMouseEnter:u.wrapEvent(v,(function(){N({type:a.OptionMouseEnter,value:h,disabled:!!c})})),onMouseLeave:u.wrapEvent(p,(function(){N({type:a.ClearNavSelection})})),onMouseMove:u.wrapEvent(f,(function(){m!==n.Open&&C===h||N({type:a.OptionMouseMove,value:h,disabled:!!c})})),onMouseUp:u.wrapEvent(b,(function(e){u.isRightClick(e.nativeEvent)||N({type:a.OptionMouseUp,value:h,callback:I,disabled:!!c})})),onTouchStart:u.wrapEvent(E,(function(){N({type:a.OptionTouchStart,value:h,disabled:!!c})}))}),l)})),F=u.forwardRefWithAs((function(t,n){var a=t.as,i=void 0===a?"div":a,r=t.label,s=t.children,l=d(t,["as","label","children"]),c=e.useContext(S).listboxId,g=u.makeId("label",o.useId(l.id),c);return e.createElement(U.Provider,{value:{labelId:g}},e.createElement(i,Object.assign({"aria-labelledby":g,role:"group"},l,{"data-reach-listbox-group":"",ref:n}),r&&e.createElement(Y,null,r),s))})),Y=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"span":a,i=d(t,["as"]),r=e.useContext(U);return e.createElement(o,Object.assign({role:"presentation"},i,{ref:n,"data-reach-listbox-group-label":"",id:r.labelId}))}));function H(){var t=e.useContext(S),n=t.disabled,o=t.onValueChange,i=t.stateData,s=i.navigationValue,l=i.typeaheadQuery,d=t.send,c=r.useDescendants(_);e.useEffect((function(){l&&d({type:a.UpdateAfterTypeahead,query:l,callback:o});var e=window.setTimeout((function(){null!=l&&d({type:a.ClearTypeahead})}),1e3);return function(){window.clearTimeout(e)}}),[o,d,l]);var g=c.findIndex((function(e){return e.value===s}));return u.wrapEvent((function(e){var t=e.key,i=u.isString(t)&&1===t.length,r=c.find((function(e){return e.value===s}));switch(t){case"Enter":return void d({type:a.KeyDownEnter,value:s,callback:o,disabled:!(!(null==r?void 0:r.disabled)&&!n)});case" ":return e.preventDefault(),void d({type:a.KeyDownSpace,value:s,callback:o,disabled:!(!(null==r?void 0:r.disabled)&&!n)});case"Escape":return void d({type:a.KeyDownEscape});case"Tab":return void d({type:e.shiftKey?a.KeyDownShiftTab:a.KeyDownTab});default:return void(i&&d({type:a.KeyDownSearch,query:t,disabled:n}))}}),r.useDescendantKeyDown(_,{currentIndex:g,orientation:"vertical",key:"index",rotate:!0,filter:function(e){return!e.disabled},callback:function(e){d({type:a.KeyDownNavigate,value:c[e].value,disabled:n})}}))}function Q(t){var n=e.useContext(S);return t?u.makeId("option-"+t,n.listboxId):void 0}function z(e,t){return!(!e||!e.contains(t))}exports.Listbox=L,exports.ListboxArrow=k,exports.ListboxButton=B,exports.ListboxGroup=F,exports.ListboxGroupLabel=Y,exports.ListboxInput=A,exports.ListboxList=j,exports.ListboxOption=G,exports.ListboxPopover=q,exports.useListboxContext=function(){var t=e.useContext(S),n=t.highlightedOptionRef,a=t.listboxId,o=t.listboxValueLabel,i=t.isExpanded,r=t.selectedOptionRef,u=t.stateData.value;return e.useMemo((function(){return{id:a,isExpanded:i,selectedOptionRef:r,highlightedOptionRef:n,value:u,valueLabel:o}}),[a,i,u,o,r,n])};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("prop-types");var t,n,a,o=require("@reach/auto-id"),i=require("@reach/popover"),r=require("@reach/descendants"),u=require("@reach/utils"),s=require("@reach/machine");function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function d(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)t.indexOf(n=i[a])>=0||(o[n]=e[n]);return o}!function(e){e.Idle="IDLE",e.Open="OPEN",e.Navigating="NAVIGATING",e.Dragging="DRAGGING",e.Interacting="INTERACTING"}(n||(n={})),function(e){e.ButtonMouseDown="BUTTON_MOUSE_DOWN",e.ButtonMouseUp="BUTTON_MOUSE_UP",e.Blur="BLUR",e.ClearNavSelection="CLEAR_NAV_SELECTION",e.ClearTypeahead="CLEAR_TYPEAHEAD",e.GetDerivedData="GET_DERIVED_DATA",e.KeyDownEscape="KEY_DOWN_ESCAPE",e.KeyDownEnter="KEY_DOWN_ENTER",e.KeyDownSpace="KEY_DOWN_SPACE",e.KeyDownNavigate="KEY_DOWN_NAVIGATE",e.KeyDownSearch="KEY_DOWN_SEARCH",e.KeyDownTab="KEY_DOWN_TAB",e.KeyDownShiftTab="KEY_DOWN_SHIFT_TAB",e.OptionTouchStart="OPTION_TOUCH_START",e.OptionMouseMove="OPTION_MOUSE_MOVE",e.OptionMouseEnter="OPTION_MOUSE_ENTER",e.OutsideMouseDown="OUTSIDE_MOUSE_DOWN",e.OutsideMouseUp="OUTSIDE_MOUSE_UP",e.ValueChange="VALUE_CHANGE",e.OptionMouseDown="OPTION_MOUSE_DOWN",e.OptionMouseUp="OPTION_MOUSE_UP",e.PopoverPointerDown="POPOVER_POINTER_DOWN",e.PopoverPointerUp="POPOVER_POINTER_UP",e.UpdateAfterTypeahead="UPDATE_AFTER_TYPEAHEAD"}(a||(a={}));var c=s.assign({navigationValue:null}),g=s.assign({typeaheadQuery:null}),v=s.assign({value:function(e,t){return t.value}}),p=s.assign({navigationValue:function(e,t){return t.value}}),f=s.assign({navigationValue:function(e){var t,n,a=(t=e.value)?e.options.find((function(e){return e.value===t})):void 0;return a&&!a.disabled?e.value:(null===(n=e.options.find((function(e){return!e.disabled})))||void 0===n?void 0:n.value)||null}});function b(e,t){if(t.type===a.Blur){var n=t.refs,o=n.list,i=n.popover,r=t.relatedTarget,s=u.getOwnerDocument(i);return!((null==s?void 0:s.activeElement)===o||!i||i.contains(r||(null==s?void 0:s.activeElement)))}return!1}function E(e,t){if(t.type===a.OutsideMouseDown||t.type===a.OutsideMouseUp){var n=t.refs,o=n.button,i=n.popover,r=t.relatedTarget;return!(r===o||!o||o.contains(r)||!i||i.contains(r))}return!1}function h(e,t){return!!e.options.find((function(t){return t.value===e.navigationValue}))}function y(e,t){var n=t.refs,a=n.popover,o=n.list,i=t.relatedTarget;return!(a&&i&&a.contains(i)&&i!==o)&&h(e)}function D(e,t){requestAnimationFrame((function(){t.refs.list&&t.refs.list.focus()}))}function w(e,t){t.refs.button&&t.refs.button.focus()}function O(e,t){return!t.disabled}function x(e,t){return t.type!==a.OptionTouchStart||!t||!t.disabled}function I(e,t){return!(t&&t.disabled||null==e.navigationValue)}function M(e,t){t.callback&&t.callback(t.value)}function N(e,t){if(t.type===a.KeyDownEnter){var n=t.refs.hiddenInput;if(n&&n.form){var o=n.form.querySelector("button,[type='submit']");o&&o.click()}}}var m=s.assign({typeaheadQuery:function(e,t){return(e.typeaheadQuery||"")+t.query}}),T=s.assign({value:function(e,t){if(t.type===a.UpdateAfterTypeahead&&t.query){var n=K(e.options,t.query);if(n&&!n.disabled)return t.callback&&t.callback(n.value),n.value}return e.value}}),R=s.assign({navigationValue:function(e,t){if(t.type===a.UpdateAfterTypeahead&&t.query){var n=K(e.options,t.query);if(n&&!n.disabled)return n.value}return e.navigationValue}}),C=((t={})[a.GetDerivedData]={actions:s.assign((function(e,t){return l({},e,t.data)}))},t[a.ValueChange]={actions:[v,M]},t);function K(e,t){return void 0===t&&(t=""),t&&e.find((function(e){return!e.disabled&&e.label&&e.label.toLowerCase().startsWith(t.toLowerCase())}))||null}var S=r.createDescendantContext("ListboxDescendantContext"),_=u.createNamedContext("ListboxContext",{}),U=u.createNamedContext("ListboxGroupContext",{}),A=u.forwardRefWithAs((function(t,i){var K=t.as,U=void 0===K?"div":K,A=t["aria-labelledby"],L=t["aria-label"],P=t.children,B=t.defaultValue,V=t.disabled,k=void 0!==V&&V,W=t.form,q=t.name,j=t.onChange,G=t.required,F=t.value,Y=t._componentName,H=void 0===Y?"ListboxInput":Y,Q=d(t,["as","aria-labelledby","aria-label","children","defaultValue","disabled","form","name","onChange","required","value","_componentName"]),J=e.useRef(null!=F),X=r.useDescendantsInit(),Z=X[0],$=X[1],ee=u.useStableCallback(j),te=e.useRef(null),ne=e.useRef(null),ae=e.useRef(null),oe=e.useRef(null),ie=e.useRef(null),re=e.useRef(null),ue=e.useRef(null),se=s.useCreateMachine(function(e){var t,o,i,r,u,s;return{id:"listbox",initial:n.Idle,context:{value:e.value,options:[],navigationValue:null,typeaheadQuery:null},states:(s={},s[n.Idle]={on:l({},C,(t={},t[a.ButtonMouseDown]={target:n.Open,actions:[f],cond:O},t[a.KeyDownSpace]={target:n.Navigating,actions:[f,D],cond:O},t[a.KeyDownSearch]={target:n.Idle,actions:m,cond:O},t[a.UpdateAfterTypeahead]={target:n.Idle,actions:[T],cond:O},t[a.ClearTypeahead]={target:n.Idle,actions:g},t[a.KeyDownNavigate]={target:n.Navigating,actions:[f,g,D],cond:O},t[a.KeyDownEnter]={actions:[N],cond:O},t))},s[n.Interacting]={entry:[c],on:l({},C,(o={},o[a.ClearNavSelection]={actions:[c,D]},o[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},o[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},o[a.ButtonMouseDown]={target:n.Idle,actions:[w]},o[a.KeyDownEscape]={target:n.Idle,actions:[w]},o[a.OptionMouseDown]={target:n.Dragging},o[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Dragging,actions:g,cond:h}],o[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],o[a.KeyDownEnter]=n.Interacting,o[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],o[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},o[a.OptionMouseEnter]={target:n.Navigating,actions:[p,g],cond:x},o[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},o))},s[n.Open]={on:l({},C,(i={},i[a.ClearNavSelection]={actions:[c]},i[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},i[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},i[a.ButtonMouseDown]={target:n.Idle,actions:[w]},i[a.KeyDownEscape]={target:n.Idle,actions:[w]},i[a.OptionMouseDown]={target:n.Dragging},i[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Dragging,cond:h},{target:n.Interacting,actions:g}],i[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],i[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],i[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},i[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},i[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},i[a.KeyDownSearch]={target:n.Navigating,actions:m},i[a.UpdateAfterTypeahead]={actions:[R]},i[a.ClearTypeahead]={actions:g},i[a.OptionMouseMove]=[{target:n.Dragging,actions:[p],cond:x},{target:n.Dragging}],i))},s[n.Dragging]={on:l({},C,(r={},r[a.ClearNavSelection]={actions:[c]},r[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},r[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},r[a.ButtonMouseDown]={target:n.Idle,actions:[w]},r[a.KeyDownEscape]={target:n.Idle,actions:[w]},r[a.OptionMouseDown]={target:n.Dragging},r[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],r[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h,actions:D},{target:n.Interacting,actions:[g,D]}],r[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],r[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},r[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},r[a.OptionMouseEnter]={target:n.Dragging,actions:[p,g],cond:x},r[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},r[a.KeyDownSearch]={target:n.Navigating,actions:m},r[a.UpdateAfterTypeahead]={actions:[R]},r[a.ClearTypeahead]={actions:g},r[a.OptionMouseMove]=[{target:n.Navigating,actions:[p],cond:x},{target:n.Navigating}],r[a.OptionMouseUp]={target:n.Idle,actions:[v,g,w,M],cond:I},r))},s[n.Navigating]={on:l({},C,(u={},u[a.ClearNavSelection]={actions:[c,D]},u[a.KeyDownEnter]={target:n.Idle,actions:[v,g,w,M],cond:I},u[a.KeyDownSpace]={target:n.Idle,actions:[v,g,w,M],cond:I},u[a.ButtonMouseDown]={target:n.Idle,actions:[w]},u[a.KeyDownEscape]={target:n.Idle,actions:[w]},u[a.OptionMouseDown]={target:n.Dragging},u[a.OutsideMouseDown]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],u[a.OutsideMouseUp]=[{target:n.Idle,cond:E,actions:g},{target:n.Navigating,cond:h},{target:n.Interacting,actions:g}],u[a.Blur]=[{target:n.Idle,cond:b,actions:g},{target:n.Navigating,cond:y},{target:n.Interacting,actions:g}],u[a.ButtonMouseUp]={target:n.Navigating,actions:[f,D]},u[a.OptionTouchStart]={target:n.Navigating,actions:[p,g],cond:x},u[a.OptionMouseEnter]={target:n.Navigating,actions:[p,g],cond:x},u[a.KeyDownNavigate]={target:n.Navigating,actions:[p,g,D]},u[a.KeyDownSearch]={target:n.Navigating,actions:m},u[a.UpdateAfterTypeahead]={actions:[R]},u[a.ClearTypeahead]={actions:g},u[a.OptionMouseMove]=[{target:n.Navigating,actions:[p],cond:x},{target:n.Navigating}],u))},s)}}({value:(J.current?F:B)||null})),le=s.useMachine(se,{button:te,hiddenInput:ne,highlightedOption:ae,input:oe,list:ie,popover:re,selectedOption:ue},!1),de=le[0],ce=le[1],ge=o.useId(Q.id),ve=Q.id||u.makeId("listbox-input",ge),pe=u.useForkedRef(oe,i),fe=e.useMemo((function(){var e=Z.find((function(e){return e.value===de.context.value}));return e?e.label:null}),[Z,de.context.value]),be=function(e){return[n.Navigating,n.Open,n.Dragging,n.Interacting].includes(e)}(de.value),Ee=e.useMemo((function(){return{ariaLabel:L,ariaLabelledBy:A,disabled:k,isExpanded:be,listboxId:ve,listboxValueLabel:fe,onValueChange:ee,buttonRef:te,listRef:ie,popoverRef:re,selectedOptionRef:ue,highlightedOptionRef:ae,send:ce,state:de.value,stateData:de.context}}),[L,A,de.value,de.context,k,ve,be,ee,ce,fe]),he=e.useRef(!1);if(!J.current&&null==B&&!he.current&&Z.length){he.current=!0;var ye=Z.find((function(e){return!e.disabled}));ye&&ye.value&&ce({type:a.ValueChange,value:ye.value})}return u.useControlledSwitchWarning(F,"value",H),function(t,n,a){e.useRef(null!=t).current&&t!==n&&a()}(F,de.context.value,(function(){ce({type:a.ValueChange,value:F})})),u.useIsomorphicLayoutEffect((function(){ce({type:a.GetDerivedData,data:{options:Z}})}),[Z,ce]),e.useEffect((function(){function e(e){var t=e.target,n=e.relatedTarget;z(re.current,t)||ce({type:a.OutsideMouseDown,relatedTarget:n||t})}return be&&window.addEventListener("mousedown",e),function(){window.removeEventListener("mousedown",e)}}),[ce,be]),e.useEffect((function(){function e(e){var t=e.target,n=e.relatedTarget;z(re.current,t)||ce({type:a.OutsideMouseUp,relatedTarget:n||t})}return be&&window.addEventListener("mouseup",e),function(){window.removeEventListener("mouseup",e)}}),[ce,be]),u.useCheckStyles("listbox"),e.createElement(r.DescendantProvider,{context:S,items:Z,set:$},e.createElement(_.Provider,{value:Ee},e.createElement(U,Object.assign({},Q,{ref:pe,"data-reach-listbox-input":"","data-state":be?"expanded":"closed","data-value":de.context.value,id:ve}),u.isFunction(P)?P({id:ve,isExpanded:be,value:de.context.value,selectedOptionRef:ue,highlightedOptionRef:ae,valueLabel:fe,expanded:be}):P),(W||q||G)&&e.createElement("input",{ref:ne,"data-reach-listbox-hidden-input":"",disabled:k,form:W,name:q,readOnly:!0,required:G,tabIndex:-1,type:"hidden",value:de.context.value||""})))})),L=u.forwardRefWithAs((function(t,n){var a=t.arrow,o=void 0===a?"▼":a,i=t.button,r=t.children,s=t.portal,l=void 0===s||s,c=d(t,["arrow","button","children","portal"]);return e.createElement(A,Object.assign({},c,{_componentName:"Listbox",ref:n}),(function(t){var n=t.value,a=t.valueLabel;return e.createElement(e.Fragment,null,e.createElement(B,{arrow:o,children:i?u.isFunction(i)?i({value:n,label:a}):i:void 0}),e.createElement(q,{portal:l},e.createElement(j,null,r)))}))})),P=u.forwardRefWithAs((function(t,n){var o=t["aria-label"],i=t.arrow,r=void 0!==i&&i,s=t.as,l=void 0===s?"span":s,c=t.children,g=t.onKeyDown,v=t.onMouseDown,p=t.onMouseUp,f=d(t,["aria-label","arrow","as","children","onKeyDown","onMouseDown","onMouseUp"]),b=e.useContext(_),E=b.ariaLabelledBy,h=b.disabled,y=b.isExpanded,D=b.listboxId,w=b.send,O=b.listboxValueLabel,x=b.stateData.value,I=u.useForkedRef(b.buttonRef,n),M=H(),N=u.makeId("button",D),m=e.useMemo((function(){return c?u.isFunction(c)?c({isExpanded:y,label:O,value:x,expanded:y}):c:O}),[c,O,y,x]);return e.createElement(l,Object.assign({"aria-disabled":h||void 0,"aria-expanded":y||void 0,"aria-haspopup":"listbox","aria-labelledby":o?void 0:[E,N].filter(Boolean).join(" "),"aria-label":o,role:"button",tabIndex:h?-1:0},f,{ref:I,"data-reach-listbox-button":"",id:N,onKeyDown:u.wrapEvent(g,M),onMouseDown:u.wrapEvent(v,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),e.stopPropagation(),w({type:a.ButtonMouseDown,disabled:h}))})),onMouseUp:u.wrapEvent(p,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),e.stopPropagation(),w({type:a.ButtonMouseUp}))}))}),m,r&&e.createElement(k,null,u.isBoolean(r)?null:r))})),B=u.memoWithAs(P),V=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"span":a,i=t.children,r=d(t,["as","children"]),s=e.useContext(_).isExpanded;return e.createElement(o,Object.assign({"aria-hidden":!0},r,{ref:n,"data-reach-listbox-arrow":"","data-expanded":s?"":void 0}),u.isFunction(i)?i({isExpanded:s,expanded:s}):i||"▼")})),k=u.memoWithAs(V),W=u.forwardRefWithAs((function(t,n){var o=t.as,r=void 0===o?"div":o,s=t.position,c=void 0===s?i.positionMatchWidth:s,g=t.onBlur,v=t.onKeyDown,p=t.portal,f=void 0===p||p,b=t.unstable_observableRefs,E=d(t,["as","position","onBlur","onKeyDown","portal","unstable_observableRefs"]),h=e.useContext(_),y=h.buttonRef,D=h.send,w=h.isExpanded,O=u.useForkedRef(h.popoverRef,n),x=H(),I=l({hidden:!w,tabIndex:-1},E,{ref:O,"data-reach-listbox-popover":"",onBlur:u.wrapEvent(g,(function(e){var t=e.nativeEvent;requestAnimationFrame((function(){D({type:a.Blur,relatedTarget:t.relatedTarget||t.target})}))})),onKeyDown:u.wrapEvent(v,x)});return f?e.createElement(i.Popover,Object.assign({},I,{as:r,targetRef:y,position:c,unstable_observableRefs:b})):e.createElement(r,Object.assign({},I))})),q=u.memoWithAs(W),j=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"ul":a,i=d(t,["as"]),r=e.useContext(_),s=r.ariaLabel,l=r.ariaLabelledBy,c=r.isExpanded,g=r.listboxId,v=r.stateData,p=v.value,f=v.navigationValue,b=u.useForkedRef(n,r.listRef);return e.createElement(o,Object.assign({"aria-activedescendant":Q(c?f:p),"aria-labelledby":s?void 0:l,"aria-label":s,role:"listbox",tabIndex:-1},i,{ref:b,"data-reach-listbox-list":"",id:u.makeId("listbox",g)}))})),G=u.forwardRefWithAs((function(t,o){var i=t.as,s=void 0===i?"li":i,l=t.children,c=t.disabled,g=t.onMouseDown,v=t.onMouseEnter,p=t.onMouseLeave,f=t.onMouseMove,b=t.onMouseUp,E=t.onTouchStart,h=t.value,y=t.label,D=d(t,["as","children","disabled","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseUp","onTouchStart","value","label"]),w=e.useContext(_),O=w.highlightedOptionRef,x=w.isExpanded,I=w.onValueChange,M=w.selectedOptionRef,N=w.send,m=w.state,T=w.stateData,R=T.value,C=T.navigationValue,K=e.useState(y),U=K[1],A=y||K[0]||"",L=e.useRef(null);r.useDescendant({element:L.current,value:h,label:A,disabled:!!c},S);var P=e.useCallback((function(e){!y&&e&&U((function(t){return e.textContent&&t!==e.textContent?e.textContent:t||""}))}),[y]),B=!!C&&C===h,V=R===h,k=u.useForkedRef(P,o,L,V?M:null,B?O:null);return e.createElement(s,Object.assign({"aria-selected":(x?B:V)||void 0,"aria-disabled":c||void 0,role:"option"},D,{ref:k,id:Q(h),"data-reach-listbox-option":"","data-current":V?"":void 0,"data-label":A,"data-value":h,onMouseDown:u.wrapEvent(g,(function(e){u.isRightClick(e.nativeEvent)||(e.preventDefault(),N({type:a.OptionMouseDown}))})),onMouseEnter:u.wrapEvent(v,(function(){N({type:a.OptionMouseEnter,value:h,disabled:!!c})})),onMouseLeave:u.wrapEvent(p,(function(){N({type:a.ClearNavSelection})})),onMouseMove:u.wrapEvent(f,(function(){m!==n.Open&&C===h||N({type:a.OptionMouseMove,value:h,disabled:!!c})})),onMouseUp:u.wrapEvent(b,(function(e){u.isRightClick(e.nativeEvent)||N({type:a.OptionMouseUp,value:h,callback:I,disabled:!!c})})),onTouchStart:u.wrapEvent(E,(function(){N({type:a.OptionTouchStart,value:h,disabled:!!c})}))}),l)})),F=u.forwardRefWithAs((function(t,n){var a=t.as,i=void 0===a?"div":a,r=t.label,s=t.children,l=d(t,["as","label","children"]),c=e.useContext(_).listboxId,g=u.makeId("label",o.useId(l.id),c);return e.createElement(U.Provider,{value:{labelId:g}},e.createElement(i,Object.assign({"aria-labelledby":g,role:"group"},l,{"data-reach-listbox-group":"",ref:n}),r&&e.createElement(Y,null,r),s))})),Y=u.forwardRefWithAs((function(t,n){var a=t.as,o=void 0===a?"span":a,i=d(t,["as"]),r=e.useContext(U);return e.createElement(o,Object.assign({role:"presentation"},i,{ref:n,"data-reach-listbox-group-label":"",id:r.labelId}))}));function H(){var t=e.useContext(_),n=t.disabled,o=t.onValueChange,i=t.stateData,s=i.navigationValue,l=i.typeaheadQuery,d=t.send,c=r.useDescendants(S);e.useEffect((function(){l&&d({type:a.UpdateAfterTypeahead,query:l,callback:o});var e=window.setTimeout((function(){null!=l&&d({type:a.ClearTypeahead})}),1e3);return function(){window.clearTimeout(e)}}),[o,d,l]);var g=c.findIndex((function(e){return e.value===s}));return u.wrapEvent((function(e){var t=e.key,i=u.isString(t)&&1===t.length,r=c.find((function(e){return e.value===s}));switch(t){case"Enter":return void d({type:a.KeyDownEnter,value:s,callback:o,disabled:!(!(null==r?void 0:r.disabled)&&!n)});case" ":return e.preventDefault(),void d({type:a.KeyDownSpace,value:s,callback:o,disabled:!(!(null==r?void 0:r.disabled)&&!n)});case"Escape":return void d({type:a.KeyDownEscape});case"Tab":return void d({type:e.shiftKey?a.KeyDownShiftTab:a.KeyDownTab});default:return void(i&&d({type:a.KeyDownSearch,query:t,disabled:n}))}}),r.useDescendantKeyDown(S,{currentIndex:g,orientation:"vertical",key:"index",rotate:!0,filter:function(e){return!e.disabled},callback:function(e){d({type:a.KeyDownNavigate,value:c[e].value,disabled:n})}}))}function Q(t){var n=e.useContext(_);return t?u.makeId("option-"+t,n.listboxId):void 0}function z(e,t){return!(!e||!e.contains(t))}exports.Listbox=L,exports.ListboxArrow=k,exports.ListboxButton=B,exports.ListboxGroup=F,exports.ListboxGroupLabel=Y,exports.ListboxInput=A,exports.ListboxList=j,exports.ListboxOption=G,exports.ListboxPopover=q,exports.useListboxContext=function(){var t=e.useContext(_),n=t.highlightedOptionRef,a=t.listboxId,o=t.listboxValueLabel,i=t.isExpanded,r=t.selectedOptionRef,u=t.stateData.value;return e.useMemo((function(){return{id:a,isExpanded:i,selectedOptionRef:r,highlightedOptionRef:n,value:u,valueLabel:o}}),[a,i,u,o,r,n])};
//# sourceMappingURL=listbox.cjs.production.min.js.map

@@ -1,2 +0,2 @@

import { useRef, useCallback, useMemo, useEffect, createElement, Fragment, useContext, useState } from 'react';
import { useRef, useMemo, useEffect, createElement, Fragment, useContext, useState, useCallback } from 'react';
import PropTypes from 'prop-types';

@@ -6,3 +6,3 @@ import { useId } from '@reach/auto-id';

import { useDescendantsInit, DescendantProvider, useDescendant, createDescendantContext, useDescendants, useDescendantKeyDown } from '@reach/descendants';
import { getOwnerDocument, forwardRefWithAs, makeId, useForkedRef, useControlledSwitchWarning, useIsomorphicLayoutEffect, useCheckStyles, isFunction, memoWithAs, wrapEvent, createNamedContext, isBoolean, isRightClick, isString } from '@reach/utils';
import { getOwnerDocument, forwardRefWithAs, useStableCallback, makeId, useForkedRef, useControlledSwitchWarning, useIsomorphicLayoutEffect, useCheckStyles, isFunction, memoWithAs, wrapEvent, createNamedContext, isBoolean, isRightClick, isString } from '@reach/utils';
import { assign, useCreateMachine, useMachine } from '@reach/machine';

@@ -1620,24 +1620,4 @@

}
/**
* Importing this from @reach/utils is breaking the docs site. Unsure why as of
* yet. Including here in the mean time.
*
* Converts a callback to a ref to avoid triggering re-renders when passed as a
* prop and exposed as a stable function to avoid executing effects when passed
* as a dependency.
*/
function useStableCallback(callback) {
var callbackRef = useRef(callback);
useEffect(function () {
callbackRef.current = callback;
}); // eslint-disable-next-line react-hooks/exhaustive-deps
return useCallback(function () {
callbackRef.current && callbackRef.current.apply(callbackRef, arguments);
}, []);
}
export { Listbox, ListboxArrow, ListboxButton, ListboxGroup, ListboxGroupLabel, ListboxInput, ListboxList, ListboxOption, ListboxPopover, useListboxContext };
//# sourceMappingURL=listbox.esm.js.map
{
"name": "@reach/listbox",
"version": "0.12.0",
"version": "0.12.1",
"description": "Accessible React listbox input.",

@@ -16,7 +16,7 @@ "author": "React Training <hello@reacttraining.com>",

"dependencies": {
"@reach/auto-id": "0.12.0",
"@reach/descendants": "0.12.0",
"@reach/machine": "0.12.0",
"@reach/popover": "0.12.0",
"@reach/utils": "0.12.0",
"@reach/auto-id": "0.12.1",
"@reach/descendants": "0.12.1",
"@reach/machine": "0.12.1",
"@reach/popover": "0.12.1",
"@reach/utils": "0.12.1",
"prop-types": "^15.7.2"

@@ -36,3 +36,3 @@ },

],
"gitHead": "09eeccda6e4597d21545982c53db5c42beddce6b"
"gitHead": "97b32791ce33f822f6bc9f07f6cebfb343d8032d"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc