{"version":3,"file":"MenuSub-7ab99f3b.mjs","sources":["../../../node_modules/reka-ui/dist/shared/createContext.js","../../../node_modules/reka-ui/dist/shared/getActiveElement.js","../../../node_modules/reka-ui/dist/shared/handleAndDispatchCustomEvent.js","../../../node_modules/reka-ui/dist/shared/useArrowNavigation.js","../../../node_modules/reka-ui/dist/ConfigProvider/ConfigProvider.js","../../../node_modules/defu/dist/defu.mjs","../../../node_modules/reka-ui/dist/shared/useBodyScrollLock.js","../../../node_modules/reka-ui/dist/shared/useDirection.js","../../../node_modules/reka-ui/dist/shared/useEmitAsProps.js","../../../node_modules/reka-ui/dist/shared/useFocusGuards.js","../../../node_modules/reka-ui/dist/shared/useId.js","../../../node_modules/reka-ui/dist/shared/useSize.js","../../../node_modules/reka-ui/dist/shared/useTypeahead.js","../../../node_modules/reka-ui/dist/Primitive/usePrimitiveElement.js","../../../node_modules/reka-ui/dist/DismissableLayer/utils.js","../../../node_modules/reka-ui/dist/DismissableLayer/DismissableLayer.js","../../../node_modules/reka-ui/dist/FocusScope/stack.js","../../../node_modules/reka-ui/dist/FocusScope/utils.js","../../../node_modules/reka-ui/dist/FocusScope/FocusScope.js","../../../node_modules/reka-ui/dist/Menu/utils.js","../../../node_modules/reka-ui/dist/Collection/Collection.js","../../../node_modules/reka-ui/dist/RovingFocus/utils.js","../../../node_modules/reka-ui/dist/RovingFocus/RovingFocusGroup.js","../../../node_modules/reka-ui/dist/Popper/PopperRoot.js","../../../node_modules/reka-ui/dist/Popper/utils.js","../../../node_modules/reka-ui/dist/Popper/PopperContent.js","../../../node_modules/reka-ui/dist/shared/useIsUsingKeyboard.js","../../../node_modules/reka-ui/dist/Menu/MenuRoot.js","../../../node_modules/reka-ui/dist/Menu/MenuContentImpl.js","../../../node_modules/reka-ui/dist/Menu/MenuSub.js"],"sourcesContent":["import { inject, provide } from \"vue\";\n\n//#region src/shared/createContext.ts\n/**\n* @param providerComponentName - The name(s) of the component(s) providing the context.\n*\n* There are situations where context can come from multiple components. In such cases, you might need to give an array of component names to provide your context, instead of just a single string.\n*\n* @param contextName The description for injection key symbol.\n*/\nfunction createContext(providerComponentName, contextName) {\n\tconst symbolDescription = typeof providerComponentName === \"string\" && !contextName ? `${providerComponentName}Context` : contextName;\n\tconst injectionKey = Symbol(symbolDescription);\n\t/**\n\t* @param fallback The context value to return if the injection fails.\n\t*\n\t* @throws When context injection failed and no fallback is specified.\n\t* This happens when the component injecting the context is not a child of the root component providing the context.\n\t*/\n\tconst injectContext = (fallback) => {\n\t\tconst context = inject(injectionKey, fallback);\n\t\tif (context) return context;\n\t\tif (context === null) return context;\n\t\tthrow new Error(`Injection \\`${injectionKey.toString()}\\` not found. Component must be used within ${Array.isArray(providerComponentName) ? `one of the following components: ${providerComponentName.join(\", \")}` : `\\`${providerComponentName}\\``}`);\n\t};\n\tconst provideContext = (contextValue) => {\n\t\tprovide(injectionKey, contextValue);\n\t\treturn contextValue;\n\t};\n\treturn [injectContext, provideContext];\n}\n\n//#endregion\nexport { createContext };\n//# sourceMappingURL=createContext.js.map","//#region src/shared/getActiveElement.ts\nfunction getActiveElement() {\n\tlet activeElement = document.activeElement;\n\tif (activeElement == null) return null;\n\twhile (activeElement != null && activeElement.shadowRoot != null && activeElement.shadowRoot.activeElement != null) activeElement = activeElement.shadowRoot.activeElement;\n\treturn activeElement;\n}\n\n//#endregion\nexport { getActiveElement };\n//# sourceMappingURL=getActiveElement.js.map","//#region src/shared/handleAndDispatchCustomEvent.ts\nfunction handleAndDispatchCustomEvent(name, handler, detail) {\n\tconst target = detail.originalEvent.target;\n\tconst event = new CustomEvent(name, {\n\t\tbubbles: false,\n\t\tcancelable: true,\n\t\tdetail\n\t});\n\tif (handler) target.addEventListener(name, handler, { once: true });\n\ttarget.dispatchEvent(event);\n}\n\n//#endregion\nexport { handleAndDispatchCustomEvent };\n//# sourceMappingURL=handleAndDispatchCustomEvent.js.map","//#region src/shared/useArrowNavigation.ts\nconst ignoredElement = [\"INPUT\", \"TEXTAREA\"];\n/**\n* Allow arrow navigation for every html element with data-reka-collection-item tag\n*\n* @param e               Keyboard event\n* @param currentElement  Event initiator element or any element that wants to handle the navigation\n* @param parentElement   Parent element where contains all the collection items, this will collect every item to be used when nav\n* @param options         further options\n* @returns               the navigated html element or null if none\n*/\nfunction useArrowNavigation(e, currentElement, parentElement, options = {}) {\n\tif (!currentElement || options.enableIgnoredElement && ignoredElement.includes(currentElement.nodeName)) return null;\n\tconst { arrowKeyOptions = \"both\", attributeName = \"[data-reka-collection-item]\", itemsArray = [], loop = true, dir = \"ltr\", preventScroll = true, focus = false } = options;\n\tconst [right, left, up, down, home, end] = [\n\t\te.key === \"ArrowRight\",\n\t\te.key === \"ArrowLeft\",\n\t\te.key === \"ArrowUp\",\n\t\te.key === \"ArrowDown\",\n\t\te.key === \"Home\",\n\t\te.key === \"End\"\n\t];\n\tconst goingVertical = up || down;\n\tconst goingHorizontal = right || left;\n\tif (!home && !end && (!goingVertical && !goingHorizontal || arrowKeyOptions === \"vertical\" && goingHorizontal || arrowKeyOptions === \"horizontal\" && goingVertical)) return null;\n\tconst allCollectionItems = parentElement ? Array.from(parentElement.querySelectorAll(attributeName)) : itemsArray;\n\tif (!allCollectionItems.length) return null;\n\tif (preventScroll) e.preventDefault();\n\tlet item = null;\n\tif (goingHorizontal || goingVertical) {\n\t\tconst goForward = goingVertical ? down : dir === \"ltr\" ? right : left;\n\t\titem = findNextFocusableElement(allCollectionItems, currentElement, {\n\t\t\tgoForward,\n\t\t\tloop\n\t\t});\n\t} else if (home) item = allCollectionItems.at(0) || null;\n\telse if (end) item = allCollectionItems.at(-1) || null;\n\tif (focus) item?.focus();\n\treturn item;\n}\n/**\n* Recursive function to find the next focusable element to avoid disabled elements\n*\n* @param elements Elements to navigate\n* @param currentElement Current active element\n* @param options\n* @returns next focusable element\n*/\nfunction findNextFocusableElement(elements, currentElement, options, iterations = elements.length) {\n\tif (--iterations === 0) return null;\n\tconst index = elements.indexOf(currentElement);\n\tconst newIndex = options.goForward ? index + 1 : index - 1;\n\tif (!options.loop && (newIndex < 0 || newIndex >= elements.length)) return null;\n\tconst adjustedNewIndex = (newIndex + elements.length) % elements.length;\n\tconst candidate = elements[adjustedNewIndex];\n\tif (!candidate) return null;\n\tconst isDisabled = candidate.hasAttribute(\"disabled\") && candidate.getAttribute(\"disabled\") !== \"false\";\n\tif (isDisabled) return findNextFocusableElement(elements, candidate, options, iterations);\n\treturn candidate;\n}\n\n//#endregion\nexport { useArrowNavigation };\n//# sourceMappingURL=useArrowNavigation.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { defineComponent, renderSlot, toRefs } from \"vue\";\n\n//#region src/ConfigProvider/ConfigProvider.vue?vue&type=script&setup=true&lang.ts\nconst [injectConfigProviderContext, provideConfigProviderContext] = createContext(\"ConfigProvider\");\nvar ConfigProvider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tinheritAttrs: false,\n\t__name: \"ConfigProvider\",\n\tprops: {\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: \"ltr\"\n\t\t},\n\t\tlocale: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: \"en\"\n\t\t},\n\t\tscrollBody: {\n\t\t\ttype: [Boolean, Object],\n\t\t\trequired: false,\n\t\t\tdefault: true\n\t\t},\n\t\tnonce: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tuseId: {\n\t\t\ttype: Function,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst { dir, locale, scrollBody, nonce } = toRefs(props);\n\t\tprovideConfigProviderContext({\n\t\t\tdir,\n\t\t\tlocale,\n\t\t\tscrollBody,\n\t\t\tnonce,\n\t\t\tuseId: props.useId\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn renderSlot(_ctx.$slots, \"default\");\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/ConfigProvider/ConfigProvider.vue\nvar ConfigProvider_default = ConfigProvider_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { ConfigProvider_default, injectConfigProviderContext };\n//# sourceMappingURL=ConfigProvider.js.map","function isPlainObject(value) {\n  if (value === null || typeof value !== \"object\") {\n    return false;\n  }\n  const prototype = Object.getPrototypeOf(value);\n  if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) {\n    return false;\n  }\n  if (Symbol.iterator in value) {\n    return false;\n  }\n  if (Symbol.toStringTag in value) {\n    return Object.prototype.toString.call(value) === \"[object Module]\";\n  }\n  return true;\n}\n\nfunction _defu(baseObject, defaults, namespace = \".\", merger) {\n  if (!isPlainObject(defaults)) {\n    return _defu(baseObject, {}, namespace, merger);\n  }\n  const object = Object.assign({}, defaults);\n  for (const key in baseObject) {\n    if (key === \"__proto__\" || key === \"constructor\") {\n      continue;\n    }\n    const value = baseObject[key];\n    if (value === null || value === void 0) {\n      continue;\n    }\n    if (merger && merger(object, key, value, namespace)) {\n      continue;\n    }\n    if (Array.isArray(value) && Array.isArray(object[key])) {\n      object[key] = [...value, ...object[key]];\n    } else if (isPlainObject(value) && isPlainObject(object[key])) {\n      object[key] = _defu(\n        value,\n        object[key],\n        (namespace ? `${namespace}.` : \"\") + key.toString(),\n        merger\n      );\n    } else {\n      object[key] = value;\n    }\n  }\n  return object;\n}\nfunction createDefu(merger) {\n  return (...arguments_) => (\n    // eslint-disable-next-line unicorn/no-array-reduce\n    arguments_.reduce((p, c) => _defu(p, c, \"\", merger), {})\n  );\n}\nconst defu = createDefu();\nconst defuFn = createDefu((object, key, currentValue) => {\n  if (object[key] !== void 0 && typeof currentValue === \"function\") {\n    object[key] = currentValue(object[key]);\n    return true;\n  }\n});\nconst defuArrayFn = createDefu((object, key, currentValue) => {\n  if (Array.isArray(object[key]) && typeof currentValue === \"function\") {\n    object[key] = currentValue(object[key]);\n    return true;\n  }\n});\n\nexport { createDefu, defu as default, defu, defuArrayFn, defuFn };\n","import { injectConfigProviderContext } from \"../ConfigProvider/ConfigProvider.js\";\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { createSharedComposable, useEventListener } from \"@vueuse/core\";\nimport { isClient, isIOS, tryOnBeforeUnmount } from \"@vueuse/shared\";\nimport { defu } from \"defu\";\n\n//#region src/shared/useBodyScrollLock.ts\nconst useBodyLockStackCount = createSharedComposable(() => {\n\tconst map = ref(/* @__PURE__ */ new Map());\n\tconst initialOverflow = ref();\n\tconst locked = computed(() => {\n\t\tfor (const value of map.value.values()) if (value) return true;\n\t\treturn false;\n\t});\n\tconst context = injectConfigProviderContext({ scrollBody: ref(true) });\n\tlet stopTouchMoveListener = null;\n\tconst resetBodyStyle = () => {\n\t\tdocument.body.style.paddingRight = \"\";\n\t\tdocument.body.style.marginRight = \"\";\n\t\tdocument.body.style.pointerEvents = \"\";\n\t\tdocument.documentElement.style.removeProperty(\"--scrollbar-width\");\n\t\tdocument.body.style.overflow = initialOverflow.value ?? \"\";\n\t\tisIOS && stopTouchMoveListener?.();\n\t\tinitialOverflow.value = void 0;\n\t};\n\twatch(locked, (val, oldVal) => {\n\t\tif (!isClient) return;\n\t\tif (!val) {\n\t\t\tif (oldVal) resetBodyStyle();\n\t\t\treturn;\n\t\t}\n\t\tif (initialOverflow.value === void 0) initialOverflow.value = document.body.style.overflow;\n\t\tconst verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\tconst defaultConfig = {\n\t\t\tpadding: verticalScrollbarWidth,\n\t\t\tmargin: 0\n\t\t};\n\t\tconst config = context.scrollBody?.value ? typeof context.scrollBody.value === \"object\" ? defu({\n\t\t\tpadding: context.scrollBody.value.padding === true ? verticalScrollbarWidth : context.scrollBody.value.padding,\n\t\t\tmargin: context.scrollBody.value.margin === true ? verticalScrollbarWidth : context.scrollBody.value.margin\n\t\t}, defaultConfig) : defaultConfig : {\n\t\t\tpadding: 0,\n\t\t\tmargin: 0\n\t\t};\n\t\tif (verticalScrollbarWidth > 0) {\n\t\t\tdocument.body.style.paddingRight = typeof config.padding === \"number\" ? `${config.padding}px` : String(config.padding);\n\t\t\tdocument.body.style.marginRight = typeof config.margin === \"number\" ? `${config.margin}px` : String(config.margin);\n\t\t\tdocument.documentElement.style.setProperty(\"--scrollbar-width\", `${verticalScrollbarWidth}px`);\n\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t}\n\t\tif (isIOS) stopTouchMoveListener = useEventListener(document, \"touchmove\", (e) => preventDefault(e), { passive: false });\n\t\tnextTick(() => {\n\t\t\tdocument.body.style.pointerEvents = \"none\";\n\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t});\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"sync\"\n\t});\n\treturn map;\n});\nfunction useBodyScrollLock(initialState) {\n\tconst id = Math.random().toString(36).substring(2, 7);\n\tconst map = useBodyLockStackCount();\n\tmap.value.set(id, initialState ?? false);\n\tconst locked = computed({\n\t\tget: () => map.value.get(id) ?? false,\n\t\tset: (value) => map.value.set(id, value)\n\t});\n\ttryOnBeforeUnmount(() => {\n\t\tmap.value.delete(id);\n\t});\n\treturn locked;\n}\nfunction checkOverflowScroll(ele) {\n\tconst style = window.getComputedStyle(ele);\n\tif (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) return true;\n\telse {\n\t\tconst parent = ele.parentNode;\n\t\tif (!(parent instanceof Element) || parent.tagName === \"BODY\") return false;\n\t\treturn checkOverflowScroll(parent);\n\t}\n}\nfunction preventDefault(rawEvent) {\n\tconst e = rawEvent || window.event;\n\tconst _target = e.target;\n\tif (_target instanceof Element && checkOverflowScroll(_target)) return false;\n\tif (e.touches.length > 1) return true;\n\tif (e.preventDefault && e.cancelable) e.preventDefault();\n\treturn false;\n}\n\n//#endregion\nexport { useBodyScrollLock };\n//# sourceMappingURL=useBodyScrollLock.js.map","import { injectConfigProviderContext } from \"../ConfigProvider/ConfigProvider.js\";\nimport { computed, ref } from \"vue\";\n\n//#region src/shared/useDirection.ts\n/**\n* The `useDirection` function provides a way to access the current direction in your application.\n* @param {Ref<Direction | undefined>} [dir] - An optional ref containing the direction (ltr or rtl).\n* @returns  computed value that combines with the resolved direction.\n*/\nfunction useDirection(dir) {\n\tconst context = injectConfigProviderContext({ dir: ref(\"ltr\") });\n\treturn computed(() => dir?.value || context.dir?.value || \"ltr\");\n}\n\n//#endregion\nexport { useDirection };\n//# sourceMappingURL=useDirection.js.map","import { camelize, getCurrentInstance, toHandlerKey } from \"vue\";\n\n//#region src/shared/useEmitAsProps.ts\n/**\n* The `useEmitAsProps` function is a TypeScript utility that converts emitted events into props for a\n* Vue component.\n* @param emit - The `emit` parameter is a function that is used to emit events from a component. It\n* takes two parameters: `name` which is the name of the event to be emitted, and `...args` which are\n* the arguments to be passed along with the event.\n* @returns The function `useEmitAsProps` returns an object that maps event names to functions that\n* call the `emit` function with the corresponding event name and arguments.\n*/\nfunction useEmitAsProps(emit) {\n\tconst vm = getCurrentInstance();\n\tconst events = vm?.type.emits;\n\tconst result = {};\n\tif (!events?.length) console.warn(`No emitted event found. Please check component: ${vm?.type.__name}`);\n\tevents?.forEach((ev) => {\n\t\tresult[toHandlerKey(camelize(ev))] = (...arg) => emit(ev, ...arg);\n\t});\n\treturn result;\n}\n\n//#endregion\nexport { useEmitAsProps };\n//# sourceMappingURL=useEmitAsProps.js.map","import { watchEffect } from \"vue\";\nimport { isClient } from \"@vueuse/shared\";\n\n//#region src/shared/useFocusGuards.ts\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n/**\n* Injects a pair of focus guards at the edges of the whole DOM tree\n* to ensure `focusin` & `focusout` events can be caught consistently.\n*/\nfunction useFocusGuards() {\n\twatchEffect((cleanupFn) => {\n\t\tif (!isClient) return;\n\t\tconst edgeGuards = document.querySelectorAll(\"[data-reka-focus-guard]\");\n\t\tdocument.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n\t\tdocument.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n\t\tcount++;\n\t\tcleanupFn(() => {\n\t\t\tif (count === 1) document.querySelectorAll(\"[data-reka-focus-guard]\").forEach((node) => node.remove());\n\t\t\tcount--;\n\t\t});\n\t});\n}\nfunction createFocusGuard() {\n\tconst element = document.createElement(\"span\");\n\telement.setAttribute(\"data-reka-focus-guard\", \"\");\n\telement.tabIndex = 0;\n\telement.style.outline = \"none\";\n\telement.style.opacity = \"0\";\n\telement.style.position = \"fixed\";\n\telement.style.pointerEvents = \"none\";\n\treturn element;\n}\n\n//#endregion\nexport { useFocusGuards };\n//# sourceMappingURL=useFocusGuards.js.map","import { injectConfigProviderContext } from \"../ConfigProvider/ConfigProvider.js\";\nimport * as vue from \"vue\";\n\n//#region src/shared/useId.ts\nlet count = 0;\n/**\n* The `useId` function generates a unique identifier using a provided deterministic ID or a default\n* one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n* @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n* optional parameter `deterministicId`, which can be a string, null, or undefined. If\n* `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n* the `useId` function obtained\n*/\nfunction useId(deterministicId, prefix = \"reka\") {\n\tif (deterministicId) return deterministicId;\n\tif (\"useId\" in vue) return `${prefix}-${vue.useId?.()}`;\n\tconst configProviderContext = injectConfigProviderContext({ useId: void 0 });\n\tif (configProviderContext.useId) return `${prefix}-${configProviderContext.useId()}`;\n\treturn `${prefix}-${++count}`;\n}\n\n//#endregion\nexport { useId };\n//# sourceMappingURL=useId.js.map","import { computed, onMounted, ref } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\n\n//#region src/shared/useSize.ts\nfunction useSize(element) {\n\tconst size = ref();\n\tconst width = computed(() => size.value?.width ?? 0);\n\tconst height = computed(() => size.value?.height ?? 0);\n\tonMounted(() => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) {\n\t\t\tsize.value = {\n\t\t\t\twidth: el.offsetWidth,\n\t\t\t\theight: el.offsetHeight\n\t\t\t};\n\t\t\tconst resizeObserver = new ResizeObserver((entries) => {\n\t\t\t\tif (!Array.isArray(entries)) return;\n\t\t\t\tif (!entries.length) return;\n\t\t\t\tconst entry = entries[0];\n\t\t\t\tlet width$1;\n\t\t\t\tlet height$1;\n\t\t\t\tif (\"borderBoxSize\" in entry) {\n\t\t\t\t\tconst borderSizeEntry = entry.borderBoxSize;\n\t\t\t\t\tconst borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n\t\t\t\t\twidth$1 = borderSize.inlineSize;\n\t\t\t\t\theight$1 = borderSize.blockSize;\n\t\t\t\t} else {\n\t\t\t\t\twidth$1 = el.offsetWidth;\n\t\t\t\t\theight$1 = el.offsetHeight;\n\t\t\t\t}\n\t\t\t\tsize.value = {\n\t\t\t\t\twidth: width$1,\n\t\t\t\t\theight: height$1\n\t\t\t\t};\n\t\t\t});\n\t\t\tresizeObserver.observe(el, { box: \"border-box\" });\n\t\t\treturn () => resizeObserver.unobserve(el);\n\t\t} else size.value = void 0;\n\t});\n\treturn {\n\t\twidth,\n\t\theight\n\t};\n}\n\n//#endregion\nexport { useSize };\n//# sourceMappingURL=useSize.js.map","import { getActiveElement } from \"./getActiveElement.js\";\nimport { refAutoReset } from \"@vueuse/shared\";\n\n//#region src/shared/useTypeahead.ts\nfunction useTypeahead(callback) {\n\tconst search = refAutoReset(\"\", 1e3);\n\tconst handleTypeaheadSearch = (key, items) => {\n\t\tsearch.value = search.value + key;\n\t\tif (callback) callback(key);\n\t\telse {\n\t\t\tconst currentItem = getActiveElement();\n\t\t\tconst itemsWithTextValue = items.map((item) => ({\n\t\t\t\t...item,\n\t\t\t\ttextValue: item.value?.textValue ?? item.ref.textContent?.trim() ?? \"\"\n\t\t\t}));\n\t\t\tconst currentMatch = itemsWithTextValue.find((item) => item.ref === currentItem);\n\t\t\tconst values = itemsWithTextValue.map((item) => item.textValue);\n\t\t\tconst nextMatch = getNextMatch(values, search.value, currentMatch?.textValue);\n\t\t\tconst newItem = itemsWithTextValue.find((item) => item.textValue === nextMatch);\n\t\t\tif (newItem) newItem.ref.focus();\n\t\t\treturn newItem?.ref;\n\t\t}\n\t};\n\tconst resetTypeahead = () => {\n\t\tsearch.value = \"\";\n\t};\n\treturn {\n\t\tsearch,\n\t\thandleTypeaheadSearch,\n\t\tresetTypeahead\n\t};\n}\n/**\n* Wraps an array around itself at a given start index\n* Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n*/\nfunction wrapArray(array, startIndex) {\n\treturn array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n/**\n* This is the \"meat\" of the typeahead matching logic. It takes in all the values,\n* the search and the current match, and returns the next match (or `undefined`).\n*\n* We normalize the search because if a user has repeatedly pressed a character,\n* we want the exact same behavior as if we only had that one character\n* (ie. cycle through options starting with that character)\n*\n* We also reorder the values by wrapping the array around the current match.\n* This is so we always look forward from the current match, and picking the first\n* match will always be the correct one.\n*\n* Finally, if the normalized search is exactly one character, we exclude the\n* current match from the values because otherwise it would be the first to match always\n* and focus would never move. This is as opposed to the regular case, where we\n* don't want focus to move if the current match still matches.\n*/\nfunction getNextMatch(values, search, currentMatch) {\n\tconst isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n\tconst normalizedSearch = isRepeated ? search[0] : search;\n\tconst currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n\tlet wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n\tconst excludeCurrentMatch = normalizedSearch.length === 1;\n\tif (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n\tconst nextMatch = wrappedValues.find((value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase()));\n\treturn nextMatch !== currentMatch ? nextMatch : void 0;\n}\n\n//#endregion\nexport { getNextMatch, useTypeahead, wrapArray };\n//# sourceMappingURL=useTypeahead.js.map","import { computed, ref } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\n\n//#region src/Primitive/usePrimitiveElement.ts\nfunction usePrimitiveElement() {\n\tconst primitiveElement = ref();\n\tconst currentElement = computed(() => [\"#text\", \"#comment\"].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement));\n\treturn {\n\t\tprimitiveElement,\n\t\tcurrentElement\n\t};\n}\n\n//#endregion\nexport { usePrimitiveElement };\n//# sourceMappingURL=usePrimitiveElement.js.map","import { handleAndDispatchCustomEvent } from \"../shared/handleAndDispatchCustomEvent.js\";\nimport { nextTick, ref, toValue, watchEffect } from \"vue\";\nimport { isClient } from \"@vueuse/shared\";\n\n//#region src/DismissableLayer/utils.ts\nconst POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nconst FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nfunction isLayerExist(layerElement, targetElement) {\n\tconst targetLayer = targetElement.closest(\"[data-dismissable-layer]\");\n\tconst mainLayer = layerElement.dataset.dismissableLayer === \"\" ? layerElement : layerElement.querySelector(\"[data-dismissable-layer]\");\n\tconst nodeList = Array.from(layerElement.ownerDocument.querySelectorAll(\"[data-dismissable-layer]\"));\n\tif (targetLayer && (mainLayer === targetLayer || nodeList.indexOf(mainLayer) < nodeList.indexOf(targetLayer))) return true;\n\telse return false;\n}\n/**\n* Listens for `pointerdown` outside a DOM subtree. We use `pointerdown` rather than `pointerup`\n* to mimic layer dismissing behaviour present in OS.\n* Returns props to pass to the node we want to check for outside events.\n*/\nfunction usePointerDownOutside(onPointerDownOutside, element, enabled = true) {\n\tconst ownerDocument = element?.value?.ownerDocument ?? globalThis?.document;\n\tconst isPointerInsideDOMTree = ref(false);\n\tconst handleClickRef = ref(() => {});\n\twatchEffect((cleanupFn) => {\n\t\tif (!isClient || !toValue(enabled)) return;\n\t\tconst handlePointerDown = async (event) => {\n\t\t\tconst target = event.target;\n\t\t\tif (!element?.value || !target) return;\n\t\t\tif (isLayerExist(element.value, target)) {\n\t\t\t\tisPointerInsideDOMTree.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.target && !isPointerInsideDOMTree.value) {\n\t\t\t\tconst eventDetail = { originalEvent: event };\n\t\t\t\tfunction handleAndDispatchPointerDownOutsideEvent() {\n\t\t\t\t\thandleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, onPointerDownOutside, eventDetail);\n\t\t\t\t}\n\t\t\t\t/**\n\t\t\t\t* On touch devices, we need to wait for a click event because browsers implement\n\t\t\t\t* a ~350ms delay between the time the user stops touching the display and when the\n\t\t\t\t* browser executes events. We need to ensure we don't reactivate pointer-events within\n\t\t\t\t* this timeframe otherwise the browser may execute events that should have been prevented.\n\t\t\t\t*\n\t\t\t\t* Additionally, this also lets us deal automatically with cancellations when a click event\n\t\t\t\t* isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n\t\t\t\t*\n\t\t\t\t* This is why we also continuously remove the previous listener, because we cannot be\n\t\t\t\t* certain that it was raised, and therefore cleaned-up.\n\t\t\t\t*/\n\t\t\t\tif (event.pointerType === \"touch\") {\n\t\t\t\t\townerDocument.removeEventListener(\"click\", handleClickRef.value);\n\t\t\t\t\thandleClickRef.value = handleAndDispatchPointerDownOutsideEvent;\n\t\t\t\t\townerDocument.addEventListener(\"click\", handleClickRef.value, { once: true });\n\t\t\t\t} else handleAndDispatchPointerDownOutsideEvent();\n\t\t\t} else ownerDocument.removeEventListener(\"click\", handleClickRef.value);\n\t\t\tisPointerInsideDOMTree.value = false;\n\t\t};\n\t\t/**\n\t\t* if this hook executes in a component that mounts via a `pointerdown` event, the event\n\t\t* would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n\t\t* this by delaying the event listener registration on the document.\n\t\t* This is how the DOM works, ie:\n\t\t* ```\n\t\t* button.addEventListener('pointerdown', () => {\n\t\t*   console.log('I will log');\n\t\t*   document.addEventListener('pointerdown', () => {\n\t\t*     console.log('I will also log');\n\t\t*   })\n\t\t* });\n\t\t*/\n\t\tconst timerId = window.setTimeout(() => {\n\t\t\townerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n\t\t}, 0);\n\t\tcleanupFn(() => {\n\t\t\twindow.clearTimeout(timerId);\n\t\t\townerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n\t\t\townerDocument.removeEventListener(\"click\", handleClickRef.value);\n\t\t});\n\t});\n\treturn { onPointerDownCapture: () => {\n\t\tif (!toValue(enabled)) return;\n\t\tisPointerInsideDOMTree.value = true;\n\t} };\n}\n/**\n* Listens for when focus happens outside a DOM subtree.\n* Returns props to pass to the root (node) of the subtree we want to check.\n*/\nfunction useFocusOutside(onFocusOutside, element, enabled = true) {\n\tconst ownerDocument = element?.value?.ownerDocument ?? globalThis?.document;\n\tconst isFocusInsideDOMTree = ref(false);\n\twatchEffect((cleanupFn) => {\n\t\tif (!isClient || !toValue(enabled)) return;\n\t\tconst handleFocus = async (event) => {\n\t\t\tif (!element?.value) return;\n\t\t\tawait nextTick();\n\t\t\tawait nextTick();\n\t\t\tconst target = event.target;\n\t\t\tif (!element.value || !target || isLayerExist(element.value, target)) return;\n\t\t\tif (event.target && !isFocusInsideDOMTree.value) {\n\t\t\t\tconst eventDetail = { originalEvent: event };\n\t\t\t\thandleAndDispatchCustomEvent(FOCUS_OUTSIDE, onFocusOutside, eventDetail);\n\t\t\t}\n\t\t};\n\t\townerDocument.addEventListener(\"focusin\", handleFocus);\n\t\tcleanupFn(() => ownerDocument.removeEventListener(\"focusin\", handleFocus));\n\t});\n\treturn {\n\t\tonFocusCapture: () => {\n\t\t\tif (!toValue(enabled)) return;\n\t\t\tisFocusInsideDOMTree.value = true;\n\t\t},\n\t\tonBlurCapture: () => {\n\t\t\tif (!toValue(enabled)) return;\n\t\t\tisFocusInsideDOMTree.value = false;\n\t\t}\n\t};\n}\n\n//#endregion\nexport { useFocusOutside, usePointerDownOutside };\n//# sourceMappingURL=utils.js.map","import { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { useFocusOutside, usePointerDownOutside } from \"./utils.js\";\nimport { computed, createBlock, defineComponent, nextTick, normalizeStyle, openBlock, reactive, renderSlot, unref, watchEffect, withCtx } from \"vue\";\nimport { onKeyStroke } from \"@vueuse/core\";\n\n//#region src/DismissableLayer/DismissableLayer.vue?vue&type=script&setup=true&lang.ts\nconst context = reactive({\n\tlayersRoot: /* @__PURE__ */ new Set(),\n\tlayersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n\tbranches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"DismissableLayer\",\n\tprops: {\n\t\tdisableOutsidePointerEvents: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t}\n\t},\n\temits: [\n\t\t\"escapeKeyDown\",\n\t\t\"pointerDownOutside\",\n\t\t\"focusOutside\",\n\t\t\"interactOutside\",\n\t\t\"dismiss\"\n\t],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { forwardRef, currentElement: layerElement } = useForwardExpose();\n\t\tconst ownerDocument = computed(() => layerElement.value?.ownerDocument ?? globalThis.document);\n\t\tconst layers = computed(() => context.layersRoot);\n\t\tconst index = computed(() => {\n\t\t\treturn layerElement.value ? Array.from(layers.value).indexOf(layerElement.value) : -1;\n\t\t});\n\t\tconst isBodyPointerEventsDisabled = computed(() => {\n\t\t\treturn context.layersWithOutsidePointerEventsDisabled.size > 0;\n\t\t});\n\t\tconst isPointerEventsEnabled = computed(() => {\n\t\t\tconst localLayers = Array.from(layers.value);\n\t\t\tconst [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n\t\t\tconst highestLayerWithOutsidePointerEventsDisabledIndex = localLayers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n\t\t\treturn index.value >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\t\t});\n\t\tconst pointerDownOutside = usePointerDownOutside(async (event) => {\n\t\t\tconst isPointerDownOnBranch = [...context.branches].some((branch) => branch?.contains(event.target));\n\t\t\tif (!isPointerEventsEnabled.value || isPointerDownOnBranch) return;\n\t\t\temits(\"pointerDownOutside\", event);\n\t\t\temits(\"interactOutside\", event);\n\t\t\tawait nextTick();\n\t\t\tif (!event.defaultPrevented) emits(\"dismiss\");\n\t\t}, layerElement);\n\t\tconst focusOutside = useFocusOutside((event) => {\n\t\t\tconst isFocusInBranch = [...context.branches].some((branch) => branch?.contains(event.target));\n\t\t\tif (isFocusInBranch) return;\n\t\t\temits(\"focusOutside\", event);\n\t\t\temits(\"interactOutside\", event);\n\t\t\tif (!event.defaultPrevented) emits(\"dismiss\");\n\t\t}, layerElement);\n\t\tonKeyStroke(\"Escape\", (event) => {\n\t\t\tconst isHighestLayer = index.value === layers.value.size - 1;\n\t\t\tif (!isHighestLayer) return;\n\t\t\temits(\"escapeKeyDown\", event);\n\t\t\tif (!event.defaultPrevented) emits(\"dismiss\");\n\t\t});\n\t\tlet originalBodyPointerEvents;\n\t\twatchEffect((cleanupFn) => {\n\t\t\tif (!layerElement.value) return;\n\t\t\tif (props.disableOutsidePointerEvents) {\n\t\t\t\tif (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n\t\t\t\t\toriginalBodyPointerEvents = ownerDocument.value.body.style.pointerEvents;\n\t\t\t\t\townerDocument.value.body.style.pointerEvents = \"none\";\n\t\t\t\t}\n\t\t\t\tcontext.layersWithOutsidePointerEventsDisabled.add(layerElement.value);\n\t\t\t}\n\t\t\tlayers.value.add(layerElement.value);\n\t\t\tcleanupFn(() => {\n\t\t\t\tif (props.disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) ownerDocument.value.body.style.pointerEvents = originalBodyPointerEvents;\n\t\t\t});\n\t\t});\n\t\twatchEffect((cleanupFn) => {\n\t\t\tcleanupFn(() => {\n\t\t\t\tif (!layerElement.value) return;\n\t\t\t\tlayers.value.delete(layerElement.value);\n\t\t\t\tcontext.layersWithOutsidePointerEventsDisabled.delete(layerElement.value);\n\t\t\t});\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref: unref(forwardRef),\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"data-dismissable-layer\": \"\",\n\t\t\t\tstyle: normalizeStyle({ pointerEvents: isBodyPointerEventsDisabled.value ? isPointerEventsEnabled.value ? \"auto\" : \"none\" : void 0 }),\n\t\t\t\tonFocusCapture: unref(focusOutside).onFocusCapture,\n\t\t\t\tonBlurCapture: unref(focusOutside).onBlurCapture,\n\t\t\t\tonPointerdownCapture: unref(pointerDownOutside).onPointerDownCapture\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as-child\",\n\t\t\t\t\"as\",\n\t\t\t\t\"style\",\n\t\t\t\t\"onFocusCapture\",\n\t\t\t\t\"onBlurCapture\",\n\t\t\t\t\"onPointerdownCapture\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/DismissableLayer/DismissableLayer.vue\nvar DismissableLayer_default = DismissableLayer_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { DismissableLayer_default, context };\n//# sourceMappingURL=DismissableLayer.js.map","import { ref } from \"vue\";\nimport { createGlobalState } from \"@vueuse/core\";\n\n//#region src/FocusScope/stack.ts\nconst useFocusStackState = createGlobalState(() => {\n\tconst stack = ref([]);\n\treturn stack;\n});\nfunction createFocusScopesStack() {\n\t/** A stack of focus scopes, with the active one at the top */\n\tconst stack = useFocusStackState();\n\treturn {\n\t\tadd(focusScope) {\n\t\t\tconst activeFocusScope = stack.value[0];\n\t\t\tif (focusScope !== activeFocusScope) activeFocusScope?.pause();\n\t\t\tstack.value = arrayRemove(stack.value, focusScope);\n\t\t\tstack.value.unshift(focusScope);\n\t\t},\n\t\tremove(focusScope) {\n\t\t\tstack.value = arrayRemove(stack.value, focusScope);\n\t\t\tstack.value[0]?.resume();\n\t\t}\n\t};\n}\nfunction arrayRemove(array, item) {\n\tconst updatedArray = [...array];\n\tconst index = updatedArray.indexOf(item);\n\tif (index !== -1) updatedArray.splice(index, 1);\n\treturn updatedArray;\n}\nfunction removeLinks(items) {\n\treturn items.filter((item) => item.tagName !== \"A\");\n}\n\n//#endregion\nexport { createFocusScopesStack, removeLinks };\n//# sourceMappingURL=stack.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\n\n//#region src/FocusScope/utils.ts\nconst AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nconst AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nconst EVENT_OPTIONS = {\n\tbubbles: false,\n\tcancelable: true\n};\n/**\n* Attempts focusing the first element in a list of candidates.\n* Stops when focus has actually moved.\n*/\nfunction focusFirst(candidates, { select = false } = {}) {\n\tconst previouslyFocusedElement = getActiveElement();\n\tfor (const candidate of candidates) {\n\t\tfocus(candidate, { select });\n\t\tif (getActiveElement() !== previouslyFocusedElement) return true;\n\t}\n}\n/**\n* Returns the first and last tabbable elements inside a container.\n*/\nfunction getTabbableEdges(container) {\n\tconst candidates = getTabbableCandidates(container);\n\tconst first = findVisible(candidates, container);\n\tconst last = findVisible(candidates.reverse(), container);\n\treturn [first, last];\n}\n/**\n* Returns a list of potential tabbable candidates.\n*\n* NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n* elements are not visible. This cannot be worked out easily by just reading a property, but rather\n* necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n*\n* See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n* Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n*/\nfunction getTabbableCandidates(container) {\n\tconst nodes = [];\n\tconst walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, { acceptNode: (node) => {\n\t\tconst isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n\t\tif (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n\t\treturn node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n\t} });\n\twhile (walker.nextNode()) nodes.push(walker.currentNode);\n\treturn nodes;\n}\n/**\n* Returns the first visible element in a list.\n* NOTE: Only checks visibility up to the `container`.\n*/\nfunction findVisible(elements, container) {\n\tfor (const element of elements) if (!isHidden(element, { upTo: container })) return element;\n}\nfunction isHidden(node, { upTo }) {\n\tif (getComputedStyle(node).visibility === \"hidden\") return true;\n\twhile (node) {\n\t\tif (upTo !== void 0 && node === upTo) return false;\n\t\tif (getComputedStyle(node).display === \"none\") return true;\n\t\tnode = node.parentElement;\n\t}\n\treturn false;\n}\nfunction isSelectableInput(element) {\n\treturn element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n\tif (element && element.focus) {\n\t\tconst previouslyFocusedElement = getActiveElement();\n\t\telement.focus({ preventScroll: true });\n\t\tif (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n\t}\n}\n\n//#endregion\nexport { AUTOFOCUS_ON_MOUNT, AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS, focus, focusFirst, getTabbableCandidates, getTabbableEdges };\n//# sourceMappingURL=utils.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\nimport { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { createFocusScopesStack, removeLinks } from \"./stack.js\";\nimport { AUTOFOCUS_ON_MOUNT, AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS, focus, focusFirst, getTabbableCandidates, getTabbableEdges } from \"./utils.js\";\nimport { createBlock, defineComponent, nextTick, openBlock, reactive, ref, renderSlot, unref, watchEffect, withCtx } from \"vue\";\nimport { isClient } from \"@vueuse/shared\";\n\n//#region src/FocusScope/FocusScope.vue?vue&type=script&setup=true&lang.ts\nvar FocusScope_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"FocusScope\",\n\tprops: {\n\t\tloop: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\ttrapped: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t}\n\t},\n\temits: [\"mountAutoFocus\", \"unmountAutoFocus\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { currentRef, currentElement } = useForwardExpose();\n\t\tconst lastFocusedElementRef = ref(null);\n\t\tconst focusScopesStack = createFocusScopesStack();\n\t\tconst focusScope = reactive({\n\t\t\tpaused: false,\n\t\t\tpause() {\n\t\t\t\tthis.paused = true;\n\t\t\t},\n\t\t\tresume() {\n\t\t\t\tthis.paused = false;\n\t\t\t}\n\t\t});\n\t\twatchEffect((cleanupFn) => {\n\t\t\tif (!isClient) return;\n\t\t\tconst container = currentElement.value;\n\t\t\tif (!props.trapped) return;\n\t\t\tfunction handleFocusIn(event) {\n\t\t\t\tif (focusScope.paused || !container) return;\n\t\t\t\tconst target = event.target;\n\t\t\t\tif (container.contains(target)) lastFocusedElementRef.value = target;\n\t\t\t\telse focus(lastFocusedElementRef.value, { select: true });\n\t\t\t}\n\t\t\tfunction handleFocusOut(event) {\n\t\t\t\tif (focusScope.paused || !container) return;\n\t\t\t\tconst relatedTarget = event.relatedTarget;\n\t\t\t\tif (relatedTarget === null) return;\n\t\t\t\tif (!container.contains(relatedTarget)) focus(lastFocusedElementRef.value, { select: true });\n\t\t\t}\n\t\t\tfunction handleMutations(mutations) {\n\t\t\t\tconst isLastFocusedElementExist = container.contains(lastFocusedElementRef.value);\n\t\t\t\tif (!isLastFocusedElementExist) focus(container);\n\t\t\t}\n\t\t\tdocument.addEventListener(\"focusin\", handleFocusIn);\n\t\t\tdocument.addEventListener(\"focusout\", handleFocusOut);\n\t\t\tconst mutationObserver = new MutationObserver(handleMutations);\n\t\t\tif (container) mutationObserver.observe(container, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupFn(() => {\n\t\t\t\tdocument.removeEventListener(\"focusin\", handleFocusIn);\n\t\t\t\tdocument.removeEventListener(\"focusout\", handleFocusOut);\n\t\t\t\tmutationObserver.disconnect();\n\t\t\t});\n\t\t});\n\t\twatchEffect(async (cleanupFn) => {\n\t\t\tconst container = currentElement.value;\n\t\t\tawait nextTick();\n\t\t\tif (!container) return;\n\t\t\tfocusScopesStack.add(focusScope);\n\t\t\tconst previouslyFocusedElement = getActiveElement();\n\t\t\tconst hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\t\t\tif (!hasFocusedCandidate) {\n\t\t\t\tconst mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n\t\t\t\tcontainer.addEventListener(AUTOFOCUS_ON_MOUNT, (ev) => emits(\"mountAutoFocus\", ev));\n\t\t\t\tcontainer.dispatchEvent(mountEvent);\n\t\t\t\tif (!mountEvent.defaultPrevented) {\n\t\t\t\t\tfocusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n\t\t\t\t\tif (getActiveElement() === previouslyFocusedElement) focus(container);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcleanupFn(() => {\n\t\t\t\tcontainer.removeEventListener(AUTOFOCUS_ON_MOUNT, (ev) => emits(\"mountAutoFocus\", ev));\n\t\t\t\tconst unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n\t\t\t\tconst unmountEventHandler = (ev) => {\n\t\t\t\t\temits(\"unmountAutoFocus\", ev);\n\t\t\t\t};\n\t\t\t\tcontainer.addEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);\n\t\t\t\tcontainer.dispatchEvent(unmountEvent);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!unmountEvent.defaultPrevented) focus(previouslyFocusedElement ?? document.body, { select: true });\n\t\t\t\t\tcontainer.removeEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);\n\t\t\t\t\tfocusScopesStack.remove(focusScope);\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t});\n\t\tfunction handleKeyDown(event) {\n\t\t\tif (!props.loop && !props.trapped) return;\n\t\t\tif (focusScope.paused) return;\n\t\t\tconst isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n\t\t\tconst focusedElement = getActiveElement();\n\t\t\tif (isTabKey && focusedElement) {\n\t\t\t\tconst container = event.currentTarget;\n\t\t\t\tconst [first, last] = getTabbableEdges(container);\n\t\t\t\tconst hasTabbableElementsInside = first && last;\n\t\t\t\tif (!hasTabbableElementsInside) {\n\t\t\t\t\tif (focusedElement === container) event.preventDefault();\n\t\t\t\t} else if (!event.shiftKey && focusedElement === last) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif (props.loop) focus(first, { select: true });\n\t\t\t\t} else if (event.shiftKey && focusedElement === first) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif (props.loop) focus(last, { select: true });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref_key: \"currentRef\",\n\t\t\t\tref: currentRef,\n\t\t\t\ttabindex: \"-1\",\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\tas: _ctx.as,\n\t\t\t\tonKeydown: handleKeyDown\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\"as-child\", \"as\"]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/FocusScope/FocusScope.vue\nvar FocusScope_default = FocusScope_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { FocusScope_default };\n//# sourceMappingURL=FocusScope.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\n\n//#region src/Menu/utils.ts\nconst ITEM_SELECT = \"menu.itemSelect\";\nconst SELECTION_KEYS = [\"Enter\", \" \"];\nconst FIRST_KEYS = [\n\t\"ArrowDown\",\n\t\"PageUp\",\n\t\"Home\"\n];\nconst LAST_KEYS = [\n\t\"ArrowUp\",\n\t\"PageDown\",\n\t\"End\"\n];\nconst FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nconst SUB_OPEN_KEYS = {\n\tltr: [...SELECTION_KEYS, \"ArrowRight\"],\n\trtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nconst SUB_CLOSE_KEYS = {\n\tltr: [\"ArrowLeft\"],\n\trtl: [\"ArrowRight\"]\n};\nfunction getOpenState(open) {\n\treturn open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n\treturn checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n\treturn isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n\tconst PREVIOUSLY_FOCUSED_ELEMENT = getActiveElement();\n\tfor (const candidate of candidates) {\n\t\tif (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n\t\tcandidate.focus();\n\t\tif (getActiveElement() !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n\t}\n}\nfunction isPointInPolygon(point, polygon) {\n\tconst { x, y } = point;\n\tlet inside = false;\n\tfor (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n\t\tconst xi = polygon[i].x;\n\t\tconst yi = polygon[i].y;\n\t\tconst xj = polygon[j].x;\n\t\tconst yj = polygon[j].y;\n\t\tconst intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n\t\tif (intersect) inside = !inside;\n\t}\n\treturn inside;\n}\nfunction isPointerInGraceArea(event, area) {\n\tif (!area) return false;\n\tconst cursorPos = {\n\t\tx: event.clientX,\n\t\ty: event.clientY\n\t};\n\treturn isPointInPolygon(cursorPos, area);\n}\nfunction isMouseEvent(event) {\n\treturn event.pointerType === \"mouse\";\n}\n\n//#endregion\nexport { FIRST_LAST_KEYS, ITEM_SELECT, LAST_KEYS, SELECTION_KEYS, SUB_CLOSE_KEYS, SUB_OPEN_KEYS, focusFirst, getCheckedState, getOpenState, isIndeterminate, isMouseEvent, isPointerInGraceArea };\n//# sourceMappingURL=utils.js.map","import { Slot } from \"../Primitive/Slot.js\";\nimport { usePrimitiveElement } from \"../Primitive/usePrimitiveElement.js\";\nimport { computed, defineComponent, h, inject, markRaw, provide, ref, watch, watchEffect } from \"vue\";\n\n//#region src/Collection/Collection.ts\nconst ITEM_DATA_ATTR = \"data-reka-collection-item\";\nfunction useCollection(options = {}) {\n\tconst { key = \"\", isProvider = false } = options;\n\tconst injectionKey = `${key}CollectionProvider`;\n\tlet context;\n\tif (isProvider) {\n\t\tconst itemMap = ref(/* @__PURE__ */ new Map());\n\t\tconst collectionRef = ref();\n\t\tcontext = {\n\t\t\tcollectionRef,\n\t\t\titemMap\n\t\t};\n\t\tprovide(injectionKey, context);\n\t} else context = inject(injectionKey);\n\tconst getItems = (includeDisabledItem = false) => {\n\t\tconst collectionNode = context.collectionRef.value;\n\t\tif (!collectionNode) return [];\n\t\tconst orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n\t\tconst items = Array.from(context.itemMap.value.values());\n\t\tconst orderedItems = items.sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref));\n\t\tif (includeDisabledItem) return orderedItems;\n\t\telse return orderedItems.filter((i) => i.ref.dataset.disabled !== \"\");\n\t};\n\tconst CollectionSlot = defineComponent({\n\t\tname: \"CollectionSlot\",\n\t\tsetup(_, { slots }) {\n\t\t\tconst { primitiveElement, currentElement } = usePrimitiveElement();\n\t\t\twatch(currentElement, () => {\n\t\t\t\tcontext.collectionRef.value = currentElement.value;\n\t\t\t});\n\t\t\treturn () => h(Slot, { ref: primitiveElement }, slots);\n\t\t}\n\t});\n\tconst CollectionItem = defineComponent({\n\t\tname: \"CollectionItem\",\n\t\tinheritAttrs: false,\n\t\tprops: { value: { validator: () => true } },\n\t\tsetup(props, { slots, attrs }) {\n\t\t\tconst { primitiveElement, currentElement } = usePrimitiveElement();\n\t\t\twatchEffect((cleanupFn) => {\n\t\t\t\tif (currentElement.value) {\n\t\t\t\t\tconst key$1 = markRaw(currentElement.value);\n\t\t\t\t\tcontext.itemMap.value.set(key$1, {\n\t\t\t\t\t\tref: currentElement.value,\n\t\t\t\t\t\tvalue: props.value\n\t\t\t\t\t});\n\t\t\t\t\tcleanupFn(() => context.itemMap.value.delete(key$1));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn () => h(Slot, {\n\t\t\t\t...attrs,\n\t\t\t\t[ITEM_DATA_ATTR]: \"\",\n\t\t\t\tref: primitiveElement\n\t\t\t}, slots);\n\t\t}\n\t});\n\tconst reactiveItems = computed(() => Array.from(context.itemMap.value.values()));\n\tconst itemMapSize = computed(() => context.itemMap.value.size);\n\treturn {\n\t\tgetItems,\n\t\treactiveItems,\n\t\titemMapSize,\n\t\tCollectionSlot,\n\t\tCollectionItem\n\t};\n}\n\n//#endregion\nexport { useCollection };\n//# sourceMappingURL=Collection.js.map","import { getActiveElement } from \"../shared/getActiveElement.js\";\n\n//#region src/RovingFocus/utils.ts\nconst ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nconst EVENT_OPTIONS = {\n\tbubbles: false,\n\tcancelable: true\n};\nconst MAP_KEY_TO_FOCUS_INTENT = {\n\tArrowLeft: \"prev\",\n\tArrowUp: \"prev\",\n\tArrowRight: \"next\",\n\tArrowDown: \"next\",\n\tPageUp: \"first\",\n\tHome: \"first\",\n\tPageDown: \"last\",\n\tEnd: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n\tif (dir !== \"rtl\") return key;\n\treturn key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n\tconst key = getDirectionAwareKey(event.key, dir);\n\tif (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n\tif (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n\treturn MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n\tconst PREVIOUSLY_FOCUSED_ELEMENT = getActiveElement();\n\tfor (const candidate of candidates) {\n\t\tif (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n\t\tcandidate.focus({ preventScroll });\n\t\tif (getActiveElement() !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n\t}\n}\n/**\n* Wraps an array around itself at a given start index\n* Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n*/\nfunction wrapArray(array, startIndex) {\n\treturn array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\n//#endregion\nexport { ENTRY_FOCUS, EVENT_OPTIONS, MAP_KEY_TO_FOCUS_INTENT, focusFirst, getFocusIntent, wrapArray };\n//# sourceMappingURL=utils.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { useDirection } from \"../shared/useDirection.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { useCollection } from \"../Collection/Collection.js\";\nimport { ENTRY_FOCUS, EVENT_OPTIONS, focusFirst } from \"./utils.js\";\nimport { createBlock, createVNode, defineComponent, openBlock, ref, renderSlot, toRefs, unref, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\n\n//#region src/RovingFocus/RovingFocusGroup.vue?vue&type=script&setup=true&lang.ts\nconst [injectRovingFocusGroupContext, provideRovingFocusGroupContext] = createContext(\"RovingFocusGroup\");\nvar RovingFocusGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"RovingFocusGroup\",\n\tprops: {\n\t\torientation: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tloop: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tcurrentTabStopId: {\n\t\t\ttype: [String, null],\n\t\t\trequired: false\n\t\t},\n\t\tdefaultCurrentTabStopId: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tpreventScrollOnEntryFocus: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t}\n\t},\n\temits: [\"entryFocus\", \"update:currentTabStopId\"],\n\tsetup(__props, { expose: __expose, emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { loop, orientation, dir: propDir } = toRefs(props);\n\t\tconst dir = useDirection(propDir);\n\t\tconst currentTabStopId = useVModel(props, \"currentTabStopId\", emits, {\n\t\t\tdefaultValue: props.defaultCurrentTabStopId,\n\t\t\tpassive: props.currentTabStopId === void 0\n\t\t});\n\t\tconst isTabbingBackOut = ref(false);\n\t\tconst isClickFocus = ref(false);\n\t\tconst focusableItemsCount = ref(0);\n\t\tconst { getItems, CollectionSlot } = useCollection({ isProvider: true });\n\t\tfunction handleFocus(event) {\n\t\t\tconst isKeyboardFocus = !isClickFocus.value;\n\t\t\tif (event.currentTarget && event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut.value) {\n\t\t\t\tconst entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n\t\t\t\tevent.currentTarget.dispatchEvent(entryFocusEvent);\n\t\t\t\temits(\"entryFocus\", entryFocusEvent);\n\t\t\t\tif (!entryFocusEvent.defaultPrevented) {\n\t\t\t\t\tconst items = getItems().map((i) => i.ref).filter((i) => i.dataset.disabled !== \"\");\n\t\t\t\t\tconst activeItem = items.find((item) => item.getAttribute(\"data-active\") === \"\");\n\t\t\t\t\tconst highlightedItem = items.find((item) => item.getAttribute(\"data-highlighted\") === \"\");\n\t\t\t\t\tconst currentItem = items.find((item) => item.id === currentTabStopId.value);\n\t\t\t\t\tconst candidateItems = [\n\t\t\t\t\t\tactiveItem,\n\t\t\t\t\t\thighlightedItem,\n\t\t\t\t\t\tcurrentItem,\n\t\t\t\t\t\t...items\n\t\t\t\t\t].filter(Boolean);\n\t\t\t\t\tfocusFirst(candidateItems, props.preventScrollOnEntryFocus);\n\t\t\t\t}\n\t\t\t}\n\t\t\tisClickFocus.value = false;\n\t\t}\n\t\tfunction handleMouseUp() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tisClickFocus.value = false;\n\t\t\t}, 1);\n\t\t}\n\t\t__expose({ getItems });\n\t\tprovideRovingFocusGroupContext({\n\t\t\tloop,\n\t\t\tdir,\n\t\t\torientation,\n\t\t\tcurrentTabStopId,\n\t\t\tonItemFocus: (tabStopId) => {\n\t\t\t\tcurrentTabStopId.value = tabStopId;\n\t\t\t},\n\t\t\tonItemShiftTab: () => {\n\t\t\t\tisTabbingBackOut.value = true;\n\t\t\t},\n\t\t\tonFocusableItemAdd: () => {\n\t\t\t\tfocusableItemsCount.value++;\n\t\t\t},\n\t\t\tonFocusableItemRemove: () => {\n\t\t\t\tfocusableItemsCount.value--;\n\t\t\t}\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(CollectionSlot), null, {\n\t\t\t\tdefault: withCtx(() => [createVNode(unref(Primitive), {\n\t\t\t\t\ttabindex: isTabbingBackOut.value || focusableItemsCount.value === 0 ? -1 : 0,\n\t\t\t\t\t\"data-orientation\": unref(orientation),\n\t\t\t\t\tas: _ctx.as,\n\t\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\t\tdir: unref(dir),\n\t\t\t\t\tstyle: { \"outline\": \"none\" },\n\t\t\t\t\tonMousedown: _cache[0] || (_cache[0] = ($event) => isClickFocus.value = true),\n\t\t\t\t\tonMouseup: handleMouseUp,\n\t\t\t\t\tonFocus: handleFocus,\n\t\t\t\t\tonBlur: _cache[1] || (_cache[1] = ($event) => isTabbingBackOut.value = false)\n\t\t\t\t}, {\n\t\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t\t_: 3\n\t\t\t\t}, 8, [\n\t\t\t\t\t\"tabindex\",\n\t\t\t\t\t\"data-orientation\",\n\t\t\t\t\t\"as\",\n\t\t\t\t\t\"as-child\",\n\t\t\t\t\t\"dir\"\n\t\t\t\t])]),\n\t\t\t\t_: 3\n\t\t\t});\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/RovingFocus/RovingFocusGroup.vue\nvar RovingFocusGroup_default = RovingFocusGroup_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { RovingFocusGroup_default, injectRovingFocusGroupContext };\n//# sourceMappingURL=RovingFocusGroup.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { defineComponent, ref, renderSlot } from \"vue\";\n\n//#region src/Popper/PopperRoot.vue?vue&type=script&setup=true&lang.ts\nconst [injectPopperRootContext, providePopperRootContext] = createContext(\"PopperRoot\");\nvar PopperRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tinheritAttrs: false,\n\t__name: \"PopperRoot\",\n\tsetup(__props) {\n\t\tconst anchor = ref();\n\t\tprovidePopperRootContext({\n\t\t\tanchor,\n\t\t\tonAnchorChange: (element) => anchor.value = element\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn renderSlot(_ctx.$slots, \"default\");\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Popper/PopperRoot.vue\nvar PopperRoot_default = PopperRoot_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PopperRoot_default, injectPopperRootContext };\n//# sourceMappingURL=PopperRoot.js.map","//#region src/Popper/utils.ts\nfunction isNotNull(value) {\n\treturn value !== null;\n}\nfunction transformOrigin(options) {\n\treturn {\n\t\tname: \"transformOrigin\",\n\t\toptions,\n\t\tfn(data) {\n\t\t\tconst { placement, rects, middlewareData } = data;\n\t\t\tconst cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n\t\t\tconst isArrowHidden = cannotCenterArrow;\n\t\t\tconst arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n\t\t\tconst arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n\t\t\tconst [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n\t\t\tconst noArrowAlign = {\n\t\t\t\tstart: \"0%\",\n\t\t\t\tcenter: \"50%\",\n\t\t\t\tend: \"100%\"\n\t\t\t}[placedAlign];\n\t\t\tconst arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n\t\t\tconst arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n\t\t\tlet x = \"\";\n\t\t\tlet y = \"\";\n\t\t\tif (placedSide === \"bottom\") {\n\t\t\t\tx = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n\t\t\t\ty = `${-arrowHeight}px`;\n\t\t\t} else if (placedSide === \"top\") {\n\t\t\t\tx = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n\t\t\t\ty = `${rects.floating.height + arrowHeight}px`;\n\t\t\t} else if (placedSide === \"right\") {\n\t\t\t\tx = `${-arrowHeight}px`;\n\t\t\t\ty = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n\t\t\t} else if (placedSide === \"left\") {\n\t\t\t\tx = `${rects.floating.width + arrowHeight}px`;\n\t\t\t\ty = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n\t\t\t}\n\t\t\treturn { data: {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t} };\n\t\t}\n\t};\n}\nfunction getSideAndAlignFromPlacement(placement) {\n\tconst [side, align = \"center\"] = placement.split(\"-\");\n\treturn [side, align];\n}\n\n//#endregion\nexport { getSideAndAlignFromPlacement, isNotNull, transformOrigin };\n//# sourceMappingURL=utils.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { useSize } from \"../shared/useSize.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { injectPopperRootContext } from \"./PopperRoot.js\";\nimport { getSideAndAlignFromPlacement, isNotNull, transformOrigin } from \"./utils.js\";\nimport { computed, createElementBlock, createVNode, defineComponent, mergeDefaults, mergeProps, normalizeStyle, openBlock, ref, renderSlot, unref, watchEffect, watchPostEffect, withCtx } from \"vue\";\nimport { computedEager } from \"@vueuse/core\";\nimport { arrow, autoUpdate, flip, hide, limitShift, offset, shift, size, useFloating } from \"@floating-ui/vue\";\n\n//#region src/Popper/PopperContent.vue?vue&type=script&setup=true&lang.ts\nconst PopperContentPropsDefaultValue = {\n\tside: \"bottom\",\n\tsideOffset: 0,\n\tsideFlip: true,\n\talign: \"center\",\n\talignOffset: 0,\n\talignFlip: true,\n\tarrowPadding: 0,\n\tavoidCollisions: true,\n\tcollisionBoundary: () => [],\n\tcollisionPadding: 0,\n\tsticky: \"partial\",\n\thideWhenDetached: false,\n\tpositionStrategy: \"fixed\",\n\tupdatePositionStrategy: \"optimized\",\n\tprioritizePosition: false\n};\nconst [injectPopperContentContext, providePopperContentContext] = createContext(\"PopperContent\");\nvar PopperContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tinheritAttrs: false,\n\t__name: \"PopperContent\",\n\tprops: /* @__PURE__ */ mergeDefaults({\n\t\tside: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tsideOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\tsideFlip: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\talign: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\talignOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\talignFlip: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tavoidCollisions: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tcollisionBoundary: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tcollisionPadding: {\n\t\t\ttype: [Number, Object],\n\t\t\trequired: false\n\t\t},\n\t\tarrowPadding: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\tsticky: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\thideWhenDetached: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tpositionStrategy: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tupdatePositionStrategy: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tdisableUpdateOnLayoutShift: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tprioritizePosition: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\treference: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t}\n\t}, { ...PopperContentPropsDefaultValue }),\n\temits: [\"placed\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst rootContext = injectPopperRootContext();\n\t\tconst { forwardRef, currentElement: contentElement } = useForwardExpose();\n\t\tconst floatingRef = ref();\n\t\tconst arrow$1 = ref();\n\t\tconst { width: arrowWidth, height: arrowHeight } = useSize(arrow$1);\n\t\tconst desiredPlacement = computed(() => props.side + (props.align !== \"center\" ? `-${props.align}` : \"\"));\n\t\tconst collisionPadding = computed(() => {\n\t\t\treturn typeof props.collisionPadding === \"number\" ? props.collisionPadding : {\n\t\t\t\ttop: 0,\n\t\t\t\tright: 0,\n\t\t\t\tbottom: 0,\n\t\t\t\tleft: 0,\n\t\t\t\t...props.collisionPadding\n\t\t\t};\n\t\t});\n\t\tconst boundary = computed(() => {\n\t\t\treturn Array.isArray(props.collisionBoundary) ? props.collisionBoundary : [props.collisionBoundary];\n\t\t});\n\t\tconst detectOverflowOptions = computed(() => {\n\t\t\treturn {\n\t\t\t\tpadding: collisionPadding.value,\n\t\t\t\tboundary: boundary.value.filter(isNotNull),\n\t\t\t\taltBoundary: boundary.value.length > 0\n\t\t\t};\n\t\t});\n\t\tconst flipOptions = computed(() => {\n\t\t\treturn {\n\t\t\t\tmainAxis: props.sideFlip,\n\t\t\t\tcrossAxis: props.alignFlip\n\t\t\t};\n\t\t});\n\t\tconst computedMiddleware = computedEager(() => {\n\t\t\treturn [\n\t\t\t\toffset({\n\t\t\t\t\tmainAxis: props.sideOffset + arrowHeight.value,\n\t\t\t\t\talignmentAxis: props.alignOffset\n\t\t\t\t}),\n\t\t\t\tprops.prioritizePosition && props.avoidCollisions && flip({\n\t\t\t\t\t...detectOverflowOptions.value,\n\t\t\t\t\t...flipOptions.value\n\t\t\t\t}),\n\t\t\t\tprops.avoidCollisions && shift({\n\t\t\t\t\tmainAxis: true,\n\t\t\t\t\tcrossAxis: !!props.prioritizePosition,\n\t\t\t\t\tlimiter: props.sticky === \"partial\" ? limitShift() : void 0,\n\t\t\t\t\t...detectOverflowOptions.value\n\t\t\t\t}),\n\t\t\t\t!props.prioritizePosition && props.avoidCollisions && flip({\n\t\t\t\t\t...detectOverflowOptions.value,\n\t\t\t\t\t...flipOptions.value\n\t\t\t\t}),\n\t\t\t\tsize({\n\t\t\t\t\t...detectOverflowOptions.value,\n\t\t\t\t\tapply: ({ elements, rects, availableWidth, availableHeight }) => {\n\t\t\t\t\t\tconst { width: anchorWidth, height: anchorHeight } = rects.reference;\n\t\t\t\t\t\tconst contentStyle = elements.floating.style;\n\t\t\t\t\t\tcontentStyle.setProperty(\"--reka-popper-available-width\", `${availableWidth}px`);\n\t\t\t\t\t\tcontentStyle.setProperty(\"--reka-popper-available-height\", `${availableHeight}px`);\n\t\t\t\t\t\tcontentStyle.setProperty(\"--reka-popper-anchor-width\", `${anchorWidth}px`);\n\t\t\t\t\t\tcontentStyle.setProperty(\"--reka-popper-anchor-height\", `${anchorHeight}px`);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tarrow$1.value && arrow({\n\t\t\t\t\telement: arrow$1.value,\n\t\t\t\t\tpadding: props.arrowPadding\n\t\t\t\t}),\n\t\t\t\ttransformOrigin({\n\t\t\t\t\tarrowWidth: arrowWidth.value,\n\t\t\t\t\tarrowHeight: arrowHeight.value\n\t\t\t\t}),\n\t\t\t\tprops.hideWhenDetached && hide({\n\t\t\t\t\tstrategy: \"referenceHidden\",\n\t\t\t\t\t...detectOverflowOptions.value\n\t\t\t\t})\n\t\t\t];\n\t\t});\n\t\tconst reference = computed(() => props.reference ?? rootContext.anchor.value);\n\t\tconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(reference, floatingRef, {\n\t\t\tstrategy: props.positionStrategy,\n\t\t\tplacement: desiredPlacement,\n\t\t\twhileElementsMounted: (...args) => {\n\t\t\t\tconst cleanup = autoUpdate(...args, {\n\t\t\t\t\tlayoutShift: !props.disableUpdateOnLayoutShift,\n\t\t\t\t\tanimationFrame: props.updatePositionStrategy === \"always\"\n\t\t\t\t});\n\t\t\t\treturn cleanup;\n\t\t\t},\n\t\t\tmiddleware: computedMiddleware\n\t\t});\n\t\tconst placedSide = computed(() => getSideAndAlignFromPlacement(placement.value)[0]);\n\t\tconst placedAlign = computed(() => getSideAndAlignFromPlacement(placement.value)[1]);\n\t\twatchPostEffect(() => {\n\t\t\tif (isPositioned.value) emits(\"placed\");\n\t\t});\n\t\tconst cannotCenterArrow = computed(() => middlewareData.value.arrow?.centerOffset !== 0);\n\t\tconst contentZIndex = ref(\"\");\n\t\twatchEffect(() => {\n\t\t\tif (contentElement.value) contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex;\n\t\t});\n\t\tconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0);\n\t\tconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0);\n\t\tprovidePopperContentContext({\n\t\t\tplacedSide,\n\t\t\tonArrowChange: (element) => arrow$1.value = element,\n\t\t\tarrowX,\n\t\t\tarrowY,\n\t\t\tshouldHideArrow: cannotCenterArrow\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createElementBlock(\"div\", {\n\t\t\t\tref_key: \"floatingRef\",\n\t\t\t\tref: floatingRef,\n\t\t\t\t\"data-reka-popper-content-wrapper\": \"\",\n\t\t\t\tstyle: normalizeStyle({\n\t\t\t\t\t...unref(floatingStyles),\n\t\t\t\t\ttransform: unref(isPositioned) ? unref(floatingStyles).transform : \"translate(0, -200%)\",\n\t\t\t\t\tminWidth: \"max-content\",\n\t\t\t\t\tzIndex: contentZIndex.value,\n\t\t\t\t\t[\"--reka-popper-transform-origin\"]: [unref(middlewareData).transformOrigin?.x, unref(middlewareData).transformOrigin?.y].join(\" \"),\n\t\t\t\t\t...unref(middlewareData).hide?.referenceHidden && {\n\t\t\t\t\t\tvisibility: \"hidden\",\n\t\t\t\t\t\tpointerEvents: \"none\"\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}, [createVNode(unref(Primitive), mergeProps({ ref: unref(forwardRef) }, _ctx.$attrs, {\n\t\t\t\t\"as-child\": props.asChild,\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"data-side\": placedSide.value,\n\t\t\t\t\"data-align\": placedAlign.value,\n\t\t\t\tstyle: { animation: !unref(isPositioned) ? \"none\" : void 0 }\n\t\t\t}), {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 16, [\n\t\t\t\t\"as-child\",\n\t\t\t\t\"as\",\n\t\t\t\t\"data-side\",\n\t\t\t\t\"data-align\",\n\t\t\t\t\"style\"\n\t\t\t])], 4);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Popper/PopperContent.vue\nvar PopperContent_default = PopperContent_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { PopperContentPropsDefaultValue, PopperContent_default, injectPopperContentContext };\n//# sourceMappingURL=PopperContent.js.map","import { onMounted, ref } from \"vue\";\nimport { createSharedComposable, useEventListener } from \"@vueuse/core\";\n\n//#region src/shared/useIsUsingKeyboard.ts\nfunction useIsUsingKeyboardImpl() {\n\tconst isUsingKeyboard = ref(false);\n\tonMounted(() => {\n\t\tuseEventListener(\"keydown\", () => {\n\t\t\tisUsingKeyboard.value = true;\n\t\t}, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t});\n\t\tuseEventListener([\"pointerdown\", \"pointermove\"], () => {\n\t\t\tisUsingKeyboard.value = false;\n\t\t}, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t});\n\t});\n\treturn isUsingKeyboard;\n}\nconst useIsUsingKeyboard = createSharedComposable(useIsUsingKeyboardImpl);\n\n//#endregion\nexport { useIsUsingKeyboard };\n//# sourceMappingURL=useIsUsingKeyboard.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { useDirection } from \"../shared/useDirection.js\";\nimport { PopperRoot_default } from \"../Popper/PopperRoot.js\";\nimport { useIsUsingKeyboard } from \"../shared/useIsUsingKeyboard.js\";\nimport { createBlock, defineComponent, openBlock, ref, renderSlot, toRefs, unref, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\n\n//#region src/Menu/MenuRoot.vue?vue&type=script&setup=true&lang.ts\nconst [injectMenuContext, provideMenuContext] = createContext([\"MenuRoot\", \"MenuSub\"], \"MenuContext\");\nconst [injectMenuRootContext, provideMenuRootContext] = createContext(\"MenuRoot\");\nvar MenuRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"MenuRoot\",\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tmodal: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true\n\t\t}\n\t},\n\temits: [\"update:open\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { modal, dir: propDir } = toRefs(props);\n\t\tconst dir = useDirection(propDir);\n\t\tconst open = useVModel(props, \"open\", emits);\n\t\tconst content = ref();\n\t\tconst isUsingKeyboardRef = useIsUsingKeyboard();\n\t\tprovideMenuContext({\n\t\t\topen,\n\t\t\tonOpenChange: (value) => {\n\t\t\t\topen.value = value;\n\t\t\t},\n\t\t\tcontent,\n\t\t\tonContentChange: (element) => {\n\t\t\t\tcontent.value = element;\n\t\t\t}\n\t\t});\n\t\tprovideMenuRootContext({\n\t\t\tonClose: () => {\n\t\t\t\topen.value = false;\n\t\t\t},\n\t\t\tisUsingKeyboardRef,\n\t\t\tdir,\n\t\t\tmodal\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(PopperRoot_default), null, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t});\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Menu/MenuRoot.vue\nvar MenuRoot_default = MenuRoot_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { MenuRoot_default, injectMenuContext, injectMenuRootContext, provideMenuContext };\n//# sourceMappingURL=MenuRoot.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { getActiveElement } from \"../shared/getActiveElement.js\";\nimport { useArrowNavigation } from \"../shared/useArrowNavigation.js\";\nimport { useBodyScrollLock } from \"../shared/useBodyScrollLock.js\";\nimport { useFocusGuards } from \"../shared/useFocusGuards.js\";\nimport { useForwardExpose } from \"../shared/useForwardExpose.js\";\nimport { useTypeahead } from \"../shared/useTypeahead.js\";\nimport { DismissableLayer_default } from \"../DismissableLayer/DismissableLayer.js\";\nimport { FocusScope_default } from \"../FocusScope/FocusScope.js\";\nimport { FIRST_LAST_KEYS, LAST_KEYS, focusFirst, getOpenState, isMouseEvent, isPointerInGraceArea } from \"./utils.js\";\nimport { RovingFocusGroup_default } from \"../RovingFocus/RovingFocusGroup.js\";\nimport { PopperContentPropsDefaultValue, PopperContent_default } from \"../Popper/PopperContent.js\";\nimport { injectMenuContext, injectMenuRootContext } from \"./MenuRoot.js\";\nimport { createBlock, createVNode, defineComponent, mergeDefaults, onUnmounted, openBlock, ref, renderSlot, toRefs, unref, watch, withCtx } from \"vue\";\n\n//#region src/Menu/MenuContentImpl.vue?vue&type=script&setup=true&lang.ts\nconst [injectMenuContentContext, provideMenuContentContext] = createContext(\"MenuContent\");\nvar MenuContentImpl_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"MenuContentImpl\",\n\tprops: /* @__PURE__ */ mergeDefaults({\n\t\tloop: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tdisableOutsidePointerEvents: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tdisableOutsideScroll: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\ttrapFocus: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tside: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tsideOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\tsideFlip: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\talign: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\talignOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\talignFlip: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tavoidCollisions: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tcollisionBoundary: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tcollisionPadding: {\n\t\t\ttype: [Number, Object],\n\t\t\trequired: false\n\t\t},\n\t\tarrowPadding: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\tsticky: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\thideWhenDetached: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tpositionStrategy: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tupdatePositionStrategy: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tdisableUpdateOnLayoutShift: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tprioritizePosition: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\treference: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t}\n\t}, { ...PopperContentPropsDefaultValue }),\n\temits: [\n\t\t\"escapeKeyDown\",\n\t\t\"pointerDownOutside\",\n\t\t\"focusOutside\",\n\t\t\"interactOutside\",\n\t\t\"entryFocus\",\n\t\t\"openAutoFocus\",\n\t\t\"closeAutoFocus\",\n\t\t\"dismiss\"\n\t],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst menuContext = injectMenuContext();\n\t\tconst rootContext = injectMenuRootContext();\n\t\tconst { trapFocus, disableOutsidePointerEvents, loop } = toRefs(props);\n\t\tuseFocusGuards();\n\t\tuseBodyScrollLock(disableOutsidePointerEvents.value);\n\t\tconst searchRef = ref(\"\");\n\t\tconst timerRef = ref(0);\n\t\tconst pointerGraceTimerRef = ref(0);\n\t\tconst pointerGraceIntentRef = ref(null);\n\t\tconst pointerDirRef = ref(\"right\");\n\t\tconst lastPointerXRef = ref(0);\n\t\tconst currentItemId = ref(null);\n\t\tconst rovingFocusGroupRef = ref();\n\t\tconst { forwardRef, currentElement: contentElement } = useForwardExpose();\n\t\tconst { handleTypeaheadSearch } = useTypeahead();\n\t\twatch(contentElement, (el) => {\n\t\t\tmenuContext.onContentChange(el);\n\t\t});\n\t\tonUnmounted(() => {\n\t\t\twindow.clearTimeout(timerRef.value);\n\t\t});\n\t\tfunction isPointerMovingToSubmenu(event) {\n\t\t\tconst isMovingTowards = pointerDirRef.value === pointerGraceIntentRef.value?.side;\n\t\t\treturn isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.value?.area);\n\t\t}\n\t\tasync function handleMountAutoFocus(event) {\n\t\t\temits(\"openAutoFocus\", event);\n\t\t\tif (event.defaultPrevented) return;\n\t\t\tevent.preventDefault();\n\t\t\tcontentElement.value?.focus({ preventScroll: true });\n\t\t}\n\t\tfunction handleKeyDown(event) {\n\t\t\tif (event.defaultPrevented) return;\n\t\t\tconst target = event.target;\n\t\t\tconst isKeyDownInside = target.closest(\"[data-reka-menu-content]\") === event.currentTarget;\n\t\t\tconst isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n\t\t\tconst isCharacterKey = event.key.length === 1;\n\t\t\tconst el = useArrowNavigation(event, getActiveElement(), contentElement.value, {\n\t\t\t\tloop: loop.value,\n\t\t\t\tarrowKeyOptions: \"vertical\",\n\t\t\t\tdir: rootContext?.dir.value,\n\t\t\t\tfocus: true,\n\t\t\t\tattributeName: \"[data-reka-collection-item]:not([data-disabled])\"\n\t\t\t});\n\t\t\tif (el) return el?.focus();\n\t\t\tif (event.code === \"Space\") return;\n\t\t\tconst collectionItems = rovingFocusGroupRef.value?.getItems() ?? [];\n\t\t\tif (isKeyDownInside) {\n\t\t\t\tif (event.key === \"Tab\") event.preventDefault();\n\t\t\t\tif (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key, collectionItems);\n\t\t\t}\n\t\t\tif (event.target !== contentElement.value) return;\n\t\t\tif (!FIRST_LAST_KEYS.includes(event.key)) return;\n\t\t\tevent.preventDefault();\n\t\t\tconst candidateNodes = [...collectionItems.map((item) => item.ref)];\n\t\t\tif (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n\t\t\tfocusFirst(candidateNodes);\n\t\t}\n\t\tfunction handleBlur(event) {\n\t\t\tif (!event?.currentTarget?.contains?.(event.target)) {\n\t\t\t\twindow.clearTimeout(timerRef.value);\n\t\t\t\tsearchRef.value = \"\";\n\t\t\t}\n\t\t}\n\t\tfunction handlePointerMove(event) {\n\t\t\tif (!isMouseEvent(event)) return;\n\t\t\tconst target = event.target;\n\t\t\tconst pointerXHasChanged = lastPointerXRef.value !== event.clientX;\n\t\t\tif ((event?.currentTarget)?.contains(target) && pointerXHasChanged) {\n\t\t\t\tconst newDir = event.clientX > lastPointerXRef.value ? \"right\" : \"left\";\n\t\t\t\tpointerDirRef.value = newDir;\n\t\t\t\tlastPointerXRef.value = event.clientX;\n\t\t\t}\n\t\t}\n\t\tprovideMenuContentContext({\n\t\t\tonItemEnter: (event) => {\n\t\t\t\tif (isPointerMovingToSubmenu(event)) return true;\n\t\t\t\telse return false;\n\t\t\t},\n\t\t\tonItemLeave: (event) => {\n\t\t\t\tif (isPointerMovingToSubmenu(event)) return;\n\t\t\t\tcontentElement.value?.focus();\n\t\t\t\tcurrentItemId.value = null;\n\t\t\t},\n\t\t\tonTriggerLeave: (event) => {\n\t\t\t\tif (isPointerMovingToSubmenu(event)) return true;\n\t\t\t\telse return false;\n\t\t\t},\n\t\t\tsearchRef,\n\t\t\tpointerGraceTimerRef,\n\t\t\tonPointerGraceIntentChange: (intent) => {\n\t\t\t\tpointerGraceIntentRef.value = intent;\n\t\t\t}\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(FocusScope_default), {\n\t\t\t\t\"as-child\": \"\",\n\t\t\t\ttrapped: unref(trapFocus),\n\t\t\t\tonMountAutoFocus: handleMountAutoFocus,\n\t\t\t\tonUnmountAutoFocus: _cache[7] || (_cache[7] = ($event) => emits(\"closeAutoFocus\", $event))\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [createVNode(unref(DismissableLayer_default), {\n\t\t\t\t\t\"as-child\": \"\",\n\t\t\t\t\t\"disable-outside-pointer-events\": unref(disableOutsidePointerEvents),\n\t\t\t\t\tonEscapeKeyDown: _cache[2] || (_cache[2] = ($event) => emits(\"escapeKeyDown\", $event)),\n\t\t\t\t\tonPointerDownOutside: _cache[3] || (_cache[3] = ($event) => emits(\"pointerDownOutside\", $event)),\n\t\t\t\t\tonFocusOutside: _cache[4] || (_cache[4] = ($event) => emits(\"focusOutside\", $event)),\n\t\t\t\t\tonInteractOutside: _cache[5] || (_cache[5] = ($event) => emits(\"interactOutside\", $event)),\n\t\t\t\t\tonDismiss: _cache[6] || (_cache[6] = ($event) => emits(\"dismiss\"))\n\t\t\t\t}, {\n\t\t\t\t\tdefault: withCtx(() => [createVNode(unref(RovingFocusGroup_default), {\n\t\t\t\t\t\tref_key: \"rovingFocusGroupRef\",\n\t\t\t\t\t\tref: rovingFocusGroupRef,\n\t\t\t\t\t\t\"current-tab-stop-id\": currentItemId.value,\n\t\t\t\t\t\t\"onUpdate:currentTabStopId\": _cache[0] || (_cache[0] = ($event) => currentItemId.value = $event),\n\t\t\t\t\t\t\"as-child\": \"\",\n\t\t\t\t\t\torientation: \"vertical\",\n\t\t\t\t\t\tdir: unref(rootContext).dir.value,\n\t\t\t\t\t\tloop: unref(loop),\n\t\t\t\t\t\tonEntryFocus: _cache[1] || (_cache[1] = (event) => {\n\t\t\t\t\t\t\temits(\"entryFocus\", event);\n\t\t\t\t\t\t\tif (!unref(rootContext).isUsingKeyboardRef.value) event.preventDefault();\n\t\t\t\t\t\t})\n\t\t\t\t\t}, {\n\t\t\t\t\t\tdefault: withCtx(() => [createVNode(unref(PopperContent_default), {\n\t\t\t\t\t\t\tref: unref(forwardRef),\n\t\t\t\t\t\t\trole: \"menu\",\n\t\t\t\t\t\t\tas: _ctx.as,\n\t\t\t\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\t\t\t\t\"aria-orientation\": \"vertical\",\n\t\t\t\t\t\t\t\"data-reka-menu-content\": \"\",\n\t\t\t\t\t\t\t\"data-state\": unref(getOpenState)(unref(menuContext).open.value),\n\t\t\t\t\t\t\tdir: unref(rootContext).dir.value,\n\t\t\t\t\t\t\tside: _ctx.side,\n\t\t\t\t\t\t\t\"side-offset\": _ctx.sideOffset,\n\t\t\t\t\t\t\talign: _ctx.align,\n\t\t\t\t\t\t\t\"align-offset\": _ctx.alignOffset,\n\t\t\t\t\t\t\t\"avoid-collisions\": _ctx.avoidCollisions,\n\t\t\t\t\t\t\t\"collision-boundary\": _ctx.collisionBoundary,\n\t\t\t\t\t\t\t\"collision-padding\": _ctx.collisionPadding,\n\t\t\t\t\t\t\t\"arrow-padding\": _ctx.arrowPadding,\n\t\t\t\t\t\t\t\"prioritize-position\": _ctx.prioritizePosition,\n\t\t\t\t\t\t\t\"position-strategy\": _ctx.positionStrategy,\n\t\t\t\t\t\t\t\"update-position-strategy\": _ctx.updatePositionStrategy,\n\t\t\t\t\t\t\tsticky: _ctx.sticky,\n\t\t\t\t\t\t\t\"hide-when-detached\": _ctx.hideWhenDetached,\n\t\t\t\t\t\t\treference: _ctx.reference,\n\t\t\t\t\t\t\tonKeydown: handleKeyDown,\n\t\t\t\t\t\t\tonBlur: handleBlur,\n\t\t\t\t\t\t\tonPointermove: handlePointerMove\n\t\t\t\t\t\t}, {\n\t\t\t\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t\t\t\t_: 3\n\t\t\t\t\t\t}, 8, [\n\t\t\t\t\t\t\t\"as\",\n\t\t\t\t\t\t\t\"as-child\",\n\t\t\t\t\t\t\t\"data-state\",\n\t\t\t\t\t\t\t\"dir\",\n\t\t\t\t\t\t\t\"side\",\n\t\t\t\t\t\t\t\"side-offset\",\n\t\t\t\t\t\t\t\"align\",\n\t\t\t\t\t\t\t\"align-offset\",\n\t\t\t\t\t\t\t\"avoid-collisions\",\n\t\t\t\t\t\t\t\"collision-boundary\",\n\t\t\t\t\t\t\t\"collision-padding\",\n\t\t\t\t\t\t\t\"arrow-padding\",\n\t\t\t\t\t\t\t\"prioritize-position\",\n\t\t\t\t\t\t\t\"position-strategy\",\n\t\t\t\t\t\t\t\"update-position-strategy\",\n\t\t\t\t\t\t\t\"sticky\",\n\t\t\t\t\t\t\t\"hide-when-detached\",\n\t\t\t\t\t\t\t\"reference\"\n\t\t\t\t\t\t])]),\n\t\t\t\t\t\t_: 3\n\t\t\t\t\t}, 8, [\n\t\t\t\t\t\t\"current-tab-stop-id\",\n\t\t\t\t\t\t\"dir\",\n\t\t\t\t\t\t\"loop\"\n\t\t\t\t\t])]),\n\t\t\t\t\t_: 3\n\t\t\t\t}, 8, [\"disable-outside-pointer-events\"])]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\"trapped\"]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Menu/MenuContentImpl.vue\nvar MenuContentImpl_default = MenuContentImpl_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { MenuContentImpl_default, injectMenuContentContext };\n//# sourceMappingURL=MenuContentImpl.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { PopperRoot_default } from \"../Popper/PopperRoot.js\";\nimport { injectMenuContext, provideMenuContext } from \"./MenuRoot.js\";\nimport { createBlock, defineComponent, openBlock, ref, renderSlot, unref, watchEffect, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\n\n//#region src/Menu/MenuSub.vue?vue&type=script&setup=true&lang.ts\nconst [injectMenuSubContext, provideMenuSubContext] = createContext(\"MenuSub\");\nvar MenuSub_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"MenuSub\",\n\tprops: { open: {\n\t\ttype: Boolean,\n\t\trequired: false,\n\t\tdefault: void 0\n\t} },\n\temits: [\"update:open\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst open = useVModel(props, \"open\", emits, {\n\t\t\tdefaultValue: false,\n\t\t\tpassive: props.open === void 0\n\t\t});\n\t\tconst parentMenuContext = injectMenuContext();\n\t\tconst trigger = ref();\n\t\tconst content = ref();\n\t\twatchEffect((cleanupFn) => {\n\t\t\tif (parentMenuContext?.open.value === false) open.value = false;\n\t\t\tcleanupFn(() => open.value = false);\n\t\t});\n\t\tprovideMenuContext({\n\t\t\topen,\n\t\t\tonOpenChange: (value) => {\n\t\t\t\topen.value = value;\n\t\t\t},\n\t\t\tcontent,\n\t\t\tonContentChange: (element) => {\n\t\t\t\tcontent.value = element;\n\t\t\t}\n\t\t});\n\t\tprovideMenuSubContext({\n\t\t\ttriggerId: \"\",\n\t\t\tcontentId: \"\",\n\t\t\ttrigger,\n\t\t\tonTriggerChange: (element) => {\n\t\t\t\ttrigger.value = element;\n\t\t\t}\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(PopperRoot_default), null, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t});\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Menu/MenuSub.vue\nvar MenuSub_default = MenuSub_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { MenuSub_default, injectMenuSubContext };\n//# sourceMappingURL=MenuSub.js.map"],"names":["context","focus","count","size","EVENT_OPTIONS","focusFirst"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]}