@sps-woodland/modal 8.20.7 → 8.20.9
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 +1 -1
- package/lib/index.es.js +107 -102
- 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 _=require("@sps-woodland/core"),we=require("@sps-woodland/buttons"),m=require("react"),nt=require("react-dom"),v=require("@spscommerce/utils");function rt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const u=rt(m),w=typeof document<"u"?m.useLayoutEffect:()=>{};function A(e){const t=m.useRef(null);return w(()=>{t.current=e},[e]),m.useCallback((...o)=>{const n=t.current;return n==null?void 0:n(...o)},[])}function at(e){let[t,o]=m.useState(e),n=m.useRef(null),r=A(()=>{if(!n.current)return;let a=n.current.next();if(a.done){n.current=null;return}t===a.value?r():o(a.value)});w(()=>{n.current&&r()});let l=A(a=>{n.current=a(t),r()});return[t,l]}const j={prefix:String(Math.round(Math.random()*1e10)),current:0},Le=m.createContext(j),lt=m.createContext(!1);let it=!!(typeof window<"u"&&window.document&&window.document.createElement),te=new WeakMap;function st(e=!1){let t=m.useContext(Le),o=m.useRef(null);if(o.current===null&&!e){var n,r;let l=(r=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||r===void 0||(n=r.ReactCurrentOwner)===null||n===void 0?void 0:n.current;if(l){let a=te.get(l);a==null?te.set(l,{id:t.current,state:l.memoizedState}):l.memoizedState!==a.state&&(t.current=a.id,te.delete(l))}o.current=++t.current}return o.current}function dt(e){let t=m.useContext(Le);t===j&&!it&&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 o=st(!!e),n=t===j&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${n}-${o}`}function ut(e){let t=m.useId(),[o]=m.useState(Ce()),n=o||process.env.NODE_ENV==="test"?"react-aria":`react-aria${j.prefix}`;return e||`${n}-${t}`}const ct=typeof m.useId=="function"?ut:dt;function mt(){return!1}function ft(){return!0}function pt(e){return()=>{}}function Ce(){return typeof m.useSyncExternalStore=="function"?m.useSyncExternalStore(pt,mt,ft):m.useContext(lt)}let gt=!!(typeof window<"u"&&window.document&&window.document.createElement),K=new Map;function Be(e){let[t,o]=m.useState(e),n=m.useRef(null),r=ct(t),l=m.useCallback(a=>{n.current=a},[]);return gt&&K.set(r,l),w(()=>{let a=r;return()=>{K.delete(a)}},[r]),m.useEffect(()=>{let a=n.current;a&&(n.current=null,o(a))}),r}function bt(e,t){if(e===t)return e;let o=K.get(e);if(o)return o(t),t;let n=K.get(t);return n?(n(e),e):t}function vt(e=[]){let t=Be(),[o,n]=at(t),r=m.useCallback(()=>{n(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,n]);return w(r,[t,r,...e]),o}function U(...e){return(...t)=>{for(let o of e)typeof o=="function"&&o(...t)}}const E=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},G=e=>e&&"window"in e&&e.window===e?e:E(e).defaultView||window;function Ne(e){var t,o,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(o=Ne(e[t]))&&(n&&(n+=" "),n+=o)}else for(o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function ht(){for(var e,t,o=0,n="",r=arguments.length;o<r;o++)(e=arguments[o])&&(t=Ne(e))&&(n&&(n+=" "),n+=t);return n}function $t(...e){let t={...e[0]};for(let o=1;o<e.length;o++){let n=e[o];for(let r in n){let l=t[r],a=n[r];typeof l=="function"&&typeof a=="function"&&r[0]==="o"&&r[1]==="n"&&r.charCodeAt(2)>=65&&r.charCodeAt(2)<=90?t[r]=U(l,a):(r==="className"||r==="UNSAFE_className")&&typeof l=="string"&&typeof a=="string"?t[r]=ht(l,a):r==="id"&&l&&a?t.id=bt(l,a):t[r]=a!==void 0?a:l}}return t}const wt=new Set(["id"]),Et=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Mt=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),_t=/^(data-.*)$/;function yt(e,t={}){let{labelable:o,isLink:n,propNames:r}=t,l={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(wt.has(a)||o&&Et.has(a)||n&&Mt.has(a)||r!=null&&r.has(a)||_t.test(a))&&(l[a]=e[a]);return l}function Ee(e){if(Pt())e.focus({preventScroll:!0});else{let t=kt(e);e.focus(),xt(t)}}let q=null;function Pt(){if(q==null){q=!1;try{document.createElement("div").focus({get preventScroll(){return q=!0,!0}})}catch{}}return q}function kt(e){let t=e.parentNode,o=[],n=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==n;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&o.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return n instanceof HTMLElement&&o.push({element:n,scrollTop:n.scrollTop,scrollLeft:n.scrollLeft}),o}function xt(e){for(let{element:t,scrollTop:o,scrollLeft:n}of e)t.scrollTop=o,t.scrollLeft=n}function Tt(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(o=>e.test(o.brand)))||e.test(window.navigator.userAgent)}function ce(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 I(e){let t=null;return()=>(t==null&&(t=e()),t)}const Oe=I(function(){return ce(/^Mac/i)}),St=I(function(){return ce(/^iPhone/i)}),Ft=I(function(){return ce(/^iPad/i)||Oe()&&navigator.maxTouchPoints>1}),Lt=I(function(){return St()||Ft()}),Ct=I(function(){return Tt(/Android/i)});let B=new Map,re=new Set;function Me(){if(typeof window>"u")return;function e(n){return"propertyName"in n}let t=n=>{if(!e(n)||!n.target)return;let r=B.get(n.target);r||(r=new Set,B.set(n.target,r),n.target.addEventListener("transitioncancel",o,{once:!0})),r.add(n.propertyName)},o=n=>{if(!e(n)||!n.target)return;let r=B.get(n.target);if(r&&(r.delete(n.propertyName),r.size===0&&(n.target.removeEventListener("transitioncancel",o),B.delete(n.target)),B.size===0)){for(let l of re)l();re.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",o)}typeof document<"u"&&(document.readyState!=="loading"?Me():document.addEventListener("DOMContentLoaded",Me));function Bt(e){requestAnimationFrame(()=>{B.size===0?e():re.add(e)})}function _e(e,t){let o=window.getComputedStyle(e),n=/(auto|scroll)/.test(o.overflow+o.overflowX+o.overflowY);return n&&t&&(n=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),n}function De(e,t){let o=e;for(_e(o,t)&&(o=o.parentElement);o&&!_e(o,t);)o=o.parentElement;return o||document.scrollingElement||document.documentElement}function Nt(e){return e.mozInputSource===0&&e.isTrusted?!0:Ct()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Ot(e,t,o){let[n,r]=m.useState(e||t),l=m.useRef(e!==void 0),a=e!==void 0;m.useEffect(()=>{let i=l.current;i!==a&&console.warn(`WARN: A component changed from ${i?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}.`),l.current=a},[a]);let d=a?e:n,c=m.useCallback((i,...s)=>{let f=(p,...b)=>{o&&(Object.is(d,p)||o(p,...b)),a||(d=p)};typeof i=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),r((b,...g)=>{let y=i(a?d:b,...g);return f(y,...s),a?b:y})):(a||r(i),f(i,...s))},[a,d,o]);return[d,c]}const Re=m.createContext({register:()=>{}});Re.displayName="PressResponderContext";function Dt({children:e}){let t=m.useMemo(()=>({register:()=>{}}),[]);return m.createElement(Re.Provider,{value:t},e)}class Rt{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,o){this.nativeEvent=o,this.target=o.target,this.currentTarget=o.currentTarget,this.relatedTarget=o.relatedTarget,this.bubbles=o.bubbles,this.cancelable=o.cancelable,this.defaultPrevented=o.defaultPrevented,this.eventPhase=o.eventPhase,this.isTrusted=o.isTrusted,this.timeStamp=o.timeStamp,this.type=t}}function Wt(e){let t=m.useRef({isFocused:!1,observer:null});w(()=>{const n=t.current;return()=>{n.observer&&(n.observer.disconnect(),n.observer=null)}},[]);let o=A(n=>{e==null||e(n)});return m.useCallback(n=>{if(n.target instanceof HTMLButtonElement||n.target instanceof HTMLInputElement||n.target instanceof HTMLTextAreaElement||n.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=n.target,l=a=>{t.current.isFocused=!1,r.disabled&&o(new Rt("blur",a)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",l,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&r.disabled){var a;(a=t.current.observer)===null||a===void 0||a.disconnect();let d=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:d})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:d}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[o])}let z=null,At=new Set,W=new Map,C=!1,ae=!1;function me(e,t){for(let o of At)o(e,t)}function It(e){return!(e.metaKey||!Oe()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function X(e){C=!0,It(e)&&(z="keyboard",me("keyboard",e))}function k(e){z="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(C=!0,me("pointer",e))}function We(e){Nt(e)&&(C=!0,z="virtual")}function Ae(e){e.target===window||e.target===document||(!C&&!ae&&(z="virtual",me("virtual",e)),C=!1,ae=!1)}function Ie(){C=!1,ae=!0}function ye(e){if(typeof window>"u"||W.get(G(e)))return;const t=G(e),o=E(e);let n=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){C=!0,n.apply(this,arguments)},o.addEventListener("keydown",X,!0),o.addEventListener("keyup",X,!0),o.addEventListener("click",We,!0),t.addEventListener("focus",Ae,!0),t.addEventListener("blur",Ie,!1),typeof PointerEvent<"u"?(o.addEventListener("pointerdown",k,!0),o.addEventListener("pointermove",k,!0),o.addEventListener("pointerup",k,!0)):(o.addEventListener("mousedown",k,!0),o.addEventListener("mousemove",k,!0),o.addEventListener("mouseup",k,!0)),t.addEventListener("beforeunload",()=>{ze(e)},{once:!0}),W.set(t,{focus:n})}const ze=(e,t)=>{const o=G(e),n=E(e);t&&n.removeEventListener("DOMContentLoaded",t),W.has(o)&&(o.HTMLElement.prototype.focus=W.get(o).focus,n.removeEventListener("keydown",X,!0),n.removeEventListener("keyup",X,!0),n.removeEventListener("click",We,!0),o.removeEventListener("focus",Ae,!0),o.removeEventListener("blur",Ie,!1),typeof PointerEvent<"u"?(n.removeEventListener("pointerdown",k,!0),n.removeEventListener("pointermove",k,!0),n.removeEventListener("pointerup",k,!0)):(n.removeEventListener("mousedown",k,!0),n.removeEventListener("mousemove",k,!0),n.removeEventListener("mouseup",k,!0)),W.delete(o))};function zt(e){const t=E(e);let o;return t.readyState!=="loading"?ye(e):(o=()=>{ye(e)},t.addEventListener("DOMContentLoaded",o)),()=>ze(e,o)}typeof document<"u"&&zt();function qt(){return z}function Ht(e){let{isDisabled:t,onBlurWithin:o,onFocusWithin:n,onFocusWithinChange:r}=e,l=m.useRef({isFocusWithin:!1}),a=m.useCallback(i=>{l.current.isFocusWithin&&!i.currentTarget.contains(i.relatedTarget)&&(l.current.isFocusWithin=!1,o&&o(i),r&&r(!1))},[o,r,l]),d=Wt(a),c=m.useCallback(i=>{!l.current.isFocusWithin&&document.activeElement===i.target&&(n&&n(i),r&&r(!0),l.current.isFocusWithin=!0,d(i))},[n,r,d]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:c,onBlur:a}}}function Vt(e){let{ref:t,onInteractOutside:o,isDisabled:n,onInteractOutsideStart:r}=e,l=m.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=A(c=>{o&&H(c,t)&&(r&&r(c),l.current.isPointerDown=!0)}),d=A(c=>{o&&o(c)});m.useEffect(()=>{let c=l.current;if(n)return;const i=t.current,s=E(i);if(typeof PointerEvent<"u"){let f=p=>{c.isPointerDown&&H(p,t)&&d(p),c.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=b=>{c.ignoreEmulatedMouseEvents?c.ignoreEmulatedMouseEvents=!1:c.isPointerDown&&H(b,t)&&d(b),c.isPointerDown=!1},p=b=>{c.ignoreEmulatedMouseEvents=!0,c.isPointerDown&&H(b,t)&&d(b),c.isPointerDown=!1};return s.addEventListener("mousedown",a,!0),s.addEventListener("mouseup",f,!0),s.addEventListener("touchstart",a,!0),s.addEventListener("touchend",p,!0),()=>{s.removeEventListener("mousedown",a,!0),s.removeEventListener("mouseup",f,!0),s.removeEventListener("touchstart",a,!0),s.removeEventListener("touchend",p,!0)}}},[t,n,a,d])}function H(e,t){if(e.button>0)return!1;if(e.target){const o=e.target.ownerDocument;if(!o||!o.documentElement.contains(e.target)||e.target.closest("[data-react-aria-top-layer]"))return!1}return t.current&&!t.current.contains(e.target)}function le(e){const t=E(e);if(qt()==="virtual"){let o=t.activeElement;Bt(()=>{t.activeElement===o&&e.isConnected&&Ee(e)})}else Ee(e)}function jt(e){const t=G(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:o,visibility:n}=e.style,r=o!=="none"&&n!=="hidden"&&n!=="collapse";if(r){const{getComputedStyle:l}=e.ownerDocument.defaultView;let{display:a,visibility:d}=l(e);r=a!=="none"&&d!=="hidden"&&d!=="collapse"}return r}function Kt(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 qe(e,t){return e.nodeName!=="#comment"&&jt(e)&&Kt(e,t)&&(!e.parentElement||qe(e.parentElement,e))}const Pe=m.createContext(null),ie="react-aria-focus-scope-restore";let h=null;function Ut(e){let{children:t,contain:o,restoreFocus:n,autoFocus:r}=e,l=m.useRef(null),a=m.useRef(null),d=m.useRef([]),{parentNode:c}=m.useContext(Pe)||{},i=m.useMemo(()=>new de({scopeRef:d}),[d]);w(()=>{let p=c||$.root;if($.getTreeNode(p.scopeRef)&&h&&!Y(h,p.scopeRef)){let b=$.getTreeNode(h);b&&(p=b)}p.addChild(i),$.addNode(i)},[i,c]),w(()=>{let p=$.getTreeNode(d);p&&(p.contain=!!o)},[o]),w(()=>{var p;let b=(p=l.current)===null||p===void 0?void 0:p.nextSibling,g=[],y=F=>F.stopPropagation();for(;b&&b!==a.current;)g.push(b),b.addEventListener(ie,y),b=b.nextSibling;return d.current=g,()=>{for(let F of g)F.removeEventListener(ie,y)}},[t]),eo(d,n,o),Yt(d,o),oo(d,n,o),Zt(d,r),m.useEffect(()=>{const p=E(d.current?d.current[0]:void 0).activeElement;let b=null;if(M(p,d.current)){for(let g of $.traverse())g.scopeRef&&M(p,g.scopeRef.current)&&(b=g);b===$.getTreeNode(d)&&(h=b.scopeRef)}},[d]),w(()=>()=>{var p,b,g;let y=(g=(b=$.getTreeNode(d))===null||b===void 0||(p=b.parent)===null||p===void 0?void 0:p.scopeRef)!==null&&g!==void 0?g:null;(d===h||Y(d,h))&&(!y||$.getTreeNode(y))&&(h=y),$.removeTreeNode(d)},[d]);let s=m.useMemo(()=>Gt(d),[]),f=m.useMemo(()=>({focusManager:s,parentNode:i}),[i,s]);return m.createElement(Pe.Provider,{value:f},m.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:l}),t,m.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function Gt(e){return{focusNext(t={}){let o=e.current,{from:n,tabbable:r,wrap:l,accept:a}=t,d=n||E(o[0]).activeElement,c=o[0].previousElementSibling,i=L(o),s=S(i,{tabbable:r,accept:a},o);s.currentNode=M(d,o)?d:c;let f=s.nextNode();return!f&&l&&(s.currentNode=c,f=s.nextNode()),f&&T(f,!0),f},focusPrevious(t={}){let o=e.current,{from:n,tabbable:r,wrap:l,accept:a}=t,d=n||E(o[0]).activeElement,c=o[o.length-1].nextElementSibling,i=L(o),s=S(i,{tabbable:r,accept:a},o);s.currentNode=M(d,o)?d:c;let f=s.previousNode();return!f&&l&&(s.currentNode=c,f=s.previousNode()),f&&T(f,!0),f},focusFirst(t={}){let o=e.current,{tabbable:n,accept:r}=t,l=L(o),a=S(l,{tabbable:n,accept:r},o);a.currentNode=o[0].previousElementSibling;let d=a.nextNode();return d&&T(d,!0),d},focusLast(t={}){let o=e.current,{tabbable:n,accept:r}=t,l=L(o),a=S(l,{tabbable:n,accept:r},o);a.currentNode=o[o.length-1].nextElementSibling;let d=a.previousNode();return d&&T(d,!0),d}}}const fe=["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]"],Xt=fe.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";fe.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const Jt=fe.join(':not([hidden]):not([tabindex="-1"]),');function L(e){return e[0].parentElement}function R(e){let t=$.getTreeNode(h);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function Yt(e,t){let o=m.useRef(void 0),n=m.useRef(void 0);w(()=>{let r=e.current;if(!t){n.current&&(cancelAnimationFrame(n.current),n.current=void 0);return}const l=E(r?r[0]:void 0);let a=i=>{if(i.key!=="Tab"||i.altKey||i.ctrlKey||i.metaKey||!R(e)||i.isComposing)return;let s=l.activeElement,f=e.current;if(!f||!M(s,f))return;let p=L(f),b=S(p,{tabbable:!0},f);if(!s)return;b.currentNode=s;let g=i.shiftKey?b.previousNode():b.nextNode();g||(b.currentNode=i.shiftKey?f[f.length-1].nextElementSibling:f[0].previousElementSibling,g=i.shiftKey?b.previousNode():b.nextNode()),i.preventDefault(),g&&T(g,!0)},d=i=>{(!h||Y(h,e))&&M(i.target,e.current)?(h=e,o.current=i.target):R(e)&&!J(i.target,e)?o.current?o.current.focus():h&&h.current&&se(h.current):R(e)&&(o.current=i.target)},c=i=>{n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{if(l.activeElement&&R(e)&&!J(l.activeElement,e))if(h=e,l.body.contains(i.target)){var s;o.current=i.target,(s=o.current)===null||s===void 0||s.focus()}else h.current&&se(h.current)})};return l.addEventListener("keydown",a,!1),l.addEventListener("focusin",d,!1),r==null||r.forEach(i=>i.addEventListener("focusin",d,!1)),r==null||r.forEach(i=>i.addEventListener("focusout",c,!1)),()=>{l.removeEventListener("keydown",a,!1),l.removeEventListener("focusin",d,!1),r==null||r.forEach(i=>i.removeEventListener("focusin",d,!1)),r==null||r.forEach(i=>i.removeEventListener("focusout",c,!1))}},[e,t]),w(()=>()=>{n.current&&cancelAnimationFrame(n.current)},[n])}function He(e){return J(e)}function M(e,t){return!e||!t?!1:t.some(o=>o.contains(e))}function J(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:o}of $.traverse($.getTreeNode(t)))if(o&&M(e,o.current))return!0;return!1}function Qt(e){return J(e,h)}function Y(e,t){var o;let n=(o=$.getTreeNode(t))===null||o===void 0?void 0:o.parent;for(;n;){if(n.scopeRef===e)return!0;n=n.parent}return!1}function T(e,t=!1){if(e!=null&&!t)try{le(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function Ve(e,t=!0){let o=e[0].previousElementSibling,n=L(e),r=S(n,{tabbable:t},e);r.currentNode=o;let l=r.nextNode();return t&&!l&&(n=L(e),r=S(n,{tabbable:!1},e),r.currentNode=o,l=r.nextNode()),l}function se(e,t=!0){T(Ve(e,t))}function Zt(e,t){const o=m.useRef(t);m.useEffect(()=>{if(o.current){h=e;const n=E(e.current?e.current[0]:void 0);!M(n.activeElement,h.current)&&e.current&&se(e.current)}o.current=!1},[e])}function eo(e,t,o){w(()=>{if(t||o)return;let n=e.current;const r=E(n?n[0]:void 0);let l=a=>{let d=a.target;M(d,e.current)?h=e:He(d)||(h=null)};return r.addEventListener("focusin",l,!1),n==null||n.forEach(a=>a.addEventListener("focusin",l,!1)),()=>{r.removeEventListener("focusin",l,!1),n==null||n.forEach(a=>a.removeEventListener("focusin",l,!1))}},[e,t,o])}function to(e){let t=$.getTreeNode(h);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(t==null?void 0:t.scopeRef)===e}function oo(e,t,o){const n=m.useRef(typeof document<"u"?E(e.current?e.current[0]:void 0).activeElement:null);w(()=>{let r=e.current;const l=E(r?r[0]:void 0);if(!t||o)return;let a=()=>{(!h||Y(h,e))&&M(l.activeElement,e.current)&&(h=e)};return l.addEventListener("focusin",a,!1),r==null||r.forEach(d=>d.addEventListener("focusin",a,!1)),()=>{l.removeEventListener("focusin",a,!1),r==null||r.forEach(d=>d.removeEventListener("focusin",a,!1))}},[e,o]),w(()=>{const r=E(e.current?e.current[0]:void 0);if(!t)return;let l=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!R(e)||a.isComposing)return;let d=r.activeElement;if(!M(d,e.current))return;let c=$.getTreeNode(e);if(!c)return;let i=c.nodeToRestore,s=S(r.body,{tabbable:!0});s.currentNode=d;let f=a.shiftKey?s.previousNode():s.nextNode();if((!i||!r.body.contains(i)||i===r.body)&&(i=void 0,c.nodeToRestore=void 0),(!f||!M(f,e.current))&&i){s.currentNode=i;do f=a.shiftKey?s.previousNode():s.nextNode();while(M(f,e.current));a.preventDefault(),a.stopPropagation(),f?T(f,!0):He(i)?T(i,!0):d.blur()}};return o||r.addEventListener("keydown",l,!0),()=>{o||r.removeEventListener("keydown",l,!0)}},[e,t,o]),w(()=>{const r=E(e.current?e.current[0]:void 0);if(!t)return;let l=$.getTreeNode(e);if(l){var a;return l.nodeToRestore=(a=n.current)!==null&&a!==void 0?a:void 0,()=>{let d=$.getTreeNode(e);if(!d)return;let c=d.nodeToRestore;if(t&&c&&(M(r.activeElement,e.current)||r.activeElement===r.body&&to(e))){let i=$.clone();requestAnimationFrame(()=>{if(r.activeElement===r.body){let s=i.getTreeNode(e);for(;s;){if(s.nodeToRestore&&s.nodeToRestore.isConnected){ke(s.nodeToRestore);return}s=s.parent}for(s=i.getTreeNode(e);s;){if(s.scopeRef&&s.scopeRef.current&&$.getTreeNode(s.scopeRef)){let f=Ve(s.scopeRef.current,!0);ke(f);return}s=s.parent}}})}}}},[e,t])}function ke(e){e.dispatchEvent(new CustomEvent(ie,{bubbles:!0,cancelable:!0}))&&T(e)}function S(e,t,o){let n=t!=null&&t.tabbable?Jt:Xt,r=E(e).createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(l){var a;return!(t==null||(a=t.from)===null||a===void 0)&&a.contains(l)?NodeFilter.FILTER_REJECT:l.matches(n)&&qe(l)&&(!o||M(l,o))&&(!(t!=null&&t.accept)||t.accept(l))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t!=null&&t.from&&(r.currentNode=t.from),r}class pe{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,o,n){let r=this.fastMap.get(o??null);if(!r)return;let l=new de({scopeRef:t});r.addChild(l),l.parent=r,this.fastMap.set(t,l),n&&(l.nodeToRestore=n)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let o=this.fastMap.get(t);if(!o)return;let n=o.parent;for(let l of this.traverse())l!==o&&o.nodeToRestore&&l.nodeToRestore&&o.scopeRef&&o.scopeRef.current&&M(l.nodeToRestore,o.scopeRef.current)&&(l.nodeToRestore=o.nodeToRestore);let r=o.children;n&&(n.removeChild(o),r.size>0&&r.forEach(l=>n&&n.addChild(l))),this.fastMap.delete(o.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let o of t.children)yield*this.traverse(o)}clone(){var t;let o=new pe;var n;for(let r of this.traverse())o.addTreeNode(r.scopeRef,(n=(t=r.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&n!==void 0?n:null,r.nodeToRestore);return o}constructor(){this.fastMap=new Map,this.root=new de({scopeRef:null}),this.fastMap.set(null,this.root)}}class de{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 $=new pe;const no=new WeakMap,x=[];function ro(e,t){let{onClose:o,shouldCloseOnBlur:n,isOpen:r,isDismissable:l=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:d}=e;m.useEffect(()=>(r&&x.push(t),()=>{let g=x.indexOf(t);g>=0&&x.splice(g,1)}),[r,t]);let c=()=>{x[x.length-1]===t&&o&&o()},i=g=>{(!d||d(g.target))&&x[x.length-1]===t&&(g.stopPropagation(),g.preventDefault())},s=g=>{(!d||d(g.target))&&(x[x.length-1]===t&&(g.stopPropagation(),g.preventDefault()),c())},f=g=>{g.key==="Escape"&&!a&&!g.nativeEvent.isComposing&&(g.stopPropagation(),g.preventDefault(),c())};Vt({ref:t,onInteractOutside:l&&r?s:null,onInteractOutsideStart:i});let{focusWithinProps:p}=Ht({isDisabled:!n,onBlurWithin:g=>{!g.relatedTarget||Qt(g.relatedTarget)||(!d||d(g.relatedTarget))&&o()}}),b=g=>{g.target===g.currentTarget&&g.preventDefault()};return{overlayProps:{onKeyDown:f,...p},underlayProps:{onPointerDown:b}}}function ao(e,t,o){let{type:n}=e,{isOpen:r}=t;m.useEffect(()=>{o&&o.current&&no.set(o.current,t.close)});let l;n==="menu"?l=!0:n==="listbox"&&(l="listbox");let a=Be();return{triggerProps:{"aria-haspopup":l,"aria-expanded":r,"aria-controls":r?a:null,onPress:t.toggle},overlayProps:{id:a}}}const oe=typeof document<"u"&&window.visualViewport,lo=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let V=0,ne;function io(e={}){let{isDisabled:t}=e;w(()=>{if(!t)return V++,V===1&&(Lt()?ne=uo():ne=so()),()=>{V--,V===0&&ne()}},[t])}function so(){return U(N(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),N(document.documentElement,"overflow","hidden"))}function uo(){let e,t,o=i=>{e=De(i.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=N(e,"overscrollBehavior","contain"))},n=i=>{if(!e||e===document.documentElement||e===document.body){i.preventDefault();return}e.scrollHeight===e.clientHeight&&e.scrollWidth===e.clientWidth&&i.preventDefault()},r=i=>{let s=i.target;Te(s)&&s!==document.activeElement&&(i.preventDefault(),d(),s.style.transform="translateY(-2000px)",s.focus(),requestAnimationFrame(()=>{s.style.transform=""})),t&&t()},l=i=>{let s=i.target;Te(s)&&(d(),s.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{s.style.transform="",oe&&(oe.height<window.innerHeight?requestAnimationFrame(()=>{xe(s)}):oe.addEventListener("resize",()=>xe(s),{once:!0}))}))},a=null,d=()=>{if(a)return;let i=()=>{window.scrollTo(0,0)},s=window.pageXOffset,f=window.pageYOffset;a=U(O(window,"scroll",i),N(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),N(document.documentElement,"overflow","hidden"),N(document.body,"marginTop",`-${f}px`),()=>{window.scrollTo(s,f)}),window.scrollTo(0,0)},c=U(O(document,"touchstart",o,{passive:!1,capture:!0}),O(document,"touchmove",n,{passive:!1,capture:!0}),O(document,"touchend",r,{passive:!1,capture:!0}),O(document,"focus",l,!0));return()=>{t==null||t(),a==null||a(),c()}}function N(e,t,o){let n=e.style[t];return e.style[t]=o,()=>{e.style[t]=n}}function O(e,t,o,n){return e.addEventListener(t,o,n),()=>{e.removeEventListener(t,o,n)}}function xe(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let o=De(e);if(o!==document.documentElement&&o!==document.body&&o!==e){let n=o.getBoundingClientRect().top,r=e.getBoundingClientRect().top;r>n+e.clientHeight&&(o.scrollTop+=r-n)}e=o.parentElement}}function Te(e){return e instanceof HTMLInputElement&&!lo.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}let D=new WeakMap,P=[];function co(e,t=document.body){let o=new Set(e),n=new Set,r=c=>{for(let p of c.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))o.add(p);let i=p=>{if(o.has(p)||n.has(p.parentElement)&&p.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let b of o)if(p.contains(b))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},s=document.createTreeWalker(c,NodeFilter.SHOW_ELEMENT,{acceptNode:i}),f=i(c);if(f===NodeFilter.FILTER_ACCEPT&&l(c),f!==NodeFilter.FILTER_REJECT){let p=s.nextNode();for(;p!=null;)l(p),p=s.nextNode()}},l=c=>{var i;let s=(i=D.get(c))!==null&&i!==void 0?i:0;c.getAttribute("aria-hidden")==="true"&&s===0||(s===0&&c.setAttribute("aria-hidden","true"),n.add(c),D.set(c,s+1))};P.length&&P[P.length-1].disconnect(),r(t);let a=new MutationObserver(c=>{for(let i of c)if(!(i.type!=="childList"||i.addedNodes.length===0)&&![...o,...n].some(s=>s.contains(i.target))){for(let s of i.removedNodes)s instanceof Element&&(o.delete(s),n.delete(s));for(let s of i.addedNodes)(s instanceof HTMLElement||s instanceof SVGElement)&&(s.dataset.liveAnnouncer==="true"||s.dataset.reactAriaTopLayer==="true")?o.add(s):s instanceof Element&&r(s)}});a.observe(t,{childList:!0,subtree:!0});let d={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return P.push(d),()=>{a.disconnect();for(let c of n){let i=D.get(c);i===1?(c.removeAttribute("aria-hidden"),D.delete(c)):D.set(c,i-1)}d===P[P.length-1]?(P.pop(),P.length&&P[P.length-1].observe()):P.splice(P.indexOf(d),1)}}const mo=m.createContext({});function fo(){var e;return(e=m.useContext(mo))!==null&&e!==void 0?e:{}}const je=m.createContext(null);function po(e){let t=Ce(),{portalContainer:o=t?null:document.body,isExiting:n}=e,[r,l]=m.useState(!1),a=m.useMemo(()=>({contain:r,setContain:l}),[r,l]),{getContainer:d}=fo();if(!e.portalContainer&&d&&(o=d()),!o)return null;let c=e.children;return e.disableFocusManagement||(c=m.createElement(Ut,{restoreFocus:!0,contain:r&&!n},c)),c=m.createElement(je.Provider,{value:a},m.createElement(Dt,null,c)),nt.createPortal(c,o)}function Ke(){let e=m.useContext(je),t=e==null?void 0:e.setContain;w(()=>{t==null||t(!0)},[t])}function go(e,t,o){let{overlayProps:n,underlayProps:r}=ro({...e,isOpen:t.isOpen,onClose:t.close},o);return io({isDisabled:!t.isOpen}),Ke(),m.useEffect(()=>{if(t.isOpen)return co([o.current])},[t.isOpen,o]),{modalProps:$t(n),underlayProps:r}}function bo(e,t){let{role:o="dialog"}=e,n=vt();n=e["aria-label"]?void 0:n;let r=m.useRef(!1);return m.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){le(t.current);let l=setTimeout(()=>{document.activeElement===t.current&&(r.current=!0,t.current&&(t.current.blur(),le(t.current)),r.current=!1)},500);return()=>{clearTimeout(l)}}},[t]),Ke(),{dialogProps:{...yt(e,{labelable:!0}),role:o,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||n,onBlur:l=>{r.current&&l.stopPropagation()}},titleProps:{id:n}}}function vo(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function Se(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),o.push.apply(o,n)}return o}function Fe(e){for(var t=1;t<arguments.length;t++){var o=arguments[t]!=null?arguments[t]:{};t%2?Se(Object(o),!0).forEach(function(n){vo(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Se(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}var ho=(e,t,o)=>{for(var n of Object.keys(e)){var r;if(e[n]!==((r=t[n])!==null&&r!==void 0?r:o[n]))return!1}return!0},Ue=e=>t=>{var o=e.defaultClassName,n=Fe(Fe({},e.defaultVariants),t);for(var r in n){var l,a=(l=n[r])!==null&&l!==void 0?l:e.defaultVariants[r];if(a!=null){var d=a;typeof d=="boolean"&&(d=d===!0?"true":"false");var c=e.variantClassNames[r][d];c&&(o+=" "+c)}}for(var[i,s]of e.compoundVariants)ho(i,n,e.defaultVariants)&&(o+=" "+s);return o},$o="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2o",wo="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2q",Eo="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2r",Ge="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2p",Mo=Ue({defaultClassName:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto20",variantClassNames:{kind:{informational:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto21",delete:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto22",failure:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto23",success:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto24",warning:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto25",successWithFailures:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto26",form:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto27"},size:{sm:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto28",md:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto29",lg:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2a",xl:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2b"},fullHeight:{true:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2c",false:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2d"}},defaultVariants:{},compoundVariants:[]}),_o="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2n",yo=Ue({defaultClassName:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2e",variantClassNames:{kind:{form:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2f",delete:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2g",failure:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2h",informational:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2i",success:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2j",warning:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2k",successWithFailures:"pkg_sps-woodland_modal__version_8_20_7__hash_3moto2l"}},defaultVariants:{},compoundVariants:[]}),Po="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2m",ko="pkg_sps-woodland_modal__version_8_20_7__hash_3moto2s";function ge({children:e,className:t="",...o}){return u.createElement("div",{className:_.cl(Ge,t),...o},e)}_.Metadata.set(ge,{name:"ModalFooter"});const ue=Object.freeze({form:"pencil",delete:"trash",failure:"status-error",informational:"info-circle",success:"status-ok",successWithFailures:"status-warning",warning:"status-warning"});function xo({children:e,className:t,"data-testid":o,kind:n="informational",onBlur:r,onFocus:l,overlayProps:a,size:d="sm",state:c,title:i,dismissible:s,dismissable:f=!0,onClose:p,fullHeight:b=!1,...g}){const y=s??f,F=u.useRef(null),{modalProps:Q,underlayProps:Xe}=go({isKeyboardDismissDisabled:!y,...g},c,F),{dialogProps:Z,titleProps:Je}=bo(g,F),Ye=_.combineEventHandlers(Q.onFocus,Z.onFocus,l),Qe=_.combineEventHandlers(Q.onBlur,Z.onBlur,r),{t:Ze}=u.useContext(_.I18nContext),et=_.useChildTestIdAttrBuilder({"data-testid":o}),[ee,tt]=_.selectChildren(e,[{type:ge}]);function ve(){p&&typeof p=="function"&&p(),c.close()}const he=function(){return y?u.createElement(we.Button,{"aria-label":"Close",onClick:ve,kind:"icon",icon:"x",className:wo}):null},ot=_.modChildren(tt,$e=>$e.type===he?[{className:_.cl($e.props.classname,Eo)}]:[]);return u.createElement(po,null,u.createElement("div",{className:ko,...Xe,...g},u.createElement("div",{...Q,...Z,...a,onFocus:Ye,onBlur:Qe,...et("dialog"),ref:F,className:_.cl(Mo({kind:n,size:d,fullHeight:b}),t)},u.createElement("div",{...Je,className:yo({kind:n})},n&&u.createElement(_.Icon,{icon:ue[n]||ue.informational,className:_o}),u.createElement("div",{className:Po},_.contentOf(i,c.close)),u.createElement(he,null)),u.createElement("div",{className:$o},_.contentOf(ot,c.close)),ee&&ee.length>0?u.createElement(u.Fragment,null,_.contentOf(ee,c.close)):u.createElement("div",{className:Ge},u.createElement(we.Button,{kind:"key",onClick:ve},Ze("design-system:modal.defaultButtonLabel"))))))}function be(e){return e.state.isOpen?u.createElement(xo,{...e},e.children):u.createElement(u.Fragment,null)}_.Metadata.set(be,{name:"Modal",props:{dismissable:{type:"boolean",default:"true"},fullHeight:{type:"boolean",default:"false"},kind:{type:"ModalKind",default:"informational"},onBlur:{type:"() => void"},onClose:{type:"() => void"},onFocus:{type:"() => void"},size:{type:"ModalSize",default:"sm"},title:{type:"string"}}});function To(e){let[t,o]=Ot(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const n=m.useCallback(()=>{o(!0)},[o]),r=m.useCallback(()=>{o(!1)},[o]),l=m.useCallback(()=>{o(!t)},[o,t]);return{isOpen:t,setOpen:o,open:n,close:r,toggle:l}}function So(e={}){const t=To(e),o=m.useRef(null),{triggerProps:n,overlayProps:r}=ao({type:"dialog"},t,o),{onPress:l,...a}=n;return{triggerProps:{...a,onClick:l,ref:o},modalState:t,modalProps:{overlayProps:r,state:t}}}const Fo={description:()=>u.createElement("p",null,"Modals are overlays on a page that focus a user’s attention on an important message or a simple action. Examples of a Modal include confirming the deletion of a record, or making a single selection."),components:[be],examples:{general:{label:"Usage",description:({NavigateTo:e})=>u.createElement(u.Fragment,null,u.createElement("h5",null,"Use a Modal:"),u.createElement("ul",null,u.createElement("li",null,"When the user needs to confirm a basic decision, such as deleting a record."),u.createElement("li",null,"When important information needs to be displayed to the user before continuing."),u.createElement("li",null,"When a simple selection, such as a single form input, is required before proceeding.")),u.createElement("h5",null,"Avoid a Modal:"),u.createElement("ul",null,u.createElement("li",null,"When a complex form is required. Use a ",u.createElement(e,{to:"focused-task"},"Focused Task View")," instead."),u.createElement("li",null,"When sharing non-critical or tertiary information. Use a ",u.createElement(e,{to:"growlers"},"Growler")," instead.")))},implementation:{label:"Close Button",description:()=>u.createElement(u.Fragment,null,u.createElement("h5",null,"Close Button and Modal dismissiability"),u.createElement("p",null,"Remove the Close Button in the upper right of the Modal if the user must choose the course of action before proceeding."),u.createElement("p",null,"The close button is included by default and omitted when the prop ",u.createElement("code",null,"dismissable")," is set to ",u.createElement("strong",null,"false"),"."),u.createElement("p",null,"Setting the ",u.createElement("code",null,"dismissable")," prop to false also prevents dismissing the modal by clicking outside of the modal or by using the"," ",u.createElement("strong",null,"escape")," key.")),examples:{basic:{react:v.code`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sps-woodland/core"),we=require("@sps-woodland/buttons"),m=require("react"),nt=require("react-dom"),v=require("@spscommerce/utils");function rt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const u=rt(m),w=typeof document<"u"?m.useLayoutEffect:()=>{};function I(e){const t=m.useRef(null);return w(()=>{t.current=e},[e]),m.useCallback((...o)=>{const n=t.current;return n==null?void 0:n(...o)},[])}function at(e){let[t,o]=m.useState(e),n=m.useRef(null),r=I(()=>{if(!n.current)return;let a=n.current.next();if(a.done){n.current=null;return}t===a.value?r():o(a.value)});w(()=>{n.current&&r()});let l=I(a=>{n.current=a(t),r()});return[t,l]}const K={prefix:String(Math.round(Math.random()*1e10)),current:0},Le=m.createContext(K),lt=m.createContext(!1);let it=!!(typeof window<"u"&&window.document&&window.document.createElement),te=new WeakMap;function st(e=!1){let t=m.useContext(Le),o=m.useRef(null);if(o.current===null&&!e){var n,r;let l=(r=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||r===void 0||(n=r.ReactCurrentOwner)===null||n===void 0?void 0:n.current;if(l){let a=te.get(l);a==null?te.set(l,{id:t.current,state:l.memoizedState}):l.memoizedState!==a.state&&(t.current=a.id,te.delete(l))}o.current=++t.current}return o.current}function dt(e){let t=m.useContext(Le);t===K&&!it&&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 o=st(!!e),n=t===K&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${n}-${o}`}function ut(e){let t=m.useId(),[o]=m.useState(Ce()),n=o||process.env.NODE_ENV==="test"?"react-aria":`react-aria${K.prefix}`;return e||`${n}-${t}`}const ct=typeof m.useId=="function"?ut:dt;function mt(){return!1}function ft(){return!0}function pt(e){return()=>{}}function Ce(){return typeof m.useSyncExternalStore=="function"?m.useSyncExternalStore(pt,mt,ft):m.useContext(lt)}let gt=!!(typeof window<"u"&&window.document&&window.document.createElement),S=new Map;function Be(e){let[t,o]=m.useState(e),n=m.useRef(null),r=ct(t),l=m.useCallback(a=>{n.current=a},[]);return gt&&(S.has(r)&&!S.get(r).includes(l)?S.set(r,[...S.get(r),l]):S.set(r,[l])),w(()=>{let a=r;return()=>{S.delete(a)}},[r]),m.useEffect(()=>{let a=n.current;a&&(n.current=null,o(a))}),r}function bt(e,t){if(e===t)return e;let o=S.get(e);if(o)return o.forEach(r=>r(t)),t;let n=S.get(t);return n?(n.forEach(r=>r(e)),e):t}function vt(e=[]){let t=Be(),[o,n]=at(t),r=m.useCallback(()=>{n(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,n]);return w(r,[t,r,...e]),o}function U(...e){return(...t)=>{for(let o of e)typeof o=="function"&&o(...t)}}const E=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},G=e=>e&&"window"in e&&e.window===e?e:E(e).defaultView||window;function Ne(e){var t,o,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(o=Ne(e[t]))&&(n&&(n+=" "),n+=o)}else for(o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function ht(){for(var e,t,o=0,n="",r=arguments.length;o<r;o++)(e=arguments[o])&&(t=Ne(e))&&(n&&(n+=" "),n+=t);return n}function $t(...e){let t={...e[0]};for(let o=1;o<e.length;o++){let n=e[o];for(let r in n){let l=t[r],a=n[r];typeof l=="function"&&typeof a=="function"&&r[0]==="o"&&r[1]==="n"&&r.charCodeAt(2)>=65&&r.charCodeAt(2)<=90?t[r]=U(l,a):(r==="className"||r==="UNSAFE_className")&&typeof l=="string"&&typeof a=="string"?t[r]=ht(l,a):r==="id"&&l&&a?t.id=bt(l,a):t[r]=a!==void 0?a:l}}return t}const wt=new Set(["id"]),Et=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Mt=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),_t=/^(data-.*)$/;function yt(e,t={}){let{labelable:o,isLink:n,propNames:r}=t,l={};for(const a in e)Object.prototype.hasOwnProperty.call(e,a)&&(wt.has(a)||o&&Et.has(a)||n&&Mt.has(a)||r!=null&&r.has(a)||_t.test(a))&&(l[a]=e[a]);return l}function Ee(e){if(Pt())e.focus({preventScroll:!0});else{let t=kt(e);e.focus(),xt(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 kt(e){let t=e.parentNode,o=[],n=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==n;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&o.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return n instanceof HTMLElement&&o.push({element:n,scrollTop:n.scrollTop,scrollLeft:n.scrollLeft}),o}function xt(e){for(let{element:t,scrollTop:o,scrollLeft:n}of e)t.scrollTop=o,t.scrollLeft=n}function Tt(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(o=>e.test(o.brand)))||e.test(window.navigator.userAgent)}function ce(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 z(e){let t=null;return()=>(t==null&&(t=e()),t)}const Oe=z(function(){return ce(/^Mac/i)}),St=z(function(){return ce(/^iPhone/i)}),Ft=z(function(){return ce(/^iPad/i)||Oe()&&navigator.maxTouchPoints>1}),Lt=z(function(){return St()||Ft()}),Ct=z(function(){return Tt(/Android/i)});let N=new Map,re=new Set;function Me(){if(typeof window>"u")return;function e(n){return"propertyName"in n}let t=n=>{if(!e(n)||!n.target)return;let r=N.get(n.target);r||(r=new Set,N.set(n.target,r),n.target.addEventListener("transitioncancel",o,{once:!0})),r.add(n.propertyName)},o=n=>{if(!e(n)||!n.target)return;let r=N.get(n.target);if(r&&(r.delete(n.propertyName),r.size===0&&(n.target.removeEventListener("transitioncancel",o),N.delete(n.target)),N.size===0)){for(let l of re)l();re.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",o)}typeof document<"u"&&(document.readyState!=="loading"?Me():document.addEventListener("DOMContentLoaded",Me));function Bt(e){requestAnimationFrame(()=>{N.size===0?e():re.add(e)})}function _e(e,t){let o=window.getComputedStyle(e),n=/(auto|scroll)/.test(o.overflow+o.overflowX+o.overflowY);return n&&t&&(n=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),n}function De(e,t){let o=e;for(_e(o,t)&&(o=o.parentElement);o&&!_e(o,t);)o=o.parentElement;return o||document.scrollingElement||document.documentElement}function Nt(e){return e.mozInputSource===0&&e.isTrusted?!0:Ct()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Ot(e,t,o){let[n,r]=m.useState(e||t),l=m.useRef(e!==void 0),a=e!==void 0;m.useEffect(()=>{let i=l.current;i!==a&&console.warn(`WARN: A component changed from ${i?"controlled":"uncontrolled"} to ${a?"controlled":"uncontrolled"}.`),l.current=a},[a]);let d=a?e:n,c=m.useCallback((i,...s)=>{let f=(p,...b)=>{o&&(Object.is(d,p)||o(p,...b)),a||(d=p)};typeof i=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),r((b,...g)=>{let y=i(a?d:b,...g);return f(y,...s),a?b:y})):(a||r(i),f(i,...s))},[a,d,o]);return[d,c]}const Re=m.createContext({register:()=>{}});Re.displayName="PressResponderContext";function Dt({children:e}){let t=m.useMemo(()=>({register:()=>{}}),[]);return m.createElement(Re.Provider,{value:t},e)}class Rt{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,o){this.nativeEvent=o,this.target=o.target,this.currentTarget=o.currentTarget,this.relatedTarget=o.relatedTarget,this.bubbles=o.bubbles,this.cancelable=o.cancelable,this.defaultPrevented=o.defaultPrevented,this.eventPhase=o.eventPhase,this.isTrusted=o.isTrusted,this.timeStamp=o.timeStamp,this.type=t}}function Wt(e){let t=m.useRef({isFocused:!1,observer:null});w(()=>{const n=t.current;return()=>{n.observer&&(n.observer.disconnect(),n.observer=null)}},[]);let o=I(n=>{e==null||e(n)});return m.useCallback(n=>{if(n.target instanceof HTMLButtonElement||n.target instanceof HTMLInputElement||n.target instanceof HTMLTextAreaElement||n.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=n.target,l=a=>{t.current.isFocused=!1,r.disabled&&o(new Rt("blur",a)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",l,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&r.disabled){var a;(a=t.current.observer)===null||a===void 0||a.disconnect();let d=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:d})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:d}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[o])}let q=null,At=new Set,A=new Map,B=!1,ae=!1;function me(e,t){for(let o of At)o(e,t)}function It(e){return!(e.metaKey||!Oe()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function X(e){B=!0,It(e)&&(q="keyboard",me("keyboard",e))}function k(e){q="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(B=!0,me("pointer",e))}function We(e){Nt(e)&&(B=!0,q="virtual")}function Ae(e){e.target===window||e.target===document||(!B&&!ae&&(q="virtual",me("virtual",e)),B=!1,ae=!1)}function Ie(){B=!1,ae=!0}function ye(e){if(typeof window>"u"||A.get(G(e)))return;const t=G(e),o=E(e);let n=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){B=!0,n.apply(this,arguments)},o.addEventListener("keydown",X,!0),o.addEventListener("keyup",X,!0),o.addEventListener("click",We,!0),t.addEventListener("focus",Ae,!0),t.addEventListener("blur",Ie,!1),typeof PointerEvent<"u"?(o.addEventListener("pointerdown",k,!0),o.addEventListener("pointermove",k,!0),o.addEventListener("pointerup",k,!0)):(o.addEventListener("mousedown",k,!0),o.addEventListener("mousemove",k,!0),o.addEventListener("mouseup",k,!0)),t.addEventListener("beforeunload",()=>{ze(e)},{once:!0}),A.set(t,{focus:n})}const ze=(e,t)=>{const o=G(e),n=E(e);t&&n.removeEventListener("DOMContentLoaded",t),A.has(o)&&(o.HTMLElement.prototype.focus=A.get(o).focus,n.removeEventListener("keydown",X,!0),n.removeEventListener("keyup",X,!0),n.removeEventListener("click",We,!0),o.removeEventListener("focus",Ae,!0),o.removeEventListener("blur",Ie,!1),typeof PointerEvent<"u"?(n.removeEventListener("pointerdown",k,!0),n.removeEventListener("pointermove",k,!0),n.removeEventListener("pointerup",k,!0)):(n.removeEventListener("mousedown",k,!0),n.removeEventListener("mousemove",k,!0),n.removeEventListener("mouseup",k,!0)),A.delete(o))};function zt(e){const t=E(e);let o;return t.readyState!=="loading"?ye(e):(o=()=>{ye(e)},t.addEventListener("DOMContentLoaded",o)),()=>ze(e,o)}typeof document<"u"&&zt();function qt(){return q}function Ht(e){let{isDisabled:t,onBlurWithin:o,onFocusWithin:n,onFocusWithinChange:r}=e,l=m.useRef({isFocusWithin:!1}),a=m.useCallback(i=>{l.current.isFocusWithin&&!i.currentTarget.contains(i.relatedTarget)&&(l.current.isFocusWithin=!1,o&&o(i),r&&r(!1))},[o,r,l]),d=Wt(a),c=m.useCallback(i=>{!l.current.isFocusWithin&&document.activeElement===i.target&&(n&&n(i),r&&r(!0),l.current.isFocusWithin=!0,d(i))},[n,r,d]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:c,onBlur:a}}}function Vt(e){let{ref:t,onInteractOutside:o,isDisabled:n,onInteractOutsideStart:r}=e,l=m.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=I(c=>{o&&V(c,t)&&(r&&r(c),l.current.isPointerDown=!0)}),d=I(c=>{o&&o(c)});m.useEffect(()=>{let c=l.current;if(n)return;const i=t.current,s=E(i);if(typeof PointerEvent<"u"){let f=p=>{c.isPointerDown&&V(p,t)&&d(p),c.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=b=>{c.ignoreEmulatedMouseEvents?c.ignoreEmulatedMouseEvents=!1:c.isPointerDown&&V(b,t)&&d(b),c.isPointerDown=!1},p=b=>{c.ignoreEmulatedMouseEvents=!0,c.isPointerDown&&V(b,t)&&d(b),c.isPointerDown=!1};return s.addEventListener("mousedown",a,!0),s.addEventListener("mouseup",f,!0),s.addEventListener("touchstart",a,!0),s.addEventListener("touchend",p,!0),()=>{s.removeEventListener("mousedown",a,!0),s.removeEventListener("mouseup",f,!0),s.removeEventListener("touchstart",a,!0),s.removeEventListener("touchend",p,!0)}}},[t,n,a,d])}function V(e,t){if(e.button>0)return!1;if(e.target){const o=e.target.ownerDocument;if(!o||!o.documentElement.contains(e.target)||e.target.closest("[data-react-aria-top-layer]"))return!1}return t.current&&!t.current.contains(e.target)}function le(e){const t=E(e);if(qt()==="virtual"){let o=t.activeElement;Bt(()=>{t.activeElement===o&&e.isConnected&&Ee(e)})}else Ee(e)}function jt(e){const t=G(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:o,visibility:n}=e.style,r=o!=="none"&&n!=="hidden"&&n!=="collapse";if(r){const{getComputedStyle:l}=e.ownerDocument.defaultView;let{display:a,visibility:d}=l(e);r=a!=="none"&&d!=="hidden"&&d!=="collapse"}return r}function Kt(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 qe(e,t){return e.nodeName!=="#comment"&&jt(e)&&Kt(e,t)&&(!e.parentElement||qe(e.parentElement,e))}const Pe=m.createContext(null),ie="react-aria-focus-scope-restore";let h=null;function Ut(e){let{children:t,contain:o,restoreFocus:n,autoFocus:r}=e,l=m.useRef(null),a=m.useRef(null),d=m.useRef([]),{parentNode:c}=m.useContext(Pe)||{},i=m.useMemo(()=>new de({scopeRef:d}),[d]);w(()=>{let p=c||$.root;if($.getTreeNode(p.scopeRef)&&h&&!Y(h,p.scopeRef)){let b=$.getTreeNode(h);b&&(p=b)}p.addChild(i),$.addNode(i)},[i,c]),w(()=>{let p=$.getTreeNode(d);p&&(p.contain=!!o)},[o]),w(()=>{var p;let b=(p=l.current)===null||p===void 0?void 0:p.nextSibling,g=[],y=L=>L.stopPropagation();for(;b&&b!==a.current;)g.push(b),b.addEventListener(ie,y),b=b.nextSibling;return d.current=g,()=>{for(let L of g)L.removeEventListener(ie,y)}},[t]),eo(d,n,o),Yt(d,o),oo(d,n,o),Zt(d,r),m.useEffect(()=>{const p=E(d.current?d.current[0]:void 0).activeElement;let b=null;if(M(p,d.current)){for(let g of $.traverse())g.scopeRef&&M(p,g.scopeRef.current)&&(b=g);b===$.getTreeNode(d)&&(h=b.scopeRef)}},[d]),w(()=>()=>{var p,b,g;let y=(g=(b=$.getTreeNode(d))===null||b===void 0||(p=b.parent)===null||p===void 0?void 0:p.scopeRef)!==null&&g!==void 0?g:null;(d===h||Y(d,h))&&(!y||$.getTreeNode(y))&&(h=y),$.removeTreeNode(d)},[d]);let s=m.useMemo(()=>Gt(d),[]),f=m.useMemo(()=>({focusManager:s,parentNode:i}),[i,s]);return m.createElement(Pe.Provider,{value:f},m.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:l}),t,m.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function Gt(e){return{focusNext(t={}){let o=e.current,{from:n,tabbable:r,wrap:l,accept:a}=t,d=n||E(o[0]).activeElement,c=o[0].previousElementSibling,i=C(o),s=F(i,{tabbable:r,accept:a},o);s.currentNode=M(d,o)?d:c;let f=s.nextNode();return!f&&l&&(s.currentNode=c,f=s.nextNode()),f&&T(f,!0),f},focusPrevious(t={}){let o=e.current,{from:n,tabbable:r,wrap:l,accept:a}=t,d=n||E(o[0]).activeElement,c=o[o.length-1].nextElementSibling,i=C(o),s=F(i,{tabbable:r,accept:a},o);s.currentNode=M(d,o)?d:c;let f=s.previousNode();return!f&&l&&(s.currentNode=c,f=s.previousNode()),f&&T(f,!0),f},focusFirst(t={}){let o=e.current,{tabbable:n,accept:r}=t,l=C(o),a=F(l,{tabbable:n,accept:r},o);a.currentNode=o[0].previousElementSibling;let d=a.nextNode();return d&&T(d,!0),d},focusLast(t={}){let o=e.current,{tabbable:n,accept:r}=t,l=C(o),a=F(l,{tabbable:n,accept:r},o);a.currentNode=o[o.length-1].nextElementSibling;let d=a.previousNode();return d&&T(d,!0),d}}}const fe=["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]"],Xt=fe.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";fe.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const Jt=fe.join(':not([hidden]):not([tabindex="-1"]),');function C(e){return e[0].parentElement}function W(e){let t=$.getTreeNode(h);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function Yt(e,t){let o=m.useRef(void 0),n=m.useRef(void 0);w(()=>{let r=e.current;if(!t){n.current&&(cancelAnimationFrame(n.current),n.current=void 0);return}const l=E(r?r[0]:void 0);let a=i=>{if(i.key!=="Tab"||i.altKey||i.ctrlKey||i.metaKey||!W(e)||i.isComposing)return;let s=l.activeElement,f=e.current;if(!f||!M(s,f))return;let p=C(f),b=F(p,{tabbable:!0},f);if(!s)return;b.currentNode=s;let g=i.shiftKey?b.previousNode():b.nextNode();g||(b.currentNode=i.shiftKey?f[f.length-1].nextElementSibling:f[0].previousElementSibling,g=i.shiftKey?b.previousNode():b.nextNode()),i.preventDefault(),g&&T(g,!0)},d=i=>{(!h||Y(h,e))&&M(i.target,e.current)?(h=e,o.current=i.target):W(e)&&!J(i.target,e)?o.current?o.current.focus():h&&h.current&&se(h.current):W(e)&&(o.current=i.target)},c=i=>{n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{if(l.activeElement&&W(e)&&!J(l.activeElement,e))if(h=e,l.body.contains(i.target)){var s;o.current=i.target,(s=o.current)===null||s===void 0||s.focus()}else h.current&&se(h.current)})};return l.addEventListener("keydown",a,!1),l.addEventListener("focusin",d,!1),r==null||r.forEach(i=>i.addEventListener("focusin",d,!1)),r==null||r.forEach(i=>i.addEventListener("focusout",c,!1)),()=>{l.removeEventListener("keydown",a,!1),l.removeEventListener("focusin",d,!1),r==null||r.forEach(i=>i.removeEventListener("focusin",d,!1)),r==null||r.forEach(i=>i.removeEventListener("focusout",c,!1))}},[e,t]),w(()=>()=>{n.current&&cancelAnimationFrame(n.current)},[n])}function He(e){return J(e)}function M(e,t){return!e||!t?!1:t.some(o=>o.contains(e))}function J(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:o}of $.traverse($.getTreeNode(t)))if(o&&M(e,o.current))return!0;return!1}function Qt(e){return J(e,h)}function Y(e,t){var o;let n=(o=$.getTreeNode(t))===null||o===void 0?void 0:o.parent;for(;n;){if(n.scopeRef===e)return!0;n=n.parent}return!1}function T(e,t=!1){if(e!=null&&!t)try{le(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function Ve(e,t=!0){let o=e[0].previousElementSibling,n=C(e),r=F(n,{tabbable:t},e);r.currentNode=o;let l=r.nextNode();return t&&!l&&(n=C(e),r=F(n,{tabbable:!1},e),r.currentNode=o,l=r.nextNode()),l}function se(e,t=!0){T(Ve(e,t))}function Zt(e,t){const o=m.useRef(t);m.useEffect(()=>{if(o.current){h=e;const n=E(e.current?e.current[0]:void 0);!M(n.activeElement,h.current)&&e.current&&se(e.current)}o.current=!1},[e])}function eo(e,t,o){w(()=>{if(t||o)return;let n=e.current;const r=E(n?n[0]:void 0);let l=a=>{let d=a.target;M(d,e.current)?h=e:He(d)||(h=null)};return r.addEventListener("focusin",l,!1),n==null||n.forEach(a=>a.addEventListener("focusin",l,!1)),()=>{r.removeEventListener("focusin",l,!1),n==null||n.forEach(a=>a.removeEventListener("focusin",l,!1))}},[e,t,o])}function to(e){let t=$.getTreeNode(h);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return(t==null?void 0:t.scopeRef)===e}function oo(e,t,o){const n=m.useRef(typeof document<"u"?E(e.current?e.current[0]:void 0).activeElement:null);w(()=>{let r=e.current;const l=E(r?r[0]:void 0);if(!t||o)return;let a=()=>{(!h||Y(h,e))&&M(l.activeElement,e.current)&&(h=e)};return l.addEventListener("focusin",a,!1),r==null||r.forEach(d=>d.addEventListener("focusin",a,!1)),()=>{l.removeEventListener("focusin",a,!1),r==null||r.forEach(d=>d.removeEventListener("focusin",a,!1))}},[e,o]),w(()=>{const r=E(e.current?e.current[0]:void 0);if(!t)return;let l=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!W(e)||a.isComposing)return;let d=r.activeElement;if(!M(d,e.current))return;let c=$.getTreeNode(e);if(!c)return;let i=c.nodeToRestore,s=F(r.body,{tabbable:!0});s.currentNode=d;let f=a.shiftKey?s.previousNode():s.nextNode();if((!i||!r.body.contains(i)||i===r.body)&&(i=void 0,c.nodeToRestore=void 0),(!f||!M(f,e.current))&&i){s.currentNode=i;do f=a.shiftKey?s.previousNode():s.nextNode();while(M(f,e.current));a.preventDefault(),a.stopPropagation(),f?T(f,!0):He(i)?T(i,!0):d.blur()}};return o||r.addEventListener("keydown",l,!0),()=>{o||r.removeEventListener("keydown",l,!0)}},[e,t,o]),w(()=>{const r=E(e.current?e.current[0]:void 0);if(!t)return;let l=$.getTreeNode(e);if(l){var a;return l.nodeToRestore=(a=n.current)!==null&&a!==void 0?a:void 0,()=>{let d=$.getTreeNode(e);if(!d)return;let c=d.nodeToRestore;if(t&&c&&(M(r.activeElement,e.current)||r.activeElement===r.body&&to(e))){let i=$.clone();requestAnimationFrame(()=>{if(r.activeElement===r.body){let s=i.getTreeNode(e);for(;s;){if(s.nodeToRestore&&s.nodeToRestore.isConnected){ke(s.nodeToRestore);return}s=s.parent}for(s=i.getTreeNode(e);s;){if(s.scopeRef&&s.scopeRef.current&&$.getTreeNode(s.scopeRef)){let f=Ve(s.scopeRef.current,!0);ke(f);return}s=s.parent}}})}}}},[e,t])}function ke(e){e.dispatchEvent(new CustomEvent(ie,{bubbles:!0,cancelable:!0}))&&T(e)}function F(e,t,o){let n=t!=null&&t.tabbable?Jt:Xt,r=E(e).createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(l){var a;return!(t==null||(a=t.from)===null||a===void 0)&&a.contains(l)?NodeFilter.FILTER_REJECT:l.matches(n)&&qe(l)&&(!o||M(l,o))&&(!(t!=null&&t.accept)||t.accept(l))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t!=null&&t.from&&(r.currentNode=t.from),r}class pe{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,o,n){let r=this.fastMap.get(o??null);if(!r)return;let l=new de({scopeRef:t});r.addChild(l),l.parent=r,this.fastMap.set(t,l),n&&(l.nodeToRestore=n)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let o=this.fastMap.get(t);if(!o)return;let n=o.parent;for(let l of this.traverse())l!==o&&o.nodeToRestore&&l.nodeToRestore&&o.scopeRef&&o.scopeRef.current&&M(l.nodeToRestore,o.scopeRef.current)&&(l.nodeToRestore=o.nodeToRestore);let r=o.children;n&&(n.removeChild(o),r.size>0&&r.forEach(l=>n&&n.addChild(l))),this.fastMap.delete(o.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let o of t.children)yield*this.traverse(o)}clone(){var t;let o=new pe;var n;for(let r of this.traverse())o.addTreeNode(r.scopeRef,(n=(t=r.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&n!==void 0?n:null,r.nodeToRestore);return o}constructor(){this.fastMap=new Map,this.root=new de({scopeRef:null}),this.fastMap.set(null,this.root)}}class de{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 $=new pe;const no=new WeakMap,x=[];function ro(e,t){let{onClose:o,shouldCloseOnBlur:n,isOpen:r,isDismissable:l=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:d}=e;m.useEffect(()=>(r&&x.push(t),()=>{let g=x.indexOf(t);g>=0&&x.splice(g,1)}),[r,t]);let c=()=>{x[x.length-1]===t&&o&&o()},i=g=>{(!d||d(g.target))&&x[x.length-1]===t&&(g.stopPropagation(),g.preventDefault())},s=g=>{(!d||d(g.target))&&(x[x.length-1]===t&&(g.stopPropagation(),g.preventDefault()),c())},f=g=>{g.key==="Escape"&&!a&&!g.nativeEvent.isComposing&&(g.stopPropagation(),g.preventDefault(),c())};Vt({ref:t,onInteractOutside:l&&r?s:null,onInteractOutsideStart:i});let{focusWithinProps:p}=Ht({isDisabled:!n,onBlurWithin:g=>{!g.relatedTarget||Qt(g.relatedTarget)||(!d||d(g.relatedTarget))&&o()}}),b=g=>{g.target===g.currentTarget&&g.preventDefault()};return{overlayProps:{onKeyDown:f,...p},underlayProps:{onPointerDown:b}}}function ao(e,t,o){let{type:n}=e,{isOpen:r}=t;m.useEffect(()=>{o&&o.current&&no.set(o.current,t.close)});let l;n==="menu"?l=!0:n==="listbox"&&(l="listbox");let a=Be();return{triggerProps:{"aria-haspopup":l,"aria-expanded":r,"aria-controls":r?a:null,onPress:t.toggle},overlayProps:{id:a}}}const oe=typeof document<"u"&&window.visualViewport,lo=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let j=0,ne;function io(e={}){let{isDisabled:t}=e;w(()=>{if(!t)return j++,j===1&&(Lt()?ne=uo():ne=so()),()=>{j--,j===0&&ne()}},[t])}function so(){return U(O(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),O(document.documentElement,"overflow","hidden"))}function uo(){let e,t,o=i=>{e=De(i.target,!0),!(e===document.documentElement&&e===document.body)&&e instanceof HTMLElement&&window.getComputedStyle(e).overscrollBehavior==="auto"&&(t=O(e,"overscrollBehavior","contain"))},n=i=>{if(!e||e===document.documentElement||e===document.body){i.preventDefault();return}e.scrollHeight===e.clientHeight&&e.scrollWidth===e.clientWidth&&i.preventDefault()},r=i=>{let s=i.target;Te(s)&&s!==document.activeElement&&(i.preventDefault(),d(),s.style.transform="translateY(-2000px)",s.focus(),requestAnimationFrame(()=>{s.style.transform=""})),t&&t()},l=i=>{let s=i.target;Te(s)&&(d(),s.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{s.style.transform="",oe&&(oe.height<window.innerHeight?requestAnimationFrame(()=>{xe(s)}):oe.addEventListener("resize",()=>xe(s),{once:!0}))}))},a=null,d=()=>{if(a)return;let i=()=>{window.scrollTo(0,0)},s=window.pageXOffset,f=window.pageYOffset;a=U(D(window,"scroll",i),O(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),O(document.documentElement,"overflow","hidden"),O(document.body,"marginTop",`-${f}px`),()=>{window.scrollTo(s,f)}),window.scrollTo(0,0)},c=U(D(document,"touchstart",o,{passive:!1,capture:!0}),D(document,"touchmove",n,{passive:!1,capture:!0}),D(document,"touchend",r,{passive:!1,capture:!0}),D(document,"focus",l,!0));return()=>{t==null||t(),a==null||a(),c()}}function O(e,t,o){let n=e.style[t];return e.style[t]=o,()=>{e.style[t]=n}}function D(e,t,o,n){return e.addEventListener(t,o,n),()=>{e.removeEventListener(t,o,n)}}function xe(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let o=De(e);if(o!==document.documentElement&&o!==document.body&&o!==e){let n=o.getBoundingClientRect().top,r=e.getBoundingClientRect().top;r>n+e.clientHeight&&(o.scrollTop+=r-n)}e=o.parentElement}}function Te(e){return e instanceof HTMLInputElement&&!lo.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}let R=new WeakMap,P=[];function co(e,t=document.body){let o=new Set(e),n=new Set,r=c=>{for(let p of c.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))o.add(p);let i=p=>{if(o.has(p)||n.has(p.parentElement)&&p.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let b of o)if(p.contains(b))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},s=document.createTreeWalker(c,NodeFilter.SHOW_ELEMENT,{acceptNode:i}),f=i(c);if(f===NodeFilter.FILTER_ACCEPT&&l(c),f!==NodeFilter.FILTER_REJECT){let p=s.nextNode();for(;p!=null;)l(p),p=s.nextNode()}},l=c=>{var i;let s=(i=R.get(c))!==null&&i!==void 0?i:0;c.getAttribute("aria-hidden")==="true"&&s===0||(s===0&&c.setAttribute("aria-hidden","true"),n.add(c),R.set(c,s+1))};P.length&&P[P.length-1].disconnect(),r(t);let a=new MutationObserver(c=>{for(let i of c)if(!(i.type!=="childList"||i.addedNodes.length===0)&&![...o,...n].some(s=>s.contains(i.target))){for(let s of i.removedNodes)s instanceof Element&&(o.delete(s),n.delete(s));for(let s of i.addedNodes)(s instanceof HTMLElement||s instanceof SVGElement)&&(s.dataset.liveAnnouncer==="true"||s.dataset.reactAriaTopLayer==="true")?o.add(s):s instanceof Element&&r(s)}});a.observe(t,{childList:!0,subtree:!0});let d={observe(){a.observe(t,{childList:!0,subtree:!0})},disconnect(){a.disconnect()}};return P.push(d),()=>{a.disconnect();for(let c of n){let i=R.get(c);i===1?(c.removeAttribute("aria-hidden"),R.delete(c)):R.set(c,i-1)}d===P[P.length-1]?(P.pop(),P.length&&P[P.length-1].observe()):P.splice(P.indexOf(d),1)}}const mo=m.createContext({});function fo(){var e;return(e=m.useContext(mo))!==null&&e!==void 0?e:{}}const je=m.createContext(null);function po(e){let t=Ce(),{portalContainer:o=t?null:document.body,isExiting:n}=e,[r,l]=m.useState(!1),a=m.useMemo(()=>({contain:r,setContain:l}),[r,l]),{getContainer:d}=fo();if(!e.portalContainer&&d&&(o=d()),!o)return null;let c=e.children;return e.disableFocusManagement||(c=m.createElement(Ut,{restoreFocus:!0,contain:r&&!n},c)),c=m.createElement(je.Provider,{value:a},m.createElement(Dt,null,c)),nt.createPortal(c,o)}function Ke(){let e=m.useContext(je),t=e==null?void 0:e.setContain;w(()=>{t==null||t(!0)},[t])}function go(e,t,o){let{overlayProps:n,underlayProps:r}=ro({...e,isOpen:t.isOpen,onClose:t.close},o);return io({isDisabled:!t.isOpen}),Ke(),m.useEffect(()=>{if(t.isOpen)return co([o.current])},[t.isOpen,o]),{modalProps:$t(n),underlayProps:r}}function bo(e,t){let{role:o="dialog"}=e,n=vt();n=e["aria-label"]?void 0:n;let r=m.useRef(!1);return m.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){le(t.current);let l=setTimeout(()=>{document.activeElement===t.current&&(r.current=!0,t.current&&(t.current.blur(),le(t.current)),r.current=!1)},500);return()=>{clearTimeout(l)}}},[t]),Ke(),{dialogProps:{...yt(e,{labelable:!0}),role:o,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||n,onBlur:l=>{r.current&&l.stopPropagation()}},titleProps:{id:n}}}function vo(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function Se(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),o.push.apply(o,n)}return o}function Fe(e){for(var t=1;t<arguments.length;t++){var o=arguments[t]!=null?arguments[t]:{};t%2?Se(Object(o),!0).forEach(function(n){vo(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Se(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}var ho=(e,t,o)=>{for(var n of Object.keys(e)){var r;if(e[n]!==((r=t[n])!==null&&r!==void 0?r:o[n]))return!1}return!0},Ue=e=>t=>{var o=e.defaultClassName,n=Fe(Fe({},e.defaultVariants),t);for(var r in n){var l,a=(l=n[r])!==null&&l!==void 0?l:e.defaultVariants[r];if(a!=null){var d=a;typeof d=="boolean"&&(d=d===!0?"true":"false");var c=e.variantClassNames[r][d];c&&(o+=" "+c)}}for(var[i,s]of e.compoundVariants)ho(i,n,e.defaultVariants)&&(o+=" "+s);return o},$o="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2o",wo="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2q",Eo="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2r",Ge="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2p",Mo=Ue({defaultClassName:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto20",variantClassNames:{kind:{informational:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto21",delete:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto22",failure:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto23",success:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto24",warning:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto25",successWithFailures:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto26",form:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto27"},size:{sm:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto28",md:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto29",lg:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2a",xl:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2b"},fullHeight:{true:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2c",false:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2d"}},defaultVariants:{},compoundVariants:[]}),_o="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2n",yo=Ue({defaultClassName:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2e",variantClassNames:{kind:{form:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2f",delete:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2g",failure:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2h",informational:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2i",success:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2j",warning:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2k",successWithFailures:"pkg_sps-woodland_modal__version_8_20_9__hash_3moto2l"}},defaultVariants:{},compoundVariants:[]}),Po="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2m",ko="pkg_sps-woodland_modal__version_8_20_9__hash_3moto2s";function ge({children:e,className:t="",...o}){return u.createElement("div",{className:_.cl(Ge,t),...o},e)}_.Metadata.set(ge,{name:"ModalFooter"});const ue=Object.freeze({form:"pencil",delete:"trash",failure:"status-error",informational:"info-circle",success:"status-ok",successWithFailures:"status-warning",warning:"status-warning"});function xo({children:e,className:t,"data-testid":o,kind:n="informational",onBlur:r,onFocus:l,overlayProps:a,size:d="sm",state:c,title:i,dismissible:s,dismissable:f=!0,onClose:p,fullHeight:b=!1,...g}){const y=s??f,L=u.useRef(null),{modalProps:Q,underlayProps:Xe}=go({isKeyboardDismissDisabled:!y,...g},c,L),{dialogProps:Z,titleProps:Je}=bo(g,L),Ye=_.combineEventHandlers(Q.onFocus,Z.onFocus,l),Qe=_.combineEventHandlers(Q.onBlur,Z.onBlur,r),{t:Ze}=u.useContext(_.I18nContext),et=_.useChildTestIdAttrBuilder({"data-testid":o}),[ee,tt]=_.selectChildren(e,[{type:ge}]);function ve(){p&&typeof p=="function"&&p(),c.close()}const he=function(){return y?u.createElement(we.Button,{"aria-label":"Close",onClick:ve,kind:"icon",icon:"x",className:wo}):null},ot=_.modChildren(tt,$e=>$e.type===he?[{className:_.cl($e.props.classname,Eo)}]:[]);return u.createElement(po,null,u.createElement("div",{className:ko,...Xe,...g},u.createElement("div",{...Q,...Z,...a,onFocus:Ye,onBlur:Qe,...et("dialog"),ref:L,className:_.cl(Mo({kind:n,size:d,fullHeight:b}),t)},u.createElement("div",{...Je,className:yo({kind:n})},n&&u.createElement(_.Icon,{icon:ue[n]||ue.informational,className:_o}),u.createElement("div",{className:Po},_.contentOf(i,c.close)),u.createElement(he,null)),u.createElement("div",{className:$o},_.contentOf(ot,c.close)),ee&&ee.length>0?u.createElement(u.Fragment,null,_.contentOf(ee,c.close)):u.createElement("div",{className:Ge},u.createElement(we.Button,{kind:"key",onClick:ve},Ze("design-system:modal.defaultButtonLabel"))))))}function be(e){return e.state.isOpen?u.createElement(xo,{...e},e.children):u.createElement(u.Fragment,null)}_.Metadata.set(be,{name:"Modal",props:{dismissable:{type:"boolean",default:"true"},fullHeight:{type:"boolean",default:"false"},kind:{type:"ModalKind",default:"informational"},onBlur:{type:"() => void"},onClose:{type:"() => void"},onFocus:{type:"() => void"},size:{type:"ModalSize",default:"sm"},title:{type:"string"}}});function To(e){let[t,o]=Ot(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const n=m.useCallback(()=>{o(!0)},[o]),r=m.useCallback(()=>{o(!1)},[o]),l=m.useCallback(()=>{o(!t)},[o,t]);return{isOpen:t,setOpen:o,open:n,close:r,toggle:l}}function So(e={}){const t=To(e),o=m.useRef(null),{triggerProps:n,overlayProps:r}=ao({type:"dialog"},t,o),{onPress:l,...a}=n;return{triggerProps:{...a,onClick:l,ref:o},modalState:t,modalProps:{overlayProps:r,state:t}}}const Fo={description:()=>u.createElement("p",null,"Modals are overlays on a page that focus a user’s attention on an important message or a simple action. Examples of a Modal include confirming the deletion of a record, or making a single selection."),components:[be],examples:{general:{label:"Usage",description:({NavigateTo:e})=>u.createElement(u.Fragment,null,u.createElement("h5",null,"Use a Modal:"),u.createElement("ul",null,u.createElement("li",null,"When the user needs to confirm a basic decision, such as deleting a record."),u.createElement("li",null,"When important information needs to be displayed to the user before continuing."),u.createElement("li",null,"When a simple selection, such as a single form input, is required before proceeding.")),u.createElement("h5",null,"Avoid a Modal:"),u.createElement("ul",null,u.createElement("li",null,"When a complex form is required. Use a ",u.createElement(e,{to:"focused-task"},"Focused Task View")," instead."),u.createElement("li",null,"When sharing non-critical or tertiary information. Use a ",u.createElement(e,{to:"growlers"},"Growler")," instead.")))},implementation:{label:"Close Button",description:()=>u.createElement(u.Fragment,null,u.createElement("h5",null,"Close Button and Modal dismissiability"),u.createElement("p",null,"Remove the Close Button in the upper right of the Modal if the user must choose the course of action before proceeding."),u.createElement("p",null,"The close button is included by default and omitted when the prop ",u.createElement("code",null,"dismissable")," is set to ",u.createElement("strong",null,"false"),"."),u.createElement("p",null,"Setting the ",u.createElement("code",null,"dismissable")," prop to false also prevents dismissing the modal by clicking outside of the modal or by using the"," ",u.createElement("strong",null,"escape")," key.")),examples:{basic:{react:v.code`
|
|
2
2
|
import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
|
|
3
3
|
import { sprinkles } from "@sps-woodland/tokens";
|
|
4
4
|
import { Button } from "@sps-woodland/buttons";
|
package/lib/index.es.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Metadata as We, cl as ue, combineEventHandlers as ye, I18nContext as mt, useChildTestIdAttrBuilder as pt, selectChildren as ft, modChildren as gt, Icon as bt, contentOf as le } from "@sps-woodland/core";
|
|
2
2
|
import { Button as Pe } from "@sps-woodland/buttons";
|
|
3
3
|
import * as u from "react";
|
|
4
|
-
import $, { useRef as M, useCallback as x, useState as
|
|
4
|
+
import $, { useRef as M, useCallback as x, useState as K, useContext as A, useEffect as L, useMemo as q, createContext as vt } from "react";
|
|
5
5
|
import ht from "react-dom";
|
|
6
6
|
import { code as b } from "@spscommerce/utils";
|
|
7
7
|
const w = typeof document < "u" ? $.useLayoutEffect : () => {
|
|
8
8
|
};
|
|
9
|
-
function
|
|
9
|
+
function H(e) {
|
|
10
10
|
const t = M(null);
|
|
11
11
|
return w(() => {
|
|
12
12
|
t.current = e;
|
|
@@ -18,7 +18,7 @@ function V(e) {
|
|
|
18
18
|
}, []);
|
|
19
19
|
}
|
|
20
20
|
function $t(e) {
|
|
21
|
-
let [t, o] =
|
|
21
|
+
let [t, o] = K(e), n = M(null), r = H(() => {
|
|
22
22
|
if (!n.current) return;
|
|
23
23
|
let a = n.current.next();
|
|
24
24
|
if (a.done) {
|
|
@@ -30,7 +30,7 @@ function $t(e) {
|
|
|
30
30
|
w(() => {
|
|
31
31
|
n.current && r();
|
|
32
32
|
});
|
|
33
|
-
let l =
|
|
33
|
+
let l = H((a) => {
|
|
34
34
|
n.current = a(t), r();
|
|
35
35
|
});
|
|
36
36
|
return [
|
|
@@ -38,13 +38,13 @@ function $t(e) {
|
|
|
38
38
|
l
|
|
39
39
|
];
|
|
40
40
|
}
|
|
41
|
-
const
|
|
41
|
+
const Y = {
|
|
42
42
|
prefix: String(Math.round(Math.random() * 1e10)),
|
|
43
43
|
current: 0
|
|
44
|
-
}, Ae = /* @__PURE__ */ $.createContext(
|
|
44
|
+
}, Ae = /* @__PURE__ */ $.createContext(Y), wt = /* @__PURE__ */ $.createContext(!1);
|
|
45
45
|
let Et = !!(typeof window < "u" && window.document && window.document.createElement), ie = /* @__PURE__ */ new WeakMap();
|
|
46
46
|
function _t(e = !1) {
|
|
47
|
-
let t =
|
|
47
|
+
let t = A(Ae), o = M(null);
|
|
48
48
|
if (o.current === null && !e) {
|
|
49
49
|
var n, r;
|
|
50
50
|
let l = (r = $.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || r === void 0 || (n = r.ReactCurrentOwner) === null || n === void 0 ? void 0 : n.current;
|
|
@@ -60,13 +60,13 @@ function _t(e = !1) {
|
|
|
60
60
|
return o.current;
|
|
61
61
|
}
|
|
62
62
|
function Mt(e) {
|
|
63
|
-
let t =
|
|
64
|
-
t ===
|
|
65
|
-
let o = _t(!!e), n = t ===
|
|
63
|
+
let t = A(Ae);
|
|
64
|
+
t === Y && !Et && console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");
|
|
65
|
+
let o = _t(!!e), n = t === Y && process.env.NODE_ENV === "test" ? "react-aria" : `react-aria${t.prefix}`;
|
|
66
66
|
return e || `${n}-${o}`;
|
|
67
67
|
}
|
|
68
68
|
function yt(e) {
|
|
69
|
-
let t = $.useId(), [o] =
|
|
69
|
+
let t = $.useId(), [o] = K(Ie()), n = o || process.env.NODE_ENV === "test" ? "react-aria" : `react-aria${Y.prefix}`;
|
|
70
70
|
return e || `${n}-${t}`;
|
|
71
71
|
}
|
|
72
72
|
const Pt = typeof $.useId == "function" ? yt : Mt;
|
|
@@ -81,17 +81,22 @@ function Tt(e) {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
function Ie() {
|
|
84
|
-
return typeof $.useSyncExternalStore == "function" ? $.useSyncExternalStore(Tt, kt, xt) :
|
|
84
|
+
return typeof $.useSyncExternalStore == "function" ? $.useSyncExternalStore(Tt, kt, xt) : A(wt);
|
|
85
85
|
}
|
|
86
|
-
let St = !!(typeof window < "u" && window.document && window.document.createElement),
|
|
86
|
+
let St = !!(typeof window < "u" && window.document && window.document.createElement), F = /* @__PURE__ */ new Map();
|
|
87
87
|
function ze(e) {
|
|
88
|
-
let [t, o] =
|
|
88
|
+
let [t, o] = K(e), n = M(null), r = Pt(t), l = x((a) => {
|
|
89
89
|
n.current = a;
|
|
90
90
|
}, []);
|
|
91
|
-
return St &&
|
|
91
|
+
return St && (F.has(r) && !F.get(r).includes(l) ? F.set(r, [
|
|
92
|
+
...F.get(r),
|
|
93
|
+
l
|
|
94
|
+
]) : F.set(r, [
|
|
95
|
+
l
|
|
96
|
+
])), w(() => {
|
|
92
97
|
let a = r;
|
|
93
98
|
return () => {
|
|
94
|
-
|
|
99
|
+
F.delete(a);
|
|
95
100
|
};
|
|
96
101
|
}, [
|
|
97
102
|
r
|
|
@@ -102,11 +107,11 @@ function ze(e) {
|
|
|
102
107
|
}
|
|
103
108
|
function Lt(e, t) {
|
|
104
109
|
if (e === t) return e;
|
|
105
|
-
let o =
|
|
110
|
+
let o = F.get(e);
|
|
106
111
|
if (o)
|
|
107
|
-
return o(t), t;
|
|
108
|
-
let n =
|
|
109
|
-
return n ? (n(e), e) : t;
|
|
112
|
+
return o.forEach((r) => r(t)), t;
|
|
113
|
+
let n = F.get(t);
|
|
114
|
+
return n ? (n.forEach((r) => r(e)), e) : t;
|
|
110
115
|
}
|
|
111
116
|
function Ft(e = []) {
|
|
112
117
|
let t = ze(), [o, n] = $t(t), r = x(() => {
|
|
@@ -191,20 +196,20 @@ function ke(e) {
|
|
|
191
196
|
e.focus(), Rt(t);
|
|
192
197
|
}
|
|
193
198
|
}
|
|
194
|
-
let
|
|
199
|
+
let G = null;
|
|
195
200
|
function It() {
|
|
196
|
-
if (
|
|
197
|
-
|
|
201
|
+
if (G == null) {
|
|
202
|
+
G = !1;
|
|
198
203
|
try {
|
|
199
204
|
document.createElement("div").focus({
|
|
200
205
|
get preventScroll() {
|
|
201
|
-
return
|
|
206
|
+
return G = !0, !0;
|
|
202
207
|
}
|
|
203
208
|
});
|
|
204
209
|
} catch {
|
|
205
210
|
}
|
|
206
211
|
}
|
|
207
|
-
return
|
|
212
|
+
return G;
|
|
208
213
|
}
|
|
209
214
|
function zt(e) {
|
|
210
215
|
let t = e.parentNode, o = [], n = document.scrollingElement || document.documentElement;
|
|
@@ -232,23 +237,23 @@ function ve(e) {
|
|
|
232
237
|
var t;
|
|
233
238
|
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;
|
|
234
239
|
}
|
|
235
|
-
function
|
|
240
|
+
function j(e) {
|
|
236
241
|
let t = null;
|
|
237
242
|
return () => (t == null && (t = e()), t);
|
|
238
243
|
}
|
|
239
|
-
const qe =
|
|
244
|
+
const qe = j(function() {
|
|
240
245
|
return ve(/^Mac/i);
|
|
241
|
-
}), Vt =
|
|
246
|
+
}), Vt = j(function() {
|
|
242
247
|
return ve(/^iPhone/i);
|
|
243
|
-
}), Ht =
|
|
248
|
+
}), Ht = j(function() {
|
|
244
249
|
return ve(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
|
|
245
250
|
qe() && navigator.maxTouchPoints > 1;
|
|
246
|
-
}), Kt =
|
|
251
|
+
}), Kt = j(function() {
|
|
247
252
|
return Vt() || Ht();
|
|
248
|
-
}), jt =
|
|
253
|
+
}), jt = j(function() {
|
|
249
254
|
return qt(/Android/i);
|
|
250
255
|
});
|
|
251
|
-
let
|
|
256
|
+
let D = /* @__PURE__ */ new Map(), ce = /* @__PURE__ */ new Set();
|
|
252
257
|
function xe() {
|
|
253
258
|
if (typeof window > "u") return;
|
|
254
259
|
function e(n) {
|
|
@@ -256,14 +261,14 @@ function xe() {
|
|
|
256
261
|
}
|
|
257
262
|
let t = (n) => {
|
|
258
263
|
if (!e(n) || !n.target) return;
|
|
259
|
-
let r =
|
|
260
|
-
r || (r = /* @__PURE__ */ new Set(),
|
|
264
|
+
let r = D.get(n.target);
|
|
265
|
+
r || (r = /* @__PURE__ */ new Set(), D.set(n.target, r), n.target.addEventListener("transitioncancel", o, {
|
|
261
266
|
once: !0
|
|
262
267
|
})), r.add(n.propertyName);
|
|
263
268
|
}, o = (n) => {
|
|
264
269
|
if (!e(n) || !n.target) return;
|
|
265
|
-
let r =
|
|
266
|
-
if (r && (r.delete(n.propertyName), r.size === 0 && (n.target.removeEventListener("transitioncancel", o),
|
|
270
|
+
let r = D.get(n.target);
|
|
271
|
+
if (r && (r.delete(n.propertyName), r.size === 0 && (n.target.removeEventListener("transitioncancel", o), D.delete(n.target)), D.size === 0)) {
|
|
267
272
|
for (let l of ce) l();
|
|
268
273
|
ce.clear();
|
|
269
274
|
}
|
|
@@ -273,7 +278,7 @@ function xe() {
|
|
|
273
278
|
typeof document < "u" && (document.readyState !== "loading" ? xe() : document.addEventListener("DOMContentLoaded", xe));
|
|
274
279
|
function Ut(e) {
|
|
275
280
|
requestAnimationFrame(() => {
|
|
276
|
-
|
|
281
|
+
D.size === 0 ? e() : ce.add(e);
|
|
277
282
|
});
|
|
278
283
|
}
|
|
279
284
|
function Te(e, t) {
|
|
@@ -289,7 +294,7 @@ function Gt(e) {
|
|
|
289
294
|
return e.mozInputSource === 0 && e.isTrusted ? !0 : jt() && e.pointerType ? e.type === "click" && e.buttons === 1 : e.detail === 0 && !e.pointerType;
|
|
290
295
|
}
|
|
291
296
|
function Xt(e, t, o) {
|
|
292
|
-
let [n, r] =
|
|
297
|
+
let [n, r] = K(e || t), l = M(e !== void 0), a = e !== void 0;
|
|
293
298
|
L(() => {
|
|
294
299
|
let i = l.current;
|
|
295
300
|
i !== a && console.warn(`WARN: A component changed from ${i ? "controlled" : "uncontrolled"} to ${a ? "controlled" : "uncontrolled"}.`), l.current = a;
|
|
@@ -320,7 +325,7 @@ const He = $.createContext({
|
|
|
320
325
|
});
|
|
321
326
|
He.displayName = "PressResponderContext";
|
|
322
327
|
function Jt({ children: e }) {
|
|
323
|
-
let t =
|
|
328
|
+
let t = q(() => ({
|
|
324
329
|
register: () => {
|
|
325
330
|
}
|
|
326
331
|
}), []);
|
|
@@ -358,7 +363,7 @@ function Qt(e) {
|
|
|
358
363
|
n.observer && (n.observer.disconnect(), n.observer = null);
|
|
359
364
|
};
|
|
360
365
|
}, []);
|
|
361
|
-
let o =
|
|
366
|
+
let o = H((n) => {
|
|
362
367
|
e == null || e(n);
|
|
363
368
|
});
|
|
364
369
|
return x((n) => {
|
|
@@ -392,7 +397,7 @@ function Qt(e) {
|
|
|
392
397
|
o
|
|
393
398
|
]);
|
|
394
399
|
}
|
|
395
|
-
let
|
|
400
|
+
let U = null, Zt = /* @__PURE__ */ new Set(), V = /* @__PURE__ */ new Map(), O = !1, me = !1;
|
|
396
401
|
function he(e, t) {
|
|
397
402
|
for (let o of Zt) o(e, t);
|
|
398
403
|
}
|
|
@@ -400,37 +405,37 @@ function eo(e) {
|
|
|
400
405
|
return !(e.metaKey || !qe() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
|
|
401
406
|
}
|
|
402
407
|
function ee(e) {
|
|
403
|
-
|
|
408
|
+
O = !0, eo(e) && (U = "keyboard", he("keyboard", e));
|
|
404
409
|
}
|
|
405
410
|
function k(e) {
|
|
406
|
-
|
|
411
|
+
U = "pointer", (e.type === "mousedown" || e.type === "pointerdown") && (O = !0, he("pointer", e));
|
|
407
412
|
}
|
|
408
413
|
function Ke(e) {
|
|
409
|
-
Gt(e) && (
|
|
414
|
+
Gt(e) && (O = !0, U = "virtual");
|
|
410
415
|
}
|
|
411
416
|
function je(e) {
|
|
412
|
-
e.target === window || e.target === document || (!
|
|
417
|
+
e.target === window || e.target === document || (!O && !me && (U = "virtual", he("virtual", e)), O = !1, me = !1);
|
|
413
418
|
}
|
|
414
419
|
function Ue() {
|
|
415
|
-
|
|
420
|
+
O = !1, me = !0;
|
|
416
421
|
}
|
|
417
422
|
function Se(e) {
|
|
418
|
-
if (typeof window > "u" ||
|
|
423
|
+
if (typeof window > "u" || V.get(Z(e))) return;
|
|
419
424
|
const t = Z(e), o = E(e);
|
|
420
425
|
let n = t.HTMLElement.prototype.focus;
|
|
421
426
|
t.HTMLElement.prototype.focus = function() {
|
|
422
|
-
|
|
427
|
+
O = !0, n.apply(this, arguments);
|
|
423
428
|
}, o.addEventListener("keydown", ee, !0), o.addEventListener("keyup", ee, !0), o.addEventListener("click", Ke, !0), t.addEventListener("focus", je, !0), t.addEventListener("blur", Ue, !1), typeof PointerEvent < "u" ? (o.addEventListener("pointerdown", k, !0), o.addEventListener("pointermove", k, !0), o.addEventListener("pointerup", k, !0)) : (o.addEventListener("mousedown", k, !0), o.addEventListener("mousemove", k, !0), o.addEventListener("mouseup", k, !0)), t.addEventListener("beforeunload", () => {
|
|
424
429
|
Ge(e);
|
|
425
430
|
}, {
|
|
426
431
|
once: !0
|
|
427
|
-
}),
|
|
432
|
+
}), V.set(t, {
|
|
428
433
|
focus: n
|
|
429
434
|
});
|
|
430
435
|
}
|
|
431
436
|
const Ge = (e, t) => {
|
|
432
437
|
const o = Z(e), n = E(e);
|
|
433
|
-
t && n.removeEventListener("DOMContentLoaded", t),
|
|
438
|
+
t && n.removeEventListener("DOMContentLoaded", t), V.has(o) && (o.HTMLElement.prototype.focus = V.get(o).focus, n.removeEventListener("keydown", ee, !0), n.removeEventListener("keyup", ee, !0), n.removeEventListener("click", Ke, !0), o.removeEventListener("focus", je, !0), o.removeEventListener("blur", Ue, !1), typeof PointerEvent < "u" ? (n.removeEventListener("pointerdown", k, !0), n.removeEventListener("pointermove", k, !0), n.removeEventListener("pointerup", k, !0)) : (n.removeEventListener("mousedown", k, !0), n.removeEventListener("mousemove", k, !0), n.removeEventListener("mouseup", k, !0)), V.delete(o));
|
|
434
439
|
};
|
|
435
440
|
function to(e) {
|
|
436
441
|
const t = E(e);
|
|
@@ -441,7 +446,7 @@ function to(e) {
|
|
|
441
446
|
}
|
|
442
447
|
typeof document < "u" && to();
|
|
443
448
|
function oo() {
|
|
444
|
-
return
|
|
449
|
+
return U;
|
|
445
450
|
}
|
|
446
451
|
function no(e) {
|
|
447
452
|
let { isDisabled: t, onBlurWithin: o, onFocusWithin: n, onFocusWithinChange: r } = e, l = M({
|
|
@@ -476,9 +481,9 @@ function ro(e) {
|
|
|
476
481
|
let { ref: t, onInteractOutside: o, isDisabled: n, onInteractOutsideStart: r } = e, l = M({
|
|
477
482
|
isPointerDown: !1,
|
|
478
483
|
ignoreEmulatedMouseEvents: !1
|
|
479
|
-
}), a =
|
|
480
|
-
o &&
|
|
481
|
-
}), d =
|
|
484
|
+
}), a = H((c) => {
|
|
485
|
+
o && X(c, t) && (r && r(c), l.current.isPointerDown = !0);
|
|
486
|
+
}), d = H((c) => {
|
|
482
487
|
o && o(c);
|
|
483
488
|
});
|
|
484
489
|
L(() => {
|
|
@@ -487,16 +492,16 @@ function ro(e) {
|
|
|
487
492
|
const i = t.current, s = E(i);
|
|
488
493
|
if (typeof PointerEvent < "u") {
|
|
489
494
|
let m = (p) => {
|
|
490
|
-
c.isPointerDown &&
|
|
495
|
+
c.isPointerDown && X(p, t) && d(p), c.isPointerDown = !1;
|
|
491
496
|
};
|
|
492
497
|
return s.addEventListener("pointerdown", a, !0), s.addEventListener("pointerup", m, !0), () => {
|
|
493
498
|
s.removeEventListener("pointerdown", a, !0), s.removeEventListener("pointerup", m, !0);
|
|
494
499
|
};
|
|
495
500
|
} else {
|
|
496
501
|
let m = (g) => {
|
|
497
|
-
c.ignoreEmulatedMouseEvents ? c.ignoreEmulatedMouseEvents = !1 : c.isPointerDown &&
|
|
502
|
+
c.ignoreEmulatedMouseEvents ? c.ignoreEmulatedMouseEvents = !1 : c.isPointerDown && X(g, t) && d(g), c.isPointerDown = !1;
|
|
498
503
|
}, p = (g) => {
|
|
499
|
-
c.ignoreEmulatedMouseEvents = !0, c.isPointerDown &&
|
|
504
|
+
c.ignoreEmulatedMouseEvents = !0, c.isPointerDown && X(g, t) && d(g), c.isPointerDown = !1;
|
|
500
505
|
};
|
|
501
506
|
return s.addEventListener("mousedown", a, !0), s.addEventListener("mouseup", m, !0), s.addEventListener("touchstart", a, !0), s.addEventListener("touchend", p, !0), () => {
|
|
502
507
|
s.removeEventListener("mousedown", a, !0), s.removeEventListener("mouseup", m, !0), s.removeEventListener("touchstart", a, !0), s.removeEventListener("touchend", p, !0);
|
|
@@ -509,7 +514,7 @@ function ro(e) {
|
|
|
509
514
|
d
|
|
510
515
|
]);
|
|
511
516
|
}
|
|
512
|
-
function
|
|
517
|
+
function X(e, t) {
|
|
513
518
|
if (e.button > 0) return !1;
|
|
514
519
|
if (e.target) {
|
|
515
520
|
const o = e.target.ownerDocument;
|
|
@@ -547,7 +552,7 @@ function Xe(e, t) {
|
|
|
547
552
|
const Le = /* @__PURE__ */ $.createContext(null), fe = "react-aria-focus-scope-restore";
|
|
548
553
|
let v = null;
|
|
549
554
|
function io(e) {
|
|
550
|
-
let { children: t, contain: o, restoreFocus: n, autoFocus: r } = e, l = M(null), a = M(null), d = M([]), { parentNode: c } =
|
|
555
|
+
let { children: t, contain: o, restoreFocus: n, autoFocus: r } = e, l = M(null), a = M(null), d = M([]), { parentNode: c } = A(Le) || {}, i = q(() => new be({
|
|
551
556
|
scopeRef: d
|
|
552
557
|
}), [
|
|
553
558
|
d
|
|
@@ -569,11 +574,11 @@ function io(e) {
|
|
|
569
574
|
o
|
|
570
575
|
]), w(() => {
|
|
571
576
|
var p;
|
|
572
|
-
let g = (p = l.current) === null || p === void 0 ? void 0 : p.nextSibling, f = [], y = (
|
|
577
|
+
let g = (p = l.current) === null || p === void 0 ? void 0 : p.nextSibling, f = [], y = (B) => B.stopPropagation();
|
|
573
578
|
for (; g && g !== a.current; )
|
|
574
579
|
f.push(g), g.addEventListener(fe, y), g = g.nextSibling;
|
|
575
580
|
return d.current = f, () => {
|
|
576
|
-
for (let
|
|
581
|
+
for (let B of f) B.removeEventListener(fe, y);
|
|
577
582
|
};
|
|
578
583
|
}, [
|
|
579
584
|
t
|
|
@@ -593,7 +598,7 @@ function io(e) {
|
|
|
593
598
|
}, [
|
|
594
599
|
d
|
|
595
600
|
]);
|
|
596
|
-
let s =
|
|
601
|
+
let s = q(() => so(d), []), m = q(() => ({
|
|
597
602
|
focusManager: s,
|
|
598
603
|
parentNode: i
|
|
599
604
|
}), [
|
|
@@ -615,7 +620,7 @@ function io(e) {
|
|
|
615
620
|
function so(e) {
|
|
616
621
|
return {
|
|
617
622
|
focusNext(t = {}) {
|
|
618
|
-
let o = e.current, { from: n, tabbable: r, wrap: l, accept: a } = t, d = n || E(o[0]).activeElement, c = o[0].previousElementSibling, i =
|
|
623
|
+
let o = e.current, { from: n, tabbable: r, wrap: l, accept: a } = t, d = n || E(o[0]).activeElement, c = o[0].previousElementSibling, i = N(o), s = C(i, {
|
|
619
624
|
tabbable: r,
|
|
620
625
|
accept: a
|
|
621
626
|
}, o);
|
|
@@ -624,7 +629,7 @@ function so(e) {
|
|
|
624
629
|
return !m && l && (s.currentNode = c, m = s.nextNode()), m && S(m, !0), m;
|
|
625
630
|
},
|
|
626
631
|
focusPrevious(t = {}) {
|
|
627
|
-
let o = e.current, { from: n, tabbable: r, wrap: l, accept: a } = t, d = n || E(o[0]).activeElement, c = o[o.length - 1].nextElementSibling, i =
|
|
632
|
+
let o = e.current, { from: n, tabbable: r, wrap: l, accept: a } = t, d = n || E(o[0]).activeElement, c = o[o.length - 1].nextElementSibling, i = N(o), s = C(i, {
|
|
628
633
|
tabbable: r,
|
|
629
634
|
accept: a
|
|
630
635
|
}, o);
|
|
@@ -633,7 +638,7 @@ function so(e) {
|
|
|
633
638
|
return !m && l && (s.currentNode = c, m = s.previousNode()), m && S(m, !0), m;
|
|
634
639
|
},
|
|
635
640
|
focusFirst(t = {}) {
|
|
636
|
-
let o = e.current, { tabbable: n, accept: r } = t, l =
|
|
641
|
+
let o = e.current, { tabbable: n, accept: r } = t, l = N(o), a = C(l, {
|
|
637
642
|
tabbable: n,
|
|
638
643
|
accept: r
|
|
639
644
|
}, o);
|
|
@@ -642,7 +647,7 @@ function so(e) {
|
|
|
642
647
|
return d && S(d, !0), d;
|
|
643
648
|
},
|
|
644
649
|
focusLast(t = {}) {
|
|
645
|
-
let o = e.current, { tabbable: n, accept: r } = t, l =
|
|
650
|
+
let o = e.current, { tabbable: n, accept: r } = t, l = N(o), a = C(l, {
|
|
646
651
|
tabbable: n,
|
|
647
652
|
accept: r
|
|
648
653
|
}, o);
|
|
@@ -669,10 +674,10 @@ const $e = [
|
|
|
669
674
|
], uo = $e.join(":not([hidden]),") + ",[tabindex]:not([disabled]):not([hidden])";
|
|
670
675
|
$e.push('[tabindex]:not([tabindex="-1"]):not([disabled])');
|
|
671
676
|
const co = $e.join(':not([hidden]):not([tabindex="-1"]),');
|
|
672
|
-
function
|
|
677
|
+
function N(e) {
|
|
673
678
|
return e[0].parentElement;
|
|
674
679
|
}
|
|
675
|
-
function
|
|
680
|
+
function R(e) {
|
|
676
681
|
let t = h.getTreeNode(v);
|
|
677
682
|
for (; t && t.scopeRef !== e; ) {
|
|
678
683
|
if (t.contain) return !1;
|
|
@@ -690,10 +695,10 @@ function mo(e, t) {
|
|
|
690
695
|
}
|
|
691
696
|
const l = E(r ? r[0] : void 0);
|
|
692
697
|
let a = (i) => {
|
|
693
|
-
if (i.key !== "Tab" || i.altKey || i.ctrlKey || i.metaKey || !
|
|
698
|
+
if (i.key !== "Tab" || i.altKey || i.ctrlKey || i.metaKey || !R(e) || i.isComposing) return;
|
|
694
699
|
let s = l.activeElement, m = e.current;
|
|
695
700
|
if (!m || !_(s, m)) return;
|
|
696
|
-
let p =
|
|
701
|
+
let p = N(m), g = C(p, {
|
|
697
702
|
tabbable: !0
|
|
698
703
|
}, m);
|
|
699
704
|
if (!s) return;
|
|
@@ -701,10 +706,10 @@ function mo(e, t) {
|
|
|
701
706
|
let f = i.shiftKey ? g.previousNode() : g.nextNode();
|
|
702
707
|
f || (g.currentNode = i.shiftKey ? m[m.length - 1].nextElementSibling : m[0].previousElementSibling, f = i.shiftKey ? g.previousNode() : g.nextNode()), i.preventDefault(), f && S(f, !0);
|
|
703
708
|
}, d = (i) => {
|
|
704
|
-
(!v || oe(v, e)) && _(i.target, e.current) ? (v = e, o.current = i.target) :
|
|
709
|
+
(!v || oe(v, e)) && _(i.target, e.current) ? (v = e, o.current = i.target) : R(e) && !te(i.target, e) ? o.current ? o.current.focus() : v && v.current && ge(v.current) : R(e) && (o.current = i.target);
|
|
705
710
|
}, c = (i) => {
|
|
706
711
|
n.current && cancelAnimationFrame(n.current), n.current = requestAnimationFrame(() => {
|
|
707
|
-
if (l.activeElement &&
|
|
712
|
+
if (l.activeElement && R(e) && !te(l.activeElement, e))
|
|
708
713
|
if (v = e, l.body.contains(i.target)) {
|
|
709
714
|
var s;
|
|
710
715
|
o.current = i.target, (s = o.current) === null || s === void 0 || s.focus();
|
|
@@ -758,12 +763,12 @@ function S(e, t = !1) {
|
|
|
758
763
|
}
|
|
759
764
|
}
|
|
760
765
|
function Ye(e, t = !0) {
|
|
761
|
-
let o = e[0].previousElementSibling, n =
|
|
766
|
+
let o = e[0].previousElementSibling, n = N(e), r = C(n, {
|
|
762
767
|
tabbable: t
|
|
763
768
|
}, e);
|
|
764
769
|
r.currentNode = o;
|
|
765
770
|
let l = r.nextNode();
|
|
766
|
-
return t && !l && (n =
|
|
771
|
+
return t && !l && (n = N(e), r = C(n, {
|
|
767
772
|
tabbable: !1
|
|
768
773
|
}, e), r.currentNode = o, l = r.nextNode()), l;
|
|
769
774
|
}
|
|
@@ -828,12 +833,12 @@ function vo(e, t, o) {
|
|
|
828
833
|
const r = E(e.current ? e.current[0] : void 0);
|
|
829
834
|
if (!t) return;
|
|
830
835
|
let l = (a) => {
|
|
831
|
-
if (a.key !== "Tab" || a.altKey || a.ctrlKey || a.metaKey || !
|
|
836
|
+
if (a.key !== "Tab" || a.altKey || a.ctrlKey || a.metaKey || !R(e) || a.isComposing) return;
|
|
832
837
|
let d = r.activeElement;
|
|
833
838
|
if (!_(d, e.current)) return;
|
|
834
839
|
let c = h.getTreeNode(e);
|
|
835
840
|
if (!c) return;
|
|
836
|
-
let i = c.nodeToRestore, s =
|
|
841
|
+
let i = c.nodeToRestore, s = C(r.body, {
|
|
837
842
|
tabbable: !0
|
|
838
843
|
});
|
|
839
844
|
s.currentNode = d;
|
|
@@ -900,7 +905,7 @@ function Fe(e) {
|
|
|
900
905
|
cancelable: !0
|
|
901
906
|
})) && S(e);
|
|
902
907
|
}
|
|
903
|
-
function
|
|
908
|
+
function C(e, t, o) {
|
|
904
909
|
let n = t != null && t.tabbable ? co : uo, r = E(e).createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
|
|
905
910
|
acceptNode(l) {
|
|
906
911
|
var a;
|
|
@@ -1038,24 +1043,24 @@ const se = typeof document < "u" && window.visualViewport, Eo = /* @__PURE__ */
|
|
|
1038
1043
|
"submit",
|
|
1039
1044
|
"reset"
|
|
1040
1045
|
]);
|
|
1041
|
-
let
|
|
1046
|
+
let J = 0, de;
|
|
1042
1047
|
function _o(e = {}) {
|
|
1043
1048
|
let { isDisabled: t } = e;
|
|
1044
1049
|
w(() => {
|
|
1045
1050
|
if (!t)
|
|
1046
|
-
return
|
|
1047
|
-
|
|
1051
|
+
return J++, J === 1 && (Kt() ? de = yo() : de = Mo()), () => {
|
|
1052
|
+
J--, J === 0 && de();
|
|
1048
1053
|
};
|
|
1049
1054
|
}, [
|
|
1050
1055
|
t
|
|
1051
1056
|
]);
|
|
1052
1057
|
}
|
|
1053
1058
|
function Mo() {
|
|
1054
|
-
return Q(
|
|
1059
|
+
return Q(W(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), W(document.documentElement, "overflow", "hidden"));
|
|
1055
1060
|
}
|
|
1056
1061
|
function yo() {
|
|
1057
1062
|
let e, t, o = (i) => {
|
|
1058
|
-
e = Ve(i.target, !0), !(e === document.documentElement && e === document.body) && e instanceof HTMLElement && window.getComputedStyle(e).overscrollBehavior === "auto" && (t =
|
|
1063
|
+
e = Ve(i.target, !0), !(e === document.documentElement && e === document.body) && e instanceof HTMLElement && window.getComputedStyle(e).overscrollBehavior === "auto" && (t = W(e, "overscrollBehavior", "contain"));
|
|
1059
1064
|
}, n = (i) => {
|
|
1060
1065
|
if (!e || e === document.documentElement || e === document.body) {
|
|
1061
1066
|
i.preventDefault();
|
|
@@ -1081,30 +1086,30 @@ function yo() {
|
|
|
1081
1086
|
let i = () => {
|
|
1082
1087
|
window.scrollTo(0, 0);
|
|
1083
1088
|
}, s = window.pageXOffset, m = window.pageYOffset;
|
|
1084
|
-
a = Q(
|
|
1089
|
+
a = Q(I(window, "scroll", i), W(document.documentElement, "paddingRight", `${window.innerWidth - document.documentElement.clientWidth}px`), W(document.documentElement, "overflow", "hidden"), W(document.body, "marginTop", `-${m}px`), () => {
|
|
1085
1090
|
window.scrollTo(s, m);
|
|
1086
1091
|
}), window.scrollTo(0, 0);
|
|
1087
|
-
}, c = Q(
|
|
1092
|
+
}, c = Q(I(document, "touchstart", o, {
|
|
1088
1093
|
passive: !1,
|
|
1089
1094
|
capture: !0
|
|
1090
|
-
}),
|
|
1095
|
+
}), I(document, "touchmove", n, {
|
|
1091
1096
|
passive: !1,
|
|
1092
1097
|
capture: !0
|
|
1093
|
-
}),
|
|
1098
|
+
}), I(document, "touchend", r, {
|
|
1094
1099
|
passive: !1,
|
|
1095
1100
|
capture: !0
|
|
1096
|
-
}),
|
|
1101
|
+
}), I(document, "focus", l, !0));
|
|
1097
1102
|
return () => {
|
|
1098
1103
|
t == null || t(), a == null || a(), c();
|
|
1099
1104
|
};
|
|
1100
1105
|
}
|
|
1101
|
-
function
|
|
1106
|
+
function W(e, t, o) {
|
|
1102
1107
|
let n = e.style[t];
|
|
1103
1108
|
return e.style[t] = o, () => {
|
|
1104
1109
|
e.style[t] = n;
|
|
1105
1110
|
};
|
|
1106
1111
|
}
|
|
1107
|
-
function
|
|
1112
|
+
function I(e, t, o, n) {
|
|
1108
1113
|
return e.addEventListener(t, o, n), () => {
|
|
1109
1114
|
e.removeEventListener(t, o, n);
|
|
1110
1115
|
};
|
|
@@ -1123,7 +1128,7 @@ function Ce(e) {
|
|
|
1123
1128
|
function Be(e) {
|
|
1124
1129
|
return e instanceof HTMLInputElement && !Eo.has(e.type) || e instanceof HTMLTextAreaElement || e instanceof HTMLElement && e.isContentEditable;
|
|
1125
1130
|
}
|
|
1126
|
-
let
|
|
1131
|
+
let z = /* @__PURE__ */ new WeakMap(), P = [];
|
|
1127
1132
|
function Po(e, t = document.body) {
|
|
1128
1133
|
let o = new Set(e), n = /* @__PURE__ */ new Set(), r = (c) => {
|
|
1129
1134
|
for (let p of c.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]")) o.add(p);
|
|
@@ -1142,8 +1147,8 @@ function Po(e, t = document.body) {
|
|
|
1142
1147
|
}
|
|
1143
1148
|
}, l = (c) => {
|
|
1144
1149
|
var i;
|
|
1145
|
-
let s = (i =
|
|
1146
|
-
c.getAttribute("aria-hidden") === "true" && s === 0 || (s === 0 && c.setAttribute("aria-hidden", "true"), n.add(c),
|
|
1150
|
+
let s = (i = z.get(c)) !== null && i !== void 0 ? i : 0;
|
|
1151
|
+
c.getAttribute("aria-hidden") === "true" && s === 0 || (s === 0 && c.setAttribute("aria-hidden", "true"), n.add(c), z.set(c, s + 1));
|
|
1147
1152
|
};
|
|
1148
1153
|
P.length && P[P.length - 1].disconnect(), r(t);
|
|
1149
1154
|
let a = new MutationObserver((c) => {
|
|
@@ -1175,8 +1180,8 @@ function Po(e, t = document.body) {
|
|
|
1175
1180
|
return P.push(d), () => {
|
|
1176
1181
|
a.disconnect();
|
|
1177
1182
|
for (let c of n) {
|
|
1178
|
-
let i =
|
|
1179
|
-
i === 1 ? (c.removeAttribute("aria-hidden"),
|
|
1183
|
+
let i = z.get(c);
|
|
1184
|
+
i === 1 ? (c.removeAttribute("aria-hidden"), z.delete(c)) : z.set(c, i - 1);
|
|
1180
1185
|
}
|
|
1181
1186
|
d === P[P.length - 1] ? (P.pop(), P.length && P[P.length - 1].observe()) : P.splice(P.indexOf(d), 1);
|
|
1182
1187
|
};
|
|
@@ -1184,11 +1189,11 @@ function Po(e, t = document.body) {
|
|
|
1184
1189
|
const ko = /* @__PURE__ */ vt({});
|
|
1185
1190
|
function xo() {
|
|
1186
1191
|
var e;
|
|
1187
|
-
return (e =
|
|
1192
|
+
return (e = A(ko)) !== null && e !== void 0 ? e : {};
|
|
1188
1193
|
}
|
|
1189
1194
|
const Qe = /* @__PURE__ */ $.createContext(null);
|
|
1190
1195
|
function To(e) {
|
|
1191
|
-
let t = Ie(), { portalContainer: o = t ? null : document.body, isExiting: n } = e, [r, l] =
|
|
1196
|
+
let t = Ie(), { portalContainer: o = t ? null : document.body, isExiting: n } = e, [r, l] = K(!1), a = q(() => ({
|
|
1192
1197
|
contain: r,
|
|
1193
1198
|
setContain: l
|
|
1194
1199
|
}), [
|
|
@@ -1205,7 +1210,7 @@ function To(e) {
|
|
|
1205
1210
|
}, /* @__PURE__ */ $.createElement(Jt, null, c)), /* @__PURE__ */ ht.createPortal(c, o);
|
|
1206
1211
|
}
|
|
1207
1212
|
function Ze() {
|
|
1208
|
-
let e =
|
|
1213
|
+
let e = A(Qe), t = e == null ? void 0 : e.setContain;
|
|
1209
1214
|
w(() => {
|
|
1210
1215
|
t == null || t(!0);
|
|
1211
1216
|
}, [
|
|
@@ -1321,7 +1326,7 @@ var Co = (e, t, o) => {
|
|
|
1321
1326
|
for (var [i, s] of e.compoundVariants)
|
|
1322
1327
|
Co(i, n, e.defaultVariants) && (o += " " + s);
|
|
1323
1328
|
return o;
|
|
1324
|
-
}, Bo = "pkg_sps-
|
|
1329
|
+
}, Bo = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2o", No = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2q", Oo = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2r", tt = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2p", Do = et({ defaultClassName: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto20", variantClassNames: { kind: { informational: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto21", delete: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto22", failure: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto23", success: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto24", warning: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto25", successWithFailures: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto26", form: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto27" }, size: { sm: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto28", md: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto29", lg: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2a", xl: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2b" }, fullHeight: { true: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2c", false: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2d" } }, defaultVariants: {}, compoundVariants: [] }), Wo = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2n", Ao = et({ defaultClassName: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2e", variantClassNames: { kind: { form: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2f", delete: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2g", failure: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2h", informational: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2i", success: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2j", warning: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2k", successWithFailures: "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2l" } }, defaultVariants: {}, compoundVariants: [] }), Io = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2m", zo = "pkg_sps-woodland_modal__version_8_20_9__hash_3moto2s";
|
|
1325
1330
|
function ot({
|
|
1326
1331
|
children: e,
|
|
1327
1332
|
className: t = "",
|
|
@@ -1356,14 +1361,14 @@ function Ro({
|
|
|
1356
1361
|
fullHeight: g = !1,
|
|
1357
1362
|
...f
|
|
1358
1363
|
}) {
|
|
1359
|
-
const y = s ?? m,
|
|
1364
|
+
const y = s ?? m, B = u.useRef(null), { modalProps: ne, underlayProps: rt } = So(
|
|
1360
1365
|
{
|
|
1361
1366
|
isKeyboardDismissDisabled: !y,
|
|
1362
1367
|
...f
|
|
1363
1368
|
},
|
|
1364
1369
|
c,
|
|
1365
|
-
|
|
1366
|
-
), { dialogProps: re, titleProps: at } = Lo(f,
|
|
1370
|
+
B
|
|
1371
|
+
), { dialogProps: re, titleProps: at } = Lo(f, B), lt = ye(ne.onFocus, re.onFocus, l), it = ye(ne.onBlur, re.onBlur, r), { t: st } = u.useContext(mt), dt = pt({ "data-testid": o }), [ae, ut] = ft(
|
|
1367
1372
|
e,
|
|
1368
1373
|
[{ type: ot }]
|
|
1369
1374
|
);
|
|
@@ -1391,7 +1396,7 @@ function Ro({
|
|
|
1391
1396
|
onFocus: lt,
|
|
1392
1397
|
onBlur: it,
|
|
1393
1398
|
...dt("dialog"),
|
|
1394
|
-
ref:
|
|
1399
|
+
ref: B,
|
|
1395
1400
|
className: ue(Do({ kind: n, size: d, fullHeight: g }), t)
|
|
1396
1401
|
},
|
|
1397
1402
|
/* @__PURE__ */ u.createElement("div", { ...at, className: Ao({ kind: n }) }, n && /* @__PURE__ */ u.createElement(
|
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.pkg_sps-
|
|
1
|
+
.pkg_sps-woodland_modal__version_8_20_9__hash_3moto20{background-color:#fff;border-style:solid;border-width:.0625rem;border-radius:.25rem;display:flex;flex-direction:column;overflow:hidden;max-height:100%}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto21{border-color:#027db8}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto22,.pkg_sps-woodland_modal__version_8_20_9__hash_3moto23{border-color:#de012e}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto24{border-color:#0b8940}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto25,.pkg_sps-woodland_modal__version_8_20_9__hash_3moto26{border-color:#e77609}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto27{border-color:#4b5356}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto28{width:23.75rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto29{width:36.25rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2a{width:48.75rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2b{width:73.75rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2c{height:100%}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2e{align-items:center;color:#fff;display:flex;padding:1rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2f{background-color:#4b5356}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2g,.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2h{background-color:#de012e}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2i{background-color:#027db8}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2j{background-color:#0b8940}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2k,.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2l{background-color:#e77609}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2m{flex-grow:1;font-size:.875rem;font-weight:600;line-height:1.25rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2n{font-weight:600;line-height:.875rem;font-size:.875rem;padding-right:.5rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2o{overflow-y:auto;padding:1rem;flex:1}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2p{align-items:center;background-color:#f3f4f4;display:flex;justify-content:flex-end;padding:.5rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2q{color:#fff;border-width:0}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2r{padding:0 .25rem}.pkg_sps-woodland_modal__version_8_20_9__hash_3moto2s{position:fixed;z-index:1000;top:0;left:0;bottom:0;right:0;background:#f3f4f4;display:flex;align-items:center;justify-content:center;padding:1rem}.z-stratum-dropdown{z-index:1100}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sps-woodland/modal",
|
|
3
3
|
"description": "SPS Woodland Design System modal component",
|
|
4
|
-
"version": "8.20.
|
|
4
|
+
"version": "8.20.9",
|
|
5
5
|
"author": "SPS Commerce",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"repository": "https://github.com/SPSCommerce/woodland/tree/main/packages/@sps-woodland/modal",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"@spscommerce/utils": "^7.0.0",
|
|
30
30
|
"react": "^16.9.0",
|
|
31
31
|
"react-dom": "^16.9.0",
|
|
32
|
-
"@sps-woodland/buttons": "8.20.
|
|
33
|
-
"@sps-woodland/core": "8.20.
|
|
34
|
-
"@sps-woodland/tokens": "8.20.
|
|
32
|
+
"@sps-woodland/buttons": "8.20.9",
|
|
33
|
+
"@sps-woodland/core": "8.20.9",
|
|
34
|
+
"@sps-woodland/tokens": "8.20.9"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@spscommerce/utils": "^7.0.0",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"@vanilla-extract/vite-plugin": "^3.6.0",
|
|
43
43
|
"react": "^16.9.0",
|
|
44
44
|
"react-dom": "^16.9.0",
|
|
45
|
-
"@sps-woodland/buttons": "8.20.
|
|
46
|
-
"@sps-woodland/core": "8.20.
|
|
47
|
-
"@sps-woodland/tokens": "8.20.
|
|
45
|
+
"@sps-woodland/buttons": "8.20.9",
|
|
46
|
+
"@sps-woodland/core": "8.20.9",
|
|
47
|
+
"@sps-woodland/tokens": "8.20.9"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"react-aria": "^3.21.0",
|