{"version":3,"file":"index-DK2L7twD.js","sources":["../../../node_modules/.pnpm/@github+combobox-nav@3.0.1/node_modules/@github/combobox-nav/dist/index.js"],"sourcesContent":["export default class Combobox {\n constructor(input, list, { tabInsertsSuggestions, firstOptionSelectionMode, scrollIntoViewOptions } = {}) {\n this.input = input;\n this.list = list;\n this.tabInsertsSuggestions = tabInsertsSuggestions !== null && tabInsertsSuggestions !== void 0 ? tabInsertsSuggestions : true;\n this.firstOptionSelectionMode = firstOptionSelectionMode !== null && firstOptionSelectionMode !== void 0 ? firstOptionSelectionMode : 'none';\n this.scrollIntoViewOptions = scrollIntoViewOptions !== null && scrollIntoViewOptions !== void 0 ? scrollIntoViewOptions : { block: 'nearest', inline: 'nearest' };\n this.isComposing = false;\n if (!list.id) {\n list.id = `combobox-${Math.random().toString().slice(2, 6)}`;\n }\n this.ctrlBindings = !!navigator.userAgent.match(/Macintosh/);\n this.keyboardEventHandler = event => keyboardBindings(event, this);\n this.compositionEventHandler = event => trackComposition(event, this);\n this.inputHandler = this.clearSelection.bind(this);\n input.setAttribute('role', 'combobox');\n input.setAttribute('aria-controls', list.id);\n input.setAttribute('aria-expanded', 'false');\n input.setAttribute('aria-autocomplete', 'list');\n input.setAttribute('aria-haspopup', 'listbox');\n }\n destroy() {\n this.clearSelection();\n this.stop();\n this.input.removeAttribute('role');\n this.input.removeAttribute('aria-controls');\n this.input.removeAttribute('aria-expanded');\n this.input.removeAttribute('aria-autocomplete');\n this.input.removeAttribute('aria-haspopup');\n }\n start() {\n this.input.setAttribute('aria-expanded', 'true');\n this.input.addEventListener('compositionstart', this.compositionEventHandler);\n this.input.addEventListener('compositionend', this.compositionEventHandler);\n this.input.addEventListener('input', this.inputHandler);\n this.input.addEventListener('keydown', this.keyboardEventHandler);\n this.list.addEventListener('click', commitWithElement);\n this.resetSelection();\n }\n stop() {\n this.clearSelection();\n this.input.setAttribute('aria-expanded', 'false');\n this.input.removeEventListener('compositionstart', this.compositionEventHandler);\n this.input.removeEventListener('compositionend', this.compositionEventHandler);\n this.input.removeEventListener('input', this.inputHandler);\n this.input.removeEventListener('keydown', this.keyboardEventHandler);\n this.list.removeEventListener('click', commitWithElement);\n }\n indicateDefaultOption() {\n var _a;\n if (this.firstOptionSelectionMode === 'active') {\n (_a = Array.from(this.list.querySelectorAll('[role=\"option\"]:not([aria-disabled=\"true\"])'))\n .filter(visible)[0]) === null || _a === void 0 ? void 0 : _a.setAttribute('data-combobox-option-default', 'true');\n }\n else if (this.firstOptionSelectionMode === 'selected') {\n this.navigate(1);\n }\n }\n navigate(indexDiff = 1) {\n const focusEl = Array.from(this.list.querySelectorAll('[aria-selected=\"true\"]')).filter(visible)[0];\n const els = Array.from(this.list.querySelectorAll('[role=\"option\"]')).filter(visible);\n const focusIndex = els.indexOf(focusEl);\n if ((focusIndex === els.length - 1 && indexDiff === 1) || (focusIndex === 0 && indexDiff === -1)) {\n this.clearSelection();\n this.input.focus();\n return;\n }\n let indexOfItem = indexDiff === 1 ? 0 : els.length - 1;\n if (focusEl && focusIndex >= 0) {\n const newIndex = focusIndex + indexDiff;\n if (newIndex >= 0 && newIndex < els.length)\n indexOfItem = newIndex;\n }\n const target = els[indexOfItem];\n if (!target)\n return;\n for (const el of els) {\n el.removeAttribute('data-combobox-option-default');\n if (target === el) {\n this.input.setAttribute('aria-activedescendant', target.id);\n target.setAttribute('aria-selected', 'true');\n fireSelectEvent(target);\n target.scrollIntoView(this.scrollIntoViewOptions);\n }\n else {\n el.removeAttribute('aria-selected');\n }\n }\n }\n clearSelection() {\n this.input.removeAttribute('aria-activedescendant');\n for (const el of this.list.querySelectorAll('[aria-selected=\"true\"], [data-combobox-option-default=\"true\"]')) {\n el.removeAttribute('aria-selected');\n el.removeAttribute('data-combobox-option-default');\n }\n }\n resetSelection() {\n this.clearSelection();\n this.indicateDefaultOption();\n }\n}\nfunction keyboardBindings(event, combobox) {\n if (event.shiftKey || event.metaKey || event.altKey)\n return;\n if (!combobox.ctrlBindings && event.ctrlKey)\n return;\n if (combobox.isComposing)\n return;\n switch (event.key) {\n case 'Enter':\n if (commit(combobox.input, combobox.list)) {\n event.preventDefault();\n }\n break;\n case 'Tab':\n if (combobox.tabInsertsSuggestions && commit(combobox.input, combobox.list)) {\n event.preventDefault();\n }\n break;\n case 'Escape':\n combobox.clearSelection();\n break;\n case 'ArrowDown':\n combobox.navigate(1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n combobox.navigate(-1);\n event.preventDefault();\n break;\n case 'n':\n if (combobox.ctrlBindings && event.ctrlKey) {\n combobox.navigate(1);\n event.preventDefault();\n }\n break;\n case 'p':\n if (combobox.ctrlBindings && event.ctrlKey) {\n combobox.navigate(-1);\n event.preventDefault();\n }\n break;\n default:\n if (event.ctrlKey)\n break;\n combobox.resetSelection();\n }\n}\nfunction commitWithElement(event) {\n if (!(event.target instanceof Element))\n return;\n const target = event.target.closest('[role=\"option\"]');\n if (!target)\n return;\n if (target.getAttribute('aria-disabled') === 'true')\n return;\n fireCommitEvent(target, { event });\n}\nfunction commit(input, list) {\n const target = list.querySelector('[aria-selected=\"true\"], [data-combobox-option-default=\"true\"]');\n if (!target)\n return false;\n if (target.getAttribute('aria-disabled') === 'true')\n return true;\n target.click();\n return true;\n}\nfunction fireCommitEvent(target, detail) {\n target.dispatchEvent(new CustomEvent('combobox-commit', { bubbles: true, detail }));\n}\nfunction fireSelectEvent(target) {\n target.dispatchEvent(new Event('combobox-select', { bubbles: true }));\n}\nfunction visible(el) {\n return (!el.hidden &&\n !(el instanceof HTMLInputElement && el.type === 'hidden') &&\n (el.offsetWidth > 0 || el.offsetHeight > 0));\n}\nfunction trackComposition(event, combobox) {\n combobox.isComposing = event.type === 'compositionstart';\n const list = document.getElementById(combobox.input.getAttribute('aria-controls') || '');\n if (!list)\n return;\n combobox.clearSelection();\n}\n"],"names":["Combobox","input","list","tabInsertsSuggestions","firstOptionSelectionMode","scrollIntoViewOptions","event","keyboardBindings","trackComposition","commitWithElement","_a","visible","indexDiff","focusEl","els","focusIndex","indexOfItem","newIndex","target","el","fireSelectEvent","combobox","commit","fireCommitEvent","detail"],"mappings":"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","x_google_ignoreList":[0]}