@sps-woodland/focused-task 8.17.2 → 8.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.cjs.js +3 -3
- package/lib/index.es.js +414 -402
- package/lib/style.css +1 -1
- package/package.json +7 -7
package/lib/index.cjs.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("@sps-woodland/core"),Be=require("@sps-woodland/buttons"),u=require("react"),He=require("react-dom"),ue=require("@spscommerce/utils");function Ve(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const f=Ve(u),g=typeof document<"u"?u.useLayoutEffect:()=>{};function R(e){const t=u.useRef(null);return g(()=>{t.current=e},[e]),u.useCallback((...n)=>{const r=t.current;return r==null?void 0:r(...n)},[])}function je(e){let[t,n]=u.useState(e),r=u.useRef(null),o=R(()=>{if(!r.current)return;let a=r.current.next();if(a.done){r.current=null;return}t===a.value?o():n(a.value)});g(()=>{r.current&&o()});let i=R(a=>{r.current=a(t),o()});return[t,i]}const V={prefix:String(Math.round(Math.random()*1e10)),current:0},Ee=u.createContext(V),Ke=u.createContext(!1);let qe=!!(typeof window<"u"&&window.document&&window.document.createElement),Y=new WeakMap;function ze(e=!1){let t=u.useContext(Ee),n=u.useRef(null);if(n.current===null&&!e){var r,o;let i=(o=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||o===void 0||(r=o.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(i){let a=Y.get(i);a==null?Y.set(i,{id:t.current,state:i.memoizedState}):i.memoizedState!==a.state&&(t.current=a.id,Y.delete(i))}n.current=++t.current}return n.current}function Ge(e){let t=u.useContext(Ee);t===V&&!qe&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=ze(!!e),r=t===V&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function Ue(e){let t=u.useId(),[n]=u.useState(we()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${V.prefix}`;return e||`${r}-${t}`}const Je=typeof u.useId=="function"?Ue:Ge;function Xe(){return!1}function Ye(){return!0}function Qe(e){return()=>{}}function we(){return typeof u.useSyncExternalStore=="function"?u.useSyncExternalStore(Qe,Xe,Ye):u.useContext(Ke)}let Ze=!!(typeof window<"u"&&window.document&&window.document.createElement),j=new Map;function ye(e){let[t,n]=u.useState(e),r=u.useRef(null),o=Je(t),i=u.useCallback(a=>{r.current=a},[]);return Ze&&j.set(o,i),g(()=>{let a=o;return()=>{j.delete(a)}},[o]),u.useEffect(()=>{let a=r.current;a&&(r.current=null,n(a))}),o}function et(e,t){if(e===t)return e;let n=j.get(e);if(n)return n(t),t;let r=j.get(t);return r?(r(e),e):t}function tt(e=[]){let t=ye(),[n,r]=je(t),o=u.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return g(o,[t,o,...e]),n}function K(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const E=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},q=e=>e&&"window"in e&&e.window===e?e:E(e).defaultView||window;function Te(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Te(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function nt(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Te(e))&&(r&&(r+=" "),r+=t);return r}function rt(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let o in r){let i=t[o],a=r[o];typeof i=="function"&&typeof a=="function"&&o[0]==="o"&&o[1]==="n"&&o.charCodeAt(2)>=65&&o.charCodeAt(2)<=90?t[o]=K(i,a):(o==="className"||o==="UNSAFE_className")&&typeof i=="string"&&typeof a=="string"?t[o]=nt(i,a):o==="id"&&i&&a?t.id=et(i,a):t[o]=a!==void 0?a:i}}return t}const ot=new Set(["id"]),at=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),it=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),lt=/^(data-.*)$/;function st(e,t={}){let{labelable:n,isLink:r,propNames:o}=t,i={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(ot.has(a)||n&&at.has(a)||r&&it.has(a)||o!=null&&o.has(a)||lt.test(a))&&(i[a]=e[a]);return i}function de(e){if(ct())e.focus({preventScroll:!0});else{let t=ut(e);e.focus(),dt(t)}}let I=null;function ct(){if(I==null){I=!1;try{document.createElement("div").focus({get preventScroll(){return I=!0,!0}})}catch{}}return I}function ut(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function dt(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function ft(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function oe(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function ke(){return oe(/^Mac/i)}function pt(){return oe(/^iPhone/i)}function bt(){return oe(/^iPad/i)||ke()&&navigator.maxTouchPoints>1}function vt(){return pt()||bt()}function mt(){return ft(/Android/i)}let L=new Map,ee=new Set;function fe(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let o=L.get(r.target);o||(o=new Set,L.set(r.target,o),r.target.addEventListener("transitioncancel",n,{once:!0})),o.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let o=L.get(r.target);if(o&&(o.delete(r.propertyName),o.size===0&&(r.target.removeEventListener("transitioncancel",n),L.delete(r.target)),L.size===0)){for(let i of ee)i();ee.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?fe():document.addEventListener("DOMContentLoaded",fe));function $t(e){requestAnimationFrame(()=>{L.size===0?e():ee.add(e)})}function pe(e,t){let n=window.getComputedStyle(e),r=/(auto|scroll)/.test(n.overflow+n.overflowX+n.overflowY);return r&&t&&(r=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),r}function xe(e,t){let n=e;for(pe(n,t)&&(n=n.parentElement);n&&!pe(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function ht(e){return e.mozInputSource===0&&e.isTrusted?!0:mt()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function gt(e,t,n){let[r,o]=u.useState(e||t),i=u.useRef(e!==void 0),a=e!==void 0;u.useEffect(()=>{let l=i.current;l!==a&&console.warn(`WARN: A component changed from ${l?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}.`),i.current=a},[a]);let c=a?e:r,d=u.useCallback((l,...s)=>{let p=(b,...m)=>{n&&(Object.is(c,b)||n(b,...m)),a||(c=b)};typeof l=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),o((m,...v)=>{let N=l(a?c:m,...v);return p(N,...s),a?m:N})):(a||o(l),p(l,...s))},[a,c,n]);return[c,d]}const Se=u.createContext({register:()=>{}});Se.displayName="PressResponderContext";function Et({children:e}){let t=u.useMemo(()=>({register:()=>{}}),[]);return u.createElement(Se.Provider,{value:t},e)}class wt{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function yt(e){let t=u.useRef({isFocused:!1,observer:null});g(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=R(r=>{e==null||e(r)});return u.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let o=r.target,i=a=>{t.current.isFocused=!1,o.disabled&&n(new wt("blur",a)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};o.addEventListener("focusout",i,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&o.disabled){var a;(a=t.current.observer)===null||a===void 0||a.disconnect();let c=o===document.activeElement?null:document.activeElement;o.dispatchEvent(new FocusEvent("blur",{relatedTarget:c})),o.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:c}))}}),t.current.observer.observe(o,{attributes:!0,attributeFilter:["disabled"]})}},[n])}let W=null,Tt=new Set,A=new Map,P=!1,te=!1;function ae(e,t){for(let n of Tt)n(e,t)}function kt(e){return!(e.metaKey||!ke()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function z(e){P=!0,kt(e)&&(W="keyboard",ae("keyboard",e))}function k(e){W="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(P=!0,ae("pointer",e))}function Ne(e){ht(e)&&(P=!0,W="virtual")}function Ce(e){e.target===window||e.target===document||(!P&&!te&&(W="virtual",ae("virtual",e)),P=!1,te=!1)}function Fe(){P=!1,te=!0}function be(e){if(typeof window>"u"||A.get(q(e)))return;const t=q(e),n=E(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){P=!0,r.apply(this,arguments)},n.addEventListener("keydown",z,!0),n.addEventListener("keyup",z,!0),n.addEventListener("click",Ne,!0),t.addEventListener("focus",Ce,!0),t.addEventListener("blur",Fe,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",k,!0),n.addEventListener("pointermove",k,!0),n.addEventListener("pointerup",k,!0)):(n.addEventListener("mousedown",k,!0),n.addEventListener("mousemove",k,!0),n.addEventListener("mouseup",k,!0)),t.addEventListener("beforeunload",()=>{Pe(e)},{once:!0}),A.set(t,{focus:r})}const Pe=(e,t)=>{const n=q(e),r=E(e);t&&r.removeEventListener("DOMContentLoaded",t),A.has(n)&&(n.HTMLElement.prototype.focus=A.get(n).focus,r.removeEventListener("keydown",z,!0),r.removeEventListener("keyup",z,!0),r.removeEventListener("click",Ne,!0),n.removeEventListener("focus",Ce,!0),n.removeEventListener("blur",Fe,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",k,!0),r.removeEventListener("pointermove",k,!0),r.removeEventListener("pointerup",k,!0)):(r.removeEventListener("mousedown",k,!0),r.removeEventListener("mousemove",k,!0),r.removeEventListener("mouseup",k,!0)),A.delete(n))};function xt(e){const t=E(e);let n;return t.readyState!=="loading"?be(e):(n=()=>{be(e)},t.addEventListener("DOMContentLoaded",n)),()=>Pe(e,n)}typeof document<"u"&&xt();function St(){return W}function Nt(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:o}=e,i=u.useRef({isFocusWithin:!1}),a=u.useCallback(l=>{i.current.isFocusWithin&&!l.currentTarget.contains(l.relatedTarget)&&(i.current.isFocusWithin=!1,n&&n(l),o&&o(!1))},[n,o,i]),c=yt(a),d=u.useCallback(l=>{!i.current.isFocusWithin&&document.activeElement===l.target&&(r&&r(l),o&&o(!0),i.current.isFocusWithin=!0,c(l))},[r,o,c]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:d,onBlur:a}}}function Ct(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:o}=e,i=u.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=R(d=>{n&&B(d,t)&&(o&&o(d),i.current.isPointerDown=!0)}),c=R(d=>{n&&n(d)});u.useEffect(()=>{let d=i.current;if(r)return;const l=t.current,s=E(l);if(typeof PointerEvent<"u"){let p=b=>{d.isPointerDown&&B(b,t)&&c(b),d.isPointerDown=!1};return s.addEventListener("pointerdown",a,!0),s.addEventListener("pointerup",p,!0),()=>{s.removeEventListener("pointerdown",a,!0),s.removeEventListener("pointerup",p,!0)}}else{let p=m=>{d.ignoreEmulatedMouseEvents?d.ignoreEmulatedMouseEvents=!1:d.isPointerDown&&B(m,t)&&c(m),d.isPointerDown=!1},b=m=>{d.ignoreEmulatedMouseEvents=!0,d.isPointerDown&&B(m,t)&&c(m),d.isPointerDown=!1};return s.addEventListener("mousedown",a,!0),s.addEventListener("mouseup",p,!0),s.addEventListener("touchstart",a,!0),s.addEventListener("touchend",b,!0),()=>{s.removeEventListener("mousedown",a,!0),s.removeEventListener("mouseup",p,!0),s.removeEventListener("touchstart",a,!0),s.removeEventListener("touchend",b,!0)}}},[t,r,a,c])}function B(e,t){if(e.button>0)return!1;if(e.target){const n=e.target.ownerDocument;if(!n||!n.documentElement.contains(e.target)||e.target.closest("[data-react-aria-top-layer]"))return!1}return t.current&&!t.current.contains(e.target)}function ne(e){const t=E(e);if(St()==="virtual"){let n=t.activeElement;$t(()=>{t.activeElement===n&&e.isConnected&&de(e)})}else de(e)}function Ft(e){const t=q(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:n,visibility:r}=e.style,o=n!=="none"&&r!=="hidden"&&r!=="collapse";if(o){const{getComputedStyle:i}=e.ownerDocument.defaultView;let{display:a,visibility:c}=i(e);o=a!=="none"&&c!=="hidden"&&c!=="collapse"}return o}function Pt(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&(e.nodeName==="DETAILS"&&t&&t.nodeName!=="SUMMARY"?e.hasAttribute("open"):!0)}function Le(e,t){return e.nodeName!=="#comment"&&Ft(e)&&Pt(e,t)&&(!e.parentElement||Le(e.parentElement,e))}const ve=u.createContext(null);let $=null;function Lt(e){let{children:t,contain:n,restoreFocus:r,autoFocus:o}=e,i=u.useRef(null),a=u.useRef(null),c=u.useRef([]),{parentNode:d}=u.useContext(ve)||{},l=u.useMemo(()=>new re({scopeRef:c}),[c]);g(()=>{let b=d||h.root;if(h.getTreeNode(b.scopeRef)&&$&&!U($,b.scopeRef)){let m=h.getTreeNode($);m&&(b=m)}b.addChild(l),h.addNode(l)},[l,d]),g(()=>{let b=h.getTreeNode(c);b&&(b.contain=!!n)},[n]),g(()=>{var b;let m=(b=i.current)===null||b===void 0?void 0:b.nextSibling,v=[];for(;m&&m!==a.current;)v.push(m),m=m.nextSibling;c.current=v},[t]),Wt(c,r,n),Dt(c,n),Bt(c,r,n),Rt(c,o),u.useEffect(()=>{const b=E(c.current?c.current[0]:void 0).activeElement;let m=null;if(w(b,c.current)){for(let v of h.traverse())v.scopeRef&&w(b,v.scopeRef.current)&&(m=v);m===h.getTreeNode(c)&&($=m.scopeRef)}},[c]),g(()=>()=>{var b,m,v;let N=(v=(m=h.getTreeNode(c))===null||m===void 0||(b=m.parent)===null||b===void 0?void 0:b.scopeRef)!==null&&v!==void 0?v:null;(c===$||U(c,$))&&(!N||h.getTreeNode(N))&&($=N),h.removeTreeNode(c)},[c]);let s=u.useMemo(()=>_t(c),[]),p=u.useMemo(()=>({focusManager:s,parentNode:l}),[l,s]);return u.createElement(ve.Provider,{value:p},u.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:i}),t,u.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function _t(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:o,wrap:i,accept:a}=t,c=r||E(n[0]).activeElement,d=n[0].previousElementSibling,l=F(n),s=C(l,{tabbable:o,accept:a},n);s.currentNode=w(c,n)?c:d;let p=s.nextNode();return!p&&i&&(s.currentNode=d,p=s.nextNode()),p&&S(p,!0),p},focusPrevious(t={}){let n=e.current,{from:r,tabbable:o,wrap:i,accept:a}=t,c=r||E(n[0]).activeElement,d=n[n.length-1].nextElementSibling,l=F(n),s=C(l,{tabbable:o,accept:a},n);s.currentNode=w(c,n)?c:d;let p=s.previousNode();return!p&&i&&(s.currentNode=d,p=s.previousNode()),p&&S(p,!0),p},focusFirst(t={}){let n=e.current,{tabbable:r,accept:o}=t,i=F(n),a=C(i,{tabbable:r,accept:o},n);a.currentNode=n[0].previousElementSibling;let c=a.nextNode();return c&&S(c,!0),c},focusLast(t={}){let n=e.current,{tabbable:r,accept:o}=t,i=F(n),a=C(i,{tabbable:r,accept:o},n);a.currentNode=n[n.length-1].nextElementSibling;let c=a.previousNode();return c&&S(c,!0),c}}}const ie=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[contenteditable]"],Ot=ie.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";ie.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const Mt=ie.join(':not([hidden]):not([tabindex="-1"]),');function F(e){return e[0].parentElement}function D(e){let t=h.getTreeNode($);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function Dt(e,t){let n=u.useRef(),r=u.useRef();g(()=>{let o=e.current;if(!t){r.current&&(cancelAnimationFrame(r.current),r.current=void 0);return}const i=E(o?o[0]:void 0);let a=l=>{if(l.key!=="Tab"||l.altKey||l.ctrlKey||l.metaKey||!D(e)||l.isComposing)return;let s=i.activeElement,p=e.current;if(!p||!w(s,p))return;let b=F(p),m=C(b,{tabbable:!0},p);if(!s)return;m.currentNode=s;let v=l.shiftKey?m.previousNode():m.nextNode();v||(m.currentNode=l.shiftKey?p[p.length-1].nextElementSibling:p[0].previousElementSibling,v=l.shiftKey?m.previousNode():m.nextNode()),l.preventDefault(),v&&S(v,!0)},c=l=>{(!$||U($,e))&&w(l.target,e.current)?($=e,n.current=l.target):D(e)&&!G(l.target,e)?n.current?n.current.focus():$&&$.current&&J($.current):D(e)&&(n.current=l.target)},d=l=>{r.current&&cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{if(i.activeElement&&D(e)&&!G(i.activeElement,e))if($=e,i.body.contains(l.target)){var s;n.current=l.target,(s=n.current)===null||s===void 0||s.focus()}else $.current&&J($.current)})};return i.addEventListener("keydown",a,!1),i.addEventListener("focusin",c,!1),o==null||o.forEach(l=>l.addEventListener("focusin",c,!1)),o==null||o.forEach(l=>l.addEventListener("focusout",d,!1)),()=>{i.removeEventListener("keydown",a,!1),i.removeEventListener("focusin",c,!1),o==null||o.forEach(l=>l.removeEventListener("focusin",c,!1)),o==null||o.forEach(l=>l.removeEventListener("focusout",d,!1))}},[e,t]),g(()=>()=>{r.current&&cancelAnimationFrame(r.current)},[r])}function _e(e){return G(e)}function w(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}function G(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of h.traverse(h.getTreeNode(t)))if(n&&w(e,n.current))return!0;return!1}function At(e){return G(e,$)}function U(e,t){var n;let r=(n=h.getTreeNode(t))===null||n===void 0?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function S(e,t=!1){if(e!=null&&!t)try{ne(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function J(e,t=!0){let n=e[0].previousElementSibling,r=F(e),o=C(r,{tabbable:t},e);o.currentNode=n;let i=o.nextNode();t&&!i&&(r=F(e),o=C(r,{tabbable:!1},e),o.currentNode=n,i=o.nextNode()),S(i)}function Rt(e,t){const n=u.useRef(t);u.useEffect(()=>{if(n.current){$=e;const r=E(e.current?e.current[0]:void 0);!w(r.activeElement,$.current)&&e.current&&J(e.current)}n.current=!1},[e])}function Wt(e,t,n){g(()=>{if(t||n)return;let r=e.current;const o=E(r?r[0]:void 0);let i=a=>{let c=a.target;w(c,e.current)?$=e:_e(c)||($=null)};return o.addEventListener("focusin",i,!1),r==null||r.forEach(a=>a.addEventListener("focusin",i,!1)),()=>{o.removeEventListener("focusin",i,!1),r==null||r.forEach(a=>a.removeEventListener("focusin",i,!1))}},[e,t,n])}function It(e){let t=h.getTreeNode($);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(t==null?void 0:t.scopeRef)===e}function Bt(e,t,n){const r=u.useRef(typeof document<"u"?E(e.current?e.current[0]:void 0).activeElement:null);g(()=>{let o=e.current;const i=E(o?o[0]:void 0);if(!t||n)return;let a=()=>{(!$||U($,e))&&w(i.activeElement,e.current)&&($=e)};return i.addEventListener("focusin",a,!1),o==null||o.forEach(c=>c.addEventListener("focusin",a,!1)),()=>{i.removeEventListener("focusin",a,!1),o==null||o.forEach(c=>c.removeEventListener("focusin",a,!1))}},[e,n]),g(()=>{const o=E(e.current?e.current[0]:void 0);if(!t)return;let i=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!D(e)||a.isComposing)return;let c=o.activeElement;if(!w(c,e.current))return;let d=h.getTreeNode(e);if(!d)return;let l=d.nodeToRestore,s=C(o.body,{tabbable:!0});s.currentNode=c;let p=a.shiftKey?s.previousNode():s.nextNode();if((!l||!o.body.contains(l)||l===o.body)&&(l=void 0,d.nodeToRestore=void 0),(!p||!w(p,e.current))&&l){s.currentNode=l;do p=a.shiftKey?s.previousNode():s.nextNode();while(w(p,e.current));a.preventDefault(),a.stopPropagation(),p?S(p,!0):_e(l)?S(l,!0):c.blur()}};return n||o.addEventListener("keydown",i,!0),()=>{n||o.removeEventListener("keydown",i,!0)}},[e,t,n]),g(()=>{const o=E(e.current?e.current[0]:void 0);if(!t)return;let i=h.getTreeNode(e);if(i){var a;return i.nodeToRestore=(a=r.current)!==null&&a!==void 0?a:void 0,()=>{let c=h.getTreeNode(e);if(!c)return;let d=c.nodeToRestore;if(t&&d&&(w(o.activeElement,e.current)||o.activeElement===o.body&&It(e))){let l=h.clone();requestAnimationFrame(()=>{if(o.activeElement===o.body){let s=l.getTreeNode(e);for(;s;){if(s.nodeToRestore&&s.nodeToRestore.isConnected){S(s.nodeToRestore);return}s=s.parent}for(s=l.getTreeNode(e);s;){if(s.scopeRef&&s.scopeRef.current&&h.getTreeNode(s.scopeRef)){J(s.scopeRef.current,!0);return}s=s.parent}}})}}}},[e,t])}function C(e,t,n){let r=t!=null&&t.tabbable?Mt:Ot,o=E(e).createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(i){var a;return!(t==null||(a=t.from)===null||a===void 0)&&a.contains(i)?NodeFilter.FILTER_REJECT:i.matches(r)&&Le(i)&&(!n||w(i,n))&&(!(t!=null&&t.accept)||t.accept(i))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t!=null&&t.from&&(o.currentNode=t.from),o}class le{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let o=this.fastMap.get(n??null);if(!o)return;let i=new re({scopeRef:t});o.addChild(i),i.parent=o,this.fastMap.set(t,i),r&&(i.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let i of this.traverse())i!==n&&n.nodeToRestore&&i.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&w(i.nodeToRestore,n.scopeRef.current)&&(i.nodeToRestore=n.nodeToRestore);let o=n.children;r&&(r.removeChild(n),o.size>0&&o.forEach(i=>r&&r.addChild(i))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new le;var r;for(let o of this.traverse())n.addTreeNode(o.scopeRef,(r=(t=o.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,o.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new re({scopeRef:null}),this.fastMap.set(null,this.root)}}class re{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}let h=new le;const Ht=new WeakMap,x=[];function Vt(e,t){let{onClose:n,shouldCloseOnBlur:r,isOpen:o,isDismissable:i=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:c}=e;u.useEffect(()=>(o&&x.push(t),()=>{let v=x.indexOf(t);v>=0&&x.splice(v,1)}),[o,t]);let d=()=>{x[x.length-1]===t&&n&&n()},l=v=>{(!c||c(v.target))&&x[x.length-1]===t&&(v.stopPropagation(),v.preventDefault())},s=v=>{(!c||c(v.target))&&(x[x.length-1]===t&&(v.stopPropagation(),v.preventDefault()),d())},p=v=>{v.key==="Escape"&&!a&&!v.nativeEvent.isComposing&&(v.stopPropagation(),v.preventDefault(),d())};Ct({ref:t,onInteractOutside:i&&o?s:null,onInteractOutsideStart:l});let{focusWithinProps:b}=Nt({isDisabled:!r,onBlurWithin:v=>{!v.relatedTarget||At(v.relatedTarget)||(!c||c(v.relatedTarget))&&n()}}),m=v=>{v.target===v.currentTarget&&v.preventDefault()};return{overlayProps:{onKeyDown:p,...b},underlayProps:{onPointerDown:m}}}function jt(e,t,n){let{type:r}=e,{isOpen:o}=t;u.useEffect(()=>{n&&n.current&&Ht.set(n.current,t.close)});let i;r==="menu"?i=!0:r==="listbox"&&(i="listbox");let a=ye();return{triggerProps:{"aria-haspopup":i,"aria-expanded":o,"aria-controls":o?a:null,onPress:t.toggle},overlayProps:{id:a}}}const Q=typeof document<"u"&&window.visualViewport,Kt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let H=0,Z;function qt(e={}){let{isDisabled:t}=e;g(()=>{if(!t)return H++,H===1&&(vt()?Z=Gt():Z=zt()),()=>{H--,H===0&&Z()}},[t])}function zt(){return K(_(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),_(document.documentElement,"overflow","hidden"))}function Gt(){let e,t,n=l=>{e=xe(l.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=_(e,"overscrollBehavior","contain"))},r=l=>{if(!e||e===document.documentElement||e===document.body){l.preventDefault();return}e.scrollHeight===e.clientHeight&&e.scrollWidth===e.clientWidth&&l.preventDefault()},o=l=>{let s=l.target;$e(s)&&s!==document.activeElement&&(l.preventDefault(),c(),s.style.transform="translateY(-2000px)",s.focus(),requestAnimationFrame(()=>{s.style.transform=""})),t&&t()},i=l=>{let s=l.target;$e(s)&&(c(),s.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{s.style.transform="",Q&&(Q.height<window.innerHeight?requestAnimationFrame(()=>{me(s)}):Q.addEventListener("resize",()=>me(s),{once:!0}))}))},a=null,c=()=>{if(a)return;let l=()=>{window.scrollTo(0,0)},s=window.pageXOffset,p=window.pageYOffset;a=K(O(window,"scroll",l),_(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),_(document.documentElement,"overflow","hidden"),_(document.body,"marginTop",`-${p}px`),()=>{window.scrollTo(s,p)}),window.scrollTo(0,0)},d=K(O(document,"touchstart",n,{passive:!1,capture:!0}),O(document,"touchmove",r,{passive:!1,capture:!0}),O(document,"touchend",o,{passive:!1,capture:!0}),O(document,"focus",i,!0));return()=>{t==null||t(),a==null||a(),d()}}function _(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function O(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function me(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let n=xe(e);if(n!==document.documentElement&&n!==document.body&&n!==e){let r=n.getBoundingClientRect().top,o=e.getBoundingClientRect().top;o>r+e.clientHeight&&(n.scrollTop+=o-r)}e=n.parentElement}}function $e(e){return e instanceof HTMLInputElement&&!Kt.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}let M=new WeakMap,y=[];function Ut(e,t=document.body){let n=new Set(e),r=new Set,o=d=>{for(let b of d.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))n.add(b);let l=b=>{if(n.has(b)||r.has(b.parentElement)&&b.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let m of n)if(b.contains(m))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},s=document.createTreeWalker(d,NodeFilter.SHOW_ELEMENT,{acceptNode:l}),p=l(d);if(p===NodeFilter.FILTER_ACCEPT&&i(d),p!==NodeFilter.FILTER_REJECT){let b=s.nextNode();for(;b!=null;)i(b),b=s.nextNode()}},i=d=>{var l;let s=(l=M.get(d))!==null&&l!==void 0?l:0;d.getAttribute("aria-hidden")==="true"&&s===0||(s===0&&d.setAttribute("aria-hidden","true"),r.add(d),M.set(d,s+1))};y.length&&y[y.length-1].disconnect(),o(t);let a=new MutationObserver(d=>{for(let l of d)if(!(l.type!=="childList"||l.addedNodes.length===0)&&![...n,...r].some(s=>s.contains(l.target))){for(let s of l.removedNodes)s instanceof Element&&(n.delete(s),r.delete(s));for(let s of l.addedNodes)(s instanceof HTMLElement||s instanceof SVGElement)&&(s.dataset.liveAnnouncer==="true"||s.dataset.reactAriaTopLayer==="true")?n.add(s):s instanceof Element&&o(s)}});a.observe(t,{childList:!0,subtree:!0});let c={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return y.push(c),()=>{a.disconnect();for(let d of r){let l=M.get(d);l===1?(d.removeAttribute("aria-hidden"),M.delete(d)):M.set(d,l-1)}c===y[y.length-1]?(y.pop(),y.length&&y[y.length-1].observe()):y.splice(y.indexOf(c),1)}}const Jt=u.createContext({});function Xt(){var e;return(e=u.useContext(Jt))!==null&&e!==void 0?e:{}}const Oe=u.createContext(null);function Yt(e){let t=we(),{portalContainer:n=t?null:document.body,isExiting:r}=e,[o,i]=u.useState(!1),a=u.useMemo(()=>({contain:o,setContain:i}),[o,i]),{getContainer:c}=Xt();if(!e.portalContainer&&c&&(n=c()),!n)return null;let d=e.children;return e.disableFocusManagement||(d=u.createElement(Lt,{restoreFocus:!0,contain:o&&!r},d)),d=u.createElement(Oe.Provider,{value:a},u.createElement(Et,null,d)),He.createPortal(d,n)}function Me(){let e=u.useContext(Oe),t=e==null?void 0:e.setContain;g(()=>{t==null||t(!0)},[t])}function Qt(e,t,n){let{overlayProps:r,underlayProps:o}=Vt({...e,isOpen:t.isOpen,onClose:t.close},n);return qt({isDisabled:!t.isOpen}),Me(),u.useEffect(()=>{if(t.isOpen)return Ut([n.current])},[t.isOpen,n]),{modalProps:rt(r),underlayProps:o}}function Zt(e,t){let{role:n="dialog"}=e,r=tt();r=e["aria-label"]?void 0:r;let o=u.useRef(!1);return u.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){ne(t.current);let i=setTimeout(()=>{document.activeElement===t.current&&(o.current=!0,t.current&&(t.current.blur(),ne(t.current)),o.current=!1)},500);return()=>{clearTimeout(i)}}},[t]),Me(),{dialogProps:{...st(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:i=>{o.current&&i.stopPropagation()}},titleProps:{id:r}}}function en(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function ge(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?he(Object(n),!0).forEach(function(r){en(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var tn=(e,t,n)=>{for(var r of Object.keys(e)){var o;if(e[r]!==((o=t[r])!==null&&o!==void 0?o:n[r]))return!1}return!0},nn=e=>t=>{var n=e.defaultClassName,r=ge(ge({},e.defaultVariants),t);for(var o in r){var i,a=(i=r[o])!==null&&i!==void 0?i:e.defaultVariants[o];if(a!=null){var c=a;typeof c=="boolean"&&(c=c===!0?"true":"false");var d=e.variantClassNames[o][c];d&&(n+=" "+d)}}for(var[l,s]of e.compoundVariants)tn(l,r,e.defaultVariants)&&(n+=" "+s);return n},rn=nn({defaultClassName:"pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq1",variantClassNames:{fullWidth:{true:"pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq2",false:"pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq3"}},defaultVariants:{},compoundVariants:[]}),on="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq5",an="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq0",ln="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq9",sn="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psqa",cn="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq8",un="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq4",dn="pkg_sps-woodland_focused-task__version_8_17_2__hash_1io4psq7";function se({children:e,className:t="",...n}){return f.createElement("div",{className:T.cl(cn,t),...n},f.createElement("div",{className:T.cl(ln)},f.createElement("div",{className:T.cl(sn)},e)))}T.Metadata.set(se,{name:"FocusedTaskActions"});function fn({children:e,className:t,"data-testid":n,onBlur:r,onFocus:o,overlayProps:i,state:a,onClose:c,fullWidth:d=!1,...l}){const s=f.useRef(null),{modalProps:p,underlayProps:b}=Qt({...l},a,s),{dialogProps:m,titleProps:v}=Zt(l,s),N=T.combineEventHandlers(p.onFocus,m.onFocus,o),De=T.combineEventHandlers(p.onBlur,m.onBlur,r),Ae=T.useChildTestIdAttrBuilder({"data-testid":n}),[X,Re]=T.selectChildren(e,[{type:se}]);function We(){c&&typeof c=="function"&&c(),a.close()}const Ie=f.createElement(Be.Button,{"aria-label":"Close",onClick:We,kind:"icon",icon:"x",className:on});return f.createElement(Yt,null,f.createElement("div",{className:dn,...b,...l},f.createElement("div",{...p,...m,...i,onFocus:N,onBlur:De,...Ae("dialog"),ref:s,className:T.cl(an,t)},f.createElement("div",{...v,className:un},Ie),f.createElement("div",{className:rn({fullWidth:d})},T.contentOf(Re,a.close)),X&&X.length>0&&f.createElement(f.Fragment,null,T.contentOf(X,a.close)))))}function ce(e){return e.state.isOpen?f.createElement(fn,{...e},e.children):f.createElement(f.Fragment,null)}T.Metadata.set(ce,{name:"FocusedTask",props:{fullWidth:{type:"boolean",default:"false"},onBlur:{type:"() => void"},onClose:{type:"() => void"},onFocus:{type:"() => void"}}});function pn(e){let[t,n]=gt(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const r=u.useCallback(()=>{n(!0)},[n]),o=u.useCallback(()=>{n(!1)},[n]),i=u.useCallback(()=>{n(!t)},[n,t]);return{isOpen:t,setOpen:n,open:r,close:o,toggle:i}}function bn(e={}){const t=pn(e),n=u.useRef(null),{triggerProps:r,overlayProps:o}=jt({type:"dialog"},t,n),{onPress:i,...a}=r;return{triggerProps:{...a,onClick:i,ref:n},focusedTaskState:t,focusedTaskProps:{overlayProps:o,state:t}}}const vn={components:[ce],examples:{hooks:{label:"Using the Hook",description:()=>f.createElement(f.Fragment,null,f.createElement("p",null,"To use the focused task component, you must call the ",f.createElement("code",null,"useFocusedTask")," hook. Optional arguments for this hook include:"),f.createElement("dl",null,f.createElement("dt",null,f.createElement("code",null,"isOpen"),": boolean"),f.createElement("dd",null,"Whether the overlay is open by default (controlled)"),f.createElement("dt",null,f.createElement("code",null,"defaultOpen"),": boolean"),f.createElement("dd",null,"Whether the overlay is open by default (uncontrolled)."),f.createElement("dt",null,f.createElement("code",null,"onOpenChange"),": function"),f.createElement("dd",null,"Handler that is called when the overlay's open state changes.",f.createElement("code",null,"(isOpen: boolean) => void"))),f.createElement("h5",null,"Focused Task Props, Focused Task State, and Trigger Props"),f.createElement("p",null,"The ",f.createElement("code",null,"useFocusedTask")," returns an object with ",f.createElement("code",null,"focusedTaskProps"),","," ",f.createElement("code",null,"focusedTaskState")," and ",f.createElement("code",null,"triggerProps")),f.createElement("p",null,"The ",f.createElement("code",null,"triggerProps")," need to be spread on the element that triggers the focused task."),f.createElement("p",null,"The ",f.createElement("code",null,"focusedTaskState")," object (which is also included in ",f.createElement("code",null,"focusedTaskProps"),") allows programmatic access to the state of the focused task. This includes a read only"," ",f.createElement("code",null,"isOpen")," property, a ",f.createElement("code",null,"setOpen(isOpen: boolean)")," method which can be use to set whether the overlay is open, an ",f.createElement("code",null,"open()")," method which opens the overlay, a ",f.createElement("code",null,"close()")," method which closes the overlay and a"," ",f.createElement("code",null,"toggle()")," method that toggles the overlay's visiblity."),f.createElement("p",null,"The ",f.createElement("code",null,"focusedTaskProps")," should be spread on the actual ",f.createElement("code",null,"FocusedTask")," component."),f.createElement("p",null,"Please refer to the examples to see its implementation"))},standard:{label:"Standard",examples:{basic:{react:ue.code`
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("@sps-woodland/core"),Ke=require("@sps-woodland/buttons"),u=require("react"),qe=require("react-dom"),pe=require("@spscommerce/utils");function ze(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const p=ze(u),E=typeof document<"u"?u.useLayoutEffect:()=>{};function I(e){const t=u.useRef(null);return E(()=>{t.current=e},[e]),u.useCallback((...n)=>{const r=t.current;return r==null?void 0:r(...n)},[])}function Ue(e){let[t,n]=u.useState(e),r=u.useRef(null),o=I(()=>{if(!r.current)return;let a=r.current.next();if(a.done){r.current=null;return}t===a.value?o():n(a.value)});E(()=>{r.current&&o()});let i=I(a=>{r.current=a(t),o()});return[t,i]}const K={prefix:String(Math.round(Math.random()*1e10)),current:0},ke=u.createContext(K),Ge=u.createContext(!1);let Je=!!(typeof window<"u"&&window.document&&window.document.createElement),Q=new WeakMap;function Xe(e=!1){let t=u.useContext(ke),n=u.useRef(null);if(n.current===null&&!e){var r,o;let i=(o=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||o===void 0||(r=o.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(i){let a=Q.get(i);a==null?Q.set(i,{id:t.current,state:i.memoizedState}):i.memoizedState!==a.state&&(t.current=a.id,Q.delete(i))}n.current=++t.current}return n.current}function Ye(e){let t=u.useContext(ke);t===K&&!Je&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=Xe(!!e),r=t===K&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function Qe(e){let t=u.useId(),[n]=u.useState(Se()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${K.prefix}`;return e||`${r}-${t}`}const Ze=typeof u.useId=="function"?Qe:Ye;function et(){return!1}function tt(){return!0}function nt(e){return()=>{}}function Se(){return typeof u.useSyncExternalStore=="function"?u.useSyncExternalStore(nt,et,tt):u.useContext(Ge)}let rt=!!(typeof window<"u"&&window.document&&window.document.createElement),q=new Map;function xe(e){let[t,n]=u.useState(e),r=u.useRef(null),o=Ze(t),i=u.useCallback(a=>{r.current=a},[]);return rt&&q.set(o,i),E(()=>{let a=o;return()=>{q.delete(a)}},[o]),u.useEffect(()=>{let a=r.current;a&&(r.current=null,n(a))}),o}function ot(e,t){if(e===t)return e;let n=q.get(e);if(n)return n(t),t;let r=q.get(t);return r?(r(e),e):t}function at(e=[]){let t=xe(),[n,r]=Ue(t),o=u.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return E(o,[t,o,...e]),n}function z(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const g=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},U=e=>e&&"window"in e&&e.window===e?e:g(e).defaultView||window;function Ne(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Ne(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function it(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Ne(e))&&(r&&(r+=" "),r+=t);return r}function lt(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let o in r){let i=t[o],a=r[o];typeof i=="function"&&typeof a=="function"&&o[0]==="o"&&o[1]==="n"&&o.charCodeAt(2)>=65&&o.charCodeAt(2)<=90?t[o]=z(i,a):(o==="className"||o==="UNSAFE_className")&&typeof i=="string"&&typeof a=="string"?t[o]=it(i,a):o==="id"&&i&&a?t.id=ot(i,a):t[o]=a!==void 0?a:i}}return t}const st=new Set(["id"]),ct=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),ut=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),dt=/^(data-.*)$/;function ft(e,t={}){let{labelable:n,isLink:r,propNames:o}=t,i={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(st.has(a)||n&&ct.has(a)||r&&ut.has(a)||o!=null&&o.has(a)||dt.test(a))&&(i[a]=e[a]);return i}function ve(e){if(pt())e.focus({preventScroll:!0});else{let t=vt(e);e.focus(),bt(t)}}let H=null;function pt(){if(H==null){H=!1;try{document.createElement("div").focus({get preventScroll(){return H=!0,!0}})}catch{}}return H}function vt(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function bt(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function mt(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function le(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function W(e){let t=null;return()=>(t==null&&(t=e()),t)}const Ce=W(function(){return le(/^Mac/i)}),$t=W(function(){return le(/^iPhone/i)}),ht=W(function(){return le(/^iPad/i)||Ce()&&navigator.maxTouchPoints>1}),Et=W(function(){return $t()||ht()}),gt=W(function(){return mt(/Android/i)});let L=new Map,te=new Set;function be(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let o=L.get(r.target);o||(o=new Set,L.set(r.target,o),r.target.addEventListener("transitioncancel",n,{once:!0})),o.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let o=L.get(r.target);if(o&&(o.delete(r.propertyName),o.size===0&&(r.target.removeEventListener("transitioncancel",n),L.delete(r.target)),L.size===0)){for(let i of te)i();te.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?be():document.addEventListener("DOMContentLoaded",be));function wt(e){requestAnimationFrame(()=>{L.size===0?e():te.add(e)})}function me(e,t){let n=window.getComputedStyle(e),r=/(auto|scroll)/.test(n.overflow+n.overflowX+n.overflowY);return r&&t&&(r=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),r}function Fe(e,t){let n=e;for(me(n,t)&&(n=n.parentElement);n&&!me(n,t);)n=n.parentElement;return n||document.scrollingElement||document.documentElement}function yt(e){return e.mozInputSource===0&&e.isTrusted?!0:gt()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Tt(e,t,n){let[r,o]=u.useState(e||t),i=u.useRef(e!==void 0),a=e!==void 0;u.useEffect(()=>{let l=i.current;l!==a&&console.warn(`WARN: A component changed from ${l?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}.`),i.current=a},[a]);let c=a?e:r,d=u.useCallback((l,...s)=>{let f=(v,...m)=>{n&&(Object.is(c,v)||n(v,...m)),a||(c=v)};typeof l=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),o((m,...b)=>{let S=l(a?c:m,...b);return f(S,...s),a?m:S})):(a||o(l),f(l,...s))},[a,c,n]);return[c,d]}const Pe=u.createContext({register:()=>{}});Pe.displayName="PressResponderContext";function kt({children:e}){let t=u.useMemo(()=>({register:()=>{}}),[]);return u.createElement(Pe.Provider,{value:t},e)}class St{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function xt(e){let t=u.useRef({isFocused:!1,observer:null});E(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=I(r=>{e==null||e(r)});return u.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let o=r.target,i=a=>{t.current.isFocused=!1,o.disabled&&n(new St("blur",a)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};o.addEventListener("focusout",i,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&o.disabled){var a;(a=t.current.observer)===null||a===void 0||a.disconnect();let c=o===document.activeElement?null:document.activeElement;o.dispatchEvent(new FocusEvent("blur",{relatedTarget:c})),o.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:c}))}}),t.current.observer.observe(o,{attributes:!0,attributeFilter:["disabled"]})}},[n])}let B=null,Nt=new Set,R=new Map,P=!1,ne=!1;function se(e,t){for(let n of Nt)n(e,t)}function Ct(e){return!(e.metaKey||!Ce()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function G(e){P=!0,Ct(e)&&(B="keyboard",se("keyboard",e))}function k(e){B="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(P=!0,se("pointer",e))}function Le(e){yt(e)&&(P=!0,B="virtual")}function _e(e){e.target===window||e.target===document||(!P&&!ne&&(B="virtual",se("virtual",e)),P=!1,ne=!1)}function Oe(){P=!1,ne=!0}function $e(e){if(typeof window>"u"||R.get(U(e)))return;const t=U(e),n=g(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){P=!0,r.apply(this,arguments)},n.addEventListener("keydown",G,!0),n.addEventListener("keyup",G,!0),n.addEventListener("click",Le,!0),t.addEventListener("focus",_e,!0),t.addEventListener("blur",Oe,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",k,!0),n.addEventListener("pointermove",k,!0),n.addEventListener("pointerup",k,!0)):(n.addEventListener("mousedown",k,!0),n.addEventListener("mousemove",k,!0),n.addEventListener("mouseup",k,!0)),t.addEventListener("beforeunload",()=>{Me(e)},{once:!0}),R.set(t,{focus:r})}const Me=(e,t)=>{const n=U(e),r=g(e);t&&r.removeEventListener("DOMContentLoaded",t),R.has(n)&&(n.HTMLElement.prototype.focus=R.get(n).focus,r.removeEventListener("keydown",G,!0),r.removeEventListener("keyup",G,!0),r.removeEventListener("click",Le,!0),n.removeEventListener("focus",_e,!0),n.removeEventListener("blur",Oe,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",k,!0),r.removeEventListener("pointermove",k,!0),r.removeEventListener("pointerup",k,!0)):(r.removeEventListener("mousedown",k,!0),r.removeEventListener("mousemove",k,!0),r.removeEventListener("mouseup",k,!0)),R.delete(n))};function Ft(e){const t=g(e);let n;return t.readyState!=="loading"?$e(e):(n=()=>{$e(e)},t.addEventListener("DOMContentLoaded",n)),()=>Me(e,n)}typeof document<"u"&&Ft();function Pt(){return B}function Lt(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:o}=e,i=u.useRef({isFocusWithin:!1}),a=u.useCallback(l=>{i.current.isFocusWithin&&!l.currentTarget.contains(l.relatedTarget)&&(i.current.isFocusWithin=!1,n&&n(l),o&&o(!1))},[n,o,i]),c=xt(a),d=u.useCallback(l=>{!i.current.isFocusWithin&&document.activeElement===l.target&&(r&&r(l),o&&o(!0),i.current.isFocusWithin=!0,c(l))},[r,o,c]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:d,onBlur:a}}}function _t(e){let{ref:t,onInteractOutside:n,isDisabled:r,onInteractOutsideStart:o}=e,i=u.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=I(d=>{n&&V(d,t)&&(o&&o(d),i.current.isPointerDown=!0)}),c=I(d=>{n&&n(d)});u.useEffect(()=>{let d=i.current;if(r)return;const l=t.current,s=g(l);if(typeof PointerEvent<"u"){let f=v=>{d.isPointerDown&&V(v,t)&&c(v),d.isPointerDown=!1};return s.addEventListener("pointerdown",a,!0),s.addEventListener("pointerup",f,!0),()=>{s.removeEventListener("pointerdown",a,!0),s.removeEventListener("pointerup",f,!0)}}else{let f=m=>{d.ignoreEmulatedMouseEvents?d.ignoreEmulatedMouseEvents=!1:d.isPointerDown&&V(m,t)&&c(m),d.isPointerDown=!1},v=m=>{d.ignoreEmulatedMouseEvents=!0,d.isPointerDown&&V(m,t)&&c(m),d.isPointerDown=!1};return s.addEventListener("mousedown",a,!0),s.addEventListener("mouseup",f,!0),s.addEventListener("touchstart",a,!0),s.addEventListener("touchend",v,!0),()=>{s.removeEventListener("mousedown",a,!0),s.removeEventListener("mouseup",f,!0),s.removeEventListener("touchstart",a,!0),s.removeEventListener("touchend",v,!0)}}},[t,r,a,c])}function V(e,t){if(e.button>0)return!1;if(e.target){const n=e.target.ownerDocument;if(!n||!n.documentElement.contains(e.target)||e.target.closest("[data-react-aria-top-layer]"))return!1}return t.current&&!t.current.contains(e.target)}function re(e){const t=g(e);if(Pt()==="virtual"){let n=t.activeElement;wt(()=>{t.activeElement===n&&e.isConnected&&ve(e)})}else ve(e)}function Ot(e){const t=U(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:n,visibility:r}=e.style,o=n!=="none"&&r!=="hidden"&&r!=="collapse";if(o){const{getComputedStyle:i}=e.ownerDocument.defaultView;let{display:a,visibility:c}=i(e);o=a!=="none"&&c!=="hidden"&&c!=="collapse"}return o}function Mt(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&(e.nodeName==="DETAILS"&&t&&t.nodeName!=="SUMMARY"?e.hasAttribute("open"):!0)}function De(e,t){return e.nodeName!=="#comment"&&Ot(e)&&Mt(e,t)&&(!e.parentElement||De(e.parentElement,e))}const he=u.createContext(null),oe="react-aria-focus-scope-restore";let $=null;function Dt(e){let{children:t,contain:n,restoreFocus:r,autoFocus:o}=e,i=u.useRef(null),a=u.useRef(null),c=u.useRef([]),{parentNode:d}=u.useContext(he)||{},l=u.useMemo(()=>new ie({scopeRef:c}),[c]);E(()=>{let v=d||h.root;if(h.getTreeNode(v.scopeRef)&&$&&!X($,v.scopeRef)){let m=h.getTreeNode($);m&&(v=m)}v.addChild(l),h.addNode(l)},[l,d]),E(()=>{let v=h.getTreeNode(c);v&&(v.contain=!!n)},[n]),E(()=>{var v;let m=(v=i.current)===null||v===void 0?void 0:v.nextSibling,b=[],S=O=>O.stopPropagation();for(;m&&m!==a.current;)b.push(m),m.addEventListener(oe,S),m=m.nextSibling;return c.current=b,()=>{for(let O of b)O.removeEventListener(oe,S)}},[t]),Vt(c,r,n),Wt(c,n),Kt(c,r,n),Ht(c,o),u.useEffect(()=>{const v=g(c.current?c.current[0]:void 0).activeElement;let m=null;if(w(v,c.current)){for(let b of h.traverse())b.scopeRef&&w(v,b.scopeRef.current)&&(m=b);m===h.getTreeNode(c)&&($=m.scopeRef)}},[c]),E(()=>()=>{var v,m,b;let S=(b=(m=h.getTreeNode(c))===null||m===void 0||(v=m.parent)===null||v===void 0?void 0:v.scopeRef)!==null&&b!==void 0?b:null;(c===$||X(c,$))&&(!S||h.getTreeNode(S))&&($=S),h.removeTreeNode(c)},[c]);let s=u.useMemo(()=>At(c),[]),f=u.useMemo(()=>({focusManager:s,parentNode:l}),[l,s]);return u.createElement(he.Provider,{value:f},u.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:i}),t,u.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function At(e){return{focusNext(t={}){let n=e.current,{from:r,tabbable:o,wrap:i,accept:a}=t,c=r||g(n[0]).activeElement,d=n[0].previousElementSibling,l=F(n),s=C(l,{tabbable:o,accept:a},n);s.currentNode=w(c,n)?c:d;let f=s.nextNode();return!f&&i&&(s.currentNode=d,f=s.nextNode()),f&&N(f,!0),f},focusPrevious(t={}){let n=e.current,{from:r,tabbable:o,wrap:i,accept:a}=t,c=r||g(n[0]).activeElement,d=n[n.length-1].nextElementSibling,l=F(n),s=C(l,{tabbable:o,accept:a},n);s.currentNode=w(c,n)?c:d;let f=s.previousNode();return!f&&i&&(s.currentNode=d,f=s.previousNode()),f&&N(f,!0),f},focusFirst(t={}){let n=e.current,{tabbable:r,accept:o}=t,i=F(n),a=C(i,{tabbable:r,accept:o},n);a.currentNode=n[0].previousElementSibling;let c=a.nextNode();return c&&N(c,!0),c},focusLast(t={}){let n=e.current,{tabbable:r,accept:o}=t,i=F(n),a=C(i,{tabbable:r,accept:o},n);a.currentNode=n[n.length-1].nextElementSibling;let c=a.previousNode();return c&&N(c,!0),c}}}const ce=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[contenteditable]"],Rt=ce.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";ce.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const It=ce.join(':not([hidden]):not([tabindex="-1"]),');function F(e){return e[0].parentElement}function A(e){let t=h.getTreeNode($);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function Wt(e,t){let n=u.useRef(void 0),r=u.useRef(void 0);E(()=>{let o=e.current;if(!t){r.current&&(cancelAnimationFrame(r.current),r.current=void 0);return}const i=g(o?o[0]:void 0);let a=l=>{if(l.key!=="Tab"||l.altKey||l.ctrlKey||l.metaKey||!A(e)||l.isComposing)return;let s=i.activeElement,f=e.current;if(!f||!w(s,f))return;let v=F(f),m=C(v,{tabbable:!0},f);if(!s)return;m.currentNode=s;let b=l.shiftKey?m.previousNode():m.nextNode();b||(m.currentNode=l.shiftKey?f[f.length-1].nextElementSibling:f[0].previousElementSibling,b=l.shiftKey?m.previousNode():m.nextNode()),l.preventDefault(),b&&N(b,!0)},c=l=>{(!$||X($,e))&&w(l.target,e.current)?($=e,n.current=l.target):A(e)&&!J(l.target,e)?n.current?n.current.focus():$&&$.current&&ae($.current):A(e)&&(n.current=l.target)},d=l=>{r.current&&cancelAnimationFrame(r.current),r.current=requestAnimationFrame(()=>{if(i.activeElement&&A(e)&&!J(i.activeElement,e))if($=e,i.body.contains(l.target)){var s;n.current=l.target,(s=n.current)===null||s===void 0||s.focus()}else $.current&&ae($.current)})};return i.addEventListener("keydown",a,!1),i.addEventListener("focusin",c,!1),o==null||o.forEach(l=>l.addEventListener("focusin",c,!1)),o==null||o.forEach(l=>l.addEventListener("focusout",d,!1)),()=>{i.removeEventListener("keydown",a,!1),i.removeEventListener("focusin",c,!1),o==null||o.forEach(l=>l.removeEventListener("focusin",c,!1)),o==null||o.forEach(l=>l.removeEventListener("focusout",d,!1))}},[e,t]),E(()=>()=>{r.current&&cancelAnimationFrame(r.current)},[r])}function Ae(e){return J(e)}function w(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}function J(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:n}of h.traverse(h.getTreeNode(t)))if(n&&w(e,n.current))return!0;return!1}function Bt(e){return J(e,$)}function X(e,t){var n;let r=(n=h.getTreeNode(t))===null||n===void 0?void 0:n.parent;for(;r;){if(r.scopeRef===e)return!0;r=r.parent}return!1}function N(e,t=!1){if(e!=null&&!t)try{re(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function Re(e,t=!0){let n=e[0].previousElementSibling,r=F(e),o=C(r,{tabbable:t},e);o.currentNode=n;let i=o.nextNode();return t&&!i&&(r=F(e),o=C(r,{tabbable:!1},e),o.currentNode=n,i=o.nextNode()),i}function ae(e,t=!0){N(Re(e,t))}function Ht(e,t){const n=u.useRef(t);u.useEffect(()=>{if(n.current){$=e;const r=g(e.current?e.current[0]:void 0);!w(r.activeElement,$.current)&&e.current&&ae(e.current)}n.current=!1},[e])}function Vt(e,t,n){E(()=>{if(t||n)return;let r=e.current;const o=g(r?r[0]:void 0);let i=a=>{let c=a.target;w(c,e.current)?$=e:Ae(c)||($=null)};return o.addEventListener("focusin",i,!1),r==null||r.forEach(a=>a.addEventListener("focusin",i,!1)),()=>{o.removeEventListener("focusin",i,!1),r==null||r.forEach(a=>a.removeEventListener("focusin",i,!1))}},[e,t,n])}function jt(e){let t=h.getTreeNode($);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(t==null?void 0:t.scopeRef)===e}function Kt(e,t,n){const r=u.useRef(typeof document<"u"?g(e.current?e.current[0]:void 0).activeElement:null);E(()=>{let o=e.current;const i=g(o?o[0]:void 0);if(!t||n)return;let a=()=>{(!$||X($,e))&&w(i.activeElement,e.current)&&($=e)};return i.addEventListener("focusin",a,!1),o==null||o.forEach(c=>c.addEventListener("focusin",a,!1)),()=>{i.removeEventListener("focusin",a,!1),o==null||o.forEach(c=>c.removeEventListener("focusin",a,!1))}},[e,n]),E(()=>{const o=g(e.current?e.current[0]:void 0);if(!t)return;let i=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!A(e)||a.isComposing)return;let c=o.activeElement;if(!w(c,e.current))return;let d=h.getTreeNode(e);if(!d)return;let l=d.nodeToRestore,s=C(o.body,{tabbable:!0});s.currentNode=c;let f=a.shiftKey?s.previousNode():s.nextNode();if((!l||!o.body.contains(l)||l===o.body)&&(l=void 0,d.nodeToRestore=void 0),(!f||!w(f,e.current))&&l){s.currentNode=l;do f=a.shiftKey?s.previousNode():s.nextNode();while(w(f,e.current));a.preventDefault(),a.stopPropagation(),f?N(f,!0):Ae(l)?N(l,!0):c.blur()}};return n||o.addEventListener("keydown",i,!0),()=>{n||o.removeEventListener("keydown",i,!0)}},[e,t,n]),E(()=>{const o=g(e.current?e.current[0]:void 0);if(!t)return;let i=h.getTreeNode(e);if(i){var a;return i.nodeToRestore=(a=r.current)!==null&&a!==void 0?a:void 0,()=>{let c=h.getTreeNode(e);if(!c)return;let d=c.nodeToRestore;if(t&&d&&(w(o.activeElement,e.current)||o.activeElement===o.body&&jt(e))){let l=h.clone();requestAnimationFrame(()=>{if(o.activeElement===o.body){let s=l.getTreeNode(e);for(;s;){if(s.nodeToRestore&&s.nodeToRestore.isConnected){Ee(s.nodeToRestore);return}s=s.parent}for(s=l.getTreeNode(e);s;){if(s.scopeRef&&s.scopeRef.current&&h.getTreeNode(s.scopeRef)){let f=Re(s.scopeRef.current,!0);Ee(f);return}s=s.parent}}})}}}},[e,t])}function Ee(e){e.dispatchEvent(new CustomEvent(oe,{bubbles:!0,cancelable:!0}))&&N(e)}function C(e,t,n){let r=t!=null&&t.tabbable?It:Rt,o=g(e).createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(i){var a;return!(t==null||(a=t.from)===null||a===void 0)&&a.contains(i)?NodeFilter.FILTER_REJECT:i.matches(r)&&De(i)&&(!n||w(i,n))&&(!(t!=null&&t.accept)||t.accept(i))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t!=null&&t.from&&(o.currentNode=t.from),o}class ue{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let o=this.fastMap.get(n??null);if(!o)return;let i=new ie({scopeRef:t});o.addChild(i),i.parent=o,this.fastMap.set(t,i),r&&(i.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let i of this.traverse())i!==n&&n.nodeToRestore&&i.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&w(i.nodeToRestore,n.scopeRef.current)&&(i.nodeToRestore=n.nodeToRestore);let o=n.children;r&&(r.removeChild(n),o.size>0&&o.forEach(i=>r&&r.addChild(i))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new ue;var r;for(let o of this.traverse())n.addTreeNode(o.scopeRef,(r=(t=o.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,o.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new ie({scopeRef:null}),this.fastMap.set(null,this.root)}}class ie{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}let h=new ue;const qt=new WeakMap,x=[];function zt(e,t){let{onClose:n,shouldCloseOnBlur:r,isOpen:o,isDismissable:i=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:c}=e;u.useEffect(()=>(o&&x.push(t),()=>{let b=x.indexOf(t);b>=0&&x.splice(b,1)}),[o,t]);let d=()=>{x[x.length-1]===t&&n&&n()},l=b=>{(!c||c(b.target))&&x[x.length-1]===t&&(b.stopPropagation(),b.preventDefault())},s=b=>{(!c||c(b.target))&&(x[x.length-1]===t&&(b.stopPropagation(),b.preventDefault()),d())},f=b=>{b.key==="Escape"&&!a&&!b.nativeEvent.isComposing&&(b.stopPropagation(),b.preventDefault(),d())};_t({ref:t,onInteractOutside:i&&o?s:null,onInteractOutsideStart:l});let{focusWithinProps:v}=Lt({isDisabled:!r,onBlurWithin:b=>{!b.relatedTarget||Bt(b.relatedTarget)||(!c||c(b.relatedTarget))&&n()}}),m=b=>{b.target===b.currentTarget&&b.preventDefault()};return{overlayProps:{onKeyDown:f,...v},underlayProps:{onPointerDown:m}}}function Ut(e,t,n){let{type:r}=e,{isOpen:o}=t;u.useEffect(()=>{n&&n.current&&qt.set(n.current,t.close)});let i;r==="menu"?i=!0:r==="listbox"&&(i="listbox");let a=xe();return{triggerProps:{"aria-haspopup":i,"aria-expanded":o,"aria-controls":o?a:null,onPress:t.toggle},overlayProps:{id:a}}}const Z=typeof document<"u"&&window.visualViewport,Gt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let j=0,ee;function Jt(e={}){let{isDisabled:t}=e;E(()=>{if(!t)return j++,j===1&&(Et()?ee=Yt():ee=Xt()),()=>{j--,j===0&&ee()}},[t])}function Xt(){return z(_(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),_(document.documentElement,"overflow","hidden"))}function Yt(){let e,t,n=l=>{e=Fe(l.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=_(e,"overscrollBehavior","contain"))},r=l=>{if(!e||e===document.documentElement||e===document.body){l.preventDefault();return}e.scrollHeight===e.clientHeight&&e.scrollWidth===e.clientWidth&&l.preventDefault()},o=l=>{let s=l.target;we(s)&&s!==document.activeElement&&(l.preventDefault(),c(),s.style.transform="translateY(-2000px)",s.focus(),requestAnimationFrame(()=>{s.style.transform=""})),t&&t()},i=l=>{let s=l.target;we(s)&&(c(),s.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{s.style.transform="",Z&&(Z.height<window.innerHeight?requestAnimationFrame(()=>{ge(s)}):Z.addEventListener("resize",()=>ge(s),{once:!0}))}))},a=null,c=()=>{if(a)return;let l=()=>{window.scrollTo(0,0)},s=window.pageXOffset,f=window.pageYOffset;a=z(M(window,"scroll",l),_(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),_(document.documentElement,"overflow","hidden"),_(document.body,"marginTop",`-${f}px`),()=>{window.scrollTo(s,f)}),window.scrollTo(0,0)},d=z(M(document,"touchstart",n,{passive:!1,capture:!0}),M(document,"touchmove",r,{passive:!1,capture:!0}),M(document,"touchend",o,{passive:!1,capture:!0}),M(document,"focus",i,!0));return()=>{t==null||t(),a==null||a(),d()}}function _(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function M(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function ge(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let n=Fe(e);if(n!==document.documentElement&&n!==document.body&&n!==e){let r=n.getBoundingClientRect().top,o=e.getBoundingClientRect().top;o>r+e.clientHeight&&(n.scrollTop+=o-r)}e=n.parentElement}}function we(e){return e instanceof HTMLInputElement&&!Gt.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}let D=new WeakMap,y=[];function Qt(e,t=document.body){let n=new Set(e),r=new Set,o=d=>{for(let v of d.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))n.add(v);let l=v=>{if(n.has(v)||r.has(v.parentElement)&&v.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let m of n)if(v.contains(m))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},s=document.createTreeWalker(d,NodeFilter.SHOW_ELEMENT,{acceptNode:l}),f=l(d);if(f===NodeFilter.FILTER_ACCEPT&&i(d),f!==NodeFilter.FILTER_REJECT){let v=s.nextNode();for(;v!=null;)i(v),v=s.nextNode()}},i=d=>{var l;let s=(l=D.get(d))!==null&&l!==void 0?l:0;d.getAttribute("aria-hidden")==="true"&&s===0||(s===0&&d.setAttribute("aria-hidden","true"),r.add(d),D.set(d,s+1))};y.length&&y[y.length-1].disconnect(),o(t);let a=new MutationObserver(d=>{for(let l of d)if(!(l.type!=="childList"||l.addedNodes.length===0)&&![...n,...r].some(s=>s.contains(l.target))){for(let s of l.removedNodes)s instanceof Element&&(n.delete(s),r.delete(s));for(let s of l.addedNodes)(s instanceof HTMLElement||s instanceof SVGElement)&&(s.dataset.liveAnnouncer==="true"||s.dataset.reactAriaTopLayer==="true")?n.add(s):s instanceof Element&&o(s)}});a.observe(t,{childList:!0,subtree:!0});let c={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return y.push(c),()=>{a.disconnect();for(let d of r){let l=D.get(d);l===1?(d.removeAttribute("aria-hidden"),D.delete(d)):D.set(d,l-1)}c===y[y.length-1]?(y.pop(),y.length&&y[y.length-1].observe()):y.splice(y.indexOf(c),1)}}const Zt=u.createContext({});function en(){var e;return(e=u.useContext(Zt))!==null&&e!==void 0?e:{}}const Ie=u.createContext(null);function tn(e){let t=Se(),{portalContainer:n=t?null:document.body,isExiting:r}=e,[o,i]=u.useState(!1),a=u.useMemo(()=>({contain:o,setContain:i}),[o,i]),{getContainer:c}=en();if(!e.portalContainer&&c&&(n=c()),!n)return null;let d=e.children;return e.disableFocusManagement||(d=u.createElement(Dt,{restoreFocus:!0,contain:o&&!r},d)),d=u.createElement(Ie.Provider,{value:a},u.createElement(kt,null,d)),qe.createPortal(d,n)}function We(){let e=u.useContext(Ie),t=e==null?void 0:e.setContain;E(()=>{t==null||t(!0)},[t])}function nn(e,t,n){let{overlayProps:r,underlayProps:o}=zt({...e,isOpen:t.isOpen,onClose:t.close},n);return Jt({isDisabled:!t.isOpen}),We(),u.useEffect(()=>{if(t.isOpen)return Qt([n.current])},[t.isOpen,n]),{modalProps:lt(r),underlayProps:o}}function rn(e,t){let{role:n="dialog"}=e,r=at();r=e["aria-label"]?void 0:r;let o=u.useRef(!1);return u.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){re(t.current);let i=setTimeout(()=>{document.activeElement===t.current&&(o.current=!0,t.current&&(t.current.blur(),re(t.current)),o.current=!1)},500);return()=>{clearTimeout(i)}}},[t]),We(),{dialogProps:{...ft(e,{labelable:!0}),role:n,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||r,onBlur:i=>{o.current&&i.stopPropagation()}},titleProps:{id:r}}}function on(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ye(Object(n),!0).forEach(function(r){on(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ye(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var an=(e,t,n)=>{for(var r of Object.keys(e)){var o;if(e[r]!==((o=t[r])!==null&&o!==void 0?o:n[r]))return!1}return!0},ln=e=>t=>{var n=e.defaultClassName,r=Te(Te({},e.defaultVariants),t);for(var o in r){var i,a=(i=r[o])!==null&&i!==void 0?i:e.defaultVariants[o];if(a!=null){var c=a;typeof c=="boolean"&&(c=c===!0?"true":"false");var d=e.variantClassNames[o][c];d&&(n+=" "+d)}}for(var[l,s]of e.compoundVariants)an(l,r,e.defaultVariants)&&(n+=" "+s);return n},sn=ln({defaultClassName:"pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq1",variantClassNames:{fullWidth:{true:"pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq2",false:"pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq3"}},defaultVariants:{},compoundVariants:[]}),cn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq5",un="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq0",dn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq9",fn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psqa",pn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq8",vn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq4",bn="pkg_sps-woodland_focused-task__version_8_19_0__hash_1io4psq7";function de({children:e,className:t="",...n}){return p.createElement("div",{className:T.cl(pn,t),...n},p.createElement("div",{className:T.cl(dn)},p.createElement("div",{className:T.cl(fn)},e)))}T.Metadata.set(de,{name:"FocusedTaskActions"});function mn({children:e,className:t,"data-testid":n,onBlur:r,onFocus:o,overlayProps:i,state:a,onClose:c,fullWidth:d=!1,...l}){const s=p.useRef(null),{modalProps:f,underlayProps:v}=nn({...l},a,s),{dialogProps:m,titleProps:b}=rn(l,s),S=T.combineEventHandlers(f.onFocus,m.onFocus,o),O=T.combineEventHandlers(f.onBlur,m.onBlur,r),Be=T.useChildTestIdAttrBuilder({"data-testid":n}),[Y,He]=T.selectChildren(e,[{type:de}]);function Ve(){c&&typeof c=="function"&&c(),a.close()}const je=p.createElement(Ke.Button,{"aria-label":"Close",onClick:Ve,kind:"icon",icon:"x",className:cn});return p.createElement(tn,null,p.createElement("div",{className:bn,...v,...l},p.createElement("div",{...f,...m,...i,onFocus:S,onBlur:O,...Be("dialog"),ref:s,className:T.cl(un,t)},p.createElement("div",{...b,className:vn},je),p.createElement("div",{className:sn({fullWidth:d})},T.contentOf(He,a.close)),Y&&Y.length>0&&p.createElement(p.Fragment,null,T.contentOf(Y,a.close)))))}function fe(e){return e.state.isOpen?p.createElement(mn,{...e},e.children):p.createElement(p.Fragment,null)}T.Metadata.set(fe,{name:"FocusedTask",props:{fullWidth:{type:"boolean",default:"false"},onBlur:{type:"() => void"},onClose:{type:"() => void"},onFocus:{type:"() => void"}}});function $n(e){let[t,n]=Tt(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const r=u.useCallback(()=>{n(!0)},[n]),o=u.useCallback(()=>{n(!1)},[n]),i=u.useCallback(()=>{n(!t)},[n,t]);return{isOpen:t,setOpen:n,open:r,close:o,toggle:i}}function hn(e={}){const t=$n(e),n=u.useRef(null),{triggerProps:r,overlayProps:o}=Ut({type:"dialog"},t,n),{onPress:i,...a}=r;return{triggerProps:{...a,onClick:i,ref:n},focusedTaskState:t,focusedTaskProps:{overlayProps:o,state:t}}}const En={components:[fe],examples:{hooks:{label:"Using the Hook",description:()=>p.createElement(p.Fragment,null,p.createElement("p",null,"To use the focused task component, you must call the ",p.createElement("code",null,"useFocusedTask")," hook. Optional arguments for this hook include:"),p.createElement("dl",null,p.createElement("dt",null,p.createElement("code",null,"isOpen"),": boolean"),p.createElement("dd",null,"Whether the overlay is open by default (controlled)"),p.createElement("dt",null,p.createElement("code",null,"defaultOpen"),": boolean"),p.createElement("dd",null,"Whether the overlay is open by default (uncontrolled)."),p.createElement("dt",null,p.createElement("code",null,"onOpenChange"),": function"),p.createElement("dd",null,"Handler that is called when the overlay's open state changes.",p.createElement("code",null,"(isOpen: boolean) => void"))),p.createElement("h5",null,"Focused Task Props, Focused Task State, and Trigger Props"),p.createElement("p",null,"The ",p.createElement("code",null,"useFocusedTask")," returns an object with ",p.createElement("code",null,"focusedTaskProps"),","," ",p.createElement("code",null,"focusedTaskState")," and ",p.createElement("code",null,"triggerProps")),p.createElement("p",null,"The ",p.createElement("code",null,"triggerProps")," need to be spread on the element that triggers the focused task."),p.createElement("p",null,"The ",p.createElement("code",null,"focusedTaskState")," object (which is also included in ",p.createElement("code",null,"focusedTaskProps"),") allows programmatic access to the state of the focused task. This includes a read only"," ",p.createElement("code",null,"isOpen")," property, a ",p.createElement("code",null,"setOpen(isOpen: boolean)")," method which can be use to set whether the overlay is open, an ",p.createElement("code",null,"open()")," method which opens the overlay, a ",p.createElement("code",null,"close()")," method which closes the overlay and a"," ",p.createElement("code",null,"toggle()")," method that toggles the overlay's visiblity."),p.createElement("p",null,"The ",p.createElement("code",null,"focusedTaskProps")," should be spread on the actual ",p.createElement("code",null,"FocusedTask")," component."),p.createElement("p",null,"Please refer to the examples to see its implementation"))},standard:{label:"Standard",examples:{basic:{react:pe.code`
|
2
2
|
import { FocusedTask, FocusedTaskActions, useFocusedTask } from "@sps-woodland/focused-task";
|
3
3
|
import { Button } from "@sps-woodland/buttons";
|
4
4
|
import { Card } from "@sps-woodland/cards";
|
@@ -36,7 +36,7 @@
|
|
36
36
|
</>
|
37
37
|
)
|
38
38
|
}
|
39
|
-
`}}},fullWidth:{label:"Fill Width",examples:{basic:{react:
|
39
|
+
`}}},fullWidth:{label:"Fill Width",examples:{basic:{react:pe.code`
|
40
40
|
import { FocusedTask, FocusedTaskActions, useFocusedTask } from "@sps-woodland/focused-task";
|
41
41
|
import { Button } from "@sps-woodland/buttons";
|
42
42
|
import { Card } from "@sps-woodland/cards";
|
@@ -75,4 +75,4 @@
|
|
75
75
|
</>
|
76
76
|
)
|
77
77
|
}
|
78
|
-
`}}}}},
|
78
|
+
`}}}}},gn={"Focused Task":En};exports.FocusedTask=fe;exports.FocusedTaskActions=de;exports.MANIFEST=gn;exports.useFocusedTask=hn;
|