@sps-woodland/modal 8.53.4 → 8.53.6

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.umd.cjs CHANGED
@@ -1,9 +1,4 @@
1
- (function(S,P){typeof exports=="object"&&typeof module<"u"?P(exports,require("@sps-woodland/core"),require("@sps-woodland/buttons"),require("react"),require("@spscommerce/i18n"),require("react-dom"),require("@spscommerce/utils")):typeof define=="function"&&define.amd?define(["exports","@sps-woodland/core","@sps-woodland/buttons","react","@spscommerce/i18n","react-dom","@spscommerce/utils"],P):(S=typeof globalThis<"u"?globalThis:S||self,P(S.Modal={},S.core,S.buttons,S.React,S.i18n,S.$4AOtR$reactdom,S.utils))})(this,(function(S,P,Oe,c,Et,_t,E){"use strict";function Mt(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 f=Mt(c),N=typeof document<"u"?c.useLayoutEffect:()=>{};function yt(e){let[t,o]=c.useState(e),n=c.useRef(t),r=c.useRef(null),i=c.useRef(()=>{if(!r.current)return;let l=r.current.next();if(l.done){r.current=null;return}n.current===l.value?i.current():o(l.value)});N(()=>{n.current=t,r.current&&i.current()});let a=c.useCallback(l=>{r.current=l(n.current),i.current()},[i]);return[t,a]}const oe={prefix:String(Math.round(Math.random()*1e10)),current:0},De=c.createContext(oe),kt=c.createContext(!1);let Tt=!!(typeof window<"u"&&window.document&&window.document.createElement),ue=new WeakMap;function Pt(e=!1){let t=c.useContext(De),o=c.useRef(null);if(o.current===null&&!e){var n,r;let i=(r=c.__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(i){let a=ue.get(i);a==null?ue.set(i,{id:t.current,state:i.memoizedState}):i.memoizedState!==a.state&&(t.current=a.id,ue.delete(i))}o.current=++t.current}return o.current}function Nt(e){let t=c.useContext(De);t===oe&&!Tt&&process.env.NODE_ENV!=="production"&&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=Pt(!!e),n=t===oe&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${n}-${o}`}function St(e){let t=c.useId(),[o]=c.useState(Ie()),n=o||process.env.NODE_ENV==="test"?"react-aria":`react-aria${oe.prefix}`;return e||`${n}-${t}`}const Lt=typeof c.useId=="function"?St:Nt;function xt(){return!1}function Ct(){return!0}function Ft(e){return()=>{}}function Ie(){return typeof c.useSyncExternalStore=="function"?c.useSyncExternalStore(Ft,xt,Ct):c.useContext(kt)}let Bt=!!(typeof window<"u"&&window.document&&window.document.createElement),R=new Map,G;typeof FinalizationRegistry<"u"&&(G=new FinalizationRegistry(e=>{R.delete(e)}));function Ae(e){let[t,o]=c.useState(e),n=c.useRef(null),r=Lt(t),i=c.useRef(null);if(G&&G.register(i,r),Bt){const a=R.get(r);a&&!a.includes(n)?a.push(n):R.set(r,[n])}return N(()=>{let a=r;return()=>{G&&G.unregister(i),R.delete(a)}},[r]),c.useEffect(()=>{let a=n.current;return a&&o(a),()=>{a&&(n.current=null)}}),r}function Ot(e,t){if(e===t)return e;let o=R.get(e);if(o)return o.forEach(r=>r.current=t),t;let n=R.get(t);return n?(n.forEach(r=>r.current=e),e):t}function Dt(e=[]){let t=Ae(),[o,n]=yt(t),r=c.useCallback(()=>{n(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,n]);return N(r,[t,r,...e]),o}function ce(...e){return(...t)=>{for(let o of e)typeof o=="function"&&o(...t)}}const k=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},U=e=>e&&"window"in e&&e.window===e?e:k(e).defaultView||window;function It(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function At(e){return It(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let Wt=!1;function I(){return Wt}function C(e,t){if(!I())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let o=t;for(;o!==null;){if(o===e)return!0;o.tagName==="SLOT"&&o.assignedSlot?o=o.assignedSlot.parentNode:At(o)?o=o.host:o=o.parentNode}return!1}const x=(e=document)=>{var t;if(!I())return e.activeElement;let o=e.activeElement;for(;o&&"shadowRoot"in o&&(!((t=o.shadowRoot)===null||t===void 0)&&t.activeElement);)o=o.shadowRoot.activeElement;return o};function y(e){if(I()&&e.target instanceof Element&&e.target.shadowRoot){var t,o;if("composedPath"in e)return(t=e.composedPath()[0])!==null&&t!==void 0?t:null;if("composedPath"in e.nativeEvent)return(o=e.nativeEvent.composedPath()[0])!==null&&o!==void 0?o:null}return e.target}class Vt{get currentNode(){return this._currentNode}set currentNode(t){if(!C(this.root,t))throw new Error("Cannot set currentNode to a node that is not contained by the root node.");const o=[];let n=t,r=t;for(this._currentNode=t;n&&n!==this.root;)if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const a=n,l=this._doc.createTreeWalker(a,this.whatToShow,{acceptNode:this._acceptNode});o.push(l),l.currentNode=r,this._currentSetFor.add(l),n=r=a.host}else n=n.parentNode;const i=this._doc.createTreeWalker(this.root,this.whatToShow,{acceptNode:this._acceptNode});o.push(i),i.currentNode=r,this._currentSetFor.add(i),this._walkerStack=o}get doc(){return this._doc}firstChild(){let t=this.currentNode,o=this.nextNode();return C(t,o)?(o&&(this.currentNode=o),o):(this.currentNode=t,null)}lastChild(){let o=this._walkerStack[0].lastChild();return o&&(this.currentNode=o),o}nextNode(){const t=this._walkerStack[0].nextNode();if(t){if(t.shadowRoot){var o;let r;if(typeof this.filter=="function"?r=this.filter(t):!((o=this.filter)===null||o===void 0)&&o.acceptNode&&(r=this.filter.acceptNode(t)),r===NodeFilter.FILTER_ACCEPT)return this.currentNode=t,t;let i=this.nextNode();return i&&(this.currentNode=i),i}return t&&(this.currentNode=t),t}else if(this._walkerStack.length>1){this._walkerStack.shift();let n=this.nextNode();return n&&(this.currentNode=n),n}else return null}previousNode(){const t=this._walkerStack[0];if(t.currentNode===t.root){if(this._currentSetFor.has(t))if(this._currentSetFor.delete(t),this._walkerStack.length>1){this._walkerStack.shift();let r=this.previousNode();return r&&(this.currentNode=r),r}else return null;return null}const o=t.previousNode();if(o){if(o.shadowRoot){var n;let i;if(typeof this.filter=="function"?i=this.filter(o):!((n=this.filter)===null||n===void 0)&&n.acceptNode&&(i=this.filter.acceptNode(o)),i===NodeFilter.FILTER_ACCEPT)return o&&(this.currentNode=o),o;let a=this.lastChild();return a&&(this.currentNode=a),a}return o&&(this.currentNode=o),o}else if(this._walkerStack.length>1){this._walkerStack.shift();let r=this.previousNode();return r&&(this.currentNode=r),r}else return null}nextSibling(){return null}previousSibling(){return null}parentNode(){return null}constructor(t,o,n,r){this._walkerStack=[],this._currentSetFor=new Set,this._acceptNode=a=>{if(a.nodeType===Node.ELEMENT_NODE){const s=a.shadowRoot;if(s){const u=this._doc.createTreeWalker(s,this.whatToShow,{acceptNode:this._acceptNode});return this._walkerStack.unshift(u),NodeFilter.FILTER_ACCEPT}else{var l;if(typeof this.filter=="function")return this.filter(a);if(!((l=this.filter)===null||l===void 0)&&l.acceptNode)return this.filter.acceptNode(a);if(this.filter===null)return NodeFilter.FILTER_ACCEPT}}return NodeFilter.FILTER_SKIP},this._doc=t,this.root=o,this.filter=r??null,this.whatToShow=n??NodeFilter.SHOW_ALL,this._currentNode=o,this._walkerStack.unshift(t.createTreeWalker(o,n,this._acceptNode));const i=o.shadowRoot;if(i){const a=this._doc.createTreeWalker(i,this.whatToShow,{acceptNode:this._acceptNode});this._walkerStack.unshift(a)}}}function We(e,t,o,n){return I()?new Vt(e,t,o,n):e.createTreeWalker(t,o,n)}function Ht(...e){return e.length===1&&e[0]?e[0]:t=>{let o=!1;const n=e.map(r=>{const i=Ve(r,t);return o||(o=typeof i=="function"),i});if(o)return()=>{n.forEach((r,i)=>{typeof r=="function"?r():Ve(e[i],null)})}}}function Ve(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function He(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=He(e[t]))&&(n&&(n+=" "),n+=o)}else for(o in e)e[o]&&(n&&(n+=" "),n+=o);return n}function zt(){for(var e,t,o=0,n="",r=arguments.length;o<r;o++)(e=arguments[o])&&(t=He(e))&&(n&&(n+=" "),n+=t);return n}function qt(...e){let t={...e[0]};for(let o=1;o<e.length;o++){let n=e[o];for(let r in n){let i=t[r],a=n[r];typeof i=="function"&&typeof a=="function"&&r[0]==="o"&&r[1]==="n"&&r.charCodeAt(2)>=65&&r.charCodeAt(2)<=90?t[r]=ce(i,a):(r==="className"||r==="UNSAFE_className")&&typeof i=="string"&&typeof a=="string"?t[r]=zt(i,a):r==="id"&&i&&a?t.id=Ot(i,a):r==="ref"&&i&&a?t.ref=Ht(i,a):t[r]=a!==void 0?a:i}}return t}const Kt=new Set(["id"]),jt=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Rt=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),Ut=new Set(["dir","lang","hidden","inert","translate"]),ze=new Set(["onClick","onAuxClick","onContextMenu","onDoubleClick","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onGotPointerCapture","onLostPointerCapture","onScroll","onWheel","onAnimationStart","onAnimationEnd","onAnimationIteration","onTransitionCancel","onTransitionEnd","onTransitionRun","onTransitionStart"]),Gt=/^(data-.*)$/;function Jt(e,t={}){let{labelable:o,isLink:n,global:r,events:i=r,propNames:a}=t,l={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(Kt.has(s)||o&&jt.has(s)||n&&Rt.has(s)||r&&Ut.has(s)||i&&(ze.has(s)||s.endsWith("Capture")&&ze.has(s.slice(0,-7)))||a?.has(s)||Gt.test(s))&&(l[s]=e[s]);return l}function fe(e){if(Xt())e.focus({preventScroll:!0});else{let t=Qt(e);e.focus(),Zt(t)}}let ne=null;function Xt(){if(ne==null){ne=!1;try{document.createElement("div").focus({get preventScroll(){return ne=!0,!0}})}catch{}}return ne}function Qt(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 Zt(e){for(let{element:t,scrollTop:o,scrollLeft:n}of e)t.scrollTop=o,t.scrollLeft=n}function re(e){var t;if(typeof window>"u"||window.navigator==null)return!1;let o=(t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands;return Array.isArray(o)&&o.some(n=>e.test(n.brand))||e.test(window.navigator.userAgent)}function me(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 A(e){if(process.env.NODE_ENV==="test")return e;let t=null;return()=>(t==null&&(t=e()),t)}const J=A(function(){return me(/^Mac/i)}),Yt=A(function(){return me(/^iPhone/i)}),qe=A(function(){return me(/^iPad/i)||J()&&navigator.maxTouchPoints>1}),Ke=A(function(){return Yt()||qe()});A(function(){return J()||Ke()});const eo=A(function(){return re(/AppleWebKit/i)&&!je()}),je=A(function(){return re(/Chrome/i)}),Re=A(function(){return re(/Android/i)}),to=A(function(){return re(/Firefox/i)});function X(e,t,o=!0){var n,r;let{metaKey:i,ctrlKey:a,altKey:l,shiftKey:s}=t;to()&&(!((r=window.event)===null||r===void 0||(n=r.type)===null||n===void 0)&&n.startsWith("key"))&&e.target==="_blank"&&(J()?i=!0:a=!0);let u=eo()&&J()&&!qe()&&process.env.NODE_ENV!=="test"?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:i,ctrlKey:a,altKey:l,shiftKey:s}):new MouseEvent("click",{metaKey:i,ctrlKey:a,altKey:l,shiftKey:s,detail:1,bubbles:!0,cancelable:!0});X.isOpening=o,fe(e),e.dispatchEvent(u),X.isOpening=!1}X.isOpening=!1;let H=new Map,pe=new Set;function Ue(){if(typeof window>"u")return;function e(n){return"propertyName"in n}let t=n=>{let r=y(n);if(!e(n)||!r)return;let i=H.get(r);i||(i=new Set,H.set(r,i),r.addEventListener("transitioncancel",o,{once:!0})),i.add(n.propertyName)},o=n=>{let r=y(n);if(!e(n)||!r)return;let i=H.get(r);if(i&&(i.delete(n.propertyName),i.size===0&&(r.removeEventListener("transitioncancel",o),H.delete(r)),H.size===0)){for(let a of pe)a();pe.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",o)}typeof document<"u"&&(document.readyState!=="loading"?Ue():document.addEventListener("DOMContentLoaded",Ue));function oo(){for(const[e]of H)"isConnected"in e&&!e.isConnected&&H.delete(e)}function no(e){requestAnimationFrame(()=>{oo(),H.size===0?e():pe.add(e)})}function ro(){let e=c.useRef(new Map),t=c.useCallback((r,i,a,l)=>{let s=l?.once?(...u)=>{e.current.delete(a),a(...u)}:a;e.current.set(a,{type:i,eventTarget:r,fn:s,options:l}),r.addEventListener(i,s,l)},[]),o=c.useCallback((r,i,a,l)=>{var s;let u=((s=e.current.get(a))===null||s===void 0?void 0:s.fn)||a;r.removeEventListener(i,u,l),e.current.delete(a)},[]),n=c.useCallback(()=>{e.current.forEach((r,i)=>{o(r.eventTarget,r.type,i,r.options)})},[o]);return c.useEffect(()=>n,[n]),{addGlobalListener:t,removeGlobalListener:o,removeAllGlobalListeners:n}}var be;const io=(be=c.useInsertionEffect)!==null&&be!==void 0?be:N;function Ge(e){const t=c.useRef(null);return io(()=>{t.current=e},[e]),c.useCallback((...o)=>{const n=t.current;return n?.(...o)},[])}function ge(e,t){if(!e)return!1;let o=window.getComputedStyle(e),n=document.scrollingElement||document.documentElement,r=/(auto|scroll)/.test(o.overflow+o.overflowX+o.overflowY);return e===n&&o.overflow!=="hidden"&&(r=!0),r&&t&&(r=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),r}function Je(e,t){let o=e;for(ge(o,t)&&(o=o.parentElement);o&&!ge(o,t);)o=o.parentElement;return o||document.scrollingElement||document.documentElement}const ao=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function ve(e){return e instanceof HTMLInputElement&&!ao.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function lo(e){return e.pointerType===""&&e.isTrusted?!0:Re()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}const so=typeof Element<"u"&&"checkVisibility"in Element.prototype;function uo(e){const t=U(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:i}=e.ownerDocument.defaultView;let{display:a,visibility:l}=i(e);r=a!=="none"&&l!=="hidden"&&l!=="collapse"}return r}function co(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 he(e,t){return so?e.checkVisibility({visibilityProperty:!0})&&!e.closest("[data-react-aria-prevent-focus]"):e.nodeName!=="#comment"&&uo(e)&&co(e,t)&&(!e.parentElement||he(e.parentElement,e))}const $e=["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]:not([contenteditable^="false"])',"permission"],fo=$e.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";$e.push('[tabindex]:not([tabindex="-1"]):not([disabled])');const mo=$e.join(':not([hidden]):not([tabindex="-1"]),');function po(e){return e.matches(fo)&&he(e)&&!Xe(e)}function bo(e){return e.matches(mo)&&he(e)&&!Xe(e)}function Xe(e){let t=e;for(;t!=null;){if(t instanceof t.ownerDocument.defaultView.HTMLElement&&t.inert)return!0;t=t.parentElement}return!1}var we;const go=typeof document<"u"?(we=c.useInsertionEffect)!==null&&we!==void 0?we:c.useLayoutEffect:()=>{};function vo(e,t,o){let[n,r]=c.useState(e||t),i=c.useRef(n),a=c.useRef(e!==void 0),l=e!==void 0;c.useEffect(()=>{let d=a.current;d!==l&&process.env.NODE_ENV!=="production"&&console.warn(`WARN: A component changed from ${d?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}.`),a.current=l},[l]);let s=l?e:n;go(()=>{i.current=s});let[,u]=c.useReducer(()=>({}),{}),m=c.useCallback((d,...p)=>{let b=typeof d=="function"?d(i.current):d;Object.is(i.current,b)||(i.current=b,r(b),u(),o?.(b,...p))},[o]);return[s,m]}function Qe(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function ho(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function $o(e){let t=c.useRef({isFocused:!1,observer:null});return N(()=>{const o=t.current;return()=>{o.observer&&(o.observer.disconnect(),o.observer=null)}},[]),c.useCallback(o=>{let n=y(o);if(n instanceof HTMLButtonElement||n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement){t.current.isFocused=!0;let r=n,i=a=>{if(t.current.isFocused=!1,r.disabled){let l=Qe(a);e?.(l)}t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",i,{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 l=r===x()?null:x();r.dispatchEvent(new FocusEvent("blur",{relatedTarget:l})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:l}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[e])}let wo=!1;const Ze=c.createContext({register:()=>{}});Ze.displayName="PressResponderContext";let Q=null;const Eo=new Set;let Z=new Map,K=!1,Ee=!1;function _e(e,t){for(let o of Eo)o(e,t)}function _o(e){return!(e.metaKey||!J()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function ie(e){K=!0,!X.isOpening&&_o(e)&&(Q="keyboard",_e("keyboard",e))}function F(e){Q="pointer","pointerType"in e&&e.pointerType,(e.type==="mousedown"||e.type==="pointerdown")&&(K=!0,_e("pointer",e))}function Ye(e){!X.isOpening&&lo(e)&&(K=!0,Q="virtual")}function et(e){y(e)===window||y(e)===document||wo||!e.isTrusted||(!K&&!Ee&&(Q="virtual",_e("virtual",e)),K=!1,Ee=!1)}function tt(){K=!1,Ee=!0}function ot(e){if(typeof window>"u"||typeof document>"u"||Z.get(U(e)))return;const t=U(e),o=k(e);let n=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){K=!0,n.apply(this,arguments)},o.addEventListener("keydown",ie,!0),o.addEventListener("keyup",ie,!0),o.addEventListener("click",Ye,!0),t.addEventListener("focus",et,!0),t.addEventListener("blur",tt,!1),typeof PointerEvent<"u"?(o.addEventListener("pointerdown",F,!0),o.addEventListener("pointermove",F,!0),o.addEventListener("pointerup",F,!0)):process.env.NODE_ENV==="test"&&(o.addEventListener("mousedown",F,!0),o.addEventListener("mousemove",F,!0),o.addEventListener("mouseup",F,!0)),t.addEventListener("beforeunload",()=>{nt(e)},{once:!0}),Z.set(t,{focus:n})}const nt=(e,t)=>{const o=U(e),n=k(e);t&&n.removeEventListener("DOMContentLoaded",t),Z.has(o)&&(o.HTMLElement.prototype.focus=Z.get(o).focus,n.removeEventListener("keydown",ie,!0),n.removeEventListener("keyup",ie,!0),n.removeEventListener("click",Ye,!0),o.removeEventListener("focus",et,!0),o.removeEventListener("blur",tt,!1),typeof PointerEvent<"u"?(n.removeEventListener("pointerdown",F,!0),n.removeEventListener("pointermove",F,!0),n.removeEventListener("pointerup",F,!0)):process.env.NODE_ENV==="test"&&(n.removeEventListener("mousedown",F,!0),n.removeEventListener("mousemove",F,!0),n.removeEventListener("mouseup",F,!0)),Z.delete(o))};function Mo(e){const t=k(e);let o;return t.readyState!=="loading"?ot(e):(o=()=>{ot(e)},t.addEventListener("DOMContentLoaded",o)),()=>nt(e,o)}typeof document<"u"&&Mo();function rt(){return Q}function Me(e){if(!e.isConnected)return;const t=k(e);if(rt()==="virtual"){let o=x(t);no(()=>{const n=x(t);(n===o||n===t.body)&&e.isConnected&&fe(e)})}else fe(e)}function yo({children:e}){let t=c.useMemo(()=>({register:()=>{}}),[]);return c.createElement(Ze.Provider,{value:t},e)}function ko(e){let{isDisabled:t,onBlurWithin:o,onFocusWithin:n,onFocusWithinChange:r}=e,i=c.useRef({isFocusWithin:!1}),{addGlobalListener:a,removeAllGlobalListeners:l}=ro(),s=c.useCallback(d=>{C(d.currentTarget,y(d))&&i.current.isFocusWithin&&!C(d.currentTarget,d.relatedTarget)&&(i.current.isFocusWithin=!1,l(),o&&o(d),r&&r(!1))},[o,r,i,l]),u=$o(s),m=c.useCallback(d=>{if(!C(d.currentTarget,y(d)))return;let p=y(d);const b=k(p),h=x(b);if(!i.current.isFocusWithin&&h===p){n&&n(d),r&&r(!0),i.current.isFocusWithin=!0,u(d);let v=d.currentTarget;a(b,"focus",L=>{let g=y(L);if(i.current.isFocusWithin&&!C(v,g)){let $=new b.defaultView.FocusEvent("blur",{relatedTarget:g});ho($,v);let w=Qe($);s(w)}},{capture:!0})}},[n,r,u,a,s]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:s}}}function To(e){let{ref:t,onInteractOutside:o,isDisabled:n,onInteractOutsideStart:r}=e,i=c.useRef({isPointerDown:!1,ignoreEmulatedMouseEvents:!1}),a=Ge(s=>{o&&ae(s,t)&&(r&&r(s),i.current.isPointerDown=!0)}),l=Ge(s=>{o&&o(s)});c.useEffect(()=>{let s=i.current;if(n)return;const u=t.current,m=k(u);if(typeof PointerEvent<"u"){let d=p=>{s.isPointerDown&&ae(p,t)&&l(p),s.isPointerDown=!1};return m.addEventListener("pointerdown",a,!0),m.addEventListener("click",d,!0),()=>{m.removeEventListener("pointerdown",a,!0),m.removeEventListener("click",d,!0)}}else if(process.env.NODE_ENV==="test"){let d=b=>{s.ignoreEmulatedMouseEvents?s.ignoreEmulatedMouseEvents=!1:s.isPointerDown&&ae(b,t)&&l(b),s.isPointerDown=!1},p=b=>{s.ignoreEmulatedMouseEvents=!0,s.isPointerDown&&ae(b,t)&&l(b),s.isPointerDown=!1};return m.addEventListener("mousedown",a,!0),m.addEventListener("mouseup",d,!0),m.addEventListener("touchstart",a,!0),m.addEventListener("touchend",p,!0),()=>{m.removeEventListener("mousedown",a,!0),m.removeEventListener("mouseup",d,!0),m.removeEventListener("touchstart",a,!0),m.removeEventListener("touchend",p,!0)}}},[t,n])}function ae(e,t){if(e.button>0)return!1;let o=y(e);if(o){const n=o.ownerDocument;if(!n||!C(n.documentElement,o)||o.closest("[data-react-aria-top-layer]"))return!1}return t.current?!e.composedPath().includes(t.current):!1}const it=c.createContext(null),ye="react-aria-focus-scope-restore";let _=null;function Po(e){let{children:t,contain:o,restoreFocus:n,autoFocus:r}=e,i=c.useRef(null),a=c.useRef(null),l=c.useRef([]),{parentNode:s}=c.useContext(it)||{},u=c.useMemo(()=>new Pe({scopeRef:l}),[l]);N(()=>{let p=s||T.root;if(T.getTreeNode(p.scopeRef)&&_&&!le(_,p.scopeRef)){let b=T.getTreeNode(_);b&&(p=b)}p.addChild(u),T.addNode(u)},[u,s]),N(()=>{let p=T.getTreeNode(l);p&&(p.contain=!!o)},[o]),N(()=>{var p;let b=(p=i.current)===null||p===void 0?void 0:p.nextSibling,h=[],v=L=>L.stopPropagation();for(;b&&b!==a.current;)h.push(b),b.addEventListener(ye,v),b=b.nextSibling;return l.current=h,()=>{for(let L of h)L.removeEventListener(ye,v)}},[t]),Bo(l,n,o),xo(l,o),Oo(l,n,o),Fo(l,r),c.useEffect(()=>{const p=x(k(l.current?l.current[0]:void 0));let b=null;if(B(p,l.current)){for(let h of T.traverse())h.scopeRef&&B(p,h.scopeRef.current)&&(b=h);b===T.getTreeNode(l)&&(_=b.scopeRef)}},[l]),N(()=>()=>{var p,b,h;let v=(h=(b=T.getTreeNode(l))===null||b===void 0||(p=b.parent)===null||p===void 0?void 0:p.scopeRef)!==null&&h!==void 0?h:null;(l===_||le(l,_))&&(!v||T.getTreeNode(v))&&(_=v),T.removeTreeNode(l)},[l]);let m=c.useMemo(()=>No(l),[]),d=c.useMemo(()=>({focusManager:m,parentNode:u}),[u,m]);return c.createElement(it.Provider,{value:d},c.createElement("span",{"data-focus-scope-start":!0,hidden:!0,ref:i}),t,c.createElement("span",{"data-focus-scope-end":!0,hidden:!0,ref:a}))}function No(e){return{focusNext(t={}){let o=e.current,{from:n,tabbable:r,wrap:i,accept:a}=t;var l;let s=n||x(k((l=o[0])!==null&&l!==void 0?l:void 0)),u=o[0].previousElementSibling,m=j(o),d=q(m,{tabbable:r,accept:a},o);d.currentNode=B(s,o)?s:u;let p=d.nextNode();return!p&&i&&(d.currentNode=u,p=d.nextNode()),p&&W(p,!0),p},focusPrevious(t={}){let o=e.current,{from:n,tabbable:r,wrap:i,accept:a}=t;var l;let s=n||x(k((l=o[0])!==null&&l!==void 0?l:void 0)),u=o[o.length-1].nextElementSibling,m=j(o),d=q(m,{tabbable:r,accept:a},o);d.currentNode=B(s,o)?s:u;let p=d.previousNode();return!p&&i&&(d.currentNode=u,p=d.previousNode()),p&&W(p,!0),p},focusFirst(t={}){let o=e.current,{tabbable:n,accept:r}=t,i=j(o),a=q(i,{tabbable:n,accept:r},o);a.currentNode=o[0].previousElementSibling;let l=a.nextNode();return l&&W(l,!0),l},focusLast(t={}){let o=e.current,{tabbable:n,accept:r}=t,i=j(o),a=q(i,{tabbable:n,accept:r},o);a.currentNode=o[o.length-1].nextElementSibling;let l=a.previousNode();return l&&W(l,!0),l}}}function j(e){return e[0].parentElement}function Y(e){let t=T.getTreeNode(_);for(;t&&t.scopeRef!==e;){if(t.contain)return!1;t=t.parent}return!0}function So(e){if(!e.form)return Array.from(k(e).querySelectorAll(`input[type="radio"][name="${CSS.escape(e.name)}"]`)).filter(n=>!n.form);const t=e.form.elements.namedItem(e.name);let o=U(e);return t instanceof o.RadioNodeList?Array.from(t).filter(n=>n instanceof o.HTMLInputElement):t instanceof o.HTMLInputElement?[t]:[]}function Lo(e){if(e.checked)return!0;const t=So(e);return t.length>0&&!t.some(o=>o.checked)}function xo(e,t){let o=c.useRef(void 0),n=c.useRef(void 0);N(()=>{let r=e.current;if(!t){n.current&&(cancelAnimationFrame(n.current),n.current=void 0);return}const i=k(r?r[0]:void 0);let a=u=>{if(u.key!=="Tab"||u.altKey||u.ctrlKey||u.metaKey||!Y(e)||u.isComposing)return;let m=x(i),d=e.current;if(!d||!B(m,d))return;let p=j(d),b=q(p,{tabbable:!0},d);if(!m)return;b.currentNode=m;let h=u.shiftKey?b.previousNode():b.nextNode();h||(b.currentNode=u.shiftKey?d[d.length-1].nextElementSibling:d[0].previousElementSibling,h=u.shiftKey?b.previousNode():b.nextNode()),u.preventDefault(),h&&W(h,!0)},l=u=>{(!_||le(_,e))&&B(y(u),e.current)?(_=e,o.current=y(u)):Y(e)&&!z(y(u),e)?o.current?o.current.focus():_&&_.current&&ke(_.current):Y(e)&&(o.current=y(u))},s=u=>{n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{let m=rt(),d=(m==="virtual"||m===null)&&Re()&&je(),p=x(i);if(!d&&p&&Y(e)&&!z(p,e)){_=e;let h=y(u);if(h&&h.isConnected){var b;o.current=h,(b=o.current)===null||b===void 0||b.focus()}else _.current&&ke(_.current)}})};return i.addEventListener("keydown",a,!1),i.addEventListener("focusin",l,!1),r?.forEach(u=>u.addEventListener("focusin",l,!1)),r?.forEach(u=>u.addEventListener("focusout",s,!1)),()=>{i.removeEventListener("keydown",a,!1),i.removeEventListener("focusin",l,!1),r?.forEach(u=>u.removeEventListener("focusin",l,!1)),r?.forEach(u=>u.removeEventListener("focusout",s,!1))}},[e,t]),N(()=>()=>{n.current&&cancelAnimationFrame(n.current)},[n])}function at(e){return z(e)}function B(e,t){return!e||!t?!1:t.some(o=>C(o,e))}function z(e,t=null){if(e instanceof Element&&e.closest("[data-react-aria-top-layer]"))return!0;for(let{scopeRef:o}of T.traverse(T.getTreeNode(t)))if(o&&B(e,o.current))return!0;return!1}function Co(e){return z(e,_)}function le(e,t){var o;let n=(o=T.getTreeNode(t))===null||o===void 0?void 0:o.parent;for(;n;){if(n.scopeRef===e)return!0;n=n.parent}return!1}function W(e,t=!1){if(e!=null&&!t)try{Me(e)}catch{}else if(e!=null)try{e.focus()}catch{}}function lt(e,t=!0){let o=e[0].previousElementSibling,n=j(e),r=q(n,{tabbable:t},e);r.currentNode=o;let i=r.nextNode();return t&&!i&&(n=j(e),r=q(n,{tabbable:!1},e),r.currentNode=o,i=r.nextNode()),i}function ke(e,t=!0){W(lt(e,t))}function Fo(e,t){const o=c.useRef(t);c.useEffect(()=>{if(o.current){_=e;const n=k(e.current?e.current[0]:void 0);!B(x(n),_.current)&&e.current&&ke(e.current)}o.current=!1},[e])}function Bo(e,t,o){N(()=>{if(t||o)return;let n=e.current;const r=k(n?n[0]:void 0);let i=a=>{let l=y(a);B(l,e.current)?_=e:at(l)||(_=null)};return r.addEventListener("focusin",i,!1),n?.forEach(a=>a.addEventListener("focusin",i,!1)),()=>{r.removeEventListener("focusin",i,!1),n?.forEach(a=>a.removeEventListener("focusin",i,!1))}},[e,t,o])}function st(e){let t=T.getTreeNode(_);for(;t&&t.scopeRef!==e;){if(t.nodeToRestore)return!1;t=t.parent}return t?.scopeRef===e}function Oo(e,t,o){const n=c.useRef(typeof document<"u"?x(k(e.current?e.current[0]:void 0)):null);N(()=>{let r=e.current;const i=k(r?r[0]:void 0);if(!t||o)return;let a=()=>{(!_||le(_,e))&&B(x(i),e.current)&&(_=e)};return i.addEventListener("focusin",a,!1),r?.forEach(l=>l.addEventListener("focusin",a,!1)),()=>{i.removeEventListener("focusin",a,!1),r?.forEach(l=>l.removeEventListener("focusin",a,!1))}},[e,o]),N(()=>{const r=k(e.current?e.current[0]:void 0);if(!t)return;let i=a=>{if(a.key!=="Tab"||a.altKey||a.ctrlKey||a.metaKey||!Y(e)||a.isComposing)return;let l=r.activeElement;if(!z(l,e)||!st(e))return;let s=T.getTreeNode(e);if(!s)return;let u=s.nodeToRestore,m=q(r.body,{tabbable:!0});m.currentNode=l;let d=a.shiftKey?m.previousNode():m.nextNode();if((!u||!u.isConnected||u===r.body)&&(u=void 0,s.nodeToRestore=void 0),(!d||!z(d,e))&&u){m.currentNode=u;do d=a.shiftKey?m.previousNode():m.nextNode();while(z(d,e));a.preventDefault(),a.stopPropagation(),d?W(d,!0):at(u)?W(u,!0):l.blur()}};return o||r.addEventListener("keydown",i,!0),()=>{o||r.removeEventListener("keydown",i,!0)}},[e,t,o]),N(()=>{const r=k(e.current?e.current[0]:void 0);if(!t)return;let i=T.getTreeNode(e);if(i){var a;return i.nodeToRestore=(a=n.current)!==null&&a!==void 0?a:void 0,()=>{let l=T.getTreeNode(e);if(!l)return;let s=l.nodeToRestore,u=x(r);if(t&&s&&(u&&z(u,e)||u===r.body&&st(e))){let m=T.clone();requestAnimationFrame(()=>{if(r.activeElement===r.body){let d=m.getTreeNode(e);for(;d;){if(d.nodeToRestore&&d.nodeToRestore.isConnected){dt(d.nodeToRestore);return}d=d.parent}for(d=m.getTreeNode(e);d;){if(d.scopeRef&&d.scopeRef.current&&T.getTreeNode(d.scopeRef)){let p=lt(d.scopeRef.current,!0);dt(p);return}d=d.parent}}})}}}},[e,t])}function dt(e){e.dispatchEvent(new CustomEvent(ye,{bubbles:!0,cancelable:!0}))&&W(e)}function q(e,t,o){let n=t?.tabbable?bo:po,r=e?.nodeType===Node.ELEMENT_NODE?e:null,i=k(r),a=We(i,e||i,NodeFilter.SHOW_ELEMENT,{acceptNode(l){return C(t?.from,l)||t?.tabbable&&l.tagName==="INPUT"&&l.getAttribute("type")==="radio"&&(!Lo(l)||a.currentNode.tagName==="INPUT"&&a.currentNode.type==="radio"&&a.currentNode.name===l.name)?NodeFilter.FILTER_REJECT:n(l)&&(!o||B(l,o))&&(!t?.accept||t.accept(l))?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});return t?.from&&(a.currentNode=t.from),a}class Te{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 i=new Pe({scopeRef:t});r.addChild(i),i.parent=r,this.fastMap.set(t,i),n&&(i.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 i of this.traverse())i!==o&&o.nodeToRestore&&i.nodeToRestore&&o.scopeRef&&o.scopeRef.current&&B(i.nodeToRestore,o.scopeRef.current)&&(i.nodeToRestore=o.nodeToRestore);let r=o.children;n&&(n.removeChild(o),r.size>0&&r.forEach(i=>n&&n.addChild(i))),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 Te;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 Pe({scopeRef:null}),this.fastMap.set(null,this.root)}}class Pe{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 T=new Te;const Do=new WeakMap,D=[];function Io(e,t){let{onClose:o,shouldCloseOnBlur:n,isOpen:r,isDismissable:i=!1,isKeyboardDismissDisabled:a=!1,shouldCloseOnInteractOutside:l}=e,s=c.useRef(void 0);c.useEffect(()=>{if(r&&!D.includes(t))return D.push(t),()=>{let v=D.indexOf(t);v>=0&&D.splice(v,1)}},[r,t]);let u=()=>{D[D.length-1]===t&&o&&o()},m=v=>{const L=D[D.length-1];s.current=L,(!l||l(y(v)))&&L===t&&(v.stopPropagation(),v.preventDefault())},d=v=>{(!l||l(y(v)))&&(D[D.length-1]===t&&(v.stopPropagation(),v.preventDefault()),s.current===t&&u()),s.current=void 0},p=v=>{v.key==="Escape"&&!a&&!v.nativeEvent.isComposing&&(v.stopPropagation(),v.preventDefault(),u())};To({ref:t,onInteractOutside:i&&r?d:void 0,onInteractOutsideStart:m});let{focusWithinProps:b}=ko({isDisabled:!n,onBlurWithin:v=>{!v.relatedTarget||Co(v.relatedTarget)||(!l||l(v.relatedTarget))&&o?.()}}),h=v=>{y(v)===v.currentTarget&&v.preventDefault()};return{overlayProps:{onKeyDown:p,...b},underlayProps:{onPointerDown:h}}}function Ao(e,t,o){let{isOpen:n}=t;c.useEffect(()=>{o&&o.current&&Do.set(o.current,t.close)});let r,i=Ae();return{triggerProps:{"aria-haspopup":r,"aria-expanded":n,"aria-controls":n?i:void 0,onPress:t.toggle},overlayProps:{id:i}}}const ee=typeof document<"u"&&window.visualViewport;let se=0,Ne;function Wo(e={}){let{isDisabled:t}=e;N(()=>{if(!t)return se++,se===1&&(Ke()?Ne=Ho():Ne=Vo()),()=>{se--,se===0&&Ne()}},[t])}function Vo(){let e=window.innerWidth-document.documentElement.clientWidth;return ce(e>0&&("scrollbarGutter"in document.documentElement.style?de(document.documentElement,"scrollbarGutter","stable"):de(document.documentElement,"paddingRight",`${e}px`)),de(document.documentElement,"overflow","hidden"))}function Ho(){let e=de(document.documentElement,"overflow","hidden"),t,o=!1,n=u=>{let m=y(u);t=ge(m)?m:Je(m,!0),o=!1;let d=m.ownerDocument.defaultView.getSelection();d&&!d.isCollapsed&&d.containsNode(m,!0)&&(o=!0),u.composedPath().some(p=>p instanceof HTMLInputElement&&p.type==="range")&&(o=!0),"selectionStart"in m&&"selectionEnd"in m&&m.selectionStart<m.selectionEnd&&m.ownerDocument.activeElement===m&&(o=!0)},r=document.createElement("style");r.textContent=`
2
- @layer {
3
- * {
4
- overscroll-behavior: contain;
5
- }
6
- }`.trim(),document.head.prepend(r);let i=u=>{if(!(u.touches.length===2||o)){if(!t||t===document.documentElement||t===document.body){u.preventDefault();return}t.scrollHeight===t.clientHeight&&t.scrollWidth===t.clientWidth&&u.preventDefault()}},a=u=>{let m=y(u),d=u.relatedTarget;if(d&&ve(d))d.focus({preventScroll:!0}),ut(d,ve(m));else if(!d){var p;let b=(p=m.parentElement)===null||p===void 0?void 0:p.closest("[tabindex]");b?.focus({preventScroll:!0})}},l=HTMLElement.prototype.focus;HTMLElement.prototype.focus=function(u){let m=x(),d=m!=null&&ve(m);l.call(this,{...u,preventScroll:!0}),(!u||!u.preventScroll)&&ut(this,d)};let s=ce(Se(document,"touchstart",n,{passive:!1,capture:!0}),Se(document,"touchmove",i,{passive:!1,capture:!0}),Se(document,"blur",a,!0));return()=>{e(),s(),r.remove(),HTMLElement.prototype.focus=l}}function de(e,t,o){let n=e.style[t];return e.style[t]=o,()=>{e.style[t]=n}}function Se(e,t,o,n){return e.addEventListener(t,o,n),()=>{e.removeEventListener(t,o,n)}}function ut(e,t){t||!ee?ct(e):ee.addEventListener("resize",()=>ct(e),{once:!0})}function ct(e){let t=document.scrollingElement||document.documentElement,o=e;for(;o&&o!==t;){let n=Je(o);if(n!==document.documentElement&&n!==document.body&&n!==o){let r=n.getBoundingClientRect(),i=o.getBoundingClientRect();if(i.top<r.top||i.bottom>r.top+o.clientHeight){let a=r.bottom;ee&&(a=Math.min(a,ee.offsetTop+ee.height));let l=i.top-r.top-((a-r.top)/2-i.height/2);n.scrollTo({top:Math.max(0,Math.min(n.scrollHeight-n.clientHeight,n.scrollTop+l)),behavior:"smooth"})}}o=n.parentElement}}const zo=c.createContext({});function qo(){var e;return(e=c.useContext(zo))!==null&&e!==void 0?e:{}}const Ko=typeof HTMLElement<"u"&&"inert"in HTMLElement.prototype;let te=new WeakMap,O=[];function jo(e,t){let o=U(e?.[0]),n=t instanceof o.Element?{root:t}:t;var r;let i=(r=n?.root)!==null&&r!==void 0?r:document.body,a=n?.shouldUseInert&&Ko,l=new Set(e),s=new Set,u=g=>a&&g instanceof o.HTMLElement?g.inert:g.getAttribute("aria-hidden")==="true",m=(g,$)=>{a&&g instanceof o.HTMLElement?g.inert=$:$?g.setAttribute("aria-hidden","true"):(g.removeAttribute("aria-hidden"),g instanceof o.HTMLElement&&(g.inert=!1))},d=new Set;if(I())for(let g of e){let $=g;for(;$&&$!==i;){let w=$.getRootNode();"shadowRoot"in w&&d.add(w.shadowRoot),$=w.parentNode}}let p=g=>{for(let M of g.querySelectorAll("[data-live-announcer], [data-react-aria-top-layer]"))l.add(M);let $=M=>{if(s.has(M)||l.has(M)||M.parentElement&&s.has(M.parentElement)&&M.parentElement.getAttribute("role")!=="row")return NodeFilter.FILTER_REJECT;for(let Fe of l)if(C(M,Fe))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT},w=We(k(g),g,NodeFilter.SHOW_ELEMENT,{acceptNode:$}),V=$(g);if(V===NodeFilter.FILTER_ACCEPT&&b(g),V!==NodeFilter.FILTER_REJECT){let M=w.nextNode();for(;M!=null;)b(M),M=w.nextNode()}},b=g=>{var $;let w=($=te.get(g))!==null&&$!==void 0?$:0;u(g)&&w===0||(w===0&&m(g,!0),s.add(g),te.set(g,w+1))};O.length&&O[O.length-1].disconnect(),p(i);let h=new MutationObserver(g=>{for(let $ of g)if($.type==="childList"){if($.target.isConnected&&![...l,...s].some(w=>C(w,$.target)))for(let w of $.addedNodes)(w instanceof HTMLElement||w instanceof SVGElement)&&(w.dataset.liveAnnouncer==="true"||w.dataset.reactAriaTopLayer==="true")?l.add(w):w instanceof Element&&p(w);if(I()){for(let w of d)if(!w.isConnected){h.disconnect();break}}}});h.observe(i,{childList:!0,subtree:!0});let v=new Set;if(I())for(let g of d){let $=new MutationObserver(w=>{for(let V of w)if(V.type==="childList"){if(V.target.isConnected&&![...l,...s].some(M=>C(M,V.target)))for(let M of V.addedNodes)(M instanceof HTMLElement||M instanceof SVGElement)&&(M.dataset.liveAnnouncer==="true"||M.dataset.reactAriaTopLayer==="true")?l.add(M):M instanceof Element&&p(M);if(I()){for(let M of d)if(!M.isConnected){h.disconnect();break}}}});$.observe(g,{childList:!0,subtree:!0}),v.add($)}let L={visibleNodes:l,hiddenNodes:s,observe(){h.observe(i,{childList:!0,subtree:!0})},disconnect(){h.disconnect()}};return O.push(L),()=>{if(h.disconnect(),I())for(let g of v)g.disconnect();for(let g of s){let $=te.get(g);$!=null&&($===1?(m(g,!1),te.delete(g)):te.set(g,$-1))}L===O[O.length-1]?(O.pop(),O.length&&O[O.length-1].observe()):O.splice(O.indexOf(L),1)}}const ft=c.createContext(null);function Ro(e){let t=Ie(),{portalContainer:o=t?null:document.body,isExiting:n}=e,[r,i]=c.useState(!1),a=c.useMemo(()=>({contain:r,setContain:i}),[r,i]),{getContainer:l}=qo();if(!e.portalContainer&&l&&(o=l()),!o)return null;let s=e.children;return e.disableFocusManagement||(s=c.createElement(Po,{restoreFocus:!0,contain:(e.shouldContainFocus||r)&&!n},s)),s=c.createElement(ft.Provider,{value:a},c.createElement(yo,null,s)),_t.createPortal(s,o)}function mt(){let e=c.useContext(ft),t=e?.setContain;N(()=>{t?.(!0)},[t])}function Uo(e,t,o){let{overlayProps:n,underlayProps:r}=Io({...e,isOpen:t.isOpen,onClose:t.close},o);return Wo({isDisabled:!t.isOpen}),mt(),c.useEffect(()=>{if(t.isOpen&&o.current)return jo([o.current],{shouldUseInert:!0})},[t.isOpen,o]),{modalProps:qt(n),underlayProps:r}}function Go(e,t){let{role:o="dialog"}=e,n=Dt();n=e["aria-label"]?void 0:n;let r=c.useRef(!1);return c.useEffect(()=>{if(t.current&&!t.current.contains(document.activeElement)){Me(t.current);let i=setTimeout(()=>{document.activeElement===t.current&&(r.current=!0,t.current&&(t.current.blur(),Me(t.current)),r.current=!1)},500);return()=>{clearTimeout(i)}}},[t]),mt(),{dialogProps:{...Jt(e,{labelable:!0}),role:o,tabIndex:-1,"aria-labelledby":e["aria-labelledby"]||n,onBlur:i=>{r.current&&i.stopPropagation()}},titleProps:{id:n}}}function Jo(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function pt(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 bt(e){for(var t=1;t<arguments.length;t++){var o=arguments[t]!=null?arguments[t]:{};t%2?pt(Object(o),!0).forEach(function(n){Jo(e,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):pt(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})}return e}var Xo=(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},gt=e=>t=>{var o=e.defaultClassName,n=bt(bt({},e.defaultVariants),t);for(var r in n){var i,a=(i=n[r])!==null&&i!==void 0?i:e.defaultVariants[r];if(a!=null){var l=a;typeof l=="boolean"&&(l=l===!0?"true":"false");var s=e.variantClassNames[r][l];s&&(o+=" "+s)}}for(var[u,m]of e.compoundVariants)Xo(u,n,e.defaultVariants)&&(o+=" "+m);return o},Qo=gt({defaultClassName:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto20",variantClassNames:{kind:{informational:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto21",delete:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto22",failure:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto23",success:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto24",warning:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto25",successWithFailures:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto26",form:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto27"},size:{sm:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto28",md:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto29",lg:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2a",xl:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2b"},fullHeight:{true:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2c",false:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2d"}},defaultVariants:{},compoundVariants:[]}),Zo=gt({defaultClassName:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2e",variantClassNames:{kind:{form:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2f",delete:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2g",failure:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2h",informational:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2i",success:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2j",warning:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2k",successWithFailures:"pkg_sps-woodland_modal__version_8_53_4__hash_3moto2l"}},defaultVariants:{},compoundVariants:[]}),Yo="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2m",en="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2n",tn="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2o",vt="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2p",on="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2q",nn="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2r",rn="pkg_sps-woodland_modal__version_8_53_4__hash_3moto2s";function Le({children:e,className:t="",...o}){return f.createElement("div",{className:P.cl(vt,t),...o},e)}P.Metadata.set(Le,{name:"ModalFooter"});function ht({dismissableValue:e,handleClose:t}){return e?f.createElement(Oe.Button,{"aria-label":"Close",onClick:t,kind:"icon",icon:"x",className:on}):null}const xe=Object.freeze({form:"pencil",delete:"trash",failure:"status-error",informational:"info-circle",success:"status-ok",successWithFailures:"status-warning",warning:"status-warning"});function an({children:e,className:t,"data-testid":o,kind:n="informational",onBlur:r,onFocus:i,overlayProps:a,size:l="sm",state:s,title:u,dismissible:m,dismissable:d=!0,onClose:p,fullHeight:b=!1,...h}){const v=m??d,L=f.useRef(null),{modalProps:g,underlayProps:$}=Uo({isKeyboardDismissDisabled:!v,...h},s,L),{dialogProps:w,titleProps:V}=Go(h,L),M=P.combineEventHandlers(g.onFocus,w.onFocus,i),Fe=P.combineEventHandlers(g.onBlur,w.onBlur,r),{t:un}=Et.useWoodlandLanguage(),cn=P.useChildTestIdAttrBuilder({"data-testid":o}),[Be,fn]=P.selectChildren(e,[{type:Le}]),$t=f.useCallback(()=>{p&&typeof p=="function"&&p(),s.close()},[p,s.close]),mn=P.modChildren(fn,wt=>wt.type===ht?[{className:P.cl(wt.props.classname,nn)}]:[]);return f.createElement(Ro,null,f.createElement("div",{className:rn,"data-react-aria-top-layer":"true",...$,...h},f.createElement("div",{...g,...w,...a,onFocus:M,onBlur:Fe,...cn("dialog"),ref:L,className:P.cl(Qo({kind:n,size:l,fullHeight:b}),t)},f.createElement("div",{...V,className:Zo({kind:n})},n&&f.createElement(P.Icon,{icon:xe[n]||xe.informational,className:en}),f.createElement("div",{className:Yo},P.contentOf(u,s.close)),f.createElement(ht,{dismissableValue:v,handleClose:$t})),f.createElement("div",{className:tn},P.contentOf(mn,s.close)),Be&&Be.length>0?f.createElement(f.Fragment,null,P.contentOf(Be,s.close)):f.createElement("div",{className:vt},f.createElement(Oe.Button,{kind:"key",onClick:$t},un("modal.defaultButtonLabel",{defaultValue:"Okay"}))))))}function Ce(e){return e.state.isOpen?f.createElement(an,{...e},e.children):f.createElement(f.Fragment,null)}P.Metadata.set(Ce,{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 ln(e){let[t,o]=vo(e.isOpen,e.defaultOpen||!1,e.onOpenChange);const n=c.useCallback(()=>{o(!0)},[o]),r=c.useCallback(()=>{o(!1)},[o]),i=c.useCallback(()=>{o(!t)},[o,t]);return{isOpen:t,setOpen:o,open:n,close:r,toggle:i}}function sn(e={}){const t=ln(e),o=c.useRef(null),{triggerProps:n,overlayProps:r}=Ao({},t,o),{onPress:i,...a}=n;return{triggerProps:{...a,onClick:i?l=>i(l):void 0,ref:o},modalState:t,modalProps:{overlayProps:r,state:t}}}const dn={Modals:{description:()=>f.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:[Ce],examples:{general:{label:"Usage",description:({NavigateTo:e})=>f.createElement(f.Fragment,null,f.createElement("h5",null,"Use a Modal:"),f.createElement("ul",null,f.createElement("li",null,"When the user needs to confirm a basic decision, such as deleting a record."),f.createElement("li",null,"When important information needs to be displayed to the user before continuing."),f.createElement("li",null,"When a simple selection, such as a single form input, is required before proceeding.")),f.createElement("h5",null,"Avoid a Modal:"),f.createElement("ul",null,f.createElement("li",null,"When a complex form is required. Use a ",f.createElement(e,{to:"focused-task"},"Focused Task View")," instead."),f.createElement("li",null,"When sharing non-critical or tertiary information. Use a ",f.createElement(e,{to:"growlers"},"Growler")," instead.")))},implementation:{label:"Close Button",description:()=>f.createElement(f.Fragment,null,f.createElement("h5",null,"Close Button and Modal dismissiability"),f.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."),f.createElement("p",null,"The close button is included by default and omitted when the prop ",f.createElement("code",null,"dismissable")," is set to ",f.createElement("strong",null,"false"),"."),f.createElement("p",null,"Setting the ",f.createElement("code",null,"dismissable")," prop to false also prevents dismissing the modal by clicking outside of the modal or by using the"," ",f.createElement("strong",null,"escape")," key.")),examples:{basic:{react:E.code`
1
+ (function(r,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@sps-woodland/core/modal"),require("@spscommerce/utils"),require("react")):typeof define=="function"&&define.amd?define(["exports","@sps-woodland/core/modal","@spscommerce/utils","react"],a):(r=typeof globalThis<"u"?globalThis:r||self,a(r.Modal={},r.modal,r.utils,r.React))})(this,(function(r,a,e,s){"use strict";function i(t){const d=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const l in t)if(l!=="default"){const n=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(d,l,n.get?n:{enumerable:!0,get:()=>t[l]})}}return d.default=t,Object.freeze(d)}const o=i(s),m={Modals:{description:()=>o.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:[a.Modal],examples:{general:{label:"Usage",description:({NavigateTo:t})=>o.createElement(o.Fragment,null,o.createElement("h5",null,"Use a Modal:"),o.createElement("ul",null,o.createElement("li",null,"When the user needs to confirm a basic decision, such as deleting a record."),o.createElement("li",null,"When important information needs to be displayed to the user before continuing."),o.createElement("li",null,"When a simple selection, such as a single form input, is required before proceeding.")),o.createElement("h5",null,"Avoid a Modal:"),o.createElement("ul",null,o.createElement("li",null,"When a complex form is required. Use a ",o.createElement(t,{to:"focused-task"},"Focused Task View")," instead."),o.createElement("li",null,"When sharing non-critical or tertiary information. Use a ",o.createElement(t,{to:"growlers"},"Growler")," instead.")))},implementation:{label:"Close Button",description:()=>o.createElement(o.Fragment,null,o.createElement("h5",null,"Close Button and Modal dismissiability"),o.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."),o.createElement("p",null,"The close button is included by default and omitted when the prop ",o.createElement("code",null,"dismissable")," is set to ",o.createElement("strong",null,"false"),"."),o.createElement("p",null,"Setting the ",o.createElement("code",null,"dismissable")," prop to false also prevents dismissing the modal by clicking outside of the modal or by using the"," ",o.createElement("strong",null,"escape")," key.")),examples:{basic:{react:e.code`
7
2
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
8
3
  import { sprinkles } from "@sps-woodland/tokens";
9
4
  import { Button } from "@sps-woodland/buttons";
@@ -42,8 +37,8 @@
42
37
  and Large (8 columns), XLarge (12 columns).
43
38
  Use the size that best fits the content
44
39
  that needs to be in the Modal, erring
45
- towards the smallest size whenever possible.`},hooks:{label:"Using Hooks",description:()=>f.createElement(f.Fragment,null,f.createElement("h5",null,"Using the hook"),f.createElement("p",null,"To use any modals, you must call the ",f.createElement("code",null,"useModal")," hook. Optional arguments for this hook include:"),f.createElement("dl",null,f.createElement("dt",null,f.createElement("code",null,"isOpen"),": boolean"),f.createElement("dd",null,"Whether the overlay is open by default (controlled)"),f.createElement("dt",null,f.createElement("code",null,"defaultOpen"),": boolean"),f.createElement("dd",null,"Whether the overlay is open by default (uncontrolled)."),f.createElement("dt",null,f.createElement("code",null,"onOpenChange"),": function"),f.createElement("dd",null,"Handler that is called when the overlay's open state changes.",f.createElement("code",null,"(isOpen: boolean) => void"))),f.createElement("h5",null,"Modal Props, Modal State, and Trigger Props"),f.createElement("p",null,"The ",f.createElement("code",null,"useModal")," returns an object with ",f.createElement("code",null,"modalProps"),", ",f.createElement("code",null,"modalState")," and ",f.createElement("code",null,"triggerProps")),f.createElement("p",null,"The ",f.createElement("code",null,"triggerProps")," need to be spread on the element that triggers the modal."),f.createElement("p",null,"The ",f.createElement("code",null,"modalState")," object (which is also included in ",f.createElement("code",null,"modalProps"),") allows programmatic access to the state of the modal. This includes a read only ",f.createElement("code",null,"isOpen")," property, a ",f.createElement("code",null,"setOpen(isOpen: boolean)")," method which can be use to set whether the overlay is open, an ",f.createElement("code",null,"open()")," method which opens the overlay, a ",f.createElement("code",null,"close()")," method which closes the overlay and a ",f.createElement("code",null,"toggle()")," method that toggles the overlay's visiblity."),f.createElement("p",null,"The ",f.createElement("code",null,"modalProps")," should be spread on the actual ",f.createElement("code",null,"Modal")," component."),f.createElement("p",null,"Please refer to the examples to see its implementation"))},informational:{label:"Informational",description:`Use Informational Modals to share impactful information with the user,
46
- such as telling them when an app will be down for maintenance.`,examples:{small:{description:"Small",react:E.code`
40
+ towards the smallest size whenever possible.`},hooks:{label:"Using Hooks",description:()=>o.createElement(o.Fragment,null,o.createElement("h5",null,"Using the hook"),o.createElement("p",null,"To use any modals, you must call the ",o.createElement("code",null,"useModal")," hook. Optional arguments for this hook include:"),o.createElement("dl",null,o.createElement("dt",null,o.createElement("code",null,"isOpen"),": boolean"),o.createElement("dd",null,"Whether the overlay is open by default (controlled)"),o.createElement("dt",null,o.createElement("code",null,"defaultOpen"),": boolean"),o.createElement("dd",null,"Whether the overlay is open by default (uncontrolled)."),o.createElement("dt",null,o.createElement("code",null,"onOpenChange"),": function"),o.createElement("dd",null,"Handler that is called when the overlay's open state changes.",o.createElement("code",null,"(isOpen: boolean) => void"))),o.createElement("h5",null,"Modal Props, Modal State, and Trigger Props"),o.createElement("p",null,"The ",o.createElement("code",null,"useModal")," returns an object with ",o.createElement("code",null,"modalProps"),", ",o.createElement("code",null,"modalState")," and ",o.createElement("code",null,"triggerProps")),o.createElement("p",null,"The ",o.createElement("code",null,"triggerProps")," need to be spread on the element that triggers the modal."),o.createElement("p",null,"The ",o.createElement("code",null,"modalState")," object (which is also included in ",o.createElement("code",null,"modalProps"),") allows programmatic access to the state of the modal. This includes a read only ",o.createElement("code",null,"isOpen")," property, a ",o.createElement("code",null,"setOpen(isOpen: boolean)")," method which can be use to set whether the overlay is open, an ",o.createElement("code",null,"open()")," method which opens the overlay, a ",o.createElement("code",null,"close()")," method which closes the overlay and a ",o.createElement("code",null,"toggle()")," method that toggles the overlay's visiblity."),o.createElement("p",null,"The ",o.createElement("code",null,"modalProps")," should be spread on the actual ",o.createElement("code",null,"Modal")," component."),o.createElement("p",null,"Please refer to the examples to see its implementation"))},informational:{label:"Informational",description:`Use Informational Modals to share impactful information with the user,
41
+ such as telling them when an app will be down for maintenance.`,examples:{small:{description:"Small",react:e.code`
47
42
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
48
43
  import { sprinkles } from "@sps-woodland/tokens";
49
44
  import { Button } from "@sps-woodland/buttons";
@@ -68,7 +63,7 @@
68
63
  </>
69
64
  )
70
65
  }
71
- `},medium:{description:"Medium",react:E.code`
66
+ `},medium:{description:"Medium",react:e.code`
72
67
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
73
68
  import { sprinkles } from "@sps-woodland/tokens";
74
69
  import { Button } from "@sps-woodland/buttons";
@@ -90,7 +85,7 @@
90
85
  </>
91
86
  )
92
87
  }
93
- `},large:{description:"Large",react:E.code`
88
+ `},large:{description:"Large",react:e.code`
94
89
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
95
90
  import { sprinkles } from "@sps-woodland/tokens";
96
91
  import { Button } from "@sps-woodland/buttons";
@@ -112,7 +107,7 @@
112
107
  </>
113
108
  )
114
109
  }
115
- `},xlarge:{description:"Extra Large",react:E.code`
110
+ `},xlarge:{description:"Extra Large",react:e.code`
116
111
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
117
112
  import { sprinkles } from "@sps-woodland/tokens";
118
113
  import { Button } from "@sps-woodland/buttons";
@@ -135,7 +130,7 @@
135
130
  )
136
131
  }
137
132
  `}}},delete:{label:"Delete",description:`Use Delete Modals to have the user confirm they want to
138
- continue with a destructive action. Be clear on what will happen if they continue.`,examples:{small:{description:"Small",react:E.code`
133
+ continue with a destructive action. Be clear on what will happen if they continue.`,examples:{small:{description:"Small",react:e.code`
139
134
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
140
135
  import { sprinkles } from "@sps-woodland/tokens";
141
136
  import { Button } from "@sps-woodland/buttons";
@@ -153,7 +148,7 @@
153
148
  </>
154
149
  )
155
150
  }
156
- `},medium:{description:"Medium",react:E.code`
151
+ `},medium:{description:"Medium",react:e.code`
157
152
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
158
153
  import { sprinkles } from "@sps-woodland/tokens";
159
154
  import { Button } from "@sps-woodland/buttons";
@@ -170,7 +165,7 @@
170
165
  </>
171
166
  )
172
167
  }
173
- `},large:{description:"Large",react:E.code`
168
+ `},large:{description:"Large",react:e.code`
174
169
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
175
170
  import { sprinkles } from "@sps-woodland/tokens";
176
171
  import { Button } from "@sps-woodland/buttons";
@@ -188,7 +183,7 @@
188
183
  </>
189
184
  )
190
185
  }
191
- `},xlarge:{description:"Extra Large",react:E.code`
186
+ `},xlarge:{description:"Extra Large",react:e.code`
192
187
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
193
188
  import { sprinkles } from "@sps-woodland/tokens";
194
189
  import { Button } from "@sps-woodland/buttons";
@@ -205,7 +200,7 @@
205
200
  </>
206
201
  )
207
202
  }
208
- `}}},failure:{label:"Failure",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:E.code`
203
+ `}}},failure:{label:"Failure",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:e.code`
209
204
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
210
205
  import { sprinkles } from "@sps-woodland/tokens";
211
206
  import { Button } from "@sps-woodland/buttons";
@@ -223,7 +218,7 @@
223
218
  </>
224
219
  )
225
220
  }
226
- `},medium:{description:"Medium",react:E.code`
221
+ `},medium:{description:"Medium",react:e.code`
227
222
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
228
223
  import { sprinkles } from "@sps-woodland/tokens";
229
224
  import { Button } from "@sps-woodland/buttons";
@@ -240,7 +235,7 @@
240
235
  </>
241
236
  )
242
237
  }
243
- `},large:{description:"Large",react:E.code`
238
+ `},large:{description:"Large",react:e.code`
244
239
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
245
240
  import { sprinkles } from "@sps-woodland/tokens";
246
241
  import { Button } from "@sps-woodland/buttons";
@@ -258,7 +253,7 @@
258
253
  </>
259
254
  )
260
255
  }
261
- `},xlarge:{description:"Extra Large",react:E.code`
256
+ `},xlarge:{description:"Extra Large",react:e.code`
262
257
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
263
258
  import { sprinkles } from "@sps-woodland/tokens";
264
259
  import { Button } from "@sps-woodland/buttons";
@@ -275,7 +270,7 @@
275
270
  </>
276
271
  )
277
272
  }
278
- `}}},success:{label:"Success",description:"Use Success Modals to confirm that an action has been completed successfully.",examples:{small:{description:"Small",react:E.code`
273
+ `}}},success:{label:"Success",description:"Use Success Modals to confirm that an action has been completed successfully.",examples:{small:{description:"Small",react:e.code`
279
274
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
280
275
  import { sprinkles } from "@sps-woodland/tokens";
281
276
  import { Button } from "@sps-woodland/buttons";
@@ -293,7 +288,7 @@
293
288
  </>
294
289
  )
295
290
  }
296
- `},medium:{description:"Medium",react:E.code`
291
+ `},medium:{description:"Medium",react:e.code`
297
292
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
298
293
  import { sprinkles } from "@sps-woodland/tokens";
299
294
  import { Button } from "@sps-woodland/buttons";
@@ -310,7 +305,7 @@
310
305
  </>
311
306
  )
312
307
  }
313
- `},large:{description:"Large",react:E.code`
308
+ `},large:{description:"Large",react:e.code`
314
309
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
315
310
  import { sprinkles } from "@sps-woodland/tokens";
316
311
  import { Button } from "@sps-woodland/buttons";
@@ -328,7 +323,7 @@
328
323
  </>
329
324
  )
330
325
  }
331
- `},xlarge:{description:"Extra Large",react:E.code`
326
+ `},xlarge:{description:"Extra Large",react:e.code`
332
327
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
333
328
  import { sprinkles } from "@sps-woodland/tokens";
334
329
  import { Button } from "@sps-woodland/buttons";
@@ -345,7 +340,7 @@
345
340
  </>
346
341
  )
347
342
  }
348
- `}}},successWithFailtures:{label:"Success with Failures",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:E.code`
343
+ `}}},successWithFailtures:{label:"Success with Failures",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:e.code`
349
344
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
350
345
  import { sprinkles } from "@sps-woodland/tokens";
351
346
  import { Button } from "@sps-woodland/buttons";
@@ -363,7 +358,7 @@
363
358
  </>
364
359
  )
365
360
  }
366
- `},medium:{description:"Medium",react:E.code`
361
+ `},medium:{description:"Medium",react:e.code`
367
362
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
368
363
  import { sprinkles } from "@sps-woodland/tokens";
369
364
  import { Button } from "@sps-woodland/buttons";
@@ -380,7 +375,7 @@
380
375
  </>
381
376
  )
382
377
  }
383
- `},large:{description:"Large",react:E.code`
378
+ `},large:{description:"Large",react:e.code`
384
379
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
385
380
  import { sprinkles } from "@sps-woodland/tokens";
386
381
  import { Button } from "@sps-woodland/buttons";
@@ -398,7 +393,7 @@
398
393
  </>
399
394
  )
400
395
  }
401
- `},xlarge:{description:"Extra Large",react:E.code`
396
+ `},xlarge:{description:"Extra Large",react:e.code`
402
397
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
403
398
  import { sprinkles } from "@sps-woodland/tokens";
404
399
  import { Button } from "@sps-woodland/buttons";
@@ -415,7 +410,7 @@
415
410
  </>
416
411
  )
417
412
  }
418
- `}}},warning:{label:"Warning",description:"Use Warning Modals to warn of problems that may occur as a result of taking an action. When writing the message, be clear about what will happen if the user continues on the path.",examples:{small:{description:"Small",react:E.code`
413
+ `}}},warning:{label:"Warning",description:"Use Warning Modals to warn of problems that may occur as a result of taking an action. When writing the message, be clear about what will happen if the user continues on the path.",examples:{small:{description:"Small",react:e.code`
419
414
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
420
415
  import { sprinkles } from "@sps-woodland/tokens";
421
416
  import { Button } from "@sps-woodland/buttons";
@@ -438,7 +433,7 @@
438
433
  </>
439
434
  )
440
435
  }
441
- `},medium:{description:"Medium",react:E.code`
436
+ `},medium:{description:"Medium",react:e.code`
442
437
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
443
438
  import { sprinkles } from "@sps-woodland/tokens";
444
439
  import { Button } from "@sps-woodland/buttons";
@@ -459,7 +454,7 @@
459
454
  </>
460
455
  )
461
456
  }
462
- `},large:{description:"Large",react:E.code`
457
+ `},large:{description:"Large",react:e.code`
463
458
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
464
459
  import { sprinkles } from "@sps-woodland/tokens";
465
460
  import { Button } from "@sps-woodland/buttons";
@@ -477,7 +472,7 @@
477
472
  </>
478
473
  )
479
474
  }
480
- `},xlarge:{description:"Extra Large",react:E.code`
475
+ `},xlarge:{description:"Extra Large",react:e.code`
481
476
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
482
477
  import { sprinkles } from "@sps-woodland/tokens";
483
478
  import { Button } from "@sps-woodland/buttons";
@@ -494,7 +489,7 @@
494
489
  </>
495
490
  )
496
491
  }
497
- `}}},form:{label:"Form",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:E.code`
492
+ `}}},form:{label:"Form",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",examples:{small:{description:"Small",react:e.code`
498
493
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
499
494
  import { sprinkles } from "@sps-woodland/tokens";
500
495
  import { Button } from "@sps-woodland/buttons";
@@ -512,7 +507,7 @@
512
507
  </>
513
508
  )
514
509
  }
515
- `},medium:{description:"Medium",react:E.code`
510
+ `},medium:{description:"Medium",react:e.code`
516
511
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
517
512
  import { sprinkles } from "@sps-woodland/tokens";
518
513
  import { Button } from "@sps-woodland/buttons";
@@ -529,7 +524,7 @@
529
524
  </>
530
525
  )
531
526
  }
532
- `},large:{description:"Large",react:E.code`
527
+ `},large:{description:"Large",react:e.code`
533
528
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
534
529
  import { sprinkles } from "@sps-woodland/tokens";
535
530
  import { Button } from "@sps-woodland/buttons";
@@ -547,7 +542,7 @@
547
542
  </>
548
543
  )
549
544
  }
550
- `},xlarge:{description:"Extra Large",react:E.code`
545
+ `},xlarge:{description:"Extra Large",react:e.code`
551
546
  import { Modal, ModalFooter, useModal } from "@sps-woodland/modal";
552
547
  import { sprinkles } from "@sps-woodland/tokens";
553
548
  import { Button } from "@sps-woodland/buttons";
@@ -564,4 +559,4 @@
564
559
  </>
565
560
  )
566
561
  }
567
- `}}}}}};S.MANIFEST=dn,S.Modal=Ce,S.ModalFooter=Le,S.ModalIcons=xe,S.useModal=sn,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})}));
562
+ `}}}}}};r.MANIFEST=m,Object.keys(a).forEach(t=>{t!=="default"&&!Object.prototype.hasOwnProperty.call(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:()=>a[t]})}),Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})}));
package/lib/style.css CHANGED
@@ -1 +1 @@
1
- .pkg_sps-woodland_modal__version_8_53_4__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_53_4__hash_3moto21{border-color:#007db8}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto22,.pkg_sps-woodland_modal__version_8_53_4__hash_3moto23{border-color:#de002e}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto24{border-color:#0b8940}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto25,.pkg_sps-woodland_modal__version_8_53_4__hash_3moto26{border-color:#e7760b}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto27{border-color:#4b5356}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto28{width:23.75rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto29{width:36.25rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2a{width:48.75rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2b{width:73.75rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2c{height:100%}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2e{align-items:center;color:#fff;display:flex;padding:1rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2f{background-color:#4b5356}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2g,.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2h{background-color:#de002e}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2i{background-color:#007db8}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2j{background-color:#0b8940}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2k,.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2l{background-color:#e7760b}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2m{flex-grow:1;font-size:.875rem;font-weight:600;line-height:1.25rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2n{font-weight:600;line-height:.875rem;font-size:.875rem;margin-right:.5rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2o{overflow-y:auto;padding:1rem;flex:1}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2p{align-items:center;background-color:#f3f4f4;display:flex;justify-content:flex-end;padding:.5rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2q{color:#fff;border-width:0}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2r{padding:0 .25rem}.pkg_sps-woodland_modal__version_8_53_4__hash_3moto2s{position:fixed;z-index:1000;inset:0;background:#f3f4f4cc;display:flex;align-items:start;justify-content:center;padding:4rem 1rem 1rem}.z-stratum-dropdown{z-index:1100}
1
+ .pkg_sps-woodland_core__version_8_53_6__hash_41ksem0{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_core__version_8_53_6__hash_41ksem1{border-color:#007db8}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem2,.pkg_sps-woodland_core__version_8_53_6__hash_41ksem3{border-color:#de002e}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem4{border-color:#0b8940}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem5,.pkg_sps-woodland_core__version_8_53_6__hash_41ksem6{border-color:#e7760b}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem7{border-color:#4b5356}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem8{width:23.75rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksem9{width:36.25rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksema{width:48.75rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemb{width:73.75rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemc{height:100%}.pkg_sps-woodland_core__version_8_53_6__hash_41kseme{align-items:center;color:#fff;display:flex;padding:1rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemf{background-color:#4b5356}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemg,.pkg_sps-woodland_core__version_8_53_6__hash_41ksemh{background-color:#de002e}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemi{background-color:#007db8}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemj{background-color:#0b8940}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemk,.pkg_sps-woodland_core__version_8_53_6__hash_41kseml{background-color:#e7760b}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemm{flex-grow:1;font-size:.875rem;font-weight:600;line-height:1.25rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemn{font-weight:600;line-height:.875rem;font-size:.875rem;margin-right:.5rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemo{overflow-y:auto;padding:1rem;flex:1}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemp{align-items:center;background-color:#f3f4f4;display:flex;justify-content:flex-end;padding:.5rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemq{color:#fff;border-width:0}.pkg_sps-woodland_core__version_8_53_6__hash_41ksemr{padding:0 .25rem}.pkg_sps-woodland_core__version_8_53_6__hash_41ksems{position:fixed;z-index:1000;inset:0;background:#f3f4f4cc;display:flex;align-items:start;justify-content:center;padding:4rem 1rem 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.53.4",
4
+ "version": "8.53.6",
5
5
  "author": "SPS Commerce",
6
6
  "license": "UNLICENSED",
7
7
  "repository": "https://github.com/SPSCommerce/woodland/tree/main/packages/@sps-woodland/modal",
@@ -17,6 +17,7 @@
17
17
  "import": "./lib/index.js",
18
18
  "default": "./lib/index.js"
19
19
  },
20
+ "./style.css": "./lib/style.css",
20
21
  "./lib/style.css": {
21
22
  "import": "./lib/style.css",
22
23
  "require": "./lib/style.css"
@@ -29,33 +30,19 @@
29
30
  "@spscommerce/utils": "^7.0.0 || ^8.0.0 || ^9.0.0",
30
31
  "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
31
32
  "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
32
- "@sps-woodland/buttons": "8.53.4",
33
- "@sps-woodland/core": "8.53.4",
34
- "@sps-woodland/tokens": "8.53.4",
35
- "@spscommerce/i18n": "8.53.4"
33
+ "@sps-woodland/core": "8.53.6"
36
34
  },
37
35
  "devDependencies": {
38
- "@react-spectrum/provider": "3.11.0",
39
36
  "@spscommerce/utils": "9.0.3",
40
- "@types/react": "16.14.35",
41
- "@vanilla-extract/css": "1.17.4",
42
- "@vanilla-extract/recipes": "0.2.5",
43
- "@vanilla-extract/sprinkles": "1.5.1",
44
37
  "react": "16.14.0",
45
38
  "react-dom": "16.14.0",
46
- "@sps-woodland/buttons": "8.53.4",
47
- "@sps-woodland/core": "8.53.4",
48
- "@sps-woodland/tokens": "8.53.4",
49
- "@spscommerce/i18n": "8.53.4"
50
- },
51
- "dependencies": {
52
- "react-aria": "3.21.0",
53
- "react-stately": "3.19.0"
39
+ "@sps-woodland/core": "8.53.6"
54
40
  },
55
41
  "scripts": {
56
- "build": "pnpm run build:js && pnpm run build:types",
42
+ "build": "pnpm run build:js && pnpm run build:types && pnpm run build:css",
57
43
  "build:js": "vite build",
58
44
  "build:types": "tsc --emitDeclarationOnly --declaration --declarationDir lib",
45
+ "build:css": "cp ../core/lib/modal/style.css lib/style.css 2>/dev/null || echo 'modal style.css not found, skipping'",
59
46
  "watch": "vite build --watch",
60
47
  "clean": "git clean -fdX",
61
48
  "pub": "node ../../../scripts/publish-package.mjs"
package/vite.config.mjs CHANGED
@@ -1,31 +1,24 @@
1
1
  import path from "node:path";
2
- import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin";
3
2
  import { defineConfig } from "vite";
4
- import { getVanillaExtractPluginProps } from "../../../scripts/vanilla-extract-plugin-props.mjs";
5
3
  import pkg from "./package.json";
6
4
 
7
- const packageVersion = process.env.PREDICTED_VERSION || pkg.version;
5
+ // Modal is now a wrapper package that re-exports from @sps-woodland/core.
6
+ // No vanilla-extract needed - CSS is provided by the mono-package.
7
+
8
+ const peerDeps = pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : [];
8
9
 
9
10
  export default defineConfig({
10
- plugins: [
11
- vanillaExtractPlugin(
12
- getVanillaExtractPluginProps({
13
- packageName: pkg.name,
14
- packageVersion,
15
- })
16
- ),
17
- ],
18
11
  build: {
19
12
  lib: {
20
13
  entry: path.resolve(__dirname, "src/index.ts"),
21
14
  name: "Modal",
22
15
  fileName: "index",
23
- cssFileName: "style",
24
16
  },
25
17
  outDir: path.resolve(__dirname, "./lib"),
26
18
  emptyOutDir: false,
27
19
  rollupOptions: {
28
- external: pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : [],
20
+ // External must match subpath imports like @sps-woodland/core/modal
21
+ external: (id) => peerDeps.some((dep) => id === dep || id.startsWith(dep + "/")),
29
22
  },
30
23
  },
31
24
  });
@@ -1,19 +0,0 @@
1
- import { Tokens } from "@sps-woodland/tokens";
2
- import type { VariantDefinitions, RecipeVariant, BooleanRecipeVariant } from "@sps-woodland/core";
3
- export type ModalKind = keyof (typeof Tokens.component)["modal"]["kind"];
4
- export type ModalSize = keyof (typeof Tokens.component)["modal"]["size"];
5
- interface ModalVariantDefinitions extends VariantDefinitions {
6
- kind: RecipeVariant<ModalKind>;
7
- size: RecipeVariant<ModalSize>;
8
- fullHeight: BooleanRecipeVariant;
9
- }
10
- export declare const modal: import("@vanilla-extract/recipes/dist/declarations/src/types").RuntimeFn<ModalVariantDefinitions>;
11
- export declare const title: import("@vanilla-extract/recipes/dist/declarations/src/types").RuntimeFn<Pick<ModalVariantDefinitions, "kind">>;
12
- export declare const titleContent: string;
13
- export declare const modalIcon: string;
14
- export declare const body: string;
15
- export declare const footer: string;
16
- export declare const closeButtonBox: string;
17
- export declare const closeButtonIcon: string;
18
- export declare const underlay: string;
19
- export {};
@@ -1,26 +0,0 @@
1
- import type { ComponentProps, ChildrenFn } from "@sps-woodland/core";
2
- import type { IconName } from "@sps-woodland/tokens";
3
- import type { AriaModalOverlayProps, AriaDialogProps, OverlayTriggerAria } from "react-aria";
4
- import type { OverlayTriggerState } from "react-stately";
5
- import * as React from "react";
6
- import type { ModalKind, ModalSize } from "./Modal.css";
7
- interface ModalPropsFromHook {
8
- state: OverlayTriggerState;
9
- overlayProps: OverlayTriggerAria["overlayProps"];
10
- }
11
- type ModalContentRenderFn = (close: OverlayTriggerState["close"]) => React.ReactNode;
12
- type ModalProps = ModalPropsFromHook & AriaModalOverlayProps & AriaDialogProps & {
13
- kind?: ModalKind;
14
- size?: ModalSize;
15
- title: React.ReactNode | ModalContentRenderFn;
16
- footer?: React.ReactNode | ModalContentRenderFn;
17
- dismissible?: boolean;
18
- dismissable?: boolean;
19
- onClose?: () => void;
20
- focusElementOnOpen?: React.MutableRefObject<HTMLElement>;
21
- fullHeight?: boolean;
22
- };
23
- export declare const ModalIcons: Record<ModalKind, IconName>;
24
- declare function ModalInternal({ children, className, "data-testid": dataTestId, kind, onBlur, onFocus, overlayProps, size, state, title, dismissible, dismissable, onClose, fullHeight, ...rest }: ComponentProps<ModalProps, HTMLDivElement> & ChildrenFn<ModalContentRenderFn>): React.ReactElement;
25
- export declare function Modal(props: Parameters<typeof ModalInternal>[0]): React.ReactElement;
26
- export {};
@@ -1,16 +0,0 @@
1
- import type { AriaButtonProps, OverlayTriggerAria } from "react-aria";
2
- import type { OverlayTriggerState, OverlayTriggerProps } from "react-stately";
3
- import type { MutableRefObject } from "react";
4
- interface ModalPropsAndState {
5
- triggerProps: Omit<AriaButtonProps, "onPress"> & {
6
- onClick: ((e?: any) => void) | undefined;
7
- ref: MutableRefObject<HTMLElement | null>;
8
- };
9
- modalState: OverlayTriggerState;
10
- modalProps: {
11
- state: OverlayTriggerState;
12
- overlayProps: OverlayTriggerAria["overlayProps"];
13
- };
14
- }
15
- export declare function useModal(config?: OverlayTriggerProps): ModalPropsAndState;
16
- export {};
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- import type { ComponentProps } from "@sps-woodland/core";
3
- export declare function ModalFooter({ children, className, ...rest }: ComponentProps<unknown, HTMLDivElement>): React.ReactElement;