"use client"
import{j as u}from"./chunk-HQJ32QC6.mjs";import{createContext as L,useCallback as f,useContext as h,useEffect as l,useId as K,useState as p}from"react";import{jsx as g}from"react/jsx-runtime";var b=L({listeners:[],setListeners:()=>{}});function C({children:t}){let[s,r]=p([]);return g(b.Provider,{value:{listeners:s,setListeners:r},children:t})}function N(t,s,r={}){let i=K(),{listeners:d,setListeners:c}=h(b),a=f(e=>{let n=e.target,S=document.getElementById("modal-backdrop");if(e.metaKey||e.ctrlKey||n.tagName==="INPUT"||n.tagName==="TEXTAREA"||!!S!=!!r.modal||(Array.isArray(t)?!t.includes(e.key):e.key!==t))return;let y=d.filter(o=>o.enabled!==!1&&(Array.isArray(o.key)?o.key.includes(e.key):o.key===e.key));!y.length||u(y,(o,m)=>(m.priority??0)-(o.priority??0)).slice(-1)[0].id!==i||(e.preventDefault(),s(e))},[t,d,i,s]);l(()=>(document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)),[a]),l(()=>(c(e=>[...e.filter(n=>n.id!==i),{id:i,key:t,...r}]),()=>c(e=>e.filter(n=>n.id!==i))),[JSON.stringify(t),r.enabled,r.priority])}export{b as a,C as b,N as c};
