{"version":3,"file":"stack.js","sources":["../../src/FocusScope/stack.ts"],"sourcesContent":["import { createGlobalState } from '@vueuse/core'\nimport { ref } from 'vue'\n\ninterface FocusScopeAPI {\n paused: boolean\n pause: () => void\n resume: () => void\n}\n\nconst useFocusStackState = createGlobalState(() => {\n const stack = ref([])\n return stack\n})\n\nexport function createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n const stack = useFocusStackState()\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack.value[0]\n if (focusScope !== activeFocusScope)\n activeFocusScope?.pause()\n\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack.value = arrayRemove(stack.value, focusScope)\n stack.value.unshift(focusScope)\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack.value = arrayRemove(stack.value, focusScope)\n stack.value[0]?.resume()\n },\n }\n}\n\nexport function arrayRemove(array: T[], item: T) {\n const updatedArray = [...array]\n const index = updatedArray.indexOf(item)\n if (index !== -1)\n updatedArray.splice(index, 1)\n\n return updatedArray\n}\n\nexport function removeLinks(items: HTMLElement[]) {\n return items.filter(item => item.tagName !== 'A')\n}\n"],"names":[],"mappings":";;;AASA,MAAM,kBAAA,GAAqB,kBAAkB,MAAM;AACjD,EAAM,MAAA,KAAA,GAAQ,GAAqB,CAAA,EAAE,CAAA;AACrC,EAAO,OAAA,KAAA;AACT,CAAC,CAAA;AAEM,SAAS,sBAAyB,GAAA;AAEvC,EAAA,MAAM,QAAQ,kBAAmB,EAAA;AAEjC,EAAO,OAAA;AAAA,IACL,IAAI,UAA2B,EAAA;AAE7B,MAAM,MAAA,gBAAA,GAAmB,KAAM,CAAA,KAAA,CAAM,CAAC,CAAA;AACtC,MAAA,IAAI,UAAe,KAAA,gBAAA;AACjB,QAAA,gBAAA,EAAkB,KAAM,EAAA;AAG1B,MAAA,KAAA,CAAM,KAAQ,GAAA,WAAA,CAAY,KAAM,CAAA,KAAA,EAAO,UAAU,CAAA;AACjD,MAAM,KAAA,CAAA,KAAA,CAAM,QAAQ,UAAU,CAAA;AAAA,KAChC;AAAA,IAEA,OAAO,UAA2B,EAAA;AAChC,MAAA,KAAA,CAAM,KAAQ,GAAA,WAAA,CAAY,KAAM,CAAA,KAAA,EAAO,UAAU,CAAA;AACjD,MAAM,KAAA,CAAA,KAAA,CAAM,CAAC,CAAA,EAAG,MAAO,EAAA;AAAA;AACzB,GACF;AACF;AAEgB,SAAA,WAAA,CAAe,OAAY,IAAS,EAAA;AAClD,EAAM,MAAA,YAAA,GAAe,CAAC,GAAG,KAAK,CAAA;AAC9B,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,IAAI,CAAA;AACvC,EAAA,IAAI,KAAU,KAAA,EAAA;AACZ,IAAa,YAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAE9B,EAAO,OAAA,YAAA;AACT;AAEO,SAAS,YAAY,KAAsB,EAAA;AAChD,EAAA,OAAO,KAAM,CAAA,MAAA,CAAO,CAAQ,IAAA,KAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AAClD;;;;"}