UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 671 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),l=(t,n)=>{a.useEffect(()=>{if(!n||!t.current)return;const o=t.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),u=o[0],s=o[o.length-1],r=e=>{e.key==="Tab"&&(e.shiftKey?document.activeElement===u&&(s.focus(),e.preventDefault()):document.activeElement===s&&(u.focus(),e.preventDefault()))},c=document.activeElement;return u.focus(),document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r),n&&(c==null||c.focus())}},[n,t])};exports.useFocusTrap=l; //# sourceMappingURL=index.cjs490.js.map