// stimulus-use@0.53.0 downloaded from https://ga.jspm.io/npm:stimulus-use@0.53.0/dist/index.js import{Controller as e}from"@hotwired/stimulus";const t=(e,t)=>{let n=e[t];return typeof n==`function`?n:(...e)=>{}},n=(e,t,n)=>{let r=e;return n===!0?r=`${t.identifier}:${e}`:typeof n==`string`&&(r=`${n}:${e}`),r},r=(e,t,n)=>{let{bubbles:r,cancelable:i,composed:a}=t||{bubbles:!0,cancelable:!0,composed:!0};return t&&Object.assign(n,{originalEvent:t}),new CustomEvent(e,{bubbles:r,cancelable:i,composed:a,detail:n})};function i(e){let t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,r=window.innerWidth||document.documentElement.clientWidth,i=t.top<=n&&t.top+t.height>0,a=t.left<=r&&t.left+t.width>0;return i&&a}function a(e){return e.replace(/(?:[_-])([a-z0-9])/g,((e,t)=>t.toUpperCase()))}const o={debug:!1,logger:console,dispatchEvent:!0,eventPrefix:!0};class StimulusUse{constructor(e,t={}){this.log=(e,t)=>{this.debug&&(this.logger.groupCollapsed(`%c${this.controller.identifier} %c#${e}`,`color: #3B82F6`,`color: unset`),this.logger.log({controllerId:this.controllerId,...t}),this.logger.groupEnd())},this.warn=e=>{this.logger.warn(`%c${this.controller.identifier} %c${e}`,`color: #3B82F6; font-weight: bold`,`color: unset`)},this.dispatch=(e,t={})=>{if(this.dispatchEvent){let{event:n,...r}=t,i=this.extendedEvent(e,n||null,r);this.targetElement.dispatchEvent(i),this.log(`dispatchEvent`,{eventName:i.type,...r})}},this.call=(e,t={})=>{let n=this.controller[e];if(typeof n==`function`)return n.call(this.controller,t)},this.extendedEvent=(e,t,n)=>{let{bubbles:r,cancelable:i,composed:a}=t||{bubbles:!0,cancelable:!0,composed:!0};return t&&Object.assign(n,{originalEvent:t}),new CustomEvent(this.composeEventName(e),{bubbles:r,cancelable:i,composed:a,detail:n})},this.composeEventName=e=>{let t=e;return this.eventPrefix===!0?t=`${this.controller.identifier}:${e}`:typeof this.eventPrefix==`string`&&(t=`${this.eventPrefix}:${e}`),t};let n=e.application;n.stimulusUseDebug!==void 0&&!n.stimulusUseDebugWarned&&(n.stimulusUseDebugWarned=!0,console.warn("[stimulus-use] `application.stimulusUseDebug` is deprecated and will be removed in a future release. Use Stimulus’ built-in debug mode instead: `application.debug = true`. https://stimulus.hotwired.dev/handbook/installing#debugging"));let r=n.debug||n.stimulusUseDebug||o.debug;this.debug=t?.debug??r,this.logger=t?.logger??o.logger,this.controller=e,this.controllerId=e.element.id||e.element.dataset.id,this.targetElement=t?.element||e.element;let{dispatchEvent:i,eventPrefix:a}=Object.assign({},o,t);Object.assign(this,{dispatchEvent:i,eventPrefix:a}),this.controllerInitialize=e.initialize.bind(e),this.controllerConnect=e.connect.bind(e),this.controllerDisconnect=e.disconnect.bind(e)}}const s={eventPrefix:!0,bubbles:!0,cancelable:!0};class UseDispatch extends StimulusUse{constructor(e,t={}){super(e,t),this.dispatch=(e,t={})=>{let{controller:r,targetElement:i,eventPrefix:a,bubbles:o,cancelable:s,log:c,warn:l}=this;Object.assign(t,{controller:r});let u=n(e,this.controller,a),d=new CustomEvent(u,{detail:t,bubbles:o,cancelable:s});return i.dispatchEvent(d),l("`useDispatch()` is deprecated. Please use the built-in `this.dispatch()` function from Stimulus. You can find more information on how to upgrade at: https://stimulus-use.dev/use-dispatch"),c(`dispatch`,{eventName:u,detail:t,bubbles:o,cancelable:s}),d},this.targetElement=t.element??e.element,this.eventPrefix=t.eventPrefix??s.eventPrefix,this.bubbles=t.bubbles??s.bubbles,this.cancelable=t.cancelable??s.cancelable,this.enhanceController()}enhanceController(){Object.assign(this.controller,{dispatch:this.dispatch})}}const c=(e,t={})=>new UseDispatch(e,t),l={overwriteDispatch:!0},u=(e,t={})=>{let{overwriteDispatch:n}=Object.assign({},l,t);Object.defineProperty(e,"isPreview",{get(){return document.documentElement.hasAttribute(`data-turbolinks-preview`)||document.documentElement.hasAttribute(`data-turbo-preview`)}}),Object.defineProperty(e,"isConnected",{get(){return!!Array.from(this.context.module.connectedContexts).find((e=>e===this.context))}}),Object.defineProperty(e,"csrfToken",{get(){return this.metaValue(`csrf-token`)}}),n&&c(e,t),Object.assign(e,{metaValue(e){let t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.getAttribute(`content`)}})};class ApplicationController extends e{constructor(e){super(e),this.isPreview=!1,this.isConnected=!1,this.csrfToken=``,u(this,this.options)}}const d={events:[`click`,`touchend`],onlyVisible:!0,dispatchEvent:!0,eventPrefix:!0},f=(e,t={})=>{let a=e,{onlyVisible:o,dispatchEvent:s,events:c,eventPrefix:l}=Object.assign({},d,t),u=e=>{let c=t?.element||a.element;if(!(e.target instanceof Node&&c.contains(e.target)||!i(c)&&o)&&(a.clickOutside&&a.clickOutside(e),s)){let t=r(n(`click:outside`,a,l),e,{controller:a});c.dispatchEvent(t)}},f=()=>{c?.forEach((e=>{window.addEventListener(e,u,!0)}))},p=()=>{c?.forEach((e=>{window.removeEventListener(e,u,!0)}))},m=a.disconnect.bind(a);return Object.assign(a,{disconnect(){p(),m()}}),f(),[f,p]};class ClickOutsideComposableController extends e{}class ClickOutsideController extends ClickOutsideComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=f(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}class DebounceController extends e{}DebounceController.debounces=[];const p=200,m=(e,t=200,{leading:n=!1,trailing:r=!0}={})=>{let i=null,a=!1;return function(){let o=Array.from(arguments),s=this,c=o.map((e=>e instanceof Event?e.params:void 0)),l=o.map((e=>e instanceof Event?e.currentTarget:void 0)),u=()=>(o.forEach(((e,t)=>{e instanceof Event&&(e.params=c[t],Object.defineProperty(e,"currentTarget",{configurable:!0,value:l[t]}))})),e.apply(s,o)),d=i===null;i&&clearTimeout(i),n&&d?(u(),a=!1):a=!0,i=setTimeout((()=>{i=null,r&&a&&(a=!1,u())}),t)}},h=(e,t)=>{let n=e;n.constructor.debounces.forEach((e=>{if(typeof e==`string`&&(n[e]=m(n[e],t?.wait,{leading:t?.leading,trailing:t?.trailing})),typeof e==`object`){let{name:r,wait:i,leading:a,trailing:o}=e;if(!r)return;n[r]=m(n[r],i??t?.wait,{leading:a??t?.leading,trailing:o??t?.trailing})}}))};class UseHover extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.targetElement.addEventListener(`mouseenter`,this.onEnter),this.targetElement.addEventListener(`mouseleave`,this.onLeave)},this.unobserve=()=>{this.targetElement.removeEventListener(`mouseenter`,this.onEnter),this.targetElement.removeEventListener(`mouseleave`,this.onLeave)},this.onEnter=e=>{this.call(`mouseEnter`,e),this.log(`mouseEnter`,{hover:!0}),this.dispatch(`mouseEnter`,{hover:!1})},this.onLeave=e=>{this.call(`mouseLeave`,e),this.log(`mouseLeave`,{hover:!1}),this.dispatch(`mouseLeave`,{hover:!1})},this.controller=e,this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const g=(e,t={})=>{let n=new UseHover(e,t);return[n.observe,n.unobserve]};class HoverComposableController extends e{}class HoverController extends HoverComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=g(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const _=[`mousemove`,`mousedown`,`resize`,`keydown`,`touchstart`,`wheel`],v=6e4,y={ms:6e4,initialState:!1,events:_,dispatchEvent:!0,eventPrefix:!0},b=(e,i={})=>{let a=e,{ms:o,initialState:s,events:c,dispatchEvent:l,eventPrefix:u}=Object.assign({},y,i),d=s,f=setTimeout((()=>{d=!0,p()}),o),p=e=>{let i=n(`away`,a,u);if(a.isIdle=!0,t(a,`away`).call(a,e),l){let t=r(i,e||null,{controller:a});a.element.dispatchEvent(t)}},m=e=>{let i=n(`back`,a,u);if(a.isIdle=!1,t(a,`back`).call(a,e),l){let t=r(i,e||null,{controller:a});a.element.dispatchEvent(t)}},h=e=>{d&&m(e),d=!1,clearTimeout(f),f=setTimeout((()=>{d=!0,p(e)}),o)},g=e=>{document.hidden||h(e)};d?p():m();let _=a.disconnect.bind(a),v=()=>{c.forEach((e=>{window.addEventListener(e,h)})),document.addEventListener(`visibilitychange`,g)},b=()=>{clearTimeout(f),c.forEach((e=>{window.removeEventListener(e,h)})),document.removeEventListener(`visibilitychange`,g)};return Object.assign(a,{disconnect(){b(),_()}}),v(),[v,b]};class IdleComposableController extends e{constructor(){super(...arguments),this.isIdle=!1}}class IdleController extends IdleComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=b(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const x={dispatchEvent:!0,eventPrefix:!0,visibleAttribute:`isVisible`},S=(e,i={})=>{let a=e,{dispatchEvent:o,eventPrefix:s,visibleAttribute:c}=Object.assign({},x,i),l=i?.element||a.element;a.intersectionElements||(a.intersectionElements=[]),a.intersectionElements.push(l);let u=e=>{let[t]=e;t.isIntersecting?f(t):l.hasAttribute(c)&&p(t)},d=new IntersectionObserver(u,i),f=e=>{if(l.setAttribute(c,`true`),t(a,`appear`).call(a,e,d),o){let t=r(n(`appear`,a,s),null,{controller:a,entry:e,observer:d});l.dispatchEvent(t)}},p=e=>{if(l.removeAttribute(c),t(a,`disappear`).call(a,e,d),o){let t=r(n(`disappear`,a,s),null,{controller:a,entry:e,observer:d});l.dispatchEvent(t)}},m=a.disconnect.bind(a),h=()=>{_(),m()},g=()=>{d.observe(l)},_=()=>{d.unobserve(l)},v=()=>a.intersectionElements.filter((e=>e.hasAttribute(c))).length===0,y=()=>a.intersectionElements.filter((e=>e.hasAttribute(c))).length===1,b=()=>a.intersectionElements.some((e=>e.hasAttribute(c))),S=()=>a.intersectionElements.every((e=>e.hasAttribute(c)));return Object.assign(a,{isVisible:S,noneVisible:v,oneVisible:y,atLeastOneVisible:b,allVisible:S,disconnect:h}),g(),[g,_]};class IntersectionComposableController extends e{}class IntersectionController extends IntersectionComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=S(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const C=(e,n)=>{let r=t=>{let[n]=t;n.isIntersecting&&!e.isLoaded&&i()},i=n=>{let r=e.data.get(`src`);if(!r)return;let i=e.element;e.isLoading=!0,t(e,`loading`).call(e,r),i.onload=()=>{a(r)},i.src=r},a=n=>{e.isLoading=!1,e.isLoaded=!0,t(e,`loaded`).call(e,n)},o=e.disconnect.bind(e),s=new IntersectionObserver(r,n),c=()=>{s.observe(e.element)},l=()=>{s.unobserve(e.element)};return Object.assign(e,{isVisible:!1,disconnect(){l(),o()}}),c(),[c,l]};class LazyLoadComposableController extends e{constructor(){super(...arguments),this.isLoading=!1,this.isLoaded=!1}}class LazyLoadController extends LazyLoadComposableController{constructor(e){super(e),this.options={rootMargin:`10%`},requestAnimationFrame((()=>{let[e,t]=C(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const w={mediaQueries:{},dispatchEvent:!0,eventPrefix:!0,debug:!1};class UseMatchMedia extends StimulusUse{constructor(e,t={}){if(super(e,t),this.matches=[],this.callback=e=>{let t=Object.keys(this.mediaQueries).find((t=>this.mediaQueries[t]===e.media));if(!t)return;let{media:n,matches:r}=e;this.changed({name:t,media:n,matches:r,event:e})},this.changed=e=>{let{name:t}=e;e.event&&(this.call(a(`${t}_changed`),e),this.dispatch(`${t}:changed`,e),this.log(`media query "${t}" changed`,e)),e.matches?(this.call(a(`is_${t}`),e),this.dispatch(`is:${t}`,e)):(this.call(a(`not_${t}`),e),this.dispatch(`not:${t}`,e))},this.observe=()=>{Object.keys(this.mediaQueries).forEach((e=>{let t=this.mediaQueries[e],n=window.matchMedia(t);n.addListener(this.callback),this.matches.push(n),this.changed({name:e,media:t,matches:n.matches})}))},this.unobserve=()=>{this.matches.forEach((e=>e.removeListener(this.callback)))},this.controller=e,this.mediaQueries=t.mediaQueries??w.mediaQueries,this.dispatchEvent=t.dispatchEvent??w.dispatchEvent,this.eventPrefix=t.eventPrefix??w.eventPrefix,this.debug=t.debug??w.debug,!window.matchMedia){console.error(`window.matchMedia() is not available`);return}this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const T=(e,t={})=>{let n=new UseMatchMedia(e,t);return[n.observe,n.unobserve]},E=(e,t)=>{let n=Object.getPrototypeOf(e);for(;n&&n!==Object.prototype;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}},D=e=>{e.constructor.memos?.forEach((t=>{let n=E(e,t);if(!n||typeof n.get!=`function`)return;let r=n.get;Object.defineProperty(e,t,{configurable:!0,get(){let e=r.call(this);return Object.defineProperty(this,t,{value:e,configurable:!0}),e}})}))},O=(e,t,n)=>{let r=n?`${a(t)}Meta`:a(t);Object.defineProperty(e,r,{get(){return A(k(t))}})};function k(e){let t=document.head.querySelector(`meta[name="${e}"]`);return t&&t.getAttribute(`content`)}function A(e){try{return JSON.parse(e)}catch(t){return e}}const j=(e,t={suffix:!0})=>{let n=e.constructor.metaNames,r=t.suffix;n?.forEach((t=>{O(e,t,r)})),Object.defineProperty(e,"metas",{get(){let e={};return n?.forEach((t=>{let n=A(k(t));n!=null&&(e[a(t)]=n)})),e}})};class UseMutation extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{try{this.observer.observe(this.targetElement,this.options)}catch(e){this.controller.application.handleError(e,`At a minimum, one of childList, attributes, and/or characterData must be true`,{})}},this.unobserve=()=>{this.observer.disconnect()},this.mutation=e=>{this.call(`mutate`,e),this.log(`mutate`,{entries:e}),this.dispatch(`mutate`,{entries:e})},this.targetElement=t?.element||e.element,this.controller=e,this.options=t,this.observer=new MutationObserver(this.mutation),this.enhanceController(),this.observe()}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const M=(e,t={})=>{let n=new UseMutation(e,t);return[n.observe,n.unobserve]};class MutationComposableController extends e{}class MutationController extends MutationComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=M(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const N={dispatchEvent:!0,eventPrefix:!0},P=(e,i={})=>{let a=e,{dispatchEvent:o,eventPrefix:s}=Object.assign({},N,i),c=i?.element||a.element,l=i?.box,u=null,d=e=>{u!==null&&cancelAnimationFrame(u),u=requestAnimationFrame((()=>{u=null;let[i]=e;if(t(a,`resize`).call(a,i.contentRect),o){let e=r(n(`resize`,a,s),null,{controller:a,entry:i});c.dispatchEvent(e)}}))},f=a.disconnect.bind(a),p=new ResizeObserver(d),m=()=>{p.observe(c,l?{box:l}:void 0)},h=()=>{u!==null&&(cancelAnimationFrame(u),u=null),p.unobserve(c)};return Object.assign(a,{disconnect(){h(),f()}}),m(),[m,h]};class ResizeComposableController extends e{}class ResizeController extends ResizeComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=P(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}class UseTargetMutation extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.observer.observe(this.targetElement,{subtree:!0,characterData:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:[this.targetSelector,this.scopedTargetSelector]})},this.unobserve=()=>{this.observer.disconnect()},this.mutation=e=>{for(let t of e)switch(t.type){case`attributes`:let e=t.target.getAttribute(t.attributeName),n=t.oldValue;if(t.attributeName===this.targetSelector||t.attributeName===this.scopedTargetSelector){let r=this.targetsUsedByThisController(n),i=this.targetsUsedByThisController(e),a=r.filter((e=>!i.includes(e))),o=i.filter((e=>!r.includes(e)));a.forEach((e=>this.targetRemoved(this.stripIdentifierPrefix(e),t.target,`attributeChange`))),o.forEach((e=>this.targetAdded(this.stripIdentifierPrefix(e),t.target,`attributeChange`)))}break;case`characterData`:let r=this.findTargetInAncestry(t.target);if(r==null)return;this.targetsUsedByThisControllerFromNode(r).forEach((e=>{this.targetChanged(this.stripIdentifierPrefix(e),r,`domMutation`)}));break;case`childList`:let{addedNodes:i,removedNodes:a}=t;i.forEach((e=>this.processNodeDOMMutation(e,this.targetAdded))),a.forEach((e=>this.processNodeDOMMutation(e,this.targetRemoved)));break}},this.controller=e,this.options=t,this.targetElement=e.element,this.identifier=e.scope.identifier,this.identifierPrefix=`${this.identifier}.`,this.targetSelector=e.scope.schema.targetAttribute,this.scopedTargetSelector=`data-${this.identifier}-target`,this.targets=t.targets||e.constructor.targets,this.prefixedTargets=this.targets.map((e=>`${this.identifierPrefix}${e}`)),this.observer=new MutationObserver(this.mutation),this.enhanceController(),this.observe()}processNodeDOMMutation(e,t){let n=e,r=t,i=[];n.nodeName==`#text`||this.targetsUsedByThisControllerFromNode(n).length==0?(r=this.targetChanged,n=this.findTargetInAncestry(e)):i=this.targetsUsedByThisControllerFromNode(n),n!=null&&(i.length==0&&(i=this.targetsUsedByThisControllerFromNode(n)),i.forEach((e=>{r.call(this,this.stripIdentifierPrefix(e),n,`domMutation`)})))}findTargetInAncestry(e){let t=e,n=[];for(t.nodeName!=`#text`&&(n=this.targetsUsedByThisControllerFromNode(t));t.parentNode!==null&&t.parentNode!=this.targetElement&&n.length==0;)if(t=t.parentNode,t.nodeName!==`#text`&&this.targetsUsedByThisControllerFromNode(t).length>0)return t;return t.nodeName==`#text`||t.parentNode==null?null:t.parentNode==this.targetElement&&this.targetsUsedByThisControllerFromNode(t).length>0?t:null}targetAdded(e,n,r){let i=`${e}TargetAdded`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.warn("`[target]TargetAdded` is deprecated. Please use the built-in `[target]TargetConnected()` function from Stimulus."),this.log(`targetAdded`,{target:e,node:n,trigger:r})}targetRemoved(e,n,r){let i=`${e}TargetRemoved`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.warn("`[target]TargetRemoved` is deprecated. Please use the built-in `[target]TargetDisconnected()` function from Stimulus."),this.log(`targetRemoved`,{target:e,node:n,trigger:r})}targetChanged(e,n,r){let i=`${e}TargetChanged`;this.controller[i]&&t(this.controller,i).call(this.controller,n),this.log(`targetChanged`,{target:e,node:n,trigger:r})}targetsUsedByThisControllerFromNode(e){if(e.nodeName==`#text`||e.nodeName==`#comment`)return[];let t=e;return this.targetsUsedByThisController(t.getAttribute(this.scopedTargetSelector)||t.getAttribute(this.targetSelector))}targetsUsedByThisController(e){e=e||``;let t=this.stripIdentifierPrefix(e).split(` `);return this.targets.filter((e=>t.indexOf(e)!==-1))}stripIdentifierPrefix(e){return e.replace(new RegExp(this.identifierPrefix,`g`),``)}enhanceController(){let e=this.controller.disconnect.bind(this.controller),t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const F=(e,t={})=>{let n=new UseTargetMutation(e,t);return n.warn("`[target]TargetAdded` and `[target]TargetRemoved` are deprecated. Please use the built-in `[target]TargetConnected()` and `[target]TargetDisconnected()` functions from Stimulus."),[n.observe,n.unobserve]};class TargetMutationComposableController extends e{}class TargetMutationController extends TargetMutationComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=F(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}class ThrottleController extends e{}ThrottleController.throttles=[];const I=200;function L(e,t=200){let n;return function(){let r=arguments,i=this;n||(n=!0,e.apply(i,r),setTimeout((()=>n=!1),t))}}const R=(e,t={})=>{let n=e;n.constructor.throttles?.forEach((e=>{if(typeof e==`string`&&(n[e]=L(n[e],t?.wait)),typeof e==`object`){let{name:r,wait:i}=e;if(!r)return;n[r]=L(n[r],i||t?.wait)}}))},z={enterFromClass:`enter`,enterActiveClass:`enterStart`,enterToClass:`enterEnd`,leaveFromClass:`leave`,leaveActiveClass:`leaveStart`,leaveToClass:`leaveEnd`},B={transitioned:!1,hiddenClass:`hidden`,preserveOriginalClass:!0,removeToClasses:!0},V=(e,t={})=>{let n=e,r=n.element.dataset.transitionTarget,i;r&&(i=n[`${r}Target`]);let a=t?.element||i||n.element;if(!(a instanceof HTMLElement||a instanceof SVGElement))return;let o=a.dataset,s=parseInt(o.leaveAfter||``)||t.leaveAfter||0,{transitioned:c,hiddenClass:l,preserveOriginalClass:u,removeToClasses:d}=Object.assign({},B,t),f=n.enter?.bind(n),p=n.leave?.bind(n),m=n.toggleTransition?.bind(n);async function h(e){if(n.transitioned)return;n.transitioned=!0,f&&f(e);let r=H(`enterFrom`,t,o),i=H(`enterActive`,t,o),c=H(`enterTo`,t,o),p=H(`leaveTo`,t,o);l&&a.classList.remove(l),d||x(a,p),await v(a,r,i,c,l,u,d),s>0&&setTimeout((()=>{g(e)}),s)}async function g(e){if(!n.transitioned)return;n.transitioned=!1,p&&p(e);let r=H(`leaveFrom`,t,o),i=H(`leaveActive`,t,o),s=H(`leaveTo`,t,o),c=H(`enterTo`,t,o);d||x(a,c),await v(a,r,i,s,l,u,d),l&&a.classList.add(l)}function _(e){m&&m(e),n.transitioned?g():h()}async function v(e,t,n,r,i,a,o){let s=[];a&&(t.forEach((t=>e.classList.contains(t)&&t!==i&&s.push(t))),n.forEach((t=>e.classList.contains(t)&&t!==i&&s.push(t))),r.forEach((t=>e.classList.contains(t)&&t!==i&&s.push(t)))),b(e,t),x(e,s),b(e,n),await W(),x(e,t),b(e,r),await U(e),x(e,n),o&&x(e,r),b(e,s)}function y(){n.transitioned=c,c?(l&&a.classList.remove(l),h()):(l&&a.classList.add(l),g())}function b(e,t){t.length>0&&e.classList.add(...t)}function x(e,t){t.length>0&&e.classList.remove(...t)}return y(),Object.assign(n,{enter:h,leave:g,toggleTransition:_}),[h,g,_]};function H(e,t,n){let r=`transition${e[0].toUpperCase()}${e.substr(1)}`,i=z[e],a=t[e]||n[r]||n[i]||` `;return G(a)?[]:a.split(` `)}async function U(e){return new Promise((t=>{let n=Number(getComputedStyle(e).transitionDuration.split(`,`)[0].replace(`s`,``))*1e3;setTimeout((()=>{t(n)}),n)}))}async function W(){return new Promise((e=>{requestAnimationFrame((()=>{requestAnimationFrame(e)}))}))}function G(e){return e.length===0||!e.trim()}class TransitionComposableController extends e{constructor(){super(...arguments),this.transitioned=!1}}class TransitionController extends TransitionComposableController{constructor(e){super(e),requestAnimationFrame((()=>{V(this,this.options)}))}}class UseVisibility extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{this.controller.isVisible=!document.hidden,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),this.handleVisibilityChange()},this.unobserve=()=>{document.removeEventListener(`visibilitychange`,this.handleVisibilityChange)},this.becomesInvisible=e=>{this.controller.isVisible=!1,this.call(`invisible`,e),this.log(`invisible`,{isVisible:!1}),this.dispatch(`invisible`,{event:e,isVisible:!1})},this.becomesVisible=e=>{this.controller.isVisible=!0,this.call(`visible`,e),this.log(`visible`,{isVisible:!0}),this.dispatch(`visible`,{event:e,isVisible:!0})},this.handleVisibilityChange=e=>{document.hidden?this.becomesInvisible(e):this.becomesVisible(e)},this.controller=e,this.enhanceController(),this.observe()}enhanceController(){let e=this.controllerDisconnect,t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const K=(e,t={})=>{let n=new UseVisibility(e,t);return[n.observe,n.unobserve]};class VisibilityComposableController extends e{constructor(){super(...arguments),this.isVisible=!1}}class VisibilityController extends VisibilityComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=K(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}class UseWindowFocus extends StimulusUse{constructor(e,t={}){super(e,t),this.observe=()=>{document.hasFocus()?this.becomesFocused():this.becomesUnfocused(),this.interval=setInterval((()=>{this.handleWindowFocusChange()}),this.intervalDuration)},this.unobserve=()=>{clearInterval(this.interval)},this.becomesUnfocused=e=>{this.controller.hasFocus=!1,this.call(`unfocus`,e),this.log(`unfocus`,{hasFocus:!1}),this.dispatch(`unfocus`,{event:e,hasFocus:!1})},this.becomesFocused=e=>{this.controller.hasFocus=!0,this.call(`focus`,e),this.log(`focus`,{hasFocus:!0}),this.dispatch(`focus`,{event:e,hasFocus:!0})},this.handleWindowFocusChange=e=>{document.hasFocus()&&!this.controller.hasFocus?this.becomesFocused(e):!document.hasFocus()&&this.controller.hasFocus&&this.becomesUnfocused(e)},this.controller=e,this.intervalDuration=t.interval||200,this.enhanceController(),this.observe()}enhanceController(){let e=this.controllerDisconnect,t=()=>{this.unobserve(),e()};Object.assign(this.controller,{disconnect:t})}}const q=(e,t={})=>{let n=new UseWindowFocus(e,t);return[n.observe,n.unobserve]};class WindowFocusComposableController extends e{constructor(){super(...arguments),this.hasFocus=!1}}class WindowFocusController extends WindowFocusComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=q(this,this.options);Object.assign(this,{observe:e,unobserve:t})}))}}const J=e=>{let n=e,r=e=>{let{innerWidth:r,innerHeight:i}=window,a={height:i||1/0,width:r||1/0,event:e};t(n,`windowResize`).call(n,a)},i=n.disconnect.bind(n),a=()=>{window.addEventListener(`resize`,r),r()},o=()=>{window.removeEventListener(`resize`,r)};return Object.assign(n,{disconnect(){o(),i()}}),a(),[a,o]};class WindowResizeComposableController extends e{}class WindowResizeController extends WindowResizeComposableController{constructor(e){super(e),requestAnimationFrame((()=>{let[e,t]=J(this);Object.assign(this,{observe:e,unobserve:t})}))}}function Y(){throw"[stimulus-use] Notice: The import for `useHotkeys()` has been moved from `stimulus-use` to `stimulus-use/hotkeys`. \nPlease change the import accordingly and add `hotkey-js` as a dependency to your project. \n\nFor more information see: https://stimulus-use.dev/use-hotkeys#importing-the-behavior"}export{ApplicationController,ClickOutsideController,HoverController,IdleController,IntersectionController,LazyLoadController,MutationController,ResizeController,TargetMutationController,TransitionController,UseHover,UseMutation,UseTargetMutation,UseVisibility,UseWindowFocus,VisibilityController,WindowFocusController,WindowResizeController,m as debounce,u as useApplication,f as useClickOutside,h as useDebounce,c as useDispatch,Y as useHotkeys,g as useHover,b as useIdle,S as useIntersection,C as useLazyLoad,T as useMatchMedia,D as useMemo,j as useMeta,M as useMutation,P as useResize,F as useTargetMutation,R as useThrottle,V as useTransition,K as useVisibility,q as useWindowFocus,J as useWindowResize};