@inertiaui/modal-react 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,12 @@
1
- (function(k,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("react"),require("axios"),require("@inertiajs/react"),require("@inertiajs/core"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","axios","@inertiajs/react","@inertiajs/core","react-dom"],i):(k=typeof globalThis<"u"?globalThis:k||self,i(k.InertiaUIModal={},k.React,k.Axios,k.react,k.core,k.ReactDOM))})(this,function(k,i,le,Oe,Xn,zn){"use strict";var yi=Object.defineProperty;var xi=(k,i,le)=>i in k?yi(k,i,{enumerable:!0,configurable:!0,writable:!0,value:le}):k[i]=le;var te=(k,i,le)=>xi(k,typeof i!="symbol"?i+"":i,le);function Kn(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const je=Kn(i),_e={type:"modal",navigate:!1,modal:{closeButton:!0,closeExplicitly:!1,maxWidth:"2xl",paddingClasses:"p-4 sm:p-6",panelClasses:"bg-white rounded",position:"center"},slideover:{closeButton:!0,closeExplicitly:!1,maxWidth:"md",paddingClasses:"p-4 sm:p-6",panelClasses:"bg-white min-h-screen",position:"right"}};class Gn{constructor(){this.config={},this.reset()}reset(){this.config=JSON.parse(JSON.stringify(_e))}put(t,n){if(typeof t=="object"){this.config={type:t.type??_e.type,navigate:t.navigate??_e.navigate,modal:{..._e.modal,...t.modal??{}},slideover:{..._e.slideover,...t.slideover??{}}};return}const r=t.split(".");let l=this.config;for(let u=0;u<r.length-1;u++)l=l[r[u]]=l[r[u]]||{};l[r[r.length-1]]=n}get(t){if(typeof t>"u")return this.config;const n=t.split(".");let r=this.config;for(const l of n){if(r[l]===void 0)return null;r=r[l]}return r}}const ze=new Gn,Jn=()=>ze.reset(),Rn=(e,t)=>ze.put(e,t),Ke=e=>ze.get(e),Pe=(e,t)=>ze.get(e?`slideover.${t}`:`modal.${t}`);var ft={exports:{}},Le={};/**
2
- * @license React
3
- * react-jsx-runtime.production.min.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var Dt;function Zn(){if(Dt)return Le;Dt=1;var e=i,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,l=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function s(d,a,p){var c,b={},y=null,w=null;p!==void 0&&(y=""+p),a.key!==void 0&&(y=""+a.key),a.ref!==void 0&&(w=a.ref);for(c in a)r.call(a,c)&&!u.hasOwnProperty(c)&&(b[c]=a[c]);if(d&&d.defaultProps)for(c in a=d.defaultProps,a)b[c]===void 0&&(b[c]=a[c]);return{$$typeof:t,type:d,key:y,ref:w,props:b,_owner:l.current}}return Le.Fragment=n,Le.jsx=s,Le.jsxs=s,Le}var Ae={};/**
10
- * @license React
11
- * react-jsx-runtime.development.js
12
- *
13
- * Copyright (c) Facebook, Inc. and its affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var Wt;function Qn(){return Wt||(Wt=1,process.env.NODE_ENV!=="production"&&function(){var e=i,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),d=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),c=Symbol.for("react.suspense_list"),b=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),w=Symbol.for("react.offscreen"),E=Symbol.iterator,m="@@iterator";function f(o){if(o===null||typeof o!="object")return null;var v=E&&o[E]||o[m];return typeof v=="function"?v:null}var h=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function g(o){{for(var v=arguments.length,C=new Array(v>1?v-1:0),S=1;S<v;S++)C[S-1]=arguments[S];x("error",o,C)}}function x(o,v,C){{var S=h.ReactDebugCurrentFrame,j=S.getStackAddendum();j!==""&&(v+="%s",C=C.concat([j]));var _=C.map(function($){return String($)});_.unshift("Warning: "+v),Function.prototype.apply.call(console[o],console,_)}}var T=!1,F=!1,Y=!1,U=!1,J=!1,R;R=Symbol.for("react.module.reference");function H(o){return!!(typeof o=="string"||typeof o=="function"||o===r||o===u||J||o===l||o===p||o===c||U||o===w||T||F||Y||typeof o=="object"&&o!==null&&(o.$$typeof===y||o.$$typeof===b||o.$$typeof===s||o.$$typeof===d||o.$$typeof===a||o.$$typeof===R||o.getModuleId!==void 0))}function q(o,v,C){var S=o.displayName;if(S)return S;var j=v.displayName||v.name||"";return j!==""?C+"("+j+")":C}function K(o){return o.displayName||"Context"}function L(o){if(o==null)return null;if(typeof o.tag=="number"&&g("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case r:return"Fragment";case n:return"Portal";case u:return"Profiler";case l:return"StrictMode";case p:return"Suspense";case c:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case d:var v=o;return K(v)+".Consumer";case s:var C=o;return K(C._context)+".Provider";case a:return q(o,o.render,"ForwardRef");case b:var S=o.displayName||null;return S!==null?S:L(o.type)||"Memo";case y:{var j=o,_=j._payload,$=j._init;try{return L($(_))}catch{return null}}}return null}var M=Object.assign,I=0,be,we,me,Z,ye,N,xe;function B(){}B.__reactDisabledLog=!0;function jt(){{if(I===0){be=console.log,we=console.info,me=console.warn,Z=console.error,ye=console.group,N=console.groupCollapsed,xe=console.groupEnd;var o={configurable:!0,enumerable:!0,value:B,writable:!0};Object.defineProperties(console,{info:o,log:o,warn:o,error:o,group:o,groupCollapsed:o,groupEnd:o})}I++}}function Ce(){{if(I--,I===0){var o={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:M({},o,{value:be}),info:M({},o,{value:we}),warn:M({},o,{value:me}),error:M({},o,{value:Z}),group:M({},o,{value:ye}),groupCollapsed:M({},o,{value:N}),groupEnd:M({},o,{value:xe})})}I<0&&g("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var qe=h.ReactCurrentDispatcher,Te;function ae(o,v,C){{if(Te===void 0)try{throw Error()}catch(j){var S=j.stack.trim().match(/\n( *(at )?)/);Te=S&&S[1]||""}return`
18
- `+Te+o}}var ue=!1,st;{var Jl=typeof WeakMap=="function"?WeakMap:Map;st=new Jl}function kn(o,v){if(!o||ue)return"";{var C=st.get(o);if(C!==void 0)return C}var S;ue=!0;var j=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var _;_=qe.current,qe.current=null,jt();try{if(v){var $=function(){throw Error()};if(Object.defineProperty($.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct($,[])}catch(G){S=G}Reflect.construct(o,[],$)}else{try{$.call()}catch(G){S=G}o.call($.prototype)}}else{try{throw Error()}catch(G){S=G}o()}}catch(G){if(G&&S&&typeof G.stack=="string"){for(var P=G.stack.split(`
19
- `),X=S.stack.split(`
20
- `),D=P.length-1,W=X.length-1;D>=1&&W>=0&&P[D]!==X[W];)W--;for(;D>=1&&W>=0;D--,W--)if(P[D]!==X[W]){if(D!==1||W!==1)do if(D--,W--,W<0||P[D]!==X[W]){var ee=`
21
- `+P[D].replace(" at new "," at ");return o.displayName&&ee.includes("<anonymous>")&&(ee=ee.replace("<anonymous>",o.displayName)),typeof o=="function"&&st.set(o,ee),ee}while(D>=1&&W>=0);break}}}finally{ue=!1,qe.current=_,Ce(),Error.prepareStackTrace=j}var ke=o?o.displayName||o.name:"",Se=ke?ae(ke):"";return typeof o=="function"&&st.set(o,Se),Se}function Rl(o,v,C){return kn(o,!1)}function Zl(o){var v=o.prototype;return!!(v&&v.isReactComponent)}function dt(o,v,C){if(o==null)return"";if(typeof o=="function")return kn(o,Zl(o));if(typeof o=="string")return ae(o);switch(o){case p:return ae("Suspense");case c:return ae("SuspenseList")}if(typeof o=="object")switch(o.$$typeof){case a:return Rl(o.render);case b:return dt(o.type,v,C);case y:{var S=o,j=S._payload,_=S._init;try{return dt(_(j),v,C)}catch{}}}return""}var Xe=Object.prototype.hasOwnProperty,jn={},_n=h.ReactDebugCurrentFrame;function ct(o){if(o){var v=o._owner,C=dt(o.type,o._source,v?v.type:null);_n.setExtraStackFrame(C)}else _n.setExtraStackFrame(null)}function Ql(o,v,C,S,j){{var _=Function.call.bind(Xe);for(var $ in o)if(_(o,$)){var P=void 0;try{if(typeof o[$]!="function"){var X=Error((S||"React class")+": "+C+" type `"+$+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof o[$]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw X.name="Invariant Violation",X}P=o[$](v,$,S,C,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(D){P=D}P&&!(P instanceof Error)&&(ct(j),g("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",S||"React class",C,$,typeof P),ct(null)),P instanceof Error&&!(P.message in jn)&&(jn[P.message]=!0,ct(j),g("Failed %s type: %s",C,P.message),ct(null))}}}var ei=Array.isArray;function _t(o){return ei(o)}function ti(o){{var v=typeof Symbol=="function"&&Symbol.toStringTag,C=v&&o[Symbol.toStringTag]||o.constructor.name||"Object";return C}}function ni(o){try{return Ln(o),!1}catch{return!0}}function Ln(o){return""+o}function An(o){if(ni(o))return g("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",ti(o)),Ln(o)}var In=h.ReactCurrentOwner,ri={key:!0,ref:!0,__self:!0,__source:!0},Nn,Dn;function li(o){if(Xe.call(o,"ref")){var v=Object.getOwnPropertyDescriptor(o,"ref").get;if(v&&v.isReactWarning)return!1}return o.ref!==void 0}function ii(o){if(Xe.call(o,"key")){var v=Object.getOwnPropertyDescriptor(o,"key").get;if(v&&v.isReactWarning)return!1}return o.key!==void 0}function oi(o,v){typeof o.ref=="string"&&In.current}function ai(o,v){{var C=function(){Nn||(Nn=!0,g("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",v))};C.isReactWarning=!0,Object.defineProperty(o,"key",{get:C,configurable:!0})}}function ui(o,v){{var C=function(){Dn||(Dn=!0,g("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",v))};C.isReactWarning=!0,Object.defineProperty(o,"ref",{get:C,configurable:!0})}}var si=function(o,v,C,S,j,_,$){var P={$$typeof:t,type:o,key:v,ref:C,props:$,_owner:_};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:S}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:j}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function di(o,v,C,S,j){{var _,$={},P=null,X=null;C!==void 0&&(An(C),P=""+C),ii(v)&&(An(v.key),P=""+v.key),li(v)&&(X=v.ref,oi(v,j));for(_ in v)Xe.call(v,_)&&!ri.hasOwnProperty(_)&&($[_]=v[_]);if(o&&o.defaultProps){var D=o.defaultProps;for(_ in D)$[_]===void 0&&($[_]=D[_])}if(P||X){var W=typeof o=="function"?o.displayName||o.name||"Unknown":o;P&&ai($,W),X&&ui($,W)}return si(o,P,X,j,S,In.current,$)}}var Lt=h.ReactCurrentOwner,Wn=h.ReactDebugCurrentFrame;function Fe(o){if(o){var v=o._owner,C=dt(o.type,o._source,v?v.type:null);Wn.setExtraStackFrame(C)}else Wn.setExtraStackFrame(null)}var At;At=!1;function It(o){return typeof o=="object"&&o!==null&&o.$$typeof===t}function Un(){{if(Lt.current){var o=L(Lt.current.type);if(o)return`
22
-
23
- Check the render method of \``+o+"`."}return""}}function ci(o){return""}var Hn={};function fi(o){{var v=Un();if(!v){var C=typeof o=="string"?o:o.displayName||o.name;C&&(v=`
24
-
25
- Check the top-level render call using <`+C+">.")}return v}}function Bn(o,v){{if(!o._store||o._store.validated||o.key!=null)return;o._store.validated=!0;var C=fi(v);if(Hn[C])return;Hn[C]=!0;var S="";o&&o._owner&&o._owner!==Lt.current&&(S=" It was passed a child from "+L(o._owner.type)+"."),Fe(o),g('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',C,S),Fe(null)}}function Vn(o,v){{if(typeof o!="object")return;if(_t(o))for(var C=0;C<o.length;C++){var S=o[C];It(S)&&Bn(S,v)}else if(It(o))o._store&&(o._store.validated=!0);else if(o){var j=f(o);if(typeof j=="function"&&j!==o.entries)for(var _=j.call(o),$;!($=_.next()).done;)It($.value)&&Bn($.value,v)}}}function mi(o){{var v=o.type;if(v==null||typeof v=="string")return;var C;if(typeof v=="function")C=v.propTypes;else if(typeof v=="object"&&(v.$$typeof===a||v.$$typeof===b))C=v.propTypes;else return;if(C){var S=L(v);Ql(C,o.props,"prop",S,o)}else if(v.PropTypes!==void 0&&!At){At=!0;var j=L(v);g("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",j||"Unknown")}typeof v.getDefaultProps=="function"&&!v.getDefaultProps.isReactClassApproved&&g("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function pi(o){{for(var v=Object.keys(o.props),C=0;C<v.length;C++){var S=v[C];if(S!=="children"&&S!=="key"){Fe(o),g("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",S),Fe(null);break}}o.ref!==null&&(Fe(o),g("Invalid attribute `ref` supplied to `React.Fragment`."),Fe(null))}}var Yn={};function qn(o,v,C,S,j,_){{var $=H(o);if(!$){var P="";(o===void 0||typeof o=="object"&&o!==null&&Object.keys(o).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var X=ci();X?P+=X:P+=Un();var D;o===null?D="null":_t(o)?D="array":o!==void 0&&o.$$typeof===t?(D="<"+(L(o.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):D=typeof o,g("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",D,P)}var W=di(o,v,C,j,_);if(W==null)return W;if($){var ee=v.children;if(ee!==void 0)if(S)if(_t(ee)){for(var ke=0;ke<ee.length;ke++)Vn(ee[ke],o);Object.freeze&&Object.freeze(ee)}else g("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Vn(ee,o)}if(Xe.call(v,"key")){var Se=L(o),G=Object.keys(v).filter(function(wi){return wi!=="key"}),Nt=G.length>0?"{key: someKey, "+G.join(": ..., ")+": ...}":"{key: someKey}";if(!Yn[Se+Nt]){var bi=G.length>0?"{"+G.join(": ..., ")+": ...}":"{}";g(`A props object containing a "key" prop is being spread into JSX:
26
- let props = %s;
27
- <%s {...props} />
28
- React keys must be passed directly to JSX without using spread:
29
- let props = %s;
30
- <%s key={someKey} {...props} />`,Nt,Se,bi,Se),Yn[Se+Nt]=!0}}return o===r?pi(W):mi(W),W}}function hi(o,v,C){return qn(o,v,C,!0)}function vi(o,v,C){return qn(o,v,C,!1)}var gi=vi,Ei=hi;Ae.Fragment=r,Ae.jsx=gi,Ae.jsxs=Ei}()),Ae}process.env.NODE_ENV==="production"?ft.exports=Zn():ft.exports=Qn();var O=ft.exports;function er(e,t){return Array.isArray(e)?e.filter(n=>!t.includes(n)):Object.keys(e).reduce((n,r)=>(t.includes(r)||(n[r]=e[r]),n),{})}function Ut(e,t){return Array.isArray(e)?e.filter(n=>t.includes(n)):t.reduce((n,r)=>(r in e&&(n[r]=e[r]),n),{})}function tr(e){return Array.isArray(e)?e.filter(t=>t!==null):Object.keys(e).reduce((t,n)=>(n in e&&e[n]!==null&&(t[n]=e[n]),t),{})}function nr(e,t=3,n=10){return new Promise((r,l)=>{const u=e();if(u){r(u);return}let s=t*1e3/n;const d=setInterval(()=>{const a=e();a&&(clearInterval(d),r(a)),--s<=0&&(clearInterval(d),l(new Error("Condition not met in time")))},n)})}function Ie(e){return e?(e=e.replace(/_/g,"-"),e=e.replace(/-+/g,"-"),/[A-Z]/.test(e)?(e=e.replace(/\s+/g,"").replace(/_/g,"").replace(/(?:^|\s|-)+([A-Za-z])/g,(t,n)=>n.toUpperCase()),e=e.replace(/(.)(?=[A-Z])/g,"$1-"),e.toLowerCase()):e):""}const Ge=i.createContext(null);Ge.displayName="ModalStackContext";let Ht=null,Bt=null,Ne=null,mt=null,pt=[];const Vt=({children:e})=>{const[t,n]=i.useState([]),[r,l]=i.useState({}),u=m=>{n(f=>{const h=m([...f]),g=x=>{var T;return h.length<2?!0:((T=h.map(F=>({id:F.id,shouldRender:F.shouldRender})).reverse().find(F=>F.shouldRender))==null?void 0:T.id)===x};return h.forEach((x,T)=>{h[T].onTopOfStack=g(x.id),h[T].getParentModal=()=>T<1?null:h.slice(0,T).reverse().find(F=>F.isOpen),h[T].getChildModal=()=>T===h.length-1?null:h.slice(T+1).find(F=>F.isOpen)}),h})};i.useEffect(()=>{pt=t},[t]);class s{constructor(f,h,g,x,T){te(this,"update",(f,h,g)=>{u(x=>x.map(T=>(T.id===this.id&&(T.config=f,T.onCloseCallback=h,T.afterLeaveCallback=g),T)))});te(this,"show",()=>{u(f=>f.map(h=>(h.id===this.id&&!h.isOpen&&(h.isOpen=!0,h.shouldRender=!0),h)))});te(this,"setOpen",f=>{f?this.show():this.close()});te(this,"close",()=>{u(f=>f.map(h=>{var g;return h.id===this.id&&h.isOpen&&(Object.keys(h.listeners).forEach(x=>{h.off(x)}),h.isOpen=!1,(g=h.onCloseCallback)==null||g.call(h)),h}))});te(this,"afterLeave",()=>{this.isOpen||u(f=>{const h=f.map(g=>{var x;return g.id===this.id&&!g.isOpen&&(g.shouldRender=!1,(x=g.afterLeaveCallback)==null||x.call(g),g.afterLeaveCallback=null),g});return this.index===0?[]:h})});te(this,"on",(f,h)=>{f=Ie(f),this.listeners[f]=this.listeners[f]??[],this.listeners[f].push(h)});te(this,"off",(f,h)=>{var g;f=Ie(f),h?this.listeners[f]=((g=this.listeners[f])==null?void 0:g.filter(x=>x!==h))??[]:delete this.listeners[f]});te(this,"emit",(f,...h)=>{var g;(g=this.listeners[Ie(f)])==null||g.forEach(x=>x(...h))});te(this,"registerEventListenersFromProps",f=>{const h=[];return Object.keys(f).filter(g=>g.startsWith("on")).forEach(g=>{const x=Ie(g).replace(/^on-/,"");this.on(x,f[g]),h.push(()=>this.off(x,f[g]))}),()=>h.forEach(g=>g())});te(this,"reload",(f={})=>{var g;let h=Object.keys(this.response.props);f.only&&(h=Ut(h,f.only)),f.except&&(h=er(h,f.except)),(g=this.response)!=null&&g.url&&le.get(this.response.url,{headers:{Accept:"text/html, application/xhtml+xml","X-Inertia":!0,"X-Inertia-Partial-Component":this.response.component,"X-Inertia-Version":this.response.version,"X-Inertia-Partial-Data":h.join(","),"X-InertiaUI-Modal":!0,"X-InertiaUI-Modal-Use-Router":0,"X-InertiaUI-Modal-Base-Url":Ne}}).then(x=>{this.updateProps(x.data.props)})});te(this,"updateProps",f=>{Object.assign(this.props,f),u(h=>h)});this.id=s.generateId(),this.isOpen=!1,this.shouldRender=!1,this.listeners={},this.component=f,this.props=h.props,this.response=h,this.config=g,this.onCloseCallback=x,this.afterLeaveCallback=T,this.index=-1,this.getParentModal=()=>null,this.getChildModal=()=>null,this.onTopOfStack=!0}static generateId(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`inertiaui_modal_${crypto.randomUUID()}`:`inertiaui_modal_${Date.now().toString(36)}_${Math.random().toString(36).substr(2,9)}`}}const d=(m,f={},h=null,g=null)=>Bt(m.component).then(x=>a(x,m,f,h,g)),a=(m,f,h,g,x)=>{const T=new s(m,f,h,g,x);return T.index=t.length,u(F=>[...F,T]),T.show(),T};function p(m,f,h,g){if(!r[m])throw new Error(`The local modal "${m}" has not been registered.`);const x=a(null,{},f,h,g);return x.name=m,r[m].callback(x),x}const c=(m,f={})=>b(m,f.method??"get",f.data??{},f.headers??{},f.config??{},f.onClose,f.onAfterLeave,f.queryStringArrayFormat??"brackets",f.navigate??Ke("navigate")).then(h=>{const g=f.listeners??{};return Object.keys(g).forEach(x=>{const T=Ie(x);h.on(T,g[x])}),h}),b=(m,f,h={},g={},x={},T=null,F=null,Y="brackets",U=!1)=>new Promise((J,R)=>{if(m.startsWith("#")){J(p(m.substring(1),x,T,F));return}const[H,q]=Xn.mergeDataIntoQueryString(f,m||"",h,Y);let K=U&&t.length===0;if(t.length===0&&(Ne=typeof window<"u"?window.location.href:""),g={...g,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,"X-Inertia-Version":Ht,"X-InertiaUI-Modal":!0,"X-InertiaUI-Modal-Use-Router":K?1:0,"X-InertiaUI-Modal-Base-Url":Ne},K)return mt=null,Oe.router.visit(H,{method:f,data:q,headers:g,preserveScroll:!0,preserveState:!0,onError:R,onFinish:()=>{nr(()=>mt).then(L=>{const M=L.onCloseCallback,I=L.afterLeaveCallback;L.update(x,()=>{T==null||T(),M==null||M()},()=>{F==null||F(),I==null||I()}),J(L)})}});le({url:H,method:f,data:q,headers:g}).then(L=>J(d(L.data,x,T,F))).catch(L=>{R(L)})}),E={stack:t,localModals:r,push:a,pushFromResponseData:d,closeAll:()=>{pt.reverse().forEach(m=>m.close())},reset:()=>u(()=>[]),visit:b,visitModal:c,registerLocalModal:(m,f)=>{l(h=>({...h,[m]:{name:m,callback:f}}))},removeLocalModal:m=>{l(f=>{const h={...f};return delete h[m],h})}};return O.jsx(Ge.Provider,{value:E,children:e})},De=()=>{const e=i.useContext(Ge);if(e===null)throw new Error("useModalStack must be used within a ModalStackProvider");return e},Yt=["closeButton","closeExplicitly","maxWidth","paddingClasses","panelClasses","position","slideover"],qt=e=>{e.initialPage&&(Ht=e.initialPage.version),e.resolveComponent&&(Bt=e.resolveComponent)},rr=(e,t)=>{qt(t);const n=({Component:r,props:l,key:u})=>{const s=()=>{const d=i.createElement(r,{key:u,...l});return typeof r.layout=="function"?r.layout(d):Array.isArray(r.layout)?r.layout.concat(d).reverse().reduce((p,c)=>i.createElement(c,l,p)):d};return O.jsxs(O.Fragment,{children:[s(),O.jsx(Xt,{})]})};return O.jsx(Vt,{children:O.jsx(e,{...t,children:n})})},Xt=({children:e})=>{var d;const t=i.useContext(Ge);let n=!1,r=!1;i.useEffect(()=>Oe.router.on("start",()=>n=!0),[]),i.useEffect(()=>Oe.router.on("finish",()=>n=!1),[]),i.useEffect(()=>Oe.router.on("navigate",function(a){const p=a.detail.page.props._inertiaui_modal;if(!p){r&&t.closeAll();return}r=p,Ne=p.baseUrl,t.pushFromResponseData(p,{},()=>{if(!p.baseUrl){console.error("No base url in modal response data so cannot navigate back");return}!n&&window.location.href!==p.baseUrl&&Oe.router.visit(p.baseUrl,{preserveScroll:!0,preserveState:!0})}).then(c=>{mt=c})}),[]);const l=a=>(pt.length&&(a.headers["X-InertiaUI-Modal-Base-Url"]=Ne),a);i.useEffect(()=>(le.interceptors.request.use(l),()=>le.interceptors.request.eject(l)),[]);const u=Oe.usePage(),s=i.useRef();return i.useEffect(()=>{var c,b;const a=(c=u.props)==null?void 0:c._inertiaui_modal,p=s.current;s.current=a,a&&p&&a.component===p.component&&a.url===p.url&&((b=t.stack[0])==null||b.updateProps(a.props??{}))},[(d=u.props)==null?void 0:d._inertiaui_modal]),O.jsxs(O.Fragment,{children:[e,t.stack.length>0&&O.jsx(zt,{index:0})]})},ht=i.createContext(null);ht.displayName="ModalIndexContext";const vt=()=>{const e=i.useContext(ht);if(e===void 0)throw new Error("useModalIndex must be used within a ModalIndexProvider");return e},zt=({index:e})=>{const{stack:t}=De(),n=i.useMemo(()=>t[e],[t,e]);return(n==null?void 0:n.component)&&O.jsx(ht.Provider,{value:e,children:O.jsx(n.component,{...n.props,onModalEvent:(...r)=>n.emit(...r)})})},gt=i.forwardRef(({name:e,children:t,...n},r)=>{const l=vt(),{stack:u,registerLocalModal:s,removeLocalModal:d}=De(),[a,p]=i.useState(null),c=i.useMemo(()=>e?a:u[l],[e,a,l,u]),b=i.useMemo(()=>{var m;return(m=u.find(f=>f.shouldRender&&f.index>(c==null?void 0:c.index)))==null?void 0:m.index},[l,u]),y=i.useMemo(()=>(c==null?void 0:c.config.slideover)??n.slideover??Ke("type")==="slideover",[n.slideover]),w=i.useMemo(()=>({slideover:y,closeButton:n.closeButton??Pe(y,"closeButton"),closeExplicitly:n.closeExplicitly??Pe(y,"closeExplicitly"),maxWidth:n.maxWidth??Pe(y,"maxWidth"),paddingClasses:n.paddingClasses??Pe(y,"paddingClasses"),panelClasses:n.panelClasses??Pe(y,"panelClasses"),position:n.position??Pe(y,"position"),...c==null?void 0:c.config}),[n,c==null?void 0:c.config]);i.useEffect(()=>{if(e){let m=null;return s(e,f=>{m=f.registerEventListenersFromProps(n),p(f)}),()=>{m==null||m(),m=null,d(e)}}return c.registerEventListenersFromProps(n)},[e]);const E=i.useRef(c);return i.useEffect(()=>{E.current=c},[c]),i.useImperativeHandle(r,()=>({afterLeave:()=>{var m;return(m=E.current)==null?void 0:m.afterLeave()},close:()=>{var m;return(m=E.current)==null?void 0:m.close()},emit:(...m)=>{var f;return(f=E.current)==null?void 0:f.emit(...m)},getChildModal:()=>{var m;return(m=E.current)==null?void 0:m.getChildModal()},getParentModal:()=>{var m;return(m=E.current)==null?void 0:m.getParentModal()},reload:(...m)=>{var f;return(f=E.current)==null?void 0:f.reload(...m)},setOpen:()=>{var m;return(m=E.current)==null?void 0:m.setOpen()},get id(){var m;return(m=E.current)==null?void 0:m.id},get index(){var m;return(m=E.current)==null?void 0:m.index},get isOpen(){var m;return(m=E.current)==null?void 0:m.isOpen},get config(){var m;return(m=E.current)==null?void 0:m.config},get modalContext(){return E.current},get onTopOfStack(){var m;return(m=E.current)==null?void 0:m.onTopOfStack},get shouldRender(){var m;return(m=E.current)==null?void 0:m.shouldRender}}),[c]),(c==null?void 0:c.shouldRender)&&O.jsxs(O.Fragment,{children:[typeof t=="function"?t({afterLeave:c.afterLeave,close:c.close,config:w,emit:c.emit,getChildModal:c.getChildModal,getParentModal:c.getParentModal,id:c.id,index:c.index,isOpen:c.isOpen,modalContext:c,onTopOfStack:c.onTopOfStack,reload:c.reload,setOpen:c.setOpen,shouldRender:c.shouldRender}):t,b&&O.jsx(zt,{index:b})]})});gt.displayName="HeadlessModal";function Kt(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;t<l;t++)e[t]&&(n=Kt(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Je(){for(var e,t,n=0,r="",l=arguments.length;n<l;n++)(e=arguments[n])&&(t=Kt(e))&&(r&&(r+=" "),r+=t);return r}var lr=Object.defineProperty,ir=(e,t,n)=>t in e?lr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Et=(e,t,n)=>(ir(e,typeof t!="symbol"?t+"":t,n),n);let or=class{constructor(){Et(this,"current",this.detect()),Et(this,"handoffState","pending"),Et(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},pe=new or;function Re(e){return pe.isServer?null:e instanceof Node?e.ownerDocument:e!=null&&e.hasOwnProperty("current")&&e.current instanceof Node?e.current.ownerDocument:document}function Ze(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function se(){let e=[],t={addEventListener(n,r,l,u){return n.addEventListener(r,l,u),t.add(()=>n.removeEventListener(r,l,u))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);return t.add(()=>cancelAnimationFrame(r))},nextFrame(...n){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...n))},setTimeout(...n){let r=setTimeout(...n);return t.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return Ze(()=>{r.current&&n[0]()}),t.add(()=>{r.current=!1})},style(n,r,l){let u=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:l}),this.add(()=>{Object.assign(n.style,{[r]:u})})},group(n){let r=se();return n(r),this.add(()=>r.dispose())},add(n){return e.includes(n)||e.push(n),()=>{let r=e.indexOf(n);if(r>=0)for(let l of e.splice(r,1))l()}},dispose(){for(let n of e.splice(0))n()}};return t}function bt(){let[e]=i.useState(se);return i.useEffect(()=>()=>e.dispose(),[e]),e}let V=(e,t)=>{pe.isServer?i.useEffect(e,t):i.useLayoutEffect(e,t)};function he(e){let t=i.useRef(e);return V(()=>{t.current=e},[e]),t}let A=function(e){let t=he(e);return i.useCallback((...n)=>t.current(...n),[t])},ar=i.createContext(void 0);function ur(){return i.useContext(ar)}function wt(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}function de(e,t,...n){if(e in t){let l=t[e];return typeof l=="function"?l(...n):l}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(l=>`"${l}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,de),r}var Qe=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(Qe||{}),ce=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(ce||{});function Q(){let e=dr();return i.useCallback(t=>sr({mergeRefs:e,...t}),[e])}function sr({ourProps:e,theirProps:t,slot:n,defaultTag:r,features:l,visible:u=!0,name:s,mergeRefs:d}){d=d??cr;let a=Gt(t,e);if(u)return et(a,n,r,s,d);let p=l??0;if(p&2){let{static:c=!1,...b}=a;if(c)return et(b,n,r,s,d)}if(p&1){let{unmount:c=!0,...b}=a;return de(c?0:1,{0(){return null},1(){return et({...b,hidden:!0,style:{display:"none"}},n,r,s,d)}})}return et(a,n,r,s,d)}function et(e,t={},n,r,l){let{as:u=n,children:s,refName:d="ref",...a}=yt(e,["unmount","static"]),p=e.ref!==void 0?{[d]:e.ref}:{},c=typeof s=="function"?s(t):s;"className"in a&&a.className&&typeof a.className=="function"&&(a.className=a.className(t)),a["aria-labelledby"]&&a["aria-labelledby"]===a.id&&(a["aria-labelledby"]=void 0);let b={};if(t){let y=!1,w=[];for(let[E,m]of Object.entries(t))typeof m=="boolean"&&(y=!0),m===!0&&w.push(E.replace(/([A-Z])/g,f=>`-${f.toLowerCase()}`));if(y){b["data-headlessui-state"]=w.join(" ");for(let E of w)b[`data-${E}`]=""}}if(u===i.Fragment&&(Object.keys(ve(a)).length>0||Object.keys(ve(b)).length>0))if(!i.isValidElement(c)||Array.isArray(c)&&c.length>1){if(Object.keys(ve(a)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${r} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(ve(a)).concat(Object.keys(ve(b))).map(y=>` - ${y}`).join(`
31
- `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(y=>` - ${y}`).join(`
1
+ (function(C,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react"),require("react/jsx-runtime"),require("axios"),require("@inertiajs/react"),require("@inertiajs/core")):typeof define=="function"&&define.amd?define(["exports","react","react/jsx-runtime","axios","@inertiajs/react","@inertiajs/core"],s):(C=typeof globalThis<"u"?globalThis:C||self,s(C.InertiaUIModal={},C.React,C.jsxRuntime,C.Axios,C.react,C.core))})(this,function(C,s,T,he,te,Mt){"use strict";var Yn=Object.defineProperty;var Jn=(C,s,T)=>s in C?Yn(C,s,{enumerable:!0,configurable:!0,writable:!0,value:T}):C[s]=T;var q=(C,s,T)=>Jn(C,typeof s!="symbol"?s+"":s,T);function At(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const ie=At(s),se={type:"modal",navigate:!1,modal:{closeButton:!0,closeExplicitly:!1,maxWidth:"2xl",paddingClasses:"p-4 sm:p-6",panelClasses:"bg-white rounded",position:"center"},slideover:{closeButton:!0,closeExplicitly:!1,maxWidth:"md",paddingClasses:"p-4 sm:p-6",panelClasses:"bg-white min-h-screen",position:"right"}};class Lt{constructor(){this.config={},this.reset()}reset(){this.config=JSON.parse(JSON.stringify(se))}put(e,n){if(typeof e=="object"){this.config={type:e.type??se.type,navigate:e.navigate??se.navigate,modal:{...se.modal,...e.modal??{}},slideover:{...se.slideover,...e.slideover??{}}};return}const r=e.split(".");let i=this.config;for(let l=0;l<r.length-1;l++)i=i[r[l]]=i[r[l]]||{};i[r[r.length-1]]=n}get(e){if(typeof e>"u")return this.config;const n=e.split(".");let r=this.config;for(const i of n){if(r[i]===void 0)return null;r=r[i]}return r}}const ve=new Lt,jt=()=>ve.reset(),Dt=(t,e)=>ve.put(t,e),pe=t=>ve.get(t),ne=(t,e)=>ve.get(t?`slideover.${e}`:`modal.${e}`),ze={modifiedElements:[],bodyState:{hasOverflowHidden:!1,hasPointerEventsNone:!1,originalPaddingRight:""},prepare(){const t=window.innerWidth-document.documentElement.clientWidth;this.bodyState.originalPaddingRight=document.body.style.paddingRight;const e=parseInt(window.getComputedStyle(document.body).paddingRight,10);document.body.style.paddingRight=`${e+t}px`,document.body.classList.contains("overflow-hidden")||(document.body.classList.add("overflow-hidden"),this.bodyState.hasOverflowHidden=!0),document.body.classList.contains("pointer-events-none")||(document.body.classList.add("pointer-events-none"),this.bodyState.hasPointerEventsNone=!0),Array.from(document.body.children).forEach(n=>{!n.classList.contains("im-dialog")&&n.getAttribute("aria-hidden")!=="true"&&(n.setAttribute("aria-hidden","true"),this.modifiedElements.push(n))})},cleanup(){this.bodyState.hasOverflowHidden&&(document.body.classList.remove("overflow-hidden"),this.bodyState.hasOverflowHidden=!1),this.bodyState.hasPointerEventsNone&&(document.body.classList.remove("pointer-events-none"),this.bodyState.hasPointerEventsNone=!1),document.body.style.paddingRight=this.bodyState.originalPaddingRight,this.bodyState.originalPaddingRight="",this.modifiedElements.forEach(t=>{t.removeAttribute("aria-hidden")}),this.modifiedElements=[]}};function Me(t="inertiaui_modal_"){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`${t}${crypto.randomUUID()}`:`${t}${Date.now().toString(36)}_${Math.random().toString(36).substr(2,9)}`}function $t(t,e){return Array.isArray(t)?t.filter(n=>!e.includes(n)):Object.keys(t).reduce((n,r)=>(e.includes(r)||(n[r]=t[r]),n),{})}function Ge(t,e){return Array.isArray(t)?t.filter(n=>e.includes(n)):e.reduce((n,r)=>(r in t&&(n[r]=t[r]),n),{})}function Ut(t){return Array.isArray(t)?t.filter(e=>e!==null):Object.keys(t).reduce((e,n)=>(n in t&&t[n]!==null&&(e[n]=t[n]),e),{})}function Wt(t,e=3,n=10){return new Promise((r,i)=>{const l=t();if(l){r(l);return}let a=e*1e3/n;const v=setInterval(()=>{const o=t();o&&(clearInterval(v),r(o)),--a<=0&&(clearInterval(v),i(new Error("Condition not met in time")))},n)})}function le(t){return t?(t=t.replace(/_/g,"-"),t=t.replace(/-+/g,"-"),/[A-Z]/.test(t)?(t=t.replace(/\s+/g,"").replace(/_/g,"").replace(/(?:^|\s|-)+([A-Za-z])/g,(e,n)=>n.toUpperCase()),t=t.replace(/(.)(?=[A-Z])/g,"$1-"),t.toLowerCase()):t):""}const me=s.createContext(null);me.displayName="ModalStackContext";let Ze=null,Ye=null,oe=null,Ae=null,Le=[],re={};const Je=({children:t})=>{const[e,n]=s.useState([]),[r,i]=s.useState({}),l=y=>{n(c=>{const h=y([...c]),p=w=>{var N;return h.length<2?!0:((N=h.map(m=>({id:m.id,shouldRender:m.shouldRender})).reverse().find(m=>m.shouldRender))==null?void 0:N.id)===w};return h.forEach((w,N)=>{h[N].onTopOfStack=p(w.id),h[N].getParentModal=()=>N<1?null:h.slice(0,N).reverse().find(m=>m.isOpen),h[N].getChildModal=()=>N===h.length-1?null:h.slice(N+1).find(m=>m.isOpen)}),h})};s.useEffect(()=>{Le=e},[e]);class a{constructor(c,h,p,w,N){q(this,"show",()=>{l(c=>c.map(h=>(h.id===this.id&&!h.isOpen&&(h.isOpen=!0,h.shouldRender=!0),h)))});q(this,"setOpen",c=>{c?this.show():this.close()});q(this,"close",()=>{l(c=>c.map(h=>{var p;return h.id===this.id&&h.isOpen&&(Object.keys(h.listeners).forEach(w=>{h.off(w)}),h.isOpen=!1,(p=h.onCloseCallback)==null||p.call(h)),h}))});q(this,"afterLeave",()=>{this.isOpen||l(c=>{const h=c.map(p=>{var w;return p.id===this.id&&!p.isOpen&&(p.shouldRender=!1,(w=p.afterLeaveCallback)==null||w.call(p),p.afterLeaveCallback=null),p});return this.index===0?[]:h})});q(this,"on",(c,h)=>{c=le(c),this.listeners[c]=this.listeners[c]??[],this.listeners[c].push(h)});q(this,"off",(c,h)=>{var p;c=le(c),h?this.listeners[c]=((p=this.listeners[c])==null?void 0:p.filter(w=>w!==h))??[]:delete this.listeners[c]});q(this,"emit",(c,...h)=>{var p;(p=this.listeners[le(c)])==null||p.forEach(w=>w(...h))});q(this,"registerEventListenersFromProps",c=>{const h=[];return Object.keys(c).filter(p=>p.startsWith("on")).forEach(p=>{const w=le(p).replace(/^on-/,"");this.on(w,c[p]),h.push(()=>this.off(w,c[p]))}),()=>h.forEach(p=>p())});q(this,"reload",(c={})=>{var p;let h=Object.keys(this.response.props);c.only&&(h=Ge(h,c.only)),c.except&&(h=$t(h,c.except)),(p=this.response)!=null&&p.url&&he.get(this.response.url,{headers:{Accept:"text/html, application/xhtml+xml","X-Inertia":!0,"X-Inertia-Partial-Component":this.response.component,"X-Inertia-Version":this.response.version,"X-Inertia-Partial-Data":h.join(","),"X-InertiaUI-Modal":Me(),"X-InertiaUI-Modal-Use-Router":0,"X-InertiaUI-Modal-Base-Url":oe}}).then(w=>{this.updateProps(w.data.props)})});q(this,"updateProps",c=>{Object.assign(this.props,c),l(h=>h)});if(this.id=h.id??Me(),this.isOpen=!1,this.shouldRender=!1,this.listeners={},this.component=c,this.props=h.props,this.response=h,this.config=p??{},this.onCloseCallback=w,this.afterLeaveCallback=N,re[this.id]){this.config={...this.config,...re[this.id].config??{}};const m=re[this.id].onClose,P=re[this.id].onAfterLeave;m&&(this.onCloseCallback=w?()=>{w(),m()}:m),P&&(this.afterLeaveCallback=N?()=>{N(),P()}:P),delete re[this.id]}this.index=-1,this.getParentModal=()=>null,this.getChildModal=()=>null,this.onTopOfStack=!0}static generateId(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`inertiaui_modal_${crypto.randomUUID()}`:`inertiaui_modal_${Date.now().toString(36)}_${Math.random().toString(36).substr(2,9)}`}}const v=(y,c={},h=null,p=null)=>Ye(y.component).then(w=>o(w,y,c,h,p)),o=(y,c,h,p,w)=>{const N=new a(y,c,h,p,w);return N.index=e.length,l(m=>[...m,N]),N.show(),N};function b(y,c,h,p){if(!r[y])throw new Error(`The local modal "${y}" has not been registered.`);const w=o(null,{},c,h,p);return w.name=y,r[y].callback(w),w}const g=(y,c={})=>E(y,c.method??"get",c.data??{},c.headers??{},c.config??{},c.onClose,c.onAfterLeave,c.queryStringArrayFormat??"brackets",c.navigate??pe("navigate")).then(h=>{const p=c.listeners??{};return Object.keys(p).forEach(w=>{const N=le(w);h.on(N,p[w])}),h}),E=(y,c,h={},p={},w={},N=null,m=null,P="brackets",j=!1)=>{const B=Me();return new Promise((H,U)=>{if(y.startsWith("#")){H(b(y.substring(1),w,N,m));return}const[W,k]=Mt.mergeDataIntoQueryString(c,y||"",h,P);let u=j&&e.length===0;if(e.length===0&&(oe=typeof window<"u"?window.location.href:""),p={...p,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,"X-Inertia-Version":Ze,"X-InertiaUI-Modal":B,"X-InertiaUI-Modal-Use-Router":u?1:0,"X-InertiaUI-Modal-Base-Url":oe},u)return Ae=null,re[B]={config:w,onClose:N,onAfterLeave:m},te.router.visit(W,{method:c,data:k,headers:p,preserveScroll:!0,preserveState:!0,onError:U,onFinish:()=>{Wt(()=>Ae).then(H)}});he({url:W,method:c,data:k,headers:p}).then(d=>H(v(d.data,w,N,m))).catch(d=>{U(d)})})},f={stack:e,localModals:r,push:o,pushFromResponseData:v,closeAll:()=>{Le.reverse().forEach(y=>y.close())},reset:()=>l(()=>[]),visit:E,visitModal:g,registerLocalModal:(y,c)=>{i(h=>({...h,[y]:{name:y,callback:c}}))},removeLocalModal:y=>{i(c=>{const h={...c};return delete h[y],h})}};return T.jsx(me.Provider,{value:f,children:t})},ue=()=>{const t=s.useContext(me);if(t===null)throw new Error("useModalStack must be used within a ModalStackProvider");return t},Qe=["closeButton","closeExplicitly","maxWidth","paddingClasses","panelClasses","position","slideover"],Re=t=>{t.initialPage&&(Ze=t.initialPage.version),t.resolveComponent&&(Ye=t.resolveComponent)},Bt=(t,e)=>{Re(e);const n=({Component:r,props:i,key:l})=>{const a=()=>{const v=s.createElement(r,{key:l,...i});return typeof r.layout=="function"?r.layout(v):Array.isArray(r.layout)?r.layout.concat(v).reverse().reduce((b,g)=>s.createElement(g,i,b)):v};return T.jsxs(T.Fragment,{children:[a(),T.jsx(et,{})]})};return T.jsx(Je,{children:T.jsx(t,{...e,children:n})})},et=({children:t})=>{var v;const e=s.useContext(me);let n=!1,r=!1;s.useEffect(()=>te.router.on("start",()=>n=!0),[]),s.useEffect(()=>te.router.on("finish",()=>n=!1),[]),s.useEffect(()=>te.router.on("navigate",function(o){const b=o.detail.page.props._inertiaui_modal;if(!b){r&&e.closeAll();return}r=b,oe=b.baseUrl,e.pushFromResponseData(b,{},()=>{if(!b.baseUrl){console.error("No base url in modal response data so cannot navigate back");return}!n&&window.location.href!==b.baseUrl&&te.router.visit(b.baseUrl,{preserveScroll:!0,preserveState:!0})}).then(g=>{Ae=g})}),[]);const i=o=>(Le.length&&(o.headers["X-InertiaUI-Modal-Base-Url"]=oe),o);s.useEffect(()=>(he.interceptors.request.use(i),()=>he.interceptors.request.eject(i)),[]);const l=te.usePage(),a=s.useRef();return s.useEffect(()=>{var g,E;const o=(g=l.props)==null?void 0:g._inertiaui_modal,b=a.current;a.current=o,o&&b&&o.component===b.component&&o.url===b.url&&((E=e.stack[0])==null||E.updateProps(o.props??{}))},[(v=l.props)==null?void 0:v._inertiaui_modal]),T.jsxs(T.Fragment,{children:[t,e.stack.length>0&&T.jsx(tt,{index:0})]})},je=s.createContext(null);je.displayName="ModalIndexContext";const De=()=>{const t=s.useContext(je);if(t===void 0)throw new Error("useModalIndex must be used within a ModalIndexProvider");return t},tt=({index:t})=>{const{stack:e}=ue(),n=s.useMemo(()=>e[t],[e,t]);return(n==null?void 0:n.component)&&T.jsx(je.Provider,{value:t,children:T.jsx(n.component,{...n.props,onModalEvent:(...r)=>n.emit(...r)})})},$e=s.forwardRef(({name:t,children:e,onFocus:n=null,onBlur:r=null,onClose:i=null,onSuccess:l=null,...a},v)=>{const o=De(),{stack:b,registerLocalModal:g,removeLocalModal:E}=ue(),[F,S]=s.useState(null),f=s.useMemo(()=>t?F:b[o],[t,F,o,b]),y=s.useMemo(()=>{var m;return(m=b.find(P=>P.shouldRender&&P.index>(f==null?void 0:f.index)))==null?void 0:m.index},[o,b]),c=s.useMemo(()=>(f==null?void 0:f.config.slideover)??a.slideover??pe("type")==="slideover",[a.slideover]),h=s.useMemo(()=>({slideover:c,closeButton:a.closeButton??ne(c,"closeButton"),closeExplicitly:a.closeExplicitly??ne(c,"closeExplicitly"),maxWidth:a.maxWidth??ne(c,"maxWidth"),paddingClasses:a.paddingClasses??ne(c,"paddingClasses"),panelClasses:a.panelClasses??ne(c,"panelClasses"),position:a.position??ne(c,"position"),...f==null?void 0:f.config}),[a,f==null?void 0:f.config]);s.useEffect(()=>{if(t){let m=null;return g(t,P=>{m=P.registerEventListenersFromProps(a),S(P)}),()=>{m==null||m(),m=null,E(t)}}return f.registerEventListenersFromProps(a)},[t]);const p=s.useRef(f);s.useEffect(()=>{p.current=f},[f]),s.useEffect(()=>{f!==null&&(f.isOpen?l==null||l():i==null||i())},[f==null?void 0:f.isOpen]);const[w,N]=s.useState(!1);return s.useEffect(()=>{w&&f!==null&&f.isOpen&&(f.onTopOfStack?n==null||n():r==null||r()),N(!0)},[f==null?void 0:f.onTopOfStack]),s.useImperativeHandle(v,()=>({afterLeave:()=>{var m;return(m=p.current)==null?void 0:m.afterLeave()},close:()=>{var m;return(m=p.current)==null?void 0:m.close()},emit:(...m)=>{var P;return(P=p.current)==null?void 0:P.emit(...m)},getChildModal:()=>{var m;return(m=p.current)==null?void 0:m.getChildModal()},getParentModal:()=>{var m;return(m=p.current)==null?void 0:m.getParentModal()},reload:(...m)=>{var P;return(P=p.current)==null?void 0:P.reload(...m)},setOpen:()=>{var m;return(m=p.current)==null?void 0:m.setOpen()},get id(){var m;return(m=p.current)==null?void 0:m.id},get index(){var m;return(m=p.current)==null?void 0:m.index},get isOpen(){var m;return(m=p.current)==null?void 0:m.isOpen},get config(){var m;return(m=p.current)==null?void 0:m.config},get modalContext(){return p.current},get onTopOfStack(){var m;return(m=p.current)==null?void 0:m.onTopOfStack},get shouldRender(){var m;return(m=p.current)==null?void 0:m.shouldRender}}),[f]),(f==null?void 0:f.shouldRender)&&T.jsxs(T.Fragment,{children:[typeof e=="function"?e({afterLeave:f.afterLeave,close:f.close,config:h,emit:f.emit,getChildModal:f.getChildModal,getParentModal:f.getParentModal,id:f.id,index:f.index,isOpen:f.isOpen,modalContext:f,onTopOfStack:f.onTopOfStack,reload:f.reload,setOpen:f.setOpen,shouldRender:f.shouldRender}):e,y&&T.jsx(tt,{index:y})]})});$e.displayName="HeadlessModal";function nt(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=nt(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function be(){for(var t,e,n=0,r="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=nt(t))&&(r&&(r+=" "),r+=e);return r}var Ht=Object.defineProperty,Kt=(t,e,n)=>e in t?Ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ue=(t,e,n)=>(Kt(t,typeof e!="symbol"?e+"":e,n),n);let qt=class{constructor(){Ue(this,"current",this.detect()),Ue(this,"handoffState","pending"),Ue(this,"currentId",0)}set(e){this.current!==e&&(this.handoffState="pending",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},ge=new qt;function Xt(t){typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t).catch(e=>setTimeout(()=>{throw e}))}function ye(){let t=[],e={addEventListener(n,r,i,l){return n.addEventListener(r,i,l),e.add(()=>n.removeEventListener(r,i,l))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);return e.add(()=>cancelAnimationFrame(r))},nextFrame(...n){return e.requestAnimationFrame(()=>e.requestAnimationFrame(...n))},setTimeout(...n){let r=setTimeout(...n);return e.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return Xt(()=>{r.current&&n[0]()}),e.add(()=>{r.current=!1})},style(n,r,i){let l=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:i}),this.add(()=>{Object.assign(n.style,{[r]:l})})},group(n){let r=ye();return n(r),this.add(()=>r.dispose())},add(n){return t.includes(n)||t.push(n),()=>{let r=t.indexOf(n);if(r>=0)for(let i of t.splice(r,1))i()}},dispose(){for(let n of t.splice(0))n()}};return e}function rt(){let[t]=s.useState(ye);return s.useEffect(()=>()=>t.dispose(),[t]),t}let z=(t,e)=>{ge.isServer?s.useEffect(t,e):s.useLayoutEffect(t,e)};function at(t){let e=s.useRef(t);return z(()=>{e.current=t},[t]),e}let _=function(t){let e=at(t);return s.useCallback((...n)=>e.current(...n),[e])};function We(...t){return Array.from(new Set(t.flatMap(e=>typeof e=="string"?e.split(" "):[]))).filter(Boolean).join(" ")}function we(t,e,...n){if(t in e){let i=e[t];return typeof i=="function"?i(...n):i}let r=new Error(`Tried to handle "${t}" but there is no handler defined. Only defined handlers are: ${Object.keys(e).map(i=>`"${i}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,we),r}var it=(t=>(t[t.None=0]="None",t[t.RenderStrategy=1]="RenderStrategy",t[t.Static=2]="Static",t))(it||{}),G=(t=>(t[t.Unmount=0]="Unmount",t[t.Hidden=1]="Hidden",t))(G||{});function st(){let t=Vt();return s.useCallback(e=>_t({mergeRefs:t,...e}),[t])}function _t({ourProps:t,theirProps:e,slot:n,defaultTag:r,features:i,visible:l=!0,name:a,mergeRefs:v}){v=v??zt;let o=lt(e,t);if(l)return xe(o,n,r,a,v);let b=i??0;if(b&2){let{static:g=!1,...E}=o;if(g)return xe(E,n,r,a,v)}if(b&1){let{unmount:g=!0,...E}=o;return we(g?0:1,{0(){return null},1(){return xe({...E,hidden:!0,style:{display:"none"}},n,r,a,v)}})}return xe(o,n,r,a,v)}function xe(t,e={},n,r,i){let{as:l=n,children:a,refName:v="ref",...o}=He(t,["unmount","static"]),b=t.ref!==void 0?{[v]:t.ref}:{},g=typeof a=="function"?a(e):a;"className"in o&&o.className&&typeof o.className=="function"&&(o.className=o.className(e)),o["aria-labelledby"]&&o["aria-labelledby"]===o.id&&(o["aria-labelledby"]=void 0);let E={};if(e){let F=!1,S=[];for(let[f,y]of Object.entries(e))typeof y=="boolean"&&(F=!0),y===!0&&S.push(f.replace(/([A-Z])/g,c=>`-${c.toLowerCase()}`));if(F){E["data-headlessui-state"]=S.join(" ");for(let f of S)E[`data-${f}`]=""}}if(l===s.Fragment&&(Object.keys(Y(o)).length>0||Object.keys(Y(E)).length>0))if(!s.isValidElement(g)||Array.isArray(g)&&g.length>1){if(Object.keys(Y(o)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${r} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(Y(o)).concat(Object.keys(Y(E))).map(F=>` - ${F}`).join(`
2
+ `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(F=>` - ${F}`).join(`
32
3
  `)].join(`
33
- `))}else{let y=c.props,w=y==null?void 0:y.className,E=typeof w=="function"?(...h)=>wt(w(...h),a.className):wt(w,a.className),m=E?{className:E}:{},f=Gt(c.props,ve(yt(a,["ref"])));for(let h in b)h in f&&delete b[h];return i.cloneElement(c,Object.assign({},f,b,p,{ref:l(fr(c),p.ref)},m))}return i.createElement(u,Object.assign({},yt(a,["ref"]),u!==i.Fragment&&p,u!==i.Fragment&&b),c)}function dr(){let e=i.useRef([]),t=i.useCallback(n=>{for(let r of e.current)r!=null&&(typeof r=="function"?r(n):r.current=n)},[]);return(...n)=>{if(!n.every(r=>r==null))return e.current=n,t}}function cr(...e){return e.every(t=>t==null)?void 0:t=>{for(let n of e)n!=null&&(typeof n=="function"?n(t):n.current=t)}}function Gt(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let l in r)l.startsWith("on")&&typeof r[l]=="function"?(n[l]!=null||(n[l]=[]),n[l].push(r[l])):t[l]=r[l];if(t.disabled||t["aria-disabled"])for(let r in n)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(r)&&(n[r]=[l=>{var u;return(u=l==null?void 0:l.preventDefault)==null?void 0:u.call(l)}]);for(let r in n)Object.assign(t,{[r](l,...u){let s=n[r];for(let d of s){if((l instanceof Event||(l==null?void 0:l.nativeEvent)instanceof Event)&&l.defaultPrevented)return;d(l,...u)}}});return t}function z(e){var t;return Object.assign(i.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function ve(e){let t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function yt(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}function fr(e){return i.version.split(".")[0]>="19"?e.props.ref:e.ref}let mr="span";var tt=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(tt||{});function pr(e,t){var n;let{features:r=1,...l}=e,u={ref:t,"aria-hidden":(r&2)===2?!0:(n=l["aria-hidden"])!=null?n:void 0,hidden:(r&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(r&4)===4&&(r&2)!==2&&{display:"none"}}};return Q()({ourProps:u,theirProps:l,slot:{},defaultTag:mr,name:"Hidden"})}let xt=z(pr),Jt=Symbol();function hr(e,t=!0){return Object.assign(e,{[Jt]:t})}function re(...e){let t=i.useRef(e);i.useEffect(()=>{t.current=e},[e]);let n=A(r=>{for(let l of t.current)l!=null&&(typeof l=="function"?l(r):l.current=r)});return e.every(r=>r==null||(r==null?void 0:r[Jt]))?void 0:n}let Ct=i.createContext(null);Ct.displayName="DescriptionContext";function Rt(){let e=i.useContext(Ct);if(e===null){let t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,Rt),t}return e}function vr(){let[e,t]=i.useState([]);return[e.length>0?e.join(" "):void 0,i.useMemo(()=>function(n){let r=A(u=>(t(s=>[...s,u]),()=>t(s=>{let d=s.slice(),a=d.indexOf(u);return a!==-1&&d.splice(a,1),d}))),l=i.useMemo(()=>({register:r,slot:n.slot,name:n.name,props:n.props,value:n.value}),[r,n.slot,n.name,n.props,n.value]);return i.createElement(Ct.Provider,{value:l},n.children)},[t])]}let gr="p";function Er(e,t){let n=i.useId(),r=ur(),{id:l=`headlessui-description-${n}`,...u}=e,s=Rt(),d=re(t);V(()=>s.register(l),[l,s.register]);let a=r||!1,p=i.useMemo(()=>({...s.slot,disabled:a}),[s.slot,a]),c={ref:d,...s.props,id:l};return Q()({ourProps:c,theirProps:u,slot:p,defaultTag:gr,name:s.name||"Description"})}let br=z(Er),wr=Object.assign(br,{});var Zt=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(Zt||{});let yr=i.createContext(()=>{});function xr({value:e,children:t}){return i.createElement(yr.Provider,{value:e},t)}let Cr=class extends Map{constructor(t){super(),this.factory=t}get(t){let n=super.get(t);return n===void 0&&(n=this.factory(t),this.set(t,n)),n}};function Qt(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(l){return r.add(l),()=>r.delete(l)},dispatch(l,...u){let s=t[l].call(n,...u);s&&(n=s,r.forEach(d=>d()))}}}function en(e){return i.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)}let Tr=new Cr(()=>Qt(()=>[],{ADD(e){return this.includes(e)?this:[...this,e]},REMOVE(e){let t=this.indexOf(e);if(t===-1)return this;let n=this.slice();return n.splice(t,1),n}}));function $e(e,t){let n=Tr.get(t),r=i.useId(),l=en(n);if(V(()=>{if(e)return n.dispatch("ADD",r),()=>n.dispatch("REMOVE",r)},[n,e]),!e)return!1;let u=l.indexOf(r),s=l.length;return u===-1&&(u=s,s+=1),u===s-1}let Tt=new Map,We=new Map;function tn(e){var t;let n=(t=We.get(e))!=null?t:0;return We.set(e,n+1),n!==0?()=>nn(e):(Tt.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),e.setAttribute("aria-hidden","true"),e.inert=!0,()=>nn(e))}function nn(e){var t;let n=(t=We.get(e))!=null?t:1;if(n===1?We.delete(e):We.set(e,n-1),n!==1)return;let r=Tt.get(e);r&&(r["aria-hidden"]===null?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r["aria-hidden"]),e.inert=r.inert,Tt.delete(e))}function Sr(e,{allowed:t,disallowed:n}={}){let r=$e(e,"inert-others");V(()=>{var l,u;if(!r)return;let s=se();for(let a of(l=n==null?void 0:n())!=null?l:[])a&&s.add(tn(a));let d=(u=t==null?void 0:t())!=null?u:[];for(let a of d){if(!a)continue;let p=Re(a);if(!p)continue;let c=a.parentElement;for(;c&&c!==p.body;){for(let b of c.children)d.some(y=>b.contains(y))||s.add(tn(b));c=c.parentElement}}return s.dispose},[r,t,n])}function Or(e,t,n){let r=he(l=>{let u=l.getBoundingClientRect();u.x===0&&u.y===0&&u.width===0&&u.height===0&&n()});i.useEffect(()=>{if(!e)return;let l=t===null?null:t instanceof HTMLElement?t:t.current;if(!l)return;let u=se();if(typeof ResizeObserver<"u"){let s=new ResizeObserver(()=>r.current(l));s.observe(l),u.add(()=>s.disconnect())}if(typeof IntersectionObserver<"u"){let s=new IntersectionObserver(()=>r.current(l));s.observe(l),u.add(()=>s.disconnect())}return()=>u.dispose()},[t,r,e])}let nt=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),Pr=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var ie=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e[e.AutoFocus=64]="AutoFocus",e))(ie||{}),St=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(St||{}),$r=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))($r||{});function Mr(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(nt)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}function Fr(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Pr)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}var rn=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(rn||{});function kr(e,t=0){var n;return e===((n=Re(e))==null?void 0:n.body)?!1:de(t,{0(){return e.matches(nt)},1(){let r=e;for(;r!==null;){if(r.matches(nt))return!0;r=r.parentElement}return!1}})}var jr=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(jr||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function oe(e){e==null||e.focus({preventScroll:!0})}let _r=["textarea","input"].join(",");function Lr(e){var t,n;return(n=(t=e==null?void 0:e.matches)==null?void 0:t.call(e,_r))!=null?n:!1}function Ar(e,t=n=>n){return e.slice().sort((n,r)=>{let l=t(n),u=t(r);if(l===null||u===null)return 0;let s=l.compareDocumentPosition(u);return s&Node.DOCUMENT_POSITION_FOLLOWING?-1:s&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Ue(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:l=[]}={}){let u=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,s=Array.isArray(e)?n?Ar(e):e:t&64?Fr(e):Mr(e);l.length>0&&s.length>1&&(s=s.filter(w=>!l.some(E=>E!=null&&"current"in E?(E==null?void 0:E.current)===w:E===w))),r=r??u.activeElement;let d=(()=>{if(t&5)return 1;if(t&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),a=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,s.indexOf(r))-1;if(t&4)return Math.max(0,s.indexOf(r))+1;if(t&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),p=t&32?{preventScroll:!0}:{},c=0,b=s.length,y;do{if(c>=b||c+b<=0)return 0;let w=a+c;if(t&16)w=(w+b)%b;else{if(w<0)return 3;if(w>=b)return 1}y=s[w],y==null||y.focus(p),c+=d}while(y!==u.activeElement);return t&6&&Lr(y)&&y.select(),2}function ln(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function Ir(){return/Android/gi.test(window.navigator.userAgent)}function Nr(){return ln()||Ir()}function He(e,t,n,r){let l=he(n);i.useEffect(()=>{if(!e)return;function u(s){l.current(s)}return document.addEventListener(t,u,r),()=>document.removeEventListener(t,u,r)},[e,t,r])}function on(e,t,n,r){let l=he(n);i.useEffect(()=>{if(!e)return;function u(s){l.current(s)}return window.addEventListener(t,u,r),()=>window.removeEventListener(t,u,r)},[e,t,r])}const an=30;function Dr(e,t,n){let r=$e(e,"outside-click"),l=he(n),u=i.useCallback(function(a,p){if(a.defaultPrevented)return;let c=p(a);if(c===null||!c.getRootNode().contains(c)||!c.isConnected)return;let b=function y(w){return typeof w=="function"?y(w()):Array.isArray(w)||w instanceof Set?w:[w]}(t);for(let y of b)if(y!==null&&(y.contains(c)||a.composed&&a.composedPath().includes(y)))return;return!kr(c,rn.Loose)&&c.tabIndex!==-1&&a.preventDefault(),l.current(a,c)},[l,t]),s=i.useRef(null);He(r,"pointerdown",a=>{var p,c;s.current=((c=(p=a.composedPath)==null?void 0:p.call(a))==null?void 0:c[0])||a.target},!0),He(r,"mousedown",a=>{var p,c;s.current=((c=(p=a.composedPath)==null?void 0:p.call(a))==null?void 0:c[0])||a.target},!0),He(r,"click",a=>{Nr()||s.current&&(u(a,()=>s.current),s.current=null)},!0);let d=i.useRef({x:0,y:0});He(r,"touchstart",a=>{d.current.x=a.touches[0].clientX,d.current.y=a.touches[0].clientY},!0),He(r,"touchend",a=>{let p={x:a.changedTouches[0].clientX,y:a.changedTouches[0].clientY};if(!(Math.abs(p.x-d.current.x)>=an||Math.abs(p.y-d.current.y)>=an))return u(a,()=>a.target instanceof HTMLElement?a.target:null)},!0),on(r,"blur",a=>u(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function Be(...e){return i.useMemo(()=>Re(...e),[...e])}function un(e,t,n,r){let l=he(n);i.useEffect(()=>{e=e??window;function u(s){l.current(s)}return e.addEventListener(t,u,r),()=>e.removeEventListener(t,u,r)},[e,t,r])}function Wr(){let e;return{before({doc:t}){var n;let r=t.documentElement,l=(n=t.defaultView)!=null?n:window;e=Math.max(0,l.innerWidth-r.clientWidth)},after({doc:t,d:n}){let r=t.documentElement,l=Math.max(0,r.clientWidth-r.offsetWidth),u=Math.max(0,e-l);n.style(r,"paddingRight",`${u}px`)}}}function Ur(){return ln()?{before({doc:e,d:t,meta:n}){function r(l){return n.containers.flatMap(u=>u()).some(u=>u.contains(l))}t.microTask(()=>{var l;if(window.getComputedStyle(e.documentElement).scrollBehavior!=="auto"){let d=se();d.style(e.documentElement,"scrollBehavior","auto"),t.add(()=>t.microTask(()=>d.dispose()))}let u=(l=window.scrollY)!=null?l:window.pageYOffset,s=null;t.addEventListener(e,"click",d=>{if(d.target instanceof HTMLElement)try{let a=d.target.closest("a");if(!a)return;let{hash:p}=new URL(a.href),c=e.querySelector(p);c&&!r(c)&&(s=c)}catch{}},!0),t.addEventListener(e,"touchstart",d=>{if(d.target instanceof HTMLElement)if(r(d.target)){let a=d.target;for(;a.parentElement&&r(a.parentElement);)a=a.parentElement;t.style(a,"overscrollBehavior","contain")}else t.style(d.target,"touchAction","none")}),t.addEventListener(e,"touchmove",d=>{if(d.target instanceof HTMLElement){if(d.target.tagName==="INPUT")return;if(r(d.target)){let a=d.target;for(;a.parentElement&&a.dataset.headlessuiPortal!==""&&!(a.scrollHeight>a.clientHeight||a.scrollWidth>a.clientWidth);)a=a.parentElement;a.dataset.headlessuiPortal===""&&d.preventDefault()}else d.preventDefault()}},{passive:!1}),t.add(()=>{var d;let a=(d=window.scrollY)!=null?d:window.pageYOffset;u!==a&&window.scrollTo(0,u),s&&s.isConnected&&(s.scrollIntoView({block:"nearest"}),s=null)})})}}:{}}function Hr(){return{before({doc:e,d:t}){t.style(e.documentElement,"overflow","hidden")}}}function Br(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let ge=Qt(()=>new Map,{PUSH(e,t){var n;let r=(n=this.get(e))!=null?n:{doc:e,count:0,d:se(),meta:new Set};return r.count++,r.meta.add(t),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t)),this},SCROLL_PREVENT({doc:e,d:t,meta:n}){let r={doc:e,d:t,meta:Br(n)},l=[Ur(),Wr(),Hr()];l.forEach(({before:u})=>u==null?void 0:u(r)),l.forEach(({after:u})=>u==null?void 0:u(r))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});ge.subscribe(()=>{let e=ge.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let r=t.get(n.doc)==="hidden",l=n.count!==0;(l&&!r||!l&&r)&&ge.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),n.count===0&&ge.dispatch("TEARDOWN",n)}});function Vr(e,t,n=()=>({containers:[]})){let r=en(ge),l=t?r.get(t):void 0,u=l?l.count>0:!1;return V(()=>{if(!(!t||!e))return ge.dispatch("PUSH",t,n),()=>ge.dispatch("POP",t,n)},[e,t]),u}function Yr(e,t,n=()=>[document.body]){let r=$e(e,"scroll-lock");Vr(r,t,l=>{var u;return{containers:[...(u=l.containers)!=null?u:[],n]}})}function qr(e=0){let[t,n]=i.useState(e),r=i.useCallback(a=>n(a),[t]),l=i.useCallback(a=>n(p=>p|a),[t]),u=i.useCallback(a=>(t&a)===a,[t]),s=i.useCallback(a=>n(p=>p&~a),[n]),d=i.useCallback(a=>n(p=>p^a),[n]);return{flags:t,setFlag:r,addFlag:l,hasFlag:u,removeFlag:s,toggleFlag:d}}var sn,dn;typeof process<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((sn=process==null?void 0:process.env)==null?void 0:sn.NODE_ENV)==="test"&&typeof((dn=Element==null?void 0:Element.prototype)==null?void 0:dn.getAnimations)>"u"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
34
- `)),[]});var Xr=(e=>(e[e.None=0]="None",e[e.Closed=1]="Closed",e[e.Enter=2]="Enter",e[e.Leave=4]="Leave",e))(Xr||{});function zr(e){let t={};for(let n in e)e[n]===!0&&(t[`data-${n}`]="");return t}function Kr(e,t,n,r){let[l,u]=i.useState(n),{hasFlag:s,addFlag:d,removeFlag:a}=qr(e&&l?3:0),p=i.useRef(!1),c=i.useRef(!1),b=bt();return V(()=>{var y;if(e){if(n&&u(!0),!t){n&&d(3);return}return(y=r==null?void 0:r.start)==null||y.call(r,n),Gr(t,{inFlight:p,prepare(){c.current?c.current=!1:c.current=p.current,p.current=!0,!c.current&&(n?(d(3),a(4)):(d(4),a(2)))},run(){c.current?n?(a(3),d(4)):(a(4),d(3)):n?a(1):d(1)},done(){var w;c.current&&typeof t.getAnimations=="function"&&t.getAnimations().length>0||(p.current=!1,a(7),n||u(!1),(w=r==null?void 0:r.end)==null||w.call(r,n))}})}},[e,n,t,b]),e?[l,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function Gr(e,{prepare:t,run:n,done:r,inFlight:l}){let u=se();return Rr(e,{prepare:t,inFlight:l}),u.nextFrame(()=>{n(),u.requestAnimationFrame(()=>{u.add(Jr(e,r))})}),u.dispose}function Jr(e,t){var n,r;let l=se();if(!e)return l.dispose;let u=!1;l.add(()=>{u=!0});let s=(r=(n=e.getAnimations)==null?void 0:n.call(e).filter(d=>d instanceof CSSTransition))!=null?r:[];return s.length===0?(t(),l.dispose):(Promise.allSettled(s.map(d=>d.finished)).then(()=>{u||t()}),l.dispose)}function Rr(e,{inFlight:t,prepare:n}){if(t!=null&&t.current){n();return}let r=e.style.transition;e.style.transition="none",n(),e.offsetHeight,e.style.transition=r}function Ot(e,t){let n=i.useRef([]),r=A(e);i.useEffect(()=>{let l=[...n.current];for(let[u,s]of t.entries())if(n.current[u]!==s){let d=r(t,l);return n.current=t,d}},[r,...t])}let rt=i.createContext(null);rt.displayName="OpenClosedContext";var ne=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(ne||{});function lt(){return i.useContext(rt)}function Zr({value:e,children:t}){return i.createElement(rt.Provider,{value:e},t)}function Qr({children:e}){return i.createElement(rt.Provider,{value:null},e)}function el(e){function t(){document.readyState!=="loading"&&(e(),document.removeEventListener("DOMContentLoaded",t))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",t),t())}let fe=[];el(()=>{function e(t){if(!(t.target instanceof HTMLElement)||t.target===document.body||fe[0]===t.target)return;let n=t.target;n=n.closest(nt),fe.unshift(n??t.target),fe=fe.filter(r=>r!=null&&r.isConnected),fe.splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});function cn(e){let t=A(e),n=i.useRef(!1);i.useEffect(()=>(n.current=!1,()=>{n.current=!0,Ze(()=>{n.current&&t()})}),[t])}function tl(){let e=typeof document>"u";return"useSyncExternalStore"in je?(t=>t.useSyncExternalStore)(je)(()=>()=>{},()=>!1,()=>!e):!1}function Ve(){let e=tl(),[t,n]=je.useState(pe.isHandoffComplete);return t&&pe.isHandoffComplete===!1&&n(!1),je.useEffect(()=>{t!==!0&&n(!0)},[t]),je.useEffect(()=>pe.handoff(),[]),e?!1:t}let fn=i.createContext(!1);function nl(){return i.useContext(fn)}function mn(e){return i.createElement(fn.Provider,{value:e.force},e.children)}function rl(e){let t=nl(),n=i.useContext(hn),r=Be(e),[l,u]=i.useState(()=>{var s;if(!t&&n!==null)return(s=n.current)!=null?s:null;if(pe.isServer)return null;let d=r==null?void 0:r.getElementById("headlessui-portal-root");if(d)return d;if(r===null)return null;let a=r.createElement("div");return a.setAttribute("id","headlessui-portal-root"),r.body.appendChild(a)});return i.useEffect(()=>{l!==null&&(r!=null&&r.body.contains(l)||r==null||r.body.appendChild(l))},[l,r]),i.useEffect(()=>{t||n!==null&&u(n.current)},[n,u,t]),l}let pn=i.Fragment,ll=z(function(e,t){let n=e,r=i.useRef(null),l=re(hr(b=>{r.current=b}),t),u=Be(r),s=rl(r),[d]=i.useState(()=>{var b;return pe.isServer?null:(b=u==null?void 0:u.createElement("div"))!=null?b:null}),a=i.useContext(Pt),p=Ve();V(()=>{!s||!d||s.contains(d)||(d.setAttribute("data-headlessui-portal",""),s.appendChild(d))},[s,d]),V(()=>{if(d&&a)return a.register(d)},[a,d]),cn(()=>{var b;!s||!d||(d instanceof Node&&s.contains(d)&&s.removeChild(d),s.childNodes.length<=0&&((b=s.parentElement)==null||b.removeChild(s)))});let c=Q();return p?!s||!d?null:zn.createPortal(c({ourProps:{ref:l},theirProps:n,slot:{},defaultTag:pn,name:"Portal"}),d):null});function il(e,t){let n=re(t),{enabled:r=!0,...l}=e,u=Q();return r?i.createElement(ll,{...l,ref:n}):u({ourProps:{ref:n},theirProps:l,slot:{},defaultTag:pn,name:"Portal"})}let ol=i.Fragment,hn=i.createContext(null);function al(e,t){let{target:n,...r}=e,l={ref:re(t)},u=Q();return i.createElement(hn.Provider,{value:n},u({ourProps:l,theirProps:r,defaultTag:ol,name:"Popover.Group"}))}let Pt=i.createContext(null);function ul(){let e=i.useContext(Pt),t=i.useRef([]),n=A(u=>(t.current.push(u),e&&e.register(u),()=>r(u))),r=A(u=>{let s=t.current.indexOf(u);s!==-1&&t.current.splice(s,1),e&&e.unregister(u)}),l=i.useMemo(()=>({register:n,unregister:r,portals:t}),[n,r,t]);return[t,i.useMemo(()=>function({children:u}){return i.createElement(Pt.Provider,{value:l},u)},[l])]}let sl=z(il),vn=z(al),dl=Object.assign(sl,{Group:vn});function cl(e,t=typeof document<"u"?document.defaultView:null,n){let r=$e(e,"escape");un(t,"keydown",l=>{r&&(l.defaultPrevented||l.key===Zt.Escape&&n(l))})}function fl(){var e;let[t]=i.useState(()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(pointer: coarse)"):null),[n,r]=i.useState((e=t==null?void 0:t.matches)!=null?e:!1);return V(()=>{if(!t)return;function l(u){r(u.matches)}return t.addEventListener("change",l),()=>t.removeEventListener("change",l)},[t]),n}function ml({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=Be(n),l=A(()=>{var u,s;let d=[];for(let a of e)a!==null&&(a instanceof HTMLElement?d.push(a):"current"in a&&a.current instanceof HTMLElement&&d.push(a.current));if(t!=null&&t.current)for(let a of t.current)d.push(a);for(let a of(u=r==null?void 0:r.querySelectorAll("html > *, body > *"))!=null?u:[])a!==document.body&&a!==document.head&&a instanceof HTMLElement&&a.id!=="headlessui-portal-root"&&(n&&(a.contains(n)||a.contains((s=n==null?void 0:n.getRootNode())==null?void 0:s.host))||d.some(p=>a.contains(p))||d.push(a));return d});return{resolveContainers:l,contains:A(u=>l().some(s=>s.contains(u)))}}let gn=i.createContext(null);function En({children:e,node:t}){let[n,r]=i.useState(null),l=bn(t??n);return i.createElement(gn.Provider,{value:l},e,l===null&&i.createElement(xt,{features:tt.Hidden,ref:u=>{var s,d;if(u){for(let a of(d=(s=Re(u))==null?void 0:s.querySelectorAll("html > *, body > *"))!=null?d:[])if(a!==document.body&&a!==document.head&&a instanceof HTMLElement&&a!=null&&a.contains(u)){r(a);break}}}}))}function bn(e=null){var t;return(t=i.useContext(gn))!=null?t:e}function $t(){let e=i.useRef(!1);return V(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var Ye=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(Ye||{});function pl(){let e=i.useRef(0);return on(!0,"keydown",t=>{t.key==="Tab"&&(e.current=t.shiftKey?1:0)},!0),e}function wn(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let t=new Set;for(let n of e.current)n.current instanceof HTMLElement&&t.add(n.current);return t}let hl="div";var Ee=(e=>(e[e.None=0]="None",e[e.InitialFocus=1]="InitialFocus",e[e.TabLock=2]="TabLock",e[e.FocusLock=4]="FocusLock",e[e.RestoreFocus=8]="RestoreFocus",e[e.AutoFocus=16]="AutoFocus",e))(Ee||{});function vl(e,t){let n=i.useRef(null),r=re(n,t),{initialFocus:l,initialFocusFallback:u,containers:s,features:d=15,...a}=e;Ve()||(d=0);let p=Be(n);wl(d,{ownerDocument:p});let c=yl(d,{ownerDocument:p,container:n,initialFocus:l,initialFocusFallback:u});xl(d,{ownerDocument:p,container:n,containers:s,previousActiveElement:c});let b=pl(),y=A(g=>{let x=n.current;x&&(T=>T())(()=>{de(b.current,{[Ye.Forwards]:()=>{Ue(x,ie.First,{skipElements:[g.relatedTarget,u]})},[Ye.Backwards]:()=>{Ue(x,ie.Last,{skipElements:[g.relatedTarget,u]})}})})}),w=$e(!!(d&2),"focus-trap#tab-lock"),E=bt(),m=i.useRef(!1),f={ref:r,onKeyDown(g){g.key=="Tab"&&(m.current=!0,E.requestAnimationFrame(()=>{m.current=!1}))},onBlur(g){if(!(d&4))return;let x=wn(s);n.current instanceof HTMLElement&&x.add(n.current);let T=g.relatedTarget;T instanceof HTMLElement&&T.dataset.headlessuiFocusGuard!=="true"&&(yn(x,T)||(m.current?Ue(n.current,de(b.current,{[Ye.Forwards]:()=>ie.Next,[Ye.Backwards]:()=>ie.Previous})|ie.WrapAround,{relativeTo:g.target}):g.target instanceof HTMLElement&&oe(g.target)))}},h=Q();return i.createElement(i.Fragment,null,w&&i.createElement(xt,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:y,features:tt.Focusable}),h({ourProps:f,theirProps:a,defaultTag:hl,name:"FocusTrap"}),w&&i.createElement(xt,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:y,features:tt.Focusable}))}let gl=z(vl),El=Object.assign(gl,{features:Ee});function bl(e=!0){let t=i.useRef(fe.slice());return Ot(([n],[r])=>{r===!0&&n===!1&&Ze(()=>{t.current.splice(0)}),r===!1&&n===!0&&(t.current=fe.slice())},[e,fe,t]),A(()=>{var n;return(n=t.current.find(r=>r!=null&&r.isConnected))!=null?n:null})}function wl(e,{ownerDocument:t}){let n=!!(e&8),r=bl(n);Ot(()=>{n||(t==null?void 0:t.activeElement)===(t==null?void 0:t.body)&&oe(r())},[n]),cn(()=>{n&&oe(r())})}function yl(e,{ownerDocument:t,container:n,initialFocus:r,initialFocusFallback:l}){let u=i.useRef(null),s=$e(!!(e&1),"focus-trap#initial-focus"),d=$t();return Ot(()=>{if(e===0)return;if(!s){l!=null&&l.current&&oe(l.current);return}let a=n.current;a&&Ze(()=>{if(!d.current)return;let p=t==null?void 0:t.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===p){u.current=p;return}}else if(a.contains(p)){u.current=p;return}if(r!=null&&r.current)oe(r.current);else{if(e&16){if(Ue(a,ie.First|ie.AutoFocus)!==St.Error)return}else if(Ue(a,ie.First)!==St.Error)return;if(l!=null&&l.current&&(oe(l.current),(t==null?void 0:t.activeElement)===l.current))return;console.warn("There are no focusable elements inside the <FocusTrap />")}u.current=t==null?void 0:t.activeElement})},[l,s,e]),u}function xl(e,{ownerDocument:t,container:n,containers:r,previousActiveElement:l}){let u=$t(),s=!!(e&4);un(t==null?void 0:t.defaultView,"focus",d=>{if(!s||!u.current)return;let a=wn(r);n.current instanceof HTMLElement&&a.add(n.current);let p=l.current;if(!p)return;let c=d.target;c&&c instanceof HTMLElement?yn(a,c)?(l.current=c,oe(c)):(d.preventDefault(),d.stopPropagation(),oe(p)):oe(l.current)},!0)}function yn(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function xn(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:Tn)!==i.Fragment||i.Children.count(e.children)===1}let it=i.createContext(null);it.displayName="TransitionContext";var Cl=(e=>(e.Visible="visible",e.Hidden="hidden",e))(Cl||{});function Tl(){let e=i.useContext(it);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}function Sl(){let e=i.useContext(ot);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}let ot=i.createContext(null);ot.displayName="NestingContext";function at(e){return"children"in e?at(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t==="visible").length>0}function Cn(e,t){let n=he(e),r=i.useRef([]),l=$t(),u=bt(),s=A((w,E=ce.Hidden)=>{let m=r.current.findIndex(({el:f})=>f===w);m!==-1&&(de(E,{[ce.Unmount](){r.current.splice(m,1)},[ce.Hidden](){r.current[m].state="hidden"}}),u.microTask(()=>{var f;!at(r)&&l.current&&((f=n.current)==null||f.call(n))}))}),d=A(w=>{let E=r.current.find(({el:m})=>m===w);return E?E.state!=="visible"&&(E.state="visible"):r.current.push({el:w,state:"visible"}),()=>s(w,ce.Unmount)}),a=i.useRef([]),p=i.useRef(Promise.resolve()),c=i.useRef({enter:[],leave:[]}),b=A((w,E,m)=>{a.current.splice(0),t&&(t.chains.current[E]=t.chains.current[E].filter(([f])=>f!==w)),t==null||t.chains.current[E].push([w,new Promise(f=>{a.current.push(f)})]),t==null||t.chains.current[E].push([w,new Promise(f=>{Promise.all(c.current[E].map(([h,g])=>g)).then(()=>f())})]),E==="enter"?p.current=p.current.then(()=>t==null?void 0:t.wait.current).then(()=>m(E)):m(E)}),y=A((w,E,m)=>{Promise.all(c.current[E].splice(0).map(([f,h])=>h)).then(()=>{var f;(f=a.current.shift())==null||f()}).then(()=>m(E))});return i.useMemo(()=>({children:r,register:d,unregister:s,onStart:b,onStop:y,wait:p,chains:c}),[d,s,r,b,y,c,p])}let Tn=i.Fragment,Sn=Qe.RenderStrategy;function Ol(e,t){var n,r;let{transition:l=!0,beforeEnter:u,afterEnter:s,beforeLeave:d,afterLeave:a,enter:p,enterFrom:c,enterTo:b,entered:y,leave:w,leaveFrom:E,leaveTo:m,...f}=e,[h,g]=i.useState(null),x=i.useRef(null),T=xn(e),F=re(...T?[x,t,g]:t===null?[]:[t]),Y=(n=f.unmount)==null||n?ce.Unmount:ce.Hidden,{show:U,appear:J,initial:R}=Tl(),[H,q]=i.useState(U?"visible":"hidden"),K=Sl(),{register:L,unregister:M}=K;V(()=>L(x),[L,x]),V(()=>{if(Y===ce.Hidden&&x.current){if(U&&H!=="visible"){q("visible");return}return de(H,{hidden:()=>M(x),visible:()=>L(x)})}},[H,x,L,M,U,Y]);let I=Ve();V(()=>{if(T&&I&&H==="visible"&&x.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[x,H,I,T]);let be=R&&!J,we=J&&U&&R,me=i.useRef(!1),Z=Cn(()=>{me.current||(q("hidden"),M(x))},K),ye=A(Te=>{me.current=!0;let ae=Te?"enter":"leave";Z.onStart(x,ae,ue=>{ue==="enter"?u==null||u():ue==="leave"&&(d==null||d())})}),N=A(Te=>{let ae=Te?"enter":"leave";me.current=!1,Z.onStop(x,ae,ue=>{ue==="enter"?s==null||s():ue==="leave"&&(a==null||a())}),ae==="leave"&&!at(Z)&&(q("hidden"),M(x))});i.useEffect(()=>{T&&l||(ye(U),N(U))},[U,T,l]);let xe=!(!l||!T||!I||be),[,B]=Kr(xe,h,U,{start:ye,end:N}),jt=ve({ref:F,className:((r=wt(f.className,we&&p,we&&c,B.enter&&p,B.enter&&B.closed&&c,B.enter&&!B.closed&&b,B.leave&&w,B.leave&&!B.closed&&E,B.leave&&B.closed&&m,!B.transition&&U&&y))==null?void 0:r.trim())||void 0,...zr(B)}),Ce=0;H==="visible"&&(Ce|=ne.Open),H==="hidden"&&(Ce|=ne.Closed),B.enter&&(Ce|=ne.Opening),B.leave&&(Ce|=ne.Closing);let qe=Q();return i.createElement(ot.Provider,{value:Z},i.createElement(Zr,{value:Ce},qe({ourProps:jt,theirProps:f,defaultTag:Tn,features:Sn,visible:H==="visible",name:"Transition.Child"})))}function Pl(e,t){let{show:n,appear:r=!1,unmount:l=!0,...u}=e,s=i.useRef(null),d=xn(e),a=re(...d?[s,t]:t===null?[]:[t]);Ve();let p=lt();if(n===void 0&&p!==null&&(n=(p&ne.Open)===ne.Open),n===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[c,b]=i.useState(n?"visible":"hidden"),y=Cn(()=>{n||b("hidden")}),[w,E]=i.useState(!0),m=i.useRef([n]);V(()=>{w!==!1&&m.current[m.current.length-1]!==n&&(m.current.push(n),E(!1))},[m,n]);let f=i.useMemo(()=>({show:n,appear:r,initial:w}),[n,r,w]);V(()=>{n?b("visible"):!at(y)&&s.current!==null&&b("hidden")},[n,y]);let h={unmount:l},g=A(()=>{var F;w&&E(!1),(F=e.beforeEnter)==null||F.call(e)}),x=A(()=>{var F;w&&E(!1),(F=e.beforeLeave)==null||F.call(e)}),T=Q();return i.createElement(ot.Provider,{value:y},i.createElement(it.Provider,{value:f},T({ourProps:{...h,as:i.Fragment,children:i.createElement(On,{ref:a,...h,...u,beforeEnter:g,beforeLeave:x})},theirProps:{},defaultTag:i.Fragment,features:Sn,visible:c==="visible",name:"Transition"})))}function $l(e,t){let n=i.useContext(it)!==null,r=lt()!==null;return i.createElement(i.Fragment,null,!n&&r?i.createElement(Mt,{ref:t,...e}):i.createElement(On,{ref:t,...e}))}let Mt=z(Pl),On=z(Ol),Me=z($l),Pn=Object.assign(Mt,{Child:Me,Root:Mt});var Ml=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Ml||{}),Fl=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(Fl||{});let kl={0(e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},Ft=i.createContext(null);Ft.displayName="DialogContext";function ut(e){let t=i.useContext(Ft);if(t===null){let n=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,ut),n}return t}function jl(e,t){return de(t.type,kl,e,t)}let $n=z(function(e,t){let n=i.useId(),{id:r=`headlessui-dialog-${n}`,open:l,onClose:u,initialFocus:s,role:d="dialog",autoFocus:a=!0,__demoMode:p=!1,unmount:c=!1,...b}=e,y=i.useRef(!1);d=function(){return d==="dialog"||d==="alertdialog"?d:(y.current||(y.current=!0,console.warn(`Invalid role [${d}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")}();let w=lt();l===void 0&&w!==null&&(l=(w&ne.Open)===ne.Open);let E=i.useRef(null),m=re(E,t),f=Be(E),h=l?0:1,[g,x]=i.useReducer(jl,{titleId:null,descriptionId:null,panelRef:i.createRef()}),T=A(()=>u(!1)),F=A(N=>x({type:0,id:N})),Y=Ve()?h===0:!1,[U,J]=ul(),R={get current(){var N;return(N=g.panelRef.current)!=null?N:E.current}},H=bn(),{resolveContainers:q}=ml({mainTreeNode:H,portals:U,defaultContainers:[R]}),K=w!==null?(w&ne.Closing)===ne.Closing:!1;Sr(p||K?!1:Y,{allowed:A(()=>{var N,xe;return[(xe=(N=E.current)==null?void 0:N.closest("[data-headlessui-portal]"))!=null?xe:null]}),disallowed:A(()=>{var N;return[(N=H==null?void 0:H.closest("body > *:not(#headlessui-portal-root)"))!=null?N:null]})}),Dr(Y,q,N=>{N.preventDefault(),T()}),cl(Y,f==null?void 0:f.defaultView,N=>{N.preventDefault(),N.stopPropagation(),document.activeElement&&"blur"in document.activeElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur(),T()}),Yr(p||K?!1:Y,f,q),Or(Y,E,T);let[L,M]=vr(),I=i.useMemo(()=>[{dialogState:h,close:T,setTitleId:F,unmount:c},g],[h,g,T,F,c]),be=i.useMemo(()=>({open:h===0}),[h]),we={ref:m,id:r,role:d,tabIndex:-1,"aria-modal":p?void 0:h===0?!0:void 0,"aria-labelledby":g.titleId,"aria-describedby":L,unmount:c},me=!fl(),Z=Ee.None;Y&&!p&&(Z|=Ee.RestoreFocus,Z|=Ee.TabLock,a&&(Z|=Ee.AutoFocus),me&&(Z|=Ee.InitialFocus));let ye=Q();return i.createElement(Qr,null,i.createElement(mn,{force:!0},i.createElement(dl,null,i.createElement(Ft.Provider,{value:I},i.createElement(vn,{target:E},i.createElement(mn,{force:!1},i.createElement(M,{slot:be},i.createElement(J,null,i.createElement(El,{initialFocus:s,initialFocusFallback:E,containers:q,features:Z},i.createElement(xr,{value:T},ye({ourProps:we,theirProps:b,slot:be,defaultTag:_l,features:Ll,visible:h===0,name:"Dialog"})))))))))))}),_l="div",Ll=Qe.RenderStrategy|Qe.Static;function Al(e,t){let{transition:n=!1,open:r,...l}=e,u=lt(),s=e.hasOwnProperty("open")||u!==null,d=e.hasOwnProperty("onClose");if(!s&&!d)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!s)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!d)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(!u&&typeof e.open!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!="function")throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${e.onClose}`);return(r!==void 0||n)&&!l.static?i.createElement(En,null,i.createElement(Pn,{show:r,transition:n,unmount:l.unmount},i.createElement($n,{ref:t,...l}))):i.createElement(En,null,i.createElement($n,{ref:t,open:r,...l}))}let Il="div";function Nl(e,t){let n=i.useId(),{id:r=`headlessui-dialog-panel-${n}`,transition:l=!1,...u}=e,[{dialogState:s,unmount:d},a]=ut("Dialog.Panel"),p=re(t,a.panelRef),c=i.useMemo(()=>({open:s===0}),[s]),b=A(f=>{f.stopPropagation()}),y={ref:p,id:r,onClick:b},w=l?Me:i.Fragment,E=l?{unmount:d}:{},m=Q();return i.createElement(w,{...E},m({ourProps:y,theirProps:u,slot:c,defaultTag:Il,name:"Dialog.Panel"}))}let Dl="div";function Wl(e,t){let{transition:n=!1,...r}=e,[{dialogState:l,unmount:u}]=ut("Dialog.Backdrop"),s=i.useMemo(()=>({open:l===0}),[l]),d={ref:t,"aria-hidden":!0},a=n?Me:i.Fragment,p=n?{unmount:u}:{},c=Q();return i.createElement(a,{...p},c({ourProps:d,theirProps:r,slot:s,defaultTag:Dl,name:"Dialog.Backdrop"}))}let Ul="h2";function Hl(e,t){let n=i.useId(),{id:r=`headlessui-dialog-title-${n}`,...l}=e,[{dialogState:u,setTitleId:s}]=ut("Dialog.Title"),d=re(t);i.useEffect(()=>(s(r),()=>s(null)),[r,s]);let a=i.useMemo(()=>({open:u===0}),[u]),p={ref:d,id:r};return Q()({ourProps:p,theirProps:l,slot:a,defaultTag:Ul,name:"Dialog.Title"})}let Bl=z(Al),kt=z(Nl);z(Wl);let Vl=z(Hl),Yl=Object.assign(Bl,{Panel:kt,Title:Vl,Description:wr});function Mn({onClick:e}){return O.jsxs("button",{type:"button",className:"im-close-button text-gray-400 hover:text-gray-500",onClick:e,children:[O.jsx("span",{className:"sr-only",children:"Close"}),O.jsx("svg",{className:"size-6",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true",children:O.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})]})}const ql=({modalContext:e,config:t,children:n})=>O.jsx("div",{className:"im-modal-container fixed inset-0 z-40 overflow-y-auto p-4",children:O.jsx("div",{className:Je("im-modal-positioner flex min-h-full justify-center",{"items-start":t.position==="top","items-center":t.position==="center","items-end":t.position==="bottom"}),children:O.jsx(Me,{enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",afterLeave:e.afterLeave,className:Je("im-modal-wrapper w-full transition duration-300 ease-in-out",e.onTopOfStack?"":"blur-sm",{"sm:max-w-sm":t.maxWidth==="sm","sm:max-w-md":t.maxWidth==="md","sm:max-w-md md:max-w-lg":t.maxWidth==="lg","sm:max-w-md md:max-w-xl":t.maxWidth==="xl","sm:max-w-md md:max-w-xl lg:max-w-2xl":t.maxWidth==="2xl","sm:max-w-md md:max-w-xl lg:max-w-3xl":t.maxWidth==="3xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl":t.maxWidth==="4xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl":t.maxWidth==="5xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl":t.maxWidth==="6xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl":t.maxWidth==="7xl"}),children:O.jsxs(kt,{className:`im-modal-content relative ${t.paddingClasses} ${t.panelClasses}`,children:[t.closeButton&&O.jsx("div",{className:"absolute right-0 top-0 pr-3 pt-3",children:O.jsx(Mn,{onClick:e.close})}),typeof n=="function"?n({modalContext:e,config:t}):n]})})})}),Xl=({modalContext:e,config:t,children:n})=>O.jsx("div",{className:"im-slideover-container fixed inset-0 z-40 overflow-y-auto overflow-x-hidden",children:O.jsx("div",{className:Je("im-slideover-positioner flex min-h-full items-center",{"justify-start":t.position==="left","justify-end":t.position==="right"}),children:O.jsx(Me,{enterFrom:`opacity-0 ${t.position==="left"?"-translate-x-full":"translate-x-full"}`,enterTo:"opacity-100 translate-x-0",leaveFrom:"opacity-100 translate-x-0",leaveTo:`opacity-0 ${t.position==="left"?"-translate-x-full":"translate-x-full"}`,afterLeave:e.afterLeave,className:Je("im-slideover-wrapper w-full transition duration-300 ease-in-out",e.onTopOfStack?"":"blur-sm",{"sm:max-w-sm":t.maxWidth==="sm","sm:max-w-md":t.maxWidth==="md","sm:max-w-md md:max-w-lg":t.maxWidth==="lg","sm:max-w-md md:max-w-xl":t.maxWidth==="xl","sm:max-w-md md:max-w-xl lg:max-w-2xl":t.maxWidth==="2xl","sm:max-w-md md:max-w-xl lg:max-w-3xl":t.maxWidth==="3xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl":t.maxWidth==="4xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl":t.maxWidth==="5xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl":t.maxWidth==="6xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl":t.maxWidth==="7xl"}),children:O.jsxs(kt,{className:`im-slideover-content relative ${t.paddingClasses} ${t.panelClasses}`,children:[t.closeButton&&O.jsx("div",{className:"absolute right-0 top-0 pr-3 pt-3",children:O.jsx(Mn,{onClick:e.close})}),typeof n=="function"?n({modalContext:e,config:t}):n]})})})}),Fn=i.forwardRef(({name:e,children:t,...n},r)=>{const l=s=>typeof t=="function"?t(s):t,u=i.useRef(null);return i.useImperativeHandle(r,()=>u.current,[u]),O.jsx(gt,{ref:u,name:e,...n,children:({afterLeave:s,close:d,config:a,emit:p,getChildModal:c,getParentModal:b,id:y,index:w,isOpen:E,modalContext:m,onTopOfStack:f,reload:h,setOpen:g,shouldRender:x})=>O.jsx(Pn,{appear:!0,show:E??!1,children:O.jsxs(Yl,{as:"div",className:"im-dialog relative z-20",onClose:()=>a.closeExplicitly?null:d(),"data-inertiaui-modal-id":y,"data-inertiaui-modal-index":w,children:[w===0?O.jsx(Me,{enter:"transition transform ease-in-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"transition transform ease-in-out duration-300",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:f?O.jsx("div",{className:"im-backdrop fixed inset-0 z-30 bg-black/75","aria-hidden":"true"}):O.jsx("div",{})}):null,w>0&&f?O.jsx("div",{className:"im-backdrop fixed inset-0 z-30 bg-black/75"}):null,a.slideover?O.jsx(Xl,{modalContext:m,config:a,children:l({afterLeave:s,close:d,config:a,emit:p,getChildModal:c,getParentModal:b,id:y,index:w,isOpen:E,modalContext:m,onTopOfStack:f,reload:h,setOpen:g,shouldRender:x})}):O.jsx(ql,{modalContext:m,config:a,children:l({afterLeave:s,close:d,config:a,emit:p,getChildModal:c,getParentModal:b,id:y,index:w,isOpen:E,modalContext:m,onTopOfStack:f,reload:h,setOpen:g,shouldRender:x})})]})})})});Fn.displayName="Modal";const zl=({href:e,method:t="get",data:n={},as:r="a",headers:l={},queryStringArrayFormat:u="brackets",onAfterLeave:s=null,onBlur:d=null,onClose:a=null,onError:p=null,onFocus:c=null,onStart:b=null,onSuccess:y=null,navigate:w=null,children:E,...m})=>{const[f,h]=i.useState(!1),[g,x]=i.useState(null),{stack:T,visit:F}=De(),Y=i.useMemo(()=>w??Ke("navigate"),[w]),U={},J={};Object.keys(m).forEach(M=>{Yt.includes(M)||(M.startsWith("on")&&typeof m[M]=="function"?M.toLowerCase()in window?U[M]=m[M]:J[M]=m[M]:U[M]=m[M])});const[R,H]=i.useState(!1);i.useEffect(()=>{g&&(g.onTopOfStack&&R?c==null||c():!g.onTopOfStack&&!R&&(d==null||d()),H(!g.onTopOfStack))},[T]);const q=i.useCallback(()=>{a==null||a()},[a]),K=i.useCallback(()=>{x(null),s==null||s()},[s]),L=i.useCallback(M=>{M==null||M.preventDefault(),!f&&(e.startsWith("#")||(h(!0),b==null||b()),F(e,t,n,l,tr(Ut(m,Yt)),()=>q(T.length),K,u,Y).then(I=>{x(I),I.registerEventListenersFromProps(J),y==null||y()}).catch(I=>{console.error(I),p==null||p(I)}).finally(()=>h(!1)))},[e,t,n,l,u,m,q,K]);return O.jsx(r,{...U,href:e,onClick:L,children:typeof E=="function"?E({loading:f}):E})};function Kl(){return De().stack[vt()]??null}const Gl=e=>t=>(t.default.layout=n=>i.createElement(e,{},n),t);k.HeadlessModal=gt,k.Modal=Fn,k.ModalLink=zl,k.ModalRoot=Xt,k.ModalStackProvider=Vt,k.getConfig=Ke,k.initFromPageProps=qt,k.putConfig=Rn,k.renderApp=rr,k.resetConfig=Jn,k.setPageLayout=Gl,k.useModal=Kl,k.useModalIndex=vt,k.useModalStack=De,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
4
+ `))}else{let F=g.props,S=F==null?void 0:F.className,f=typeof S=="function"?(...h)=>We(S(...h),o.className):We(S,o.className),y=f?{className:f}:{},c=lt(g.props,Y(He(o,["ref"])));for(let h in E)h in c&&delete E[h];return s.cloneElement(g,Object.assign({},c,E,b,{ref:i(Gt(g),b.ref)},y))}return s.createElement(l,Object.assign({},He(o,["ref"]),l!==s.Fragment&&b,l!==s.Fragment&&E),g)}function Vt(){let t=s.useRef([]),e=s.useCallback(n=>{for(let r of t.current)r!=null&&(typeof r=="function"?r(n):r.current=n)},[]);return(...n)=>{if(!n.every(r=>r==null))return t.current=n,e}}function zt(...t){return t.every(e=>e==null)?void 0:e=>{for(let n of t)n!=null&&(typeof n=="function"?n(e):n.current=e)}}function lt(...t){if(t.length===0)return{};if(t.length===1)return t[0];let e={},n={};for(let r of t)for(let i in r)i.startsWith("on")&&typeof r[i]=="function"?(n[i]!=null||(n[i]=[]),n[i].push(r[i])):e[i]=r[i];if(e.disabled||e["aria-disabled"])for(let r in n)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(r)&&(n[r]=[i=>{var l;return(l=i==null?void 0:i.preventDefault)==null?void 0:l.call(i)}]);for(let r in n)Object.assign(e,{[r](i,...l){let a=n[r];for(let v of a){if((i instanceof Event||(i==null?void 0:i.nativeEvent)instanceof Event)&&i.defaultPrevented)return;v(i,...l)}}});return e}function Be(t){var e;return Object.assign(s.forwardRef(t),{displayName:(e=t.displayName)!=null?e:t.name})}function Y(t){let e=Object.assign({},t);for(let n in e)e[n]===void 0&&delete e[n];return e}function He(t,e=[]){let n=Object.assign({},t);for(let r of e)r in n&&delete n[r];return n}function Gt(t){return s.version.split(".")[0]>="19"?t.props.ref:t.ref}let Zt=Symbol();function ot(...t){let e=s.useRef(t);s.useEffect(()=>{e.current=t},[t]);let n=_(r=>{for(let i of e.current)i!=null&&(typeof i=="function"?i(r):i.current=r)});return t.every(r=>r==null||(r==null?void 0:r[Zt]))?void 0:n}function Yt(t=0){let[e,n]=s.useState(t),r=s.useCallback(o=>n(o),[e]),i=s.useCallback(o=>n(b=>b|o),[e]),l=s.useCallback(o=>(e&o)===o,[e]),a=s.useCallback(o=>n(b=>b&~o),[n]),v=s.useCallback(o=>n(b=>b^o),[n]);return{flags:e,setFlag:r,addFlag:i,hasFlag:l,removeFlag:a,toggleFlag:v}}var ut,dt;typeof process<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((ut=process==null?void 0:process.env)==null?void 0:ut.NODE_ENV)==="test"&&typeof((dt=Element==null?void 0:Element.prototype)==null?void 0:dt.getAnimations)>"u"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
5
+ `)),[]});var Jt=(t=>(t[t.None=0]="None",t[t.Closed=1]="Closed",t[t.Enter=2]="Enter",t[t.Leave=4]="Leave",t))(Jt||{});function Qt(t){let e={};for(let n in t)t[n]===!0&&(e[`data-${n}`]="");return e}function Rt(t,e,n,r){let[i,l]=s.useState(n),{hasFlag:a,addFlag:v,removeFlag:o}=Yt(t&&i?3:0),b=s.useRef(!1),g=s.useRef(!1),E=rt();return z(()=>{var F;if(t){if(n&&l(!0),!e){n&&v(3);return}return(F=r==null?void 0:r.start)==null||F.call(r,n),en(e,{inFlight:b,prepare(){g.current?g.current=!1:g.current=b.current,b.current=!0,!g.current&&(n?(v(3),o(4)):(v(4),o(2)))},run(){g.current?n?(o(3),v(4)):(o(4),v(3)):n?o(1):v(1)},done(){var S;g.current&&typeof e.getAnimations=="function"&&e.getAnimations().length>0||(b.current=!1,o(7),n||l(!1),(S=r==null?void 0:r.end)==null||S.call(r,n))}})}},[t,n,e,E]),t?[i,{closed:a(1),enter:a(2),leave:a(4),transition:a(2)||a(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function en(t,{prepare:e,run:n,done:r,inFlight:i}){let l=ye();return nn(t,{prepare:e,inFlight:i}),l.nextFrame(()=>{n(),l.requestAnimationFrame(()=>{l.add(tn(t,r))})}),l.dispose}function tn(t,e){var n,r;let i=ye();if(!t)return i.dispose;let l=!1;i.add(()=>{l=!0});let a=(r=(n=t.getAnimations)==null?void 0:n.call(t).filter(v=>v instanceof CSSTransition))!=null?r:[];return a.length===0?(e(),i.dispose):(Promise.allSettled(a.map(v=>v.finished)).then(()=>{l||e()}),i.dispose)}function nn(t,{inFlight:e,prepare:n}){if(e!=null&&e.current){n();return}let r=t.style.transition;t.style.transition="none",n(),t.offsetHeight,t.style.transition=r}/*!
6
+ * tabbable 6.2.0
7
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
8
+ */var ct=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ee=ct.join(","),ft=typeof Element>"u",J=ft?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Se=!ft&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t==null?void 0:t.ownerDocument},Ne=function t(e,n){var r;n===void 0&&(n=!0);var i=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),l=i===""||i==="true",a=l||n&&e&&t(e.parentNode);return a},rn=function(e){var n,r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"contenteditable");return r===""||r==="true"},ht=function(e,n,r){if(Ne(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(Ee));return n&&J.call(e,Ee)&&i.unshift(e),i=i.filter(r),i},vt=function t(e,n,r){for(var i=[],l=Array.from(e);l.length;){var a=l.shift();if(!Ne(a,!1))if(a.tagName==="SLOT"){var v=a.assignedElements(),o=v.length?v:a.children,b=t(o,!0,r);r.flatten?i.push.apply(i,b):i.push({scopeParent:a,candidates:b})}else{var g=J.call(a,Ee);g&&r.filter(a)&&(n||!e.includes(a))&&i.push(a);var E=a.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(a),F=!Ne(E,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(a));if(E&&F){var S=t(E===!0?a.children:E.children,!0,r);r.flatten?i.push.apply(i,S):i.push({scopeParent:a,candidates:S})}else l.unshift.apply(l,a.children)}}return i},pt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},Q=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rn(e))&&!pt(e)?0:e.tabIndex},an=function(e,n){var r=Q(e);return r<0&&n&&!pt(e)?0:r},sn=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},mt=function(e){return e.tagName==="INPUT"},ln=function(e){return mt(e)&&e.type==="hidden"},on=function(e){var n=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return n},un=function(e,n){for(var r=0;r<e.length;r++)if(e[r].checked&&e[r].form===n)return e[r]},dn=function(e){if(!e.name)return!0;var n=e.form||Se(e),r=function(v){return n.querySelectorAll('input[type="radio"][name="'+v+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=r(window.CSS.escape(e.name));else try{i=r(e.name)}catch(a){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",a.message),!1}var l=un(i,e.form);return!l||l===e},cn=function(e){return mt(e)&&e.type==="radio"},fn=function(e){return cn(e)&&!dn(e)},hn=function(e){var n,r=e&&Se(e),i=(n=r)===null||n===void 0?void 0:n.host,l=!1;if(r&&r!==e){var a,v,o;for(l=!!((a=i)!==null&&a!==void 0&&(v=a.ownerDocument)!==null&&v!==void 0&&v.contains(i)||e!=null&&(o=e.ownerDocument)!==null&&o!==void 0&&o.contains(e));!l&&i;){var b,g,E;r=Se(i),i=(b=r)===null||b===void 0?void 0:b.host,l=!!((g=i)!==null&&g!==void 0&&(E=g.ownerDocument)!==null&&E!==void 0&&E.contains(i))}}return l},bt=function(e){var n=e.getBoundingClientRect(),r=n.width,i=n.height;return r===0&&i===0},vn=function(e,n){var r=n.displayCheck,i=n.getShadowRoot;if(getComputedStyle(e).visibility==="hidden")return!0;var l=J.call(e,"details>summary:first-of-type"),a=l?e.parentElement:e;if(J.call(a,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof i=="function"){for(var v=e;e;){var o=e.parentElement,b=Se(e);if(o&&!o.shadowRoot&&i(o)===!0)return bt(e);e.assignedSlot?e=e.assignedSlot:!o&&b!==e.ownerDocument?e=b.host:e=o}e=v}if(hn(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return bt(e);return!1},pn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var r=0;r<n.children.length;r++){var i=n.children.item(r);if(i.tagName==="LEGEND")return J.call(n,"fieldset[disabled] *")?!0:!i.contains(e)}return!0}n=n.parentElement}return!1},Te=function(e,n){return!(n.disabled||Ne(n)||ln(n)||vn(n,e)||on(n)||pn(n))},Ke=function(e,n){return!(fn(n)||Q(n)<0||!Te(e,n))},mn=function(e){var n=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},bn=function t(e){var n=[],r=[];return e.forEach(function(i,l){var a=!!i.scopeParent,v=a?i.scopeParent:i,o=an(v,a),b=a?t(i.candidates):v;o===0?a?n.push.apply(n,b):n.push(v):r.push({documentOrder:l,tabIndex:o,item:i,isScope:a,content:b})}),r.sort(sn).reduce(function(i,l){return l.isScope?i.push.apply(i,l.content):i.push(l.content),i},[]).concat(n)},gn=function(e,n){n=n||{};var r;return n.getShadowRoot?r=vt([e],n.includeContainer,{filter:Ke.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:mn}):r=ht(e,n.includeContainer,Ke.bind(null,n)),bn(r)},yn=function(e,n){n=n||{};var r;return n.getShadowRoot?r=vt([e],n.includeContainer,{filter:Te.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):r=ht(e,n.includeContainer,Te.bind(null,n)),r},ae=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return J.call(e,Ee)===!1?!1:Ke(n,e)},wn=ct.concat("iframe").join(","),qe=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return J.call(e,wn)===!1?!1:Te(n,e)};let Xe=s.createContext(null);Xe.displayName="OpenClosedContext";var R=(t=>(t[t.Open=1]="Open",t[t.Closed=2]="Closed",t[t.Closing=4]="Closing",t[t.Opening=8]="Opening",t))(R||{});function gt(){return s.useContext(Xe)}function xn({value:t,children:e}){return s.createElement(Xe.Provider,{value:t},e)}function En(){let t=typeof document>"u";return"useSyncExternalStore"in ie?(e=>e.useSyncExternalStore)(ie)(()=>()=>{},()=>!1,()=>!t):!1}function yt(){let t=En(),[e,n]=ie.useState(ge.isHandoffComplete);return e&&ge.isHandoffComplete===!1&&n(!1),ie.useEffect(()=>{e!==!0&&n(!0)},[e]),ie.useEffect(()=>ge.handoff(),[]),t?!1:e}function Sn(){let t=s.useRef(!1);return z(()=>(t.current=!0,()=>{t.current=!1}),[]),t}function wt(t){var e;return!!(t.enter||t.enterFrom||t.enterTo||t.leave||t.leaveFrom||t.leaveTo)||((e=t.as)!=null?e:Et)!==s.Fragment||s.Children.count(t.children)===1}let Fe=s.createContext(null);Fe.displayName="TransitionContext";var Nn=(t=>(t.Visible="visible",t.Hidden="hidden",t))(Nn||{});function Tn(){let t=s.useContext(Fe);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}function Fn(){let t=s.useContext(Oe);if(t===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return t}let Oe=s.createContext(null);Oe.displayName="NestingContext";function ke(t){return"children"in t?ke(t.children):t.current.filter(({el:e})=>e.current!==null).filter(({state:e})=>e==="visible").length>0}function xt(t,e){let n=at(t),r=s.useRef([]),i=Sn(),l=rt(),a=_((S,f=G.Hidden)=>{let y=r.current.findIndex(({el:c})=>c===S);y!==-1&&(we(f,{[G.Unmount](){r.current.splice(y,1)},[G.Hidden](){r.current[y].state="hidden"}}),l.microTask(()=>{var c;!ke(r)&&i.current&&((c=n.current)==null||c.call(n))}))}),v=_(S=>{let f=r.current.find(({el:y})=>y===S);return f?f.state!=="visible"&&(f.state="visible"):r.current.push({el:S,state:"visible"}),()=>a(S,G.Unmount)}),o=s.useRef([]),b=s.useRef(Promise.resolve()),g=s.useRef({enter:[],leave:[]}),E=_((S,f,y)=>{o.current.splice(0),e&&(e.chains.current[f]=e.chains.current[f].filter(([c])=>c!==S)),e==null||e.chains.current[f].push([S,new Promise(c=>{o.current.push(c)})]),e==null||e.chains.current[f].push([S,new Promise(c=>{Promise.all(g.current[f].map(([h,p])=>p)).then(()=>c())})]),f==="enter"?b.current=b.current.then(()=>e==null?void 0:e.wait.current).then(()=>y(f)):y(f)}),F=_((S,f,y)=>{Promise.all(g.current[f].splice(0).map(([c,h])=>h)).then(()=>{var c;(c=o.current.shift())==null||c()}).then(()=>y(f))});return s.useMemo(()=>({children:r,register:v,unregister:a,onStart:E,onStop:F,wait:b,chains:g}),[v,a,r,E,F,g,b])}let Et=s.Fragment,St=it.RenderStrategy;function On(t,e){var n,r;let{transition:i=!0,beforeEnter:l,afterEnter:a,beforeLeave:v,afterLeave:o,enter:b,enterFrom:g,enterTo:E,entered:F,leave:S,leaveFrom:f,leaveTo:y,...c}=t,[h,p]=s.useState(null),w=s.useRef(null),N=wt(t),m=ot(...N?[w,e,p]:e===null?[]:[e]),P=(n=c.unmount)==null||n?G.Unmount:G.Hidden,{show:j,appear:B,initial:H}=Tn(),[U,W]=s.useState(j?"visible":"hidden"),k=Fn(),{register:u,unregister:d}=k;z(()=>u(w),[u,w]),z(()=>{if(P===G.Hidden&&w.current){if(j&&U!=="visible"){W("visible");return}return we(U,{hidden:()=>d(w),visible:()=>u(w)})}},[U,w,u,d,j,P]);let x=yt();z(()=>{if(N&&x&&U==="visible"&&w.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[w,U,x,N]);let I=H&&!B,M=B&&j&&H,A=s.useRef(!1),O=xt(()=>{A.current||(W("hidden"),d(w))},k),L=_(ee=>{A.current=!0;let Z=ee?"enter":"leave";O.onStart(w,Z,fe=>{fe==="enter"?l==null||l():fe==="leave"&&(v==null||v())})}),D=_(ee=>{let Z=ee?"enter":"leave";A.current=!1,O.onStop(w,Z,fe=>{fe==="enter"?a==null||a():fe==="leave"&&(o==null||o())}),Z==="leave"&&!ke(O)&&(W("hidden"),d(w))});s.useEffect(()=>{N&&i||(L(j),D(j))},[j,N,i]);let V=!(!i||!N||!x||I),[,$]=Rt(V,h,j,{start:L,end:D}),X=Y({ref:m,className:((r=We(c.className,M&&b,M&&g,$.enter&&b,$.enter&&$.closed&&g,$.enter&&!$.closed&&E,$.leave&&S,$.leave&&!$.closed&&f,$.leave&&$.closed&&y,!$.transition&&j&&F))==null?void 0:r.trim())||void 0,...Qt($)}),K=0;U==="visible"&&(K|=R.Open),U==="hidden"&&(K|=R.Closed),$.enter&&(K|=R.Opening),$.leave&&(K|=R.Closing);let Ie=st();return s.createElement(Oe.Provider,{value:O},s.createElement(xn,{value:K},Ie({ourProps:X,theirProps:c,defaultTag:Et,features:St,visible:U==="visible",name:"Transition.Child"})))}function kn(t,e){let{show:n,appear:r=!1,unmount:i=!0,...l}=t,a=s.useRef(null),v=wt(t),o=ot(...v?[a,e]:e===null?[]:[e]);yt();let b=gt();if(n===void 0&&b!==null&&(n=(b&R.Open)===R.Open),n===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[g,E]=s.useState(n?"visible":"hidden"),F=xt(()=>{n||E("hidden")}),[S,f]=s.useState(!0),y=s.useRef([n]);z(()=>{S!==!1&&y.current[y.current.length-1]!==n&&(y.current.push(n),f(!1))},[y,n]);let c=s.useMemo(()=>({show:n,appear:r,initial:S}),[n,r,S]);z(()=>{n?E("visible"):!ke(F)&&a.current!==null&&E("hidden")},[n,F]);let h={unmount:i},p=_(()=>{var m;S&&f(!1),(m=t.beforeEnter)==null||m.call(t)}),w=_(()=>{var m;S&&f(!1),(m=t.beforeLeave)==null||m.call(t)}),N=st();return s.createElement(Oe.Provider,{value:F},s.createElement(Fe.Provider,{value:c},N({ourProps:{...h,as:s.Fragment,children:s.createElement(Nt,{ref:o,...h,...l,beforeEnter:p,beforeLeave:w})},theirProps:{},defaultTag:s.Fragment,features:St,visible:g==="visible",name:"Transition"})))}function Cn(t,e){let n=s.useContext(Fe)!==null,r=gt()!==null;return s.createElement(s.Fragment,null,!n&&r?s.createElement(_e,{ref:e,...t}):s.createElement(Nt,{ref:e,...t}))}let _e=Be(kn),Nt=Be(On),Ce=Be(Cn),Pn=Object.assign(_e,{Child:Ce,Root:_e});function Tt({onClick:t}){return T.jsxs("button",{type:"button",className:"im-close-button text-gray-400 hover:text-gray-500",onClick:t,children:[T.jsx("span",{className:"sr-only",children:"Close"}),T.jsx("svg",{className:"size-6",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true",children:T.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})]})}/*!
9
+ * focus-trap 7.6.2
10
+ * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
11
+ */function Ve(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function In(t){if(Array.isArray(t))return Ve(t)}function Mn(t,e,n){return(e=$n(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function An(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Ln(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
12
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ft(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ot(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Ft(Object(n),!0).forEach(function(r){Mn(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ft(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function jn(t){return In(t)||An(t)||Un(t)||Ln()}function Dn(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function $n(t){var e=Dn(t,"string");return typeof e=="symbol"?e:e+""}function Un(t,e){if(t){if(typeof t=="string")return Ve(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ve(t,e):void 0}}var kt={activateTrap:function(e,n){if(e.length>0){var r=e[e.length-1];r!==n&&r.pause()}var i=e.indexOf(n);i===-1||e.splice(i,1),e.push(n)},deactivateTrap:function(e,n){var r=e.indexOf(n);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},Wn=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Bn=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},de=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Hn=function(e){return de(e)&&!e.shiftKey},Kn=function(e){return de(e)&&e.shiftKey},Ct=function(e){return setTimeout(e,0)},ce=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return typeof e=="function"?e.apply(void 0,r):e},Pe=function(e){return e.target.shadowRoot&&typeof e.composedPath=="function"?e.composedPath()[0]:e.target},qn=[],Xn=function(e,n){var r=(n==null?void 0:n.document)||document,i=(n==null?void 0:n.trapStack)||qn,l=Ot({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:Hn,isKeyBackward:Kn},n),a={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},v,o=function(u,d,x){return u&&u[d]!==void 0?u[d]:l[x||d]},b=function(u,d){var x=typeof(d==null?void 0:d.composedPath)=="function"?d.composedPath():void 0;return a.containerGroups.findIndex(function(I){var M=I.container,A=I.tabbableNodes;return M.contains(u)||(x==null?void 0:x.includes(M))||A.find(function(O){return O===u})})},g=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=d.hasFallback,I=x===void 0?!1:x,M=d.params,A=M===void 0?[]:M,O=l[u];if(typeof O=="function"&&(O=O.apply(void 0,jn(A))),O===!0&&(O=void 0),!O){if(O===void 0||O===!1)return O;throw new Error("`".concat(u,"` was specified but was not a node, or did not return a node"))}var L=O;if(typeof O=="string"){try{L=r.querySelector(O)}catch(D){throw new Error("`".concat(u,'` appears to be an invalid selector; error="').concat(D.message,'"'))}if(!L&&!I)throw new Error("`".concat(u,"` as selector refers to no known node"))}return L},E=function(){var u=g("initialFocus",{hasFallback:!0});if(u===!1)return!1;if(u===void 0||u&&!qe(u,l.tabbableOptions))if(b(r.activeElement)>=0)u=r.activeElement;else{var d=a.tabbableGroups[0],x=d&&d.firstTabbableNode;u=x||g("fallbackFocus")}else u===null&&(u=g("fallbackFocus"));if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},F=function(){if(a.containerGroups=a.containers.map(function(u){var d=gn(u,l.tabbableOptions),x=yn(u,l.tabbableOptions),I=d.length>0?d[0]:void 0,M=d.length>0?d[d.length-1]:void 0,A=x.find(function(D){return ae(D)}),O=x.slice().reverse().find(function(D){return ae(D)}),L=!!d.find(function(D){return Q(D)>0});return{container:u,tabbableNodes:d,focusableNodes:x,posTabIndexesFound:L,firstTabbableNode:I,lastTabbableNode:M,firstDomTabbableNode:A,lastDomTabbableNode:O,nextTabbableNode:function(V){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,X=d.indexOf(V);return X<0?$?x.slice(x.indexOf(V)+1).find(function(K){return ae(K)}):x.slice(0,x.indexOf(V)).reverse().find(function(K){return ae(K)}):d[X+($?1:-1)]}}}),a.tabbableGroups=a.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),a.tabbableGroups.length<=0&&!g("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(a.containerGroups.find(function(u){return u.posTabIndexesFound})&&a.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},S=function(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?S(d.shadowRoot):d},f=function(u){if(u!==!1&&u!==S(document)){if(!u||!u.focus){f(E());return}u.focus({preventScroll:!!l.preventScroll}),a.mostRecentlyFocusedNode=u,Wn(u)&&u.select()}},y=function(u){var d=g("setReturnFocus",{params:[u]});return d||(d===!1?!1:u)},c=function(u){var d=u.target,x=u.event,I=u.isBackward,M=I===void 0?!1:I;d=d||Pe(x),F();var A=null;if(a.tabbableGroups.length>0){var O=b(d,x),L=O>=0?a.containerGroups[O]:void 0;if(O<0)M?A=a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:A=a.tabbableGroups[0].firstTabbableNode;else if(M){var D=a.tabbableGroups.findIndex(function(ee){var Z=ee.firstTabbableNode;return d===Z});if(D<0&&(L.container===d||qe(d,l.tabbableOptions)&&!ae(d,l.tabbableOptions)&&!L.nextTabbableNode(d,!1))&&(D=O),D>=0){var V=D===0?a.tabbableGroups.length-1:D-1,$=a.tabbableGroups[V];A=Q(d)>=0?$.lastTabbableNode:$.lastDomTabbableNode}else de(x)||(A=L.nextTabbableNode(d,!1))}else{var X=a.tabbableGroups.findIndex(function(ee){var Z=ee.lastTabbableNode;return d===Z});if(X<0&&(L.container===d||qe(d,l.tabbableOptions)&&!ae(d,l.tabbableOptions)&&!L.nextTabbableNode(d))&&(X=O),X>=0){var K=X===a.tabbableGroups.length-1?0:X+1,Ie=a.tabbableGroups[K];A=Q(d)>=0?Ie.firstTabbableNode:Ie.firstDomTabbableNode}else de(x)||(A=L.nextTabbableNode(d))}}else A=g("fallbackFocus");return A},h=function(u){var d=Pe(u);if(!(b(d,u)>=0)){if(ce(l.clickOutsideDeactivates,u)){v.deactivate({returnFocus:l.returnFocusOnDeactivate});return}ce(l.allowOutsideClick,u)||u.preventDefault()}},p=function(u){var d=Pe(u),x=b(d,u)>=0;if(x||d instanceof Document)x&&(a.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var I,M=!0;if(a.mostRecentlyFocusedNode)if(Q(a.mostRecentlyFocusedNode)>0){var A=b(a.mostRecentlyFocusedNode),O=a.containerGroups[A].tabbableNodes;if(O.length>0){var L=O.findIndex(function(D){return D===a.mostRecentlyFocusedNode});L>=0&&(l.isKeyForward(a.recentNavEvent)?L+1<O.length&&(I=O[L+1],M=!1):L-1>=0&&(I=O[L-1],M=!1))}}else a.containerGroups.some(function(D){return D.tabbableNodes.some(function(V){return Q(V)>0})})||(M=!1);else M=!1;M&&(I=c({target:a.mostRecentlyFocusedNode,isBackward:l.isKeyBackward(a.recentNavEvent)})),f(I||a.mostRecentlyFocusedNode||E())}a.recentNavEvent=void 0},w=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;a.recentNavEvent=u;var x=c({event:u,isBackward:d});x&&(de(u)&&u.preventDefault(),f(x))},N=function(u){(l.isKeyForward(u)||l.isKeyBackward(u))&&w(u,l.isKeyBackward(u))},m=function(u){Bn(u)&&ce(l.escapeDeactivates,u)!==!1&&(u.preventDefault(),v.deactivate())},P=function(u){var d=Pe(u);b(d,u)>=0||ce(l.clickOutsideDeactivates,u)||ce(l.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},j=function(){if(a.active)return kt.activateTrap(i,v),a.delayInitialFocusTimer=l.delayInitialFocus?Ct(function(){f(E())}):f(E()),r.addEventListener("focusin",p,!0),r.addEventListener("mousedown",h,{capture:!0,passive:!1}),r.addEventListener("touchstart",h,{capture:!0,passive:!1}),r.addEventListener("click",P,{capture:!0,passive:!1}),r.addEventListener("keydown",N,{capture:!0,passive:!1}),r.addEventListener("keydown",m),v},B=function(){if(a.active)return r.removeEventListener("focusin",p,!0),r.removeEventListener("mousedown",h,!0),r.removeEventListener("touchstart",h,!0),r.removeEventListener("click",P,!0),r.removeEventListener("keydown",N,!0),r.removeEventListener("keydown",m),v},H=function(u){var d=u.some(function(x){var I=Array.from(x.removedNodes);return I.some(function(M){return M===a.mostRecentlyFocusedNode})});d&&f(E())},U=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(H):void 0,W=function(){U&&(U.disconnect(),a.active&&!a.paused&&a.containers.map(function(u){U.observe(u,{subtree:!0,childList:!0})}))};return v={get active(){return a.active},get paused(){return a.paused},activate:function(u){if(a.active)return this;var d=o(u,"onActivate"),x=o(u,"onPostActivate"),I=o(u,"checkCanFocusTrap");I||F(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=r.activeElement,d==null||d();var M=function(){I&&F(),j(),W(),x==null||x()};return I?(I(a.containers.concat()).then(M,M),this):(M(),this)},deactivate:function(u){if(!a.active)return this;var d=Ot({onDeactivate:l.onDeactivate,onPostDeactivate:l.onPostDeactivate,checkCanReturnFocus:l.checkCanReturnFocus},u);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,B(),a.active=!1,a.paused=!1,W(),kt.deactivateTrap(i,v);var x=o(d,"onDeactivate"),I=o(d,"onPostDeactivate"),M=o(d,"checkCanReturnFocus"),A=o(d,"returnFocus","returnFocusOnDeactivate");x==null||x();var O=function(){Ct(function(){A&&f(y(a.nodeFocusedBeforeActivation)),I==null||I()})};return A&&M?(M(y(a.nodeFocusedBeforeActivation)).then(O,O),this):(O(),this)},pause:function(u){if(a.paused||!a.active)return this;var d=o(u,"onPause"),x=o(u,"onPostPause");return a.paused=!0,d==null||d(),B(),W(),x==null||x(),this},unpause:function(u){if(!a.paused||!a.active)return this;var d=o(u,"onUnpause"),x=o(u,"onPostUnpause");return a.paused=!1,d==null||d(),F(),j(),W(),x==null||x(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return a.containers=d.map(function(x){return typeof x=="string"?r.querySelector(x):x}),a.active&&F(),W(),this}},v.updateContainerElements(e),v};function Pt(t,e,n){let r=null;return t&&(r=Xn(t,{clickOutsideDeactivates:!e,escapeDeactivates:!e,onDeactivate:()=>n==null?void 0:n(),fallbackFocus:()=>t}),r.activate()),{deactivate:()=>{r==null||r.deactivate(),r=null},wrapper:t}}const _n=({modalContext:t,config:e,children:n})=>{const[r,i]=s.useState(!1),l=s.useRef(null),[a,v]=s.useState(null);function o(){v(Pt(l.current,e==null?void 0:e.closeExplicitly,()=>t.close())),i(!0)}return s.useEffect(()=>()=>a==null?void 0:a.deactivate(),[a]),T.jsx("div",{className:"im-modal-container fixed inset-0 z-40 overflow-y-auto p-4",children:T.jsx("div",{className:be("im-modal-positioner flex min-h-full justify-center",{"items-start":e.position==="top","items-center":e.position==="center","items-end":e.position==="bottom"}),children:T.jsx(Ce,{as:"div",ref:l,enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",afterEnter:o,afterLeave:t.afterLeave,className:be("im-modal-wrapper pointer-events-auto w-full transition duration-300 ease-in-out",t.onTopOfStack?"":"blur-sm",{"sm:max-w-sm":e.maxWidth==="sm","sm:max-w-md":e.maxWidth==="md","sm:max-w-md md:max-w-lg":e.maxWidth==="lg","sm:max-w-md md:max-w-xl":e.maxWidth==="xl","sm:max-w-md md:max-w-xl lg:max-w-2xl":e.maxWidth==="2xl","sm:max-w-md md:max-w-xl lg:max-w-3xl":e.maxWidth==="3xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl":e.maxWidth==="4xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl":e.maxWidth==="5xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl":e.maxWidth==="6xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl":e.maxWidth==="7xl"}),children:T.jsxs("div",{className:`im-modal-content relative ${e.paddingClasses} ${e.panelClasses}`,"data-inertiaui-modal-entered":r,children:[e.closeButton&&T.jsx("div",{className:"absolute right-0 top-0 pr-3 pt-3",children:T.jsx(Tt,{onClick:t.close})}),typeof n=="function"?n({modalContext:t,config:e}):n]})})})})},Vn=({modalContext:t,config:e,children:n})=>{const[r,i]=s.useState(!1),l=s.useRef(null),[a,v]=s.useState(null);function o(){v(Pt(l.current,e==null?void 0:e.closeExplicitly,()=>t.close())),i(!0)}return s.useEffect(()=>()=>a==null?void 0:a.deactivate(),[a]),T.jsx("div",{className:"im-slideover-container fixed inset-0 z-40 overflow-y-auto overflow-x-hidden",children:T.jsx("div",{className:be("im-slideover-positioner flex min-h-full items-center",{"justify-start rtl:justify-end":(e==null?void 0:e.position)==="left","justify-end rtl:justify-start":(e==null?void 0:e.position)==="right"}),children:T.jsx(Ce,{as:"div",ref:l,enterFrom:`opacity-0 ${e.position==="left"?"-translate-x-full":"translate-x-full"}`,enterTo:"opacity-100 translate-x-0",leaveFrom:"opacity-100 translate-x-0",leaveTo:`opacity-0 ${e.position==="left"?"-translate-x-full":"translate-x-full"}`,afterEnter:o,afterLeave:t.afterLeave,className:be("im-slideover-wrapper pointer-events-auto w-full transition duration-300 ease-in-out",t.onTopOfStack?"":"blur-sm",{"sm:max-w-sm":e.maxWidth==="sm","sm:max-w-md":e.maxWidth==="md","sm:max-w-md md:max-w-lg":e.maxWidth==="lg","sm:max-w-md md:max-w-xl":e.maxWidth==="xl","sm:max-w-md md:max-w-xl lg:max-w-2xl":e.maxWidth==="2xl","sm:max-w-md md:max-w-xl lg:max-w-3xl":e.maxWidth==="3xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl":e.maxWidth==="4xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl":e.maxWidth==="5xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl":e.maxWidth==="6xl","sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl":e.maxWidth==="7xl"}),children:T.jsxs("div",{className:`im-slideover-content relative ${e.paddingClasses} ${e.panelClasses}`,"data-inertiaui-modal-entered":r,children:[e.closeButton&&T.jsx("div",{className:"absolute right-0 top-0 pr-3 pt-3",children:T.jsx(Tt,{onClick:t.close})}),typeof n=="function"?n({modalContext:t,config:e}):n]})})})})},It=s.forwardRef(({name:t,children:e,onFocus:n=null,onBlur:r=null,onClose:i=null,onSuccess:l=null,onAfterLeave:a=null,...v},o)=>{const b=E=>typeof e=="function"?e(E):e,g=s.useRef(null);return s.useEffect(()=>{var E;if(((E=g==null?void 0:g.current)==null?void 0:E.index)===0)return ze.prepare(),()=>ze.cleanup()},[g]),s.useImperativeHandle(o,()=>g.current,[g]),T.jsx($e,{ref:g,name:t,onFocus:n,onBlur:r,onClose:i,onSuccess:l,...v,children:({afterLeave:E,close:F,config:S,emit:f,getChildModal:y,getParentModal:c,id:h,index:p,isOpen:w,modalContext:N,onTopOfStack:m,reload:P,setOpen:j,shouldRender:B})=>T.jsx(Pn,{appear:!0,show:w??!1,afterLeave:a,children:T.jsxs("div",{className:"im-dialog relative z-20","data-inertiaui-modal-id":h,"data-inertiaui-modal-index":p,children:[p===0?T.jsx(Ce,{enter:"transition transform ease-in-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"transition transform ease-in-out duration-300",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:m?T.jsx("div",{className:"im-backdrop fixed inset-0 z-30 bg-black/75","aria-hidden":"true"}):T.jsx("div",{})}):null,p>0&&m?T.jsx("div",{className:"im-backdrop fixed inset-0 z-30 bg-black/75"}):null,S.slideover?T.jsx(Vn,{modalContext:N,config:S,children:b({afterLeave:E,close:F,config:S,emit:f,getChildModal:y,getParentModal:c,id:h,index:p,isOpen:w,modalContext:N,onTopOfStack:m,reload:P,setOpen:j,shouldRender:B})}):T.jsx(_n,{modalContext:N,config:S,children:b({afterLeave:E,close:F,config:S,emit:f,getChildModal:y,getParentModal:c,id:h,index:p,isOpen:w,modalContext:N,onTopOfStack:m,reload:P,setOpen:j,shouldRender:B})})]})})})});It.displayName="Modal";const zn=({href:t,method:e="get",data:n={},as:r="a",headers:i={},queryStringArrayFormat:l="brackets",onAfterLeave:a=null,onBlur:v=null,onClose:o=null,onError:b=null,onFocus:g=null,onStart:E=null,onSuccess:F=null,navigate:S=null,children:f,...y})=>{const[c,h]=s.useState(!1),[p,w]=s.useState(null),{stack:N,visit:m}=ue(),P=s.useMemo(()=>S??pe("navigate"),[S]),j={},B={};Object.keys(y).forEach(d=>{Qe.includes(d)||(d.startsWith("on")&&typeof y[d]=="function"?d.toLowerCase()in window?j[d]=y[d]:B[d]=y[d]:j[d]=y[d])});const[H,U]=s.useState(!1);s.useEffect(()=>{p&&(p.onTopOfStack&&H?g==null||g():!p.onTopOfStack&&!H&&(v==null||v()),U(!p.onTopOfStack))},[N]);const W=s.useCallback(()=>{o==null||o()},[o]),k=s.useCallback(()=>{w(null),a==null||a()},[a]),u=s.useCallback(d=>{d==null||d.preventDefault(),!c&&(t.startsWith("#")||(h(!0),E==null||E()),m(t,e,n,i,Ut(Ge(y,Qe)),()=>W(N.length),k,l,P).then(x=>{w(x),x.registerEventListenersFromProps(B),F==null||F()}).catch(x=>{console.error(x),b==null||b(x)}).finally(()=>h(!1)))},[t,e,n,i,l,y,W,k]);return T.jsx(r,{...j,href:t,onClick:u,children:typeof f=="function"?f({loading:c}):f})};function Gn(){return ue().stack[De()]??null}const Zn=t=>e=>(e.default.layout=n=>s.createElement(t,{},n),e);C.HeadlessModal=$e,C.Modal=It,C.ModalLink=zn,C.ModalRoot=et,C.ModalStackProvider=Je,C.getConfig=pe,C.initFromPageProps=Re,C.putConfig=Dt,C.renderApp=Bt,C.resetConfig=jt,C.setPageLayout=Zn,C.useModal=Gn,C.useModalIndex=De,C.useModalStack=ue,Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@inertiaui/modal-react",
3
3
  "author": "Pascal Baljet <pascal@protone.media>",
4
- "version": "0.16.0",
4
+ "version": "0.18.0",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -24,15 +24,13 @@
24
24
  "eslint": "eslint \"src/**/*.{js,jsx}\" --fix",
25
25
  "prettier": "prettier -w src/"
26
26
  },
27
- "dependencies": {
27
+ "devDependencies": {
28
28
  "@headlessui/react": "^2.1.0",
29
29
  "@heroicons/react": "^2.1.4",
30
- "clsx": "^2.1.1"
31
- },
32
- "devDependencies": {
33
30
  "@inertiajs/react": "^1.3.0||^2.0.0",
34
31
  "@vitejs/plugin-react": "^4.3.1",
35
32
  "axios": "^1.6.0",
33
+ "clsx": "^2.1.1",
36
34
  "eslint-config-prettier": "^9.0.0",
37
35
  "eslint-plugin-prettier": "^5.1.0",
38
36
  "eslint-plugin-react-hooks": "^4.6.2",
@@ -40,17 +38,18 @@
40
38
  "eslint-plugin-tailwindcss": "^3.15.1",
41
39
  "eslint-plugin-unused-imports": "^3.1.0",
42
40
  "eslint": "^8.57.0",
41
+ "focus-trap": "^7.6.2",
43
42
  "prettier-plugin-tailwindcss": "^0.5.12",
44
43
  "prettier": "^3.2.4",
45
- "react-dom": "^18.2.0",
46
- "react": "^18.2.0",
44
+ "react-dom": "^18.2.0||^19.0.0",
45
+ "react": "^18.2.0||^19.0.0",
47
46
  "vite-plugin-eslint": "^1.8.1",
48
47
  "vite": "^5.0"
49
48
  },
50
49
  "peerDependencies": {
51
50
  "@inertiajs/react": "^1.3.0||^2.0.0",
52
51
  "axios": "^1.6.0",
53
- "react": "^18.2.0",
54
- "react-dom": "^18.2.0"
52
+ "react": "^18.2.0||^19.0.0",
53
+ "react-dom": "^18.2.0||^19.0.0"
55
54
  }
56
55
  }
@@ -4,7 +4,7 @@ import { useModalIndex } from './ModalRenderer.jsx'
4
4
  import { useModalStack } from './ModalRoot.jsx'
5
5
  import ModalRenderer from './ModalRenderer'
6
6
 
7
- const HeadlessModal = forwardRef(({ name, children, ...props }, ref) => {
7
+ const HeadlessModal = forwardRef(({ name, children, onFocus = null, onBlur = null, onClose = null, onSuccess = null, ...props }, ref) => {
8
8
  const modalIndex = useModalIndex()
9
9
  const { stack, registerLocalModal, removeLocalModal } = useModalStack()
10
10
 
@@ -58,6 +58,22 @@ const HeadlessModal = forwardRef(({ name, children, ...props }, ref) => {
58
58
  modalContextRef.current = modalContext
59
59
  }, [modalContext])
60
60
 
61
+ useEffect(() => {
62
+ if (modalContext !== null) {
63
+ modalContext.isOpen ? onSuccess?.() : onClose?.()
64
+ }
65
+ }, [modalContext?.isOpen])
66
+
67
+ const [rendered, setRendered] = useState(false)
68
+
69
+ useEffect(() => {
70
+ if (rendered && modalContext !== null && modalContext.isOpen) {
71
+ modalContext.onTopOfStack ? onFocus?.() : onBlur?.()
72
+ }
73
+
74
+ setRendered(true)
75
+ }, [modalContext?.onTopOfStack])
76
+
61
77
  useImperativeHandle(
62
78
  ref,
63
79
  () => ({
package/src/Modal.jsx CHANGED
@@ -1,10 +1,11 @@
1
- import { Dialog, Transition, TransitionChild } from '@headlessui/react'
2
- import { forwardRef, useRef, useImperativeHandle } from 'react'
1
+ import { Transition, TransitionChild } from '@headlessui/react'
2
+ import { forwardRef, useRef, useImperativeHandle, useEffect } from 'react'
3
3
  import HeadlessModal from './HeadlessModal'
4
4
  import ModalContent from './ModalContent'
5
5
  import SlideoverContent from './SlideoverContent'
6
+ import { modalDOMHandler } from './helpers'
6
7
 
7
- const Modal = forwardRef(({ name, children, ...props }, ref) => {
8
+ const Modal = forwardRef(({ name, children, onFocus = null, onBlur = null, onClose = null, onSuccess = null, onAfterLeave = null, ...props }, ref) => {
8
9
  const renderChildren = (contentProps) => {
9
10
  if (typeof children === 'function') {
10
11
  return children(contentProps)
@@ -15,12 +16,24 @@ const Modal = forwardRef(({ name, children, ...props }, ref) => {
15
16
 
16
17
  const headlessModalRef = useRef(null)
17
18
 
19
+ useEffect(() => {
20
+ if (headlessModalRef?.current?.index === 0) {
21
+ modalDOMHandler.prepare()
22
+
23
+ return () => modalDOMHandler.cleanup()
24
+ }
25
+ }, [headlessModalRef])
26
+
18
27
  useImperativeHandle(ref, () => headlessModalRef.current, [headlessModalRef])
19
28
 
20
29
  return (
21
30
  <HeadlessModal
22
31
  ref={headlessModalRef}
23
32
  name={name}
33
+ onFocus={onFocus}
34
+ onBlur={onBlur}
35
+ onClose={onClose}
36
+ onSuccess={onSuccess}
24
37
  {...props}
25
38
  >
26
39
  {({
@@ -42,11 +55,10 @@ const Modal = forwardRef(({ name, children, ...props }, ref) => {
42
55
  <Transition
43
56
  appear={true}
44
57
  show={isOpen ?? false}
58
+ afterLeave={onAfterLeave}
45
59
  >
46
- <Dialog
47
- as="div"
60
+ <div
48
61
  className="im-dialog relative z-20"
49
- onClose={() => (config.closeExplicitly ? null : close())}
50
62
  data-inertiaui-modal-id={id}
51
63
  data-inertiaui-modal-index={index}
52
64
  >
@@ -120,7 +132,7 @@ const Modal = forwardRef(({ name, children, ...props }, ref) => {
120
132
  })}
121
133
  </ModalContent>
122
134
  )}
123
- </Dialog>
135
+ </div>
124
136
  </Transition>
125
137
  )}
126
138
  </HeadlessModal>
@@ -1,8 +1,21 @@
1
- import { TransitionChild, DialogPanel } from '@headlessui/react'
1
+ import { TransitionChild } from '@headlessui/react'
2
2
  import CloseButton from './CloseButton'
3
3
  import clsx from 'clsx'
4
+ import { focusTrapper } from './focusTrapper'
5
+ import { useEffect, useRef, useState } from 'react'
4
6
 
5
7
  const ModalContent = ({ modalContext, config, children }) => {
8
+ const [entered, setEntered] = useState(false)
9
+ const wrapper = useRef(null)
10
+ const [focusTrap, setFocusTrap] = useState(null)
11
+
12
+ function afterEnter() {
13
+ setFocusTrap(focusTrapper(wrapper.current, config?.closeExplicitly, () => modalContext.close()))
14
+ setEntered(true)
15
+ }
16
+
17
+ useEffect(() => () => focusTrap?.deactivate(), [focusTrap])
18
+
6
19
  return (
7
20
  <div className="im-modal-container fixed inset-0 z-40 overflow-y-auto p-4">
8
21
  <div
@@ -13,32 +26,42 @@ const ModalContent = ({ modalContext, config, children }) => {
13
26
  })}
14
27
  >
15
28
  <TransitionChild
29
+ as="div"
30
+ ref={wrapper}
16
31
  enterFrom="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
17
32
  enterTo="opacity-100 translate-y-0 sm:scale-100"
18
33
  leaveFrom="opacity-100 translate-y-0 sm:scale-100"
19
34
  leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
35
+ afterEnter={afterEnter}
20
36
  afterLeave={modalContext.afterLeave}
21
- className={clsx('im-modal-wrapper w-full transition duration-300 ease-in-out', modalContext.onTopOfStack ? '' : 'blur-sm', {
22
- 'sm:max-w-sm': config.maxWidth === 'sm',
23
- 'sm:max-w-md': config.maxWidth === 'md',
24
- 'sm:max-w-md md:max-w-lg': config.maxWidth === 'lg',
25
- 'sm:max-w-md md:max-w-xl': config.maxWidth === 'xl',
26
- 'sm:max-w-md md:max-w-xl lg:max-w-2xl': config.maxWidth === '2xl',
27
- 'sm:max-w-md md:max-w-xl lg:max-w-3xl': config.maxWidth === '3xl',
28
- 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl': config.maxWidth === '4xl',
29
- 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl': config.maxWidth === '5xl',
30
- 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl': config.maxWidth === '6xl',
31
- 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl': config.maxWidth === '7xl',
32
- })}
37
+ className={clsx(
38
+ 'im-modal-wrapper pointer-events-auto w-full transition duration-300 ease-in-out',
39
+ modalContext.onTopOfStack ? '' : 'blur-sm',
40
+ {
41
+ 'sm:max-w-sm': config.maxWidth === 'sm',
42
+ 'sm:max-w-md': config.maxWidth === 'md',
43
+ 'sm:max-w-md md:max-w-lg': config.maxWidth === 'lg',
44
+ 'sm:max-w-md md:max-w-xl': config.maxWidth === 'xl',
45
+ 'sm:max-w-md md:max-w-xl lg:max-w-2xl': config.maxWidth === '2xl',
46
+ 'sm:max-w-md md:max-w-xl lg:max-w-3xl': config.maxWidth === '3xl',
47
+ 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-4xl': config.maxWidth === '4xl',
48
+ 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl': config.maxWidth === '5xl',
49
+ 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-6xl': config.maxWidth === '6xl',
50
+ 'sm:max-w-md md:max-w-xl lg:max-w-3xl xl:max-w-5xl 2xl:max-w-7xl': config.maxWidth === '7xl',
51
+ },
52
+ )}
33
53
  >
34
- <DialogPanel className={`im-modal-content relative ${config.paddingClasses} ${config.panelClasses}`}>
54
+ <div
55
+ className={`im-modal-content relative ${config.paddingClasses} ${config.panelClasses}`}
56
+ data-inertiaui-modal-entered={entered}
57
+ >
35
58
  {config.closeButton && (
36
59
  <div className="absolute right-0 top-0 pr-3 pt-3">
37
60
  <CloseButton onClick={modalContext.close} />
38
61
  </div>
39
62
  )}
40
63
  {typeof children === 'function' ? children({ modalContext, config }) : children}
41
- </DialogPanel>
64
+ </div>
42
65
  </TransitionChild>
43
66
  </div>
44
67
  </div>